@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700&family=Questrial&display=swap');

:root { --ink:#262626; --muted:#606060; --line:#dedede; --paper:#f7f7f7; --white:#fff; --gold:#c79619; --green:#176447; --red:#a23c32; --amber:#89650d; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body,input,select,button { letter-spacing:0; }
body { margin:0; color:var(--ink); background:linear-gradient(180deg,#fff 0%,#f7f7f7 100%); font-family:Manrope,sans-serif; min-height:100vh; }
.topbar { min-height:72px; padding:12px max(24px,calc((100vw - 1440px)/2)); display:flex; align-items:center; justify-content:space-between; gap:16px; background:#fff; color:var(--ink); border-bottom:2px solid var(--gold); }
a { color:inherit; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; font:400 23px Questrial,sans-serif; flex-shrink:0; }
.brand img { object-fit:contain; background:#fff; border-radius:4px; }
.brand span { color:var(--amber); font:600 12px Manrope,sans-serif; text-transform:uppercase; margin-left:10px; }
.session { display:flex; align-items:center; gap:16px; font-size:12px; min-width:0; }
.session span { overflow-wrap:anywhere; }
.session a { color:var(--ink); }
main { max-width:1440px; margin:auto; padding:30px 24px 60px; }
.heading,.section-title,.filters { display:flex; align-items:center; justify-content:space-between; gap:16px; }
h1,h2,p { margin:0; } h1 { font:400 32px Questrial,sans-serif; } h2 { font-size:17px; }
.eyebrow { color:var(--amber); font-size:11px; font-weight:700; text-transform:uppercase; margin-bottom:4px; }
.status { padding:8px 12px; border:1px solid var(--line); border-radius:4px; font-size:12px; font-weight:700; background:#fff; white-space:nowrap; }
.status.ok { color:var(--green); border-color:#9dc8b6; } .status.error { color:var(--red); border-color:#d7aaa5; }
.filters { justify-content:flex-start; margin:24px 0; padding:14px 0; border-block:1px solid var(--line); }
label { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:12px; font-weight:700; }
input,select,button { min-height:40px; border:1px solid #b9c3bd; border-radius:4px; background:#fff; color:var(--ink); font:600 13px Manrope,sans-serif; padding:8px 11px; }
input,select { min-width:0; }
button { display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; background:var(--gold); color:#171717; border-color:var(--gold); flex-shrink:0; }
button svg { width:16px; height:16px; flex-shrink:0; }
button:hover:not(:disabled) { filter:brightness(.92); }
:focus-visible { outline:3px solid #2e7998; outline-offset:3px; }
input[type="checkbox"] { width:17px; height:17px; min-height:17px; accent-color:var(--green); padding:0; }
input:disabled { background:#eef1ee; }
input[aria-invalid="true"] { border-color:var(--red); }
button[aria-busy="true"] svg { animation:turn 1.2s linear infinite; }
button.secondary { background:#fff; color:var(--ink); border-color:#bdbdbd; }
button:disabled { opacity:.55; cursor:not-allowed; }
#last-refresh { margin-left:auto; color:var(--muted); font-size:12px; }
#message { color:var(--red); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
#message:not(:empty) { padding:12px 14px; border-left:3px solid currentColor; background:#fff; margin-bottom:16px; }
.workspace { min-width:0; }
.inventory-area,.recovery-area,.audit-area,.daily-reservations-area,.operators-area { min-width:0; border-top:2px solid var(--ink); }
.section-title { padding:20px 0 14px; border-bottom:1px solid var(--line); }
.section-title p { color:var(--muted); font-size:12px; margin-top:3px; }
.table-wrap { overflow:auto; max-width:100%; background:#fff; } table { width:100%; border-collapse:collapse; font-size:12px; }
th,td { padding:12px 14px; text-align:left; border-bottom:1px solid var(--line); white-space:nowrap; }
th { color:var(--muted); font-size:10px; text-transform:uppercase; background:#f8faf8; }
td strong { font-size:15px; } td input[type="number"] { width:76px; }
.inventory-table { min-width:850px; table-layout:fixed; }
.inventory-table th:first-child { width:21%; }
.inventory-table th:nth-child(3) { width:17%; }
.inventory-table th:last-child { width:16%; }
.inventory-table td:not(:first-child):not(:nth-child(3)):not(:last-child) { font-variant-numeric:tabular-nums; font-size:16px; }
.inventory-table td { white-space:normal; vertical-align:middle; }
.room-name strong { display:block; line-height:1.5; font-size:13px; overflow-wrap:anywhere; }
.room-code { display:block; color:var(--muted); font-size:11px; margin-bottom:4px; }
.quota-control { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.quota-control label { white-space:nowrap; }
.row-actions { display:flex; gap:6px; }
.icon-button { width:40px; height:40px; padding:8px; }
.icon-fallback { font-size:8px; }
.icon-button:has(svg) .icon-fallback { display:none; }
.row-state { display:block; margin-top:6px; color:var(--muted); font-size:10px; line-height:1.5; overflow-wrap:anywhere; }
.is-dirty { background:#fff8e8; }
.is-dirty .row-state,.draft-count { color:var(--amber); }
.draft-count { font-size:12px; font-weight:700; }
.inventory-summary { display:grid; grid-template-columns:repeat(4,1fr); margin:0 0 28px; border-block:1px solid var(--line); }
.inventory-summary > div { padding:20px; border-right:1px solid var(--line); }
.inventory-summary > div:first-child { padding-left:0; }
.inventory-summary > div:last-child { border:0; }
.inventory-summary span { display:block; font-size:12px; color:var(--muted); }
.inventory-summary strong { display:block; margin-top:5px; font-size:28px; font-variant-numeric:tabular-nums; }
.inventory-summary .sale-total { color:var(--green); }
.held { color:var(--amber); }
.section-message { font-size:12px; color:var(--red); line-height:1.6; overflow-wrap:anywhere; }
.section-message:not(:empty) { padding:12px 0; }
.section-message[data-kind="success"] { color:var(--green); }
.section-message[data-kind="loading"] { color:var(--muted); }
.effective { color:var(--green); }
.empty { color:var(--muted); text-align:center; padding:28px; }
.recovery-area { margin-top:32px; }
.payments-list { max-height:320px; overflow:auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.payments-list > .empty { grid-column:1/-1; }
.payment { padding:13px 14px; border-bottom:1px solid var(--line); }
.payment header { display:flex; justify-content:space-between; gap:8px; font-size:11px; }
.payment code { display:block; margin-top:10px; font-size:11px; overflow-wrap:anywhere; white-space:normal; }
.payment p { margin-top:6px; color:var(--red); font-size:11px; }
.audit-area { margin-top:28px; }
.daily-reservations-area,.operators-area { margin-top:28px; }
.section-actions { display:flex; align-items:center; gap:10px; }
.reservation-summary { padding:11px 14px; color:var(--muted); border-bottom:1px solid var(--line); font-size:12px; }
.operator-form { display:grid; grid-template-columns:repeat(3,minmax(150px,1fr)); gap:16px; padding:20px 0; border-bottom:1px solid var(--line); }
.operator-form label { display:grid; align-items:initial; gap:6px; }
.operator-form input,.operator-form select { width:100%; }
.operator-form button { align-self:end; }
.login-shell { min-height:calc(100vh - 64px); display:grid; place-items:center; }
.login-shell[hidden], #admin-workspace[hidden] { display:none; }
.login-panel { width:min(420px,100%); padding:30px; background:#fff; border-top:3px solid var(--gold); box-shadow:0 18px 45px rgba(23,23,23,.08); }
.login-panel h1 { margin-bottom:8px; }
.login-panel > p { margin-bottom:22px; color:var(--muted); line-height:1.5; }
.login-panel label { display:grid; gap:7px; margin-top:14px; }
.login-panel input { width:100%; height:44px; }
.login-panel button { width:100%; height:44px; margin-top:20px; }
.auth-divider { display:flex; align-items:center; gap:10px; margin:20px 0 14px; color:var(--muted); font-size:11px; }
.auth-divider::before,.auth-divider::after { content:''; height:1px; flex:1; background:var(--line); }
.google-signin { display:flex; justify-content:center; min-height:40px; }
#admin-login-message { min-height:20px; margin:12px 0 0; color:var(--red); font-size:12px; }
@keyframes turn { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } button[aria-busy="true"] svg { animation:none; } }
@media (max-width:900px) { .heading { align-items:flex-start; flex-wrap:wrap; } .filters,.section-actions { flex-wrap:wrap; } .operator-form { grid-template-columns:repeat(2,minmax(0,1fr)); } #last-refresh { width:100%; margin:0; } main { padding-inline:16px; } .topbar { padding-inline:16px; flex-wrap:wrap; } .session span { display:none; } .payments-list { grid-template-columns:1fr; } .section-title { flex-wrap:wrap; } }
@media (max-width:540px) { h1 { font-size:28px; } .brand span { display:none; } .session { gap:10px; } .session button { font-size:11px; } .filters label { display:grid; gap:6px; flex:1; } .filters input { width:100%; } .inventory-summary { grid-template-columns:repeat(2,1fr); } .inventory-summary > div { padding:16px 12px; } .inventory-summary > div:first-child { padding-left:12px; } .inventory-summary > div:nth-child(2) { border:0; } .inventory-summary > div:nth-child(-n+2) { border-bottom:1px solid var(--line); } .inventory-summary span { font-size:11px; } .operator-form { grid-template-columns:1fr; } .section-actions { width:100%; } .section-actions label { flex:1; } .section-actions input { width:100%; } .login-panel { padding:22px; } }
@media (max-width:540px) {
	.filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
	.filters button,#last-refresh { grid-column:1/-1; }
}
