:root{--bg:#101214;--panel:#181b1f;--panel-2:#20242a;--line:#30363d;--text:#f5f0df;--muted:#a8adac;--accent:#e7c66a;--green:#62d48b;--yellow:#f1c95b;--red:#ff7676;--blue:#75b7ff}*{box-sizing:border-box}body,html{min-height:100%;margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:8px;padding:10px 14px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.feedback,.floating,.tag,button{transition:border-color .18s ease,background-color .18s ease,transform .18s ease,opacity .18s ease}button:disabled{cursor:not-allowed;opacity:.55}.primary{background:var(--accent);color:#171510;border-color:var(--accent);font-weight:700}.danger{border-color:#7a3030;color:#ffb4b4}.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:#121518;padding:24px 16px}.brand{font-size:20px;font-weight:800;line-height:1.3;margin-bottom:22px}.streak{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:18px;color:var(--accent)}.nav{display:grid;grid-gap:8px;gap:8px}.nav button{display:flex;align-items:center;gap:10px;justify-content:flex-start;width:100%;background:transparent}.nav button.active{background:var(--panel-2);border-color:var(--accent)}.system-status{display:grid;grid-gap:8px;gap:8px;margin-top:18px;border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--muted);font-size:13px}.system-status strong{color:var(--text)}.system-status p{margin:0}.system-status button{padding:8px 10px;font-size:13px}.status-pill{width:-moz-fit-content;width:fit-content;border:1px solid rgba(98,212,139,.35);border-radius:999px;padding:3px 8px;background:rgba(98,212,139,.09);color:var(--green)}.user-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:12px;color:var(--muted)}.user-strip span{min-width:0;overflow:hidden;text-overflow:ellipsis}.user-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.button-link,.user-actions a,.user-actions button{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--text);text-decoration:none}.user-actions button{padding:8px}.main{position:relative;padding:28px;max-width:1240px;width:100%}.admin-page,.auth-page{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:42px 0}.auth-page{min-height:100vh;display:grid;place-items:center}.auth-panel{display:grid;grid-gap:16px;gap:16px;width:min(420px,100%);border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:24px}.admin-section h2,.auth-panel h1{margin:0}.admin-row,.auth-panel label{display:grid;grid-gap:8px;gap:8px}.admin-row input,.auth-panel input{width:100%}.auth-panel a{color:var(--accent)}.admin-page{display:grid;grid-gap:20px;gap:20px}.admin-section{display:grid;grid-gap:14px;gap:14px}.admin-table{display:grid;grid-gap:10px;gap:10px}.admin-row{grid-template-columns:minmax(180px,1.4fr) minmax(100px,.7fr) minmax(120px,.8fr) auto;align-items:center;border-top:1px solid var(--line);padding-top:10px}.admin-row code{overflow-wrap:anywhere;color:var(--accent)}.user-admin-row{grid-template-columns:minmax(120px,1fr) minmax(90px,.7fr) minmax(90px,.6fr) minmax(130px,1fr) auto auto}.main:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(rgba(117,183,255,.045) 1px,transparent 0),linear-gradient(90deg,rgba(231,198,106,.035) 1px,transparent 0);background-size:44px 44px,44px 44px;opacity:.45;animation:page-grid-drift 18s linear infinite}@keyframes page-grid-drift{to{background-position:44px 44px,44px 44px}}.row,.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px}.title{margin:0;font-size:28px}.muted{color:var(--muted)}.question{position:relative;overflow:hidden;min-height:240px;display:grid;place-items:center;text-align:center;border-block:1px solid var(--line);margin:28px 0 18px;padding:34px 20px;background:rgba(24,27,31,.58);animation:question-enter .28s ease-out both}.question:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(231,198,106,.18),transparent),linear-gradient(rgba(117,183,255,.08) 1px,transparent 0);background-size:220px 100%,100% 42px;opacity:.42;animation:question-scan 3.8s ease-in-out infinite}@keyframes question-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes question-scan{0%,to{background-position:-240px 0,0 0}55%{background-position:calc(100% + 240px) 0,0 18px}}.training-stage{position:relative;isolation:isolate;overflow:hidden;padding:2px 0 20px}.training-stage:before{content:"";position:absolute;inset:70px -28px 0;z-index:0;pointer-events:none;background:linear-gradient(120deg,rgba(231,198,106,.11),transparent 34%),linear-gradient(240deg,rgba(117,183,255,.1),transparent 38%),linear-gradient(rgba(98,212,139,.08) 1px,transparent 0);background-size:100% 100%,100% 100%,28px 28px;opacity:.7;animation:training-field-shift 9s ease-in-out infinite alternate}@keyframes training-field-shift{to{transform:translateY(10px);opacity:.95;background-position:0 0,0 0,28px 28px}}.training-stage>:not(.ability-motion-field){position:relative;z-index:1}.ability-motion-field{position:absolute;inset:72px 0 auto;height:min(620px,calc(100vh - 120px));z-index:0;pointer-events:none;opacity:1;-webkit-mask-image:linear-gradient(180deg,transparent,#000 16%,#000 82%,transparent);mask-image:linear-gradient(180deg,transparent,#000 16%,#000 82%,transparent)}.ability-motion-field canvas{display:block;width:100%;height:100%}.question h2{position:relative;z-index:1;font-size:clamp(28px,4vw,46px);line-height:1.35;margin:0;max-width:920px;letter-spacing:0}.question-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;color:var(--muted)}.question-skill{border:1px solid #34556d;border-radius:999px;padding:4px 9px;background:rgba(117,183,255,.1);color:var(--blue);font-size:13px;animation:soft-enter .18s ease-out both}.tips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;color:var(--muted)}.tips strong{color:var(--accent);font-size:13px;letter-spacing:0}.tips span{border:1px solid var(--line);border-radius:999px;padding:4px 9px;background:var(--panel);color:var(--text);font-size:14px}input,select,textarea{width:100%;border:1px solid var(--line);background:#0d0f11;color:var(--text);border-radius:8px;padding:13px 14px;outline:none}textarea{min-height:150px;resize:vertical;line-height:1.6}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.feedback,.floating,.section,.stat-card{border:1px solid var(--line);background:var(--panel);border-radius:8px}.feedback{margin-top:18px;padding:18px;animation:soft-enter .22s ease-out both}.verdict{font-size:20px;font-weight:800}.verdict.correct{color:var(--green)}.verdict.partial{color:var(--yellow)}.verdict.wrong{color:var(--red)}.feedback-grid{display:grid;grid-gap:14px;gap:14px}.followup-panel{border-top:1px solid var(--line);padding-top:14px}.followup-panel,.skill-feedback{display:grid;grid-gap:12px;gap:12px}.followup-title{display:inline-flex;align-items:center;gap:8px}.followup-thread{display:grid;grid-gap:10px;gap:10px;max-height:360px;overflow:auto;padding-right:4px;scroll-behavior:smooth}.followup-message{display:grid;grid-gap:4px;gap:4px}.followup-message span{color:var(--muted);font-size:13px}.followup-message p{border-left:3px solid var(--line);margin:0;padding-left:10px;white-space:pre-wrap}.followup-message.assistant p{border-left-color:var(--accent)}.followup-message.assistant>.formatted-code,.followup-message.assistant>.formatted-markdown,.followup-message.assistant>.stream-placeholder{border-left:3px solid var(--accent);margin:0;padding-left:10px}.formatted-markdown{display:grid;grid-gap:8px;gap:8px}.formatted-markdown h3,.formatted-markdown h4,.formatted-markdown ol,.formatted-markdown p,.formatted-markdown ul{margin:0}.formatted-markdown ol,.formatted-markdown ul{padding-left:22px}.formatted-markdown li+li{margin-top:4px}.formatted-markdown h3,.formatted-markdown h4{color:var(--text);font-size:15px}.formatted-code code,.formatted-markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.formatted-markdown code{border:1px solid var(--line);border-radius:5px;background:#101316;padding:1px 5px;color:var(--yellow);font-size:.92em}.formatted-code{overflow:auto;max-width:100%;border-radius:8px;background:#101316;color:#e9edf1;padding:10px 12px;white-space:pre}.formatted-code.json{border:1px solid rgba(231,198,106,.28)}.stream-placeholder{color:var(--muted)}.stream-log-panel{border:1px solid var(--line);border-radius:8px;background:rgba(16,19,22,.72);display:grid;grid-gap:8px;gap:8px;max-height:180px;overflow:auto;padding:10px 12px}.stream-log-panel strong{color:var(--muted);font-size:13px}.stream-log-panel p{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.5;margin:0;overflow-wrap:anywhere}.stream-log-panel p+p{margin-top:4px}.stream-log-panel p.error{color:#ff9f9f}.stream-log-panel span{color:var(--yellow);margin-right:8px}.followup-input{min-height:92px}.icon-button-text{gap:7px}.icon-button-text,.tag{align-items:center;display:inline-flex}.tag{margin:4px 6px 0 0;padding:4px 8px;border:1px solid var(--line);border-radius:999px;color:var(--yellow);animation:soft-enter .18s ease-out both}.skill-tag{color:var(--blue)}.finding-tag{color:var(--green)}@keyframes soft-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.loading{display:inline-flex;align-items:center;gap:10px;color:var(--accent)}.spinner{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.llm-flow-text div::-webkit-scrollbar{width:4px}.llm-flow-text div::-webkit-scrollbar-track{background:transparent}.llm-flow-text div::-webkit-scrollbar-thumb{background:#3a4050;border-radius:999px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.section{padding:18px;margin-top:18px;animation:soft-enter .22s ease-out both}.section:hover{border-color:#44505c}.radar-wrap{display:grid;grid-template-columns:minmax(280px,420px) 1fr;grid-gap:24px;gap:24px;align-items:center}.bars{display:grid;grid-gap:12px;gap:12px}.bars h2{margin:0 0 4px}.ability-stat{display:grid;grid-gap:7px;gap:7px}.ability-stat .bar-row{grid-template-columns:92px 1fr 56px 72px}.ability-stat .bar-row em{color:var(--muted);font-size:12px;font-style:normal;text-align:right}.ability-stat .bar-row.no-evidence em,.ability-stat .bar-row.no-evidence strong{color:var(--muted)}.ability-stat .bar-row.no-evidence .bar span{opacity:.42}.weak-skill-panel h2{margin-top:0}.skill-list{display:flex;flex-wrap:wrap;gap:8px}.skill-list.compact{padding-left:102px}.skill-pill{display:inline-flex;align-items:center;gap:6px;min-height:30px;border:1px solid var(--line);border-radius:999px;background:#111418;color:var(--text);padding:5px 10px;font-size:13px;line-height:1.2}button.skill-pill{width:auto;cursor:pointer}.skill-pill.weak{border-color:#5c4b1f}.skill-pill strong{color:var(--accent)}.skill-pill em{color:var(--muted);font-style:normal}.skill-diagnosis-list{display:grid;grid-gap:10px;gap:10px}.skill-diagnosis-item{display:grid;grid-template-columns:76px 1fr auto;grid-gap:10px;gap:10px;align-items:center;width:100%;min-height:44px;text-align:left;background:#111418}.skill-diagnosis-item span{color:var(--blue);font-size:13px}.skill-diagnosis-item strong{min-width:0}.skill-diagnosis-item em{color:var(--muted);font-style:normal;font-size:13px}.compact-select{width:min(220px,100%)}.assessment-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px;align-items:end}.check-row{min-height:48px;display:flex;align-items:center;gap:10px}.check-row input{width:auto}.dimension-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.dimension-list div{border:1px solid var(--line);border-radius:8px;padding:14px;background:#14171a}.dimension-list p{margin-bottom:0}.extension-explain{line-height:1.65}.extension-explain h2{margin-top:0}.extension-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;margin-top:16px}.extension-grid div,.report-row{border:1px solid var(--line);border-radius:8px;background:#14171a;padding:14px}.extension-grid p:last-child,.report-row p:last-child{margin-bottom:0}.paper-list{display:grid;grid-gap:14px;gap:14px;margin-top:18px}.paper-item{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:16px}.paper-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.paper-item-header p{margin:4px 0 0}.paper-item h2{margin:16px 0 10px;font-size:22px;line-height:1.35}.study-page{display:grid;grid-gap:18px;gap:18px}.study-layout{display:grid;grid-template-columns:260px minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.study-nav{position:-webkit-sticky;position:sticky;top:18px;border:1px solid var(--line);border-radius:8px;background:#14171a;padding:14px;display:grid;grid-gap:10px;gap:10px}.study-nav button{display:flex;align-items:center;gap:12px;justify-content:flex-start;text-align:left;width:100%}.study-nav button span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#20262d;color:var(--muted);font-size:12px}.study-nav button.active{border-color:var(--accent);background:rgba(92,200,255,.12)}.study-note{color:var(--muted);border-top:1px solid var(--line);padding-top:12px;font-size:13px}.study-main{display:grid;grid-gap:16px;gap:16px}.study-lesson{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:20px}.study-lesson-head{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}.study-lesson h2,.study-lesson h3{margin-top:0}.study-lesson section{margin-top:18px}.study-lesson p{line-height:1.75}.study-checklist ul,.study-lesson ul{margin:8px 0 14px;padding-left:20px}.study-checklist li,.study-lesson li{margin:6px 0;color:var(--muted);line-height:1.65}.example-line{border-left:3px solid var(--accent);padding:8px 0 8px 12px;background:rgba(92,200,255,.06)}.drill-list{display:grid;grid-gap:12px;gap:12px}.drill-item{border:1px solid var(--line);border-radius:8px;background:#14171a;padding:14px}.drill-item p{margin-top:0}.drill-answer{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.drill-answer p{color:var(--muted);margin:8px 0 0}.study-checklist{border:1px solid var(--line);border-radius:8px;background:#14171a;padding:16px}.report-list{display:grid;grid-gap:12px;gap:12px;margin-top:16px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.report-row{display:grid;grid-template-columns:1fr minmax(220px,360px);grid-gap:16px;gap:16px}.report-summary{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.report-side{display:grid;align-content:space-between;justify-items:flex-start;grid-gap:12px;gap:12px}.report-scores{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px}.report-scores span{border:1px solid var(--line);border-radius:999px;padding:4px 8px;color:var(--accent);background:#0d0f11;font-size:13px}.report-detail{display:grid;grid-gap:6px;gap:6px;margin-top:12px}.report-detail strong{margin-top:6px}.report-detail p{margin:0}.practice-report{display:grid;grid-gap:12px;gap:12px}.report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.dimension-report-item,.report-metrics div{border:1px solid var(--line);border-radius:8px;background:#14171a;padding:12px}.report-metrics span{display:block;color:var(--muted);font-size:13px}.report-metrics strong{display:block;margin-top:4px;font-size:22px}.verdict-stack{display:flex;flex-wrap:wrap;gap:8px}.verdict-chip{border:1px solid var(--line);border-radius:999px;padding:5px 10px;font-size:13px}.verdict-chip.correct{color:var(--green);border-color:rgba(98,212,139,.45)}.verdict-chip.partial{color:var(--yellow);border-color:rgba(241,201,91,.45)}.verdict-chip.wrong{color:var(--red);border-color:rgba(255,118,118,.45)}.dimension-report-list{display:grid;grid-gap:10px;gap:10px}.dimension-report-item p{margin:6px 0 0}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.62)}.modal{width:min(860px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;padding:20px;box-shadow:0 20px 80px rgba(0,0,0,.45)}.modal,.webllm-progress-toast{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.webllm-progress-toast{position:fixed;right:20px;bottom:92px;z-index:40;display:grid;grid-gap:14px;gap:14px;width:min(560px,calc(100vw - 40px));padding:16px;box-shadow:0 16px 54px rgba(0,0,0,.38)}.webllm-progress-toast p{margin:0}.webllm-progress-bar{height:12px;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:#0f1113}.webllm-progress-bar span{display:block;height:100%;min-width:10%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--green));transition:width .24s ease}.capture-fab{position:fixed;right:26px;bottom:26px;z-index:15;display:inline-grid;place-items:center;width:54px;height:54px;padding:0;border-color:rgba(231,198,106,.68);background:var(--accent);color:#171510;box-shadow:0 12px 36px rgba(0,0,0,.38)}.mobile-capture-entry{display:none}.capture-modal{display:grid;grid-gap:14px;gap:14px}.capture-input{min-height:120px}.capture-preview{display:grid;grid-gap:12px;gap:12px;margin-top:4px}.capture-expression,.capture-meta-grid div{border:1px solid var(--line);border-radius:8px;background:#14171a;padding:14px}.capture-expression.standard{border-color:rgba(231,198,106,.62);background:rgba(231,198,106,.08)}.capture-expression span{display:block;color:var(--muted);font-size:13px;margin-bottom:6px}.capture-expression p,.capture-meta-grid p{margin:0;line-height:1.6}.capture-meta-grid{display:grid;grid-template-columns:130px 1fr 1fr;grid-gap:12px;gap:12px}.capture-meta-grid strong{display:block;margin-bottom:6px}.reason-input{min-height:84px;margin-top:10px}.bar-row{display:grid;grid-template-columns:92px 1fr 42px;grid-gap:10px;gap:10px;align-items:center}.bar{height:12px;border-radius:999px;background:#0d0f11;overflow:hidden}.bar span{display:block;height:100%;background:var(--accent);transition:width .24s ease}.floating{position:absolute;right:28px;top:28px;width:min(360px,calc(100vw - 56px));padding:14px;z-index:4;animation:soft-enter .2s ease-out both}.mini-chart{width:100%;height:180px}.table{width:100%;border-collapse:collapse}.table td,.table th{border-bottom:1px solid var(--line);padding:10px;text-align:left}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.field-hint{display:block;margin-top:6px;color:var(--muted);font-size:13px;line-height:1.45}.personal-model-section{display:grid;grid-gap:16px;gap:16px}.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.section-heading h2,.section-heading p{margin:0}.toggle-row{display:flex;align-items:center;gap:8px;color:var(--text)}.toggle-row input{width:auto}.personal-guide{border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:rgba(32,36,42,.64);color:var(--muted)}.personal-guide p{margin:0 0 8px}.personal-guide a{color:var(--accent)}.personal-guide ol{margin:8px 0 0;padding-left:22px}.notice{border:1px solid #6c5720;background:#211c12;color:#ffe4a3;padding:12px;border-radius:8px;margin-top:16px}.notice.compact{margin-top:0}.connection-test-list{display:grid;grid-gap:8px;gap:8px;margin-top:14px}.connection-test-item{display:grid;grid-template-columns:20px 1fr;grid-gap:10px;gap:10px;align-items:start;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#121518}.connection-test-item.ok{border-color:#365d42}.connection-test-item.failed{border-color:#7a3030}.connection-test-item.ok svg{color:var(--green)}.connection-test-item.failed svg{color:#ff8f8f}.connection-test-item span,.connection-test-item strong{display:block}.connection-test-item span{color:var(--muted);margin-top:3px;line-height:1.45}@media (max-width:820px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:16px}.brand{font-size:18px}.brand,.streak{margin-bottom:12px}.streak{padding:10px 12px}.nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.nav button{min-height:42px;padding:9px 10px;gap:8px}.main{padding:14px 14px 88px}.mobile-capture-entry{display:grid;width:100%;grid-gap:5px;gap:5px;margin-bottom:16px;padding:15px 16px;text-align:left;border-color:rgba(231,198,106,.82);background:var(--accent);color:#171510;box-shadow:0 10px 28px rgba(0,0,0,.24)}.mobile-capture-entry span{display:inline-flex;align-items:center;gap:8px;font-weight:800}.mobile-capture-entry small{color:rgba(23,21,16,.78);line-height:1.45}.admin-row,.assessment-controls,.capture-meta-grid,.dimension-list,.extension-grid,.form-grid,.grid,.radar-wrap,.report-row,.study-layout,.user-admin-row{grid-template-columns:1fr}.capture-fab{right:14px;bottom:14px;width:48px;height:48px}.modal-backdrop{align-items:end;padding:10px}.modal{max-height:calc(100dvh - 20px);padding:16px}.capture-modal .topbar{align-items:flex-start;flex-direction:row}.capture-input{min-height:150px}.capture-modal .actions{display:grid;grid-template-columns:1fr}.capture-modal .actions button{display:inline-flex;align-items:center;gap:7px;justify-content:center}.study-nav{position:static}.pagination,.paper-item-header,.row,.topbar{align-items:flex-start;flex-direction:column}.ability-motion-field{top:90px;height:420px}.skill-list.compact{padding-left:0}.skill-diagnosis-item{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.ability-motion-field{opacity:.45}}.login-landing{display:grid;grid-template-columns:1fr 460px;min-height:100vh}.login-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#121518,#1a1f27 40%,#1c2230);display:flex;align-items:center;justify-content:center}.login-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 600px 400px at 30% 25%,rgba(117,183,255,.06),transparent),radial-gradient(ellipse 500px 350px at 70% 65%,rgba(231,198,106,.05),transparent)}.login-hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(117,183,255,.04) 1px,transparent 0),linear-gradient(90deg,rgba(231,198,106,.03) 1px,transparent 0);background-size:48px 48px;opacity:.5}.login-hero-content{position:relative;z-index:1;width:min(620px,calc(100% - 48px));padding:32px 0}.login-logo-badge{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:rgba(231,198,106,.1);color:var(--accent);margin-bottom:24px}.login-title{font-size:36px;font-weight:800;line-height:1.2;margin:0 0 10px;background:linear-gradient(90deg,var(--text) 0,rgba(245,240,223,.75) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-subtitle{font-size:16px;color:var(--muted);margin:0 0 36px;line-height:1.5}.login-features{display:grid;grid-gap:14px;gap:14px;margin-bottom:36px}.login-feature-card{display:flex;align-items:flex-start;gap:14px;border:1px solid rgba(48,54,61,.7);background:rgba(24,27,31,.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:16px 18px;border-radius:12px}.login-feature-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;background:rgba(231,198,106,.08);color:var(--accent)}.login-feature-card strong{display:block;font-size:14px;font-weight:700;margin-bottom:3px;color:var(--text)}.login-feature-card p{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}.login-stats{display:flex;gap:28px;padding-top:24px;border-top:1px solid rgba(48,54,61,.5)}.login-stat{display:flex;flex-direction:column;gap:3px}.login-stat-value{font-size:28px;font-weight:800;color:var(--accent);line-height:1}.login-stat-label{font-size:12px;color:var(--muted)}.login-form-side{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 32px;border-left:1px solid var(--line)}.login-form-side .auth-panel{width:min(380px,calc(100% - 16px));margin-bottom:20px}.login-form-side .auth-panel h2{font-size:24px;font-weight:700;margin:0 0 4px}.login-register-link{text-align:center;font-size:14px;color:var(--muted);margin:0}.login-register-link a{color:var(--accent);text-decoration:underline}@media (max-width:960px){.login-landing{grid-template-columns:1fr}.login-hero{min-height:auto;padding-top:32px}.login-title{font-size:28px}.login-features{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.login-form-side{border-left:none;border-top:1px solid var(--line);padding:32px 24px}.login-stats{gap:20px}}@media (max-width:600px){.login-hero-content{width:calc(100% - 32px)}.login-title{font-size:24px}.login-features{grid-template-columns:1fr}.login-stats{flex-wrap:wrap;gap:16px}}.streaming-output-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.streaming-output-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel-2)}.streaming-title{font-size:14px;font-weight:600;color:var(--text)}.streaming-status-group{display:flex;align-items:center;gap:8px}.streaming-badge{display:inline-flex;align-items:center;font-size:11px;padding:2px 8px;border-radius:999px;background:rgba(117,183,255,.12);color:var(--blue)}.streaming-badge.inline-spinner{background:transparent;padding:0}.streaming-badge.inline-spinner:before{content:"";display:block;width:8px;height:8px;border:2px solid var(--blue);border-top:2px solid transparent;border-radius:50%;animation:spin .7s linear infinite}.streaming-badge.streaming-done{background:rgba(98,212,139,.12);color:var(--green)}.streaming-badge.streaming-error{background:rgba(255,118,118,.12);color:var(--red)}.streaming-abort-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:rgba(168,173,172,.1);color:var(--muted);border-radius:6px;cursor:pointer;transition:all .15s ease}.streaming-abort-btn:hover{background:rgba(255,118,118,.15);color:var(--red)}.streaming-content{padding:16px;overflow-y:auto;overflow-x:hidden;position:relative}.streaming-content .formatted-markdown{min-height:24px}.streaming-content .formatted-code{margin-bottom:8px}.stream-cursor{display:inline-block;width:2px;height:1.1em;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:cursor-blink .8s step-end infinite}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.streaming-error-inline{display:flex;align-items:center;gap:8px;padding:12px 16px;margin:8px;background:rgba(255,118,118,.08);border:1px solid rgba(255,118,118,.2);border-radius:8px;color:var(--red);font-size:13px}.streaming-error-inline svg{flex-shrink:0}.streaming-retry-btn{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:4px 10px;border:1px solid rgba(255,118,118,.3);background:transparent;color:var(--red);font-size:12px;border-radius:6px;cursor:pointer;transition:all .15s ease}.streaming-retry-btn:hover{background:rgba(255,118,118,.12)}.formatted-code.json.streaming-json{position:relative}.formatted-code .hljs-keyword{color:#ff7b72}.formatted-code .hljs-string{color:#a5d6ff}.formatted-code .hljs-number{color:#79c0ff}.formatted-code .hljs-comment{color:#8b949e;font-style:italic}.formatted-code .hljs-function,.formatted-code .hljs-title{color:#d2a8ff}.formatted-code .hljs-type{color:#7ee787}.formatted-code .hljs-attr{color:#79c0ff}.formatted-code .hljs-literal{color:#ff7b72}.formatted-code .hljs-built_in{color:#ffa657}.footer{display:flex;align-items:center;justify-content:center;gap:6px;padding:18px 24px;margin-top:auto;border-top:1px solid var(--line);background:rgba(18,19,21,.7);color:var(--muted);font-size:13px;letter-spacing:0}.footer a{color:var(--accent);text-decoration:none;transition:opacity .15s ease}.footer a:hover{opacity:.8}.formatted-markdown strong{font-weight:600;color:var(--text)}.formatted-markdown em{font-style:italic;color:var(--muted)}