:root{--bg: #f6f7f9;--surface: #ffffff;--surface-muted: #f1f3f5;--text: #111827;--text-muted: #4b5563;--border: #e5e7eb;--primary: #1d4ed8;--primary-text: #ffffff;--warning-bg: #fef3c7;--warning-border: #d97706;--warning-text: #78350f;--error-bg: #fee2e2;--error-border: #b91c1c;--error-text: #7f1d1d;--info-bg: #e0f2fe;--info-border: #0369a1;--badge-bg: #e0e7ff;--badge-text: #312e81;--code-bg: rgba(0, 0, 0, .06);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:var(--text);background:var(--bg)}@media (prefers-color-scheme: dark){:root{--bg: #0b0d12;--surface: #11141b;--surface-muted: #1a1d26;--text: #f3f4f6;--text-muted: #9ca3af;--border: #2a2f3a;--primary: #60a5fa;--primary-text: #0b0d12;--warning-bg: #422006;--warning-border: #d97706;--warning-text: #fde68a;--error-bg: #4c1818;--error-border: #f87171;--error-text: #fee2e2;--info-bg: #0c2740;--info-border: #60a5fa;--badge-bg: #312e81;--badge-text: #c7d2fe;--code-bg: rgba(255, 255, 255, .08)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--primary)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:var(--code-bg);padding:.1em .35em;border-radius:4px;font-size:.95em}.muted{color:var(--text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem 1rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;text-decoration:none}.btn:hover{background:var(--surface-muted)}.btn:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.btn--primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.btn--primary:hover{filter:brightness(.95);background:var(--primary)}.btn--ghost{background:transparent}.btn[disabled]{opacity:.6;cursor:not-allowed}.shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.shell__topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border)}.shell__brand{display:flex;align-items:baseline;gap:.5rem;font-size:1.05rem}.shell__brand-tag{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.shell__user{display:flex;align-items:center;gap:1rem;font-size:.95rem}.shell__body{flex:1;display:grid;grid-template-columns:240px minmax(0,1fr);min-height:0}.shell__nav{background:var(--surface);border-right:1px solid var(--border);padding:1rem .75rem}.shell__nav ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.shell__nav-link{display:block;padding:.55rem .75rem;border-radius:6px;color:var(--text);text-decoration:none}.shell__nav-link:hover{background:var(--surface-muted)}.shell__nav-link.is-active{background:var(--badge-bg);color:var(--badge-text);font-weight:600}.shell__main{padding:1.5rem 2rem;overflow:auto}@media (max-width: 720px){.shell__body{grid-template-columns:1fr}.shell__nav{border-right:none;border-bottom:1px solid var(--border)}}.mock-banner{display:flex;align-items:center;gap:.5rem;padding:.65rem 1.5rem;background:var(--warning-bg);border-bottom:1px solid var(--warning-border);color:var(--warning-text);font-size:.9rem}.mock-banner__dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--warning-border);display:inline-block}.page{max-width:960px}.page--centered{max-width:480px;margin:4rem auto;padding:0 1.5rem}.page__header h1{margin:0 0 .25rem;font-size:1.6rem}.page__header{margin-bottom:1.5rem}.cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.card h1{margin-top:0}.card h2{font-size:1rem;margin:0 0 .25rem;color:var(--text-muted);font-weight:500}.card__stat{font-size:2.25rem;font-weight:700;margin:0 0 .5rem}.card__link{display:inline-block;margin-top:.5rem;text-decoration:none;color:var(--primary);font-weight:600}.callout{border-left:4px solid var(--info-border);background:var(--info-bg);padding:.75rem 1rem;border-radius:0 6px 6px 0;margin:0}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.table th,.table td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table th{background:var(--surface-muted);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.list__item{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem}.list__row{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}.list__title h2{margin:0;font-size:1.05rem}.kv{display:grid;grid-template-columns:minmax(200px,max-content) 1fr;gap:.5rem 1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem}.kv dt{color:var(--text-muted);font-weight:500}.kv dd{margin:0}.actions{margin-top:1.25rem}.badge{display:inline-block;background:var(--badge-bg);color:var(--badge-text);padding:.1em .55em;border-radius:999px;font-size:.8em;font-weight:600;text-transform:lowercase}.ai-draft-labels{display:inline-flex;flex-wrap:wrap;gap:.4rem}.ai-draft-labels__badge{display:inline-block;padding:.15em .55em;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid transparent;white-space:nowrap}.ai-draft-labels__badge--draft{background:var(--badge-bg);color:var(--badge-text)}.ai-draft-labels__badge--review{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}.ai-draft-labels__badge--review.ai-draft-labels__badge--muted,.ai-draft-labels__badge--unpublished{background:var(--surface-muted);color:var(--text-muted);border-color:var(--border)}.state{background:var(--surface);border:1px dashed var(--border);border-radius:8px;padding:1.5rem;text-align:center;color:var(--text-muted)}.state h3{margin:0 0 .5rem;color:var(--text)}.state__spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-right:.5rem;vertical-align:-.15rem}@keyframes spin{to{transform:rotate(360deg)}}.state--error{border-style:solid;border-color:var(--error-border);background:var(--error-bg);color:var(--error-text)}.state--error h3,.state--error code{color:var(--error-text)}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;border:none;padding:0}.field>span,.field>legend{font-size:.85rem;font-weight:500;color:var(--text-muted)}.field input[type=text]{padding:.55rem .7rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit}.field input[type=text]:focus{outline:3px solid var(--primary);outline-offset:1px;border-color:var(--primary)}.radio{display:inline-flex;align-items:center;gap:.35rem;margin-right:.75rem;font-size:.95rem}.error{color:var(--error-text);background:var(--error-bg);border:1px solid var(--error-border);border-radius:6px;padding:.5rem .75rem;margin:0 0 1rem}.privacy-banner{display:flex;align-items:flex-start;gap:.65rem;padding:.75rem 1rem;background:var(--info-bg);border:1px solid var(--info-border);border-radius:6px;margin:0 0 1.25rem}.privacy-banner p{margin:0;font-size:.95rem}.privacy-banner__icon{font-weight:700;color:var(--info-border)}.progress{position:relative;display:inline-flex;align-items:center;width:100%;min-width:100px;height:1.25rem;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border);overflow:hidden}.progress--wide{min-width:220px;max-width:320px}.progress__bar{position:absolute;top:0;right:0;bottom:0;left:0;width:0;background:var(--primary);opacity:.85;transition:width .2s ease-out}.progress__label{position:relative;font-size:.78rem;font-weight:600;margin:0 auto;padding:0 .5rem;color:var(--text);background:transparent}.socratic-actions{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:.5rem 0 1rem}.socratic-actions__btn{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:.2rem;padding:.75rem .9rem;white-space:normal}.socratic-actions__btn.is-selected{filter:none}.socratic-actions__label{font-weight:600}.socratic-actions__desc{font-size:.8rem;color:var(--text-muted)}.socratic-actions__btn.is-selected .socratic-actions__desc{color:var(--primary-text);opacity:.85}.tutor{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:1.25rem}@media (max-width: 720px){.tutor{grid-template-columns:1fr}}.tutor__list-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 .5rem}.tutor__list-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;background:transparent;border:none;padding:0;cursor:pointer;font:inherit;color:var(--text);text-align:left}.tutor__list-title-row{font-weight:600}.list__item--active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.tutor__problem{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.tutor__problem h3{margin:1rem 0 .5rem;font-size:1rem}.tutor__prompt{margin:0 0 1rem;white-space:pre-wrap}.tutor__pending{font-size:.85rem;margin-top:.5rem}.transcript{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.65rem}.transcript__row{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem}.transcript__row--student{background:var(--surface-muted)}.transcript__meta{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-muted);margin-bottom:.35rem}.transcript__role{font-weight:600;color:var(--text)}.transcript__draft-badge{background:var(--warning-bg);color:var(--warning-text);border:1px solid var(--warning-border)}.transcript__body{margin:0;white-space:pre-wrap}.compose{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.compose__input{resize:vertical;padding:.6rem .75rem;font:inherit;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.compose__input:disabled{background:var(--surface-muted);color:var(--text-muted)}
