:root{--font-serif:"Newsreader", "Source Serif 4", Georgia, serif;--font-sans:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, monospace;--bg:oklch(98.5% .005 90);--bg-soft:oklch(97% .006 90);--surface:oklch(100% .003 90);--surface-2:oklch(98% .005 90);--ink:oklch(18% .01 150);--ink-2:oklch(35% .01 150);--mute:oklch(55% .012 150);--mute-2:oklch(72% .008 150);--line:oklch(91% .006 90);--line-2:oklch(94% .005 90);--brand:oklch(32% .05 150);--brand-2:oklch(42% .06 150);--brand-ink:oklch(98% .01 90);--gold:oklch(78% .13 85);--gold-deep:oklch(62% .12 75);--gold-tint:oklch(95% .04 85);--ok:oklch(55% .13 150);--ok-tint:oklch(95% .04 150);--warn:oklch(72% .13 70);--warn-tint:oklch(96% .04 80);--err:oklch(55% .18 25);--err-tint:oklch(96% .03 25);--shadow-sm:0 1px 0 #141e180a, 0 1px 2px #141e180a;--shadow:0 1px 0 #141e180a, 0 4px 14px -2px #141e1814;--shadow-lg:0 1px 0 #141e180a, 0 20px 40px -12px #141e182e;--r-xs:6px;--r-sm:8px;--r:12px;--r-lg:18px;--r-xl:24px;--nav-w:248px;--max-content:1240px}[data-theme=dark]{--bg:oklch(16.5% .012 150);--bg-soft:oklch(19% .013 150);--surface:oklch(21% .014 150);--surface-2:oklch(24% .013 150);--ink:oklch(96% .005 90);--ink-2:oklch(85% .006 90);--mute:oklch(66% .012 150);--mute-2:oklch(50% .012 150);--line:oklch(28% .014 150);--line-2:oklch(32% .013 150);--brand:oklch(62% .09 150);--brand-2:oklch(50% .075 150);--brand-ink:oklch(12% .01 150);--gold:oklch(82% .14 85);--gold-deep:oklch(68% .13 80);--gold-tint:oklch(28% .05 85);--ok-tint:oklch(28% .04 150);--warn-tint:oklch(30% .05 80);--err-tint:oklch(28% .05 25);--shadow-sm:0 1px 0 #0003, 0 1px 2px #0000004d;--shadow:0 1px 0 #0003, 0 6px 20px #0006;--shadow-lg:0 1px 0 #0003, 0 24px 50px -12px #0000008c}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;letter-spacing:-.005em;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}::selection{background:var(--gold);color:var(--brand)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line);background-clip:content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--mute-2);background-clip:content-box;border:2px solid #0000}.serif{font-family:var(--font-serif);letter-spacing:-.015em;font-weight:400}.mono{font-family:var(--font-mono)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--mute);font-size:11px;font-weight:500}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.app{grid-template-columns:var(--nav-w) 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:var(--bg-soft);flex-direction:column;gap:18px;height:100vh;padding:18px 14px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:4px 8px 8px;display:flex}.brand-mark{background:var(--brand);width:32px;height:32px;color:var(--gold);font-family:var(--font-serif);letter-spacing:-.04em;box-shadow:inset 0 0 0 1px oklch(from var(--brand) calc(l + .08) c h);border-radius:9px;place-items:center;font-size:17px;font-weight:500;display:grid}.brand-name{font-family:var(--font-serif);letter-spacing:-.02em;font-size:19px;font-weight:500}.brand-sub{letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin-top:1px;font-size:10.5px}.nav-section{flex-direction:column;gap:2px;display:flex}.nav-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--mute-2);padding:6px 10px 4px;font-size:10.5px}.nav-item{border-radius:var(--r-sm);color:var(--ink-2);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;font-weight:450;transition:background .12s,color .12s;display:flex;position:relative}.nav-item:hover{background:var(--surface);color:var(--ink)}.nav-item.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm), inset 0 0 0 1px var(--line)}.nav-item.active:before{content:"";background:var(--gold);border-radius:4px;width:2.5px;position:absolute;top:8px;bottom:8px;left:-4px}.nav-item .ic{opacity:.85;flex:none;width:16px;height:16px}.nav-item .badge{color:var(--mute);background:var(--surface-2);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:100px;margin-left:auto;padding:1px 7px;font-size:11px}.sidebar-footer{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:auto;padding:12px 6px 4px;display:flex}.user-chip{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:10px;padding:6px;display:flex}.user-chip:hover{background:var(--surface)}.avatar{background:linear-gradient(135deg, var(--brand), var(--brand-2));width:30px;height:30px;color:var(--gold);border-radius:50%;place-items:center;font-size:12px;font-weight:500;display:grid}.user-meta{flex-direction:column;min-width:0;line-height:1.1;display:flex}.user-name{font-size:13px;font-weight:500}.user-plan{color:var(--mute);font-size:11px}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:5;background:color-mix(in oklab, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(14px)saturate(160%);border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:14px 28px;display:flex;position:sticky;top:0}.topbar h1{font-family:var(--font-serif);letter-spacing:-.02em;margin:0;font-size:22px;font-weight:500}.topbar h1 .crumb{color:var(--mute)}.topbar .spacer{flex:1}.search{background:var(--surface);border:1px solid var(--line);width:280px;color:var(--mute);border-radius:100px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:flex}.search input{background:0 0;border:0;outline:0;flex:1;font-size:13px}.kbd{background:var(--bg-soft);border:1px solid var(--line);font:500 11px/1.4 var(--font-mono);color:var(--mute);border-radius:5px;align-items:center;padding:1px 6px;display:inline-flex}.content{max-width:var(--max-content);width:100%;margin:0 auto;padding:28px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;position:relative}.card-pad-sm{padding:14px}.card-pad-lg{padding:28px}.card-flat{box-shadow:none}.card-soft{background:var(--bg-soft)}.card-brand{background:var(--brand);color:var(--brand-ink);border-color:#0000}.card-brand .mute,.card-brand .eyebrow{color:oklch(from var(--brand-ink) l c h / .7)}.section-head{justify-content:space-between;align-items:end;gap:12px;margin-bottom:14px;display:flex}.section-head h2{font-family:var(--font-serif);letter-spacing:-.018em;margin:0;font-size:20px;font-weight:500}.section-head .sub{color:var(--mute);margin-top:2px;font-size:12.5px}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:9px 14px;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:var(--mute-2)}.btn:active{transform:translateY(.5px)}.btn .ic{width:14px;height:14px}.btn-primary{background:var(--brand);color:var(--brand-ink);box-shadow:var(--shadow-sm), inset 0 1px 0 oklch(from var(--brand) calc(l + .08) c h);border-color:#0000}.btn-primary:hover{background:oklch(from var(--brand) calc(l + .04) c h);border-color:#0000}.btn-gold{background:var(--gold);color:oklch(25% .04 80);box-shadow:var(--shadow-sm), inset 0 1px 0 oklch(from var(--gold) calc(l + .06) c h);border-color:#0000}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2)}.btn-sm{border-radius:7px;padding:6px 10px;font-size:12.5px}.btn-lg{border-radius:10px;padding:12px 18px;font-size:14px}.btn[disabled]{opacity:.45;cursor:not-allowed}.chip{background:var(--bg-soft);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;border-radius:100px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.chip .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.chip-ok{background:var(--ok-tint);color:oklch(40% .13 150);border-color:#0000}.chip-warn{background:var(--warn-tint);color:oklch(45% .13 70);border-color:#0000}.chip-err{background:var(--err-tint);color:var(--err);border-color:#0000}.chip-gold{background:var(--gold-tint);color:var(--gold-deep);border-color:#0000}[data-theme=dark] .chip-ok{color:oklch(85% .13 150)}[data-theme=dark] .chip-warn{color:oklch(85% .13 80)}[data-theme=dark] .chip-err{color:oklch(78% .15 25)}[data-theme=dark] .chip-gold{color:var(--gold)}.bar{background:var(--line-2);border-radius:100px;height:6px;position:relative;overflow:hidden}.bar>i{background:var(--brand);border-radius:100px;transition:width .4s;position:absolute;inset:0 auto 0 0}.bar-gold>i{background:var(--gold)}.bar-thin{height:3px}.kv{align-items:baseline;gap:8px;display:flex}.kv .v{font-family:var(--font-serif);letter-spacing:-.025em;font-size:36px;font-weight:400;line-height:1}.kv .u{color:var(--mute);letter-spacing:.04em;text-transform:uppercase;font-size:12px}.mute{color:var(--mute)}.muted-2{color:var(--mute-2)}.hr{background:var(--line);border:0;height:1px;margin:16px 0}.dash-grid{grid-template-columns:1.4fr 1fr;gap:18px;display:grid}.dash-row{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.metric{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);padding:16px}.metric .lbl{letter-spacing:.06em;text-transform:uppercase;color:var(--mute);font-size:11px}.metric .v{font-family:var(--font-serif);letter-spacing:-.02em;margin-top:6px;font-size:32px;font-weight:400;line-height:1.05}.metric .delta{color:var(--ok);margin-top:4px;font-size:11.5px}.metric .delta.neg{color:var(--err)}.countdown{background:var(--brand);color:var(--brand-ink);border-radius:var(--r-lg);padding:22px 24px;position:relative;overflow:hidden}.countdown:before{content:"";background:radial-gradient(circle, var(--gold) 0%, transparent 60%);opacity:.18;width:320px;height:320px;position:absolute;inset:-40% -20% auto auto}.countdown .label{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);opacity:.85;font-size:11.5px}.countdown .days{font-family:var(--font-serif);letter-spacing:-.04em;margin:6px 0;font-size:72px;font-weight:400;line-height:1}.countdown .days .small{letter-spacing:.06em;text-transform:uppercase;color:var(--gold);opacity:.8;margin-left:8px;font-size:14px}.countdown .date{color:oklch(from var(--brand-ink) l c h / .7);font-size:13px}.countdown .meter{margin-top:14px}.countdown .meter .bar{background:oklch(from var(--brand-ink) l c h / .15)}.countdown .meter .bar>i{background:var(--gold)}.countdown .meter .legend{color:oklch(from var(--brand-ink) l c h / .6);justify-content:space-between;margin-top:6px;font-size:11.5px;display:flex}.task-row{border-bottom:1px dashed var(--line);cursor:pointer;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:12px 4px;display:grid}.task-row:last-child{border-bottom:0}.task-row:hover .task-title{color:var(--ink)}.task-check{border:1.5px solid var(--mute-2);border-radius:6px;flex:none;place-items:center;width:20px;height:20px;transition:all .15s;display:grid}.task-row.done .task-check{background:var(--brand);border-color:var(--brand);color:var(--gold)}.task-row.done .task-title{color:var(--mute);text-decoration:line-through;-webkit-text-decoration-color:var(--mute-2);text-decoration-color:var(--mute-2)}.task-title{color:var(--ink-2);font-size:13.5px;font-weight:450}.task-meta{color:var(--mute);align-items:center;gap:8px;margin-top:2px;font-size:11.5px;display:flex}.task-time{color:var(--mute);font-variant-numeric:tabular-nums;font-size:11.5px}.dominio-row{border-bottom:1px dashed var(--line);grid-template-columns:24px 1fr 64px 40px;align-items:center;gap:12px;padding:10px 0;display:grid}.dominio-row:last-child{border-bottom:0}.dominio-num{font-family:var(--font-mono);color:var(--mute);font-size:11px}.dominio-title{font-size:13px;font-weight:450}.dominio-pct{font-variant-numeric:tabular-nums;color:var(--ink-2);text-align:right;font-size:12.5px}.dominio-bar{width:100%}.activity-item{border-bottom:1px dashed var(--line);grid-template-columns:32px 1fr auto;align-items:center;gap:12px;padding:10px 0;display:grid}.activity-item:last-child{border-bottom:0}.activity-ic{background:var(--bg-soft);width:28px;height:28px;color:var(--ink-2);border-radius:7px;place-items:center;display:grid}.activity-ic.ok{background:var(--ok-tint);color:var(--ok)}.activity-ic.err{background:var(--err-tint);color:var(--err)}.activity-ic.gold{background:var(--gold-tint);color:var(--gold-deep)}.activity-title{font-size:13px;font-weight:450}.activity-meta,.activity-time{color:var(--mute);font-size:11.5px}.tema-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.tema-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;flex-direction:column;gap:10px;min-height:160px;padding:18px;transition:all .15s;display:flex}.tema-card:hover{border-color:var(--mute-2);box-shadow:var(--shadow)}.tema-num{font-family:var(--font-mono);color:var(--mute);letter-spacing:.05em;font-size:11px}.tema-title{font-family:var(--font-serif);letter-spacing:-.015em;font-size:18px;font-weight:500;line-height:1.2}.tema-meta{color:var(--mute);justify-content:space-between;align-items:end;margin-top:auto;font-size:11.5px;display:flex}.tema-meta .pct{font-family:var(--font-serif);color:var(--ink);font-size:22px}.tema-detail{grid-template-columns:1.4fr 1fr;gap:18px;display:grid}.tab-bar{border-bottom:1px solid var(--line);gap:2px;margin-bottom:16px;display:flex}.tab{color:var(--mute);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:13px;font-weight:450}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);border-bottom-color:var(--gold)}.prose{color:var(--ink-2);font-size:14.5px;line-height:1.65}.prose h3{font-family:var(--font-serif);letter-spacing:-.015em;color:var(--ink);margin:24px 0 8px;font-size:18px;font-weight:500}.prose h3:first-child{margin-top:0}.prose p{margin:0 0 12px}.prose ul{margin:0 0 12px;padding-left:1.2em}.prose li{margin-bottom:6px}.prose strong{color:var(--ink);font-weight:550}.prose .pull{border-left:2.5px solid var(--gold);font-family:var(--font-serif);color:var(--ink);margin:18px 0;padding:2px 0 2px 16px;font-size:16px}.keypoint{border-bottom:1px dashed var(--line);grid-template-columns:22px 1fr;gap:12px;padding:12px 0;display:grid}.keypoint:last-child{border-bottom:0}.keypoint-n{background:var(--brand);width:22px;height:22px;color:var(--gold);font-family:var(--font-mono);border-radius:6px;place-items:center;font-size:11px;font-weight:500;display:grid}.trap{border:1px solid var(--line);border-radius:var(--r);background:var(--warn-tint);border-color:oklch(from var(--warn) l c h / .25);margin-bottom:10px;padding:14px 16px}[data-theme=dark] .trap{background:oklch(28% .04 75);border-color:oklch(40% .06 75)}.trap .tag{letter-spacing:.08em;text-transform:uppercase;color:var(--gold-deep);font-size:10.5px;font-weight:600}[data-theme=dark] .trap .tag{color:var(--gold)}.trap .q{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--ink);margin:6px 0 8px;font-size:16px}.trap .a{color:var(--ink-2);font-size:13px;line-height:1.55}.pdf-frame{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;height:480px;display:flex}.pdf-toolbar{border-bottom:1px solid var(--line);color:var(--mute);align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex}.pdf-page{background:repeating-linear-gradient(0deg, var(--surface), var(--surface) 14px, var(--bg-soft) 14px, var(--bg-soft) 15px);border:1px solid var(--line);border-radius:6px;flex:1;margin:14px;position:relative;overflow:hidden}.pdf-page:before{content:"PDF";font-family:var(--font-mono);color:var(--mute-2);background:var(--bg-soft);border-radius:4px;padding:4px 10px;font-size:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.test-builder{grid-template-columns:1fr 320px;gap:18px;display:grid}.builder-field{margin-bottom:22px}.field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--mute);justify-content:space-between;margin-bottom:8px;font-size:11.5px;display:flex}.option-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.opt{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:9px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;font-weight:450;transition:all .12s;display:flex}.opt:hover{border-color:var(--mute-2)}.opt.on{border-color:var(--brand);background:oklch(from var(--brand) l c h / .04);color:var(--ink)}.opt .check{border:1.5px solid var(--line);background:var(--surface);border-radius:4px;width:14px;height:14px}.opt.on .check{background:var(--brand);border-color:var(--brand)}.stepper{background:var(--surface);border:1px solid var(--line);border-radius:9px;align-items:center;display:inline-flex;overflow:hidden}.stepper button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;padding:8px 14px}.stepper button:hover{background:var(--bg-soft)}.stepper .val{font-family:var(--font-serif);text-align:center;min-width:50px;padding:0 12px;font-size:18px}.summary-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;position:sticky;top:84px}.summary-card .summary-row{border-bottom:1px dashed var(--line);justify-content:space-between;padding:8px 0;font-size:13px;display:flex}.summary-card .summary-row:last-of-type{border-bottom:0}.summary-card .summary-row .k{color:var(--mute)}.summary-card .summary-row .v{color:var(--ink);font-weight:500}.runner{max-width:740px;margin:0 auto}.runner-header{align-items:center;gap:16px;margin-bottom:24px;display:flex}.runner-header .step{font-family:var(--font-mono);color:var(--mute);font-size:12px}.runner-header .bar{flex:1}.runner-header .timer{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;font-size:13px}.q-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:32px}.q-meta{gap:8px;margin-bottom:14px;display:flex}.q-text{font-family:var(--font-serif);letter-spacing:-.015em;color:var(--ink);margin:0 0 24px;font-size:24px;font-weight:400;line-height:1.3}.q-options{flex-direction:column;gap:8px;display:flex}.q-opt{border:1px solid var(--line);cursor:pointer;background:var(--surface);border-radius:11px;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:14px 16px;transition:all .12s;display:grid}.q-opt:hover:not(.locked){border-color:var(--mute-2);background:var(--surface-2)}.q-opt .key{background:var(--bg-soft);border:1px solid var(--line);width:26px;height:26px;font-family:var(--font-mono);border-radius:7px;place-items:center;font-size:12px;font-weight:500;display:grid}.q-opt .text{color:var(--ink);font-size:14.5px;line-height:1.45}.q-opt .mark{opacity:0;width:18px;height:18px}.q-opt.selected{border-color:var(--brand);background:oklch(from var(--brand) l c h / .04)}.q-opt.selected .key{background:var(--brand);color:var(--gold);border-color:#0000}.q-opt.correct{border-color:var(--ok);background:var(--ok-tint)}.q-opt.correct .key{background:var(--ok);color:#fff;border-color:#0000}.q-opt.correct .mark{opacity:1;color:var(--ok)}.q-opt.wrong{border-color:var(--err);background:var(--err-tint)}.q-opt.wrong .key{background:var(--err);color:#fff;border-color:#0000}.q-opt.wrong .mark{opacity:1;color:var(--err)}.q-opt.locked{cursor:default}.q-opt.locked:not(.correct):not(.wrong){opacity:.55}.feedback{border-radius:var(--r);border:1px solid var(--line);background:var(--bg-soft);margin-top:18px;padding:16px 18px}.feedback.ok{background:var(--ok-tint);border-color:oklch(from var(--ok) l c h / .3)}.feedback.bad{background:var(--err-tint);border-color:oklch(from var(--err) l c h / .25)}.feedback .title{font-family:var(--font-serif);align-items:center;gap:8px;margin-bottom:6px;font-size:16px;font-weight:500;display:flex}.feedback .body{color:var(--ink-2);font-size:13.5px;line-height:1.55}.feedback .ai-line{color:var(--mute);border-top:1px dashed var(--mute-2);align-items:center;gap:6px;margin-top:10px;padding-top:10px;font-size:12px;display:flex}.runner-actions{justify-content:space-between;align-items:center;margin-top:22px;display:flex}.results-hero{text-align:center;padding:36px 0 24px}.score-ring{width:168px;height:168px;margin:0 auto 14px;position:relative}.results-score{font-family:var(--font-serif);letter-spacing:-.04em;font-size:64px;font-weight:400}.results-pct{letter-spacing:.08em;text-transform:uppercase;color:var(--mute);font-size:14px}.results-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px;display:grid}.chat-wrap{grid-template-columns:1fr 1fr;gap:18px;display:grid}.chat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;height:calc(100vh - 180px);min-height:520px;display:flex}.chat-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:16px 20px;display:flex}.chat-head .avatar{width:34px;height:34px;font-size:13px}.chat-head h3{font-family:var(--font-serif);letter-spacing:-.015em;margin:0;font-size:17px;font-weight:500}.chat-head p{color:var(--mute);margin:1px 0 0;font-size:12px}.chat-body{flex-direction:column;flex:1;gap:14px;padding:20px;display:flex;overflow-y:auto}.msg{max-width:86%}.msg.user{align-self:flex-end}.msg .bubble{background:var(--bg-soft);color:var(--ink);white-space:pre-wrap;border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.5}.msg.user .bubble{background:var(--brand);color:var(--brand-ink);border-color:#0000;border-bottom-right-radius:5px}.msg.bot .bubble{border-bottom-left-radius:5px}.msg .meta{color:var(--mute);margin-top:4px;padding:0 4px;font-size:11px}.msg.user .meta{text-align:right}.typing{gap:4px;padding:14px;display:inline-flex}.typing span{background:var(--mute-2);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite typ}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes typ{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.chat-input{border-top:1px solid var(--line);align-items:end;gap:8px;padding:12px 14px;display:flex}.chat-input textarea{border:1px solid var(--line);background:var(--bg-soft);resize:none;border-radius:12px;outline:none;flex:1;min-height:42px;max-height:140px;padding:11px 14px;font-family:inherit;font-size:14px}.chat-input textarea:focus{border-color:var(--brand)}.suggest{flex-wrap:wrap;gap:6px;padding:0 14px 12px;display:flex}.suggest button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);cursor:pointer;border-radius:100px;padding:6px 10px;font-size:12px}.suggest button:hover{border-color:var(--mute-2);background:var(--bg-soft)}.plan-preview{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);height:calc(100vh - 180px);min-height:520px;padding:22px;overflow-y:auto}.plan-week{margin-bottom:20px}.plan-week h4{font-family:var(--font-serif);color:var(--ink);justify-content:space-between;margin:0 0 8px;font-size:15px;font-weight:500;display:flex}.plan-week .wk{font-family:var(--font-mono);color:var(--mute);letter-spacing:.04em;font-size:11px}.plan-day{border-bottom:1px dashed var(--line-2);grid-template-columns:56px 1fr auto;align-items:start;gap:10px;padding:8px 0;font-size:13px;display:grid}.plan-day .d{font-family:var(--font-mono);color:var(--mute);text-transform:uppercase;padding-top:2px;font-size:11px}.plan-day .title{color:var(--ink-2)}.plan-day .hrs{color:var(--mute);font-variant-numeric:tabular-nums;font-size:11.5px}.tutor-fab{background:var(--brand);width:52px;height:52px;color:var(--gold);cursor:pointer;box-shadow:var(--shadow-lg);z-index:100;border:1px solid oklch(from var(--brand) calc(l + .08) c h);border-radius:50%;place-items:center;transition:transform .15s;display:grid;position:fixed;bottom:22px;right:22px}.tutor-fab:hover{transform:scale(1.05)}.tutor-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:380px;height:540px;box-shadow:var(--shadow-lg);z-index:100;flex-direction:column;display:flex;position:fixed;bottom:90px;right:22px;overflow:hidden}.tutor-panel .chat-head{padding:12px 16px}.tutor-panel .chat-body{padding:14px}.module-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.module-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;flex-direction:column;gap:12px;min-height:180px;padding:22px;transition:all .15s;display:flex}.module-card:hover{border-color:var(--brand)}.module-ic{background:var(--bg-soft);border:1px solid var(--line);width:36px;height:36px;color:var(--ink-2);border-radius:9px;place-items:center;display:grid}.module-card h3{font-family:var(--font-serif);letter-spacing:-.015em;margin:0;font-size:17px;font-weight:500}.module-card p{color:var(--mute);margin:0;font-size:12.5px;line-height:1.5}.scroll-area{flex:1;overflow-y:auto}.topbar-title{font-family:var(--font-serif);letter-spacing:-.02em;flex:1;font-size:20px;font-weight:500}.tutor-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.tutor-body{flex:1;padding:14px 16px;overflow-y:auto}.tutor-input{border-top:1px solid var(--line);align-items:center;gap:8px;padding:10px 12px;display:flex}.mobile-nav{display:none}@media (width<=1100px){.dash-grid{grid-template-columns:1fr}.dash-row{grid-template-columns:repeat(2,1fr)}.tema-detail,.test-builder,.chat-wrap{grid-template-columns:1fr}}@media (width<=760px){:root{--nav-w:0px}.app{grid-template-columns:1fr}.sidebar{display:none}.topbar{padding:12px 16px}.topbar-title{font-size:17px}.search{display:none}.content{padding:16px 16px 96px}.content h2.serif{font-size:clamp(22px,6vw,32px)!important}.dash-row{grid-template-columns:1fr 1fr}.countdown .days{font-size:56px}.q-card{padding:20px}.q-text{font-size:19px}.tutor-fab{bottom:78px}.tutor-panel{width:auto;bottom:140px;left:12px;right:12px}.mobile-nav{background:color-mix(in oklab, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:20;padding:6px 4px 10px;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav-item{cursor:pointer;color:var(--mute);letter-spacing:.02em;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 4px;font-size:10px;transition:color .15s;display:flex}.mobile-nav-item.active{color:var(--brand)}.mobile-nav-item:hover{color:var(--ink)}}
