@font-face{font-family:"JetBrains Mono";src:url("JetBrainsMonoNerdFont-regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("JetBrainsMonoNerdFont-bold.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Unifont;src:url("unifont-web.woff2") format("woff2"),url("unifont.otf") format("opentype");font-display:swap}
@font-face{font-family:TerminalBlock;src:url("pressstart.woff2") format("woff2");font-display:swap}
@font-face{font-family:PixelUI;src:url("pixelify.woff2") format("woff2");font-display:swap}
@font-face{font-family:TerminalText;src:url("vt323.woff2") format("woff2");font-display:swap}
:root{color-scheme:dark;--palette-background:#090300;--terminal-background:#000000;--terminal-foreground:#DADADA;--terminal-cursor:#EFEFEF;--ansi-black:#090300;--ansi-blue:#1E90FF;--ansi-bright-black:#5C5855;--ansi-bright-blue:#1E90FF;--ansi-bright-cyan:#B5E4F4;--ansi-bright-green:#01A252;--ansi-bright-magenta:#A16A94;--ansi-bright-red:#DB2D20;--ansi-bright-white:#FFFFFF;--ansi-bright-yellow:#FDED02;--ansi-cyan:#B5E4F4;--ansi-green:#01A252;--ansi-magenta:#A16A94;--ansi-red:#DB2D20;--ansi-white:#DADADA;--ansi-yellow:#FDED02;--bg:var(--terminal-background);--panel:var(--terminal-background);--text:var(--terminal-foreground);--muted:#777473;--faint:#5C5855;--line:#777473;--line-soft:#242220;--accent:var(--ansi-blue);--blue:var(--ansi-blue);--danger:var(--ansi-red);--magenta:var(--ansi-magenta);--ok:var(--ansi-green);--warn:var(--ansi-yellow);--iris:var(--ansi-magenta);--empty:#11100f;--hm1:#102b37;--hm2:#075a7d;--hm3:var(--ansi-blue);--hm4:var(--ansi-bright-cyan);--mono:PixelUI,Unifont,"JetBrains Mono","Noto Sans Mono CJK SC",monospace}
*{box-sizing:border-box;font-variant-ligatures:none;scrollbar-width:none}*::-webkit-scrollbar{display:none}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font:15px/1.35 var(--mono);letter-spacing:.025em}body{image-rendering:pixelated}button,input,select,textarea,pre,code{font:inherit}a{color:var(--accent)}::selection{background:var(--accent);color:var(--bg)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:1px dashed var(--danger);outline-offset:2px}.scanlines{display:none}[v-cloak]{display:none}
/* terminal boxes */
.tui-screen{height:100vh;min-height:720px;padding:6px 9px 4px;display:grid;grid-template-rows:225px minmax(0,1fr) 34px;gap:10px;overflow:hidden}.tui-box{position:relative;min-width:0;margin:0;padding:12px 10px 10px;border:1px solid var(--line);border-radius:5px;background:var(--panel)}.tui-box legend{padding:0 9px;color:var(--text);font-size:15px}.box-action,.box-tab{position:absolute;z-index:2;top:-11px;padding:0 6px;background:var(--bg);text-decoration:none}.box-action{right:13px}.box-tab{right:12px;color:var(--accent)}.status-box{display:flex;flex-direction:column;align-items:center;justify-content:center}.status-word{margin:4px 0 15px;color:var(--danger);font-family:TerminalBlock,var(--mono);font-size:clamp(48px,7.5vw,108px);font-weight:400;line-height:1;letter-spacing:.02em}.state{color:var(--muted);font-size:12px}.state.studying{color:var(--ok)}.state.paused{color:var(--warn)}.state.offline{color:var(--danger)}.status-meta{display:flex;gap:9px;color:var(--muted);font-size:12px}.subject-chips{min-height:19px;margin-top:5px;color:var(--accent);font-size:11px}.tui-grid{min-height:0;display:grid;grid-template-columns:minmax(0,2fr) minmax(310px,1fr);grid-template-rows:minmax(0,1fr) 235px;gap:10px}.activity-box{grid-column:1;grid-row:1}.monitor-box{grid-column:2;grid-row:1/3}.times-box{grid-column:1;grid-row:2}.heatmap-layout{height:calc(100% - 18px);display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center}.axis-y{height:100%;padding:14px 0 7px;display:grid;grid-template-rows:repeat(7,1fr);align-items:center;color:var(--muted);font-size:11px}.grid-scroll{min-width:0;overflow:auto}.weeks{display:flex;gap:3px;width:max-content;min-width:100%}.week{display:grid;grid-template-rows:repeat(7,minmax(9px,1fr));gap:3px}.cell{display:block;width:clamp(8px,1.12vw,15px);aspect-ratio:1;border-radius:2px;background:var(--empty)}.cell.l1{background:var(--hm1)}.cell.l2{background:var(--hm2)}.cell.l3{background:var(--hm3)}.cell.l4{background:var(--hm4)}.axis-x{display:flex;justify-content:space-between;padding-left:44px;color:var(--muted);font-size:9px}.monitor-list{height:100%;display:flex;flex-direction:column;justify-content:space-around;padding:10px 8px}.monitor-row{display:grid;gap:7px}.monitor-head{display:flex;justify-content:space-between}.monitor-head span{color:var(--muted)}.monitor-head b{font-weight:400}.text-meter{height:18px;border-left:1px solid var(--line-soft);background:repeating-linear-gradient(90deg,var(--empty) 0 2px,transparent 2px 3px)}.text-meter i{display:block;width:var(--value);height:100%;background:repeating-linear-gradient(90deg,var(--accent) 0 2px,transparent 2px 3px)}.text-meter.gold i{background:repeating-linear-gradient(90deg,var(--warn) 0 2px,transparent 2px 3px)}.text-meter.green i{background:repeating-linear-gradient(90deg,var(--ok) 0 2px,transparent 2px 3px)}.text-meter.iris i{background:repeating-linear-gradient(90deg,var(--iris) 0 2px,transparent 2px 3px)}.hours,.hour-chart{height:calc(100% - 22px);display:flex;align-items:flex-end;gap:3px;padding:8px 4px 0;background:repeating-linear-gradient(to top,transparent 0 31px,var(--line-soft) 32px)}.hcol,.hour-col{height:100%;flex:1;min-width:0;display:flex;align-items:flex-end}.bar,.hour-bar{width:100%;min-height:1px;background:repeating-linear-gradient(to top,var(--accent) 0 2px,transparent 2px 3px)}.terminal-footer{display:flex;align-items:center;justify-content:center;gap:20px;color:var(--muted);white-space:nowrap}.terminal-footer i{color:var(--line-soft);font-style:normal}
/* auth tty */
.login-page{display:grid;place-items:center;min-height:100vh;padding:16px}.auth-terminal{width:min(780px,100%)}.auth-box{min-height:590px;padding:36px 54px 30px}.auth-banner{margin:4px 0 24px;color:var(--danger);font-size:clamp(30px,6vw,58px);font-weight:700;line-height:1.05}.boot-log{display:grid;gap:5px;margin-bottom:28px;color:var(--muted);font-size:12px}.boot-log b{color:var(--ok);font-weight:400}.auth-form{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px}.auth-form label{grid-column:1/-1;color:var(--text)}.auth-form label span{color:var(--accent)}.form-control,.form-select,.pixel-input,.pixel-select,textarea{min-height:36px;padding:7px 9px;border:1px solid var(--line);border-radius:0;background:transparent;color:var(--text)}.form-control,.form-select{width:100%}.auth-form .form-select,.auth-form .form-control{grid-column:1/-1;margin-bottom:10px}.btn-login,.pixel-btn,.tab-btn{appearance:none;min-height:34px;padding:6px 11px;border:1px solid var(--line);border-radius:0;background:transparent;color:var(--text);cursor:pointer}.btn-login{grid-column:1/-1;color:var(--accent);text-align:left}.btn-login:hover,.pixel-btn:hover,.tab-btn:hover{background:var(--text);color:var(--bg)}.auth-hint{position:absolute;left:54px;bottom:20px;color:var(--muted);font-size:10px}.alert{margin-bottom:18px;padding:8px 10px;border:1px solid var(--danger);color:var(--danger)}
/* shared dashboard layout */
.container{width:calc(100% - 18px);max-width:none;margin:auto}.row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}.g-2{gap:10px}.col-12{grid-column:span 12}.col-lg-4{grid-column:span 4}.col-lg-5{grid-column:span 5}.col-lg-7{grid-column:span 7}.col-lg-8{grid-column:span 8}.col-lg-3{grid-column:span 3}.col-lg-9{grid-column:span 9}.d-flex,.d-inline-flex{display:flex}.d-inline-flex{display:inline-flex}.flex-column{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-fill,.flex-grow-1{flex:1 1 auto;min-width:0}.align-items-center{align-items:center}.align-items-start{align-items:flex-start}.justify-content-between{justify-content:space-between}.justify-content-center{justify-content:center}.gap-1{gap:5px}.gap-2{gap:9px}.w-100{width:100%}.text-center{text-align:center}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:5px!important}.mb-2{margin-bottom:10px!important}.mb-3{margin-bottom:12px!important}.mt-2{margin-top:10px!important}.p-3{padding:14px!important}.py-3{padding-block:14px!important}.small{font-size:11px;color:var(--muted)}.text-muted{color:var(--muted)!important}
.navbar{height:47px;border-bottom:1px solid var(--line);background:var(--bg)}.navbar>.container{height:100%}.brand-lockup{display:flex;align-items:center;gap:8px}.brand-mark::before{content:">_";color:var(--accent)}.brand-copy{display:flex;gap:9px;align-items:baseline}.navbar-brand{font-weight:700}.brand-sub{color:var(--muted);font-size:10px}.nav-status{display:flex;align-items:center;gap:8px}.online-pip{width:7px;height:7px;background:var(--ok)}.user-tag{color:var(--muted);font-size:10px}.nav-logout{min-height:27px}.system-strip{display:none}.dashboard-page #app>.container{padding-top:8px;padding-bottom:6px}.command-tabs{position:sticky;top:0;z-index:20;margin:0 0 10px!important;padding:5px;border:1px solid var(--line);border-radius:4px;background:var(--bg)}.tab-btn{min-width:110px;border-color:transparent}.tab-btn.active{color:var(--bg);background:var(--accent)}
.pixel-btn{font-size:11px}.pixel-btn-sm{min-height:27px;padding:3px 8px}.pixel-btn-success{color:var(--ok);border-color:var(--ok)}.pixel-btn-warning{color:var(--warn);border-color:var(--warn)}.pixel-btn-danger{color:var(--danger);border-color:var(--danger)}.pixel-btn:disabled{opacity:.4}.pixel-box{position:relative;margin:8px 0 10px;padding:18px 12px 12px;border:1px solid var(--line);border-radius:4px;background:transparent}.pixel-box-title{position:relative;display:flex;align-items:center;gap:5px;width:max-content;max-width:90%;margin:-28px 0 13px;padding:0 7px;background:var(--bg);color:var(--text);font-size:12px;font-weight:400}.pixel-box-title::before{content:"┤"}.pixel-box-title::after{content:"├"}.pixel-hr{height:0;border:0;border-top:1px solid var(--line-soft);margin:11px 0}.empty-state,.chart-empty{padding:12px;color:var(--muted);text-align:center}.toast-box{position:fixed;z-index:200;right:10px;top:55px;padding:8px 12px;border:1px solid var(--line);background:var(--bg);color:var(--accent)}
.timer-display{display:grid;place-items:center;min-height:190px;margin-bottom:10px}.timer-num{font-size:clamp(52px,8vw,106px);font-weight:700;line-height:1;color:var(--danger);font-variant-numeric:tabular-nums}.timer-num.pulse{color:var(--ok)}.timer-label{color:var(--muted);font-size:11px}.status-dot{display:inline-block;width:7px;height:7px;margin-right:6px;background:var(--danger)}.status-dot.on{background:var(--ok)}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px}.mastery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1px;background:var(--line-soft)}.stat-card,.mastery-card{padding:10px;background:var(--bg)}.stat-card{border:1px solid var(--line-soft)}.stat-card .subj{color:var(--muted);font-size:11px}.stat-card .num{color:var(--accent);font-size:18px}.habit-item{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px dashed var(--line-soft)}.check,.task-check{display:grid;place-items:center;width:17px;height:17px;border:1px solid var(--line);cursor:pointer}.check.checked{background:var(--ok)}.check.checked::before{content:"x";color:var(--bg)}.habit-item.done{opacity:.55}.label.done{text-decoration:line-through}.plan-head,.mastery-top{display:flex;justify-content:space-between;gap:10px}.plan-progress,.task-minutes,.mastery-score{color:var(--warn)}.plan-task{display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line-soft);cursor:pointer}.plan-task.done{opacity:.55}.plan-task-title,.mastery-topic{color:var(--text)}.plan-task-detail,.mastery-evidence,.mastery-next,.mastery-summary{color:var(--muted);font-size:11px}.plan-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.plan-tag,.badge{display:inline-block;padding:1px 5px;color:var(--iris);font-size:10px}.plan-tag::before{content:"["}.plan-tag::after{content:"]"}.mastery-track{height:10px;background:var(--empty)}.mastery-fill{height:100%;background:repeating-linear-gradient(90deg,var(--accent) 0 3px,transparent 3px 4px)}.mastery-card .mastery-track{margin:9px 0}
.stats-summary{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line-soft)}.summary-cell{padding:9px}.summary-value{color:var(--accent);font-size:20px}.summary-cell:nth-child(2) .summary-value{color:var(--warn)}.summary-cell:nth-child(3) .summary-value{color:var(--ok)}.summary-cell:nth-child(4) .summary-value{color:var(--iris)}.summary-label{color:var(--muted);font-size:10px}.contrib-scroll{overflow:auto;padding:10px 0}.contrib-wrap{display:flex;gap:3px;width:max-content;min-width:100%}.contrib-week{display:grid;grid-template-rows:repeat(7,10px);gap:2px}.contrib-cell{width:10px;height:10px;background:var(--empty)}.contrib-cell[data-level="1"]{background:var(--hm1)}.contrib-cell[data-level="2"]{background:var(--hm2)}.contrib-cell[data-level="3"]{background:var(--hm3)}.contrib-cell[data-level="4"]{background:var(--hm4)}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pie-layout{display:grid;gap:12px}.pie-chart{width:100%;height:16px!important;aspect-ratio:auto!important;border:0!important;border-radius:0!important}.legend{display:flex;flex-wrap:wrap;gap:12px}.legend-row{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px}.legend-color{width:8px;height:8px}.dashboard-page .hour-chart{height:150px}.dashboard-page .hour-col{position:relative;align-items:flex-end}.dashboard-page .hour-label{position:absolute;bottom:-12px;color:var(--muted);font-size:8px}
.flip-card{display:grid;place-items:center;min-height:260px;padding:24px;border:1px dashed var(--line);cursor:pointer}.front,.back{max-width:760px;font-size:16px}.back{color:var(--accent)}.mistake-card{padding:9px;border-bottom:1px dashed var(--line-soft)}.mistake-q{color:var(--text)}.mistake-detail{color:var(--muted);font-size:11px}.modal-mask{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:15px;background:rgba(0,0,0,.9)}.modal-box{width:min(760px,100%);max-height:92vh;overflow:auto;padding:20px;border:1px solid var(--line);background:var(--bg)}.tree-scroll{max-height:620px;overflow:auto}.note-tree-subj{padding:7px;border-bottom:1px solid var(--line);color:var(--accent)}.note-tree-item,.note-item{padding:7px 12px;border-left:1px solid var(--line-soft);cursor:pointer}.note-tree-item:hover,.note-item:hover{background:var(--empty)}.cnt{color:var(--muted)}.breadcrumb{color:var(--muted);font-size:11px}.doc-toc{padding:8px;border-left:1px solid var(--line)}.note-reader{min-height:360px;line-height:1.7}.note-reader code{background:var(--empty);color:var(--accent)}.note-reader pre{overflow:auto;padding:10px;border:1px solid var(--line-soft)}.related-links{display:flex;gap:5px}.rl{color:var(--accent);cursor:pointer}#graph-canvas{height:70vh;border:1px solid var(--line)}.graph-tip{text-align:center;color:var(--muted);font-size:10px}.app-footer{display:flex;justify-content:center;gap:30px;padding:7px;color:var(--muted);font-size:10px}
@media(max-width:900px){.tui-screen{height:auto;min-height:100vh;display:block;overflow:visible}.status-box{height:250px;margin-bottom:10px}.tui-grid{display:grid;grid-template-columns:1fr;grid-template-rows:auto;gap:10px}.activity-box,.monitor-box,.times-box{grid-column:1;grid-row:auto;min-height:290px}.monitor-box{min-height:370px}.times-box{min-height:230px}.terminal-footer{padding:10px;flex-wrap:wrap}.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-7,.col-lg-8,.col-lg-9{grid-column:span 12}.chart-grid{grid-template-columns:1fr}.navbar-brand{font-size:12px}.brand-sub{display:none}.command-tabs{overflow:auto}.tab-btn{min-width:96px}}
@media(max-width:600px){body{font-size:12px}.tui-screen{padding:4px}.status-word{font-size:42px;max-width:100%;overflow:hidden}.status-meta{flex-wrap:wrap;justify-content:center;font-size:9px}.status-box{height:210px}.subject-chips{font-size:9px}.activity-box{min-height:250px}.cell{width:8px}.heatmap-layout{grid-template-columns:30px 1fr}.axis-x{padding-left:30px}.axis-y{font-size:8px}.monitor-box{min-height:320px}.terminal-footer{gap:7px;font-size:9px}.login-page{padding:5px}.auth-box{min-height:620px;padding:25px 17px}.auth-banner{font-size:35px}.auth-form{grid-template-columns:1fr}.auth-hint{left:17px;bottom:16px;font-size:8px}.container{width:calc(100% - 8px)}.navbar{height:42px}.user-tag{display:none}.pixel-box{padding-inline:8px}.timer-display{min-height:140px}.timer-num{font-size:46px}.stats-summary{grid-template-columns:1fr 1fr}.stat-grid,.mastery-grid{grid-template-columns:1fr}.plan-task{grid-template-columns:auto 1fr}.task-minutes{grid-column:2}.app-footer{flex-wrap:wrap}.pie-layout{display:block}.legend{margin-top:10px}}

/* neon pixel terminal accents */

/* CRT raster, phosphor glow and ANSI terminal palette */
body::before{content:"";position:fixed;inset:-8px 0 0;z-index:9998;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.34) 0 1px,rgba(255,255,255,.018) 1px 2px,transparent 2px 4px);mix-blend-mode:multiply;animation:scanShift 9s linear infinite}
body::after{content:"";position:fixed;inset:0;z-index:9997;pointer-events:none;background:radial-gradient(ellipse at center,transparent 54%,rgba(0,0,0,.16) 78%,rgba(0,0,0,.52) 100%),linear-gradient(90deg,rgba(255,0,0,.014),rgba(0,0,255,.012),rgba(0,255,0,.01));box-shadow:inset 0 0 90px rgba(0,0,0,.8);animation:crtFlicker 7s steps(1) infinite}
@keyframes scanShift{to{transform:translateY(4px)}}
@keyframes crtFlicker{0%,96%,100%{opacity:1}97%{opacity:.94}98%{opacity:.985}}
body{text-shadow:0 0 2px rgba(255,255,255,.22)}
.tui-box,.pixel-box,.command-tabs,.auth-box,.cell,.contrib-cell{border-radius:0!important}
.tui-box legend,.pixel-box-title,.tab-btn,.pixel-btn,.btn-login,.navbar-brand,.box-action,.box-tab{font-family:TerminalBlock,PixelUI,Unifont,monospace;letter-spacing:0}
.tui-box legend,.pixel-box-title{font-size:9px;text-transform:uppercase}
.tab-btn,.pixel-btn,.btn-login,.box-action,.box-tab,.navbar-brand{font-size:8px}
.tui-box legend,.pixel-box-title,.box-tab,.brand-mark::before,.navbar-brand{color:var(--blue);text-shadow:0 0 4px var(--blue),0 0 10px rgba(0,102,255,.55)}
.status-box legend{color:var(--magenta);text-shadow:0 0 4px var(--magenta),0 0 10px rgba(255,85,255,.5)}
.auth-box legend,.auth-banner{color:var(--magenta);text-shadow:3px 3px 0 #360036,0 0 9px rgba(255,85,255,.55)}
.box-action{color:var(--warn);text-shadow:0 0 5px rgba(255,255,85,.7)}
.status-word,.timer-num{color:var(--magenta);filter:drop-shadow(3px 3px 0 #350035) drop-shadow(0 0 6px rgba(255,85,255,.45))}
.status-word.offline{color:var(--danger);filter:drop-shadow(3px 3px 0 #350000) drop-shadow(0 0 6px rgba(255,85,85,.5))}.status-word.studying{color:var(--ok);filter:drop-shadow(3px 3px 0 #003500) drop-shadow(0 0 6px rgba(85,255,85,.5))}.status-word.paused{color:var(--warn);filter:drop-shadow(3px 3px 0 #353500) drop-shadow(0 0 6px rgba(255,255,85,.5))}
.navbar{border-color:var(--blue);box-shadow:0 2px 8px rgba(0,102,255,.15)}
.tab-btn.active{background:var(--blue);color:#fff;box-shadow:0 0 9px rgba(0,102,255,.7)}
.online-pip{box-shadow:0 0 7px var(--ok)}
.text-meter i,.mastery-fill{background:repeating-linear-gradient(90deg,var(--blue) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 3px rgba(0,102,255,.8))}
.text-meter.gold i{background:repeating-linear-gradient(90deg,var(--warn) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 3px rgba(255,255,85,.75))}.text-meter.green i{background:repeating-linear-gradient(90deg,var(--ok) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 3px rgba(85,255,85,.75))}.text-meter.iris i{background:repeating-linear-gradient(90deg,var(--magenta) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 3px rgba(255,85,255,.75))}
.bar,.hour-bar{background:repeating-linear-gradient(to top,rgba(0,0,0,.52) 0 1px,transparent 1px 3px),linear-gradient(to top,var(--blue) 0 28%,#55aaff 28% 46%,var(--ok) 46% 66%,var(--warn) 66% 84%,var(--danger) 84% 100%);filter:drop-shadow(0 0 4px rgba(0,102,255,.72))}
.pie-chart{box-shadow:0 0 7px rgba(0,102,255,.45)}
.cell.l3,.cell.l4,.contrib-cell[data-level="3"],.contrib-cell[data-level="4"]{box-shadow:0 0 6px rgba(0,102,255,.78)}
.pixel-box:nth-of-type(3n+2)>.pixel-box-title{color:var(--magenta);text-shadow:0 0 5px rgba(255,85,255,.65)}.pixel-box:nth-of-type(3n)>.pixel-box-title{color:var(--warn);text-shadow:0 0 5px rgba(255,255,85,.65)}

.tui-box,.pixel-box,.command-tabs,.auth-box{box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}
.tui-box legend,.pixel-box-title{color:var(--accent);text-shadow:0 0 8px rgba(0,217,255,.28)}
.status-box legend,.auth-box legend{color:var(--danger);text-shadow:0 0 8px rgba(255,79,163,.28)}
.status-word,.timer-num{filter:drop-shadow(3px 3px 0 rgba(255,79,163,.16))}
.box-action{color:var(--warn)}
.box-tab,.brand-mark::before,.navbar-brand{color:var(--accent)}
.navbar{border-color:var(--accent)}
.command-tabs{border-color:#555}
.tab-btn.active{background:var(--accent);color:#000;text-shadow:none}
.pixel-btn-success:hover{background:var(--ok);color:#000}.pixel-btn-warning:hover{background:var(--warn);color:#000}.pixel-btn-danger:hover{background:var(--danger);color:#000}
.form-control,.form-select,.pixel-input,.pixel-select,textarea{background:#080808}
.auth-banner{color:var(--danger);text-shadow:4px 4px 0 #351023}
.boot-log b{color:var(--ok);text-shadow:0 0 7px rgba(54,249,161,.35)}
.text-meter,.mastery-track{background-color:#0e0e0e}
.text-meter i,.mastery-fill,.bar,.hour-bar{filter:drop-shadow(0 0 3px rgba(0,217,255,.4))}
.cell.l3,.cell.l4,.contrib-cell[data-level="3"],.contrib-cell[data-level="4"]{box-shadow:0 0 5px rgba(0,229,255,.35)}
.summary-value,.stat-card .num{font-family:TerminalText,var(--mono);font-size:25px;letter-spacing:.04em}
.monitor-head b,.status-meta,.terminal-footer,.auth-hint,.small,.summary-label{font-family:"JetBrains Mono",Unifont,monospace;letter-spacing:0}
.pixel-box:nth-of-type(3n+2)>.pixel-box-title{color:var(--danger);text-shadow:0 0 8px rgba(255,79,163,.24)}
.pixel-box:nth-of-type(3n)>.pixel-box-title{color:var(--warn);text-shadow:0 0 8px rgba(255,209,102,.24)}

/* final ANSI overrides */
.tui-box legend,.pixel-box-title{color:var(--blue);font-family:TerminalBlock,PixelUI,Unifont,monospace;font-size:9px;text-shadow:0 0 4px var(--blue),0 0 10px rgba(0,102,255,.55)}
.status-box legend,.auth-box legend{color:var(--magenta);text-shadow:0 0 4px var(--magenta),0 0 10px rgba(255,85,255,.55)}
.auth-banner{color:var(--magenta);text-shadow:3px 3px 0 #360036,0 0 9px rgba(255,85,255,.55)}
.box-tab,.brand-mark::before,.navbar-brand{color:var(--blue)}
.navbar{border-color:var(--blue)}
.tab-btn.active{background:var(--blue);color:#fff;box-shadow:0 0 9px rgba(0,102,255,.7)}
.text-meter i,.mastery-fill{filter:drop-shadow(0 0 3px rgba(0,102,255,.8))}
.bar,.hour-bar{filter:drop-shadow(0 0 4px rgba(0,102,255,.72))}
.cell.l3,.cell.l4,.contrib-cell[data-level="3"],.contrib-cell[data-level="4"]{box-shadow:0 0 6px rgba(0,102,255,.78)}
.pixel-box:nth-of-type(3n+2)>.pixel-box-title{color:var(--magenta);text-shadow:0 0 5px rgba(255,85,255,.65)}
.pixel-box:nth-of-type(3n)>.pixel-box-title{color:var(--warn);text-shadow:0 0 5px rgba(255,255,85,.65)}

/* Workbench terminal palette and stronger CRT treatment */
body::before{content:"";position:fixed;inset:0;z-index:9998;pointer-events:none;background:linear-gradient(to bottom,transparent 0%,transparent 46%,rgba(30,144,255,.035) 48%,rgba(180,225,253,.14) 50%,rgba(30,144,255,.055) 51%,transparent 54%,transparent 100%) 0 -100vh/100% 200vh no-repeat,repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,rgba(180,225,253,.022) 1px 2px,transparent 2px 4px);mix-blend-mode:screen;animation:crtSweep 5.8s linear infinite}
body::after{content:"";position:fixed;inset:0;z-index:9997;pointer-events:none;background:radial-gradient(ellipse at center,transparent 76%,rgba(2,9,16,.05) 88%,rgba(0,0,0,.2) 100%),linear-gradient(90deg,rgba(255,30,142,.008),rgba(8,131,255,.012),rgba(8,255,131,.007));box-shadow:inset 0 0 34px rgba(0,0,0,.28);animation:crtFlicker 8s steps(1) infinite}
@keyframes crtSweep{from{background-position:0 -100vh,0 0}to{background-position:0 100vh,0 4px}}
@keyframes cursorBlink{0%,48%{opacity:1}49%,100%{opacity:0}}
body{color:var(--terminal-foreground);text-shadow:0 0 3px rgba(180,225,253,.42),0 0 8px rgba(30,144,255,.12)}
.tui-box,.pixel-box,.command-tabs,.auth-box{border-color:var(--line);box-shadow:0 0 5px rgba(8,131,255,.18),inset 0 0 14px rgba(8,131,255,.025)}
.tui-box legend,.pixel-box-title,.status-box legend,.auth-box legend,.box-tab,.brand-mark::before,.navbar-brand,.pixel-box:nth-of-type(3n+2)>.pixel-box-title,.pixel-box:nth-of-type(3n)>.pixel-box-title{color:var(--ansi-bright-blue);text-shadow:0 0 5px var(--ansi-blue),0 0 12px rgba(30,144,255,.92),0 0 24px rgba(30,144,255,.45)}
.status-word,.status-word.offline,.status-word.studying,.status-word.paused,.timer-num,.timer-num.pulse,.auth-banner{color:var(--ansi-bright-blue);text-shadow:0 0 7px var(--ansi-blue),0 0 16px rgba(30,144,255,.95),0 0 32px rgba(30,144,255,.55);filter:drop-shadow(4px 4px 0 #061a38) drop-shadow(0 0 9px rgba(30,144,255,.9))}
.box-action{color:var(--ansi-bright-yellow);text-shadow:0 0 5px var(--ansi-yellow),0 0 13px rgba(255,142,30,.7)}
.navbar{border-color:var(--ansi-blue);box-shadow:0 2px 12px rgba(8,131,255,.32)}
.tab-btn.active{background:var(--ansi-blue);color:var(--ansi-bright-white);box-shadow:0 0 8px var(--ansi-blue),0 0 18px rgba(30,144,255,.65)}
.navbar-brand::after,.state::after,.auth-hint::after{content:"█";display:inline-block;margin-left:7px;color:var(--terminal-cursor);text-shadow:0 0 6px var(--terminal-cursor),0 0 14px rgba(180,225,253,.7);animation:cursorBlink 1s steps(1) infinite}
.text-meter i,.mastery-fill{background:repeating-linear-gradient(90deg,var(--ansi-blue) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 5px rgba(30,144,255,.92))}
.text-meter.gold i{background:repeating-linear-gradient(90deg,var(--ansi-bright-yellow) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 5px rgba(255,142,30,.9))}.text-meter.green i{background:repeating-linear-gradient(90deg,var(--ansi-bright-green) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 5px rgba(142,255,30,.9))}.text-meter.iris i{background:repeating-linear-gradient(90deg,var(--ansi-bright-magenta) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 5px rgba(142,30,255,.9))}
.bar,.hour-bar{background:repeating-linear-gradient(to top,rgba(13,25,38,.58) 0 1px,transparent 1px 3px),linear-gradient(to top,var(--ansi-blue) 0 26%,var(--ansi-bright-blue) 26% 43%,var(--ansi-bright-cyan) 43% 58%,var(--ansi-bright-green) 58% 73%,var(--ansi-bright-yellow) 73% 87%,var(--ansi-bright-red) 87% 100%);filter:drop-shadow(0 0 6px rgba(30,144,255,.95))}
.cell.l3,.cell.l4,.contrib-cell[data-level="3"],.contrib-cell[data-level="4"]{box-shadow:0 0 5px var(--ansi-blue),0 0 12px rgba(30,144,255,.68)}
.summary-cell:nth-child(1) .summary-value,.stat-card .num{color:var(--ansi-bright-blue);text-shadow:0 0 8px rgba(30,144,255,.8)}.summary-cell:nth-child(2) .summary-value{color:var(--ansi-bright-yellow);text-shadow:0 0 8px rgba(255,142,30,.75)}.summary-cell:nth-child(3) .summary-value{color:var(--ansi-bright-green);text-shadow:0 0 8px rgba(142,255,30,.75)}.summary-cell:nth-child(4) .summary-value{color:var(--ansi-bright-magenta);text-shadow:0 0 8px rgba(142,30,255,.75)}

/* Rebalanced natural CRT phosphor and richer ANSI roles */
body::before{content:"";position:fixed;inset:0;z-index:9998;pointer-events:none;background:linear-gradient(to bottom,transparent 0%,transparent 47%,rgba(30,144,255,.018) 49%,rgba(181,228,244,.065) 50%,rgba(30,144,255,.022) 52%,transparent 55%,transparent 100%) 0 -100vh/100% 200vh no-repeat,repeating-linear-gradient(0deg,rgba(0,0,0,.3) 0 1px,rgba(165,162,162,.016) 1px 2px,transparent 2px 4px);mix-blend-mode:screen;animation:crtSweep 6.4s linear infinite}
body::after{content:"";position:fixed;inset:0;z-index:9997;pointer-events:none;background:radial-gradient(ellipse at center,transparent 61%,rgba(0,0,0,.06) 77%,rgba(0,0,0,.19) 91%,rgba(0,0,0,.42) 100%),linear-gradient(90deg,rgba(219,45,32,.006),rgba(30,144,255,.008),rgba(1,162,82,.005));box-shadow:inset 0 0 62px rgba(0,0,0,.42);animation:crtFlicker 9s steps(1) infinite}
body{background:#000;color:var(--terminal-foreground);text-shadow:0 0 1px rgba(165,162,162,.2)}
.tui-box,.pixel-box,.command-tabs,.auth-box{border-color:var(--line);box-shadow:0 0 2px rgba(30,144,255,.1),inset 0 0 8px rgba(30,144,255,.018)}
.tui-box legend,.pixel-box-title,.box-tab,.brand-mark::before,.navbar-brand{color:var(--ansi-blue);text-shadow:0 0 2px currentColor,0 0 5px rgba(30,144,255,.28)}
.status-box legend{color:var(--ansi-bright-red);text-shadow:0 0 2px currentColor,0 0 5px rgba(219,45,32,.3)}
.activity-box legend{color:var(--ansi-blue)}.activity-box .box-tab{color:var(--ansi-bright-cyan)}
.monitor-box legend{color:var(--ansi-green)}.monitor-box .box-tab{color:var(--ansi-bright-green)}
.times-box legend{color:var(--ansi-yellow)}.times-box .box-tab{color:var(--ansi-bright-yellow)}
.auth-box legend{color:var(--ansi-magenta);text-shadow:0 0 2px currentColor,0 0 5px rgba(161,106,148,.3)}
.status-word,.status-word.offline,.status-word.studying,.status-word.paused,.timer-num,.timer-num.pulse,.auth-banner{color:var(--ansi-blue);text-shadow:0 0 3px rgba(30,144,255,.7),0 0 7px rgba(30,144,255,.36);filter:drop-shadow(2px 2px 0 #00131d) drop-shadow(0 0 3px rgba(30,144,255,.35))}
.box-action{color:var(--ansi-yellow);text-shadow:0 0 3px rgba(253,237,2,.32)}
.navbar{border-color:var(--ansi-blue);box-shadow:0 1px 4px rgba(30,144,255,.16)}
.tab-btn.active{background:var(--ansi-blue);color:#000;box-shadow:0 0 4px rgba(30,144,255,.3)}
.navbar-brand::after,.state::after,.auth-hint::after{color:var(--terminal-cursor);text-shadow:0 0 3px rgba(165,162,162,.38)}
.pixel-box:nth-of-type(5n+1)>.pixel-box-title{color:var(--ansi-blue);text-shadow:0 0 3px rgba(30,144,255,.3)}
.pixel-box:nth-of-type(5n+2)>.pixel-box-title{color:var(--ansi-magenta);text-shadow:0 0 3px rgba(161,106,148,.3)}
.pixel-box:nth-of-type(5n+3)>.pixel-box-title{color:var(--ansi-green);text-shadow:0 0 3px rgba(1,162,82,.3)}
.pixel-box:nth-of-type(5n+4)>.pixel-box-title{color:var(--ansi-yellow);text-shadow:0 0 3px rgba(253,237,2,.27)}
.pixel-box:nth-of-type(5n)>.pixel-box-title{color:var(--ansi-red);text-shadow:0 0 3px rgba(219,45,32,.3)}
.text-meter i,.mastery-fill{background:repeating-linear-gradient(90deg,var(--ansi-blue) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 2px rgba(30,144,255,.38))}
.text-meter.gold i{background:repeating-linear-gradient(90deg,var(--ansi-yellow) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 2px rgba(253,237,2,.36))}.text-meter.green i{background:repeating-linear-gradient(90deg,var(--ansi-green) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 2px rgba(1,162,82,.4))}.text-meter.iris i{background:repeating-linear-gradient(90deg,var(--ansi-magenta) 0 3px,transparent 3px 4px);filter:drop-shadow(0 0 2px rgba(161,106,148,.4))}
.bar,.hour-bar{background:repeating-linear-gradient(to top,rgba(0,0,0,.56) 0 1px,transparent 1px 3px),linear-gradient(to top,var(--ansi-blue) 0 27%,var(--ansi-bright-cyan) 27% 47%,var(--ansi-green) 47% 66%,var(--ansi-yellow) 66% 84%,var(--ansi-red) 84% 100%);filter:drop-shadow(0 0 3px rgba(30,144,255,.34))}
.cell.l3,.cell.l4,.contrib-cell[data-level="3"],.contrib-cell[data-level="4"]{box-shadow:0 0 2px rgba(30,144,255,.36)}
.summary-cell:nth-child(1) .summary-value,.stat-card .num{color:var(--ansi-blue);text-shadow:0 0 2px rgba(30,144,255,.28)}.summary-cell:nth-child(2) .summary-value{color:var(--ansi-yellow);text-shadow:0 0 2px rgba(253,237,2,.24)}.summary-cell:nth-child(3) .summary-value{color:var(--ansi-green);text-shadow:0 0 2px rgba(1,162,82,.26)}.summary-cell:nth-child(4) .summary-value{color:var(--ansi-magenta);text-shadow:0 0 2px rgba(161,106,148,.26)}
.pixel-btn-success{color:var(--ansi-green);border-color:var(--ansi-green)}.pixel-btn-warning{color:var(--ansi-yellow);border-color:var(--ansi-yellow)}.pixel-btn-danger{color:var(--ansi-red);border-color:var(--ansi-red)}

/* Study command deck: regular btop-style module matrix */
.study-control-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(340px,2fr);grid-template-areas:"timer habits" "timer pomodoro" "today history";gap:10px;margin:8px 0 10px;align-items:stretch}
.study-control-grid>.pixel-box,.study-intel-grid>.pixel-box,.study-analytics-grid>.pixel-box,.study-analytics-grid>.chart-grid .pixel-box{margin:0}
.study-timer{grid-area:timer;display:flex;min-height:410px;flex-direction:column}.study-timer>.timer-display{display:flex;flex:1;min-height:260px;flex-direction:column;justify-content:center}.study-today{grid-area:today;min-height:150px}.study-habits{grid-area:habits;min-height:130px}.study-pomodoro{grid-area:pomodoro;min-height:230px}.study-history{grid-area:history;min-height:150px}
.study-intel-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:10px;margin:0 0 10px;align-items:stretch}.study-intel-grid>.pixel-box{height:100%;min-height:118px}.study-plan{grid-column:1}.study-mastery{grid-column:2}
.study-analytics-grid{display:grid;gap:10px;margin-bottom:10px}.study-analytics-grid>.study-contributions,.study-analytics-grid>.chart-grid,.study-analytics-grid>.pixel-box{margin-top:0;margin-bottom:0}.study-analytics-grid>.chart-grid{gap:10px}.study-contributions{min-height:205px}
.study-control-grid .pixel-box-title,.study-intel-grid .pixel-box-title,.study-analytics-grid .pixel-box-title{margin-bottom:10px}
.study-timer>.pixel-box-title{color:var(--ansi-blue)}.study-today>.pixel-box-title{color:var(--ansi-magenta)}.study-habits>.pixel-box-title{color:var(--ansi-green)}.study-pomodoro>.pixel-box-title{color:var(--ansi-yellow)}.study-history .pixel-box-title{color:var(--ansi-bright-cyan)}.study-plan>.pixel-box-title{color:var(--ansi-green)}.study-mastery>.pixel-box-title{color:var(--ansi-yellow)}.study-contributions>.pixel-box-title{color:var(--ansi-blue)}
.tui-box,.pixel-box,.command-tabs,.auth-box{border-radius:5px!important}.pixel-btn,.pixel-input,.pixel-select,.form-control,.form-select,textarea{border-radius:3px!important}.cell,.contrib-cell{border-radius:2px!important}
body{ text-shadow:0 0 2px rgba(165,162,162,.24),0 0 4px rgba(165,162,162,.08)}
.tui-box legend,.pixel-box-title,.box-tab,.brand-mark::before,.navbar-brand{ text-shadow:0 0 3px currentColor,0 0 7px color-mix(in srgb,currentColor 34%,transparent)}
.status-word,.status-word.offline,.status-word.studying,.status-word.paused,.timer-num,.timer-num.pulse,.auth-banner{ text-shadow:0 0 4px rgba(30,144,255,.76),0 0 9px rgba(30,144,255,.4);filter:drop-shadow(2px 2px 0 #00131d) drop-shadow(0 0 4px rgba(30,144,255,.4))}
@media(max-width:900px){.study-control-grid{grid-template-columns:1fr;grid-template-areas:"timer" "today" "habits" "pomodoro" "history"}.study-timer{min-height:310px}.study-timer>.timer-display{min-height:190px}.study-intel-grid{grid-template-columns:1fr}.study-plan,.study-mastery{grid-column:1}.study-analytics-grid>.chart-grid{grid-template-columns:1fr}}

.study-control-grid>*,.study-intel-grid>*,.study-analytics-grid>*,.study-analytics-grid>.chart-grid>*{min-width:0}
.study-analytics-grid>.chart-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0;width:100%}
@media(max-width:900px){.study-analytics-grid,.study-analytics-grid>.chart-grid{min-width:0;width:100%}.study-analytics-grid>.chart-grid{grid-template-columns:minmax(0,1fr)}.study-analytics-grid>.pixel-box,.study-analytics-grid>.chart-grid .pixel-box{min-width:0;width:100%}}

/* Brighter neutral phosphor and one-step stronger text bloom */
body{color:var(--terminal-foreground);text-shadow:0 0 2px rgba(200,200,200,.34),0 0 5px rgba(200,200,200,.15)}
.tui-box legend,.pixel-box-title,.box-tab,.brand-mark::before,.navbar-brand{ text-shadow:0 0 3px currentColor,0 0 8px color-mix(in srgb,currentColor 40%,transparent)}
.status-word,.status-word.offline,.status-word.studying,.status-word.paused,.timer-num,.timer-num.pulse,.auth-banner{ text-shadow:0 0 5px rgba(30,144,255,.8),0 0 11px rgba(30,144,255,.44);filter:drop-shadow(2px 2px 0 #00131d) drop-shadow(0 0 5px rgba(30,144,255,.44))}
.small,.summary-label,.terminal-footer,.timer-label,.status-meta,.legend,.mastery-summary,.mastery-evidence,.plan-task-detail{ text-shadow:0 0 2px rgba(200,200,200,.3),0 0 5px rgba(200,200,200,.1)}
.pixel-btn,.pixel-input,.pixel-select,.form-control,.form-select,textarea{ text-shadow:0 0 2px currentColor,0 0 5px color-mix(in srgb,currentColor 20%,transparent)}

/* Study view mirrors the public 2:1 TUI telemetry matrix */
.study-control-grid{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);grid-template-areas:"timer habits" "timer pomodoro" "today history";gap:8px;margin:8px 0}
.study-control-grid>.pixel-box,.study-intel-grid>.pixel-box,.study-telemetry-grid>.pixel-box,.study-analytics-grid>.chart-grid>.pixel-box,.study-analytics-grid>.pixel-box{padding:15px 10px 9px}
.study-control-grid .pixel-box-title,.study-intel-grid .pixel-box-title,.study-telemetry-grid .pixel-box-title,.study-analytics-grid .pixel-box-title{margin-top:-24px;margin-bottom:8px}
.study-timer{min-height:300px}.study-timer>.timer-display{min-height:176px;margin-bottom:5px}.study-timer .timer-num{font-size:clamp(50px,6vw,82px)}
.study-habits{min-height:112px}.study-habits .empty-state{padding:4px}.study-habits .pixel-hr{margin:7px 0}.study-habits .habit-item{padding:4px 0}
.study-pomodoro{min-height:176px}.study-pomodoro .timer-display{min-height:88px!important;margin-bottom:3px;padding:4px!important}.study-pomodoro .timer-label{margin-top:4px}.study-pomodoro .timer-num{font-size:29px!important}
.study-today,.study-history{min-height:108px}.study-today .stat-card{padding:5px 8px;background:transparent;border:0;border-left:2px solid var(--ansi-blue)}.study-today .stat-grid{gap:6px}.study-today .mastery-track{height:7px}.study-history{overflow:auto}
.study-intel-grid{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:8px;margin:0 0 8px}.study-intel-grid>.pixel-box{height:160px;min-height:0;overflow:auto}.study-plan{grid-column:1}.study-mastery{grid-column:2}.study-intel-grid .plan-task{padding:5px 0}.study-intel-grid .mastery-card{padding:6px}.study-intel-grid .mastery-grid{gap:1px}
.study-analytics-grid{gap:8px;margin-bottom:8px}.study-telemetry-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:8px;min-width:0}.study-telemetry-grid>*{min-width:0}.study-contributions,.study-monitor{height:218px;min-height:0;margin:0}
.study-contributions{display:flex;flex-direction:column}.study-contributions .contrib-scroll{flex:1;display:flex;align-items:center;padding:8px 0;min-width:0}.study-contributions .contrib-wrap{display:grid;grid-template-columns:repeat(53,12px);justify-content:space-between;gap:0;width:100%;min-width:690px}.study-contributions .contrib-week{grid-template-rows:repeat(7,12px);gap:2px}.study-contributions .contrib-cell{width:12px;height:12px}.study-contrib-axis{padding-left:0;font-size:8px}
.study-monitor .monitor-list{padding:0 5px}.study-monitor .monitor-row{gap:4px}.study-monitor .text-meter{height:13px}.study-monitor .monitor-head{font-size:11px}
.study-analytics-grid>.chart-grid{grid-template-columns:minmax(250px,1fr) minmax(0,2fr);gap:8px}.study-analytics-grid>.chart-grid>.pixel-box{height:205px;min-height:0;overflow:hidden}.study-analytics-grid>.chart-grid .hour-chart{height:150px}
.study-analytics-grid .pie-layout{height:165px;display:grid;grid-template-columns:132px minmax(0,1fr);align-items:center;gap:14px}.study-analytics-grid .pie-chart{width:132px;height:132px!important;aspect-ratio:1!important;border:1px solid var(--line-soft)!important;border-radius:50%!important;clip-path:circle(50%);box-shadow:0 0 3px rgba(30,144,255,.28)}.study-analytics-grid .legend{display:grid;align-content:center;gap:7px;max-height:150px;margin:0;overflow:auto}.study-analytics-grid .legend-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto auto;gap:7px;font-size:9px}.study-analytics-grid .legend-row b{color:var(--ansi-bright-white);font-weight:400}.study-analytics-grid .legend-subject{color:var(--terminal-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.study-analytics-grid>.pixel-box:last-child{min-height:190px;padding-bottom:7px}.study-analytics-grid>.pixel-box:last-child .stats-summary{margin-bottom:4px!important}.study-analytics-grid>.pixel-box:last-child .summary-cell{padding:5px 9px}.study-analytics-grid>.pixel-box:last-child .hour-chart{height:92px!important}
@media(max-width:900px){.study-control-grid,.study-intel-grid,.study-telemetry-grid{grid-template-columns:minmax(0,1fr)}.study-control-grid{grid-template-areas:"timer" "today" "habits" "pomodoro" "history"}.study-timer{min-height:270px}.study-timer>.timer-display{min-height:165px}.study-intel-grid>.pixel-box{grid-column:1;height:auto;min-height:120px;max-height:260px}.study-telemetry-grid{gap:8px}.study-contributions,.study-monitor{height:218px}.study-analytics-grid>.chart-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.study-analytics-grid .pie-layout{height:auto;min-height:210px;grid-template-columns:1fr}.study-analytics-grid .pie-chart{margin:0 auto}.study-analytics-grid .legend{width:100%;max-height:90px}.study-contributions .contrib-wrap{min-width:690px}}

/* Keep border labels visible while allowing data-driven panel height */
.study-intel-grid>.pixel-box{height:auto;min-height:120px;overflow:visible}
.study-analytics-grid>.chart-grid>.pixel-box{overflow:visible}

/* Final density pass: public-status proportions */
.study-timer{min-height:248px}.study-timer>.timer-display{min-height:148px}.study-habits{min-height:100px}.study-pomodoro{min-height:140px}.study-pomodoro .timer-display{min-height:62px!important}.study-today,.study-history{min-height:104px}
@media(max-width:900px){.study-timer{min-height:238px}.study-timer>.timer-display{min-height:142px}.study-pomodoro{min-height:140px}}

/* Stronger terminal phosphor and always-visible authenticated time slots */
body{ text-shadow:0 0 2px rgba(200,200,200,.4),0 0 6px rgba(200,200,200,.18)}
.tui-box legend,.pixel-box-title,.box-tab,.brand-mark::before,.navbar-brand{ text-shadow:0 0 4px currentColor,0 0 10px color-mix(in srgb,currentColor 48%,transparent)}
.small,.summary-label,.terminal-footer,.timer-label,.status-meta,.legend,.mastery-summary,.mastery-evidence,.plan-task-detail{ text-shadow:0 0 2px rgba(200,200,200,.34),0 0 6px rgba(200,200,200,.13)}
.pixel-btn,.pixel-input,.pixel-select,.form-control,.form-select,textarea{ text-shadow:0 0 2px currentColor,0 0 6px color-mix(in srgb,currentColor 24%,transparent)}
.status-word,.status-word.offline,.status-word.studying,.status-word.paused,.timer-num,.timer-num.pulse,.auth-banner{ text-shadow:0 0 6px rgba(30,144,255,.86),0 0 14px rgba(30,144,255,.5);filter:drop-shadow(2px 2px 0 #00131d) drop-shadow(0 0 6px rgba(30,144,255,.5))}
.study-analytics-grid>.chart-grid>.pixel-box:nth-child(2) .hour-chart{position:relative;isolation:isolate}
.study-analytics-grid>.chart-grid>.pixel-box:nth-child(2) .hour-col{position:relative;min-width:2px;border-bottom:2px solid rgba(30,144,255,.3)}
.study-analytics-grid>.chart-grid>.pixel-box:nth-child(2) .hour-col:nth-child(3n+2){border-bottom-color:rgba(181,228,244,.36)}
.study-analytics-grid>.chart-grid>.pixel-box:nth-child(2) .hour-bar{z-index:1;min-height:4px;background:repeating-linear-gradient(to top,rgba(0,0,0,.42) 0 1px,transparent 1px 3px),linear-gradient(to top,var(--ansi-blue) 0 28%,var(--ansi-bright-cyan) 28% 48%,var(--ansi-green) 48% 67%,var(--ansi-yellow) 67% 85%,var(--ansi-red) 85% 100%);box-shadow:0 0 3px rgba(30,144,255,.5),0 0 7px rgba(30,144,255,.18);opacity:1}
.study-analytics-grid>.chart-grid>.pixel-box:nth-child(2) .hour-label{z-index:2;color:var(--ansi-white)}

/* Global phosphor filter: text glyphs glow, panel geometry stays crisp */
body *{text-shadow:0 0 3px rgba(200,200,200,.42),0 0 7px rgba(200,200,200,.21)}
body :where(a,button,input,select,textarea,label,span,b,strong,i,em,p,li,dt,dd,h1,h2,h3,h4,h5,h6,legend,code,pre,.pixel-box-title,.timer-num,.status-word,.summary-value,.chart-empty,.empty-state,.auth-hint,.timer-label,.terminal-footer,.monitor-head,.legend-row,.navbar-brand,.mastery-summary,.mastery-evidence,.plan-task-detail,.subj){filter:drop-shadow(0 0 2px color-mix(in srgb,currentColor 40%,transparent)) drop-shadow(0 0 4px color-mix(in srgb,currentColor 16%,transparent))}
::placeholder{color:var(--muted);text-shadow:0 0 2px rgba(200,200,200,.3),0 0 6px rgba(200,200,200,.12);filter:drop-shadow(0 0 2px rgba(200,200,200,.26))}
.tui-box legend,.pixel-box-title,.box-tab,.brand-mark::before,.navbar-brand{ text-shadow:0 0 4px currentColor,0 0 11px color-mix(in srgb,currentColor 48%,transparent);filter:drop-shadow(0 0 2px color-mix(in srgb,currentColor 52%,transparent)) drop-shadow(0 0 6px color-mix(in srgb,currentColor 22%,transparent))}
.status-word,.status-word.offline,.status-word.studying,.status-word.paused,.timer-num,.timer-num.pulse,.auth-banner{ text-shadow:0 0 6px rgba(30,144,255,.88),0 0 14px rgba(30,144,255,.5);filter:drop-shadow(2px 2px 0 #00131d) drop-shadow(0 0 6px rgba(30,144,255,.54)) drop-shadow(0 0 12px rgba(30,144,255,.22))}

/* Panel borders: full glow round, reduced one notch */
.tui-box,.pixel-box,.command-tabs,.auth-box{border-color:var(--line);box-shadow:0 0 3px rgba(30,144,255,.32),0 0 8px rgba(30,144,255,.14),inset 0 0 6px rgba(30,144,255,.04)}
.navbar{border-color:var(--ansi-blue);box-shadow:0 0 3px rgba(30,144,255,.3),0 0 8px rgba(30,144,255,.14),0 2px 8px rgba(30,144,255,.1)}
.stat-card{border-color:var(--line-soft);box-shadow:0 0 2px rgba(30,144,255,.18)}
.pixel-btn,.pixel-input,.pixel-select,.form-control,.form-select,textarea{border-color:var(--line);box-shadow:0 0 2px rgba(30,144,255,.22),inset 0 0 4px rgba(30,144,255,.03)}
.pixel-hr{border-color:rgba(30,144,255,.24);box-shadow:0 0 3px rgba(30,144,255,.16)}
.tab-btn{border-color:var(--line-soft);box-shadow:0 0 2px rgba(30,144,255,.14)}

/* Balanced CRT phosphor: preserve a sharp core and add only restrained outer bloom. */
.crt-filter-defs{display:none;position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.tui-screen,.auth-terminal,#app{filter:none!important;isolation:auto}

/* Reset the previous stacked glow passes. A single, sub-pixel halo keeps body copy legible. */
:where(.tui-screen,.auth-terminal,#app) :where(*,*::before,*::after){
  text-shadow:none!important;
  box-shadow:none!important;
  filter:none!important;
}
.tui-screen,.auth-terminal,#app{
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
/* Uniform phosphor field for every text node, including direct text in div-based widgets. */
:where(.tui-screen,.auth-terminal,#app) :where(*){
  text-shadow:0 0 1px color-mix(in srgb,currentColor 68%,transparent),0 0 5px color-mix(in srgb,currentColor 33%,transparent),0 0 10px color-mix(in srgb,currentColor 12%,transparent)!important;
}

/* Bright glyphs get a tight phosphor fringe while their solid center stays untouched. */
.tui-box legend,.pixel-box-title,.pixel-box-title::before,.pixel-box-title::after,
.box-tab,.box-action,.brand-mark::before,.navbar-brand,.navbar-brand::after,
.state,.state::after,.subject-chips,.summary-value,.stat-card .num,.timer-label,.monitor-head b,
.auth-box legend,.auth-form label span,.boot-log b,.auth-hint::after{
  text-shadow:0 0 1px currentColor,0 0 8px color-mix(in srgb,currentColor 78%,transparent),0 0 16px color-mix(in srgb,currentColor 40%,transparent)!important;
}
.status-word,.status-word.offline,.status-word.studying,.status-word.paused,
.timer-num,.timer-num.pulse,.auth-banner{
  text-shadow:0 0 1px currentColor,0 0 9px color-mix(in srgb,currentColor 90%,transparent),0 0 20px color-mix(in srgb,currentColor 54%,transparent),0 0 28px color-mix(in srgb,currentColor 20%,transparent)!important;
  filter:none!important;
}

/* Geometry glows outside its edge; no blur is applied to the panel contents. */
.tui-box,.pixel-box,.command-tabs,.auth-box{
  box-shadow:0 0 2px color-mix(in srgb,var(--ansi-blue) 72%,transparent),0 0 12px rgba(30,144,255,.25),0 0 20px rgba(30,144,255,.07),inset 0 0 12px rgba(30,144,255,.035)!important;
}
.navbar{
  box-shadow:0 1px 1px rgba(30,144,255,.54),0 0 12px rgba(30,144,255,.24),0 0 20px rgba(30,144,255,.07)!important;
}
.stat-card{box-shadow:0 0 4px rgba(30,144,255,.16)!important}
.pixel-btn,.tab-btn,.pixel-input,.pixel-select,.form-control,.form-select,textarea{
  box-shadow:0 0 9px rgba(30,144,255,.40),0 0 16px rgba(30,144,255,.14)!important;
}

.tab-btn.active{
  box-shadow:0 0 4px rgba(30,144,255,.96),0 0 18px rgba(30,144,255,.62),0 0 27px rgba(30,144,255,.20)!important;
}

/* Secondary geometry stays subordinate to text and controls. */
.check,.task-check,.pie-chart,.pixel-hr,.note-reader pre,#graph-canvas,.modal-box,.toast-box{
  box-shadow:0 0 2px rgba(30,144,255,.48),0 0 8px rgba(30,144,255,.14),0 0 14px rgba(30,144,255,.04)!important;
}
.text-meter,.mastery-track{
  box-shadow:0 0 1px rgba(30,144,255,.22),0 0 5px rgba(30,144,255,.08)!important;
}
.cell,.contrib-cell{
  box-shadow:0 0 1px rgba(30,144,255,.16),0 0 4px rgba(30,144,255,.04)!important;
}
.online-pip,.status-dot.on,.check.checked{
  box-shadow:0 0 2px rgba(1,162,82,.92),0 0 9px rgba(1,162,82,.55),0 0 16px rgba(1,162,82,.16)!important;
}
.status-dot.off,.status-dot:not(.on){
  box-shadow:0 0 2px rgba(219,45,32,.88),0 0 9px rgba(219,45,32,.48),0 0 16px rgba(219,45,32,.14)!important;
}
.mastery-fill,.text-meter i,.legend-color{
  box-shadow:0 0 1px currentColor,0 0 6px color-mix(in srgb,currentColor 28%,transparent)!important;
}
/* Colored time/chart bars are intentionally one glow level quieter. */
.hour-bar,.bar{
  box-shadow:0 0 1px currentColor,0 0 5px color-mix(in srgb,currentColor 24%,transparent)!important;
}

/* Data marks and artwork use a compact edge halo instead of a full-frame blur. */
.text-meter i,.mastery-fill{
  filter:drop-shadow(0 0 1px rgba(30,144,255,.70)) drop-shadow(0 0 4px rgba(30,144,255,.24)) drop-shadow(0 0 7px rgba(30,144,255,.05))!important;
}
.hour-bar,.bar{
  filter:drop-shadow(0 0 1px rgba(30,144,255,.76)) drop-shadow(0 0 4px rgba(30,144,255,.30)) drop-shadow(0 0 6px rgba(30,144,255,.06))!important;
}
.text-meter.gold i{filter:drop-shadow(0 0 1px rgba(253,237,2,.72)) drop-shadow(0 0 4px rgba(253,237,2,.24)) drop-shadow(0 0 7px rgba(253,237,2,.05))!important}
.text-meter.green i{filter:drop-shadow(0 0 1px rgba(1,162,82,.70)) drop-shadow(0 0 4px rgba(1,162,82,.24)) drop-shadow(0 0 7px rgba(1,162,82,.05))!important}
.text-meter.iris i{filter:drop-shadow(0 0 1px rgba(161,106,148,.70)) drop-shadow(0 0 4px rgba(161,106,148,.24)) drop-shadow(0 0 7px rgba(161,106,148,.05))!important}
.cell.l3,.cell.l4,.contrib-cell[data-level="3"],.contrib-cell[data-level="4"]{
  box-shadow:0 0 2px color-mix(in srgb,currentColor 58%,rgba(30,144,255,.48)),0 0 6px rgba(30,144,255,.20),0 0 10px rgba(30,144,255,.05)!important;
}
img,.note-reader img,svg:not(.crt-filter-defs),canvas{
  filter:drop-shadow(0 0 5px rgba(30,144,255,.54)) drop-shadow(0 0 10px rgba(30,144,255,.14))!important;
}

/* CRT Markdown document system shared by notes and mistakes. */
.note-document-title{margin:8px 0 4px;color:var(--ansi-blue);font-family:TerminalBlock,var(--mono);font-size:clamp(18px,2.4vw,30px);line-height:1.25;letter-spacing:.035em}
.note-document-meta{margin-bottom:14px;color:var(--muted)}
.markdown-body{min-width:0;color:var(--text);font-family:var(--mono);font-size:14px;line-height:1.65;overflow-wrap:anywhere;word-break:break-word}
.markdown-body>*:first-child{margin-top:0}.markdown-body>*:last-child{margin-bottom:0}
.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin:1.6em 0 .65em;color:var(--ansi-blue);font-family:PixelUI,Unifont,var(--mono);font-weight:700;line-height:1.25;letter-spacing:.035em}
.markdown-body h1{padding-bottom:.42em;border-bottom:1px solid var(--ansi-blue);font-size:1.75em}
.markdown-body h2{padding-bottom:.35em;border-bottom:1px dashed var(--line);font-size:1.42em}
.markdown-body h3{color:var(--ansi-bright-cyan);font-size:1.2em}
.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--ansi-magenta);font-size:1.04em}
.markdown-body p{margin:.72em 0}.markdown-body a{color:var(--ansi-bright-cyan);text-decoration:none;border-bottom:1px dashed currentColor}.markdown-body a:hover{color:var(--ansi-yellow);background:rgba(253,237,2,.06)}
.markdown-body strong{color:var(--ansi-yellow);font-weight:700}.markdown-body em{color:var(--ansi-bright-cyan)}.markdown-body del{color:var(--faint)}
.markdown-body ul,.markdown-body ol{margin:.7em 0;padding-left:2em}.markdown-body li{margin:.28em 0;padding-left:.2em}.markdown-body li::marker{color:var(--ansi-blue);font-weight:700}
.markdown-body li.task-list-item{list-style:none;margin-left:-1.4em}.markdown-body input[type="checkbox"]{width:13px;height:13px;margin:0 .55em 0 0;vertical-align:-1px;accent-color:var(--ansi-green)}
.markdown-body blockquote{margin:1em 0;padding:.65em 1em;border-left:3px solid var(--ansi-magenta);background:linear-gradient(90deg,rgba(161,106,148,.11),transparent);color:var(--ansi-bright-white)}
.markdown-body blockquote p{margin:.25em 0}
.markdown-body code{padding:.08em .35em;border:1px solid rgba(181,228,244,.28);border-radius:2px;background:#071119;color:var(--ansi-bright-cyan);font-family:"JetBrains Mono",Unifont,var(--mono);font-size:.92em}
.markdown-body pre{position:relative;margin:1em 0;padding:14px 16px;overflow:auto;border:1px solid rgba(30,144,255,.55);border-left:3px solid var(--ansi-blue);border-radius:3px;background:repeating-linear-gradient(0deg,rgba(30,144,255,.025) 0,rgba(30,144,255,.025) 1px,transparent 1px,transparent 4px),#02070b;color:var(--ansi-bright-white);line-height:1.55;box-shadow:0 0 2px rgba(30,144,255,.35),inset 0 0 18px rgba(30,144,255,.035)!important}
.markdown-body pre::before{content:'CODE';position:absolute;top:2px;right:7px;color:var(--faint);font-size:9px;letter-spacing:.12em}
.markdown-body pre code{display:block;padding:0;border:0;background:transparent;color:inherit;font-size:12px;white-space:pre;text-shadow:0 0 1px currentColor!important}
.markdown-body hr{height:1px;margin:1.4em 0;border:0;background:linear-gradient(90deg,transparent,var(--ansi-blue) 10%,var(--ansi-blue) 90%,transparent)}
.markdown-body table{display:block;width:100%;margin:1em 0;overflow-x:auto;border-collapse:collapse;font-size:12px}
.markdown-body th,.markdown-body td{padding:7px 10px;border:1px solid var(--line-soft);text-align:left;vertical-align:top}.markdown-body th{border-color:rgba(30,144,255,.58);background:rgba(30,144,255,.10);color:var(--ansi-bright-cyan)}.markdown-body tr:nth-child(even) td{background:rgba(30,144,255,.025)}
.markdown-body img{display:block;max-width:100%;height:auto;margin:1em auto;border:1px solid rgba(30,144,255,.48);border-radius:2px;background:#000}
.markdown-body kbd{padding:1px 5px;border:1px solid var(--line);border-bottom-width:2px;border-radius:2px;background:#0b0b0b;color:var(--ansi-yellow);font-size:.9em}
.markdown-body details{margin:.8em 0;padding:.55em .75em;border:1px dashed var(--line)}.markdown-body summary{cursor:pointer;color:var(--ansi-bright-cyan)}
.markdown-body .katex{color:var(--ansi-bright-white)}.markdown-body .katex-display{margin:1em 0;padding:8px 4px;overflow-x:auto;overflow-y:hidden;border-top:1px dashed var(--line-soft);border-bottom:1px dashed var(--line-soft)}
.markdown-body .mermaid{margin:1em 0;padding:12px;border:1px solid rgba(30,144,255,.34);background:#02070b;text-align:center}

/* Mistake Markdown uses the same grammar in a denser review layout. */
.mistake-editor{border:1px dashed rgba(30,144,255,.50);border-radius:4px;background:linear-gradient(135deg,rgba(30,144,255,.045),transparent 55%),#010305}
.markdown-input{min-height:54px;resize:vertical;line-height:1.45;white-space:pre-wrap}
.mistake-q.markdown-body{font-size:13px;color:var(--ansi-bright-white)}
.mistake-q.markdown-body>p:first-child{color:var(--ansi-bright-cyan)}
.mistake-section{margin-top:8px;padding:7px 9px;border-left:2px solid var(--line);background:rgba(255,255,255,.012)}
.mistake-section-label{margin-bottom:4px;font-size:10px;font-weight:700;letter-spacing:.08em}.mistake-cause{color:var(--ansi-red)}.mistake-solution{color:var(--ansi-green)}
.markdown-compact{font-size:12px;line-height:1.5}.markdown-compact p{margin:.35em 0}.markdown-compact h1,.markdown-compact h2,.markdown-compact h3,.markdown-compact h4{margin:.8em 0 .35em;padding-bottom:.2em;font-size:1.08em}.markdown-compact pre{margin:.55em 0;padding:10px 12px}.markdown-compact table{margin:.55em 0}

/* Active-recall mistake deck: crisp question core with progressively revealed layers. */
.mistake-review-status{display:flex;justify-content:space-between;align-items:center;margin:4px 0 8px;padding:5px 9px;border:1px dashed rgba(30,144,255,.38);color:var(--ansi-bright-cyan);font-size:10px;letter-spacing:.08em}
.mistake-review-card{min-height:360px;padding:16px 18px 18px;border:1px solid var(--line-soft);border-left:5px solid var(--ansi-red);background:linear-gradient(145deg,rgba(30,144,255,.045),transparent 42%),rgba(0,0,0,.18)}
.mistake-review-meta,.mistake-browse-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px dashed var(--line-soft)}
.mistake-review-question{min-height:130px;padding:10px 5px 18px}.mistake-review-question>.mistake-section-label{margin-bottom:9px;color:var(--ansi-bright-cyan)}
.mistake-review-question .mistake-q{font-size:15px;line-height:1.65}
.mistake-reveal-gate{display:grid;justify-items:center;gap:9px;margin:10px 0;padding:14px 8px;border-top:1px dashed rgba(30,144,255,.26)}
.mistake-reveal-btn{min-width:min(320px,100%);padding:8px 18px;color:var(--ansi-bright-cyan);border-color:var(--ansi-blue)}
.mistake-section-revealed{animation:mistake-reveal .18s ease-out both}
@keyframes mistake-reveal{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.mistake-weak-point{margin-top:9px;padding:7px 9px;border-left:2px solid var(--ansi-magenta);color:var(--muted);font-size:11px}.mistake-weak-point b{color:var(--ansi-magenta)}
.mistake-review-actions{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line-soft);text-align:center}.mistake-grade-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:620px;margin:10px auto 0}.mistake-grade-buttons .pixel-btn{min-height:38px}
.mistake-review-complete{display:grid;place-items:center;min-height:320px;padding:35px 15px;border:1px dashed var(--line);text-align:center}.mistake-complete-mark{color:var(--ansi-green);font-size:16px;letter-spacing:.08em}
.mistake-browse-card{padding:12px 14px;border-top:1px solid rgba(30,144,255,.12);border-right:1px solid rgba(30,144,255,.12);background:rgba(0,0,0,.12)}
.mistake-browse-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:10px;padding-top:8px;border-top:1px dashed rgba(30,144,255,.18)}
@media(max-width:600px){.markdown-body{font-size:13px}.markdown-body h1{font-size:1.45em}.markdown-body h2{font-size:1.25em}.markdown-body pre{padding:12px 10px}.markdown-body th,.markdown-body td{padding:6px 8px}.mistake-section{padding:6px 7px}.mistake-review-card{min-height:330px;padding:12px 10px 14px}.mistake-review-meta,.mistake-browse-header{display:grid;gap:5px}.mistake-review-question{min-height:115px;padding:8px 2px 14px}.mistake-review-question .mistake-q{font-size:14px}.mistake-grade-buttons{grid-template-columns:1fr}.mistake-grade-buttons .pixel-btn{min-height:34px}.mistake-browse-actions{justify-content:stretch;flex-wrap:wrap}.mistake-browse-actions .pixel-btn{flex:1}.mistake-browse-card{padding:10px 8px}}

/* Embedded OpenClaw Agent console. */
.agent-chat-page{display:flex;flex-direction:column;min-height:calc(100vh - 190px);padding:16px;border-color:rgba(30,144,255,.58);background:linear-gradient(180deg,rgba(30,144,255,.025),transparent 24%),rgba(0,0,0,.16)}
.agent-chat-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:0 3px 12px;border-bottom:1px dashed var(--line-soft)}
.agent-chat-header .pixel-box-title{margin:-27px 0 10px}.agent-identity-line{display:flex;align-items:center;gap:8px;color:var(--text);font-size:11px}.agent-status-dot{width:7px;height:7px;border:1px solid currentColor;border-radius:50%;background:currentColor}.agent-status-dot.online{color:var(--ansi-green);box-shadow:0 0 5px currentColor}.agent-status-dot.offline{color:var(--ansi-red)}.agent-conversation-id{padding-left:8px;border-left:1px solid var(--line-soft);color:var(--ansi-magenta)}
.agent-header-actions{display:flex;align-items:center;gap:9px}.agent-connection-state{color:var(--muted);font-size:10px;letter-spacing:.06em}
.agent-message-viewport{flex:1;min-height:420px;max-height:calc(100vh - 430px);overflow:auto;scrollbar-gutter:stable;padding:18px 8px 22px;scroll-behavior:smooth}
.agent-chat-empty{display:grid;place-items:center;gap:12px;min-height:260px;color:var(--muted);text-align:center}.agent-chat-error{color:var(--ansi-red)}
.agent-message{position:relative;width:min(84%,900px);margin:0 0 16px;padding:11px 14px;border:1px solid var(--line-soft);background:rgba(0,0,0,.24)}.agent-message-user{margin-left:auto;border-color:rgba(30,144,255,.52);border-right:3px solid var(--ansi-blue);background:rgba(30,144,255,.055)}.agent-message-assistant{margin-right:auto;border-color:rgba(1,162,82,.42);border-left:3px solid var(--ansi-green);background:rgba(1,162,82,.035)}
.agent-message-role{margin-bottom:8px;padding-bottom:5px;border-bottom:1px dashed rgba(255,255,255,.1);color:var(--ansi-bright-cyan);font-size:9px;letter-spacing:.08em}.agent-message-assistant .agent-message-role{color:var(--ansi-green)}.agent-message-body{font-size:13px;line-height:1.62}.agent-message-body.markdown-body pre{max-width:100%;overflow:auto}.agent-message-body.markdown-body img{max-height:420px}
.agent-message-attachments{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.agent-attachment-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid var(--line-soft);color:var(--muted);font-size:10px}.agent-message-streaming{min-height:58px}.agent-stream-cursor{display:inline-block;margin-left:4px;color:var(--ansi-green);font-size:10px;animation:agent-cursor 1s steps(1) infinite}@keyframes agent-cursor{50%{opacity:0}}
.agent-composer{position:relative;margin-top:auto;padding:12px;border:1px solid var(--line-soft);background:rgba(0,0,0,.48)}.agent-composer.is-dragging{border-color:var(--ansi-bright-cyan);box-shadow:inset 0 0 18px rgba(30,144,255,.11)}.agent-message-input{display:block;width:100%;min-height:92px;max-height:220px;resize:vertical;padding:10px 11px;line-height:1.55}.agent-message-input:focus{border-color:var(--ansi-blue)}
.agent-composer-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:9px}.agent-composer-tools,.agent-send-actions{display:flex;align-items:center;gap:8px}.agent-upload-hint{color:var(--muted);font-size:9px}.agent-send-btn{min-width:120px}.agent-inline-error{margin-top:8px;color:var(--ansi-red);font-size:10px}
.agent-pending-files{display:flex;gap:8px;overflow-x:auto;margin-bottom:9px;padding-bottom:3px}.agent-pending-file{position:relative;display:grid;grid-template-columns:44px minmax(80px,150px) auto auto;align-items:center;gap:6px;flex:0 0 auto;padding:5px 6px;border:1px solid var(--line-soft);background:var(--bg);font-size:9px}.agent-pending-file img{width:44px;height:38px;object-fit:cover;border:1px solid var(--line-soft)}.agent-file-icon{display:grid;place-items:center;width:44px;height:38px;border:1px solid var(--line-soft);color:var(--ansi-blue);font-size:8px}.agent-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.agent-file-size{color:var(--muted)}.agent-pending-file button{border:0;background:transparent;color:var(--ansi-red);cursor:pointer;font:inherit}.agent-drop-overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;border:1px dashed var(--ansi-bright-cyan);background:rgba(0,0,0,.88);color:var(--ansi-bright-cyan);font-size:14px;letter-spacing:.08em}
@media(max-width:600px){.command-tabs{gap:4px!important}.command-tabs .tab-btn{flex:1 1 0;min-width:0;padding-left:2px;padding-right:2px;font-size:9px}.agent-chat-page{min-height:calc(100vh - 145px);padding:11px 8px}.agent-chat-header{display:grid;gap:8px}.agent-header-actions{justify-content:space-between}.agent-identity-line{flex-wrap:wrap}.agent-message-viewport{min-height:390px;max-height:58vh;padding:13px 1px 16px}.agent-message{width:94%;padding:9px 10px}.agent-message-body{font-size:12px}.agent-composer{padding:8px}.agent-composer-footer{align-items:stretch;flex-direction:column}.agent-composer-tools,.agent-send-actions{justify-content:space-between}.agent-upload-hint{max-width:145px}.agent-send-actions .pixel-btn{flex:1}.agent-send-btn{min-width:0}.agent-pending-file{grid-template-columns:38px minmax(75px,120px) auto auto}.agent-pending-file img,.agent-file-icon{width:38px;height:34px}}

/* Keep scanlines present but quiet enough not to muddy small text. */
body::before{opacity:.62}
body::after{opacity:.76}

/* Mobile public telemetry needs an explicit chart height: percentage bars otherwise collapse. */
@media(max-width:900px){
  .public-page .times-box{height:250px;min-height:250px}
  .public-page .times-box .hours{height:204px;min-height:204px}
  .public-page .times-box .hcol{height:100%;min-height:0}
  .public-page .times-box .bar{min-height:2px}
}
@media(max-width:600px){
  .public-page .times-box{height:238px;min-height:238px}
  .public-page .times-box .hours{height:192px;min-height:192px;padding-top:10px}
}

.status-word.focus{color:var(--ansi-green);filter:drop-shadow(3px 3px 0 #003500) drop-shadow(0 0 6px rgba(85,255,85,.5))}.status-word.break{color:var(--ansi-bright-cyan);filter:drop-shadow(3px 3px 0 #00303a) drop-shadow(0 0 6px rgba(181,228,244,.5))}.status-word.work{color:var(--ansi-yellow);filter:drop-shadow(3px 3px 0 #353500) drop-shadow(0 0 6px rgba(255,255,85,.5))}.status-word.idle{color:var(--ansi-blue);filter:drop-shadow(3px 3px 0 #00131d) drop-shadow(0 0 5px rgba(30,144,255,.4))}.state.focus{color:var(--ok)}.state.break{color:var(--ansi-bright-cyan)}.state.work{color:var(--warn)}.state.idle{color:var(--accent)}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* ═══ PLAN: 今日/全部 切换 (2026-08-26) ═══ */
.plan-title-toggle{cursor:pointer;user-select:none;transition:color .15s}
.plan-title-toggle:hover{color:var(--ansi-bright-cyan);text-shadow:0 0 8px rgba(181,228,244,.6)}
.plan-view-hint{font-size:.62em;opacity:.65;font-family:var(--mono,'JetBrainsMono Nerd Font',monospace);letter-spacing:.5px}
.plan-list-scroll{max-height:520px;overflow-y:auto;overflow-x:hidden;padding-right:2px}
.plan-list-scroll::-webkit-scrollbar{width:5px}
.plan-list-scroll::-webkit-scrollbar-thumb{background:var(--line,#3a3a3a);border:1px solid var(--bg,#000)}
.plan-day-group{margin-bottom:6px}
.plan-day-head{font-family:var(--mono,'JetBrainsMono Nerd Font',monospace);font-size:.8em;color:var(--muted,#8a8a8a);padding:.35em 1ch;border-bottom:1px dashed var(--line,#333);background:var(--panel-dark,rgba(0,0,0,.35));display:flex;gap:1ch;flex-wrap:wrap;align-items:center}
.plan-day-head.today{color:var(--ansi-bright-cyan,#b5e4f4);text-shadow:0 0 8px rgba(181,228,244,.5)}
.plan-day-group .plan-task{border-left:3px solid var(--line,#333)}
@media(max-width:900px){.plan-list-scroll{max-height:340px}}
