/* ── Top bar ──────────────────────────────────────────────────────────────── */
#bar{position:fixed;top:0;left:0;right:0;height:48px;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid rgba(148,163,184,.14);background:linear-gradient(180deg,rgba(8,13,26,.98),rgba(4,7,16,.96));backdrop-filter:blur(18px);font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--mu);box-shadow:0 8px 30px rgba(0,0,0,.28),inset 0 -1px 0 rgba(0,212,255,.05)}
.bl{display:flex;align-items:center;gap:12px}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:14px;color:var(--ac);letter-spacing:.08em;text-shadow:0 0 18px rgba(0,212,255,.25)}
.logo i{width:8px;height:8px;background:var(--ac);border-radius:50%;box-shadow:0 0 10px var(--ac),0 0 24px rgba(0,212,255,.45)}
.pill{padding:4px 10px;border:1px solid rgba(148,163,184,.16);border-radius:999px;font-size:10px;color:rgba(180,196,216,.82);background:rgba(15,23,42,.45);transition:all .25s ease}
.pill.on{border-color:rgba(0,212,255,.42);color:var(--ac);background:rgba(0,212,255,.07);box-shadow:0 0 18px rgba(0,212,255,.08)}
.pill.brk{border-color:rgba(0,255,136,.42);color:var(--gn);background:rgba(0,255,136,.06)}
#dot{width:6px;height:6px;border-radius:50%;background:var(--gn);box-shadow:0 0 8px var(--gn),0 0 18px rgba(0,255,136,.35);animation:blink 2.5s ease-in-out infinite;transition:all .4s}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.22}}
#bst{color:rgba(203,213,225,.78);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
#bclk{font-size:9px;padding:1px 7px;color:rgba(180,196,216,.65)}

/* ── XP bar ───────────────────────────────────────────────────────────────── */
#xps{position:fixed;top:48px;left:0;right:0;height:3px;background:rgba(25,34,51,.55);z-index:30}
#xpf{height:100%;background:linear-gradient(90deg,var(--ac2),var(--pu),var(--ac));transition:width .8s ease;box-shadow:0 0 12px rgba(0,212,255,.5),0 0 4px rgba(0,212,255,.8)}

/* ── Bar buttons ──────────────────────────────────────────────────────────── */
#compact-btn{font-size:10px;padding:2px 8px;border:1px solid var(--br);border-radius:4px;color:var(--mu);transition:all .2s;cursor:pointer}
#compact-btn:hover{border-color:rgba(0,212,255,.35);color:var(--ac)}
#compact-btn.on{border-color:var(--ac);color:var(--ac)}
#stats-btn{font-size:10px;padding:2px 8px;border:1px solid var(--br);border-radius:4px;color:var(--mu);transition:all .2s;cursor:pointer}
#stats-btn:hover{border-color:rgba(0,212,255,.35);color:var(--ac)}
#repo-btn{font-size:10px;padding:2px 8px;border:1px solid var(--br);border-radius:4px;color:var(--mu);transition:all .2s;cursor:pointer;position:relative}
#repo-btn:hover{border-color:rgba(0,212,255,.35);color:var(--ac)}
.repo-btn-label{margin-left:3px}
@keyframes repoBtnPulse{0%,100%{box-shadow:0 0 0 0 rgba(0,212,255,0)}50%{box-shadow:0 0 0 5px rgba(0,212,255,.28)}}
.repo-btn-new{animation:repoBtnPulse .9s ease 4;border-color:rgba(0,212,255,.55)!important;color:var(--ac)!important}
#repo-btn.repo-btn-new::after{content:'';position:absolute;top:1px;right:1px;width:5px;height:5px;border-radius:50%;background:var(--ac);box-shadow:0 0 6px var(--ac)}

/* ── Legacy hidden elements ───────────────────────────────────────────────── */
#stats{position:fixed;top:52px;right:20px;z-index:15;font-family:'JetBrains Mono',monospace;font-size:9.5px;color:var(--mu);text-align:right;line-height:2.2;display:none}
#streak-box{position:fixed;top:52px;left:20px;z-index:15;display:none}
.sdots{display:flex;gap:5px;margin-bottom:5px}
.sdot{width:10px;height:10px;border-radius:2px;border:1px solid var(--br);transition:all .5s}
.sdot.done{background:var(--ac);border-color:var(--ac);box-shadow:0 0 5px rgba(0,212,255,.45)}
.sdot.now{background:var(--gn);border-color:var(--gn);animation:snow .9s ease-in-out infinite alternate}
@keyframes snow{from{box-shadow:0 0 4px rgba(0,255,136,.4)}to{box-shadow:0 0 12px rgba(0,255,136,.9)}}
.slbl{font-family:'JetBrains Mono',monospace;font-size:9.5px;color:var(--mu)}

/* ── Settings panel ───────────────────────────────────────────────────────── */
#settings{position:fixed;top:51px;right:0;width:280px;height:calc(100vh - 51px);z-index:40;padding:24px 20px;display:none;flex-direction:column;gap:20px;background:rgba(5,8,16,.99);border-left:1px solid rgba(25,34,51,.9);backdrop-filter:blur(16px);overflow-y:auto}
#settings.open{display:flex}
.set-title{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mu);letter-spacing:.22em;text-transform:uppercase;margin-bottom:6px;padding-bottom:8px;border-bottom:1px solid rgba(25,34,51,.8)}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0}
.set-label{font-family:'Outfit',sans-serif;font-size:11px;font-weight:500;color:var(--tx)}
.set-sub{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mu);margin-top:2px}
.tog{width:32px;height:17px;border-radius:9px;background:var(--br);position:relative;transition:background .3s;flex-shrink:0}
.tog.on{background:rgba(0,212,255,.45)}
.tog::after{content:'';position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:var(--mu);transition:all .3s}
.tog.on::after{left:17px;background:var(--ac)}
.set-divider{height:1px;background:rgba(25,34,51,.8)}
.set-stat{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu);display:flex;justify-content:space-between;padding:4px 0}
.set-stat span{color:var(--tx)}
.set-reset{width:100%;padding:9px;border:1px solid rgba(255,71,87,.22);border-radius:7px;color:rgba(255,71,87,.65);font-family:'JetBrains Mono',monospace;font-size:10px;transition:all .2s}
.set-reset:hover{border-color:var(--rd);color:var(--rd);background:rgba(255,71,87,.05)}
#session-history{display:flex;flex-direction:column;gap:5px;margin-top:6px;max-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,212,255,.14) transparent}
.hist-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 9px;border-radius:5px;background:rgba(9,13,20,.65);border:1px solid rgba(25,34,51,.7);font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mu);}
.hist-item .hi-goal{color:var(--tx);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hist-item .hi-dur{color:var(--ac)}
.hist-item .hi-date{font-size:8px}
#settings-close{position:absolute;top:16px;right:16px;background:transparent;border:1px solid var(--br);color:var(--mu);font-family:'JetBrains Mono',monospace;font-size:10px;padding:3px 10px;border-radius:5px;cursor:pointer;transition:all .2s}
#settings-close:hover{border-color:var(--ac);color:var(--ac)}

/* ── Main app ─────────────────────────────────────────────────────────────── */
#app{position:relative;z-index:10;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:51px}
#modes{display:flex;gap:6px;margin-bottom:44px}
.mb{padding:5px 14px;border:1px solid var(--br);border-radius:5px;color:var(--mu);font-family:'JetBrains Mono',monospace;font-size:10.5px;transition:all .2s}
.mb:hover{border-color:rgba(0,212,255,.35);color:rgba(0,212,255,.75)}
.mb.on{border-color:var(--ac);color:var(--ac);background:rgba(0,212,255,.07);box-shadow:0 0 14px rgba(0,212,255,.07)}
.mb.lk{opacity:.28;cursor:default}

/* ── Legacy duration/sets pickers (hidden after landing redesign) ─────────── */
#dur{display:flex;gap:6px;margin-bottom:20px}
.db{padding:5px 14px;border:1px solid var(--br);border-radius:5px;color:var(--mu);font-family:'JetBrains Mono',monospace;font-size:10.5px;transition:all .2s}
.db:hover{border-color:var(--mu);color:var(--tx)}
.db.on{border-color:rgba(124,58,237,.7);color:var(--pu);background:rgba(124,58,237,.07)}
#custom-dur-wrap{display:flex;align-items:center;gap:6px;margin-top:6px}
#custom-dur-input{width:60px;padding:4px 8px;border:1px solid var(--br);border-radius:5px;background:transparent;color:var(--tx);font-family:'JetBrains Mono',monospace;font-size:10px;text-align:center;outline:none;transition:border-color .2s;}
#custom-dur-input:focus{border-color:var(--pu)}
#custom-dur-input::placeholder{color:var(--mu)}
#custom-dur-btn{padding:4px 10px;border:1px solid var(--br);border-radius:5px;color:var(--mu);font-family:'JetBrains Mono',monospace;font-size:10px;transition:all .2s;}
#custom-dur-btn:hover{border-color:var(--pu);color:var(--pu)}
#sets-wrap{display:flex;align-items:center;gap:6px;margin-top:6px}
#sets-label{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu);margin-right:2px}
.sb{padding:4px 11px;border:1px solid var(--br);border-radius:5px;color:var(--mu);font-family:'JetBrains Mono',monospace;font-size:10px;transition:all .2s}
.sb:hover{border-color:var(--mu);color:var(--tx)}
.sb.on{border-color:rgba(0,255,136,.5);color:var(--gn);background:rgba(0,255,136,.06)}
#set-indicator{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--gn);letter-spacing:.1em;margin-top:4px;display:none;text-align:center;}

/* ── Controls ─────────────────────────────────────────────────────────────── */
#ctrls{display:flex;gap:12px;margin-bottom:16px}
.cb{padding:10px 28px;border:1px solid var(--br);border-radius:9px;color:var(--mu);font-size:13px;font-weight:500;letter-spacing:.04em;transition:all .22s}
.cb:hover{border-color:rgba(180,196,216,.4);color:var(--tx);background:rgba(255,255,255,.02);transform:translateY(-1px)}
.cb.s{position:relative;overflow:hidden;border-color:var(--ac);color:var(--ac);background:linear-gradient(135deg,rgba(0,212,255,.08),rgba(124,58,237,.05))}
.cb.s::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at center,rgba(0,212,255,.22),transparent 58%);opacity:0;transform:scale(.4);transition:opacity .28s ease,transform .28s ease;pointer-events:none}
.cb.s:active::after{opacity:1;transform:scale(1)}
.cb.s:hover{background:linear-gradient(135deg,rgba(0,212,255,.14),rgba(124,58,237,.09));box-shadow:0 0 28px rgba(0,212,255,.14),0 4px 16px rgba(0,212,255,.07);transform:translateY(-1px)}
.cb.p{border-color:var(--or);color:var(--or);background:rgba(255,140,66,.05)}

/* ── Sound toggle ─────────────────────────────────────────────────────────── */
#srow{display:flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:10.5px;color:rgba(120,145,170,.7)}
#stog{width:28px;height:15px;border-radius:8px;background:var(--br);position:relative;transition:background .3s;flex-shrink:0}
#stog.on{background:rgba(0,212,255,.4)}
#stog::after{content:'';position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:var(--mu);transition:all .3s}
#stog.on::after{left:15px;background:var(--ac)}

/* ── RPG rank corner ──────────────────────────────────────────────────────── */
#rpg{position:fixed;bottom:28px;right:24px;text-align:right;z-index:15;padding-top:10px;border-top:1px solid rgba(25,34,51,.8)}
#rrlbl{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mu);letter-spacing:.2em;text-transform:uppercase}
#rrname{font-size:15px;font-weight:600;color:var(--ac);margin:3px 0;text-shadow:0 0 16px rgba(0,212,255,.35);transition:all .4s}
#rxp{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu)}

/* ── Compact mode overrides ───────────────────────────────────────────────── */
body.compact #modes{display:none}
body.compact #dur{display:none}
body.compact #srow{display:none}
body.compact #logs{display:none}
body.compact #rpg{display:none}
body.compact #streak-box{display:none}
body.compact #stats{display:none}
body.compact #compiler-bg{display:block}
body.compact #vig{display:none}
body.compact #app{background:var(--bg)}
body.compact #tz{width:180px;height:180px;margin:0}
body.compact #tz #rsvg{width:180px;height:180px;transform:rotate(-90deg) scale(0.6)}
body.compact #tdsp{font-size:48px}
body.compact #tlbl{font-size:8px}
body.compact #tpct{font-size:9px}
body.compact #ctrls{margin-bottom:0}
body.compact #ctrls .cb{padding:8px 18px;font-size:12px}
body.compact #bar .pill:not(#modepill):not(#bclk){display:none}

/* ── Session focus mode ───────────────────────────────────────────────────── */
body.session-running #session-xp-hud{display:none!important}
body.session-running #rpg{display:none!important}
body.session-running #xps{display:none}
body.session-running #under-stats{display:none}
body.session-running #under-streak{display:none}
body.session-running #srow{display:none}
body.session-running #stats-ov{display:none!important}
body.session-running #stats-btn{display:none}
body.session-running #cxp{display:flex}

/* ── Compact XP line ─────────────────────────────────────────────────────── */
#cxp{display:none;align-items:center;gap:.35rem;font-family:'JetBrains Mono',monospace;font-size:.72rem;color:rgba(255,255,255,.4);margin-top:2px}
#cxp-value{color:var(--tx);font-weight:700}
.cxp-clean-active{color:var(--gn)}
.cxp-clean-lost{color:var(--rd)}
.cxp-sep{opacity:.3}
.cxp-swlbl{color:rgba(255,255,255,.25)}

/* ── Panel system ─────────────────────────────────────────────────────────── */
body[data-panel]:not([data-panel="focus"]) #program-panel,
body[data-panel]:not([data-panel="focus"]) #repo-panel,
body[data-panel]:not([data-panel="focus"]) #rpg,
body[data-panel]:not([data-panel="focus"]) #logs,
body[data-panel]:not([data-panel="focus"]) #session-xp-hud{display:none!important}
body[data-panel="settings"] #settings-btn,
body[data-panel="stats"] #stats-btn,
body.repo-open #repo-btn,
body[data-panel="team"] #project-btn{border-color:var(--ac);color:var(--ac)}

/* ── Team project modal ───────────────────────────────────────────────────── */
#team-modal{display:none;position:fixed;inset:0;z-index:108;align-items:center;justify-content:center}
body[data-panel="team"] #team-modal{display:flex}
#team-backdrop{position:absolute;inset:0;background:rgba(4,8,14,.85);backdrop-filter:blur(6px)}
#team-card{position:relative;z-index:1;width:min(380px,94vw);background:rgba(9,13,20,.98);border:1px solid rgba(25,34,51,.9);border-radius:12px;overflow:hidden;max-height:calc(100dvh - 80px);overflow-y:auto}
#team-header{display:flex;justify-content:flex-end;padding:10px 12px 0}
#team-close{background:transparent;border:1px solid var(--br);color:var(--mu);font-family:'JetBrains Mono',monospace;font-size:10px;padding:3px 10px;border-radius:5px;cursor:pointer;transition:all .2s}
#team-close:hover{border-color:var(--ac);color:var(--ac)}
#project-panel{padding:4px 16px 16px}

/* ── Program panel + The Program ─────────────────────────────────────────── */
.prog-line-added{font-size:.75rem;color:var(--clr-ok,#4ade80);font-family:monospace;margin-top:.5rem;padding:.4rem .6rem;background:rgba(74,222,128,.08);border-left:2px solid var(--clr-ok,#4ade80);border-radius:2px}
.program-panel{position:fixed;bottom:1.5rem;right:1.5rem;width:320px;background:var(--clr-surface,#0f1117);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:1rem;z-index:50;font-family:monospace}
.pp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}
.pp-filename{color:var(--clr-accent,#7dd3fc);font-size:.8rem}
.pp-progress{color:rgba(255,255,255,.4);font-size:.7rem}
.pp-code{font-size:.7rem;line-height:1.6;max-height:200px;overflow-y:auto;color:rgba(255,255,255,.6)}
.pp-code .line-clean{color:rgba(255,255,255,.55)}
.pp-code .line-buggy{color:#f87171}
.pp-code .line-new{color:#fff;font-weight:600}
.pp-code .line-locked{color:rgba(255,255,255,.15)}
.pp-code .ln{display:inline-block;width:1.6em;color:rgba(255,255,255,.2);user-select:none}
.pp-compile-btn{margin-top:.75rem;width:100%;padding:.5rem;background:var(--clr-accent,#7dd3fc);color:#000;border:none;border-radius:4px;font-family:monospace;font-size:.8rem;cursor:pointer}
.pp-compile-btn:hover{opacity:.85}
.pp-debug-cta{margin-top:.75rem;font-size:.7rem;color:#f87171;padding:.4rem;border:1px solid rgba(248,113,113,.3);border-radius:4px}
.pp-terminal{margin-top:.75rem;font-size:.7rem;color:#4ade80;line-height:1.7;border-top:1px solid rgba(255,255,255,.06);padding-top:.5rem}
.line-starred{color:#fbbf24}
.line-repaired{color:#34d399}
.prog-line-added.quality-starred{color:#fbbf24;border-left-color:#fbbf24;background:rgba(251,191,36,.08)}
.prog-line-added.quality-buggy{color:#f87171;border-left-color:#f87171;background:rgba(248,113,113,.08)}
.prog-line-added.quality-repaired{color:#34d399;border-left-color:#34d399;background:rgba(52,211,153,.08)}
#debug-mode-row{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.tog-label{display:flex;align-items:center;gap:10px;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu);cursor:pointer}
.term-line{margin:1px 0;transition:opacity .15s}
body.session-started #program-panel{display:none!important}

/* ── Share card ──────────────────────────────────────────────────────────── */
#pp-share-card{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:100}
.share-card{background:var(--clr-surface,#0f1117);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:2rem;width:340px;font-family:monospace;text-align:center}
.sc-brand{color:var(--clr-accent,#7dd3fc);font-size:.8rem;margin-bottom:1rem}
.sc-filename{color:#fff;font-size:1.1rem;font-weight:700;margin-bottom:.5rem}
.sc-stats{color:rgba(255,255,255,.5);font-size:.75rem;margin-bottom:.25rem}
.sc-quality{color:#fbbf24;font-size:.8rem;margin-bottom:1rem}
.sc-output{color:#4ade80;font-size:.8rem;margin-bottom:1.5rem}
.sc-copy-btn,.sc-next-btn{padding:.5rem 1rem;border-radius:4px;font-family:monospace;font-size:.8rem;cursor:pointer;border:none;margin:.25rem}
.sc-copy-btn{background:rgba(255,255,255,.1);color:#fff}
.sc-next-btn{background:var(--clr-accent,#7dd3fc);color:#000}
.sc-next-btn:disabled{opacity:.4;cursor:default}
.sc-actions{margin-top:1rem}

/* ── Living Repository preview card ──────────────────────────────────────── */
.repo-panel{position:fixed;right:1.5rem;bottom:12rem;width:300px;background:var(--clr-surface,#0f1117);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:.875rem;z-index:50;font-family:monospace;cursor:pointer}
.rp-header{display:flex;justify-content:space-between;margin-bottom:.5rem}
.rp-filename{color:rgba(255,255,255,.4);font-size:.7rem}
.rp-progress{color:rgba(255,255,255,.25);font-size:.7rem}
.rp-code{font-size:.68rem;line-height:1.7;min-height:1.5rem}
.rp-line{color:rgba(255,255,255,.45)}
.rp-clean{color:rgba(255,255,255,.45)}
.rp-starred{color:#fbbf24}
.rp-buggy{color:#f87171}
.rp-repaired{color:#34d399}
.rp-empty{color:rgba(255,255,255,.2);font-style:italic}
.rp-cursor{display:inline-block;color:var(--clr-accent,#7dd3fc);animation:blink 1s step-end infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.rp-meta{margin-top:.5rem;font-size:.62rem;color:rgba(255,255,255,.2)}
.repo-counter{font-family:monospace;font-size:.7rem;color:rgba(255,255,255,.3);text-align:center;margin-top:.4rem}
.rc-sep{margin:0 .3rem}
@keyframes rpPulse{0%,100%{box-shadow:0 0 0 0 rgba(125,211,252,0)}50%{box-shadow:0 0 0 6px rgba(125,211,252,.25)}}
.rp-pulse{animation:rpPulse 1s ease 3}

/* ── Living Repository fullscreen view ───────────────────────────────────── */
.repo-modal{position:fixed;inset:0;z-index:50;display:flex;background:rgba(5,8,13,.72);backdrop-filter:blur(4px)}
.repo-view{position:fixed;inset:0;z-index:50;opacity:0;transition:opacity .3s ease;font-family:monospace;align-items:center;justify-content:center}
.repo-view.rv-visible{opacity:1}
.rv-backdrop{position:absolute;inset:0;background:rgba(5,8,13,.72);backdrop-filter:blur(4px)}
.rv-shell{position:relative;z-index:1;width:min(1120px,94vw);height:min(760px,88vh);background:rgba(10,13,19,.94);border:1px solid rgba(255,255,255,.1);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.45)}
.rv-header{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.06)}
.rv-back-btn{background:none;border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.5);padding:.35rem .75rem;border-radius:4px;font-family:monospace;font-size:.75rem;cursor:pointer}
.rv-back-btn:hover{border-color:rgba(255,255,255,.3);color:#fff}
.rv-title{color:#fff;font-size:.9rem;font-weight:600}
.rv-subtitle{color:rgba(255,255,255,.3);font-size:.75rem;margin-left:auto}
.rv-body{display:flex;flex:1;overflow:hidden}
.rv-tree{width:280px;border-right:1px solid rgba(255,255,255,.06);padding:1rem;overflow-y:auto;font-size:.75rem;line-height:2;color:rgba(255,255,255,.5);flex-shrink:0;white-space:pre}
.rv-tree-month{color:rgba(255,255,255,.6);font-weight:600}
.rv-tree-week{color:rgba(255,255,255,.4)}
.rv-tree-day{cursor:pointer;padding:.1rem .25rem;border-radius:3px}
.rv-tree-day:hover{background:rgba(255,255,255,.05);color:#fff}
.rv-tree-day.selected{background:rgba(125,211,252,.1);color:var(--clr-accent,#7dd3fc)}
.rv-detail{flex:1;padding:1.5rem;overflow-y:auto}
.rv-detail-empty{color:rgba(255,255,255,.2);font-size:.8rem;margin-top:2rem;text-align:center}
.rv-file-header{color:var(--clr-accent,#7dd3fc);font-size:.9rem;margin-bottom:.25rem}
.rv-file-meta{color:rgba(255,255,255,.3);font-size:.7rem;margin-bottom:1rem}
.rv-actions{margin-bottom:1rem}
.rv-run-btn{background:transparent;border:1px solid rgba(125,211,252,.35);color:var(--clr-accent,#7dd3fc);padding:.35rem .75rem;border-radius:4px;font-family:monospace;font-size:.75rem;cursor:pointer}
.rv-run-btn:disabled{opacity:.35;cursor:not-allowed}
.rv-code-line{font-size:.8rem;line-height:1.8;color:rgba(255,255,255,.6)}
.rv-clean{color:rgba(255,255,255,.6)}
.rv-starred{color:#fbbf24}
.rv-buggy{color:#f87171}
.rv-repaired{color:#34d399}
.rv-code-locked{color:rgba(255,255,255,.15);font-size:.8rem;line-height:1.8}
.rv-empty{color:rgba(255,255,255,.2);font-size:.8rem;text-align:center;margin-top:3rem}
.repo-run-output{position:absolute;z-index:2;right:1.25rem;bottom:1.25rem;width:min(620px,calc(100% - 2.5rem));max-height:70vh;overflow:auto;background:rgba(5,8,13,.98);border:1px solid rgba(125,211,252,.22);border-radius:8px;box-shadow:0 18px 60px rgba(0,0,0,.55)}
.repo-run-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border-bottom:1px solid rgba(255,255,255,.08)}
.repo-run-title{color:#fff;font-size:.85rem;font-weight:600}
.repo-run-subtitle{color:rgba(255,255,255,.35);font-size:.7rem;margin-top:.15rem}
.repo-run-close{background:transparent;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.7);border-radius:4px;padding:.3rem .65rem;font-family:monospace;font-size:.72rem;cursor:pointer}
.repo-run-body{padding:1rem}
.repo-run-line{font-size:.78rem;line-height:1.7;color:rgba(220,245,238,.72)}
.repo-run-success{color:#34d399}
.repo-run-warn{color:#f87171}

/* ── Theme overrides (JS-controlled) ─────────────────────────────────────── */
body.theme-neon{--ac:#ff00ff;--ac2:#00ffff;--gn:#00ff00;--pu:#ff66ff}
body.theme-amber{--ac:#ffbf00;--ac2:#ff6600;--gn:#88cc00;--pu:#ffdd44}
body.theme-ghost{--compiler-opacity:.40;--mu:#334455}

/* ── Leaderboard modal ──────────────────────────────────────────────────────── */
#leaderboard-modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .28s}
#leaderboard-modal.lb-open{opacity:1;pointer-events:all}
.lb-backdrop{position:absolute;inset:0;background:rgba(5,8,16,.88);backdrop-filter:blur(12px)}
.lb-inner{position:relative;z-index:1;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;background:rgba(9,14,22,.98);border:1px solid rgba(0,212,255,.14);border-radius:14px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.7)}
.lb-header{display:flex;align-items:center;gap:12px;padding:18px 20px 14px;border-bottom:1px solid rgba(25,34,51,.9);flex-wrap:wrap}
.lb-title{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:600;color:#fff;display:flex;align-items:center;gap:8px;flex:1}
.lb-live-count{font-size:10px;color:var(--gn);font-weight:400;white-space:nowrap}
.lb-tabs{display:flex;gap:4px}
.lb-tab{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu);background:transparent;border:1px solid rgba(25,34,51,.9);border-radius:5px;padding:4px 10px;transition:all .2s;cursor:pointer}
.lb-tab.active,.lb-tab:hover{color:var(--ac);border-color:var(--ac)}
.lb-close{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu);background:transparent;border:1px solid rgba(25,34,51,.9);border-radius:5px;padding:4px 10px;transition:all .2s;cursor:pointer;white-space:nowrap}
.lb-close:hover{color:var(--rd,#f87171);border-color:var(--rd,#f87171)}
.lb-body{flex:1;overflow-y:auto;padding:8px 0}
.lb-loading,.lb-empty{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--mu);text-align:center;padding:40px 20px}
.lb-row{display:grid;grid-template-columns:36px 1fr auto auto;align-items:center;gap:8px;padding:10px 20px;border-bottom:1px solid rgba(25,34,51,.5);transition:background .15s}
.lb-row:hover{background:rgba(0,212,255,.04)}
.lb-row-me{background:rgba(0,212,255,.08)!important;border-left:2px solid var(--ac)}
.lb-rank{font-size:15px;text-align:center}
.lb-handle{font-family:'JetBrains Mono',monospace;font-size:11px;color:rgba(255,255,255,.75)}
.lb-handle em{font-style:normal;font-size:9px;color:var(--ac)}
.lb-meta{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.lb-xp{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--ac)}
.lb-rank-name{font-family:'JetBrains Mono',monospace;font-size:8px;color:var(--mu)}
.lb-sessions{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mu);min-width:70px;text-align:right}
.lb-my-rank{border-top:1px solid rgba(0,212,255,.2);padding:4px 0;background:rgba(0,212,255,.04)}
.lb-my-rank .lb-row{border-bottom:none}

/* ── Repo panel language separator ─────────────────────────────────────────── */
.rp-lang-sep{color:rgba(255,255,255,.18)!important;font-size:.72rem!important;font-style:italic;border-top:1px dashed rgba(255,255,255,.06);border-bottom:1px dashed rgba(255,255,255,.06);padding:3px 0!important;margin:2px 0}
