:root{--bg: #0c1016;--panel: #141a22;--panel-2: #1c2430;--line: rgba(232, 237, 244, .1);--text: #e8edf4;--muted: #93a0b4;--accent: #3dd6b5;--accent-ink: #06281f;--gold: #e6c36a;--silver: #c5d0dc;--bronze: #d39a6a;--danger: #f0a0ab;--warn: #e6c36a;--info: #9eb6e0;--shadow: 0 16px 40px rgba(0, 0, 0, .28);--font: "Outfit", "Segoe UI", sans-serif;--radius: 16px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;background:radial-gradient(900px 420px at 10% -10%,rgba(61,214,181,.08),transparent 55%),var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent);text-decoration:none}a:hover{color:#8ff0db}button{border:1px solid transparent;background:var(--accent);color:var(--accent-ink);font-weight:600;border-radius:10px;padding:.6rem .95rem}button:hover:not(:disabled){filter:brightness(1.05)}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{background:transparent;color:var(--text);border-color:var(--line)}button.danger{background:transparent;color:var(--danger);border-color:#f0a0ab73}button.small{padding:.35rem .65rem;font-size:.85rem}input,select,textarea{width:100%;background:#0e131a;border:1px solid var(--line);border-radius:10px;padding:.65rem .75rem;outline:none}input:focus,select:focus,textarea:focus{border-color:#3dd6b5b3}.app{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1.25rem;padding:.8rem 1.25rem;background:#0c1016e0;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{color:var(--text);font-weight:700;letter-spacing:-.03em;font-size:1.05rem}.topnav{display:flex;gap:.25rem;flex:1}.topnav a,.admin-nav a{color:var(--muted);padding:.4rem .75rem;border-radius:999px}.topnav a.active,.topnav a:hover,.admin-nav a.active,.admin-nav a:hover{color:var(--text);background:var(--panel-2)}.topbar-user{display:flex;align-items:center;gap:.75rem;margin-left:auto}.who{color:var(--muted);font-size:.92rem}.app-main{width:min(1240px,calc(100% - 2rem));margin:0 auto;padding:1.6rem 0 3rem}.page-head{margin-bottom:.4rem}.page-head h1,.profile-card h2,.detail-head h2,.auth-card h1{margin:0;letter-spacing:-.03em;font-weight:650}.page-head h1{font-size:1.8rem}.page-head p{margin:.3rem 0 0;color:var(--muted)}.tick-card{width:min(420px,100%);margin:.75rem 0 0;padding:.85rem 1rem .8rem;background:linear-gradient(180deg,rgba(61,214,181,.08),transparent 42%),var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.tick-card-top{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}.tick-card .kicker{margin:0}.tick-num,.tick-count{margin:.15rem 0 0;font-weight:650;letter-spacing:-.04em;line-height:1}.tick-num{font-size:2rem}.tick-remain{text-align:right}.tick-count{font-size:1.7rem}.tick-track{height:8px;margin-top:.8rem;border-radius:99px;background:#0e131a;overflow:hidden}.tick-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(61,214,181,.55),var(--accent))}.tick-card.urgent .tick-count{color:var(--warn)}.tick-card.urgent .tick-track span{background:linear-gradient(90deg,rgba(230,195,106,.55),var(--warn))}.tick-card.closed{opacity:.8}.tick-card.closed .tick-track span{background:var(--muted)}.kicker{margin:0 0 .25rem;color:var(--accent);font-size:.78rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.row.spread{justify-content:space-between}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.mono{font-variant-numeric:tabular-nums;word-break:break-all}.err,.ok-box,.banner{border-radius:12px;padding:.7rem .85rem}.err,.banner.warn{color:#ffd0d6;background:#f0a0ab14;border:1px solid rgba(240,160,171,.35)}.ok-box{color:#d8fff4;background:#3dd6b514;border:1px solid rgba(61,214,181,.3)}.home-grid{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:1rem;align-items:start}.profile-card,.panel,.auth-card,.podium-card,.workspace,.matrix-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.profile-card{padding:1.25rem}.user-profile{position:sticky;top:5rem}.avatar{width:3.2rem;height:3.2rem;border-radius:50%;display:grid;place-items:center;margin-bottom:.9rem;background:#243044;color:var(--text);font-weight:700}.email{margin:.2rem 0 0;color:var(--muted);word-break:break-all}.standing{min-height:320px;padding:1.5rem}.standing h2{font-size:2rem}.roster{margin:.8rem 0 0;padding-left:1.1rem;color:var(--muted)}.meta-list{margin:1rem 0 0;display:grid;gap:.55rem}.meta-list div{display:flex;justify-content:space-between;gap:1rem}.meta-list dt{color:var(--muted)}.meta-list dd{margin:0}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.4rem}.stat-row span,.stat h3{color:var(--muted);font-size:.85rem}.stat-row strong{display:block;margin-top:.15rem;font-size:2.2rem;letter-spacing:-.04em}.progress-block{margin-top:1.2rem}.progress{height:8px;border-radius:99px;background:#0e131a;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent)}.progress-block p{margin:.45rem 0 0}.stand-label{margin:1.15rem 0 .2rem}td.cell-patched{color:#8ff0db;background:#3dd6b529;font-weight:650}td.cell-vuln{color:#f0a0ab;background:#f0a0ab24;font-weight:650}.legend .cell-patched,.legend .swatch-patched{color:#8ff0db}.legend .cell-vuln,.legend .swatch-vuln{color:#f0a0ab}.workspace{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:68vh;overflow:hidden}.challenge-list{border-right:1px solid var(--line);background:#121820}.challenge-item{width:100%;text-align:left;background:transparent;color:var(--text);border:0;border-bottom:1px solid var(--line);border-radius:0;padding:.95rem 1rem;display:grid;gap:.3rem}.challenge-item.active{background:#3dd6b514;box-shadow:inset 3px 0 0 var(--accent)}.challenge-name{font-weight:650}.challenge-meta{display:flex;justify-content:space-between;align-items:center;gap:.5rem;color:var(--muted);font-size:.85rem}.diff-stack{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem}.detail-head .diff-stack{margin-top:.35rem}.challenge-detail{padding:1.25rem 1.35rem 1.5rem}.detail-empty{padding:2rem .5rem}.description{white-space:pre-wrap;margin:0;max-width:62ch}.spawn-box,.endpoint,.flag-form{border:1px solid var(--line);border-radius:14px;padding:.9rem;background:#10161e}.endpoint h3,.panel h2,.panel h3,.push-steps h3{margin:0 0 .6rem;font-size:1rem}.push-steps ol{margin:.2rem 0 0;padding-left:1.2rem}.push-steps li+li{margin-top:.85rem}.push-steps li p{margin:0}.push-steps pre{margin:.45rem 0 0;white-space:pre-wrap;word-break:break-all;background:#0e131a;border-radius:10px;padding:.65rem .75rem}.flag-grid{display:grid;gap:.75rem}.flag-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem .7rem;align-items:end}.flag-form label{display:grid;gap:.35rem}.flag-form label span,.flag-form.solved>span{color:var(--muted);font-size:.92rem;display:flex;justify-content:space-between;gap:.75rem}.flag-score{font-style:normal;color:var(--text);font-variant-numeric:tabular-nums;font-weight:650}td.cell-patched em,td.cell-vuln em{display:block;margin-top:.15rem;font-style:normal;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.legend .cell-patched,.legend .cell-vuln{padding:.1rem .4rem;border-radius:6px}.flag-form.solved{grid-template-columns:1fr auto;align-items:center}.flag-note{grid-column:1 / -1;margin:0;color:var(--accent)}.flag-note.bad{color:var(--danger)}.empty-list,.empty-board{padding:1rem}.podium{display:grid;grid-template-columns:1fr 1.12fr 1fr;gap:.75rem;align-items:end}.podium-card{padding:1rem 1rem 1.1rem;display:grid;gap:.2rem;min-height:132px}.podium-card strong{font-size:1.15rem;display:flex;align-items:center;gap:.4rem}.podium-card em{font-style:normal;color:var(--text);font-size:1.35rem;letter-spacing:-.03em}.place-1{order:2;min-height:168px;border-color:#e6c36a8c}.place-2{order:1;border-color:#c5d0dc59}.place-3{order:3;border-color:#d39a6a66}.medal{width:1.8rem;height:1.8rem;border-radius:50%;display:grid;place-items:center;font-weight:700;margin-bottom:.35rem}.place-1 .medal{background:var(--gold);color:#2a2108}.place-2 .medal{background:var(--silver);color:#1b2430}.place-3 .medal{background:var(--bronze);color:#2a160c}.podium-card.is-you,tr.is-you td:not(.cell-patched):not(.cell-vuln){background:#3dd6b514}tr.is-you td.cell-patched{background:#3dd6b529;color:#8ff0db}tr.is-you td.cell-vuln{background:#f0a0ab24;color:#f0a0ab}.matrix-wrap{overflow:auto;max-height:70vh}.matrix{width:100%;border-collapse:separate;border-spacing:0;min-width:720px}.matrix th,.matrix td{padding:.6rem .7rem;text-align:center;border-bottom:1px solid var(--line);white-space:nowrap}.matrix th{position:sticky;top:0;background:#1b232e;color:var(--muted);font-size:.78rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;z-index:1}.matrix thead tr:nth-child(2) th{top:2.35rem}.matrix .c-rank,.matrix .c-name{position:sticky;background:#141a22;z-index:2;text-align:left}.matrix th.c-rank,.matrix th.c-name{z-index:3;background:#1b232e}.matrix .c-rank{left:0;min-width:2.6rem}.matrix .c-name{left:2.6rem;min-width:10rem;box-shadow:8px 0 12px #0000002e}.name-line{display:flex;align-items:center;gap:.4rem}.matrix td.score{font-weight:700}.matrix tr.is-hidden td{opacity:.55}.lv-user{color:var(--info)!important}.lv-root{color:var(--accent)!important}.tick{font-style:normal}.tick.solved{color:var(--accent)}.tick.blood{color:var(--gold)}.tick.empty{color:#4c596b}.board-switch{display:flex;gap:.35rem}.board-switch a{color:var(--muted);padding:.4rem .8rem;border-radius:999px;border:1px solid var(--line)}.board-switch a.active,.board-switch a:hover{color:var(--text);background:var(--panel-2)}.pts-pos{color:var(--accent)}.pts-neg{color:var(--danger)}.pts-zero{color:var(--muted)}.jeodef-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.jeodef-card h2{margin:0 0 .35rem;font-size:1.15rem}.jeodef-card p:last-child{margin:0}.legend{display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);margin:0}.legend span{display:inline-flex;align-items:center;gap:.35rem}.tag{border:1px solid var(--line);border-radius:999px;padding:.05rem .4rem;font-size:.72rem;color:var(--muted)}.tag.danger{color:var(--danger);border-color:#f0a0ab66}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.1rem .45rem;border:1px solid var(--line);color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.badge.ready,.badge.live{color:var(--accent);border-color:#3dd6b566}.badge.failed,.badge.destroyed{color:var(--danger);border-color:#f0a0ab66}.badge.frozen{color:var(--gold);border-color:#e6c36a73}.badge.diff{text-transform:capitalize}.badge.diff-easy{color:var(--accent);border-color:#3dd6b573}.badge.diff-medium{color:var(--gold);border-color:#e6c36a80}.badge.diff-hard{color:var(--danger);border-color:#f0a0ab80}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.auth-card{width:min(420px,100%);padding:1.5rem;box-shadow:var(--shadow)}.auth-card h1{font-size:1.8rem;margin-bottom:.35rem}.auth-card form{display:grid;gap:.75rem;margin-top:1.1rem}.boot{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.admin-frame{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.admin-side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:1rem;padding:1.1rem .9rem;border-right:1px solid var(--line);background:#10161e}.admin-brand{color:var(--text);font-weight:700;letter-spacing:-.03em;padding:.2rem .75rem}.admin-nav{display:flex;flex-direction:column;gap:.15rem}.admin-nav a{border-radius:10px}.admin-side-foot{margin-top:auto;display:grid;gap:.55rem;padding:0 .35rem .4rem}.admin-main{padding:1.5rem 1.4rem 2.5rem;min-width:0}.panel{padding:1rem 1.1rem}.doc .panel h2{margin:0 0 .45rem;font-size:1.05rem}.doc .panel p{margin:.55rem 0 0}.doc .panel ul,.doc .panel ol{margin:.45rem 0 0;padding-left:1.2rem}.doc .panel li+li{margin-top:.35rem}.doc .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat{text-align:left}.stat .n{font-size:1.7rem;font-weight:700;letter-spacing:-.04em;margin-top:.2rem}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.6rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}.table th{color:var(--muted);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}.table .row input{width:auto;flex:1;min-width:12rem}.form-grid{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.form-grid .err,.form-grid .row{grid-column:1 / -1}.field{display:grid;gap:.35rem}.secret-field{display:flex;gap:.45rem;align-items:center}.secret-field input{flex:1}.field span,.checkline{color:var(--muted);font-size:.9rem}.bars{display:grid;gap:.7rem}.bar-row{display:grid;grid-template-columns:7.5rem 1fr auto;gap:.6rem;align-items:center}.bar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:#0e131a}.bar i{display:block;height:100%}.bar .user{background:var(--info)}.bar .root{background:var(--accent)}.bar .fail{background:var(--danger)}.activity{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.activity li{display:flex;justify-content:space-between;gap:.8rem}@media (max-width: 900px){.home-grid,.workspace,.admin-frame,.podium,.flag-form,.bar-row{grid-template-columns:1fr}.workspace{min-height:0}.challenge-list{border-right:0;border-bottom:1px solid var(--line)}.user-profile,.admin-side{position:static;height:auto}.place-1,.place-2,.place-3{order:initial;min-height:0}.topbar{flex-wrap:wrap}.topnav{order:3;width:100%}.matrix .c-name{position:static;box-shadow:none}.matrix .c-rank{position:static}}
