/* LOGIN GATE + CLASSIFIED: BTS (CJ 10/10) */
#gate{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(ellipse at 50% 40%,var(--cy-bg2),transparent 60%),repeating-linear-gradient(to bottom,transparent 0 2px,var(--scan) 3px),var(--bg);transition:opacity .7s}
html[data-theme="light"] #gate:not(.reauth){background:radial-gradient(ellipse at 50% 38%,#fff,transparent 62%),repeating-linear-gradient(to bottom,transparent 0 2px,var(--scan) 3px),linear-gradient(180deg,#e9eef2,#d6dfe6)}
#gate.done{opacity:0;pointer-events:none}
#gate .gbox{position:relative;width:min(420px,100%);border:1px solid var(--line);background:var(--glass2);box-shadow:0 0 0 1px var(--red-bg),0 0 60px var(--cy-bg),var(--shadow);padding:22px 22px 16px;display:flex;flex-direction:column;gap:12px;animation:popIn .3s ease-out}
#gate .gbox::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:linear-gradient(90deg,var(--red),var(--cy) 70%)}
#gate .ghead{display:flex;align-items:center;gap:12px}
#gate .ghead img{height:58px;width:auto;filter:drop-shadow(0 0 12px rgba(57,208,255,.45))}
html[data-theme="light"] #gate .ghead img{filter:drop-shadow(0 2px 6px rgba(10,40,60,.3))}
#gate h1{font:700 26px var(--hd);letter-spacing:.24em;color:var(--ink-hi)}
#gate .ghead p{font-size:10px;letter-spacing:.2em;color:var(--cy2)}
#gate .gstrip{font-size:10px;letter-spacing:.24em;color:var(--red-ink);text-align:center;padding:6px 5px;background:var(--red-bg);border:1px solid var(--red-line)}
#gate label{display:flex;flex-direction:column;gap:5px;font-size:10px;letter-spacing:.24em;color:var(--dim)}
#gate input,#gate select{font:14px var(--mono);letter-spacing:.08em;color:var(--ink);background:var(--field);border:1px solid var(--line);padding:10px 11px;border-radius:0;width:100%;transition:border-color .15s,box-shadow .15s}
#gate input:hover,#gate select:hover{border-color:var(--cy-line)}
#gate input:focus,#gate select:focus{outline:none;border-color:var(--cy);box-shadow:0 0 0 1px var(--cy),var(--glow-cy)}
#gate select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--cy) 50%),linear-gradient(135deg,var(--cy) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat}
#gate .gbtn{margin-top:4px;padding:12px;font:700 15px var(--hd);letter-spacing:.3em;color:var(--on-accent);background:var(--cy);border:1px solid var(--cy);transition:background .15s,box-shadow .15s,transform .1s}
#gate .gbtn:hover:not(:disabled){background:var(--cy2);border-color:var(--cy2);box-shadow:var(--glow-cy)}
#gate .gbtn:active:not(:disabled){transform:translateY(1px)}
#gate .gbtn:disabled{opacity:.6;cursor:wait}
#gate .gmsg{min-height:16px;font-size:11px;letter-spacing:.12em;color:var(--dim);text-align:center}
#gate .gmsg.bad{color:var(--red2);text-shadow:var(--tglow-red)}#gate .gmsg.ok{color:var(--ok)}
#gate .gfoot{font-size:9px;letter-spacing:.3em;color:var(--faint);text-align:center}
#gate form.shake{animation:gShake .4s}
@keyframes gShake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}

#b-bts{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;height:40px;padding:0 12px;border:1px solid var(--red-line);background:var(--red-bg);color:var(--red-ink);box-shadow:0 0 14px var(--red-bg) inset;white-space:nowrap;flex:none;backdrop-filter:blur(8px);transition:background .15s,box-shadow .15s}
html[data-theme="light"] #b-bts{background:color-mix(in srgb,var(--red) 8%,var(--glass2));box-shadow:none}
#b-bts b{font:700 13px var(--hd);letter-spacing:.18em;color:var(--ink-hi)}#b-bts span{font-size:9px;letter-spacing:.16em;color:var(--red2)}
#b-bts:hover,#b-bts[aria-expanded="true"]{background:color-mix(in srgb,var(--red) 20%,transparent);box-shadow:var(--glow-red)}
#bts{position:fixed;z-index:40;top:calc(var(--topy) + var(--toph) + 8px);right:var(--g);width:min(400px,calc(100vw - 32px));max-height:calc(100vh - 170px);overflow:auto;background:var(--glass2);backdrop-filter:blur(14px);border:1px solid var(--red-line);border-top:2px solid var(--red);box-shadow:var(--glow-red),var(--shadow);padding:16px;animation:popIn .16s ease-out}
#bts h3{font:700 16px var(--hd);letter-spacing:.24em;color:var(--ink-hi)}
#bts .bsub{font-size:10px;letter-spacing:.2em;color:var(--red2);margin:2px 0 12px}
#bts .bop{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;font-size:11px;letter-spacing:.12em;padding:10px 12px;border:1px solid var(--red-line);background:var(--panel);margin-bottom:14px}
#bts .bop span{color:var(--dim)}#bts .bop b{font-weight:400;color:var(--ink-hi)}
#bts .ladder{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;margin:4px 0 14px}
#bts .ladder i{display:flex;flex-direction:column;align-items:center;gap:3px;font-style:normal;font-size:8px;letter-spacing:.06em;color:var(--faint)}
#bts .ladder i::before{content:"";width:100%;height:6px;background:var(--track);border:1px solid var(--red-bg)}
#bts .ladder i.on{color:var(--red-ink)}#bts .ladder i.on::before{background:var(--red);box-shadow:var(--glow-red)}
#bts .ladder i.cur{color:var(--ink-hi)}
#bts h4{font-size:10px;letter-spacing:.26em;color:var(--dim);margin-bottom:6px}
#bts .comp{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;padding:10px;border:1px solid var(--red-line);background:var(--panel);margin-bottom:6px;font-size:12px;letter-spacing:.14em;color:var(--ink-hi);transition:background .15s,border-color .15s}
#bts button.comp:hover{background:var(--red-bg);border-color:var(--red)}#bts .comp em{font-style:normal;font-size:10px;color:var(--ok)}
#bts .bact{display:flex;gap:8px;margin-top:12px}
#bts .bact .btn{flex:1;border-color:var(--red-line);color:var(--red-ink);background:var(--red-bg);min-height:32px}
#bts .bact .btn:hover:not(:disabled){border-color:var(--red);color:var(--ink-hi);background:color-mix(in srgb,var(--red) 22%,transparent)}
#bts .bact .btn[data-b="up"]{background:var(--red-fill);border-color:var(--red-fill);color:#fff;font-weight:700}#bts .bact .btn[data-b="up"]:hover:not(:disabled){background:var(--red-fill2);box-shadow:var(--glow-red)}
@media (max-width:760px){#b-bts{height:34px;padding:0 8px}#b-bts span{display:none}#b-bts b{font-size:11px}}
/* passcode re-check over the running app (gate.js reauth, CJ 10/10: UAP switches) */
#gate.reauth{z-index:400;background:var(--scrim);backdrop-filter:blur(4px);transition:opacity .3s}
#gate.reauth .gbox{width:min(360px,100%)}
#gate.reauth input[readonly]{color:var(--dim)}
#gate .gbtns{display:flex;gap:8px}#gate .gbtns .gbtn{flex:1}
#gate .gcancel{color:var(--dim);background:transparent;border-color:var(--line)}
#gate .gcancel:hover:not(:disabled){color:var(--ink);background:var(--hover);border-color:var(--cy-line);box-shadow:none}
#gate .gsub{font-size:10px;letter-spacing:.2em;color:var(--dim);text-align:center}

/* ACCESS REVOKED (CJ 10/11): no form, no links */
#gate.revoked .gbox{border-color:var(--red-line);box-shadow:0 0 0 1px var(--red-line),var(--glow-red),var(--shadow);gap:16px;padding:22px 22px 26px;text-align:center}
#gate.revoked .gbox::before{background:var(--red)}
#gate.revoked .gstrip{font-size:12px;letter-spacing:.34em;color:#fff;background:var(--red-fill);border-color:var(--red-fill)}
#gate.revoked h2{font:700 20px var(--hd);letter-spacing:.16em;color:var(--red2);text-shadow:var(--tglow-red);line-height:1.35}
#gate.revoked p{font-size:12px;letter-spacing:.2em;color:var(--dim);text-transform:uppercase}
