:root{--bg:#f4f6f9;--fg:#14213d;--card:#fff;--line:#cdd5e0;--brand:#1d3557;--ok:#1b7f3b;--warn:#a15c00;--bad:#b42318;--muted:#5b6678}
*{box-sizing:border-box}
body{margin:0;font-family:Tahoma,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--fg);font-size:16px}
button,input,select{font:inherit}
button{cursor:pointer;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:8px;padding:.55em 1em}
button.sec{background:#fff;color:var(--brand)}button.danger{background:var(--bad);border-color:var(--bad)}
button:disabled{opacity:.5;cursor:not-allowed}
input,select{padding:.5em;border:1px solid var(--line);border-radius:8px;background:#fff;max-width:100%}
:focus-visible{outline:3px solid #ffb703;outline-offset:2px}
header{background:var(--brand);color:#fff;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;padding:.6rem 1rem}
header h1{font-size:1.1rem;margin:0;flex:1}header select{min-width:12rem}
.layout{display:grid;grid-template-columns:12rem 1fr;min-height:calc(100vh - 3.5rem)}
nav{background:#fff;border-inline-end:1px solid var(--line);padding:.5rem}
nav button{display:block;width:100%;text-align:start;margin:.2rem 0;background:#fff;color:var(--fg);border-color:transparent}
nav button[aria-current=page]{background:#e5ecf6;border-color:var(--brand);font-weight:bold}
main{padding:1rem;min-width:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem;margin-bottom:1rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem}
.stat b{display:block;font-size:1.8rem}.stat span{color:var(--muted);font-size:.85rem}
.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.4rem 0}
label{display:block;margin:.4rem 0}label span{display:block;font-size:.85rem;color:var(--muted)}
table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid var(--line);padding:.4rem;text-align:start}
.err{color:var(--bad);font-weight:bold}.ok{color:var(--ok);font-weight:bold}.muted{color:var(--muted)}
.banner{padding:.8rem 1rem;border-radius:10px;font-weight:bold;margin:.5rem 0}
.banner.in{background:#e3f4e8;border:2px solid var(--ok)}.banner.out{background:#fdeede;border:2px solid var(--warn)}
.mode{min-width:9rem;font-weight:bold}.mode[aria-pressed=true]{outline:3px solid #ffb703}
video{width:100%;max-width:26rem;background:#000;border-radius:10px}
.result{border:3px solid var(--line);border-radius:12px;padding:1rem;margin:.5rem 0}
.result.good{border-color:var(--ok)}.result.warnr{border-color:var(--warn)}.result.bad{border-color:var(--bad)}
.result h2{margin:.2rem 0}
.grid{display:grid;grid-template-columns:1fr 18rem;gap:1rem}
.hall{direction:ltr;overflow-x:auto;padding-bottom:.5rem}.hall h3{direction:rtl;margin:.3rem 0}
.srow{display:flex;gap:.3rem;margin:.3rem 0}
.seat{min-width:3.3rem;height:3.3rem;padding:.1rem;font-size:.8rem;line-height:1.1;background:#fff;color:var(--fg);border:2px solid var(--fg);border-radius:8px}
.seat small{display:block;font-size:1rem}
.s-available{border-style:solid}.s-held{border-style:dashed;background:#fff7d6}
.s-reserved{background:#dbe8ff;border-style:solid}.s-assigned{background:#cfeedd;border-width:4px}
.s-occupied{background:var(--fg);color:#fff}.s-unavailable{background:#e6e6e6;color:#777;border-style:dotted;text-decoration:line-through}
.z-vip{box-shadow:0 -4px 0 #c9a227 inset}.z-speaker{box-shadow:0 -4px 0 #7b2cbf inset}.z-accessible{box-shadow:0 -4px 0 #0077b6 inset}
.seat.hit{outline:4px solid #e63946}.seat.dim{opacity:.25}.seat.sel{outline:4px solid #ffb703}
.legend{display:flex;flex-wrap:wrap;gap:.8rem;font-size:.9rem}
@media(max-width:800px){.layout{grid-template-columns:1fr}nav{display:flex;overflow-x:auto;border-inline-end:0;border-bottom:1px solid var(--line)}nav button{white-space:nowrap;width:auto}.grid{grid-template-columns:1fr}}
@media print{header,nav,button,.noprint{display:none!important}.layout{display:block}}
