:root{
  --bg:#0b0b0b; --card:#151515; --chip:#222; --input:#101010;
  --ink:#f2f2f2; --soft:#e9e9e9; --muted:#9a9a9a; --line:#2c2c2c;
  --accent:#FF00E9; --accent-soft:#3a0f35;
  --green:#4fd07f; --green-soft:#12271a; --red:#ff5c5c; --red-soft:#2b1414;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{color-scheme:dark;}
body{background:var(--bg); color:var(--ink);
  font:15px/1.55 "neue-haas-unica","Neue Haas Unica","Helvetica Neue",Helvetica,Arial,sans-serif;
  padding:28px 14px 90px;}
.wrap{max-width:860px; margin:0 auto;}
.brand{display:flex; align-items:baseline; gap:12px; margin-bottom:18px;}
.brand .logo{font-size:26px; font-weight:800;}
.brand .logo::after{content:"."; color:var(--accent);}
.brand .tag{font-size:13px; color:var(--muted); text-transform:lowercase;}
h1{font-size:26px; font-weight:700; letter-spacing:-.01em; margin:6px 0 4px;}
h2{font-size:17px; font-weight:700; margin:0 0 12px;}
h2 .n{display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px;
  border-radius:50%; background:var(--accent); color:#0b0b0b; font-size:13px; margin-right:9px; vertical-align:-3px;}
.lead{color:var(--muted); margin-bottom:20px;}
.card{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:22px 24px; margin-bottom:18px;}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:13px 16px;}
.grid3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:13px 16px;}
@media(max-width:640px){.grid2,.grid3{grid-template-columns:1fr;}}
.field label{display:block; font-size:12.5px; font-weight:600; margin-bottom:5px; color:var(--soft); letter-spacing:.02em;}
.field label .req{color:var(--accent);}
.input, select, textarea{width:100%; border:1px solid var(--line); background:var(--input); border-radius:8px;
  padding:9px 12px; color:var(--ink); font:inherit; outline:none;}
.input:focus, select:focus, textarea:focus{border-color:var(--accent);}
input[type="date"], input[type="time"]{color-scheme:dark;}
.hint{font-size:12px; color:var(--muted);}
.note{background:var(--accent-soft); border-left:3px solid var(--accent); border-radius:8px; padding:10px 14px;
  font-size:13.5px; color:var(--soft); margin:10px 0;}
.btn{display:inline-block; background:var(--accent); color:#0b0b0b; border:none; border-radius:9px;
  padding:11px 24px; font-weight:700; font:inherit; cursor:pointer; letter-spacing:.02em;}
.btn:disabled{opacity:.45; cursor:default;}
.btn.ghost{background:transparent; color:var(--accent); border:1.5px solid var(--accent);}
.btn.small{padding:6px 14px; font-size:13px;}
.seg{display:inline-flex; border:1px solid var(--line); border-radius:9px; overflow:hidden;}
.seg button{background:var(--input); color:var(--muted); border:none; padding:8px 16px; font:inherit; cursor:pointer;}
.seg button.on{background:var(--accent); color:#0b0b0b; font-weight:700;}
.venues{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
@media(max-width:640px){.venues{grid-template-columns:1fr;}}
.venue{border:1px solid var(--line); border-radius:10px; padding:13px; text-align:center;
  color:var(--muted); font-size:13px; cursor:pointer; user-select:none;}
.venue b{display:block; color:var(--soft); font-size:15px;}
.venue .cap{font-size:11.5px;}
.venue.on{border-color:var(--accent); color:var(--soft); background:var(--accent-soft);}
.venue.on b{color:var(--accent);}
.checks{display:flex; gap:8px; flex-wrap:wrap;}
.check{border:1px solid var(--line); border-radius:20px; padding:6px 15px; font-size:13px;
  color:var(--muted); cursor:pointer; user-select:none;}
.check.on{border-color:var(--accent); color:var(--accent); background:var(--accent-soft); font-weight:600;}
table.items{width:100%; border-collapse:collapse;}
table.items th{font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted);
  text-align:left; padding:7px 6px; border-bottom:2px solid var(--line);}
table.items td{padding:8px 6px; border-bottom:1px solid var(--line); vertical-align:middle; font-size:14px;}
td.num, th.num{text-align:right; white-space:nowrap;}
.diet-tag{font-size:10px; font-weight:700; background:var(--chip); color:var(--muted); border-radius:4px;
  padding:1px 6px; margin-left:6px; letter-spacing:.05em; text-transform:uppercase;}
.qty{display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:8px; overflow:hidden;}
.qty button{background:var(--chip); color:var(--muted); border:none; width:28px; padding:3px 0;
  font:inherit; font-weight:700; cursor:pointer; user-select:none;}
.qty button:hover{background:var(--accent); color:#0b0b0b;}
.qty b{width:48px; text-align:center; font-weight:600; font-size:14px;}
.subtotal{display:flex; justify-content:space-between; align-items:center; margin-top:14px; padding-top:12px;
  border-top:1px solid var(--line); font-weight:700;}
.budget{background:var(--green-soft); border:1px solid #1f4a2e; border-radius:12px; padding:13px 16px; margin-top:14px;}
.budget.over{background:var(--red-soft); border-color:#5a2323;}
.budget .row{display:flex; justify-content:space-between; font-weight:600; margin-bottom:8px; flex-wrap:wrap; gap:6px; font-size:14px;}
.bar{height:9px; background:#0f0f0f; border-radius:6px; overflow:hidden; border:1px solid var(--line);}
.bar i{display:block; height:100%; background:var(--green);}
.budget.over .bar i{background:var(--red);}
.budget .msg{font-size:13px; margin-top:7px; color:var(--green);}
.budget.over .msg{color:var(--red);}
.totalbar{position:sticky; bottom:12px; background:var(--soft); color:#0b0b0b; border-radius:12px;
  padding:13px 20px; display:flex; align-items:center; justify-content:space-between; gap:14px;
  flex-wrap:wrap; box-shadow:0 8px 30px rgba(0,0,0,.5); z-index:10;}
.totalbar .sum{font-size:21px; font-weight:800;}
.totalbar small{color:#555; display:block; font-size:11.5px;}
.saveinfo{font-size:12px; color:var(--muted); text-align:right; min-height:16px; margin:4px 2px;}
.lockcard{text-align:center; padding:40px 20px;}
.lockcard .big{font-size:46px;}
.lockcard h1{margin-top:10px;}
.lockcard p{color:var(--muted); max-width:540px; margin:10px auto 0;}
.status-chip{font-size:12px; font-weight:600; border-radius:20px; padding:3px 11px; white-space:nowrap;}
.st-created,.st-opened{background:#14202e; color:#7fa8e0;}
.st-submitted{background:var(--green-soft); color:var(--green);}
.st-reopened{background:var(--accent-soft); color:var(--accent);}
.st-finalized{background:#2a2a10; color:#d8d06a;}
.err-banner{background:var(--red-soft); border:1px solid #5a2323; color:var(--red); border-radius:10px;
  padding:11px 15px; margin-bottom:14px; font-size:14px;}
.ro{opacity:.75; pointer-events:none;}
.placeholder-note{font-size:11.5px; color:#6c6c6c; text-align:center; margin-top:26px;}
/* admin */
.topbar{display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:18px; flex-wrap:wrap;}
.topbar .actions{display:flex; gap:8px; flex-wrap:wrap;}
table.list{width:100%; border-collapse:collapse; font-size:13.5px;}
table.list th{font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted);
  text-align:left; padding:7px 8px; border-bottom:2px solid var(--line);}
table.list td{padding:9px 8px; border-bottom:1px solid var(--line);}
table.list tr.row{cursor:pointer;}
table.list tr.row:hover td{background:#191919;}
.linkbox{background:var(--accent-soft); border:1px dashed var(--accent); border-radius:10px; padding:12px 15px; margin-top:14px;}
.linkbox .lbl{font-size:11.5px; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:.07em;}
.linkbox code{display:block; margin-top:4px; font-size:13.5px; word-break:break-all; color:var(--soft);}
.kv{display:grid; grid-template-columns:190px 1fr; gap:5px 14px; font-size:14px;}
.kv .k{color:var(--muted);}
.proposal{background:var(--red-soft); border:1px solid #5a2323; border-radius:8px; padding:9px 13px;
  font-size:13.5px; color:var(--red); margin:8px 0;}
.back{color:var(--accent); cursor:pointer; font-size:13.5px; user-select:none;}
