:root{color-scheme:dark;--cy:#00ff85;--mg:#ff2d6f;--am:#ffbf00;--ink:#eaffef;--surf:#0e1119;--mono:ui-monospace,"SF Mono",Menlo,monospace}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{min-height:100%;background:#05060b}
body{margin:0;min-height:100%;font:17px/1.45 -apple-system,system-ui,sans-serif;color:var(--ink);padding:max(20px,env(safe-area-inset-top)) 15px max(24px,calc(10px + env(safe-area-inset-bottom)));background:#05060b}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 70% at 8% -8%,rgba(0,255,133,.16),transparent 55%),radial-gradient(120% 70% at 100% 0%,rgba(255,45,111,.16),transparent 52%),linear-gradient(rgba(0,255,133,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,133,.05) 1px,transparent 1px);background-size:100% 100%,100% 100%,44px 44px,44px 44px}
main{max-width:820px;margin:auto}
header{margin-bottom:18px}
h1{font-size:15px;font-weight:700;letter-spacing:3px;text-transform:uppercase;margin:4px 2px 2px;font-family:var(--mono);color:var(--cy);text-shadow:0 0 14px rgba(0,255,133,.6)}
h1 b{color:#fff;font-size:30px;display:block;letter-spacing:-.5px;text-shadow:0 0 22px rgba(0,255,133,.35);margin-top:2px;font-family:-apple-system,system-ui}
.bar{font-family:var(--mono);font-size:12px;color:#5f6b85;margin:8px 2px 22px;letter-spacing:.5px}
.bar .fresh{color:var(--cy);font-weight:600;text-shadow:0 0 10px rgba(0,255,133,.45)}
.bar .unknown{color:var(--am);font-weight:600;text-shadow:0 0 10px rgba(255,191,0,.4)}
.card{position:relative;border-radius:16px;padding:20px 20px 20px 22px;margin:0 0 15px;background:linear-gradient(180deg,rgba(20,24,36,.96),rgba(12,15,24,.96));border:1px solid rgba(0,255,133,.28);box-shadow:0 0 0 1px rgba(0,255,133,.06),0 10px 34px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.05)}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--cy);border-radius:16px 0 0 16px;box-shadow:0 0 16px var(--cy)}
.card.hi{border-color:rgba(255,45,111,.35)}
.card.hi::before{background:var(--mg);box-shadow:0 0 16px var(--mg)}
.card.settled,.card[data-decided]{opacity:.7;border-color:rgba(95,107,133,.35);box-shadow:none}
.card.settled::before,.card[data-decided]::before{background:#5f6b85;box-shadow:none}
.card.settled::after,.card[data-decided]::after{content:attr(data-decided);position:absolute;top:16px;right:18px;font-family:var(--mono);font-size:12px;letter-spacing:1px;color:#9aa7c4}
.proj{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:1px;color:var(--cy);text-transform:uppercase}
h2.proj{margin:0 0 13px}
.proj.rh{color:var(--mg)}
.tag{font-family:var(--mono);font-size:11px;letter-spacing:1px;padding:2px 8px;border-radius:6px;margin-left:8px;vertical-align:1px}
.tag.n{color:var(--cy);border:1px solid rgba(0,255,133,.4)}
.tag.h{color:var(--mg);border:1px solid rgba(255,45,111,.5)}
.sum{font-size:20px;font-weight:600;line-height:1.4;margin:13px 0 20px;word-break:break-word;white-space:pre-wrap;color:#f6f9ff}
.sumore{margin:0 0 10px}
.sumore>summary{font-family:var(--mono);font-size:11px;color:#5f6b85;cursor:pointer;list-style:none;padding:2px 0}
.sumore>summary::after{content:"＋";color:var(--cy);margin-left:6px}.sumore[open]>summary::after{content:"−"}
.sumore>pre{margin:6px 0 0;font:11px/1.5 var(--mono);color:#8fb3a0;white-space:pre-wrap;word-break:break-word;user-select:text}
.btns{display:flex;gap:12px;position:sticky;top:0;z-index:3;padding:8px 0;margin-bottom:2px;background:#0a0f14}
.card.hi .btns{background:#12080c}
.scan-actions,.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
button,.button{flex:1;min-height:44px;font-family:var(--mono);font-size:16px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:16px;border:none;border-radius:12px;color:#04060c;text-align:center;text-decoration:none;-webkit-tap-highlight-color:transparent;cursor:pointer;transition:transform .1s,box-shadow .15s,filter .15s}
.button{display:inline-flex;align-items:center;justify-content:center}
button:active,.button:active{transform:scale(.96);filter:brightness(1.15)}
button:disabled{opacity:.38;cursor:not-allowed}
.ok{background:var(--cy);box-shadow:0 0 22px rgba(0,255,133,.55),0 0 6px rgba(0,255,133,.9)}
.no,.deny{background:var(--mg);color:#fff;box-shadow:0 0 22px rgba(255,45,111,.5),0 0 6px rgba(255,45,111,.9)}
.confirm{background:var(--am);box-shadow:0 0 22px rgba(255,191,0,.5),0 0 6px rgba(255,191,0,.9)}
.pushbar{margin:0 0 16px;padding:12px 14px;border:1px solid rgba(0,255,133,.28);border-radius:12px;background:rgba(0,255,133,.05);font:13px/1.4 var(--mono);color:#8a8a8e}
.tbtn{flex:1 1 0;min-width:0;font-family:var(--mono);font-size:13px;font-weight:600;padding:12px 4px;border-radius:10px;background:rgba(0,255,133,.08);border:1px solid rgba(0,255,133,.4);color:var(--cy);letter-spacing:.5px;text-transform:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;cursor:pointer}
.tbtn:active{transform:scale(.96);background:rgba(0,255,133,.16)}
.tbtn.busy{color:#fff;border-color:var(--cy);box-shadow:0 0 18px rgba(0,255,133,.55);filter:brightness(1.25)}
.tbtn.done{color:var(--cy);box-shadow:0 0 12px rgba(0,255,133,.35)}
.tbtn.failed{color:var(--mg);border-color:rgba(255,45,111,.65);box-shadow:0 0 12px rgba(255,45,111,.35)}
.muted label{display:block;font-family:var(--mono);font-size:12px;letter-spacing:1px;color:var(--cy);text-transform:uppercase;margin:14px 0 10px}
textarea{width:100%;font-family:var(--mono);font-size:16px;letter-spacing:.5px;color:var(--ink);padding:16px;border-radius:12px;background:rgba(8,10,16,.85);border:1px solid rgba(0,255,133,.3);outline:none;-webkit-appearance:none;margin:0 0 16px;resize:vertical}
textarea:focus{border-color:var(--cy);box-shadow:0 0 0 3px rgba(0,255,133,.18)}
#scan{position:absolute;inline-size:1px;block-size:1px;opacity:0}
#camera-panel{margin:12px 0}
#camera-video{display:block;width:100%;max-height:65vh;margin-bottom:10px;border:1px solid rgba(0,255,133,.4);border-radius:12px;background:#000;box-shadow:0 0 16px rgba(0,255,133,.18)}
#pair-error{color:var(--mg);min-height:1.3em;text-shadow:0 0 10px rgba(255,45,111,.35)}
#operation:not(:empty),#pair-code{border-radius:10px;padding:12px 16px;margin:0 0 14px;font-family:var(--mono);font-size:13px;color:var(--am);background:rgba(255,191,0,.08);border:1px solid rgba(255,191,0,.4)}
.muted{border-radius:10px;padding:12px 16px;margin:10px 0 9px;font-family:var(--mono);font-size:13px;letter-spacing:.5px;background:rgba(16,19,28,.7);border:1px solid rgba(95,107,133,.2)}
.muted summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none;color:#7b88a5;-webkit-tap-highlight-color:transparent}
.muted summary::-webkit-details-marker{display:none}
.muted summary::after{content:"＋";color:var(--cy);font-size:18px;text-shadow:0 0 10px rgba(0,255,133,.5)}
.muted[open] summary::after{content:"−"}
.acklist{list-style:none;margin:10px 0 0;padding:0;color:#8fb3a0}
.acklist li{padding:6px 0;border-top:1px solid rgba(95,107,133,.2);word-break:break-word}
.empty{text-align:center;color:#3f4860;padding:22px 0;font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;font-size:15px}
@media (min-width:820px){body{font-size:15px;padding-top:24px}h1 b{font-size:23px}.sum{font-size:15px;margin:10px 0 14px}.card{padding:15px 16px 16px 18px;margin:0 0 11px}button,.button{font-size:13px;letter-spacing:1px;padding:11px}}
@media (prefers-reduced-motion:reduce){button,.button{transition:none}}
