:root{--bg: #0f1419;--surface: #1a2332;--surface-hover: #243044;--border: #2d3a4f;--text: #e8edf4;--muted: #8b9cb3;--accent: #c9a227;--accent-hover: #dbb42e;--danger: #e74c3c;--success: #2ecc71;--draft: #6c7a89;--posted: #27ae60;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}a{color:var(--accent)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:.95rem}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--muted)}.navbar{background:var(--surface);border-bottom:1px solid var(--border);padding:0 1.5rem;height:60px;display:flex;align-items:center;justify-content:space-between}.nav-brand{font-size:1.25rem;font-weight:600;color:var(--accent);letter-spacing:.02em}.nav-links{display:flex;align-items:center;gap:1.5rem}.nav-link{color:var(--muted);text-decoration:none;font-weight:500}.nav-link.active,.nav-link:hover{color:var(--text)}.nav-right{display:flex;align-items:center;gap:1rem}.main-content{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-header h1{margin:0;font-size:1.75rem}.btn{padding:.5rem 1rem;border-radius:8px;border:none;font-weight:500;transition:background .15s}.btn-primary{background:var(--accent);color:#1a1a1a}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--surface-hover);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-success{background:#15803d;color:#fff}.btn-success:hover{background:#166534}.btn-success:disabled,.btn-danger:disabled,.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:.35rem .75rem;font-size:.85rem}.rooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.room-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:border-color .15s,transform .15s}.room-card:hover{border-color:var(--accent);transform:translateY(-2px)}.room-card-image{height:160px;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--muted);overflow:hidden}.room-card-image img{width:100%;height:100%;object-fit:cover}.room-card-body{padding:1rem}.room-card-body h3{margin:0 0 .5rem;font-size:1.1rem}.room-card-meta{display:flex;gap:.75rem;font-size:.85rem;color:var(--muted);margin-bottom:.75rem}.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.badge-draft{background:var(--draft);color:#fff}.badge-posted{background:var(--posted);color:#fff}.badge-pending{background:#b45309;color:#fff}.badge-approved{background:#15803d;color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal-overlay-top{z-index:110}.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;padding:1.5rem}.modal-room{max-width:900px}.modal h2{margin:0 0 1.25rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.35rem;font-size:.9rem;color:var(--muted)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.6rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text)}.form-group textarea{min-height:80px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.image-previews{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.image-preview{position:relative;width:100px;height:100px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.image-preview img{width:100%;height:100%;object-fit:cover}.image-preview button{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;background:var(--danger);color:#fff;font-size:12px;line-height:1}.reservations-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.reservations-section h3{margin:0 0 1rem;font-size:1rem}.reservation-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:var(--bg);border-radius:8px;margin-bottom:.5rem;font-size:.9rem}.reservation-info strong{display:block;margin-bottom:.25rem}.reservation-name-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem}.reservation-name-row strong{margin-bottom:0}.reservation-dates{color:var(--muted);font-size:.85rem}.bookings-link{background:none;border:none;padding:0;color:var(--accent);font-size:.85rem;text-decoration:underline;cursor:pointer}.bookings-link:hover{color:var(--accent-hover)}.modal-reservations{max-width:720px}.modal-title-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.modal-title-row h2{margin:0}.empty-reservations{color:var(--muted);margin:0}.reservation-calendar{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem;margin:0 auto 1rem;max-width:300px}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;font-size:.9rem}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.2rem}.calendar-weekdays{margin-bottom:.25rem;color:var(--muted);font-size:.65rem;text-align:center}.calendar-day{height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.72rem;background:var(--surface);border:1px solid transparent}.calendar-day.empty{background:transparent}.calendar-day.reserved{background:#c9a22740;border-color:var(--accent);color:var(--text);font-weight:600}.calendar-day.today{border-color:var(--accent)}.calendar-legend{display:flex;gap:.75rem;margin-top:.5rem;font-size:.7rem;color:var(--muted)}.legend-item{display:inline-flex;align-items:center;gap:.35rem}.legend-swatch{width:10px;height:10px;border-radius:4px;border:1px solid var(--border)}.legend-swatch.reserved{background:#c9a22740;border-color:var(--accent)}.legend-swatch.today{border-color:var(--accent)}.reservations-list{display:flex;flex-direction:column;gap:.75rem}.reservation-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:1rem}.reservation-info{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.75rem}.reservation-info strong{font-size:.95rem}.reservation-info span{color:var(--muted);font-size:.85rem}.reservation-note{font-style:italic}.reservation-actions{display:flex;flex-wrap:wrap;gap:.5rem}.date-edit-form{border-top:1px solid var(--border);padding-top:.75rem}.date-edit-form .form-group{margin-bottom:.75rem}.clients-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:12px;overflow:hidden;border:1px solid var(--border)}.clients-table th,.clients-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.clients-table th{background:var(--bg);color:var(--muted);font-size:.85rem;font-weight:600}.clients-table tr:last-child td{border-bottom:none}.empty-state{text-align:center;padding:3rem;color:var(--muted)}.error-banner{background:#e74c3c26;border:1px solid var(--danger);color:#ff8a80;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.uploading{color:var(--muted);font-size:.85rem;margin-top:.5rem}.tags-list{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.tag{background:var(--bg);padding:.2rem .5rem;border-radius:4px;font-size:.8rem;color:var(--muted)}.setup-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.setup-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2rem;max-width:560px}.setup-card h1{margin-top:0}.setup-card pre{background:var(--bg);padding:.75rem 1rem;border-radius:8px;overflow-x:auto;font-size:.85rem}.setup-card ol{padding-left:1.25rem;line-height:1.7}.setup-note{margin-bottom:0;color:var(--muted)}.user-email{color:var(--muted);font-size:.9rem}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2rem;width:100%;max-width:400px}.login-card h1{margin:0 0 .25rem;color:var(--accent)}.login-subtitle{color:var(--muted);margin:0 0 1.5rem}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1.25rem;background:var(--bg);padding:.25rem;border-radius:8px}.auth-tabs button{border:none;background:transparent;color:var(--muted);padding:.5rem;border-radius:6px;font-weight:500}.auth-tabs button.active{background:var(--surface);color:var(--text)}.btn-full{width:100%;margin-top:.5rem}@media (max-width: 600px){.form-row{grid-template-columns:1fr}}
