:root{--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-inout:cubic-bezier(0.77,0,0.175,1);--ease-drawer:cubic-bezier(0.32,0.72,0,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--primary:#1a47b8;--primary-hover:#153a96;--primary-light:#eef2fb;--primary-dim:rgba(26,71,184,0.10);--success:#16a34a;--success-light:#f0fdf4;--danger:#dc2626;--danger-light:#fef2f2;--warning:#d97706;--warning-light:#fffbeb;--bg:#ffffff;--surface:#ffffff;--border:#e8ecf0;--border-strong:#d0d6dd;--text-primary:#0d1117;--text-secondary:#4b5563;--text-muted:#9ca3af;--text-subtle:#c8d0da;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:18px;--r-xl:24px;--r-full:9999px;--radius-sm:var(--r-sm);--radius:var(--r-md);--radius-lg:var(--r-xl);--shadow-xs:0 1px 2px rgba(13,17,23,0.04);--shadow-sm:0 1px 4px rgba(13,17,23,0.06),0 2px 8px rgba(13,17,23,0.04);--shadow-md:0 4px 16px rgba(13,17,23,0.08),0 2px 6px rgba(13,17,23,0.04);--shadow-lg:0 8px 32px rgba(13,17,23,0.10),0 4px 12px rgba(13,17,23,0.06);--max-w:680px}*,:after,:before{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font-family:inherit;font-size:16px!important}body,html{background:var(--bg)!important;color:var(--text-primary)!important;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.5;overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border-radius:var(--r-md);border:none;font-size:15px;font-weight:600;cursor:pointer;transition:background-color .15s var(--ease-out),transform .12s var(--ease-out),box-shadow .15s var(--ease-out),opacity .15s var(--ease-out);letter-spacing:-.01em;-moz-user-select:none;user-select:none;-webkit-user-select:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(37,99,235,.28)}@media (hover:hover) and (pointer:fine){.btn-primary:hover{background:var(--primary-hover)}}.btn-primary:active{transform:scale(.97);box-shadow:0 1px 4px rgba(37,99,235,.2)}.btn-secondary{background:var(--surface);color:var(--text-secondary);border:1.5px solid var(--border)}@media (hover:hover) and (pointer:fine){.btn-secondary:hover{border-color:var(--border-strong)}}.btn-danger{background:var(--danger-light);color:var(--danger)}.btn-full{width:100%}.fab{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(calc(100% - 32px),var(--max-w));z-index:100;display:flex;gap:8px}@media (max-width:859px){.fab{display:none!important}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-around;z-index:100;padding-top:10px;padding-bottom:calc(env(safe-area-inset-bottom, 0px) + 20px);min-height:60px;box-shadow:0 -2px 14px rgba(13,17,23,.07)}@media (min-width:860px){.bottom-nav{display:none!important}}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1 1;height:100%;border:none;background:none;cursor:pointer;color:var(--text-muted);padding:0;transition:color .15s var(--ease-out)}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-item span{font-size:10px;font-weight:500}.bottom-nav-fab{width:52px;height:52px;border-radius:50%;background:var(--primary);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;box-shadow:0 4px 16px rgba(26,71,184,.38);flex-shrink:0;margin-top:-14px;transition:transform .12s var(--ease-out),box-shadow .12s var(--ease-out)}.bottom-nav-fab:active{transform:scale(.93);box-shadow:0 2px 8px rgba(26,71,184,.28)}.spinner{width:28px;height:28px;border:2.5px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .55s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.skeleton{background:linear-gradient(90deg,var(--border) 25%,#e8eef4 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.screen-center{display:flex;align-items:center;justify-content:center;min-height:100%;flex-direction:column;gap:16px}.container{padding:0 16px}.container,.page{max-width:var(--max-w);margin:0 auto}.page{padding:16px 16px 120px}.card{background:var(--surface);border-radius:var(--r-md);padding:16px;box-shadow:var(--shadow-xs);border:1px solid var(--border)}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:600;color:var(--text-secondary)}.form-input,.form-textarea{padding:11px 14px;border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--surface);color:var(--text-primary);font-size:16px!important;transition:border-color .14s var(--ease-out),box-shadow .14s var(--ease-out);width:100%}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-dim)}.form-textarea{resize:vertical;min-height:100px;line-height:1.6}.char-count{font-size:12px;color:var(--text-muted);text-align:right}.stars{display:flex;gap:4px}.star{font-size:26px;cursor:pointer;line-height:1;transition:transform .1s var(--ease-spring);-moz-user-select:none;user-select:none;-webkit-user-select:none}.star:active{transform:scale(1.25)}.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tab{flex-shrink:0;padding:6px 14px;border-radius:var(--r-full);border:1.5px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:background-color .13s var(--ease-out),border-color .13s var(--ease-out),color .13s var(--ease-out),transform .1s var(--ease-out);white-space:nowrap;-moz-user-select:none;user-select:none;-webkit-user-select:none}.tab:active{transform:scale(.95)}@media (hover:hover) and (pointer:fine){.tab:hover{border-color:var(--primary);color:var(--primary)}}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(37,99,235,.22)}.step-indicator{display:flex;align-items:center;justify-content:center;gap:8px}.step-dot{width:7px;height:7px;border-radius:50%;background:var(--border-strong);transition:all .2s var(--ease-out)}.step-dot.active{background:var(--primary);width:22px;border-radius:4px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--r-full);font-size:11px;font-weight:600;letter-spacing:.02em}.badge-pending{background:var(--warning-light);color:var(--warning)}.badge-approved{background:var(--success-light);color:var(--success)}.badge-rejected{background:var(--danger-light);color:var(--danger)}.progress-row{display:flex;align-items:center;gap:10px;font-size:13px}.progress-label{width:130px;color:var(--text-secondary);font-size:13px}.progress-track{flex:1 1;height:5px;border-radius:3px;background:var(--border);overflow:hidden}.progress-fill{height:100%;border-radius:3px;background:var(--primary);transition:width .55s var(--ease-out)}.progress-value{width:28px;text-align:right;font-size:12px;color:var(--text-muted)}.media-grid{display:flex;flex-wrap:wrap;gap:8px}.media-thumb{position:relative;width:88px;height:88px;border-radius:var(--r-sm);overflow:hidden;border:1.5px solid var(--border)}.media-thumb img{width:100%;height:100%;object-fit:cover}.media-remove{position:absolute;top:4px;right:4px;background:rgba(0,0,0,.62);color:#fff;border:none;border-radius:50%;width:22px;height:22px;font-size:11px;transition:background-color .12s var(--ease-out)}.media-add,.media-remove{display:flex;align-items:center;justify-content:center;cursor:pointer}.media-add{width:88px;height:88px;border-radius:var(--r-sm);border:2px dashed var(--border-strong);font-size:24px;color:var(--text-muted);background:var(--bg);transition:border-color .13s var(--ease-out),color .13s var(--ease-out)}@media (hover:hover) and (pointer:fine){.media-add:hover{border-color:var(--primary);color:var(--primary)}}.search-wrap{position:relative}.search-input{width:100%;padding:11px 14px 11px 42px;border-radius:var(--r-lg);border:1.5px solid var(--border);background:var(--surface);color:var(--text-primary);font-size:16px!important;transition:border-color .14s var(--ease-out),box-shadow .14s var(--ease-out);box-shadow:var(--shadow-xs)}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-dim)}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:16px;pointer-events:none;line-height:1}.dropdown{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow-lg);border:1px solid var(--border);z-index:50;overflow:hidden}.dropdown-item{padding:11px 16px;cursor:pointer;transition:background-color .1s var(--ease-out);display:flex;align-items:center;gap:8px;font-size:14px}@media (hover:hover) and (pointer:fine){.dropdown-item:hover{background:var(--primary-light)}}@media (min-width:700px){body{background:var(--bg)!important}.page{padding:24px 16px 60px}.fab{bottom:32px}}.desktop-header{display:none}@media (min-width:860px){.desktop-header{display:flex;position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs)}.desktop-header-inner{max-width:1200px;margin:0 auto;padding:0 28px;width:100%;display:flex;align-items:center;gap:20px;height:60px}.fab,.mobile-header{display:none!important}}.feed-grid{display:flex;flex-direction:column;gap:8px}@media (min-width:860px){.feed-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:14px;gap:14px;align-items:start}.feed-full-row{grid-column:1/-1}}.desktop-page{max-width:1200px;margin:0 auto;padding:24px 28px 60px}@media (max-width:859px){.desktop-page{display:none}}.desktop-content{display:flex;gap:24px;align-items:flex-start}.desktop-sidebar{width:240px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:76px;display:flex;flex-direction:column;gap:12px}.desktop-main{flex:1 1;min-width:0}.sidebar-card{background:var(--surface);border-radius:var(--r-md);border:1px solid var(--border);overflow:hidden}.sidebar-section{padding:14px 16px}.sidebar-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px}.sidebar-filter-btn{display:flex;align-items:center;width:100%;padding:9px 12px;border:none;background:none;border-radius:var(--r-sm);font-size:14px;color:var(--text-secondary);cursor:pointer;text-align:left;gap:8px;transition:background-color .13s var(--ease-out),color .13s var(--ease-out);font-weight:500}.sidebar-filter-btn:hover{background:var(--bg)}.sidebar-filter-btn.active{background:var(--primary-light);color:var(--primary);font-weight:600}.sidebar-city-btn{display:inline-flex;padding:6px 12px;border-radius:var(--r-full);border:1.5px solid var(--border);background:var(--surface);font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .13s var(--ease-out);font-weight:500;margin:3px 3px 0 0}.sidebar-city-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}@media (min-width:860px){.mobile-feed{display:none!important}}.desktop-write-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--r-md);border:none;background:var(--primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background-color .15s var(--ease-out),transform .1s var(--ease-out);box-shadow:0 2px 8px rgba(37,99,235,.28)}.desktop-write-btn:hover{background:var(--primary-hover)}.desktop-write-btn:active{transform:scale(.97)}.blur-wrap{position:relative}.blur-content{filter:blur(6px);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.blur-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--r-md);padding:20px;text-align:center}.review-card-feed{background:var(--surface);border-radius:var(--r-lg);overflow:hidden;border:1.5px solid var(--border-strong);box-shadow:0 1px 4px rgba(13,17,23,.06),0 4px 12px rgba(13,17,23,.07);cursor:pointer;transition:box-shadow .16s var(--ease-out),transform .12s var(--ease-out);-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (hover:hover) and (pointer:fine){.review-card-feed:hover{box-shadow:0 2px 8px rgba(13,17,23,.09),0 8px 24px rgba(13,17,23,.1);transform:translateY(-2px)}}.review-card-feed:active{transform:scale(.99);box-shadow:0 1px 3px rgba(13,17,23,.05)}.bottom-sheet{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center}.bottom-sheet-inner{background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:20px 20px 40px;width:100%;max-width:var(--max-w);max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:sheet-up .3s var(--ease-drawer) both}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{width:36px;height:4px;background:var(--border-strong);border-radius:2px;margin:0 auto 20px}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .26s var(--ease-out) both}.rating-big{font-size:48px;font-weight:800;line-height:1}.rating-count{font-size:13px;color:var(--text-muted)}.rating-high{color:#16a34a}.rating-med{color:#d97706}.rating-low{color:#dc2626}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}