@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=DM+Sans:wght@400;500;600&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--gold: #FFC904;--gold-deep: #E6B400;--ink: #111111;--ink-soft: #2C2C2C;--cream: #F7F5F0;--warm-gray: #E8E5DF;--muted: #6B6760;--border: #D9D6CF;--white: #FFFFFF;--great: #1A7A4A;--great-bg: #E6F5EE;--ok: #8A6500;--ok-bg: #FFF8DC;--poor: #9B2020;--poor-bg:#FDE8E8;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--font-display: "Playfair Display", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--shadow-card: 0 2px 12px rgba(0,0,0,.07), 0 0 0 1px rgba(0,0,0,.05);--shadow-hover: 0 6px 24px rgba(0,0,0,.12), 0 0 0 1px rgba(0,0,0,.08);--max-width: 1100px;--page-pad: clamp(16px, 4vw, 48px);--transition: .2s ease}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--cream);color:var(--ink);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{background:var(--ink);color:var(--white);border-bottom:3px solid var(--gold)}.header-inner{max-width:var(--max-width);margin:0 auto;padding:20px var(--page-pad);display:flex;align-items:center;gap:20px;flex-wrap:wrap}.logo-link{display:flex;align-items:center;gap:10px}.logo-badge{background:var(--gold);color:var(--ink);font-family:var(--font-display);font-weight:900;font-size:15px;padding:4px 10px;border-radius:var(--radius-sm);letter-spacing:.04em}.logo-text{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--white)}.logo-tagline{font-size:13px;color:#ffffff80;margin-left:auto;font-style:italic}.site-main{flex:1;padding:0 var(--page-pad)}.site-footer{background:var(--ink);color:#fff6;text-align:center;font-size:13px;padding:20px;margin-top:80px;border-top:1px solid rgba(255,255,255,.08)}.page{max-width:var(--max-width);margin:0 auto;padding:48px 0 80px}.state-loader,.state-error,.empty-state{display:flex;align-items:center;justify-content:center;gap:10px;min-height:200px;font-size:15px;color:var(--muted)}.state-error{color:var(--poor)}.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.list-hero{margin-bottom:40px}.list-hero h1{font-family:var(--font-display);font-size:clamp(28px,5vw,48px);font-weight:900;line-height:1.15;color:var(--ink);margin-bottom:10px}.list-hero p{font-size:16px;color:var(--muted)}.apt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.card-link{display:block;animation:fadeUp .4s ease both}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.apt-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow var(--transition),transform var(--transition);position:relative}.apt-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}.apt-name-row{display:flex;align-items:center;gap:10px;margin-bottom:4px}.apt-rank{flex-shrink:0;background:var(--gold);color:var(--ink);font-size:11px;font-weight:700;padding:3px 8px;border-radius:20px;line-height:1}.apt-card-body{padding:20px 20px 16px;flex:1}.apt-name{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--ink);line-height:1.25}.apt-address{font-size:13px;color:var(--muted);margin-bottom:16px}.apt-rating-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}.apt-rating-num{font-size:14px;font-weight:600;color:var(--ink-soft)}.apt-recommend{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:13px}.apt-recommend-pct{font-weight:700;font-size:15px}.sentiment-great{background:var(--great-bg);color:var(--great)}.sentiment-ok{background:var(--ok-bg);color:var(--ok)}.sentiment-poor{background:var(--poor-bg);color:var(--poor)}.apt-card-cta{padding:12px 20px;background:var(--ink);color:var(--gold);font-size:13px;font-weight:600;letter-spacing:.02em;transition:background var(--transition)}.apt-card:hover .apt-card-cta{background:var(--ink-soft)}.star-rating{display:inline-flex;gap:1px}.star-md .star{font-size:20px}.star-sm .star{font-size:14px}.star-filled{color:var(--gold)}.star-empty{color:var(--border)}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:14px;color:var(--muted);margin-bottom:32px;transition:color var(--transition)}.back-link:hover{color:var(--ink)}.detail-header{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start;margin-bottom:48px;padding-bottom:40px;border-bottom:2px solid var(--warm-gray)}.detail-title h1{font-family:var(--font-display);font-size:clamp(26px,4vw,40px);font-weight:900;line-height:1.2;color:var(--ink);margin-bottom:6px}.detail-address{font-size:15px;color:var(--muted)}.detail-stats{display:flex;gap:16px;flex-wrap:wrap;margin-left:auto}.stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 20px;text-align:center;min-width:110px;display:flex;flex-direction:column;align-items:center;gap:4px}.stat-value,.review-count-num{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--ink)}.stat-label{font-size:12px;color:var(--muted)}.recommend-pct{font-family:var(--font-display);font-size:26px;font-weight:700}.recommend-pct.high{color:var(--great)}.recommend-pct.mid{color:var(--ok)}.recommend-pct.low{color:var(--poor)}.reviews-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.reviews-section-header h2{font-family:var(--font-display);font-size:24px;font-weight:700}.reviews-list{display:flex;flex-direction:column;gap:16px}.btn-write{background:var(--ink);color:var(--gold);border:none;border-radius:var(--radius-md);padding:10px 20px;font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer;transition:background var(--transition),transform var(--transition)}.btn-write:hover{background:var(--ink-soft);transform:translateY(-1px)}.btn-cancel{background:var(--warm-gray);color:var(--ink)}.btn-cancel:hover{background:var(--border)}.review-card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--border);padding:22px 24px;box-shadow:0 1px 4px #0000000a}.review-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px}.review-stars{font-size:18px;letter-spacing:1px;color:var(--gold)}.review-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.recommend-badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px}.recommend-badge.yes{background:var(--great-bg);color:var(--great)}.recommend-badge.no{background:var(--poor-bg);color:var(--poor)}.review-date{font-size:12px;color:var(--muted)}.review-comment{font-size:15px;line-height:1.65;color:var(--ink-soft);border-left:3px solid var(--gold);padding-left:14px;margin-bottom:18px;font-style:italic}.review-metrics{display:flex;flex-direction:column;gap:8px}.metric-row{display:grid;grid-template-columns:90px 1fr 36px;align-items:center;gap:10px}.metric-label{font-size:12px;color:var(--muted)}.metric-track{height:6px;background:var(--warm-gray);border-radius:10px;overflow:hidden}.metric-fill{height:100%;background:var(--gold);border-radius:10px;transition:width .6s ease}.metric-value{font-size:12px;font-weight:600;color:var(--ink-soft);text-align:right}.metric-denom{font-weight:400;color:var(--muted)}.review-form{background:var(--white);border:2px solid var(--gold);border-radius:var(--radius-lg);padding:28px;margin-bottom:32px}.review-form h3{font-family:var(--font-display);font-size:20px;font-weight:700;margin-bottom:22px;color:var(--ink)}.form-field{margin-bottom:20px}.form-field label{display:block;font-size:14px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}.optional{font-weight:400;color:var(--muted);font-size:12px}.slider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.slider-header label{margin:0}.slider-hint{font-size:12px;color:var(--gold-deep);font-weight:600}.form-slider{width:100%;accent-color:var(--gold);height:6px;cursor:pointer}.slider-ticks{display:flex;justify-content:space-between;margin-top:4px}.tick{font-size:11px;color:var(--muted);transition:color var(--transition)}.tick.active{color:var(--gold-deep);font-weight:700}.checkbox-field{margin-top:4px}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;font-weight:500}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold);cursor:pointer}.form-textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;font-family:var(--font-body);font-size:14px;color:var(--ink);background:var(--cream);resize:vertical;transition:border-color var(--transition);line-height:1.55}.form-textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #ffc90426}.char-count{display:block;font-size:11px;color:var(--muted);text-align:right;margin-top:4px}.form-error{background:var(--poor-bg);color:var(--poor);font-size:13px;padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:14px}.btn-submit{width:100%;background:var(--ink);color:var(--gold);border:none;border-radius:var(--radius-md);padding:14px;font-family:var(--font-body);font-size:15px;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:background var(--transition),transform var(--transition)}.btn-submit:hover:not(:disabled){background:var(--ink-soft);transform:translateY(-1px)}.btn-submit:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 640px){.detail-header{flex-direction:column}.detail-stats{margin-left:0}.apt-grid{grid-template-columns:1fr}.review-form{padding:20px 16px}.metric-row{grid-template-columns:70px 1fr 30px}}@media (prefers-reduced-motion: reduce){.card-link,.apt-card{animation:none;transition:none}}.header-auth{margin-left:auto}.header-user{display:flex;align-items:center;gap:12px}.header-username{font-size:13px;color:#ffffffbf;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-signin{background:var(--gold);color:var(--ink);font-size:13px;font-weight:700;padding:8px 16px;border-radius:var(--radius-sm);transition:background var(--transition)}.btn-signin:hover{background:var(--gold-deep)}.btn-signout{background:transparent;border:1px solid rgba(255,255,255,.25);color:#ffffffb3;font-size:12px;font-family:var(--font-body);padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition),color var(--transition)}.btn-signout:hover{border-color:#ffffff80;color:var(--white)}.auth-page{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:40px var(--page-pad)}.auth-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-hover);padding:40px;width:100%;max-width:420px}.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:6px}.auth-subtitle{font-size:14px;color:var(--muted);margin-bottom:24px}.auth-tabs{display:flex;border-bottom:2px solid var(--warm-gray);margin-bottom:24px}.auth-tab{flex:1;background:none;border:none;padding:10px;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color var(--transition),border-color var(--transition)}.auth-tab.active{color:var(--ink);border-bottom-color:var(--gold)}.auth-form{display:flex;flex-direction:column;gap:4px}.form-input{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);padding:11px 14px;font-family:var(--font-body);font-size:14px;color:var(--ink);background:var(--cream);transition:border-color var(--transition)}.form-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #ffc90426}.form-success{background:var(--great-bg);color:var(--great);font-size:13px;padding:10px 14px;border-radius:var(--radius-sm);line-height:1.5}.auth-back{display:block;text-align:center;margin-top:20px;font-size:13px;color:var(--muted);transition:color var(--transition)}.auth-back:hover{color:var(--ink)}.auth-prompt{background:var(--warm-gray);border-radius:var(--radius-lg);padding:28px;text-align:center;margin-bottom:32px;display:flex;flex-direction:column;align-items:center;gap:14px}.auth-prompt p{font-size:15px;color:var(--ink-soft);font-weight:500}.btn-auth-prompt{background:var(--ink);color:var(--gold);font-size:14px;font-weight:700;padding:11px 24px;border-radius:var(--radius-md);transition:background var(--transition)}.btn-auth-prompt:hover{background:var(--ink-soft)}.anon-field{margin-top:4px}.anon-hint{font-size:12px;color:var(--muted);margin-top:6px;margin-left:28px;font-style:italic}.reviewer-name{font-size:13px;font-weight:600;color:var(--ink-soft)}.filter-bar{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:24px;display:flex;flex-direction:column;gap:16px}.search-input{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);padding:11px 16px;font-family:var(--font-body);font-size:15px;color:var(--ink);background:var(--cream);transition:border-color var(--transition)}.search-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #ffc90426}.sort-buttons{display:flex;flex-wrap:wrap;gap:8px}.sort-btn{background:var(--warm-gray);border:1px solid var(--border);border-radius:20px;padding:6px 14px;font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;transition:all var(--transition)}.sort-btn:hover{background:var(--border);color:var(--ink)}.sort-btn.active{background:var(--ink);color:var(--gold);border-color:var(--ink)}.filter-sliders{display:flex;flex-wrap:wrap;gap:20px}.filter-slider-row{flex:1;min-width:200px}.filter-slider-row label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.filter-slider-row strong{color:var(--ink)}.results-count{font-size:13px;color:var(--muted);margin-bottom:16px}.apt-meta-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px}.apt-distance,.apt-price{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:3px}.apt-review-count{font-size:12px;color:var(--muted)}.review-actions{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--warm-gray);flex-wrap:wrap}.btn-helpful{background:var(--warm-gray);border:1px solid var(--border);border-radius:20px;padding:5px 12px;font-size:13px;font-family:var(--font-body);color:var(--muted);cursor:pointer;transition:all var(--transition);display:flex;align-items:center;gap:4px}.btn-helpful:hover:not(:disabled){background:var(--border);color:var(--ink)}.btn-helpful.voted{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}.btn-helpful:disabled{opacity:.5;cursor:not-allowed}.helpful-count{font-weight:600}.btn-report{background:none;border:none;font-size:12px;font-family:var(--font-body);color:var(--muted);cursor:pointer;padding:5px 8px;border-radius:var(--radius-sm);transition:color var(--transition);margin-left:auto}.btn-report:hover{color:var(--poor)}.report-sent{font-size:12px;color:var(--muted);margin-left:auto;font-style:italic}.report-panel{margin-top:12px;background:var(--cream);border-radius:var(--radius-md);padding:14px;border:1px solid var(--border)}.report-label{font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:10px}.report-reasons{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.report-reason-btn{background:var(--white);border:1px solid var(--border);border-radius:20px;padding:4px 12px;font-size:12px;font-family:var(--font-body);color:var(--muted);cursor:pointer;transition:all var(--transition)}.report-reason-btn.selected{background:var(--poor-bg);border-color:var(--poor);color:var(--poor)}.btn-report-submit{background:var(--poor);color:var(--white);border:none;border-radius:var(--radius-sm);padding:7px 16px;font-size:13px;font-family:var(--font-body);font-weight:600;cursor:pointer;transition:opacity var(--transition)}.btn-report-submit:disabled{opacity:.4;cursor:not-allowed}.verified-badge{font-size:11px;font-weight:700;background:#e6f5ee;color:var(--great);padding:2px 8px;border-radius:20px;letter-spacing:.02em}.verified-label{font-size:12px;color:var(--great);font-weight:500}.photo-upload-label{display:flex;align-items:center;justify-content:center;border:2px dashed var(--border);border-radius:var(--radius-md);padding:20px;cursor:pointer;font-size:14px;color:var(--muted);transition:border-color var(--transition);min-height:80px;overflow:hidden}.photo-upload-label:hover{border-color:var(--gold);color:var(--ink)}.photo-input{display:none}.photo-preview{max-width:100%;max-height:200px;border-radius:var(--radius-sm);object-fit:cover}.btn-remove-photo{background:none;border:none;font-size:12px;color:var(--poor);cursor:pointer;margin-top:6px;font-family:var(--font-body);text-decoration:underline}.review-photo-wrap{margin:12px 0;border-radius:var(--radius-md);overflow:hidden}.review-photo{width:100%;max-height:300px;object-fit:cover;border-radius:var(--radius-md)}.filter-inputs{display:flex;flex-wrap:wrap;gap:16px}.filter-input-row{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}.filter-input-row label{font-size:13px;color:var(--muted)}.filter-number-input{border:1px solid var(--border);border-radius:var(--radius-md);padding:9px 14px;font-family:var(--font-body);font-size:14px;color:var(--ink);background:var(--cream);width:100%;transition:border-color var(--transition)}.filter-number-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #ffc90426}.review-restriction-msg{background:var(--great-bg);color:var(--great);border-radius:var(--radius-md);padding:14px 18px;font-size:14px;font-weight:500;margin-bottom:24px;border:1px solid rgba(26,122,74,.2)}.detail-distance,.detail-price{font-size:14px;color:var(--muted);margin-top:4px}.residency-field{margin-bottom:24px}.field-label{display:block;font-size:14px;font-weight:600;color:var(--ink-soft);margin-bottom:10px}.required{color:var(--poor)}.residency-options{display:flex;flex-wrap:wrap;gap:10px}.residency-option{flex:1;min-width:130px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 12px;border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:center;transition:all var(--transition);background:var(--cream)}.residency-option input[type=radio]{display:none}.residency-option:hover{border-color:var(--gold);background:var(--white)}.residency-option.selected{border-color:var(--gold);background:var(--white);box-shadow:0 0 0 3px #ffc90426}.residency-icon{font-size:22px}.residency-label{font-size:13px;font-weight:700;color:var(--ink)}.residency-desc{font-size:11px;color:var(--muted)}.residency-notice{font-size:12px;color:var(--ok);background:var(--ok-bg);padding:8px 12px;border-radius:var(--radius-sm);margin-top:10px}.residency-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px}.badge-current{background:#e6f5ee;color:var(--great)}.badge-past{background:#eef0ff;color:#3b3fd8}.review-restriction-msg.success{background:var(--great-bg);color:var(--great);border-color:#1a7a4a33}.review-restriction-msg.warning{background:var(--ok-bg);color:var(--ok);border-color:#8a650033}.review-restriction-msg.info{background:#eef0ff;color:#3b3fd8;border-color:#3b3fd833}.detail-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.btn-share{background:var(--warm-gray);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 16px;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all var(--transition)}.btn-share:hover{background:var(--border)}.btn-share.copied{background:var(--great-bg);color:var(--great);border-color:var(--great)}.owner-actions{display:flex;gap:6px;margin-left:4px}.btn-edit-review,.btn-delete-review{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 8px;font-size:11px;font-family:var(--font-body);cursor:pointer;transition:all var(--transition)}.btn-edit-review{color:var(--ink-soft)}.btn-edit-review:hover{background:var(--warm-gray)}.btn-delete-review{color:var(--poor);border-color:var(--poor-bg)}.btn-delete-review:hover{background:var(--poor-bg)}.edit-form{margin:12px 0;padding:16px;background:var(--cream);border-radius:var(--radius-md);border:1px solid var(--border)}.edit-field{margin-bottom:14px}.edit-actions{display:flex;gap:10px;margin-top:12px}.btn-save-edit{background:var(--ink);color:var(--gold);border:none;border-radius:var(--radius-sm);padding:9px 18px;font-family:var(--font-body);font-size:13px;font-weight:700;cursor:pointer;transition:background var(--transition)}.btn-save-edit:hover:not(:disabled){background:var(--ink-soft)}.btn-save-edit:disabled{opacity:.5;cursor:not-allowed}.btn-cancel-edit{background:var(--warm-gray);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 18px;font-family:var(--font-body);font-size:13px;cursor:pointer}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px;flex-wrap:wrap;gap:12px}.admin-title{font-family:var(--font-display);font-size:32px;font-weight:900;color:var(--ink)}.admin-subtitle{font-size:14px;color:var(--muted);margin-top:4px}.admin-msg{background:var(--great-bg);color:var(--great);padding:10px 16px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:20px}.admin-reports{display:flex;flex-direction:column;gap:16px}.admin-report-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;border-left:4px solid var(--poor)}.admin-report-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px}.admin-apt-name{font-weight:700;font-size:15px;color:var(--ink)}.admin-report-reason{font-size:13px;color:var(--muted)}.admin-report-date{font-size:12px;color:var(--muted);margin-left:auto}.admin-review-content{background:var(--cream);border-radius:var(--radius-md);padding:14px;margin-bottom:14px}.admin-review-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;font-size:14px;color:var(--gold)}.admin-review-comment{font-size:14px;color:var(--ink-soft);font-style:italic;border-left:3px solid var(--gold);padding-left:12px;margin:0}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.btn-admin-delete{background:var(--poor);color:var(--white);border:none;border-radius:var(--radius-sm);padding:8px 16px;font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;transition:opacity var(--transition)}.btn-admin-delete:hover{opacity:.85}.btn-admin-dismiss{background:var(--warm-gray);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 16px;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:background var(--transition)}.btn-admin-dismiss:hover{background:var(--border)}.forgot-password-btn{background:none;border:none;font-family:var(--font-body);font-size:13px;color:var(--muted);cursor:pointer;text-align:left;text-decoration:underline;padding:0;margin-bottom:4px;transition:color var(--transition)}.forgot-password-btn:hover{color:var(--ink)}.auth-back-btn{background:none;border:none;font-family:var(--font-body);font-size:13px;color:var(--muted);cursor:pointer;text-decoration:underline;margin-top:16px;display:block;text-align:center}.btn-upvote{display:inline-flex;align-items:center;gap:6px;background:var(--warm-gray);border:1.5px solid var(--border);border-radius:20px;padding:6px 14px;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:all var(--transition);min-width:90px}.btn-upvote:hover:not(:disabled){border-color:var(--gold);color:var(--ink);background:var(--white)}.btn-upvote.upvoted{background:#fff8dc;border-color:var(--gold-deep);color:var(--gold-deep)}.btn-upvote:disabled{opacity:.45;cursor:not-allowed}.upvote-arrow{font-size:14px;line-height:1;transition:transform var(--transition)}.btn-upvote.upvoted .upvote-arrow{transform:translateY(-1px)}.upvote-label{font-size:12px}.upvote-count{background:var(--gold);color:var(--ink);font-size:11px;font-weight:700;padding:1px 6px;border-radius:10px;min-width:20px;text-align:center}.btn-upvote.upvoted .upvote-count{background:var(--gold-deep);color:var(--white)}.btn-flag{display:inline-flex;align-items:center;gap:5px;background:var(--warm-gray);border:1.5px solid var(--border);border-radius:20px;padding:6px 12px;font-family:var(--font-body);font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;transition:all var(--transition);margin-left:auto}.btn-flag:hover{border-color:var(--poor);color:var(--poor);background:var(--poor-bg)}.btn-flag.flagged{background:var(--poor-bg);border-color:var(--poor);color:var(--poor)}.flag-icon{font-size:14px;line-height:1}.flag-label{font-size:12px}.report-panel-actions{display:flex;gap:8px;margin-top:10px}.btn-report-cancel{background:var(--warm-gray);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 14px;font-family:var(--font-body);font-size:13px;cursor:pointer;color:var(--muted)}.btn-thumb{display:inline-flex;align-items:center;gap:5px;background:none;border:1.5px solid var(--border);border-radius:20px;padding:5px 12px;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:all var(--transition)}.btn-thumb:hover:not(:disabled){border-color:var(--gold);color:var(--ink);background:#fff8dc}.btn-thumb.active{border-color:var(--gold-deep);color:var(--gold-deep);background:#fff8dc}.btn-thumb:disabled{opacity:.45;cursor:not-allowed}.thumb-icon{font-size:14px;line-height:1}.thumb-count{font-size:13px;font-weight:700;min-width:12px;text-align:center}[data-theme=dark]{--ink: #F0EDE6;--ink-soft: #C8C4BC;--cream: #141414;--warm-gray: #1E1E1E;--border: #2E2E2E;--white: #1A1A1A;--muted: #888580}[data-theme=dark] body{background:#111;color:var(--ink)}[data-theme=dark] .site-header{background:#0a0a0a;border-bottom-color:var(--gold)}[data-theme=dark] .apt-card{background:#1a1a1a;box-shadow:0 2px 12px #0006}[data-theme=dark] .apt-card-cta{background:#0a0a0a}[data-theme=dark] .review-card,[data-theme=dark] .filter-bar,[data-theme=dark] .auth-card,[data-theme=dark] .review-form,[data-theme=dark] .detail-stats .stat-card{background:#1a1a1a;border-color:#2e2e2e}[data-theme=dark] .search-input,[data-theme=dark] .form-input,[data-theme=dark] .form-textarea,[data-theme=dark] .filter-number-input{background:#111;border-color:#2e2e2e;color:var(--ink)}[data-theme=dark] .sort-btn{background:#1e1e1e;border-color:#2e2e2e;color:var(--muted)}[data-theme=dark] .sort-btn.active{background:var(--ink);color:var(--gold);border-color:var(--ink)}[data-theme=dark] .apt-name{color:var(--ink)}[data-theme=dark] .logo-text{color:var(--white)}[data-theme=dark] .site-footer{background:#0a0a0a}[data-theme=dark] .btn-upvote,[data-theme=dark] .btn-flag,[data-theme=dark] .btn-thumb{background:#1e1e1e;border-color:#2e2e2e;color:var(--muted)}[data-theme=dark] .report-panel,[data-theme=dark] .edit-form{background:#111;border-color:#2e2e2e}[data-theme=dark] .report-reason-btn{background:#1a1a1a;border-color:#2e2e2e;color:var(--muted)}[data-theme=dark] .auth-tabs{border-bottom-color:#2e2e2e}[data-theme=dark] .auth-prompt{background:#1e1e1e}[data-theme=dark] .residency-option{background:#111;border-color:#2e2e2e}[data-theme=dark] .residency-option.selected{background:#1a1a1a}[data-theme=dark] .metric-track{background:#2e2e2e}[data-theme=dark] .list-hero h1{color:var(--ink)}.btn-dark-toggle{background:none;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);padding:5px 9px;font-size:16px;cursor:pointer;transition:border-color var(--transition),background var(--transition);line-height:1}.btn-dark-toggle:hover{background:#ffffff1a;border-color:#fff6}.apt-last-reviewed{font-size:11px;color:var(--muted);font-style:italic}.apt-price-unknown{color:var(--muted);font-style:italic}.price-suggest-wrap{margin-top:10px}.btn-suggest-price{background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:6px 12px;font-family:var(--font-body);font-size:13px;color:var(--muted);cursor:pointer;transition:all var(--transition)}.btn-suggest-price:hover{border-color:var(--gold);color:var(--ink)}.price-suggest-form{background:var(--warm-gray);border-radius:var(--radius-md);padding:14px;margin-top:6px}.price-suggest-label{font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:10px}.price-suggest-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.price-dollar,.price-mo{font-size:14px;font-weight:600;color:var(--ink-soft)}.price-input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-family:var(--font-body);font-size:14px;color:var(--ink);background:var(--white);width:110px;transition:border-color var(--transition)}.price-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #ffc90426}.btn-price-submit{background:var(--ink);color:var(--gold);border:none;border-radius:var(--radius-sm);padding:8px 16px;font-family:var(--font-body);font-size:13px;font-weight:700;cursor:pointer;transition:background var(--transition)}.btn-price-submit:hover:not(:disabled){background:var(--ink-soft)}.btn-price-submit:disabled{opacity:.5;cursor:not-allowed}.btn-price-cancel{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-family:var(--font-body);font-size:13px;color:var(--muted);cursor:pointer}.price-suggest-thanks{font-size:13px;color:var(--great);margin-top:8px}.price-source{font-size:12px;color:var(--muted);font-weight:400}.detail-price-unknown{font-size:14px;color:var(--muted);font-style:italic;margin-top:4px}.footer-inner{display:flex;flex-direction:column;align-items:center;gap:8px}.footer-contact{display:flex;align-items:center;gap:8px;font-size:13px;color:#fff6}.footer-email{color:var(--gold);font-size:13px;transition:opacity var(--transition)}.footer-email:hover{opacity:.8}[data-theme=dark] .price-suggest-form{background:#1e1e1e;border-color:#2e2e2e}[data-theme=dark] .price-input{background:#111;border-color:#2e2e2e;color:var(--ink)}[data-theme=dark] .btn-suggest-price{border-color:#2e2e2e;color:var(--muted)}[data-theme=dark] .residency-label{color:var(--ink)}[data-theme=dark] .residency-desc{color:var(--muted)}[data-theme=dark] .review-restriction-msg.success{background:#1a7a4a26;border-color:#1a7a4a4d}[data-theme=dark] .review-restriction-msg.warning{background:#8a650026;border-color:#8a65004d}[data-theme=dark] .review-restriction-msg.info{background:#3b3fd826;border-color:#3b3fd84d}[data-theme=dark] .back-link{color:var(--muted)}[data-theme=dark] .back-link:hover{color:var(--ink)}[data-theme=dark] .btn-share,[data-theme=dark] .btn-edit-review{background:#1e1e1e;border-color:#2e2e2e;color:var(--ink-soft)}[data-theme=dark] .btn-delete-review{background:#1e1e1e;border-color:#9b20204d}[data-theme=dark] .photo-upload-label{border-color:#2e2e2e;color:var(--muted);background:#111}[data-theme=dark] .photo-upload-label:hover{border-color:var(--gold)}[data-theme=dark] .auth-page{background:transparent}[data-theme=dark] .badge-current{background:#1a7a4a33;color:#4aba7a}[data-theme=dark] .badge-past{background:#3b3fd833;color:#7b7fe8}[data-theme=dark] .verified-badge{background:#1a7a4a33;color:#4aba7a}[data-theme=dark] .recommend-badge.yes{background:#1a7a4a26;color:#4aba7a}[data-theme=dark] .recommend-badge.no{background:#9b202026;color:#e06060}[data-theme=dark] .sentiment-great{background:#1a7a4a26;color:#4aba7a}[data-theme=dark] .sentiment-ok{background:#8a650026;color:#c4a020}[data-theme=dark] .sentiment-poor{background:#9b202026;color:#e06060}[data-theme=dark] .recommend-pct.high{color:#4aba7a}[data-theme=dark] .recommend-pct.mid{color:#c4a020}[data-theme=dark] .recommend-pct.low{color:#e06060}[data-theme=dark] .form-error{background:#9b202033;color:#e06060}[data-theme=dark] .form-success{background:#1a7a4a26;color:#4aba7a}[data-theme=dark] .price-suggest-thanks{color:#4aba7a}[data-theme=dark] .stat-value,[data-theme=dark] .review-count-num{color:var(--ink)}[data-theme=dark] .btn-cancel-edit{background:#1e1e1e;border-color:#2e2e2e;color:var(--muted)}[data-theme=dark] .admin-msg{background:#1a7a4a26;color:#4aba7a}[data-theme=dark] .checkbox-label{color:var(--ink-soft)}[data-theme=dark] .tick{color:var(--muted)}[data-theme=dark] .tick.active{color:var(--gold-deep)}[data-theme=dark] .char-count,[data-theme=dark] .optional,[data-theme=dark] .price-source{color:var(--muted)}[data-theme=dark] .footer-contact{color:#fff6}[data-theme=dark] .forgot-password-btn{color:var(--muted)}[data-theme=dark] .forgot-password-btn:hover{color:var(--ink)}[data-theme=dark] .auth-back{color:var(--muted)}[data-theme=dark] .auth-back:hover{color:var(--ink)}[data-theme=dark] .report-label{color:var(--ink-soft)}[data-theme=dark] .btn-report-cancel{background:#1e1e1e;border-color:#2e2e2e;color:var(--muted)}[data-theme=dark] .filter-input-row label,[data-theme=dark] .apt-address,[data-theme=dark] .apt-distance,[data-theme=dark] .apt-price,[data-theme=dark] .apt-review-count,[data-theme=dark] .apt-last-reviewed,[data-theme=dark] .detail-address,[data-theme=dark] .detail-distance,[data-theme=dark] .detail-price{color:var(--muted)}[data-theme=dark] .reviewer-name,[data-theme=dark] .review-comment{color:var(--ink-soft)}[data-theme=dark] .review-date,[data-theme=dark] .empty-state,[data-theme=dark] .results-count{color:var(--muted)}[data-theme=dark] .logo-text{color:#fff!important}[data-theme=dark] .logo-tagline{color:#ffffff80}[data-theme=dark] .apt-recommend.sentiment-poor{background:#9b202033;color:#e06060}[data-theme=dark] .apt-recommend.sentiment-ok{background:#8a650033;color:#c4a020}[data-theme=dark] .apt-recommend.sentiment-great{background:#1a7a4a33;color:#4aba7a}[data-theme=dark] .apt-recommend-pct{font-weight:700}[data-theme=dark] .apt-recommend-label{color:inherit}[data-theme=dark] .logo-badge{background:var(--gold);color:#111}[data-theme=dark] .apt-rank{background:#b8920a;color:#111}
