/* AgentGuard dashboard + login · extends site.css and visual-pass.css. Never edits site.css. */

/* ---------- auth (login page + dashboard gate) ---------- */
.auth-main{min-height:calc(100vh - 240px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:56px 20px 72px}
.auth-brand{display:flex;align-items:center;gap:10px;font:600 20px/1 'DM Sans',system-ui,sans-serif;letter-spacing:-.02em;color:#E6EEF3;text-decoration:none!important}
.auth-brand img{width:28px;height:28px;display:block}
.auth-brand sup{font:500 9px/0 'DM Sans',system-ui,sans-serif;color:#94A3B0;margin-left:2px;vertical-align:super}
.auth-glow{position:relative}
.auth-glow::before{content:"";position:absolute;left:50%;top:50%;width:min(720px,100vw);height:150%;min-height:420px;transform:translate(-50%,-50%);pointer-events:none;z-index:-1;background:radial-gradient(closest-side,rgba(42,188,180,.13),rgba(42,188,180,.05) 55%,transparent 78%)}
.auth-card{width:100%;max-width:420px;background:#0C1828;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:28px 24px;display:flex;flex-direction:column;gap:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 30px 80px rgba(0,0,0,.45)}
.auth-card h1{font:400 32px/1.1 Georgia,serif;letter-spacing:-.02em}
.auth-card .btn{width:100%}
.auth-note{color:#94A3B0;font-size:14px;text-align:center}
.status{min-height:1.6em}
.email-row{display:flex;flex-direction:column;gap:12px}
@media (min-width:900px){.auth-card{padding:36px 32px}}

/* ---------- shell: rail ---------- */
.dash{padding-top:8px}
.side a{display:flex;align-items:center;gap:10px}
.side .vp-icon{width:16px;height:16px;stroke:#94A3B0}
.side a[aria-current]{color:#E6EEF3}
.side a[aria-current] .vp-icon{stroke:#2ABCB4}
@media (max-width:899.98px){
  .side{flex-wrap:nowrap;overflow-x:auto;gap:8px;margin:0 -20px 4px;padding:2px 20px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .side::-webkit-scrollbar{display:none}
  .side a{white-space:nowrap;flex:none;padding:10px 14px;background:#0C1828;border:1px solid rgba(255,255,255,.07);border-radius:999px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
  .side a[aria-current]{border-color:rgba(42,188,180,.6)}
}

/* ---------- panels ---------- */
.dash-head{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}
.dash-head h1{font:400 32px/1.1 Georgia,serif;letter-spacing:-.02em}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.panel-head h2{font:600 18px/1.3 'DM Sans',system-ui,sans-serif;display:flex;align-items:center;gap:10px}
.kv-line{display:flex;justify-content:space-between;gap:16px;font-size:14px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.kv-line:last-of-type{border-bottom:0}
.key-row{display:flex;align-items:center;gap:10px;background:#07101E;border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:10px 12px;font:400 13px/1.5 'JetBrains Mono',monospace}
.key-row code{flex:1;background:none;padding:0;overflow-wrap:anywhere}
.mini-btn{flex:none;height:36px;padding:0 12px;border-radius:6px;background:transparent;border:1px solid rgba(230,238,243,.2);color:#E6EEF3;font:500 12px/1 'JetBrains Mono',monospace;cursor:pointer}
.mini-btn:hover{border-color:rgba(230,238,243,.45)}
.seat-bar{position:relative;height:10px;border-radius:5px;background:rgba(255,255,255,.08);overflow:hidden}
.seat-fill{position:absolute;top:0;bottom:0;left:0;width:40%;background:#2ABCB4;border-radius:5px}
.seat-pair{font:400 14px/1.6 'JetBrains Mono',monospace}
.machine{display:flex;justify-content:space-between;gap:12px;font:400 13px/1.8 'JetBrains Mono',monospace;color:#94A3B0}
.rtable{width:100%;border-collapse:collapse;font:400 13px/1.6 'JetBrains Mono',monospace;text-align:left}
.rtable th{font:500 11px/1 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:#94A3B0;padding:0 10px 10px 0;font-weight:500;white-space:nowrap}
.rtable td{padding:10px 10px 10px 0;border-top:1px solid rgba(255,255,255,.07);vertical-align:top;white-space:nowrap}
.rtable th:last-child,.rtable td:last-child{padding-right:0}
.rtable td:nth-child(2){max-width:150px;overflow:hidden;text-overflow:ellipsis}
/* the full receipts page keeps a wider floor and scrolls on narrow screens */
.rtable-full .rtable{min-width:460px}
.rtable-full .rtable td:nth-child(2){max-width:none}
@media (min-width:900px){.panel-wide{grid-column:1 / -1}}
.decision-stop{background:#c8102e;color:#fff;padding:1px 6px;border-radius:2px;font-size:11px;letter-spacing:.04em}
.example-tag{display:inline-flex;font:500 10px/1 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:#94A3B0;border:1px solid rgba(148,163,176,.35);border-radius:4px;padding:5px 7px}
.state-note{font:500 11px/1 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:#94A3B0}
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.filters .field{flex:1;min-width:130px}
.filters .btn{flex:none}
.pager{display:flex;align-items:center;gap:14px;justify-content:flex-end;font:400 12px/1 'JetBrains Mono',monospace;color:#94A3B0}
.toggle{display:flex;gap:12px;align-items:flex-start;font-size:15px;cursor:pointer}
.toggle input{width:18px;height:18px;accent-color:#2ABCB4;margin:2px 0 0;flex:none}
.danger-btn{border-color:rgba(200,16,46,.55)}
.danger-btn:hover{border-color:rgba(200,16,46,.85)}
.rtable-wrap{overflow-x:auto;max-width:100%}
@media (max-width:899.98px){
  .filters .btn{width:100%}
  .pager{justify-content:space-between;width:100%}
}

/* the site button class sets display, so honour the hidden attribute explicitly */
.login-page [hidden],.dashboard-page [hidden]{display:none!important}

/* the plan chip in the top nav must not stretch to the row height on phones */
.navlinks .tag{align-self:center;padding:5px 8px;line-height:1}

/* ---------- first-run checklist ---------- */
.check-list{display:flex;flex-direction:column}
.check-step{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:15px}
.check-step:last-child{border-bottom:0;padding-bottom:0}
.check-step>span:nth-child(2){flex:1;min-width:0}
.check-step .vp-icon{width:18px;height:18px}
.check-step.done>span:nth-child(2){color:#94A3B0}
.check-step.pending .vp-icon{stroke:#94A3B0}
.check-step .fine{display:block;margin-top:2px}

/* ---------- machine chips ---------- */
.chip{display:inline-flex;align-items:center;font:500 10px/1 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;border-radius:4px;padding:4px 6px;flex:none}
.chip-active{color:#2ABCB4;border:1px solid rgba(42,188,180,.4)}
.chip-idle{color:#94A3B0;border:1px solid rgba(148,163,176,.35)}
.machine{align-items:center}
.machine .host{flex:1;min-width:0;overflow-wrap:anywhere;color:#E6EEF3}

/* ---------- receipt detail drawer ---------- */
.rtable tr[data-receipt-id]{cursor:pointer}
.rtable tr[data-receipt-id]:hover td{background:rgba(255,255,255,.03)}
.row-selected td{background:rgba(42,188,180,.07)}
.drawer-backdrop{position:fixed;inset:0;background:rgba(7,16,30,.65);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:#0C1828;border-left:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),-30px 0 80px rgba(0,0,0,.45);z-index:41;display:flex;flex-direction:column;gap:14px;padding:24px 24px 32px;overflow-y:auto;animation:vp-drawer 220ms ease}
@keyframes vp-drawer{from{transform:translateX(100%)}to{transform:none}}
@media (max-width:899.98px){
  .drawer{width:100%;border-left:0;animation-name:vp-sheet}
  @keyframes vp-sheet{from{transform:translateY(100%)}to{transform:none}}
}
.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.drawer-head h2{font:400 24px/1.15 Georgia,serif;letter-spacing:-.02em}
.hash-val{font:400 12px/1.6 'JetBrains Mono',monospace;overflow-wrap:anywhere;text-align:right;max-width:60%}

/* ---------- skeleton loading ---------- */
.skel{display:block;border-radius:6px;height:14px;background:linear-gradient(90deg,rgba(255,255,255,.05) 25%,rgba(42,188,180,.09) 50%,rgba(255,255,255,.05) 75%);background-size:200% 100%;animation:vp-shimmer 600ms linear infinite}
@keyframes vp-shimmer{from{background-position:200% 0}to{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}.drawer{animation:none}}

/* Org controls reuse the existing cards, code rows, chips and drawer. */
.org-policy-editor{width:100%;min-height:320px;resize:vertical;border:0;border-radius:0;background:transparent;font:400 13px/1.7 'JetBrains Mono',monospace;tab-size:2}
#orgPolicyPanel .cmd{display:block;padding:10px}
#orgPolicyPanel .stack{gap:12px}
.seat-registration{gap:4px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.seat-registration .host strong{display:block;font:500 14px/1.5 'DM Sans',system-ui,sans-serif}
.seat-invites{gap:12px;margin-top:8px}
.seat-invites .host{overflow-wrap:anywhere;min-width:0}
.seat-invites .kv-line .fine{flex:none}
.drawer form{gap:10px}
[data-org-errors]{padding-left:20px}
