body.admin-page { background: #0e1013; font-size: 17px; }
#admin { max-width: 1400px; margin: 0 auto; padding: 16px; }
.a-top { display: flex; align-items: baseline; gap: 16px; border-bottom: 3px solid var(--hazard); padding-bottom: 8px; margin-bottom: 16px; }
.a-top h1 { font-family: 'Future'; color: var(--hazard); margin: 0; font-size: 30px; }
#netstate { color: var(--dim); font-size: 14px; }
.a-grid { display: grid; grid-template-columns: 1fr 380px; gap: 16px; align-items: start; }
@media (max-width: 900px) { .a-grid { grid-template-columns: 1fr; } }
#stations { display: grid; gap: 16px; }
.station, .panel { background: #171a1f; border: 2px solid #2a2f37; border-radius: 14px; padding: 16px; }
.station header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.station h2, .panel h2 { font-family: 'Future'; font-size: 22px; margin: 0 0 8px; color: var(--hazard); }
.live { text-align: right; font-size: 14px; color: var(--dim); }
.live .what { margin-top: 4px; color: var(--ink); font-size: 15px; }
.dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; background: #666; }
.dot.on { background: var(--green); } .dot.off { background: var(--red); }
.ph.play { color: var(--green); } .ph.defused { color: var(--green); } .ph.exploded { color: var(--red); } .ph.brief { color: var(--hazard); }
.a-clock { display: flex; align-items: center; gap: 14px; background: #000; border-radius: 10px; padding: 8px 14px; width: fit-content; margin: 8px 0 12px; }
.a-lcd { width: 130px; }
.a-strikes { display: flex; gap: 6px; }
.a-strikes .sbox { width: 28px; height: 28px; border-radius: 6px; border: 2px solid #4a1714; display: grid; place-items: center; color: #fff; font-weight: 900; }
.a-strikes .sbox.on { background: var(--red); border-color: var(--red); }
.row { display: flex; gap: 10px; flex-wrap: wrap; margin: 8px 0; align-items: flex-end; }
.row label { flex: 1; min-width: 160px; font-size: 13px; color: var(--dim); }
.row label.narrow { flex: 0 0 110px; min-width: 110px; }
select, input[type=text], input[type=number], input[type=password] { display: block; width: 100%; margin-top: 4px; font-size: 17px; padding: 10px; border-radius: 8px; border: 2px solid #3b4048; background: #0b0d10; color: var(--ink); }
.row > input[type=text] { flex: 1; width: auto; }
button, .btnlink { font-size: 16px; padding: 10px 14px; border-radius: 8px; border: 2px solid #3b4048; background: #22262c; color: var(--ink); text-decoration: none; display: inline-block; }
button:hover { border-color: #5a616b; }
button.apply { width: 100%; margin: 4px 0 8px; background: #1c2a3a; border-color: #2d4a6b; }
button.go { font-family: 'Future'; font-size: 22px; padding: 10px 30px; background: var(--hazard); color: #111; border-color: var(--hazard); }
button.warn { border-color: #7a1d18; color: #ffb4ae; }
.btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.links { margin-top: 12px; font-size: 14px; color: var(--dim); }
.links a { color: var(--hazard); }
.blist ol { padding-left: 24px; margin: 8px 0; }
.blist li { display: flex; justify-content: space-between; padding: 4px 0; border-bottom: 1px solid #262a30; }
.blist li.empty { color: var(--dim); }
.tally { color: var(--dim); }
.confirm { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--dim); margin-top: 8px; }
#add { margin-top: 16px; }
#add p { color: var(--dim); font-size: 14px; }
#add input { display: inline-block; width: 90px; margin-right: 8px; }
.pin { position: fixed; inset: 0; background: rgba(0,0,0,.85); display: grid; place-items: center; z-index: 50; }
.pin > div { background: #171a1f; padding: 24px; border-radius: 14px; border: 2px solid var(--hazard); width: 300px; }
.pin h2 { font-family: 'Future'; color: var(--hazard); margin-top: 0; }
.pin button { margin-top: 10px; width: 100%; background: var(--hazard); color: #111; }
.toast { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); background: #000; border: 1px solid var(--hazard); color: var(--ink); padding: 8px 16px; border-radius: 20px; opacity: 0; transition: opacity 200ms; pointer-events: none; }
.toast.show { opacity: 1; }

#log { margin-top: 16px; }
.a-grid { grid-template-columns: 1fr 520px; }
.stat-t { width: 100%; border-collapse: collapse; font-size: 13px; margin: 8px 0; }
.stat-t th, .stat-t td { text-align: left; padding: 4px 6px; border-bottom: 1px solid #262a30; vertical-align: top; }
.stat-t th { color: var(--dim); font-weight: 600; }
.stat-t td.bad { color: var(--red); font-weight: 800; }
.stat-t td.msg { color: var(--dim); font-size: 12px; }
.hint { color: var(--dim); font-size: 12px; margin: 4px 0; }
h3.sub { font-size: 14px; color: var(--dim); margin: 14px 0 6px; }
.rounds { display: flex; flex-direction: column; gap: 4px; max-height: 360px; overflow-y: auto; }
.round { display: grid; grid-template-columns: 52px 1fr 1fr 110px 60px; gap: 6px; text-align: left; font-size: 13px; padding: 6px 8px; }
.round.defused { border-color: #1f5c3d; } .round.exploded { border-color: #5c1f1f; }
.round .tl { color: var(--hazard); font-size: 11px; }
.tl-modal { position: fixed; inset: 0; background: rgba(0,0,0,.8); z-index: 60; display: grid; place-items: center; padding: 20px; }
.tl-inner { position: relative; width: min(980px, 100%); max-height: 90vh; overflow-y: auto; background: #15181d; border: 2px solid var(--hazard); border-radius: 14px; padding: 18px; }
.tl-inner h2 { font-size: 18px; margin: 0 30px 4px 0; }
.tl-close { position: absolute; right: 12px; top: 10px; }
.tl-list { margin-top: 10px; font: 13px var(--mono); }
.ev { display: grid; grid-template-columns: 56px 120px 90px 1fr; gap: 8px; padding: 3px 0; border-bottom: 1px solid #1f2328; }
.ev .t { color: var(--dim); } .ev .ty { color: #9ab; } .ev .m { color: var(--hazard); } .ev .x { color: #ccc; }
.ev-strike .ty, .ev-strike .x { color: var(--red); }
.ev-solve .ty { color: var(--green); }
.ev-end .ty, .ev-go .ty, .ev-start .ty { color: #fff; font-weight: 800; }
