@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&display=swap";:root{color:#b8ffb8;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green:#00ff41;--green-glow:#00ff4166;--green-faint:#00ff410f;--bg:#030a03;--bg-card:#00ff4108;--text:#b8ffb8;--text-dim:#4d804d;--text-muted:#243a24;--border:#00ff412e;--border-hover:#00ff41a6;background-color:#030a03;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background-color:var(--bg);min-height:100vh;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}.app-root:before{content:"";pointer-events:none;z-index:999;background:repeating-linear-gradient(0deg,#0000,#0000 3px,#00ff4103 3px 4px);position:fixed;inset:0}.app-root{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border);z-index:10;background:#00000080;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0}.app-logo{color:var(--green);letter-spacing:.06em;text-shadow:0 0 12px var(--green-glow);font-size:.95rem;font-weight:700}.app-header-right{align-items:center;gap:1.5rem;display:flex}.app-status{letter-spacing:.05em;color:var(--text-muted);font-size:.72rem}.app-status--ok{color:var(--green);text-shadow:0 0 6px var(--green-glow)}.sync-btn{border:1px solid var(--border);color:var(--text-dim);letter-spacing:.08em;cursor:pointer;background:0 0;padding:.3rem .8rem;font-family:inherit;font-size:.72rem;transition:border-color .2s,color .2s}.sync-btn:hover:not(:disabled){border-color:var(--border-hover);color:var(--green);text-shadow:0 0 6px var(--green-glow)}.sync-btn:disabled{opacity:.4;cursor:not-allowed}.app-main{flex-direction:column;flex:1;gap:1.5rem;width:100%;max-width:800px;margin:0 auto;padding:2rem 2rem 6rem;display:flex}.app-hero{padding:2rem 0 1rem}.app-hero-pre{color:var(--text-muted);letter-spacing:.1em;margin-bottom:.5rem;font-size:.72rem}.app-hero-title{color:var(--green);letter-spacing:.04em;text-shadow:0 0 24px var(--green-glow);margin:0 0 .5rem;font-size:clamp(1.4rem,4vw,2rem);font-weight:700}.app-hero-sub{color:var(--text-dim);margin:0;font-size:.78rem}.app-divider{color:var(--text-muted);letter-spacing:.05em;white-space:nowrap;font-size:.68rem;overflow:hidden}.message-with-meta{flex-direction:row;align-items:flex-start;gap:.75rem;display:flex}.meta-panel{letter-spacing:.05em;background:#00ff4108;border:1px solid #00ff4126;flex-direction:column;flex-shrink:0;gap:.25rem;width:148px;padding:.6rem .7rem;font-size:.6rem;display:flex}.meta-bar-row{flex-direction:column;gap:.2rem;margin-bottom:.1rem;display:flex}.meta-bar-track{background:#00ff411a;border:1px solid #00ff4126;width:100%;height:6px}.meta-bar-fill{height:100%}.meta-budget-label{font-size:.58rem}.meta-stats-row{flex-direction:column;gap:.25rem;display:flex}.meta-stat{justify-content:space-between;gap:.25rem;display:flex}.meta-key{color:var(--text-muted)}.meta-val{color:var(--text-dim)}.meta-stat--divider{border-top:1px solid #00ff411f;margin-top:.1rem;padding-top:.2rem}@media (width<=600px){.meta-stat--divider{border-top:none;border-left:1px solid #00ff4133;margin-top:0;padding-top:0;padding-left:.6rem}.message-with-meta{flex-direction:column;gap:0}.message-with-meta .message-bubble--assistant{order:1}.meta-panel{border-top:none;order:2;gap:.4rem;width:auto;padding:.5rem .75rem}.meta-bar-row{flex-direction:row;align-items:center;gap:.6rem;margin-bottom:0}.meta-bar-track{flex:1;width:auto}.meta-budget-label{white-space:nowrap;flex-shrink:0}.meta-stats-row{flex-flow:wrap;gap:.25rem 1rem}.meta-stat{justify-content:flex-start;gap:.3rem}}.messages{flex-direction:column;gap:1.25rem;display:flex}.message{flex-direction:column;gap:.4rem;display:flex}.message-label{letter-spacing:.1em;color:var(--text-muted);font-size:.65rem}.message-label--user{color:var(--text-dim)}.message-label--assistant{color:var(--green);text-shadow:0 0 6px var(--green-glow)}.message-bubble{border:1px solid var(--border);background:var(--bg-card);color:var(--text);padding:1rem 1.25rem;font-size:.82rem;line-height:1.8;position:relative}.message-bubble:before{content:"";border-top:2px solid var(--green);border-left:2px solid var(--green);width:8px;height:8px;position:absolute;top:-1px;left:-1px}.message-bubble--user{color:var(--text-dim);border-color:var(--border)}.message-bubble--assistant{border-color:#00ff4140}.message-body{flex-direction:row;align-items:flex-start;gap:.75rem;display:flex}.message-body-main{flex:1;min-width:0}.sources{flex-direction:column;flex:0 0 140px;gap:.35rem;padding-top:.25rem;display:flex}.sources-label{letter-spacing:.1em;color:var(--text-muted);opacity:.5;margin-bottom:.1rem;font-size:.55rem}.source-tag{letter-spacing:.04em;color:var(--text-muted);border-left:1px solid #00ff4126;flex-direction:column;gap:.1rem;padding:.2rem .4rem;font-size:.58rem;display:flex}.source-page{color:var(--text-muted);line-height:1.3}.source-sim{color:var(--green);opacity:.5;font-size:.52rem}@media (width<=600px){.message-body{flex-direction:column}.sources{flex:unset;flex-flow:wrap;gap:.4rem}.source-tag{border-left:none;border:1px solid var(--border);padding:.1rem .4rem}}.thinking{color:var(--text-muted);letter-spacing:.08em;align-items:center;gap:.5rem;padding:.5rem 0;font-size:.75rem;display:flex}.thinking-dots span{animation:1.2s step-end infinite blink}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.input-bar{border-top:1px solid var(--border);background:#030a03f2;justify-content:center;padding:1rem 2rem;display:flex;position:fixed;bottom:0;left:0;right:0}.input-inner{align-items:flex-end;gap:.75rem;width:100%;max-width:800px;display:flex}.input-field{background:var(--bg-card);border:1px solid var(--border);color:var(--text);resize:none;outline:none;flex:1;min-height:44px;max-height:140px;padding:.65rem 1rem;font-family:inherit;font-size:.82rem;line-height:1.6;transition:border-color .2s}.input-field:focus{border-color:#00ff4166}.input-field::placeholder{color:var(--text-muted)}.send-btn{border:1px solid var(--border);color:var(--text-dim);letter-spacing:.08em;cursor:pointer;white-space:nowrap;background:0 0;height:44px;padding:.65rem 1.2rem;font-family:inherit;font-size:.78rem;transition:border-color .2s,color .2s,text-shadow .2s}.send-btn:hover:not(:disabled){border-color:var(--border-hover);color:var(--green);text-shadow:0 0 8px var(--green-glow)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.warmth-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:.5rem;display:inline-block}.warmth-dot--cold{box-shadow:none;background:#555}.warmth-dot--warm{background:#f5a623;box-shadow:0 0 6px #f5a623}.warmth-dot--hot{background:var(--green);box-shadow:0 0 6px var(--green)}.busy-notice{color:#f5a623;letter-spacing:.04em;background:#f5a6230a;border:1px solid #f5a6234d;padding:.5rem 1rem;font-size:.72rem}.error-msg{color:#ff4141;background:#ff41410a;border:1px solid #ff41414d;padding:.6rem 1rem;font-size:.75rem}.app-footer{border-top:1px solid var(--border);color:var(--text-muted);letter-spacing:.06em;justify-content:space-between;padding:.75rem 2rem;font-size:.65rem;display:flex}.stream-cursor{color:var(--green);margin-left:1px;animation:1s step-start infinite blink;display:inline-block}.meta-stat--model .meta-val{color:var(--green);opacity:.8}.mode-toggle{border:1px solid var(--border);display:flex}.mode-btn{color:var(--text-muted);letter-spacing:.08em;cursor:pointer;background:0 0;border:none;padding:.3rem .75rem;font-family:inherit;font-size:.72rem;transition:color .2s,background .2s}.mode-btn:hover:not(.mode-btn--active){color:var(--text-dim)}.mode-btn--active{color:var(--green);text-shadow:0 0 6px var(--green-glow);background:#00ff4114}.stats-btn{border:1px solid var(--border);color:var(--text-muted);letter-spacing:.08em;cursor:pointer;background:0 0;padding:.3rem .7rem;font-family:inherit;font-size:.72rem;transition:border-color .2s,color .2s}.stats-btn:hover{border-color:var(--border-hover);color:var(--green)}.hero-modules{flex-direction:column;gap:.4rem;padding:.5rem 0;display:flex}.hero-modules-label{letter-spacing:.1em;color:var(--text-muted);margin-bottom:.25rem;font-size:.65rem}.hero-module-item{color:var(--text-dim);gap:.5rem;font-size:.78rem;display:flex}.hero-module-bullet{color:var(--green);opacity:.6}.quiz-main{justify-content:center;padding-bottom:3rem}.quiz-label{letter-spacing:.12em;color:var(--green);text-shadow:0 0 6px var(--green-glow);margin-bottom:.5rem;font-size:.65rem}.quiz-heading{color:var(--text);letter-spacing:.04em;margin:0 0 1.5rem;font-size:1rem;font-weight:700}.quiz-empty{color:var(--text-muted);font-size:.8rem}.quiz-select{flex-direction:column;gap:.5rem;width:100%;max-width:640px;margin:2rem auto 0;display:flex}.module-list{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.module-item{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;padding:.7rem 1rem;font-family:inherit;font-size:.8rem;transition:border-color .2s,color .2s,background .2s;display:flex}.module-item:hover{color:var(--text);border-color:#00ff414d}.module-item--selected{border-color:var(--green);color:var(--green);text-shadow:0 0 4px var(--green-glow);background:#00ff410d}.module-item-title{flex:1;line-height:1.4}.module-item-chunks{color:var(--text-muted);flex-shrink:0;margin-left:1rem;font-size:.6rem}.quiz-select-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.quiz-pool-status{color:var(--text-muted);letter-spacing:.05em;margin-top:.5rem;font-size:.75rem}.quiz-start-btn{border:1px solid var(--green);color:var(--green);letter-spacing:.1em;cursor:pointer;text-shadow:0 0 6px var(--green-glow);background:0 0;align-self:flex-start;margin-top:.5rem;padding:.7rem 1.5rem;font-family:inherit;font-size:.8rem;transition:background .2s}.quiz-start-btn:hover:not(:disabled){background:#00ff4114}.quiz-start-btn:disabled{border-color:var(--border);color:var(--text-muted);text-shadow:none;cursor:not-allowed}.quiz-loading{flex-direction:column;align-items:center;gap:1rem;margin-top:4rem;display:flex}.quiz-loading-sub{color:var(--text-muted);letter-spacing:.05em;font-size:.72rem}.quiz-question-area{flex-direction:column;gap:1.25rem;width:100%;max-width:640px;margin:1.5rem auto 0;display:flex}.quiz-progress{align-items:center;gap:.75rem;display:flex}.quiz-progress-text{color:var(--text-muted);letter-spacing:.06em;flex-shrink:0;font-size:.65rem}.quiz-progress-track{background:#00ff411a;border:1px solid #00ff4126;flex:1;height:3px}.quiz-progress-fill{background:var(--green);height:100%;box-shadow:0 0 6px var(--green-glow);transition:width .3s}.quiz-score-live{color:var(--green);letter-spacing:.08em;flex-shrink:0;font-size:.65rem}.quiz-question-box{background:var(--bg-card);border:1px solid #00ff4140;padding:1.25rem 1.5rem;position:relative}.quiz-question-box:before{content:"";border-top:2px solid var(--green);border-left:2px solid var(--green);width:8px;height:8px;position:absolute;top:-1px;left:-1px}.quiz-question-label{letter-spacing:.1em;color:var(--green);margin-bottom:.6rem;font-size:.6rem}.quiz-question-text{color:var(--text);font-size:.88rem;line-height:1.7}.quiz-options{flex-direction:column;gap:.5rem;display:flex}.quiz-option{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;text-align:left;background:0 0;align-items:flex-start;gap:1rem;padding:.75rem 1rem;font-family:inherit;font-size:.82rem;line-height:1.5;transition:border-color .15s,color .15s,background .15s;display:flex}.quiz-option:hover:not(:disabled){color:var(--text);background:#00ff4108;border-color:#00ff4159}.quiz-option:disabled{cursor:default}.quiz-option--correct{text-shadow:0 0 4px var(--green-glow);border-color:var(--green)!important;color:var(--green)!important;background:#00ff4112!important}.quiz-option--wrong{color:#ff4141!important;background:#ff41410f!important;border-color:#ff4141!important}.quiz-option-letter{letter-spacing:.05em;flex-shrink:0;width:1rem;font-weight:700}.quiz-option-text{flex:1}.quiz-feedback{border:1px solid var(--border);background:var(--bg-card);flex-direction:column;gap:.6rem;padding:1rem 1.25rem;display:flex}.quiz-feedback-verdict{letter-spacing:.1em;font-size:.72rem;font-weight:700}.quiz-feedback--correct{color:var(--green);text-shadow:0 0 6px var(--green-glow)}.quiz-feedback--wrong{color:#ff4141}.quiz-explanation{color:var(--text-dim);font-size:.8rem;line-height:1.6}.quiz-next-btn{border:1px solid var(--border);color:var(--text-dim);letter-spacing:.08em;cursor:pointer;background:0 0;align-self:flex-end;padding:.5rem 1rem;font-family:inherit;font-size:.75rem;transition:border-color .2s,color .2s}.quiz-next-btn:hover{border-color:var(--border-hover);color:var(--green)}.quiz-summary{text-align:center;flex-direction:column;align-items:center;gap:.75rem;margin-top:3rem;display:flex}.quiz-module-name{color:var(--text-muted);letter-spacing:.04em;max-width:480px;font-size:.75rem}.quiz-final-score{letter-spacing:.04em;text-shadow:0 0 24px;font-size:3rem;font-weight:700;line-height:1}.quiz-final-pct{letter-spacing:.08em;opacity:.8;font-size:1.1rem}.quiz-summary-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1rem;display:flex}.quiz-action-btn{border:1px solid var(--border);color:var(--text-dim);letter-spacing:.08em;cursor:pointer;background:0 0;padding:.55rem 1.1rem;font-family:inherit;font-size:.75rem;transition:border-color .2s,color .2s}.quiz-action-btn:hover:not(:disabled){border-color:var(--border-hover);color:var(--green)}.quiz-action-btn:disabled{opacity:.5;cursor:default}.quiz-action-btn--primary{color:var(--green);border-color:#00ff4166}.modal-overlay{z-index:100;background:#000000bf;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-box{background:#080f08;border:1px solid #00ff414d;flex-direction:column;gap:1rem;width:100%;max-width:560px;max-height:80vh;padding:1.5rem;display:flex;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal-title{letter-spacing:.12em;color:var(--green);text-shadow:0 0 6px var(--green-glow);font-size:.75rem}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.1rem .3rem;font-size:.9rem}.modal-close:hover{color:var(--text)}.modal-empty{color:var(--text-muted);text-align:center;padding:1rem 0;font-size:.8rem}.stats-summary{border-bottom:1px solid var(--border);justify-content:center;gap:2rem;padding:.5rem 0 1rem;display:flex}.stats-summary-item{flex-direction:column;align-items:center;gap:.25rem;display:flex}.stats-summary-val{color:var(--green);text-shadow:0 0 10px var(--green-glow);font-size:1.4rem;font-weight:700}.stats-summary-label{letter-spacing:.1em;color:var(--text-muted);font-size:.58rem}.stats-table{flex-direction:column;gap:.25rem;display:flex}.stats-table-header{letter-spacing:.1em;color:var(--text-muted);border-bottom:1px solid var(--border);grid-template-columns:1fr 5rem 4rem 4rem;gap:.5rem;padding:0 .25rem .25rem;font-size:.6rem;display:grid}.stats-table-row{color:var(--text-dim);border-bottom:1px solid #00ff410f;grid-template-columns:1fr 5rem 4rem 4rem;gap:.5rem;padding:.4rem .25rem;font-size:.75rem;display:grid}.stats-module-title{color:var(--text);font-size:.72rem;line-height:1.3}@media (width<=600px){.app-header{flex-wrap:wrap;gap:.4rem;padding:.6rem 1rem}.app-header-right{flex-wrap:wrap;gap:.6rem}.sync-btn,.stats-btn{padding:.25rem .55rem;font-size:.65rem}.app-main{padding:1rem 1rem 5rem}.quiz-select{margin-top:.75rem}.quiz-question-box{padding:1rem}.quiz-question-text{font-size:.82rem}.quiz-option{gap:.65rem;padding:.65rem .75rem;font-size:.78rem}.quiz-feedback{padding:.85rem 1rem}.quiz-summary{margin-top:1.5rem}.quiz-final-score{font-size:2.2rem}.stats-summary{gap:1rem}.stats-table-header,.stats-table-row{grid-template-columns:1fr 3rem 3rem 3rem;gap:.3rem;font-size:.65rem}.modal-box{padding:1rem}}
