/* CompendiumPDF site - Compendium design system.
   #000 ground, #111 cards, gold #c9a227 accent, PDF red for the product mark,
   Inter only. No gold glow behind the brand mark. */
:root{
  --bg:#000; --card:#111; --card2:#161616; --line:#242424; --line2:#2e2e2e;
  --ink:#f2f2f2; --ink2:#a8a8a8; --ink3:#6f6f6f;
  --gold:#c9a227; --pdf:#c62828; --green:#22c55e; --red:#ef4444; --blue:#3b82f6;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);
  font:14px/1.55 Inter,-apple-system,"Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select{font:inherit;color:var(--ink);background:var(--card2);border:1px solid var(--line2);
  border-radius:7px;padding:9px 11px;outline:none;width:100%}
input:focus{border-color:var(--gold)}
code{font-family:var(--mono);font-size:.92em;color:var(--gold)}
h2,h3{font-weight:640;letter-spacing:-.01em}

.mark{display:block;margin:0 auto 16px;object-fit:contain}
.mark.sm{margin:0;width:30px;height:30px}

.btn{padding:10px 16px;border:1px solid var(--line2);border-radius:8px;color:var(--ink2);font-size:13.5px}
.btn:hover{border-color:var(--gold);color:var(--ink)}
.btn.primary{background:var(--gold);border-color:var(--gold);color:#000;font-weight:650}
.btn.primary:hover{background:#dcb43a}
.btn.wide{width:100%;margin-top:14px}
.btn:disabled{opacity:.5;cursor:default}
.ghost{padding:7px 12px;border:1px solid var(--line2);border-radius:7px;color:var(--ink2);font-size:12.5px}
.ghost:hover{border-color:var(--gold);color:var(--ink)}
.err{margin-top:12px;color:var(--red);font-size:12.5px}

/* ── gate ── */
#gate{min-height:100vh;display:grid;place-items:center;padding:24px}
#gateForm{width:min(360px,100%);background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:32px 28px}
#gateForm h1{margin:0 0 6px;font-size:22px;text-align:center;font-weight:650}
#gateForm .sub{margin:0 0 22px;text-align:center;color:var(--ink3);font-size:12.5px}
#gateForm label{display:block;font-size:11.5px;color:var(--ink3);margin:0 0 5px}

.orline{display:flex;align-items:center;gap:12px;margin:20px 0 16px;color:var(--ink3);font-size:11.5px}
.orline::before,.orline::after{content:"";flex:1;height:1px;background:var(--line2)}
#staffBox label{display:block;font-size:11.5px;color:var(--ink3);margin:10px 0 5px}
#staffBox .hint{opacity:.7}

/* ── chrome ── */
#topbar{height:60px;display:flex;align-items:center;gap:22px;padding:0 24px;
  background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:9px}
.bname{font-weight:650}
#nav{display:flex;gap:3px;flex:1}
.navb{padding:8px 14px;border-radius:7px;color:var(--ink2);font-size:13px}
.navb:hover{color:var(--ink);background:var(--card2)}
.navb.is-on{color:var(--gold);background:rgba(201,162,39,.13)}
.top-right{display:flex;align-items:center;gap:10px}
.who{font-size:12px;color:var(--ink3)}

main{max-width:1180px;margin:0 auto;padding:22px 24px 60px}
.hero{padding:14px 0 22px}
.hero h2{margin:0 0 8px;font-size:26px;max-width:26ch}
.lede{margin:0;color:var(--ink2);font-size:14px;max-width:74ch}
.lede b{color:var(--ink)}

.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px;align-items:start}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px;margin-bottom:16px}
.card h3{margin:0 0 16px;font-size:15px}
.card.warn{border-left:3px solid var(--pdf)}
.card.warn p{color:var(--ink2);font-size:13px;margin:0}
.ov-note{font-size:11.5px;color:var(--ink3);line-height:1.55;margin-top:10px}

.frow{margin-bottom:14px}
.frow label{display:block;font-size:11.5px;color:var(--ink3);margin-bottom:5px}
.frow .hint{color:var(--ink3);opacity:.75}
.hint2{font-size:11px;color:var(--ink3);margin-top:5px}
.frow.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.frow.two label{margin-bottom:5px}

.terms{display:flex;flex-wrap:wrap;gap:6px}
.term{padding:7px 12px;border:1px solid var(--line2);border-radius:20px;font-size:12.5px;color:var(--ink2)}
.term:hover{border-color:var(--gold)}
.term.on{background:rgba(201,162,39,.16);border-color:var(--gold);color:var(--gold)}
.term small{display:block;font-size:10px;opacity:.8}

.quote{background:var(--card2);border:1px solid var(--line2);border-radius:10px;padding:15px 17px;margin:16px 0}
.qline{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink2);padding:3px 0}
.qline.total{border-top:1px solid var(--line2);margin-top:9px;padding-top:11px;
  font-size:18px;color:var(--ink);font-weight:650}
.qline.save{color:var(--green)}
.qsub{font-size:11.5px;color:var(--ink3);margin-top:7px}

.tablewrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:12.5px}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line)}
th{color:var(--ink3);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
td.num{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums}
tr.best td{color:var(--gold)}

.dlgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-bottom:16px}
.dl{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.dl h4{margin:0 0 5px;font-size:14.5px;font-weight:620}
.dl .sz{font-family:var(--mono);font-size:11.5px;color:var(--ink3)}
.dl a{display:inline-block;margin-top:13px;padding:9px 15px;background:var(--gold);color:#000;
  border-radius:8px;font-weight:650;font-size:13px;text-decoration:none}
.dl a:hover{background:#dcb43a}
.dl.off{opacity:.55}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.kpi{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--gold);
  border-radius:10px;padding:14px 16px}
.kpi .v{font-family:var(--mono);font-size:25px;font-weight:700;line-height:1}
.kpi .k{font-size:11.5px;color:var(--ink2);margin-top:4px}

.lic{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:14px}
.lichead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.code{font-family:var(--mono);font-size:15px;color:var(--gold);letter-spacing:.05em}
.pill{font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;
  padding:3px 8px;border-radius:5px;border:1px solid var(--line2);color:var(--ink3)}
.pill.active{color:var(--green);border-color:#1d3d28}
.pill.comp{color:var(--blue);border-color:#1b3050}
.pill.past_due,.pill.canceled{color:var(--red);border-color:#3d1d1d}
.seatrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.seatrow .em{flex:1;min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis}
.seatrow .ai{font-size:10px;font-family:var(--mono);color:var(--gold)}
.seatrow .x{color:var(--ink3);padding:3px 7px;border-radius:5px}
.seatrow .x:hover{color:var(--red);background:var(--card2)}
.addseat{display:grid;grid-template-columns:1fr 1fr auto auto;gap:8px;align-items:center;
  margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.addseat label{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink3);white-space:nowrap}
.addseat input[type=checkbox]{width:auto}

footer{max-width:1180px;margin:0 auto;padding:20px 24px 40px;display:flex;
  justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--ink3);font-size:11.5px;
  border-top:1px solid var(--line)}

#toasts{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:60}
.toast{background:var(--card);border:1px solid var(--line2);border-left:3px solid var(--gold);
  border-radius:8px;padding:11px 15px;font-size:12.5px;max-width:360px}
.toast.err{border-left-color:var(--red)}
.toast.ok{border-left-color:var(--green)}

@media (max-width:640px){
  #topbar{height:auto;flex-wrap:wrap;padding:10px 14px;gap:10px}
  #nav{order:3;width:100%;overflow-x:auto}
  main{padding:16px 14px 40px}
  .hero h2{font-size:21px}
  .addseat{grid-template-columns:1fr}
}
