/* Original TypeArena visual system: no third-party assets or fonts. */
:root{color-scheme:dark;--bg:#0b1020;--panel:#151b31;--line:#303955;--text:#e9eef9;--muted:#a7b2cf;--mint:#7aefc4;--violet:#b6a0ff;--coral:#ff9baf;--amber:#ffdc8e}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 10% 0%,#36206466,transparent 55%),radial-gradient(ellipse at 100% 40%,#153d5266,transparent 50%),var(--bg);color:var(--text);font:15px/1.55 system-ui,-apple-system,sans-serif;min-width:300px}
button,input,textarea,select{font:inherit}button,.button{cursor:pointer;touch-action:manipulation;background:#27304b;color:var(--text);border:1px solid #46506e;border-radius:11px;padding:10px 15px;min-height:43px;font-weight:650;text-decoration:none;display:inline-block}button:hover,.button:hover{filter:brightness(1.14)}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{color:var(--text);background:#0c1224;border:1px solid #46506e;border-radius:10px;padding:11px;width:100%;min-width:0}input[type=checkbox]{width:auto;accent-color:#b6a0ff}label{display:block;font-size:13px;color:#cbd4e9;margin:12px 0}input,select{margin-top:5px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #8bdafa;outline-offset:3px}h1,h2,h3,p{margin:0}h2{font-size:21px;letter-spacing:-.5px}h3{font-size:15px}h1{font-size:clamp(40px,6vw,70px);letter-spacing:-3px;line-height:1.1;margin:22px 0}.top{max-width:1500px;margin:auto;padding:24px 30px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-size:27px;font-weight:850;letter-spacing:-1.2px;text-decoration:none;color:var(--text)}.brand span{color:var(--violet)}.brand small{display:block;font-size:9px;letter-spacing:3px;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:10px}.badge,.badges span{font-size:10px;letter-spacing:1px;padding:5px 9px;background:#b6a0ff12;border:1px solid #b6a0ff40;border-radius:99px;color:#d5caff;display:inline-block}.badge.offline{color:var(--coral);border-color:#ff9baf66}.badge.online{color:var(--mint);border-color:#7aefc444}.panel{background:linear-gradient(140deg,#1c2338ee,#141b2dee);border:1px solid var(--line);border-radius:21px;padding:23px;box-shadow:0 14px 35px #0002}.auth{max-width:1050px;margin:8vh auto;padding:20px;display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:center}.intro p{color:var(--muted);font-size:17px}.feature-strip{display:flex;flex-wrap:wrap;gap:15px;font-size:12px;color:var(--mint);margin-top:30px}.tabs{display:flex;gap:8px;margin:22px 0 14px}.tabs .selected{background:#635294}.primary{background:linear-gradient(135deg,#b6a0ff,#8acff0);color:#0c1325;border-color:transparent}.danger{color:var(--coral)}.muted{color:var(--muted);font-size:12px}.small{font-size:11px}#notice{max-width:1440px;margin:0 auto;padding:0 24px;color:var(--amber);min-height:26px;font-size:13px}main{max-width:1500px;padding:8px 30px 35px;margin:auto}.room-nav{display:flex;gap:25px;align-items:center;margin-bottom:18px}.rooms{display:flex;gap:9px;flex-wrap:wrap}.rooms button.selected{border-color:var(--violet);background:#b6a0ff20}.empty{padding:40px;text-align:center;color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:20px}.race-heading{display:flex;justify-content:space-between;gap:15px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--violet);margin-bottom:7px}.badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.timer{width:125px;flex-shrink:0;text-align:right}.timer strong{display:block;font:700 29px ui-monospace,monospace;color:var(--mint)}.timer>span{font-size:11px;color:var(--muted)}.timer-track{height:5px;border-radius:9px;background:#333d55;margin-top:7px;overflow:hidden}.timer-track i{height:100%;display:block;background:var(--mint);width:0}.race-actions,.admin-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}.ack{display:flex;align-items:center;gap:8px;font-size:11px;margin:0}.admin-actions{border-top:1px solid var(--line);padding-top:14px}.target{height:185px;overflow:hidden;white-space:pre-wrap;overflow-wrap:normal;word-break:normal;background:#101628;border:1px solid var(--line);border-radius:15px;padding:20px;margin:18px 0 12px;font:22px/1.8 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#9aa6c3;position:relative}.target .correct{color:var(--mint)}.target .wrong{color:var(--coral);background:#ff9baf15}.target .cursor{border-left:2px solid var(--amber);margin-left:-2px;color:#e0e7f6;animation:caret 1s step-end infinite}.editor-label{font-size:11px;color:var(--muted);margin:4px 0}textarea{resize:none;font:18px/1.45 ui-monospace,monospace}textarea:disabled{opacity:.55}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 12px}.metrics div{background:#0d1425;border:1px solid var(--line);border-radius:12px;padding:13px}.metrics strong{display:block;font-size:24px;color:var(--mint);font-variant-numeric:tabular-nums}.metrics span{font-size:10px;color:var(--muted)}.section-title{margin:24px 0 12px}.lane{background:#101728;border:1px solid var(--line);padding:12px;border-radius:12px;margin:8px 0}.lane.own{border-color:#7aefc466}.lane-head{display:flex;justify-content:space-between;gap:10px;font-size:12px}.lane-head span{color:var(--muted);font-variant-numeric:tabular-nums}.progress{height:5px;background:#2d3550;border-radius:6px;margin-top:9px;overflow:hidden}.progress i{height:100%;display:block;background:linear-gradient(90deg,var(--violet),var(--mint));transition:width .4s}.podium{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.podium article{flex:1;min-width:135px;padding:16px;border-radius:14px;border:1px solid #ffdc8e66;background:#ffdc8e0a}.podium b{color:var(--amber);font-size:25px;display:block}.podium span{font-size:12px}.chat{display:flex;flex-direction:column;min-height:550px;max-height:850px;position:sticky;top:15px;align-self:start}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.messages{flex:1;overflow:auto;min-height:250px;margin:17px 0;padding-right:3px}.message{padding:11px;border:1px solid var(--line);background:#0e1629;border-radius:12px;margin-bottom:10px;overflow-wrap:anywhere}.message b{font-size:11px;color:var(--violet)}.message p{font-size:13px;white-space:pre-wrap}.message button{min-height:25px;font-size:9px;padding:3px 7px;margin-top:5px}.chat form{display:flex;gap:7px}.chat input{margin:0}.chat button{padding:8px 11px}#chat-toggle{display:none}details.panel{margin-bottom:18px}summary{cursor:pointer;font-weight:700}details>summary{padding:3px}.admin-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:30px;margin-top:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}fieldset{border:1px solid var(--line);border-radius:12px;margin:16px 0}#account-list{max-height:170px;overflow:auto}#account-list label{display:flex;gap:9px;align-items:center}output{display:block;overflow-wrap:anywhere;color:var(--mint);margin:15px 0;user-select:all}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;max-height:200px;overflow:auto}.review{border:1px solid var(--line);border-radius:12px;padding:14px;margin:10px 0}.review label{display:flex;align-items:center;gap:9px}.gallery{margin-top:20px}.cert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:18px}.cert-card{border:1px solid #b6a0ff55;background:#b6a0ff0b;border-radius:14px;padding:18px}.cert-card h3{margin:8px 0}.cert-card button{margin-top:12px}dialog{width:min(1100px,95vw);max-height:95vh;overflow:auto;border:1px solid var(--line);border-radius:18px;padding:26px;background:#11182a;color:var(--text)}dialog::backdrop{background:#050916dd}.close{float:right;margin-bottom:10px}.certificate-image{display:block;width:100%;height:auto;border-radius:8px;margin-bottom:18px}footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@keyframes caret{50%{border-color:transparent}}
@media(max-width:1000px){.layout{grid-template-columns:minmax(0,1fr) 280px}.panel{padding:18px}.top,main{padding-left:18px;padding-right:18px}.admin-grid{grid-template-columns:1fr}}
@media(max-width:760px){.auth{grid-template-columns:1fr;gap:28px;margin:20px auto}.intro h1{font-size:45px}.top{padding:17px 13px}.header-actions{gap:5px}.header-actions button{font-size:10px;padding:7px;min-height:36px}.badge{font-size:8px;padding:4px 6px}.brand{font-size:23px}.brand small{font-size:7px}.layout{grid-template-columns:1fr}main{padding:8px 12px 25px}.room-nav{display:block}.rooms{margin-top:13px}.race-heading{gap:8px}.timer{width:100px}.timer strong{font-size:25px}.target{font-size:19px;height:165px;padding:14px}.metrics{gap:6px}.metrics div{padding:10px}.metrics strong{font-size:21px}.metrics span{font-size:9px}.chat{display:none;position:static;height:450px;min-height:450px}.chat.open{display:flex}#chat-toggle{display:block}.form-grid{grid-template-columns:1fr}.panel{border-radius:16px}.race-actions .ack{width:100%}.chat-header h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
