:root{color:#0f172a;--border:#94a3b83d;--border-soft:#94a3b829;--panel:#ffffffdb;--panel-subtle:#f8fafce0;--muted:#64748b;--text-main:#0f172a;--shadow-soft:0 20px 50px #0f172a17;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-top-left:#2563eb1f;--bg-top-right:#6366f11a;--bg-main-start:#f8fbff;--bg-main-mid:#eef4ff;--bg-main-end:#f8fafc;--input-bg:#fffffff0;--button-text:#fff;background:#f3f6fb;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.45}*{box-sizing:border-box}body{background:radial-gradient(circle at top left, var(--bg-top-left), transparent 28%), radial-gradient(circle at top right, var(--bg-top-right), transparent 24%), linear-gradient(180deg, var(--bg-main-start) 0%, var(--bg-main-mid) 46%, var(--bg-main-end) 100%);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit;border:1px solid var(--border);background:var(--input-bg);border-radius:11px;padding:7px 10px}button{cursor:pointer;color:var(--button-text);letter-spacing:.01em;background:linear-gradient(#2563eb,#1d4ed8);border:none;font-size:11.5px;font-weight:700;line-height:1.05;transition:transform .12s,box-shadow .12s,opacity .12s,background .12s;box-shadow:0 8px 16px #2563eb2e}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 20px #2563eb38}button:active:not(:disabled){transform:translateY(0)}button:disabled{cursor:not-allowed;opacity:.6;box-shadow:none}input,select{color:var(--text-main);transition:border-color .12s,box-shadow .12s,background .12s}input:focus,select:focus{background:#fff;border-color:#2563eb73;outline:none;box-shadow:0 0 0 4px #2563eb1f}h1,h2,p{margin:0}h1{letter-spacing:-.03em;font-size:clamp(26px,4vw,38px);line-height:1.05}h2{letter-spacing:-.02em;font-size:17px;line-height:1.15}#root{width:100%;min-height:100vh;margin:0 auto}@media (prefers-color-scheme:dark){:root{color:#e5eefb;--border:#94a3b82e;--border-soft:#94a3b81f;--panel:#091221c7;--panel-subtle:#0f172ab8;--muted:#94a3b8;--text-main:#eff6ff;--shadow-soft:0 24px 60px #0208176b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-top-left:#2563eb2e;--bg-top-right:#a855f724;--bg-main-start:#08101d;--bg-main-mid:#0b1527;--bg-main-end:#07111f;--input-bg:#0f172ae0;--button-text:#eff6ff;background:#07111f}body{background-attachment:fixed}}.public-shell,.admin-login-shell{place-items:center;min-height:100vh;padding:14px;display:grid}.public-card,.admin-login-card,.panel,.subpanel,.nested-panel,.button-editor,.room-card,.reservation-card{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:18px}.public-card,.admin-login-card{width:min(440px,100%);padding:18px 16px 16px}.public-card{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 94%, white 6%), var(--panel)), linear-gradient(135deg, #2563eb14, transparent 42%);position:relative;overflow:hidden}.public-card:before{content:"";pointer-events:none;background:linear-gradient(#2563eb14,#0000);width:100%;height:120px;position:absolute;inset:0 auto auto 0}.brand-lockup{text-align:center;justify-items:center;gap:8px;margin-bottom:8px;display:grid;position:relative}.brand-lockup h1{white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin:0;line-height:1.05;overflow:hidden}.brand-logo{object-fit:contain;filter:drop-shadow(0 10px 18px #0f172a24);border-radius:18px;width:68px;height:68px}.login-pane,.guest-pane{gap:8px;display:grid}.panel-section{gap:6px;display:grid}.section-heading h2{color:var(--text-main);margin:0;font-size:13px}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.guest-meta{text-align:center;color:var(--muted);background:linear-gradient(180deg, var(--panel-subtle), color-mix(in srgb, var(--panel-subtle) 92%, white 8%));border:1px solid var(--border-soft);border-radius:16px;gap:4px;padding:8px 10px;display:grid;box-shadow:inset 0 1px #ffffff2e}.guest-meta-hero{margin-bottom:8px;padding:7px 10px}.guest-meta-controls{scrollbar-width:thin;flex-wrap:nowrap;justify-content:flex-start;align-items:end;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.guest-meta-summary{scrollbar-width:thin;white-space:nowrap;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:8px;padding-bottom:2px;font-size:10.5px;line-height:1.2;display:flex;overflow-x:auto}.guest-meta-hero .guest-meta-summary{white-space:normal;flex-wrap:wrap;justify-content:center;row-gap:6px;overflow:visible}.guest-meta-summary strong,.guest-meta-summary span{flex:none}.guest-meta-hero .guest-meta-summary strong,.guest-meta-hero .guest-meta-summary span{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--panel) 84%, white 16%);border-radius:999px;padding:3px 7px}.floating-toast{z-index:8;pointer-events:none;margin:0;animation:.18s toast-in;position:absolute;inset:10px 12px auto}.guest-meta-summary strong{color:var(--text-main);font-size:11px}.branding-preview{border:1px solid var(--border-soft);background:var(--panel-subtle);border-radius:14px;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;display:flex}.branding-preview-logo{object-fit:contain;border:1px solid var(--border);background:#ffffffeb;border-radius:12px;width:52px;height:52px;padding:6px}.branding-preview-text{gap:2px;display:grid}.branding-preview-text strong{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;line-height:1.05;display:block;overflow:hidden}.branding-preview-text span{color:var(--muted);font-size:11px}.guest-language-picker{color:var(--muted);flex:none;justify-items:center;gap:3px;font-size:10px;font-weight:700;display:inline-grid}.guest-language-picker select{min-width:98px;min-height:30px;padding:4px 24px 4px 8px;font-size:10.5px}.guest-code-entry{gap:6px;display:grid}.guest-code-entry span{text-align:center;color:#1d4ed8;letter-spacing:.01em;font-size:12px;font-weight:800}.guest-code-entry input{background:color-mix(in srgb, var(--panel) 84%, white 16%);text-align:center;letter-spacing:.18em;text-transform:uppercase;border:2px solid #2563eb57;border-radius:16px;min-height:54px;padding:10px 14px;font-size:22px;font-weight:800;box-shadow:0 0 0 6px #2563eb14,0 14px 30px #2563eb24}.guest-code-entry input::placeholder{letter-spacing:.04em;color:color-mix(in srgb, var(--muted) 88%, white 12%);font-size:14px;font-weight:700}.guest-meta-season-row{flex-wrap:nowrap;flex:none;gap:4px}.rooms-grid,.reservation-grid,.stack-grid,.admin-grid{gap:10px;display:grid}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-card,.reservation-card,.subpanel,.nested-panel,.button-editor,.panel{padding:12px}.room-card,.reservation-card,.subpanel,.nested-panel,.button-editor{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 98%, white 2%), var(--panel-subtle))}.room-card h2,.panel h2{margin-bottom:8px}.room-card h2{margin-bottom:0;font-size:13px}.room-card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.always-visible-room .room-card-head{margin-bottom:8px}.collapsible-room{padding:8px}.collapsible-room.open{padding-bottom:12px}.room-toggle{text-align:left;background:color-mix(in srgb, var(--panel-subtle) 88%, white 12%);width:100%;min-height:32px;color:var(--text-main);box-shadow:none;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:6px 8px;display:flex}.room-toggle-title{font-size:12px;font-weight:800}.room-toggle-state{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.room-panel-body{gap:8px;margin-top:8px;display:grid}.season-badge-row{flex-wrap:wrap;gap:6px;display:flex}.season-chip{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 82%, white 18%);min-height:20px;color:var(--muted);letter-spacing:.02em;box-shadow:none;white-space:nowrap;border-radius:999px;padding:3px 7px;font-size:9.5px;font-weight:800}.season-chip.summer.active{color:#1d4ed8;background:#2563eb1a;border-color:#2563eb38}.season-chip.always.active{color:#334155;background:#4755691a;border-color:#4755693d}.season-chip.winter.active{color:#dc2626;background:#dc26261a;border-color:#dc26263d}.button-stack{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:6px;display:grid}.room-action{text-align:center;letter-spacing:.01em;white-space:normal;border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:26px;padding:5px 8px;font-size:10.5px;font-weight:700;line-height:1.1;display:inline-flex;position:relative;box-shadow:0 6px 14px #2563eb24}.room-action:after{content:attr(data-description);color:#fff;opacity:0;pointer-events:none;white-space:normal;z-index:6;background:#0f172af5;border-radius:10px;min-width:140px;max-width:min(260px,80vw);padding:8px 10px;font-size:12px;font-weight:500;line-height:1.35;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px);box-shadow:0 16px 28px #0f172a3d}.room-action[data-description=""]:after{content:none}.room-action:hover:after,.room-action:focus-visible:after{opacity:1;transform:translate(-50%)translateY(0)}.ghost-button,.secondary-button{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 82%, white 18%);color:var(--text-main);box-shadow:none}.ghost-button,.secondary-button,.topbar-actions>button,.inline-actions>button{border-radius:10px;min-height:28px;padding:5px 9px;font-size:10.5px}.color-input{border-radius:10px;block-size:34px;inline-size:54px;padding:2px}.ghost-button:hover,.secondary-button:hover{background:color-mix(in srgb, var(--panel) 70%, white 30%)}@media (prefers-color-scheme:dark){.public-card{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 92%, #0f172a 8%), var(--panel)), linear-gradient(135deg, #2563eb24, transparent 42%)}.public-card:before{background:linear-gradient(#60a5fa1f,#0000)}.brand-logo{filter:drop-shadow(0 12px 26px #0208176b)}.guest-meta,.branding-preview{box-shadow:inset 0 1px #ffffff0a,0 14px 28px #0208172e}.guest-meta-hero .guest-meta-summary strong,.guest-meta-hero .guest-meta-summary span{background:color-mix(in srgb, var(--panel-subtle) 90%, #0f172a 10%)}.guest-code-entry span{color:#93c5fd}.guest-code-entry input{background:color-mix(in srgb, var(--panel-subtle) 88%, #0f172a 12%);border-color:#60a5fa6b;box-shadow:0 0 0 6px #2563eb1f,0 18px 34px #02081747}.room-toggle,.ghost-button,.secondary-button,.season-chip{background:color-mix(in srgb, var(--panel-subtle) 92%, #0f172a 8%)}.room-action:after{color:#eff6ff;background:#020817fa}}.admin-shell{gap:12px;max-width:1480px;padding:12px;display:grid}.admin-topbar,.panel-head,.subpanel-head,.topbar-actions,.inline-actions,.health-strip{gap:8px;display:flex}.admin-topbar,.panel-head,.subpanel-head{justify-content:space-between;align-items:flex-start}.admin-topbar{z-index:8;border:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-soft);background:#ffffffc7;border-radius:18px;padding:12px 14px;position:sticky;top:12px}.panel-head,.subpanel-head{margin-bottom:8px}.panel-head h2,.subpanel-head strong{color:var(--text-main)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px 10px;margin-top:6px;display:grid}.form-grid label{color:var(--muted);gap:4px;font-size:11px;font-weight:600;display:grid}.full-width{grid-column:1/-1}.checkbox-row{align-items:center;gap:8px;margin-top:20px;color:var(--text-main)!important;display:flex!important}.checkbox-row input{width:auto;margin:0}.banner{border:1px solid #0000;border-radius:12px;margin:0;padding:10px 12px;font-size:12px;font-weight:600}.banner.error{color:#b91c1c;background:#ef444414;border-color:#ef444424}.banner.success{color:#047857;background:#10b9811a;border-color:#10b9812e}.pill{border:1px solid var(--border);background:#ffffffdb;border-radius:999px;padding:5px 9px;font-size:10.5px;font-weight:700}.pill.ok{color:#047857}.pill.warn{color:#b45309}.topbar-kicker,.muted-text,.reservation-card span,.empty-state{color:var(--muted)}.topbar-kicker{letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-size:11px;font-weight:800}.muted-text{font-size:11px;line-height:1.35}.reservation-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.reservation-card{gap:3px;font-size:11px;display:grid}.reservation-card strong{color:var(--text-main);font-size:12px}.empty-state{margin:0;padding:8px 0;font-size:11px}@media (width>=821px){.rooms-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}@media (width<=980px){.admin-grid{grid-template-columns:1fr}}@media (width<=760px){.public-shell,.admin-login-shell{padding:10px}.public-card,.admin-login-card{border-radius:16px;width:100%;padding:18px 14px}.admin-shell{gap:10px;padding:10px}.admin-topbar,.panel-head,.subpanel-head,.room-card-head,.branding-preview,.room-toggle,.topbar-actions,.inline-actions,.health-strip{flex-direction:column}.admin-topbar{padding:10px 12px;top:8px}.topbar-actions>button,.inline-actions>button{width:100%}.panel,.subpanel,.nested-panel,.button-editor,.room-card,.reservation-card{border-radius:14px;padding:10px}.room-action{border-radius:9px;min-height:24px;padding:4px 7px;font-size:10px}.guest-meta{padding:8px}.guest-meta-controls,.guest-meta-summary{gap:6px}.guest-code-entry input{min-height:48px;font-size:18px}.button-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:1fr}.reservation-grid,.stack-grid,.rooms-grid{gap:10px}}
