/* Margin's reading and working surfaces share one semantic token system. */
@font-face{font-family:MarginSans;src:url('/fonts/dm-sans.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:MarginSans;src:url('/fonts/dm-sans-semibold.ttf') format('truetype');font-weight:500 900;font-display:swap}
@font-face{font-family:MarginSerif;src:url('/fonts/dm-serif.ttf') format('truetype');font-weight:400;font-display:swap}
:root{color-scheme:light;--paper:#ffffff;--surface:#ffffff;--rail:#f6f7f9;--ink:#192230;--muted:#586273;--line:#dfe4eb;--forest:#2459db;--sage:#edf3ff;--gold:#2459db;--hover:#e9edf3;--accent-hover:#1946b5;--success:#245c45;--success-bg:#edf5ef;--warning:#715221;--warning-bg:#faf2e3;--danger:#923e35;--danger-bg:#fbedeb;--shadow:0 20px 60px #15243b20;--ease:cubic-bezier(.16,1,.3,1)}
html[data-theme=dark]{color-scheme:dark;--paper:#131922;--surface:#1b2330;--rail:#101620;--ink:#eef2f8;--muted:#b0bdcf;--line:#354257;--forest:#a8c4ff;--sage:#243754;--gold:#a8c4ff;--hover:#2c394e;--accent-hover:#c6d7ff;--success:#b7e2cb;--success-bg:#21392e;--warning:#edd49f;--warning-bg:#3b3222;--danger:#ffc2b8;--danger-bg:#422a29;--shadow:0 20px 60px #0005}
*{box-sizing:border-box}html{scrollbar-color:var(--line) var(--paper);scrollbar-width:thin}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 MarginSans,sans-serif;-webkit-font-smoothing:antialiased}::selection{background:var(--sage);color:var(--ink)}button,input,select,textarea{font:inherit}input,textarea{caret-color:var(--forest)}button,a,summary{touch-action:manipulation}a{color:var(--forest);text-underline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance;overflow-wrap:anywhere;line-height:1.25;letter-spacing:-.025em}h1{font-size:32px;font-weight:600;margin-bottom:20px}h2{font-size:24px;font-weight:600;margin-bottom:14px}h3{font-size:19px;font-weight:600;margin-bottom:10px}p{margin-bottom:16px}small,.muted{color:var(--muted)}small{font-size:12px}.eyebrow,.panel-label,.course-language{color:var(--muted);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.serif{font-family:MarginSerif,serif;font-weight:400}
button,.record-download{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-weight:500;line-height:1.4;cursor:pointer;text-decoration:none;transition:border-color .18s}button:hover,.record-download:hover{background:var(--hover)}button:active,button.pressed{background:var(--sage)}button:disabled{opacity:.55;cursor:not-allowed}button[aria-busy=true]{cursor:wait}button.primary{background:var(--forest);border-color:transparent;color:#fff;padding:12px 20px}button.primary:hover{background:var(--accent-hover)}html[data-theme=dark] button.primary{color:#17243b}button.quiet{border-color:transparent;background:transparent;color:var(--muted);padding:10px 12px}button.quiet:hover{background:var(--hover);color:var(--ink)}button.danger,.danger{color:var(--danger)}:is(button,a,summary,input,textarea,select):focus-visible{outline:2px solid var(--forest);outline-offset:4px}input,select,textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}textarea{resize:vertical;min-height:100px;line-height:1.7}label{display:block;font-size:13px;font-weight:500;margin:18px 0 7px}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:20px;accent-color:var(--forest);flex-shrink:0}.full{width:100%;margin-top:20px}.row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.between{justify-content:space-between}.grow{flex:1;min-width:0}.hidden{display:none!important}.ui-icon{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.brand{display:flex;align-items:center;gap:12px;font:32px/1 MarginSerif,serif;letter-spacing:-.03em;color:var(--ink)}.brand-symbol{width:17px;height:25px;border-left:1px solid var(--forest);border-right:1px solid var(--forest);position:relative}.brand-symbol:after{content:'';position:absolute;left:4px;right:4px;top:8px;height:8px;border-block:1px solid var(--forest)}
.course-branch-row{position:relative;margin:4px 0}.course-branch-row .course-branch{margin:0}.course-branch-row .course-branch>summary{width:24px;height:44px;justify-content:center;padding:0}.course-branch-actions{position:absolute;top:0;left:24px;right:0;display:flex;align-items:center;min-height:44px;border-radius:6px}.course-branch-actions:has(.active){background:var(--sage)}.course-branch-actions .course-nav{display:block}.course-branch-row .course-children{margin-left:24px}.scroll-table:focus-visible{outline:2px solid var(--forest);outline-offset:4px}
/* Navigation stays familiar; the course tree is a secondary working index. */
.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100dvh}.sidebar{display:flex;flex-direction:column;gap:0;position:sticky;top:0;height:100dvh;padding:32px 16px 20px;background:var(--rail);border-right:1px solid var(--line);min-width:0;z-index:5;overflow-y:auto}.sidebar .brand{margin:0 12px 38px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;color:var(--muted);text-decoration:none;border-radius:8px}.sidebar nav a:hover{background:var(--hover);color:var(--ink)}.sidebar nav a.active{background:var(--surface);color:var(--forest);font-weight:600}.sidebar-heading{margin:32px 10px 8px}.sidebar-heading .eyebrow{font-size:13px}.sidebar-heading button{width:44px;padding:8px;font-size:22px}.course-tree{flex:1;min-height:0;overflow:auto}.course-branch,.course-folder{margin:4px 0}.course-branch>summary{display:flex;align-items:center;gap:4px;padding:0 4px;list-style:none;border-radius:8px;cursor:pointer}.course-branch>summary:before{content:'';width:6px;height:6px;border-right:1px solid var(--muted);border-bottom:1px solid var(--muted);transform:rotate(-45deg);flex-shrink:0}.course-branch[open]>summary:before{transform:rotate(45deg)}.course-branch>summary:has(.active){background:var(--sage)}.course-nav{flex:1;min-width:0;padding:10px 4px;min-height:44px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--ink);text-decoration:none}.course-menu{flex-shrink:0;font-size:20px;min-width:44px;padding:8px!important}.course-children{display:grid;margin:4px 0 16px 22px;padding-left:10px;border-left:1px solid var(--line)}.course-children a,.course-children button{display:block;text-align:left;padding:10px;min-height:44px;color:var(--muted);border-radius:6px;text-decoration:none;font-size:12px}.course-children a:hover,.course-children a.active{background:var(--hover);color:var(--ink)}.course-children a.active{font-weight:600}.course-folder>summary{cursor:pointer;padding:12px 8px;color:var(--muted);font-size:13px}.sidebar .foot{border-top:1px solid var(--line);padding-top:18px;margin-top:24px}.sidebar .foot small{display:block;margin:0 10px 8px;overflow-wrap:anywhere}.sidebar #logout{justify-content:flex-start}#workspace-toggle{display:none}.workspace{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:74px;padding:14px 40px;border-bottom:1px solid var(--line);background:var(--paper)}.topbar>span{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{gap:4px;flex-wrap:nowrap}.topbar button{font-size:12px}.theme-toggle{min-width:44px;padding:8px!important}.theme-toggle [data-theme-glyph]{font-size:22px}.main{width:100%;max-width:2280px;margin:auto;padding:44px 48px 80px}.skip-link{position:fixed;left:16px;top:-80px;background:var(--forest);color:var(--paper);padding:12px 18px;z-index:200;border-radius:8px}.skip-link:focus{top:16px}#main:focus{outline:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* The library reads like an index, with a concrete place to continue. */
.home-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,1fr);gap:56px;padding:16px 0 42px;margin-bottom:42px;border-bottom:1px solid var(--line)}.greeting{font:400 54px/1.06 MarginSerif,serif;letter-spacing:-.025em;margin:0 0 24px}.hero-copy>p{font-size:16px;line-height:1.75;color:var(--muted)}.hero-copy .library-context{font-size:12px;margin:32px 0 0}.resume-space{padding:6px 0 6px 32px;border-left:1px solid var(--line);align-self:center}.resume-label{display:block;color:var(--muted);font-size:13px;margin-bottom:16px}.resume-space h2{font-size:22px;line-height:1.35;margin-bottom:10px}.resume-space p{color:var(--muted);margin-bottom:24px}.resume-space small{display:block;margin-top:16px}.library-heading{margin-bottom:8px}.library-heading h2{font-size:23px;margin:0}.course-grid{display:grid;grid-template-columns:1fr}.course-card{display:grid;grid-template-columns:minmax(0,1fr) 180px 24px;gap:32px;align-items:center;padding:28px 0;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);transition:background .18s}.course-card:hover{background:var(--surface)}.course-card-copy{min-width:0}.course-language{font-size:12px}.course-card h3{font-size:23px;line-height:1.35;margin:0 0 6px}.course-card .course-language{display:block;margin-bottom:10px}.course-card p{font-size:13px;max-width:68ch;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.7}.status{width:100%}.status small{display:block;margin:4px 0 0;font-size:12px}.progress-value{font-size:23px;line-height:1.4;font-weight:500;font-variant-numeric:tabular-nums}.progress-value span{font-size:14px;color:var(--muted)}.progress-line{width:100%;height:2px;background:var(--line);margin:12px 0 0;overflow:hidden}.progress-line span{display:block;height:100%;background:var(--forest)}.material-status{font-size:12px;color:var(--muted)}.card-arrow{font-size:24px;color:var(--forest)}.empty{padding:36px 0;max-width:660px}.empty h2{font-size:26px}.empty p{max-width:60ch}.live-dot{display:none}
/* Reading comes first in the course, with compact optional context. */
.course-heading{gap:20px;margin:6px 0 12px}.course-heading h1{font:600 28px/1.3 MarginSans,sans-serif;margin:0}.course-heading button{font-size:12px}.tabs{display:flex;gap:28px;overflow-x:auto;border-bottom:1px solid var(--line);margin:22px 0 24px}.tabs a,.tabs button{display:block;min-height:44px;flex-shrink:0;padding:12px 0;color:var(--muted);text-decoration:none;border:0;border-radius:0;background:transparent;border-bottom:2px solid transparent;font-weight:500}.tabs .active{color:var(--forest);border-bottom-color:var(--forest)}.tabs a:hover{color:var(--ink)}.course-context{max-width:460px;margin:40px 0 0;font-size:12px}.course-context>summary{color:var(--muted);cursor:pointer;padding:5px 0}.course-context[open]{padding-bottom:18px}.study-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:48px;align-items:start}.conversation{min-width:0}.conversation #messages{min-height:0;overflow:visible;padding-right:0}.message{margin:0 0 28px;padding:8px 0 28px;border-bottom:1px solid var(--line)}.message:last-child{border:0;margin-bottom:0}.message-byline{display:flex;align-items:center;gap:10px;margin-bottom:18px;color:var(--muted);font-size:12px}.speaker-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--sage);color:var(--forest);border-radius:6px;font:600 14px MarginSans,sans-serif}.message.user{background:var(--surface);padding:22px 24px;border:1px solid var(--line);border-radius:12px;margin-left:28px}.message.user .speaker-mark{background:var(--rail);color:var(--ink)}.prose{font-size:18px;line-height:1.75;max-width:68ch;overflow-wrap:anywhere}.prose p{margin-bottom:16px}.prose h1{font-size:28px}.prose h2{font-size:24px;margin-top:28px}.prose h3{font-size:20px;margin-top:24px}.prose ul,.prose ol{padding-left:24px}.prose li{margin-bottom:8px}.prose pre{white-space:pre-wrap;overflow:auto;font-size:13px;background:var(--rail);padding:16px;border-radius:8px}.prose img{max-width:100%}.prose blockquote{margin:20px 0;padding-left:18px;border-left:1px solid var(--line);color:var(--muted)}.prose table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;font-size:14px}.prose td,.prose th{padding:10px 14px;border-bottom:1px solid var(--line)}.question{margin-top:24px;background:var(--surface);border-top:2px solid var(--forest);padding:22px 0;border-radius:0;font-size:18px;line-height:1.7;color:var(--ink)}.question .eyebrow{display:block;color:var(--forest);margin-bottom:10px}.feedback{background:var(--surface);color:var(--ink);border-left:3px solid var(--success);padding:12px 18px;border-radius:8px;margin-bottom:20px;font-size:14px}.verdict-partial .feedback,.verdict-uncertain .feedback{background:var(--surface);color:var(--ink);border-left-color:var(--warning)}.verdict-incorrect .feedback{background:var(--surface);color:var(--ink);border-left-color:var(--danger)}.source-control{margin-top:12px;font-size:12px;padding-left:0!important}.history-control{display:block;margin:0 auto 24px;font-size:12px}.composer{margin-top:24px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.composer:focus-within{border-color:var(--forest)}.composer-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.composer-heading .eyebrow{font-size:13px;color:var(--ink)}.keyboard-hint{font-size:11px}.composer textarea{min-height:100px;max-height:300px;border:0;border-radius:0;padding:0;background:transparent}.composer textarea:focus-visible{outline:0}.composer .row{gap:6px}.composer .row.between{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}.composer button{font-size:12px}.composer .primary{padding:12px 18px}.composer .quiet{padding:10px 8px}.composer .field-help{font-size:11px;margin:6px 0 16px}.attachment{font-size:12px;color:var(--muted);margin:8px 0}.conversation>.row{gap:4px;margin-top:16px!important}.conversation>.row button{font-size:12px}.topic-panel{border-left:1px solid var(--line);padding-left:24px}.topic-panel h2{font-size:20px;line-height:1.4;margin:12px 0 20px!important}.topic-button{display:flex;align-items:flex-start;justify-content:flex-start;gap:10px;width:100%;padding:12px 10px;border:0;background:transparent;text-align:left;font-size:13px;margin-bottom:4px}.topic-button.active{color:var(--forest);background:var(--sage)}.topic-button .check{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border:1px solid var(--muted);border-radius:50%;flex-shrink:0;margin-top:2px;font-size:10px}.topic-button .check.done{color:var(--paper);background:var(--forest);border-color:var(--forest)}.topic-actions{display:grid;gap:8px;border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.topic-actions button{font-size:12px}.topic-panel p{font-size:12px;line-height:1.7}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;margin:32px 0}.fact{padding:20px 0;border-top:1px solid var(--line)}.fact p{margin:6px 0}.badge{display:inline-block;font-size:12px;color:var(--muted)}.badge.warning{color:var(--warning)}.checklist{list-style:none;padding:0}.checklist li{display:flex;gap:18px;align-items:flex-start;padding:24px 0;border-bottom:1px solid var(--line)}.checklist input{margin-top:5px}.checklist .content{flex:1;min-width:0}.checklist h3{font-size:20px}.checklist li>button{font-size:12px}.checklist p{max-width:70ch}.dropzone{padding:40px 28px;text-align:center;border:1px dashed var(--muted);border-radius:12px;background:var(--surface);margin:28px 0}.dropzone h3{font-size:23px;margin:16px 0 12px}.dropzone p{color:var(--muted);max-width:65ch;margin-inline:auto}.dropzone.dragging{background:var(--sage);border-color:var(--forest)}.upload-glyph{display:none}.document-row{display:flex;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.document-row .grow{overflow-wrap:anywhere}.document-row small{display:block;margin-top:4px}.document-row button{font-size:12px}.pill{display:inline-block;padding:4px 9px;background:var(--sage);color:var(--forest);border-radius:5px;font-size:12px}.analysis-notice{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;margin-bottom:24px;background:var(--sage);border-radius:10px;font-size:13px}.analysis-notice p{margin:4px 0;color:var(--muted)}.analysis-notice small{display:block}.writing-space{max-width:900px}.writing-space textarea{min-height:360px;padding:24px;margin-top:20px}
/* Forms and account controls use the same hierarchy as learning controls. */
.settings{max-width:800px}.setting-block{padding:30px 0;border-bottom:1px solid var(--line)}.setting-block h2,.setting-block h3{font-size:23px;margin-bottom:16px}.scope-choice{display:flex;align-items:flex-start;gap:14px;padding:18px;margin:10px 0;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.scope-choice input{margin-top:4px}.scope-choice label{margin:0;font-size:14px}.scope-choice:has(input:checked){background:var(--sage);border-color:var(--forest)}.scope-choice small{display:block;margin-top:4px}.experience-controls{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;margin:18px 0}.experience-controls p{font-size:13px;margin:5px 0}.experience-controls button{min-width:68px}.experience-controls button[aria-pressed=true]{background:var(--sage);color:var(--forest)}.memory-row{display:flex;gap:10px;align-items:start;margin-top:12px}.memory-row textarea{font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid>div{min-width:0}.field-help{font-size:12px;color:var(--muted);line-height:1.7;margin:8px 0 12px}.modal-actions{display:grid;grid-template-columns:1fr auto;gap:12px;margin-top:24px}.institution-picker{position:relative}.institution-picker [role=listbox]{max-height:230px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);margin-top:8px}.institution-picker [role=option]{padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--line)}.institution-picker [role=option]:last-child{border:0}.institution-picker [role=option]:hover,.institution-picker [aria-selected=true]{background:var(--sage)}.institution-picker [role=option] small{display:block;overflow-wrap:anywhere}.institution-picker [hidden]{display:none}.institution-submission{padding:20px 0;border-bottom:1px solid var(--line)}.institution-submission .badge{margin-left:12px}.section-settings .row{flex-wrap:nowrap;margin-top:12px}.section-settings .row>input{flex:1;min-width:0}.section-settings label{display:flex;align-items:center;gap:6px;margin:0;font-size:12px}
/* Overlays protect an active task without obscuring reading controls. */
dialog{width:min(700px,calc(100% - 40px));max-height:calc(100dvh - 40px);border:0;border-radius:14px;padding:32px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#101b2b80}dialog h2{font-size:28px;margin:8px 0 16px}.source-item{padding:24px 0;border-top:1px solid var(--line)}.source-item h3{font-size:20px}.source-item pre{white-space:pre-wrap;background:var(--rail);padding:16px;border-radius:8px;font:13px/1.7 MarginSans,sans-serif;max-height:280px;overflow:auto}.source-item img{display:block;max-width:100%;max-height:440px;object-fit:contain;margin:20px auto;background:white}.source-item a{font-size:13px}.error{color:var(--danger);background:var(--danger-bg);padding:14px 16px;border-radius:8px;font-size:13px}.error:empty{display:none}.busy{display:flex;gap:12px;align-items:center;padding:20px 0;color:var(--muted);font-size:13px}.busy:before{content:'';height:14px;width:14px;border:2px solid var(--line);border-top-color:var(--forest);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toast{display:none;position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);background:var(--ink);color:var(--paper);padding:14px 20px;border-radius:8px;box-shadow:var(--shadow);font-size:13px;z-index:100}.loading-view{min-height:300px}.skeleton{height:80px;max-width:650px;margin:20px 0;background:var(--rail);border-radius:8px}.skeleton.short{height:44px;max-width:420px}.diagram{margin:24px 0;padding:22px;background:var(--rail);border-radius:12px}.diagram figcaption{margin-bottom:16px}.diagram-nodes{display:flex;gap:12px;flex-wrap:wrap}.diagram-node{padding:10px 15px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:14px}.diagram-edge{font-size:13px;margin:12px 0;color:var(--muted)}.katex-display{overflow-x:auto;overflow-y:hidden}
/* Activity represents recorded time and evidence, never inferred mastery. */
.analytics{max-width:900px}.analytics-intro{max-width:65ch}.analytics-totals{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:28px;border-block:1px solid var(--line);padding:28px 0;margin:32px 0}.analytics-totals strong{display:block;font-size:30px;font-weight:500;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.analytics-totals span{font-size:12px;color:var(--muted)}.activity-milestone{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:32px}.analytics-section{margin:38px 0}.analytics-section h2,.analytics-method h2{font-size:23px}.analytics-section>.row>span{font-size:12px}.activity-chart{display:flex;gap:6px;height:180px;align-items:flex-end;padding:15px 0 30px;border-bottom:1px solid var(--line);overflow-x:auto}.activity-chart:focus-visible{outline:2px solid var(--forest);outline-offset:5px}.activity-column{flex:1;min-width:18px;height:100%;position:relative;display:flex;align-items:flex-end}.activity-bar{width:100%;background:var(--forest);border-radius:3px 3px 0 0;min-height:3px}.activity-column small{position:absolute;top:100%;padding-top:7px;font-size:10px;white-space:nowrap}.activity-column:nth-child(even) small{visibility:hidden}.activity-bar.prompt-only{background:transparent;border-top:2px solid var(--muted);border-radius:0;min-height:2px;height:2px!important}.analytics-course{padding:20px 0;border-bottom:1px solid var(--line)}.analytics-course .progress-line{margin:12px 0}.analytics-method{border-top:1px solid var(--line);padding-top:28px;font-size:13px;color:var(--muted)}.analytics-empty{max-width:620px;padding:32px 0}.analytics-empty p{color:var(--muted)}.admin-table,.activity-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.admin-table :is(td,th),.activity-table :is(td,th){text-align:left;padding:14px 12px;border-bottom:1px solid var(--line)}.admin-table th{font-size:12px;color:var(--muted);font-weight:500}.admin-table input{max-width:85px;padding:8px}.admin-table button{font-size:12px}.scroll-table{overflow:auto;margin:20px 0}
/* The entrance explains the learning loop without invented proof. */
.auth{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.auth-story{background:#182338;color:#f4f7fc;padding:56px 12%;display:flex;flex-direction:column;justify-content:space-between;gap:48px}.auth-story .brand{color:#f4f7fc}.auth-story .brand-symbol,.auth-story .brand-symbol:after{border-color:#a8c4ff}.auth-story h1{font:400 58px/1.08 MarginSerif,serif;letter-spacing:-.025em;max-width:520px;margin:0 0 24px}.auth-story .intro{font-size:16px;line-height:1.75;color:#c3cfdf}.auth-story>.muted{color:#c3cfdf;font-size:12px}.auth-method{margin-top:40px}.auth-method p{margin:0;padding:16px 0;border-top:1px solid #53647f}.auth-method strong{display:block;font-size:14px;font-weight:500}.auth-method span{display:block;margin-top:4px;font-size:12px;color:#c3cfdf}.auth-form{position:relative;display:flex;align-items:center;justify-content:center;padding:60px 40px}.auth-form section{width:100%;max-width:380px}.auth-form h2{font-size:32px;margin-bottom:12px}.auth-form>.theme-toggle{position:absolute;top:24px;right:24px}.auth-form input{min-height:52px}.auth-form .privacy{margin-top:28px;border-top:1px solid var(--line);padding-top:22px;font-size:12px;line-height:1.8}.auth-form .privacy button{font-size:12px;padding-left:0}.terms-consent{display:flex;align-items:flex-start;gap:12px;margin:18px 0}.terms-consent input{margin-top:4px}.terms-consent label{margin:0;font-size:12px;font-weight:400;line-height:1.8}
.policy-footer,.policy-links{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;padding:24px;font-size:12px;border-top:1px solid var(--line)}.policy-footer a{color:var(--muted)}.policy-links{padding:0 0 20px;justify-content:flex-start;border:0}.storage-notice{display:flex;align-items:center;gap:16px;flex-wrap:wrap;max-width:1200px;margin:0 auto 20px;padding:16px 24px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.storage-notice p{margin:0;flex:1;min-width:220px}.storage-notice[hidden]{display:none}.storage-notice button{font-size:12px}.privacy{font-size:13px;line-height:1.8}.legal-page{max-width:860px}.legal-page nav{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:40px;font-size:13px}.legal-page h1{font:400 42px/1.2 MarginSerif,serif}.legal-page h2{font-size:24px;margin:32px 0 12px}.legal-page p{font-size:15px;line-height:1.85;max-width:72ch}.focus-mode .sidebar{display:none}.focus-mode .shell{grid-template-columns:minmax(0,1fr)}.focus-mode .main{max-width:1200px}
/* Breakpoints change structure, keeping touch controls and reading intact. */
@media(max-width:1150px){.main{padding:36px 32px 64px}.topbar{padding-inline:28px}.home-hero{gap:32px}.greeting{font-size:46px}.study-layout{grid-template-columns:minmax(0,1fr)}.topic-panel{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.topic-panel .topics{display:flex;gap:8px;overflow:auto}.topic-button{min-width:180px;max-width:240px;flex-shrink:0}.topic-actions{display:flex;flex-wrap:wrap}.course-card{grid-template-columns:minmax(0,1fr) 150px 20px;gap:24px}.auth-story{padding:48px 9%}.auth-story h1{font-size:48px}}
@media(max-width:800px){.home-hero{grid-template-columns:1fr;gap:30px;padding-top:0}.resume-space{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.resume-space small{display:inline-block;margin-left:12px}.hero-copy .library-context{margin-top:20px}.course-card{grid-template-columns:minmax(0,1fr) 24px;gap:20px}.course-card .status{grid-column:1;grid-row:2;max-width:220px}.card-arrow{grid-column:2;grid-row:1}.course-card .progress-value{font-size:18px}.course-card .status small{display:inline;margin-left:10px}.course-card h3{font-size:21px}.auth-story h1{font-size:42px}}
@media(max-width:700px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;height:auto;padding:20px 18px 12px;border-right:0;border-bottom:1px solid var(--line);display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px;overflow:visible}.sidebar .brand{margin:0;flex:1;font-size:28px}#workspace-toggle{display:block;font-size:12px}.sidebar nav{display:flex;gap:4px;overflow-x:auto;width:100%;min-width:0}.sidebar nav a{flex-shrink:0;white-space:nowrap;font-size:12px;padding:10px}.sidebar nav .ui-icon{width:16px;height:16px}.sidebar .sidebar-heading,.sidebar .course-tree,.sidebar .foot{display:none}.sidebar.navigation-expanded .sidebar-heading{display:flex;width:100%;margin:8px 4px 0}.sidebar.navigation-expanded .course-tree{display:block;width:100%;flex:none;max-height:320px;overflow:auto}.sidebar.navigation-expanded .foot{display:block;width:100%;margin-top:0}.topbar{padding:10px 18px;min-height:64px;gap:8px;flex-wrap:wrap}.topbar>span{max-width:100%;flex:1}.topbar-actions{gap:0}.topbar button{padding:10px 8px}.topbar #report{font-size:0}.topbar #report:after{content:'Report';font-size:12px}.main{padding:30px 22px calc(54px + env(safe-area-inset-bottom))}.greeting{font-size:42px}.hero-copy>p{font-size:14px}.home-hero{margin-bottom:30px;padding-bottom:28px}.resume-space h2{font-size:20px}.resume-space small{display:block;margin-left:0}.library-heading h2{font-size:21px}.library-heading button{font-size:12px;padding:10px 12px}.course-card{padding:24px 0}.course-heading{align-items:flex-start;gap:8px}.course-heading h1{font-size:26px}.course-heading button{font-size:12px;padding-left:0}.tabs{gap:24px;margin-top:16px}.tabs a{font-size:13px}.conversation #messages{padding-right:0}.message .prose{font-size:17px;line-height:1.75}.message.user{margin-left:12px;padding:18px}.question{font-size:16px;padding:18px}.composer{padding:16px;margin-top:20px}.composer textarea{font-size:16px}.composer-heading{flex-wrap:wrap;gap:4px}.keyboard-hint{font-size:11px}.composer .row.between{grid-template-columns:1fr}.composer .row.between>.row{justify-content:space-between;gap:0}.composer button[type=submit]{justify-self:end;min-width:96px;margin-top:8px}.composer .quiet{padding:10px 5px}.conversation>.row{gap:0}.conversation>.row button{padding:10px 8px}.facts{grid-template-columns:1fr;gap:12px}.checklist li{flex-wrap:wrap;gap:12px}.checklist li>button{margin-left:32px}.checklist h3{font-size:19px}.dropzone{padding:28px 20px}.dropzone h3{font-size:22px}.document-row{flex-wrap:wrap;gap:12px}.document-row .grow{min-width:130px}.memory-row{flex-wrap:wrap}.memory-row textarea{flex-basis:100%}.form-grid{grid-template-columns:1fr;gap:0}.modal-actions{grid-template-columns:1fr}dialog{padding:24px;width:calc(100% - 24px);max-height:calc(100dvh - 24px)}dialog h2{font-size:25px}.auth{grid-template-columns:1fr}.auth-story{padding:32px 26px;gap:30px}.auth-story h1{font-size:42px;max-width:450px}.auth-story .intro{font-size:14px}.auth-method,.auth-story>.muted{display:none}.auth-form{padding:66px 26px 40px}.auth-form h2{font-size:29px}.analytics-totals{grid-template-columns:1fr 1fr;gap:24px}.analytics-totals>div:nth-child(2){grid-column:1 / -1;grid-row:2}.analytics-totals strong{font-size:28px}.activity-chart{gap:4px}.activity-column small{font-size:9px}.analytics-section>.row,.analytics-course .row{align-items:flex-start}.policy-footer{gap:14px;padding:20px}.storage-notice{padding:16px 22px;margin-bottom:16px}.writing-space textarea{min-height:280px;padding:18px}.legal-page h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

.course-branch>summary:before{display:none}.course-branch>summary .ui-icon{width:14px;height:14px}.course-branch[open]>summary .ui-icon{transform:rotate(90deg)}

/* Reading follows one current explanation, question, and answer. */
.study-title{font:600 24px/1.4 MarginSans,sans-serif;margin:0 0 28px;max-width:40ch}.conversation{max-width:1500px}.conversation #messages{background:var(--surface);padding:28px 32px;border:1px solid var(--line);border-radius:10px}.message-byline{margin-bottom:20px}.message.assistant{padding:0}.study-history{margin-bottom:22px}.study-history>summary,.study-tools>summary,.topic-navigation>summary,.assessment-options>summary{cursor:pointer;padding:12px 0;font-size:14px;color:var(--muted)}.history-messages{max-height:60dvh;overflow:auto;padding:20px;background:var(--surface);border:1px solid var(--line)}.study-tools{margin-top:14px}.study-tools .row{margin-top:8px!important}.topic-panel{font-size:13px}.topic-actions{margin-top:8px}.assessment-options button{display:block;margin-top:8px;width:100%}.topic-panel .topics{margin-top:12px}.composer textarea{min-height:140px;font-size:17px;line-height:1.65}.study-layout .question{max-width:68ch}.focus-mode .main{max-width:2000px}
@media(min-width:1800px){.conversation{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);column-gap:40px;align-items:start}.study-title{grid-column:1 / -1}.study-history{grid-column:1 / -1}.conversation #messages{grid-column:1;grid-row:3 / span 3}.conversation #working{grid-column:2;grid-row:4}.conversation .composer{grid-column:2;grid-row:3;margin-top:0}.conversation .study-tools{grid-column:2;grid-row:5}.main{padding-inline:clamp(48px,3vw,100px)}}
@media(max-width:700px){.conversation #messages{padding:22px 18px}.study-title{font-size:22px;margin-bottom:20px}.question{font-size:17px;padding:20px 0}.topic-panel{padding-top:12px}.study-layout{gap:24px}.course-heading h1{font-size:23px}.course-context{margin-top:28px}}

/* Reserve the application viewport before asynchronous account rendering. */
#app{min-height:100dvh}
