:root{--bg:#0b0d10;--panel:#0f1318;--panel-2:#0c1016;--border:#202833;--muted:#6b7280;--text:#e7e9ee;--text-soft:#bfc8d6;--primary:#1d7af3;--primary-2:#155bd4;--success:#2e7d32;--warning:#d18a00;--danger:#c62828;--accent:#8e24aa;--shadow:0 10px 30px rgba(0,0,0,.35);--radius:14px;--radius-sm:10px;--ring:0 0 0 3px rgba(29,122,243,.25)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe\ UI,Roboto,Inter,Ubuntu,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;transition:.2s ease}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(29,122,243,.25)}button.primary:hover{background:var(--primary-2);border-color:var(--primary-2)}button.ghost{background:var(--panel-2);border-color:var(--border)}button.ghost:hover{background:#0d141d}:focus-visible{outline:none;box-shadow:var(--ring)}.stage-fixed{width:min(100vw,1024px);aspect-ratio:1600/786;max-height:92dvh;margin:16px auto;position:relative;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--panel) center/contain no-repeat;background-image:var(--plan);box-shadow:var(--shadow)}.stage-only{position:relative;height:100vh;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin:8px;background:#111}.stage-only img{width:100%;height:100%;object-fit:cover;display:block;filter:contrast(1.02)}#overlay{position:absolute;inset:0;width:100%;height:100%}svg .table{fill:var(--success);opacity:.8;stroke:#fff;stroke-width:2;cursor:pointer;transition:opacity .2s , filter .2s , transform .15s ease}svg .table:hover{opacity:1;filter:brightness(1.15)}svg .table:active{transform:scale(.98)}svg .table.pending{fill:var(--warning)}svg .table.busy{fill:var(--danger)}svg .table.selected{fill:var(--accent);opacity:1}svg .table.tooSmall{fill:var(--muted);opacity:.65;cursor:not-allowed}svg text{font-size:18px;fill:#fff;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.6)}dialog{border:none;border-radius:var(--radius);padding:0;width:min(520px,92vw);background:var(--panel);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(0,0,0,.55);backdrop-filter:blur(2px)}#rezForm{padding:14px}#rezForm header{display:flex;align-items:center;justify-content:space-between;padding:6px 6px 10px 6px;border-bottom:1px solid var(--border)}#rezForm header h3{margin:0;font-weight:600;color:#fff}#rezForm header .close{border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:10px;padding:6px 10px}#rezForm header .close:hover{background:#0d141d}#rezForm .grid{display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:12px}#rezForm label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--text-soft)}#rezForm input::placeholder{color:#9aa6b2}#rezForm footer{display:flex;justify-content:flex-end;gap:10px;margin-top:14px;padding-top:10px;border-top:1px solid var(--border)}.msg{min-height:22px;color:#9bd;margin-top:8px}@media (max-width:540px){#rezForm .grid{grid-template-columns:1fr}}.admin-wrap{max-width:1100px;margin:24px auto;padding:16px;background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(0,0,0,0))}.admin-wrap h2,h3{margin:0 0 12px}.row{display:flex;gap:10px;margin:10px 0}.row.two>div{flex:1}.tbl{width:100%;border-collapse:collapse;margin-top:12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.tbl th,.tbl td{border-bottom:1px solid var(--border);padding:10px;text-align:left}.tbl thead th{background:rgba(255,255,255,.03);color:#dfe7f3;font-weight:600}.tbl tr:hover td{background:rgba(255,255,255,.02)}.tbl button{padding:6px 10px}.tbl td b{color:#fff}.tbl input.cap{width:90px}input:hover,select:hover,textarea:hover{border-color:#2f3a4a}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:var(--ring)}@keyframes popIn {
  from { transform:scale(.98); opacity:0 }
  to   { transform:scale(1);   opacity:1 }
}dialog[open]{animation:popIn .18s ease-out}.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:rgba(29,122,243,.15);color:#cfe1ff;border:1px solid rgba(29,122,243,.4);margin-left:6px}