:root{--bg:#f6f5f1;--panel:#fff;--ink:#1d1d1b;--quiet:#6b6a65;--line:#dddbd3;--accent:#b5452b;--good:#2e7d4f;color:var(--ink);background:var(--bg);font:16px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#171716;--panel:#22221f;--ink:#ecebe6;--quiet:#9e9c94;--line:#3a3934;--accent:#e0775c;--good:#5fbf88}}*{box-sizing:border-box}[hidden]{display:none!important}body{min-height:100vh;margin:0}.topbar{border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;display:flex}.nav{flex-wrap:wrap;gap:14px;display:flex}.nav a{color:var(--quiet);text-decoration:none}.nav a.current,.nav a:hover{color:var(--ink)}.conn-slot{margin-left:auto;display:flex}.account{position:relative}.menu{z-index:10;background:var(--panel);border:1px solid var(--line);border-radius:8px;gap:2px;min-width:160px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 6px 20px #0000001f}.menu a,.menu button{text-align:left;color:var(--ink);border-radius:6px;padding:8px 10px;text-decoration:none;display:block}.menu a:hover,.menu button:hover{background:var(--bg)}.brand{color:var(--accent);letter-spacing:.02em;font-weight:700;text-decoration:none}.who{color:var(--quiet)}.conn{background:var(--quiet);border-radius:50%;width:10px;height:10px}.conn.up{background:var(--good)}.conn.down{background:var(--accent)}main{max-width:1440px;margin:0 auto;padding:24px 16px}.lobby{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px}.lobby h1{margin:0 0 4px;font-size:24px}.lobby p{color:var(--quiet);margin:0 0 20px}.choices{flex-wrap:wrap;gap:12px;display:flex}.button{border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;padding:10px 16px;text-decoration:none;display:inline-block}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.warn{color:#fff;background:#b3261e;border-color:#b3261e}.side>.button+.button{margin-top:8px}.button[aria-disabled=true]{opacity:.5;pointer-events:none}.table{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:24px;display:grid}@media (max-width:720px){.table{grid-template-columns:minmax(0,1fr)}}.board{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px}.side{gap:16px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.card h2{text-transform:uppercase;letter-spacing:.06em;color:var(--quiet);margin:0 0 8px;font-size:13px}.seats{gap:6px;margin:0;padding:0;list-style:none;display:grid}.seats li{align-items:center;gap:8px;display:flex}.seats li:before{content:"";background:0 0;border-radius:50%;width:8px;height:8px}.seats li.active:before{background:var(--accent)}.seats .tag{color:var(--quiet);font-size:13px}.log{max-height:320px;margin:0;padding:0;font-size:14px;list-style:none;overflow-y:auto}.log li{border-bottom:1px solid var(--line);padding:4px 0}.log li:last-child{border-bottom:0}.log .empty{color:var(--quiet)}.toast{background:var(--ink);color:var(--bg);border-radius:8px;max-width:calc(100% - 32px);padding:10px 16px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}a{color:var(--accent)}h1{margin:0 0 8px;font-size:26px}.quiet{color:var(--quiet)}.tag{color:var(--quiet);font-size:13px}button.link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.topbar button.link{color:var(--ink);text-decoration:none}.button:disabled{opacity:.55;cursor:default}a.button{text-align:center}.page.narrow{max-width:640px;margin:0 auto}.page-head,.table-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.table-head{justify-content:flex-start;margin-bottom:12px}.table-head h1{margin:0}.stack{gap:16px;display:grid}.page .card+.card,.page form+.card,.page .made+.card{margin-top:16px}.side .card+.card{margin-top:0}.banner{background:#e09b0024;border-bottom:1px solid #e09b0066;max-width:1440px;margin:0 auto;padding:10px 16px}.page .banner{border:1px solid #e09b0066;border-radius:8px}.form{gap:16px;margin:16px 0;display:grid}.field{gap:4px;display:grid}.label{font-size:14px;font-weight:600}.hint{color:var(--quiet);margin:0;font-size:13px}.error{color:#b3261e;margin:0}@media (prefers-color-scheme:dark){.error{color:#ff8a80}}input,select{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0;max-width:100%;padding:9px 10px}.form>.button{justify-self:start}.check{align-items:flex-start;gap:10px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin-top:3px}.seats-form{border:1px solid var(--line);border-radius:10px;gap:10px;margin:0;padding:12px;display:grid}.seats-form legend{padding:0 4px;font-size:14px;font-weight:600}.seat-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.seat-no{width:1.5em;color:var(--quiet);text-align:right}.rows{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;display:flex}.row:last-child{border-bottom:0}.row-main{min-width:0;color:inherit;flex:240px;gap:2px;text-decoration:none;display:grid}a.row-main:hover .row-title{color:var(--accent)}.row-title{font-weight:600}.row-sub{color:var(--quiet);font-size:14px}.row-sub .me{color:var(--ink)}.row-status{font-size:14px}.row-status.declined{color:#b3261e}.row.hot .row-status{color:var(--accent);font-weight:600}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.card p{margin:0 0 8px}.card p:last-child{margin-bottom:0}.card.alert{border-color:#e09b00}.side>.button{width:100%}.seats a{color:inherit;text-decoration:none}.seats a:hover{text-decoration:underline}.made{gap:8px;margin:0 0 16px;display:flex}.made input{flex:1}.scroll{overflow-x:auto}table.grid{border-collapse:collapse;width:100%}table.grid th,table.grid td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px}table.grid .num{text-align:right}
