:root{--bg: #faf7f2;--card: #ffffff;--ink: #2d2a26;--muted: #8a8378;--accent: #e07a2f;--accent-dark: #c4661f;--star: #f2b01e;--border: #e8e2d8;--error: #c0392b;--radius: 12px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}.app{max-width:560px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.app-header{padding:calc(env(safe-area-inset-top,0px) + 16px) 16px 12px;text-align:left}.app-header h1{margin:0;font-size:1.5rem}.tagline{margin:4px 0 0;color:var(--muted);font-size:.85rem}.app-main{flex:1;padding:0 16px calc(env(safe-area-inset-bottom,0px) + 80px)}.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:8px;background:var(--card);border-top:1px solid var(--border);padding:8px 16px calc(env(safe-area-inset-bottom,0px) + 8px)}.tab-bar button{flex:1;max-width:200px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px;border:none;background:none;color:var(--muted);font-size:.8rem;border-radius:var(--radius);cursor:pointer}.tab-bar button.active{color:var(--accent);background:#fdf0e4}.tab-icon{font-size:1.2rem}.search-input,input,select,textarea{width:100%;padding:12px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;background:var(--card);color:var(--ink);font-family:inherit}textarea{min-height:80px;resize:vertical;margin-top:12px}label{display:block;margin-bottom:12px;font-size:.9rem;font-weight:600}label input{margin-top:4px;font-weight:400}.search-input{margin-bottom:16px}.btn-primary,.btn-secondary{display:block;width:100%;padding:14px;margin:12px 0;border-radius:var(--radius);border:none;font-size:1rem;font-weight:600;cursor:pointer}.btn-primary{background:var(--accent);color:#fff}.btn-primary:active{background:var(--accent-dark)}.btn-primary:disabled{opacity:.6}.btn-secondary{background:var(--card);border:1px solid var(--border);color:var(--ink)}.btn-back{border:none;background:none;color:var(--accent);font-size:1rem;padding:8px 0;cursor:pointer}.hotel-card{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:10px;cursor:pointer;font-family:inherit}.hotel-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}.hotel-name{font-weight:700;font-size:1rem}.hotel-city{color:var(--muted);font-size:.85rem;margin:4px 0 12px}.hotel-card .hotel-city{margin:0}.hotel-card-score{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.big-score{font-size:1.4rem;font-weight:800;color:var(--accent)}.review-count,.no-reviews{color:var(--muted);font-size:.75rem}.stars{display:inline-flex;gap:1px}.star{color:var(--border);font-size:1.1rem;line-height:1}.star.filled{color:var(--star)}.stars-sm .star{font-size:.85rem}.stars-lg .star{font-size:2rem}.stars.interactive .star{background:none;border:none;padding:2px;cursor:pointer}.score-bar-row{display:grid;grid-template-columns:1fr 90px 60px;align-items:center;gap:8px;padding:6px 0;font-size:.85rem}.score-bar-track{height:8px;background:var(--border);border-radius:4px;overflow:hidden}.score-bar-fill{height:100%;background:var(--star);border-radius:4px}.score-bar-value{text-align:right;font-weight:600}.score-bar-value small{color:var(--muted);font-weight:400}.overall-box{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.category-block{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;margin-bottom:10px}.category-block h4{margin:4px 0 8px;color:var(--muted);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.review-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px}.review-head{display:flex;justify-content:space-between;align-items:center}.review-date{color:var(--muted);font-size:.75rem}.review-comment{margin:8px 0 4px;font-size:.9rem}.review-items{list-style:none;margin:8px 0 0;padding:0;font-size:.8rem;color:var(--muted)}.review-items li{padding:2px 0}.review-item-score{font-weight:700;color:var(--ink);margin-left:6px}.form-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin:12px 0}.form-card h2,.form-card h3{margin-top:0}.category-accordion{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.category-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 14px;border:none;background:none;font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit;color:var(--ink)}.category-meta{display:flex;align-items:center;gap:8px;color:var(--muted)}.badge{background:var(--accent);color:#fff;border-radius:10px;font-size:.7rem;padding:2px 8px}.item-row{padding:8px 14px;border-top:1px solid var(--border)}.item-row-main{display:flex;justify-content:space-between;align-items:center;gap:8px}.item-name{font-size:.9rem}.item-comment{margin-top:8px;font-size:.85rem;padding:8px}.add-item-controls{display:grid;grid-template-columns:1fr;gap:8px}.add-item-controls .btn-secondary{margin:0}.header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.header-row h1{margin:0;font-size:1.5rem}.user-chip{border:1px solid var(--border);background:var(--card);color:var(--accent);font-weight:600;font-size:.85rem;padding:8px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;max-width:45%;overflow:hidden;text-overflow:ellipsis}.user-chip.signed-in{color:var(--ink)}.account-view label small{color:var(--muted);font-weight:400}.code-input{text-align:center;font-size:1.6rem;letter-spacing:.4em;font-variant-numeric:tabular-nums}.btn-link,.btn-link-muted{border:none;background:none;cursor:pointer;font-family:inherit;padding:8px 0}.btn-link{display:block;width:100%;color:var(--accent);font-size:.9rem}.btn-link-muted{color:var(--muted);font-size:.8rem}.danger-zone h3{color:var(--error)}.btn-danger{display:block;width:100%;padding:14px;margin:12px 0;border-radius:var(--radius);border:1px solid var(--error);background:none;color:var(--error);font-size:1rem;font-weight:600;cursor:pointer}.notice{color:#1e7d46;background:#e8f6ee;border-radius:var(--radius);padding:10px 14px;font-size:.9rem}.hint-left{color:var(--muted);font-size:.85rem}.hint a,.hint-left a{color:var(--accent)}.review-author{font-weight:700;font-size:.9rem}.review-actions{display:flex;gap:16px;margin-top:6px}.review-reported{color:#1e7d46;font-size:.8rem;padding:8px 0}.report-box textarea{margin-top:4px;min-height:60px}.report-box .btn-secondary{margin:8px 0 4px}.sort-row{display:flex;align-items:center;gap:8px;margin:-6px 0 14px;flex-wrap:wrap}.sort-label{color:var(--muted);font-size:.8rem}.sort-chip{border:1px solid var(--border);background:var(--card);color:var(--muted);font-size:.8rem;padding:6px 12px;border-radius:999px;cursor:pointer;font-family:inherit}.sort-chip.active{border-color:var(--accent);color:var(--accent);background:#fdf0e4;font-weight:600}.stars-select{margin-left:auto;width:auto;padding:6px 10px;font-size:.8rem;border-radius:999px;color:var(--muted)}.similar-box{border:1px solid #e6c079;background:#fdf6e6;border-radius:var(--radius);padding:12px 14px;margin:12px 0}.similar-box h3{margin:0 0 4px}.similar-hotel{text-align:left;font-weight:400}.opening-ad{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100}.ad-label{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);left:16px;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.ad-content{text-align:center}.ad-emoji{font-size:4rem;display:block;margin-bottom:8px}.ad-sponsor{color:var(--muted);font-size:.85rem}.ad-countdown{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);right:24px;width:40px;height:40px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:700}.hotel-report{margin:24px 0 8px;text-align:center}.hotel-report .report-box,.edit-request{text-align:left}.attribution{margin-top:20px}.attribution a{color:var(--muted)}.error{color:var(--error);background:#fdecea;border-radius:var(--radius);padding:10px 14px}.hint,.empty-state,.loading{color:var(--muted);font-size:.85rem;text-align:center}section h3{margin:20px 0 10px}
