:root{--primary:#111;--primary-active:#242424;--primary-disabled:#e5e7eb;--ink:#111;--body:#374151;--muted:#6b7280;--muted-soft:#898989;--hairline:#e5e7eb;--hairline-soft:#f3f4f6;--canvas:#fff;--surface-soft:#f8f9fa;--surface-card:#f5f5f5;--surface-dark:#101010;--surface-dark-elevated:#1a1a1a;--on-primary:#fff;--success:#10b981;--warning:#f59e0b;--error:#ef4444;color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:var(--body);background:var(--canvas)}button,input,textarea,select{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:not-allowed}h1,h2,h3,p{margin:0}h1,h2,h3,.brand-mark{color:var(--ink);letter-spacing:0;font-weight:600}h1{font-size:clamp(32px,5vw,64px);line-height:1.05}h2{font-size:22px;line-height:1.3}.auth-layout{grid-template-columns:minmax(0,1fr) 430px;align-items:center;gap:48px;max-width:1180px;min-height:100vh;margin:0 auto;padding:48px 24px;display:grid}.auth-copy{gap:24px;display:grid}.brand-mark{font-size:18px}.auth-copy p{max-width:620px;color:var(--muted);font-size:18px;line-height:1.5}.auth-card,.card{background:var(--surface-card);border-radius:12px;padding:32px}.auth-card{background:var(--canvas);border:1px solid var(--hairline);box-shadow:0 4px 12px #00000014}.auth-heading{gap:8px;margin-bottom:24px;display:grid}.auth-heading p{color:var(--muted);line-height:1.5}.auth-switch{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px;font-size:13px;display:flex}.auth-switch button,.back-link{color:var(--ink);background:0 0;border:0;padding:0;font-size:13px;font-weight:600}.back-link{justify-self:start;margin-bottom:4px}.product-fragment{border:1px solid var(--hairline);background:var(--canvas);border-radius:16px;max-width:560px;padding:24px;box-shadow:0 4px 12px #00000014}.fragment-bar{gap:8px;margin-bottom:18px;display:flex}.fragment-bar span{background:var(--hairline);border-radius:999px;width:10px;height:10px}.fragment-bar{align-items:center}.fragment-bar strong{color:var(--ink);margin-left:auto;font-size:14px}.status-board{gap:10px;display:grid}.status-row{border:1px solid var(--hairline);background:var(--surface-soft);border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;min-height:64px;padding:14px 16px;display:grid}.status-row div{gap:4px;min-width:0;display:grid}.status-row strong{color:var(--ink)}.status-row span{color:var(--muted);font-size:14px}.status-row small{background:var(--surface-card);color:var(--muted);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:500}.status-row small.success{color:#047857;background:#d1fae5}.status-row small.warning{color:#92400e;background:#fef3c7}.status-row small.muted{color:var(--muted);background:var(--hairline)}.auth-grid-preview{gap:18px;display:grid}.preview-head,.preview-foot{justify-content:space-between;align-items:center;gap:16px;display:flex}.preview-head div{gap:4px;display:grid}.preview-head strong,.preview-foot b{color:var(--ink);font-size:16px}.preview-head span,.preview-foot span{color:var(--muted);font-size:13px}.preview-head small{background:var(--surface-card);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.preview-calendar-grid{border:1px solid var(--hairline);background:var(--surface-soft);border-radius:12px;grid-template-columns:repeat(15,minmax(0,1fr));gap:6px;padding:18px;display:grid}.preview-calendar-grid span{aspect-ratio:1;border:1px solid var(--hairline);background:var(--surface-card);border-radius:4px}.preview-calendar-grid span.available{background:var(--canvas)}.preview-calendar-grid span.selected{border-color:var(--ink);background:var(--ink)}.pill-tabs,.nav-pills{background:var(--surface-soft);border-radius:999px;gap:6px;padding:6px;display:flex}.pill-tabs{margin-bottom:24px}.pill-tabs button,.nav-pills button{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:500;display:inline-flex}.pill-tabs .active,.nav-pills .active{color:var(--ink);background:var(--canvas);box-shadow:0 1px 2px #0000000d}.form-stack,.inline-form{gap:16px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:16px;display:grid}.field{color:var(--ink);gap:8px;font-size:14px;font-weight:600;display:grid}input,textarea,select{border:1px solid var(--hairline);background:var(--canvas);width:100%;min-height:40px;color:var(--ink);border-radius:8px;outline:none;padding:10px 14px}textarea{resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--ink)}.button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:12px 20px;font-size:14px;font-weight:600;display:inline-flex}.button.primary{color:var(--on-primary);background:var(--primary)}.button.primary:active{background:var(--primary-active)}.button.secondary{color:var(--ink);background:var(--canvas);border-color:var(--hairline)}.button.ghost{color:var(--ink);border-color:var(--hairline);background:0 0}.button:disabled{color:var(--muted);background:var(--primary-disabled)}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{background:var(--canvas);flex-direction:column;min-height:100vh;display:flex}.top-nav{z-index:20;border-bottom:1px solid var(--hairline-soft);background:#fffffff0;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:16px;min-height:64px;padding:12px 24px;display:grid;position:sticky;top:0}.brand-button{color:var(--ink);background:0 0;border:0;font-size:18px;font-weight:600}.nav-pills{justify-self:center;max-width:100%;overflow-x:auto}.nav-pills::-webkit-scrollbar{height:0}.slot-wall-scroll::-webkit-scrollbar{height:0}.user-chip{color:var(--ink);white-space:nowrap;align-items:center;gap:8px;font-size:14px;font-weight:500;display:inline-flex}.icon-button{border:1px solid var(--hairline);background:var(--canvas);width:36px;height:36px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.content{gap:24px;width:min(1200px,100% - 48px);margin:0 auto;padding:48px 0 96px;display:grid}.page-head{justify-content:space-between;align-items:end;gap:24px;display:flex}.eyebrow{color:var(--muted);margin-bottom:8px;font-size:13px;font-weight:500;display:block}.status-pill{background:var(--surface-card);color:var(--ink);border-radius:999px;align-self:center;padding:4px 12px;font-size:13px;font-weight:500}.page-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:24px;display:grid}.room-list-page,.room-detail-page,.compact-page,.credential-page{min-width:0}.card-title{color:var(--ink);align-items:center;gap:12px;margin-bottom:24px;display:flex}.toolbar{flex-wrap:wrap;align-items:end;gap:16px;margin-bottom:20px;display:flex}.page-toolbar{justify-content:space-between;align-items:center}.credential-page{width:min(760px,100%)}.credential-intro{gap:12px;margin-bottom:20px;display:grid}.credential-intro .status-pill{place-self:auto start}.credential-intro p{max-width:620px;color:var(--muted);line-height:1.6}.credential-form{gap:16px;display:grid}.credential-form textarea{min-height:180px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;line-height:1.5}.three-day-head{justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px;display:flex}.date-strip{flex-wrap:wrap;gap:8px;display:flex}.date-strip span{background:var(--canvas);border:1px solid var(--hairline);min-height:32px;color:var(--ink);border-radius:999px;align-items:center;padding:4px 12px;font-size:13px;font-weight:500;display:inline-flex}.room-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.room-card{text-align:left;border:1px solid var(--hairline);background:var(--canvas);min-height:220px;color:var(--body);border-radius:12px;gap:14px;padding:18px;display:grid}.room-card:hover,.room-card:focus-visible{border-color:var(--ink);outline:none}.room-card strong,.list-row strong{color:var(--ink);font-size:16px}.room-card span,.room-card small,.list-row span,.list-row small{color:var(--muted);line-height:1.5}.room-card.selected{border-color:var(--ink);box-shadow:0 4px 12px #00000014}.room-card-main{gap:4px;display:grid}.room-day-ranges{gap:8px;display:grid}.room-day-range{background:var(--surface-soft);border-radius:8px;grid-template-columns:70px minmax(0,1fr);align-items:start;gap:10px;min-height:42px;padding:10px;display:grid}.room-day-range b{color:var(--ink);white-space:nowrap;font-size:13px;font-weight:600}.room-day-range small{color:var(--muted);font-size:13px}.room-card-action{background:var(--surface-dark);border-radius:999px;place-self:end start;align-items:center;min-height:32px;padding:4px 12px;font-size:13px;font-weight:600;display:inline-flex;color:var(--on-primary)!important}.back-button{border:1px solid var(--hairline);background:var(--canvas);min-height:40px;color:var(--ink);border-radius:8px;justify-self:start;align-items:center;gap:6px;margin-bottom:12px;padding:8px 12px;font-size:14px;font-weight:600;display:inline-flex}.room-detail-head{justify-content:space-between;align-items:start;gap:16px;display:flex}.room-detail-head p{color:var(--muted);margin-top:6px;line-height:1.5}.selected-room{border:1px dashed var(--hairline);min-height:48px;color:var(--ink);background:var(--canvas);border-radius:12px;place-items:center;display:grid}.square-time-picker{gap:16px;min-width:0;display:grid}.slot-legend{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:13px;display:flex}.slot-legend span{align-items:center;gap:6px;display:inline-flex}.slot-legend i{border:1px solid var(--hairline);border-radius:4px;width:12px;height:12px;display:inline-block}.legend-available{background:var(--canvas)}.legend-selected{background:var(--ink);border-color:var(--ink)!important}.legend-disabled{background:var(--surface-card)}.slot-wall-scroll{max-width:100%;padding-bottom:6px;overflow-x:auto}.slot-wall{border:1px solid var(--hairline);background:var(--canvas);border-radius:12px;gap:12px;min-width:760px;padding:16px;display:grid}.slot-wall-head,.slot-day-row{grid-template-columns:130px minmax(0,1fr);align-items:center;gap:14px;display:grid}.slot-day-spacer{color:var(--muted);font-size:12px;font-weight:500}.slot-hour-line,.slot-cells{grid-template-columns:repeat(28,18px);gap:4px;display:grid}.slot-hour-line span{min-width:18px;min-height:16px;color:var(--muted-soft);font-size:10px;line-height:1}.slot-hour-line .full-hour{color:var(--muted);transform:translate(-4px)}.slot-day-label{gap:4px;min-width:0;display:grid}.slot-day-label strong{color:var(--ink);font-size:14px}.slot-day-label small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.35;overflow:hidden}.slot-cell{aspect-ratio:1;border:1px solid var(--hairline);background:var(--surface-card);border-radius:4px;width:18px;height:18px;min-height:18px;padding:0}.slot-cell.available{background:var(--canvas);color:var(--ink)}.slot-cell.available:hover,.slot-cell.available:focus-visible{border-color:var(--ink);outline:none}.slot-cell.selected{border-color:var(--ink);background:var(--ink)}.slot-cell:disabled{cursor:not-allowed;opacity:.48}.time-selection-note{background:var(--surface-soft);min-height:40px;color:var(--ink);text-align:center;border-radius:8px;place-items:center;padding:8px 12px;font-size:14px;font-weight:600;display:grid}.reservation-summary{border:1px solid var(--hairline);background:var(--surface-soft);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.reservation-summary strong{color:var(--ink);font-size:16px;line-height:1.4;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.list{gap:12px;display:grid}.list-row{border:1px solid var(--hairline);background:var(--canvas);border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px;display:grid}.list-row>div:first-child{gap:4px;min-width:0;display:grid}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.empty{border:1px dashed var(--hairline);color:var(--muted);text-align:center;background:var(--canvas);border-radius:12px;padding:32px}.json-panel{border:1px solid var(--hairline);background:var(--canvas);max-height:560px;color:var(--ink);border-radius:12px;padding:16px;font:14px/1.5 JetBrains Mono,ui-monospace,monospace;overflow:auto}.toast{z-index:40;background:var(--surface-dark);color:#fff;border-radius:12px;max-width:min(420px,100vw - 48px);padding:14px 16px;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 12px #0000002e}.toast.error{background:var(--error)}.footer{background:var(--surface-dark);color:#a1a1aa;justify-content:space-between;align-items:center;gap:24px;min-height:120px;margin-top:auto;padding:48px 24px;display:flex}.footer strong{color:#fff}@media (width<=900px){.auth-layout,.page-grid{grid-template-columns:1fr}.top-nav{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 16px 8px}.brand-button{text-overflow:ellipsis;white-space:nowrap;justify-self:start;min-width:0;overflow:hidden}.nav-pills{scroll-snap-type:x proximity;border-radius:12px;grid-column:1/-1;justify-self:stretch;overflow-x:auto}.nav-pills button{scroll-snap-align:start;white-space:nowrap;min-width:max-content;min-height:42px}.user-chip{display:none}}@media (width<=640px){.auth-layout{padding:24px 16px}.auth-card,.card{padding:24px}.top-nav{min-height:auto;padding:8px 12px}.nav-pills{background:var(--surface-soft);gap:4px;margin:0 -4px;padding:4px}.nav-pills button{gap:6px;min-height:44px;padding:8px 10px;font-size:13px}.icon-button{width:40px;height:40px}.content{gap:18px;width:min(100% - 24px,1200px);padding:24px 0 120px}.page-head h1{font-size:clamp(28px,9vw,40px)}.form-grid,.list-row{grid-template-columns:1fr}.form-grid .button{width:100%}.three-day-head{flex-direction:column;align-items:stretch}.three-day-head .button,.page-toolbar .button{width:100%}.page-toolbar{flex-direction:column;align-items:stretch}.room-grid,.room-day-range{grid-template-columns:1fr}.room-detail-head,.reservation-summary{flex-direction:column;align-items:stretch}.reservation-summary .button{width:100%}.room-detail-page .reservation-summary{z-index:10;position:sticky;bottom:12px;box-shadow:0 8px 24px #0000001f}.slot-wall{min-width:680px;padding:12px}.slot-wall-head,.slot-day-row{grid-template-columns:106px minmax(0,1fr);gap:10px}.slot-hour-line,.slot-cells{grid-template-columns:repeat(28,16px);gap:3px}.slot-cell{width:16px;height:16px;min-height:16px}.slot-day-label small{white-space:normal}.row-actions{justify-content:stretch}.row-actions .button{flex:1}.page-head,.footer{flex-direction:column;align-items:flex-start}.footer{padding:32px 16px}}
