@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap");:root{--bg:#f4efe8;--bg-soft:#fbf7f2;--ink:#1d1913;--ink-soft:#4b4439;--accent:#0f5d4b;--accent-2:#d07d2e;--danger:#b33a30;--warning:#9c6a13;--panel:#fffaf3;--panel-2:#f3eadf;--line:#d7c7b5;--line-strong:#c3b19d;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-1:8px;--radius-2:12px;--radius-3:16px;--shadow-1:0 8px 24px rgba(16,29,24,.06)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Space Grotesk,system-ui,sans-serif}a{color:inherit;text-decoration:none}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--line);background:linear-gradient(120deg,var(--panel),var(--panel-2));box-shadow:var(--shadow-1)}.app-brand{display:flex;align-items:baseline;gap:var(--space-3)}.app-brand__name{font-size:20px;font-weight:700}.app-brand__meta{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:12px}.app-nav{display:flex;gap:var(--space-2)}.app-nav__link{padding:8px 10px;border-radius:var(--radius-1);color:var(--ink-soft);transition:background-color .12s ease,color .12s ease}.app-nav__link:hover{background:var(--panel);color:var(--ink)}.app-nav__link--active{background:var(--accent);color:#f7fffc}.page-shell{padding:var(--space-6);max-width:1200px;margin:0 auto}.ui-page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5)}.ui-page-title h1{margin:0;font-size:30px;line-height:1.1}.ui-page-title p{margin:6px 0 0;color:var(--ink-soft)}.ui-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-4)}.ui-button{border:1px solid transparent;border-radius:var(--radius-1);font:inherit;font-weight:500;padding:8px 12px;cursor:pointer;transition:filter .12s ease,transform .12s ease,background-color .12s ease}.ui-button:hover{filter:brightness(.98)}.ui-button:active{transform:translateY(1px)}.ui-button:disabled{opacity:.55;cursor:not-allowed}.ui-button--primary{background:var(--accent);color:#f7fffc}.ui-button--secondary{background:var(--panel-2);color:var(--ink);border-color:var(--line)}.ui-button--danger{background:color-mix(in srgb,var(--danger) 15%,var(--panel));border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:#7f1f17}.ui-button--ghost{background:transparent;border-color:var(--line);color:var(--ink-soft)}.ui-input,.ui-select{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-1);padding:9px 10px;font:inherit;background:#fff}.app-nav__link:focus-visible,.ui-button:focus-visible,.ui-input:focus-visible,.ui-link:focus-visible,.ui-select:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.ui-link{color:var(--accent);font-weight:500}.ui-link:hover{text-decoration:underline}.ui-badge{display:inline-flex;align-items:center;border-radius:999px;font-size:12px;font-weight:600;padding:3px 10px;border:1px solid var(--line);background:var(--panel-2)}.ui-badge--confirmed{background:color-mix(in srgb,var(--accent) 16%,var(--panel));border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}.ui-badge--pending{background:color-mix(in srgb,var(--warning) 18%,var(--panel));border-color:color-mix(in srgb,var(--warning) 45%,var(--line))}.ui-badge--checked-in{background:color-mix(in srgb,#2563eb 18%,var(--panel));border-color:color-mix(in srgb,#2563eb 45%,var(--line))}.ui-badge--checked-out{background:color-mix(in srgb,#475569 15%,var(--panel));border-color:color-mix(in srgb,#475569 45%,var(--line))}.ui-badge--cancelled{background:color-mix(in srgb,var(--danger) 14%,var(--panel));border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.ui-alert{margin:0;border:1px solid var(--line);border-radius:var(--radius-1);padding:10px 12px}.ui-alert--error{color:#842620;background:color-mix(in srgb,var(--danger) 10%,var(--panel));border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.ui-alert--success{color:#0e4a3c;background:color-mix(in srgb,var(--accent) 10%,var(--panel));border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.ui-alert--warning{color:#6d4a0d;background:color-mix(in srgb,var(--warning) 10%,var(--panel));border-color:color-mix(in srgb,var(--warning) 40%,var(--line))}.ui-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius-2);background:var(--panel)}.ui-table{width:100%;border-collapse:collapse}.ui-table td,.ui-table th{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.ui-table thead th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.ui-table tbody tr:hover{background:var(--bg-soft)}.ui-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.ui-metric-value{margin:0;font-size:28px;line-height:1.1}.ui-stack-2{display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.ui-stack-3{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.ui-row{gap:var(--space-2)}.ui-row,.ui-toolbar{display:flex;align-items:center;flex-wrap:wrap}.ui-toolbar{justify-content:space-between;gap:var(--space-3)}.ui-chip{border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:var(--panel-2);color:var(--ink-soft);font:inherit;cursor:pointer}.ui-chip--active{background:var(--accent);color:#f7fffc;border-color:var(--accent)}.ui-mono{font-family:IBM Plex Mono,monospace;font-size:12px}.ui-subtle{color:var(--ink-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media (max-width:900px){.app-header{align-items:flex-start;flex-direction:column}.ui-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.page-shell{padding:var(--space-4)}.ui-grid-4{grid-template-columns:1fr}}