@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@500;600;700&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* --- design system tokens (hotel-reservation) --- */
:root{
/* chrome (dark, recedes) */
--ink-900:#10151C;--ink-700:#1E2833;--ink-500:#48596B;--ink-300:#8FA0B0;
/* work surface (near white, holds data) */
--paper:#FBFCFD;--paper-sunk:#F1F4F7;--rule:#DFE5EB;--text:#0F1721;--text-muted:#5B6B7C;
/* brass accent, sparingly: primary buttons, focus rings, selected cell */
--brass-600:#A8791F;--brass-500:#C9932E;--brass-100:#F7EDD6;
/* status */
--status-vacant-bg:#E8F3EC;--status-vacant-fg:#1B6B3A;
--status-occupied-bg:#E4EDF7;--status-occupied-fg:#1B4F86;
--status-arriving-bg:#FDF0DC;--status-arriving-fg:#8A5A08;
--status-departing-bg:#F3ECF9;--status-departing-fg:#5B3486;
--status-dirty-bg:#FBEDE6;--status-dirty-fg:#93400E;
--status-ooo-bg:#F0F1F3;--status-ooo-fg:#47525E;
--status-closed-bg:#FBE9E9;--status-closed-fg:#9B1C1C;
/* semantic aliases */
--chrome:var(--ink-900);--chrome-raised:var(--ink-700);--chrome-text:var(--ink-500);--chrome-text-bright:#C9D3DD;
--surface:var(--paper);--surface-sunk:var(--paper-sunk);--border:var(--rule);
--accent:var(--brass-600);--accent-hover:var(--brass-500);--accent-wash:var(--brass-100);
--focus-ring:var(--brass-600);--danger:#9B1C1C;--danger-wash:#FBE9E9;

--font-display:'Söhne','GT America','Inter Tight',system-ui,sans-serif;
--font-body:'Inter',system-ui,sans-serif;
--font-mono:'IBM Plex Mono',ui-monospace,'SF Mono',monospace;
--type-display:600 28px/32px var(--font-display);--track-display:-0.02em;
--type-h1:600 20px/26px var(--font-display);--track-h1:-0.01em;
--type-h2:600 16px/22px var(--font-display);
--type-body:400 14px/20px var(--font-body);
--type-small:400 13px/18px var(--font-body);
--type-micro:500 11px/14px var(--font-body);--track-micro:0.06em;
--type-data:500 13px/18px var(--font-mono);
--type-data-lg:500 16px/20px var(--font-mono);

/* 8px base, 4px half-steps in dense tables */
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;
--pad-page:24px;--pad-card:16px;--pad-dense:12px;
--sidebar-w:224px;--sidebar-w-collapsed:56px;--topbar-h:52px;
--row-h:36px;--row-h-compact:30px;--row-h-touch:44px;
--container-agency:1120px;--container-guest:680px;
--radius-input:3px;--radius-card:6px;--radius-dialog:10px;
--edge-highlight:inset 0 1px 0 rgba(255,255,255,0.7);
--shadow-overlay:0 8px 24px rgba(15,23,33,0.14);
--dur-fast:80ms;--dur-med:140ms;--dur-slow:220ms;
--ease:cubic-bezier(0.2,0,0,1);
}

/* --- base --- */
*{box-sizing:border-box}
body{margin:0;background:var(--ink-900);color:var(--text);font:var(--type-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
a{color:var(--brass-600);text-decoration:none;transition:color var(--dur-fast) var(--ease)}
a:hover{color:var(--brass-500)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}
::selection{background:var(--brass-100)}
code,.data{font:var(--type-data);font-variant-numeric:tabular-nums}

/* --- page --- */
@keyframes qx-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes qx-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes qx-rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

.nav-link:hover,.foot-link:hover{color:#FFFFFF}
.btn-brass:hover{filter:brightness(1.08);color:#FFFFFF}
.btn-brass:active{filter:brightness(0.92)}
.btn-ghost:hover{border-color:#FFFFFF;color:#FFFFFF}
.card-link:hover{border-color:var(--brass-600)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-property:opacity!important;animation:none!important}
  .qx-track,.qx-float,.qx-rise{animation:none!important}
}
