:root{--ink:#0e1116;--lane:#e8542b;--court:#1b6e4c;--arena:#f5f6f4;--chalk:#c7cdd4;--brand:var(--lane);--font-display:"Space Grotesk", sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box}body{background:var(--arena);color:var(--ink);font-family:var(--font-body);margin:0;font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--font-display);margin:0;font-weight:700}a{color:inherit}button{font-family:var(--font-body);cursor:pointer}.container{max-width:1060px;margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--chalk);background:#fff}.site-header .container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-height:64px;padding-top:8px;padding-bottom:8px;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:-.5px;font-size:26px;font-weight:700;text-decoration:none}.wordmark .dot{color:var(--lane)}.tenant-badge{color:#5a626d;border-left:1px solid var(--chalk);margin-left:12px;padding-left:12px;font-size:12px}.header-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn{border:1px solid var(--ink);color:var(--ink);background:#fff;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.accent{background:var(--brand);color:#fff;border-color:var(--brand)}.btn:disabled{opacity:.45;cursor:default}.page{padding:32px 0 64px}.page-title{margin-bottom:6px;font-size:30px}.page-sub{color:#5a626d;margin:0 0 24px}.facility-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.card{border:1px solid var(--chalk);background:#fff;border-radius:12px;padding:20px;text-decoration:none;transition:border-color .15s;display:block}.card:hover{border-color:var(--ink)}.card h3{margin-bottom:4px;font-size:19px}.card .desc{color:#5a626d;margin:4px 0 12px;font-size:14px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{font-family:var(--font-mono);border:1px solid var(--chalk);color:#5a626d;border-radius:999px;padding:3px 8px;font-size:11px}.tag.info{border-color:var(--court);color:var(--court)}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.meta-block{border:1px solid var(--chalk);background:#fff;border-radius:12px;min-width:260px;padding:16px 20px;font-size:14px}.meta-block dt{color:#5a626d;margin-top:8px;font-size:12px}.meta-block dd{margin:0;font-weight:600}.meta-block .mono{font-family:var(--font-mono);font-size:13px}.day-nav{align-items:center;gap:12px;margin:20px 0 12px;display:flex}.day-nav .date{font-family:var(--font-mono);text-align:center;min-width:150px;font-size:15px;font-weight:500}.legend{color:#5a626d;flex-wrap:wrap;gap:16px;margin-bottom:12px;font-size:12px;display:flex}.legend .swatch{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:5px;display:inline-block}.schedule-wrap{border:1px solid var(--chalk);background:#fff;border-radius:12px;padding:16px;overflow-x:auto}.schedule{gap:2px;min-width:640px;display:grid}.schedule .head{font-family:var(--font-display);padding:6px 8px;font-size:13px;font-weight:700;position:sticky;top:0}.schedule .time{font-family:var(--font-mono);color:#5a626d;text-align:right;padding:4px 8px 0 0;font-size:11px}.slot{white-space:nowrap;text-overflow:ellipsis;background:#fff;border:1px solid #e4e7ea;border-radius:4px;min-height:26px;padding:3px 6px;font-size:11px;overflow:hidden}.slot.free{cursor:pointer}.slot.free:hover{border-color:var(--brand);color:var(--brand)}.slot.busy{background:var(--chalk);border-color:var(--chalk);color:#4a515b}.slot.club{background:var(--court);border-color:var(--court);color:#fff}.slot.mine{background:var(--brand);border-color:var(--brand);color:#fff}.slot.event{border:1px dashed var(--court);color:var(--court);background:#fff}.slot.block{color:#5a626d;background:repeating-linear-gradient(45deg,#eceef0,#eceef0 6px,#f7f8f9 6px 12px)}.slot.closed{color:#b6bcc4;background:#f7f8f9;border-color:#f0f2f4}.overlay{z-index:20;background:#0e11168c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:#fff;border-radius:14px;width:min(420px,100vw - 40px);padding:28px}.dialog h2{margin-bottom:16px;font-size:22px}.dialog label{margin:12px 0 4px;font-size:13px;font-weight:600;display:block}.dialog input,.dialog select{border:1px solid var(--chalk);width:100%;font-size:14px;font-family:var(--font-body);border-radius:8px;padding:9px 12px}.dialog .row{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.dialog .error{color:var(--lane);margin-top:10px;font-size:13px}.dialog .summary{font-family:var(--font-mono);background:var(--arena);border-radius:8px;margin-top:8px;padding:12px;font-size:13px}.res-list{flex-direction:column;gap:12px;display:flex}.res-item{border:1px solid var(--chalk);background:#fff;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.res-item .when{font-family:var(--font-mono);font-size:13px}.pill{border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600}.pill.ok{color:var(--court);background:#e7f2ec}.pill.warn{color:var(--lane);background:#fdeae3}.pill.muted{color:#5a626d;background:#eef0f2}.brand-row{align-items:center;gap:12px;display:flex}.tenant-logo{width:auto;height:28px}.tenant-badge{color:var(--brand);font-weight:600}.provider-select{border:1px solid var(--chalk);font-family:var(--font-body);color:var(--ink);background:#fff;border-radius:8px;max-width:260px;padding:7px 10px;font-size:14px;font-weight:600}.provider-select:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.role-badge{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--brand);color:var(--brand);white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:11px}.role-badge.super{background:var(--ink);border-color:var(--ink);color:#fff}.site-header .session-strip{color:#5a626d;height:auto;margin-top:-6px;padding-top:0;padding-bottom:9px;font-size:12px;display:block}.mono{font-family:var(--font-mono);font-size:12.5px}.muted{color:#8a929c}.error{color:var(--lane)}.banner.error{border:1px solid var(--lane);color:#8a2f12;background:#fff3ef;border-radius:10px;margin:16px 0 0;padding:10px 14px;font-size:14px}.card.picker{text-align:left;cursor:pointer;font:inherit;color:inherit;width:100%}.card.picker.selected{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.picker-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.kind{font-family:var(--font-mono);white-space:nowrap;border:1px solid var(--chalk);color:#5a626d;border-radius:999px;padding:3px 8px;font-size:11px}.kind.blackbox{border-color:var(--court);color:var(--court)}.kind.shared{border-color:var(--lane);color:var(--lane)}.card .note{color:#5a626d;margin:6px 0 0;font-size:12.5px}.tabs{border-bottom:1px solid var(--chalk);gap:6px;margin-bottom:8px;display:flex}.tab{font-family:var(--font-body);color:#5a626d;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 10px;font-size:14px;font-weight:600}.tab.active{color:var(--ink);border-bottom-color:var(--ink)}.tab:disabled{opacity:.4;cursor:default}.hint{color:#5a626d;margin:6px 0 4px;font-size:13px}.seed-accounts{color:#5a626d;margin-top:18px;font-size:12.5px}.seed-accounts summary{cursor:pointer}.seed-accounts dl{margin:8px 0 0}.seed-accounts dt{color:var(--ink);margin-top:6px;font-weight:600}.seed-accounts dd{margin:2px 0 0}.dialog code{font-family:var(--font-mono);background:var(--arena);border-radius:4px;padding:1px 5px;font-size:12px}.tbl-scroll{border:1px solid var(--chalk);background:#fff;border-radius:12px;overflow-x:auto}.manage-table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px}.manage-table th,.manage-table td{text-align:left;vertical-align:top;border-bottom:1px solid #edf0f2;padding:10px 14px}.manage-table thead th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:#5a626d;background:var(--arena);font-size:11px;font-weight:500}.manage-table tbody tr:last-child td{border-bottom:none}
