:root,[data-theme=default]{--paper: #f4ede0;--paper-2: #ece4d2;--surface: #fdfbf5;--ink: #1c1a14;--ink-2: #3a362c;--muted: #76705f;--rule: #d4cab2;--rule-soft: #e3dcc6;--accent: #1f4d3f;--accent-soft: #c8d7d0;--warn: #b8541c;--warn-soft: #ebd1bc;--ok: #5a7d3a;--ok-soft: #d4dfc1;--font-display: "Instrument Serif", serif;--font-body: "Newsreader", serif;--font-mono: "JetBrains Mono", monospace;--radius: 6px;--radius-lg: 10px;--radius-xl: 14px;--shadow-sm: 0 1px 3px rgba(28, 26, 20, .06);--shadow-md: 0 4px 12px rgba(28, 26, 20, .08);--shadow-lg: 0 8px 24px rgba(28, 26, 20, .1);--transition: .2s ease;--transition-slow: .4s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);line-height:1.6;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh}.app-loading-spinner{width:32px;height:32px;border:3px solid var(--rule);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:var(--surface);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:100}.header-brand{font-family:var(--font-display);font-size:1.5rem;color:var(--accent);text-decoration:none;font-style:italic}.header-nav{display:flex;align-items:center;gap:1rem}.header-user{display:flex;align-items:center;gap:.75rem}.header-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:var(--accent);overflow:hidden}.header-avatar img{width:100%;height:100%;object-fit:cover}.header-username{font-size:.875rem;color:var(--ink-2)}.role-badge{font-size:.675rem;text-transform:uppercase;letter-spacing:.05em;padding:.2em .6em;border-radius:3px;background:var(--accent-soft);color:var(--accent);font-weight:500;font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:var(--font-body);font-size:.875rem;border-radius:var(--radius);border:1px solid var(--rule);background:var(--surface);color:var(--ink-2);cursor:pointer;transition:all var(--transition);text-decoration:none;white-space:nowrap}.btn:hover{background:var(--paper-2);border-color:var(--muted)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:#17392e;border-color:#17392e}.btn-danger{color:var(--warn);border-color:var(--warn-soft)}.btn-danger:hover{background:var(--warn-soft)}.btn-sm{padding:.3rem .7rem;font-size:.8rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;gap:2rem}.login-brand{text-align:center}.login-brand h1{font-family:var(--font-display);font-size:3rem;color:var(--accent);font-style:italic;margin-bottom:.5rem}.login-brand p{color:var(--muted);font-size:1.1rem}.login-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-xl);padding:2.5rem;box-shadow:var(--shadow-md);width:100%;max-width:400px;text-align:center}.login-card h2{font-family:var(--font-display);font-size:1.5rem;margin-bottom:1.5rem;color:var(--ink)}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.75rem 1.5rem;font-size:1rem;font-family:var(--font-body);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition)}.oauth-btn:hover{background:var(--paper-2);box-shadow:var(--shadow-sm)}.oauth-btn svg{width:20px;height:20px}.login-divider{display:flex;align-items:center;gap:1rem;margin:1.25rem 0;color:var(--muted);font-size:.8rem}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--rule)}.login-card .form-group{margin-bottom:.75rem}.login-card .form-group input{width:100%;padding:.7rem 1rem;font-size:.95rem;text-align:left}.login-submit{width:100%;padding:.75rem;font-size:1rem;margin-top:.25rem}.login-error{color:var(--warn);font-size:.85rem;background:var(--warn-soft);padding:.6rem .8rem;border-radius:var(--radius);margin-bottom:1rem;text-align:left}.login-message{color:var(--ok);font-size:.85rem;background:var(--ok-soft);padding:.6rem .8rem;border-radius:var(--radius);margin-bottom:1rem;text-align:left}.login-link{background:none;border:none;color:var(--accent);font-family:var(--font-body);font-size:.85rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.login-link:hover{color:var(--ink)}.login-switch{margin-top:1.25rem;font-size:.85rem;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition)}.card:hover{box-shadow:var(--shadow-md)}.card-title{font-family:var(--font-display);font-size:1.25rem;margin-bottom:.5rem;color:var(--ink)}.card-meta{font-size:.8rem;color:var(--muted);margin-bottom:.75rem}.card-description{font-size:.9rem;color:var(--ink-2);line-height:1.5}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.dashboard{display:flex;flex-direction:column;gap:2rem}.dashboard-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.dashboard-header h1{font-family:var(--font-display);font-size:2rem;color:var(--ink)}.section-title{font-family:var(--font-display);font-size:1.5rem;color:var(--ink);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--rule-soft)}.stats-row{display:flex;gap:1rem;flex-wrap:wrap}.stat-card{flex:1;min-width:150px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.25rem;text-align:center}.stat-value{font-family:var(--font-display);font-size:2rem;color:var(--accent)}.stat-label{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--radius-lg)}table{width:100%;border-collapse:collapse;font-size:.9rem}thead{background:var(--paper-2)}th,td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--rule-soft)}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:500}tr:last-child td{border-bottom:none}tr:hover td{background:var(--paper)}.chat-layout{display:grid;grid-template-columns:1fr 360px;gap:1.5rem;align-items:start;max-width:1200px;margin:0 auto}.chat{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-md);display:flex;flex-direction:column;min-height:600px;max-height:calc(100vh - 160px)}.chat-head{padding:1rem 1.5rem .75rem;border-bottom:1px solid var(--rule-soft);display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.topic-name{font-family:var(--font-display);font-style:italic;font-size:1.4rem;line-height:1.2;color:var(--accent)}.chat-head-meta{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);white-space:nowrap}.chat-messages{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;scroll-behavior:smooth}.msg{margin-bottom:1rem;display:flex;flex-direction:column;animation:fadeIn .35s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.msg .who{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:3px}.msg.tutor .who{color:var(--accent)}.msg.learner .who{color:var(--ink-2);text-align:right}.msg.system .who{color:var(--warn)}.msg .bubble{font-family:var(--font-body);font-size:1rem;line-height:1.55;max-width:88%;padding:4px 0}.msg.learner .bubble{align-self:flex-end;text-align:right;color:var(--ink-2);font-style:italic}.msg.tutor .bubble{color:var(--ink)}.msg.tutor.move-seed .bubble{font-family:var(--font-display);font-size:1.3rem;line-height:1.25;color:var(--accent);border-left:2px solid var(--accent);padding-left:1rem;margin-left:-2px}.msg.tutor.move-assertion .bubble{background:var(--ok-soft);padding:.6rem .9rem;border-left:2px solid var(--ok);border-radius:2px}.msg.tutor.move-correction .bubble{background:var(--warn-soft);padding:.6rem .9rem;border-left:2px solid var(--warn);border-radius:2px}.msg.system .bubble{font-family:var(--font-mono);font-size:.75rem;color:var(--muted);background:var(--paper-2);padding:.5rem .75rem;border-radius:2px}.msg .move-tag{font-family:var(--font-mono);font-size:.55rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-top:3px;opacity:.6}.typing{display:inline-flex;gap:4px;align-items:center;padding:4px 0}.typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:bounce 1.2s infinite ease-in-out}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-3px);opacity:1}}.chat-head-controls{display:flex;gap:.5rem;align-items:center}.bubble-pair{display:flex;flex-direction:column;gap:0;max-width:88%}.bubble-comment{font-size:.9rem;line-height:1.5;color:var(--ink-2);padding:.5rem .75rem;background:var(--paper-2);border-radius:var(--radius) var(--radius) 0 0;border-left:2px solid var(--muted)}.bubble-action{font-size:1rem;line-height:1.5;color:var(--ink);padding:.5rem .75rem;background:var(--surface);border:1px solid var(--rule-soft);border-top:none;border-radius:0 0 var(--radius) var(--radius)}.bubble-action.move-hint,.bubble-action.move-prompt{border-left:2px solid var(--accent)}.bubble-action.move-pump{border-left:2px solid var(--muted)}.bubble-action.move-assertion{background:var(--ok-soft);border-left:2px solid var(--ok)}.bubble-action.move-correction{background:var(--warn-soft);border-left:2px solid var(--warn)}.bubble-action.move-transition{border-left:2px solid var(--accent);color:var(--accent)}.reason-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.6rem;font-weight:700;font-family:var(--font-mono);cursor:help;margin-left:.4rem;vertical-align:middle;position:relative}.reason-badge:hover:after{content:attr(data-reason);position:absolute;bottom:120%;left:50%;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:.4rem .6rem;border-radius:var(--radius);font-size:.75rem;font-weight:400;font-family:var(--font-body);white-space:normal;width:max-content;max-width:280px;z-index:10;line-height:1.4;box-shadow:var(--shadow-md)}.speak-btn-inline{background:none;border:none;cursor:pointer;font-size:.65rem;opacity:.4;transition:opacity .15s;padding:0 2px;vertical-align:middle;margin-left:2px}.speak-btn-inline:hover{opacity:1}.speak-btn{background:none;border:none;cursor:pointer;font-size:.8rem;opacity:0;transition:opacity .15s;padding:2px 4px;margin-top:2px}.msg:hover .speak-btn{opacity:.6}.speak-btn:hover{opacity:1!important}.voice-btn{font-size:1.1rem;background:var(--surface);border:1px solid var(--rule);border-radius:50%;width:36px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.voice-btn:hover{border-color:var(--accent)}.voice-btn.listening{background:var(--warn-soft);border-color:var(--warn);animation:pulse-voice 1.5s infinite}@keyframes pulse-voice{0%,to{box-shadow:0 0 #b8541c4d}50%{box-shadow:0 0 0 8px #b8541c00}}.voice-btn:disabled{opacity:.4;cursor:not-allowed}.scope-scenario p,.scope-seed p{font-size:.85rem;line-height:1.5;color:var(--ink-2);margin:0}.scope-scenario p{font-style:italic}.scope-seed p{color:var(--accent);font-family:var(--font-display);font-size:.95rem}.scope-divider{height:1px;background:var(--rule-soft);margin:.75rem 0}.progress-report-inline{margin-top:.75rem}.progress-report-inline .progress-report-summary{font-size:.85rem;line-height:1.55;color:var(--ink);padding:.6rem;background:var(--paper);border-radius:var(--radius);border-left:3px solid var(--accent)}.exp-friendly-status{font-size:.85rem;color:var(--ink-2);padding:.15rem 0}.exp-row.met .exp-friendly-status{color:var(--ok)}.exp-row.current .exp-friendly-status{color:var(--accent);font-weight:500}.exp-row.told .exp-friendly-status{color:var(--muted)}.scope-friendly{display:flex;flex-direction:column;gap:.6rem}.scope-friendly-row{display:flex;flex-direction:column;gap:.15rem;font-size:.85rem}.scope-friendly-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-family:var(--font-mono)}.progress-report{padding:1.25rem 1.5rem;background:var(--surface);border-top:1px solid var(--rule);animation:fadeIn .3s ease}.progress-report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.progress-report-header h3{font-family:var(--font-display);font-size:1.1rem;margin:0}.progress-report-bar{margin-bottom:1rem}.progress-report-topics{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.progress-topic{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--ink-2);padding:.25rem 0}.progress-topic.met{color:var(--ok)}.progress-topic.told{color:var(--muted)}.progress-topic-icon{width:1rem;text-align:center;font-weight:600}.progress-topic-label{flex:1}.progress-topic-status{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.progress-report-summary{font-size:.9rem;line-height:1.6;color:var(--ink);padding:.75rem;background:var(--paper);border-radius:var(--radius);border-left:3px solid var(--accent)}.tutor-thinking{display:flex;align-items:center;gap:.6rem}.thinking-text{font-family:var(--font-mono);font-size:.7rem;color:var(--muted);animation:fadeIn .3s ease}.composer{border-top:1px solid var(--rule-soft);padding:.75rem 1rem;display:flex;gap:.6rem;background:var(--paper);border-radius:0 0 var(--radius) var(--radius)}.composer input{flex:1;font-family:var(--font-body);font-size:1rem;background:var(--surface);border:1px solid var(--rule);padding:.6rem .9rem;border-radius:2px;color:var(--ink);outline:none;transition:border-color .15s}.composer input:focus{border-color:var(--accent)}.composer input:disabled{opacity:.5;cursor:not-allowed}.composer button{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:.5rem 1.1rem;border-radius:2px;cursor:pointer;transition:background .15s}.composer button:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.composer button:disabled{opacity:.4;cursor:not-allowed}.scope{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1.25rem;font-size:.85rem;position:sticky;top:80px;max-height:calc(100vh - 100px);overflow-y:auto}.scope h2{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin:0 0 .25rem;font-weight:500}.scope h3{font-family:var(--font-display);font-weight:400;font-size:1.1rem;margin:1rem 0 .5rem;color:var(--ink);border-bottom:1px solid var(--rule-soft);padding-bottom:4px}.scope h3:first-of-type{margin-top:.5rem}.exp-row{display:flex;align-items:flex-start;gap:.6rem;padding:.5rem 0;border-bottom:1px dashed var(--rule-soft);font-size:.8rem}.exp-row:last-child{border-bottom:none}.exp-row .dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--rule);background:var(--surface);margin-top:2px;flex-shrink:0;transition:all .25s}.exp-row.current .dot{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px #1f4d3f1f}.exp-row.met .dot{border-color:var(--ok);background:var(--ok)}.exp-row.told .dot{border-color:var(--muted);background:var(--rule)}.exp-row .body{flex:1;min-width:0}.exp-row .id-label{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.exp-row.current .id-label{color:var(--accent)}.exp-row.met .id-label{color:var(--ok)}.exp-row .crit{font-family:var(--font-mono);font-size:.55rem;text-transform:uppercase;letter-spacing:.1em;color:var(--warn);margin-left:4px}.kv{display:grid;grid-template-columns:90px 1fr;gap:2px 8px;font-family:var(--font-mono);font-size:.7rem}.kv dt{color:var(--muted)}.kv dd{margin:0;color:var(--ink)}.kv dd.score-high{color:var(--ok);font-weight:600}.kv dd.score-mid{color:var(--warn)}.kv dd.score-low{color:var(--muted)}.kv dd.flag{color:var(--warn);font-weight:600}.coverage-bar{height:6px;background:var(--paper-2);border-radius:3px;overflow:hidden;margin:.5rem 0 .25rem}.coverage-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--ok));transition:width .5s ease-out}.coverage-num{font-family:var(--font-mono);font-size:.65rem;color:var(--muted);letter-spacing:.04em}.scope-panel{display:none}.expectation-dots{display:flex;gap:6px;flex-wrap:wrap}.expectation-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--rule);background:transparent;transition:all var(--transition)}.expectation-dot.current{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.expectation-dot.met{border-color:var(--ok);background:var(--ok)}.expectation-dot.told{border-color:var(--muted);background:var(--muted)}.coverage-bar{height:6px;background:var(--rule-soft);border-radius:3px;overflow:hidden}.coverage-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width var(--transition-slow)}.engine-state{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-2);padding:.5rem;background:var(--paper);border-radius:var(--radius)}.llm-selector{padding:.4rem .7rem;font-size:.8rem;font-family:var(--font-mono);border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);color:var(--ink-2);outline:none}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.form-group label{font-size:.8rem;font-weight:500;color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em}.form-group input,.form-group textarea,.form-group select{padding:.6rem .8rem;font-family:var(--font-body);font-size:.9rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);color:var(--ink);outline:none;transition:border-color var(--transition)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent)}.form-group textarea{resize:vertical;min-height:200px;font-family:var(--font-mono);font-size:.825rem;line-height:1.5}.embed-loader{display:flex;align-items:center;justify-content:center;min-height:100vh}.embed-loader-card{text-align:center;padding:3rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);max-width:400px}.embed-loader-card h2{font-family:var(--font-display);margin-bottom:1rem}.api-doc{max-width:860px;margin:0 auto;padding:2rem}.api-doc-header{margin-bottom:2rem}.api-doc-header h1{font-family:var(--font-display);font-size:2rem;color:var(--accent)}.api-doc-header p{color:var(--ink-2);font-size:1.05rem}.api-doc-section{margin-bottom:2.5rem}.api-doc-section h2{font-family:var(--font-display);font-size:1.4rem;margin-bottom:.75rem;border-bottom:1px solid var(--rule-soft);padding-bottom:.3rem}.api-doc-section h3{font-size:1rem;margin:1.25rem 0 .5rem;color:var(--ink)}.api-doc-section h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:.75rem 0 .25rem}.api-doc-section p{font-size:.9rem;color:var(--ink-2);line-height:1.6}.api-doc-steps{padding-left:1.5rem;font-size:.9rem;line-height:2;color:var(--ink-2)}.api-doc-code{background:var(--paper);border:1px solid var(--rule-soft);border-radius:var(--radius);padding:.75rem 1rem;font-family:var(--font-mono);font-size:.8rem;line-height:1.6;overflow-x:auto;white-space:pre-wrap;word-break:break-all;margin:.5rem 0}.api-doc-endpoint{display:flex;align-items:center;gap:.5rem;margin:.5rem 0}.api-doc-method{font-family:var(--font-mono);font-size:.7rem;font-weight:600;padding:.2rem .5rem;border-radius:3px;text-transform:uppercase}.api-doc-method.get{background:var(--accent-soft);color:var(--accent)}.api-doc-method.post{background:var(--ok-soft);color:var(--ok)}.api-doc-method.put{background:var(--warn-soft);color:var(--warn)}.api-doc-method.delete{background:#dc32321a;color:#c33}.api-doc-table{display:flex;flex-direction:column;gap:.3rem}.api-doc-row{display:flex;align-items:center;gap:.6rem;padding:.4rem 0;font-size:.85rem;border-bottom:1px solid var(--rule-soft)}.api-doc-row code{font-size:.8rem;color:var(--ink);min-width:280px}.api-doc-row span:last-child{color:var(--muted);font-size:.8rem}.api-doc-example-label{font-size:.75rem;color:var(--muted);margin:.5rem 0 .25rem}.about-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1a1473;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.about-dialog{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-xl);box-shadow:0 24px 80px #1c1a1440;max-width:620px;width:92vw;max-height:85vh;overflow-y:auto}.about-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.75rem;border-bottom:1px solid var(--rule-soft)}.about-header h2{font-family:var(--font-display);font-size:1.5rem;font-weight:400;margin:0}.about-header h2 em{color:var(--accent);font-style:italic}.about-body{padding:1.5rem 1.75rem;line-height:1.7;color:var(--ink-2)}.about-body p{margin-bottom:1rem}.about-lead{font-size:1.05rem;color:var(--ink)}.about-dedication{font-style:italic;color:var(--accent);padding:1rem;background:var(--accent-soft);border-radius:var(--radius);border-left:3px solid var(--accent)}.about-divider{height:1px;background:var(--rule-soft);margin:1.25rem 0}.about-footer-note{margin-top:1.5rem;padding:1rem;background:var(--paper);border-radius:var(--radius);text-align:center;font-size:.95rem;color:var(--ink);line-height:1.6}.usage-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin:1.5rem 0}.usage-stat{text-align:center;padding:1rem .5rem;background:var(--paper);border-radius:var(--radius-lg)}.usage-stat-value{font-family:var(--font-display);font-size:2rem;color:var(--accent)}.usage-stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:.2rem}.usage-equivalents p{text-align:center;color:var(--muted);font-size:.9rem}.usage-eq-grid{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.usage-eq-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--paper);border-radius:var(--radius)}.usage-eq-icon{font-size:1.5rem}.usage-eq-value{font-family:var(--font-display);font-size:1.3rem;color:var(--accent);min-width:50px}.usage-eq-label{font-size:.85rem;color:var(--ink-2)}.donate-section h3{font-family:var(--font-display);font-size:1.2rem;margin-bottom:.5rem}.donate-section p{font-size:.9rem;color:var(--ink-2)}.donate-list{padding-left:1.25rem;font-size:.85rem;color:var(--ink-2);line-height:1.7;margin:.5rem 0 1.25rem}.donate-tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1rem}.donate-tier{text-align:center;padding:.75rem .5rem;border:2px solid var(--rule);border-radius:var(--radius-lg);cursor:pointer;transition:all .15s}.donate-tier:hover{border-color:var(--accent);background:var(--accent-soft)}.donate-tier.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent)}.donate-tier-amount{font-family:var(--font-display);font-size:1.5rem;color:var(--accent)}.donate-tier-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:.15rem 0}.donate-tier-desc{font-size:.7rem;color:var(--ink-2)}.donate-custom{margin-top:.75rem}.donate-custom label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.donate-input{padding:.5rem .75rem;border:1px solid var(--rule);border-radius:var(--radius);font-size:1rem;width:120px;font-family:var(--font-mono);background:var(--surface);color:var(--ink);outline:none}.donate-input:focus{border-color:var(--accent)}.adopt-section h3{font-family:var(--font-display);font-size:1.1rem;margin-bottom:.5rem}.adopt-section p{font-size:.9rem;color:var(--ink-2);line-height:1.6}.adopt-contact{margin-top:.75rem;padding:1rem;background:var(--accent-soft);border-radius:var(--radius-lg);border-left:3px solid var(--accent)}.adopt-contact p{margin:.15rem 0;color:var(--ink)}.adopt-contact a{color:var(--accent);font-weight:500}@media(max-width:600px){.usage-stats,.donate-tiers{grid-template-columns:repeat(2,1fr)}}.la-tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);margin-bottom:1.25rem}.la-tab{padding:.5rem 1rem;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer}.la-tab:hover{color:var(--ink)}.la-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.la-bar{height:6px;background:var(--paper-2);border-radius:3px;overflow:hidden;position:relative;min-width:60px}.la-bar-fill{height:100%;border-radius:3px;transition:width .3s;background:var(--accent)}.la-bar-label{font-family:var(--font-mono);font-size:.65rem;color:var(--muted);margin-left:.3rem}.la-distribution,.la-misc-list{display:flex;flex-direction:column;gap:.4rem}.la-dist-row,.la-misc-item{display:flex;align-items:center;gap:.6rem;font-size:.8rem}.la-dist-label{font-family:var(--font-mono);font-size:.7rem;color:var(--muted);min-width:50px;text-align:right}.la-dist-count{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-2);min-width:30px;text-align:right}.la-misc-id{font-family:var(--font-mono);font-size:.7rem;color:var(--warn);min-width:40px}.la-lesson-card{border:1px solid var(--rule-soft);border-radius:var(--radius-lg);margin-bottom:.75rem;overflow:hidden}.la-lesson-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;cursor:pointer;transition:background .1s}.la-lesson-header:hover{background:var(--paper)}.la-lesson-stats{display:flex;gap:1rem;font-family:var(--font-mono);font-size:.7rem;color:var(--muted);align-items:center}.la-expectations{padding:0 1rem 1rem}.la-moves{display:flex;flex-direction:column;gap:.75rem}.la-move-row{display:flex;align-items:center;gap:.75rem}.la-move-info{min-width:180px}.la-move-label{font-size:.85rem;font-weight:500;color:var(--ink);display:block}.la-move-desc{font-size:.7rem;color:var(--muted)}.la-move-count{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-2);min-width:40px;text-align:right}.mp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.mp-header h2{font-family:var(--font-display);font-size:1.5rem;margin:0}.mp-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem}.mp-stat{text-align:center;padding:1rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg)}.mp-stat-value{font-family:var(--font-display);font-size:2rem;color:var(--accent)}.mp-stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:.2rem}.mp-section{margin-bottom:1.5rem}.mp-section h3{font-family:var(--font-display);font-size:1.1rem;margin-bottom:.75rem;border-bottom:1px solid var(--rule-soft);padding-bottom:.3rem}.mp-achievements{display:flex;flex-wrap:wrap;gap:.6rem}.mp-achievement{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);min-width:200px}.mp-ach-icon{font-size:1.5rem}.mp-ach-title{font-weight:600;font-size:.85rem;color:var(--ink)}.mp-ach-desc{font-size:.7rem;color:var(--muted)}.mp-domain-map{display:flex;flex-direction:column;gap:1rem}.mp-domain{border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1rem;background:var(--surface)}.mp-domain-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.mp-domain-name{font-family:var(--font-display);font-size:1.2rem;color:var(--accent)}.mp-domain-meta{font-family:var(--font-mono);font-size:.65rem;color:var(--muted);margin-left:.75rem}.mp-subdomain{margin-bottom:.5rem}.mp-subdomain-name{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-family:var(--font-mono);margin-bottom:.3rem}.mp-concepts{display:flex;flex-direction:column;gap:.2rem}.mp-concept{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.2rem 0}.mp-concept-check{color:var(--ok);font-weight:600}.mp-concept-name{flex:1;color:var(--ink)}.mp-concept-score{font-family:var(--font-mono);font-size:.75rem;font-weight:600}.mp-concept-score.high{color:var(--ok)}.mp-concept-score.mid{color:var(--warn)}.mp-concept-score.low{color:var(--muted)}.mp-concept-date{font-family:var(--font-mono);font-size:.6rem;color:var(--muted)}.mp-misconceptions{display:flex;flex-direction:column;gap:.5rem}.mp-misc{display:flex;gap:.6rem;padding:.75rem;border-radius:var(--radius-lg);border:1px solid var(--rule-soft)}.mp-misc.corrected{background:var(--ok-soft);border-color:#5a7d3a33}.mp-misc.open{background:var(--warn-soft);border-color:#b8541c33}.mp-misc-icon{font-size:1.1rem;margin-top:.1rem}.mp-misc.corrected .mp-misc-icon{color:var(--ok)}.mp-misc.open .mp-misc-icon{color:var(--warn)}.mp-misc-body{flex:1}.mp-misc-label{font-weight:600;font-size:.85rem;color:var(--ink)}.mp-misc-text{font-size:.8rem;color:var(--ink-2);margin-top:.15rem;font-style:italic}.mp-misc-meta{font-family:var(--font-mono);font-size:.6rem;color:var(--muted);margin-top:.25rem}@media(max-width:600px){.mp-overview{grid-template-columns:repeat(2,1fr)}}.dashboard.compact .dashboard-header h1{font-size:1.5rem}.compact-enrollment{margin-bottom:1rem}.compact-enrollment .enrollment-section{padding:.75rem 1rem;margin-bottom:0}.compact-enrollment .enrollment-section h3{display:none}.section-title-sm{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.5rem;padding-bottom:.3rem;border-bottom:1px solid var(--rule-soft)}.compact-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;border-bottom:1px solid var(--rule-soft);font-size:.85rem;transition:background .1s}.compact-row:last-child{border-bottom:none}.compact-row:hover{background:var(--paper)}.compact-row.active-row{cursor:pointer}.compact-row.archived{opacity:.6}.compact-status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.active-dot{background:var(--ok);box-shadow:0 0 0 2px var(--ok-soft)}.completed-dot{background:var(--accent)}.compact-title{flex:1;font-weight:500;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-meta{font-family:var(--font-mono);font-size:.65rem;color:var(--muted);white-space:nowrap}.compact-score{font-family:var(--font-mono);font-size:.75rem;color:var(--accent);font-weight:600;min-width:35px;text-align:right}.compact-badge{font-family:var(--font-mono);font-size:.55rem;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .4rem;border-radius:3px;white-space:nowrap;flex-shrink:0}.compact-badge.enrolled{background:var(--accent-soft);color:var(--accent)}.compact-badge.self-study{background:var(--ok-soft);color:var(--ok)}.compact-badge.public{background:var(--paper-2);color:var(--muted)}.badge-private{background:var(--warn-soft);color:var(--warn)}.visibility-toggle{display:flex;gap:1rem;margin-bottom:1.5rem}.visibility-option{flex:1;display:flex;flex-direction:column;gap:.2rem;padding:1rem;border:2px solid var(--rule);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition)}.visibility-option:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.visibility-option input{display:none}.visibility-label{font-family:var(--font-display);font-size:1.1rem;color:var(--ink)}.visibility-desc{font-size:.8rem;color:var(--muted)}.curriculum-editor{display:flex;flex-direction:column;gap:0}.ce-tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);margin-bottom:1.5rem;flex-wrap:wrap}.ce-tab{padding:.6rem 1.2rem;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;transition:all .15s}.ce-tab:hover{color:var(--ink)}.ce-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.ce-section{display:flex;flex-direction:column;gap:1rem}.ce-field{display:flex;flex-direction:column;gap:.3rem}.ce-field label{font-size:.75rem;font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em}.ce-field input,.ce-field textarea,.ce-field select{padding:.6rem .8rem;font-family:var(--font-body);font-size:.9rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);color:var(--ink);outline:none;transition:border-color .15s}.ce-field input:focus,.ce-field textarea:focus{border-color:var(--accent)}.ce-field textarea{font-family:var(--font-body);resize:vertical;min-height:60px;line-height:1.5}.ce-hint{font-size:.75rem;color:var(--muted);font-style:italic;margin:0}.ce-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.ce-card{background:var(--paper);border:1px solid var(--rule-soft);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;margin-bottom:.5rem}.ce-card-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.ce-card-id{font-family:var(--font-mono);font-size:.7rem;font-weight:600;background:var(--accent-soft);color:var(--accent);padding:.2rem .5rem;border-radius:3px;white-space:nowrap}.ce-card-label{flex:1;font-family:var(--font-display);font-size:1rem;border:none;background:transparent;color:var(--ink);border-bottom:1px dashed var(--rule);outline:none;min-width:150px}.ce-card-label:focus{border-bottom-color:var(--accent)}.ce-inline{display:flex;gap:.5rem;align-items:center;margin-bottom:.3rem}.ce-inline input{flex:1}.ce-json{font-family:var(--font-mono);font-size:.7rem;line-height:1.5;background:var(--paper);border:1px solid var(--rule-soft);border-radius:var(--radius);padding:1rem;overflow:auto;max-height:500px;color:var(--ink-2)}.lesson-editor{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.editor-pane{display:flex;flex-direction:column;gap:1rem}.spec-preview{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.25rem;font-size:.85rem;overflow-y:auto;max-height:500px}.spec-preview h4{font-family:var(--font-display);font-size:1rem;margin-bottom:.75rem}.spec-preview ul{padding-left:1.25rem;color:var(--ink-2)}.spec-preview li{margin-bottom:.4rem}.validation-error{color:var(--warn);font-size:.8rem;font-family:var(--font-mono);padding:.5rem;background:var(--warn-soft);border-radius:var(--radius)}.progress-bar{height:4px;background:var(--rule-soft);border-radius:2px;overflow:hidden;margin-top:.5rem}.progress-bar-fill{height:100%;background:var(--ok);border-radius:2px;transition:width var(--transition-slow)}.session-status{font-size:.75rem;font-family:var(--font-mono);padding:.2em .5em;border-radius:3px}.session-status.active{background:var(--ok-soft);color:var(--ok)}.session-status.completed{background:var(--accent-soft);color:var(--accent)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--paper-2);border:1px solid var(--rule);border-radius:50%;cursor:pointer;transition:all var(--transition);padding:0}.theme-toggle:hover{background:var(--rule)}.theme-toggle-icon{font-size:14px;line-height:1}.landing{min-height:100vh;overflow-x:hidden;position:relative}.landing-video-bg{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden}.landing-video-bg video{width:100%;height:100%;object-fit:cover}.landing-video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#f4ede0d9,#f4ede0bf,#f4ede0cc 60%,#f4ede0eb)}.landing-nav{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2.5rem;position:sticky;top:0;z-index:100;background:#fdfbf5d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}.landing-nav-brand{font-family:var(--font-display);font-size:1.5rem;color:var(--ink)}.landing-nav-brand em{color:var(--accent);font-style:italic}.landing-nav-actions{display:flex;align-items:center;gap:1rem}.landing-hero{text-align:center;padding:6rem 2rem 4rem;max-width:800px;margin:0 auto}.landing-hero-title{font-family:var(--font-display);font-size:4rem;line-height:1.1;color:var(--ink);margin-bottom:1.5rem}.landing-hero-title em{color:var(--accent);font-style:italic}.landing-hero-sub{font-size:1.2rem;color:var(--ink-2);line-height:1.7;max-width:600px;margin:0 auto 2.5rem}.landing-hero-actions{display:flex;gap:1rem;justify-content:center}.landing-showcase{padding:0 2rem 4rem;max-width:700px;margin:0 auto}.landing-showcase-window{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.showcase-bar{display:flex;gap:6px;padding:12px 16px;background:var(--paper-2);border-bottom:1px solid var(--rule-soft)}.showcase-dot{width:10px;height:10px;border-radius:50%;background:var(--rule)}.showcase-content{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.showcase-msg{padding:.75rem 1rem;border-radius:var(--radius-lg);font-size:.9rem;line-height:1.5;max-width:85%}.showcase-bar-title{font-family:var(--font-mono);font-size:.6rem;color:var(--muted);margin-left:auto;letter-spacing:.06em}.showcase-msg .showcase-label{display:block;font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.3rem}.showcase-msg.tutor{background:var(--paper-2);border:1px solid var(--rule-soft);align-self:flex-start}.showcase-msg.tutor.hint{border-left:3px solid var(--accent)}.showcase-msg.tutor.success{background:var(--ok-soft);border:1px solid var(--ok)}.showcase-msg.learner{background:var(--accent);color:#fff;align-self:flex-end}.showcase-msg.learner .showcase-label{color:#ffffffb3}.showcase-msg.typing-live{opacity:.9}.showcase-cursor{display:inline-block;animation:blink .6s infinite;font-weight:300;color:#fff9}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.showcase-dots{display:inline-flex;gap:3px;align-items:center}.showcase-dots span{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:bounce 1.2s infinite ease-in-out}.showcase-dots span:nth-child(2){animation-delay:.15s}.showcase-dots span:nth-child(3){animation-delay:.3s}.showcase-bubble-pair{display:flex;flex-direction:column;margin-top:.25rem}.showcase-comment{font-size:.85rem;color:var(--ink-2);padding:.4rem .6rem;background:var(--paper-2);border-radius:var(--radius) var(--radius) 0 0;border-left:2px solid var(--muted)}.showcase-action{font-size:.9rem;color:var(--ink);padding:.4rem .6rem;background:var(--surface);border:1px solid var(--rule-soft);border-top:none;border-radius:0 0 var(--radius) var(--radius)}.showcase-action.move-hint{border-left:2px solid var(--accent)}.showcase-action.move-transition{border-left:2px solid var(--accent);color:var(--accent)}.showcase-reason{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.55rem;font-weight:700;cursor:help;margin-left:.3rem;vertical-align:middle;position:relative}.showcase-reason:hover:after{content:attr(data-reason);position:absolute;bottom:120%;left:50%;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:.4rem .6rem;border-radius:var(--radius);font-size:.75rem;font-weight:400;font-family:var(--font-body);white-space:normal;width:max-content;max-width:280px;z-index:10;line-height:1.4;box-shadow:var(--shadow-md)}.showcase-content{max-height:380px;overflow-y:auto;scroll-behavior:smooth}.showcase-nav{display:flex;justify-content:center;gap:.5rem;margin-top:1rem}.showcase-nav-dot{font-family:var(--font-mono);font-size:.65rem;padding:.3rem .75rem;border:1px solid var(--rule);border-radius:980px;background:var(--surface);color:var(--muted);cursor:pointer;transition:all .2s}.showcase-nav-dot:hover{border-color:var(--accent);color:var(--ink)}.showcase-nav-dot.active{background:var(--accent);color:#fff;border-color:var(--accent)}.landing-features{padding:4rem 2rem;max-width:1100px;margin:0 auto}.landing-section-title{font-family:var(--font-display);font-size:2.25rem;text-align:center;margin-bottom:2.5rem;color:var(--ink)}.landing-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.landing-feature{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:2rem 1.5rem;transition:box-shadow var(--transition),transform var(--transition)}.landing-feature:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.landing-feature-icon{font-size:2rem;margin-bottom:1rem}.landing-feature h3{font-family:var(--font-display);font-size:1.2rem;margin-bottom:.5rem;color:var(--ink)}.landing-feature p{font-size:.9rem;color:var(--ink-2);line-height:1.6}.landing-roles{padding:4rem 2rem;max-width:900px;margin:0 auto}.landing-roles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.landing-role-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:2rem;text-align:center}.landing-role-card h3{font-family:var(--font-display);font-size:1.3rem;color:var(--accent);margin-bottom:.75rem}.landing-role-card p{font-size:.9rem;color:var(--ink-2);line-height:1.5}.landing-cta{text-align:center;padding:5rem 2rem;background:var(--surface);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:2rem 0}.landing-cta h2{font-family:var(--font-display);font-size:2rem;margin-bottom:.75rem;color:var(--ink)}.landing-cta p{color:var(--ink-2);margin-bottom:2rem;font-size:1.05rem}.landing-footer{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;font-size:.85rem;color:var(--muted);font-family:var(--font-mono)}.landing-footer-sep{opacity:.5}.landing-footer-link{background:none;border:none;color:var(--accent);font-family:var(--font-mono);font-size:.85rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.landing-footer-link:hover{color:var(--ink)}.wizard{max-width:800px;margin:0 auto}.wizard-header{text-align:center;margin-bottom:2rem}.wizard-header h1{font-family:var(--font-display);font-size:2rem;margin-bottom:.5rem}.wizard-header p{color:var(--muted)}.wizard-steps{display:flex;justify-content:center;gap:.5rem;margin-bottom:2rem}.wizard-step{width:8px;height:8px;border-radius:50%;background:var(--rule)}.wizard-step.active{background:var(--accent);width:24px;border-radius:4px}.wizard-step.done{background:var(--ok)}.wizard-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem}.wizard-card{background:var(--surface);border:2px solid var(--rule);border-radius:var(--radius-lg);padding:2rem;text-align:center;cursor:pointer;transition:all var(--transition)}.wizard-card:hover{border-color:var(--muted);box-shadow:var(--shadow-md)}.wizard-card.selected{border-color:var(--accent);background:var(--accent-soft)}.wizard-card h3{font-family:var(--font-display);margin-bottom:.5rem}.wizard-card p{color:var(--muted);font-size:.9rem}.wizard-card-icon{font-size:2rem;margin-bottom:1rem}.wizard-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.wizard-actions{display:flex;justify-content:space-between;gap:1rem}.wizard-actions .btn{min-width:120px}.wizard-generating{text-align:center;padding:2rem}.generating-visual{display:flex;justify-content:center;margin-bottom:1.5rem}.generating-ring{position:relative;width:100px;height:100px}.generating-ring svg{width:100%;height:100%;animation:spin 8s linear infinite}.generating-pct{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-mono);font-size:1.1rem;font-weight:600;color:var(--accent)}.generating-status{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:2rem;font-size:1.1rem}.generating-icon{font-size:1.3rem}.generating-text{color:var(--ink);animation:fadeIn .5s ease}.generating-steps-list{max-width:400px;margin:0 auto;text-align:left;display:flex;flex-direction:column;gap:.5rem}.generating-step-item{display:flex;align-items:center;gap:.6rem;font-size:.8rem;color:var(--rule);transition:all .3s;font-family:var(--font-body)}.generating-step-item.done{color:var(--ok)}.generating-step-item.active{color:var(--ink);font-weight:500}.generating-step-icon{width:1.2rem;text-align:center;font-size:.75rem}.wizard-candidates{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem;margin-bottom:2rem}.wizard-form-row{display:flex;gap:1rem;align-items:flex-start}.wizard-form-row .form-group{flex:1}.wizard-ai-select{display:flex;gap:.5rem;align-items:center}.wizard-ai-select input,.wizard-ai-select textarea{flex:1}.wizard-suggestions{background:var(--accent-soft);border-radius:var(--radius-lg);padding:1rem;display:flex;flex-direction:column;gap:.5rem}.wizard-suggestions-label{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:600}.wizard-suggestion-chip{display:inline-block;padding:.3rem .7rem;font-size:.8rem;background:var(--surface);border:1px solid var(--rule);border-radius:980px;cursor:pointer;transition:all .15s;font-family:var(--font-body);color:var(--ink-2);margin-right:.3rem}.wizard-suggestion-chip:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.wizard-analysis{display:flex;flex-direction:column;gap:.25rem}.wizard-analysis-item{display:flex;gap:.5rem;font-size:.85rem}.wizard-analysis-key{min-width:100px;font-family:var(--font-mono);font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-top:.1rem}.wizard-advanced{margin-top:.5rem}.wizard-advanced-toggle{background:none;border:none;font-family:var(--font-mono);font-size:.75rem;color:var(--muted);cursor:pointer;padding:.3rem 0}.wizard-advanced-toggle:hover{color:var(--ink)}.wizard-advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.75rem;padding:1rem;background:var(--paper);border:1px solid var(--rule-soft);border-radius:var(--radius-lg)}.wizard-advanced-grid .form-group{margin-bottom:0}.wizard-advanced-grid select{width:100%}.candidate-card{background:var(--surface);border:2px solid var(--rule);border-radius:var(--radius-lg);padding:1.5rem;cursor:pointer;transition:all var(--transition)}.candidate-card:hover{box-shadow:var(--shadow-md)}.candidate-card.selected{border-color:var(--accent)}.candidate-card h4{font-family:var(--font-display);margin-bottom:.5rem}.candidate-card .candidate-summary{color:var(--ink-2);font-size:.9rem;margin-bottom:.75rem}.candidate-card .candidate-seed{font-style:italic;font-size:.85rem;color:var(--accent);margin-bottom:.75rem}.candidate-card .candidate-stats{font-family:var(--font-mono);font-size:.75rem;color:var(--muted)}.candidate-details{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--rule-soft);font-size:.8rem}.candidate-details ul{padding-left:1.2rem;color:var(--ink-2)}.wizard-preview{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.5rem}.wizard-preview h3{font-family:var(--font-display);margin-bottom:1rem}.transcript-viewer{display:grid;grid-template-columns:1fr 380px;gap:1.5rem;align-items:start}.transcript-messages{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.25rem;max-height:calc(100vh - 250px);overflow-y:auto}.transcript-msg{padding:.6rem 0;border-bottom:1px solid var(--rule-soft)}.transcript-msg:last-child{border-bottom:none}.transcript-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem;flex-wrap:wrap}.transcript-role{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.transcript-msg.tutor .transcript-role{color:var(--accent)}.transcript-msg.learner .transcript-role{color:var(--ink-2)}.transcript-move{font-family:var(--font-mono);font-size:.55rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--paper-2);padding:.1rem .4rem;border-radius:2px}.transcript-score{font-family:var(--font-mono);font-size:.55rem;color:var(--muted);margin-left:auto}.transcript-text{font-size:.9rem;line-height:1.5;color:var(--ink)}.transcript-msg.learner .transcript-text{font-style:italic;color:var(--ink-2)}.transcript-msg.move-assertion .transcript-text{color:var(--ok)}.transcript-msg.move-correction .transcript-text{color:var(--warn)}.transcript-review{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.25rem;position:sticky;top:80px}.review-result{margin-top:1rem;padding:1rem;background:var(--paper);border:1px solid var(--rule-soft);border-radius:var(--radius);font-size:.85rem;line-height:1.6;max-height:50vh;overflow-y:auto}.review-result p{margin-bottom:.5rem}.review-result p:last-child{margin-bottom:0}@media(max-width:768px){.transcript-viewer{grid-template-columns:1fr}.transcript-review{position:static}}.enrollment-section{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.enrollment-section h3{font-family:var(--font-display);font-size:1.1rem;margin-bottom:1rem}.enrollment-input-row{display:flex;gap:.75rem;align-items:flex-start}.enrollment-input-row input{flex:1;text-transform:uppercase;letter-spacing:.15em;font-family:var(--font-mono);font-size:1.1rem;text-align:center;max-width:200px;padding:.5rem .8rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);color:var(--ink);outline:none;transition:border-color var(--transition)}.enrollment-input-row input:focus{border-color:var(--accent)}.enrollment-code-display{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.enrollment-code{font-family:var(--font-mono);font-size:1.3rem;letter-spacing:.2em;background:var(--accent-soft);color:var(--accent);padding:.4rem 1rem;border-radius:var(--radius);font-weight:600}@media(max-width:768px){.app-main{padding:1rem}.header{padding:.75rem 1rem}.header-username{display:none}.chat-layout{grid-template-columns:1fr;height:auto}.scope{position:static;max-height:none;order:2}.scope-panel{order:2}.lesson-editor,.grid{grid-template-columns:1fr}.stats-row{flex-direction:column}.dashboard-header{flex-direction:column;align-items:flex-start}.landing-hero{padding:3rem 1.5rem 2rem}.landing-hero-title{font-size:2.5rem}.landing-hero-sub{font-size:1rem}.landing-features-grid,.landing-roles-grid{grid-template-columns:1fr}.landing-nav{padding:1rem 1.5rem}}.i18n-translating{opacity:.6;transition:opacity .2s ease}.i18n-translated{cursor:pointer}.i18n-hover{border-bottom:1px dashed var(--muted);cursor:pointer}.i18n-has-tooltip{border-bottom:1px dotted var(--muted);cursor:help}.i18n-selector{position:relative}.i18n-selector-btn{font-size:.8rem;min-width:auto}.i18n-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:220px;max-height:400px;overflow-y:auto;z-index:200;padding:.25rem 0}.i18n-dropdown-section{padding:.25rem 0}.i18n-dropdown-section+.i18n-dropdown-section{border-top:1px solid var(--rule-soft)}.i18n-dropdown-label{padding:.4rem .75rem .2rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.i18n-dropdown-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.4rem .75rem;border:none;background:none;color:var(--ink);font-size:.85rem;cursor:pointer;text-align:left;font-family:var(--font-body)}.i18n-dropdown-item:hover{background:var(--accent-soft)}.i18n-dropdown-item.active{color:var(--accent);font-weight:600}.i18n-dropdown-item-sub{font-size:.7rem;color:var(--muted);margin-left:.5rem}[dir=rtl] .i18n-dropdown{right:auto;left:0}[dir=rtl] .i18n-dropdown-item{text-align:right}[dir=rtl] .i18n-dropdown-item-sub{margin-left:0;margin-right:.5rem}[data-theme=glass]{--paper: rgba(245, 245, 247, .72);--paper-2: rgba(235, 235, 240, .6);--surface: rgba(255, 255, 255, .55);--ink: #1d1d1f;--ink-2: #3a3a3c;--muted: #86868b;--rule: rgba(0, 0, 0, .08);--rule-soft: rgba(0, 0, 0, .04);--accent: #0071e3;--accent-soft: rgba(0, 113, 227, .12);--warn: #ff3b30;--warn-soft: rgba(255, 59, 48, .1);--ok: #34c759;--ok-soft: rgba(52, 199, 89, .12);--font-display: "Instrument Serif", serif;--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, monospace;--radius: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 4px rgba(0, 0, 0, .04), 0 0 0 .5px rgba(0, 0, 0, .05);--shadow-md: 0 4px 16px rgba(0, 0, 0, .06), 0 0 0 .5px rgba(0, 0, 0, .04);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .08), 0 0 0 .5px rgba(0, 0, 0, .03);--transition: .25s cubic-bezier(.25, .1, .25, 1);--transition-slow: .5s cubic-bezier(.25, .1, .25, 1)}[data-theme=glass] body{background:radial-gradient(ellipse at 20% 0%,rgba(120,180,255,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(200,160,255,.1) 0%,transparent 50%),radial-gradient(ellipse at 50% 100%,rgba(100,220,200,.08) 0%,transparent 50%),linear-gradient(180deg,#f5f5f7,#e8e8ed);font-family:var(--font-body);color:var(--ink)}[data-theme=glass] .header,[data-theme=glass] .card,[data-theme=glass] .login-card,[data-theme=glass] .chat-main,[data-theme=glass] .scope-panel,[data-theme=glass] .stat-card,[data-theme=glass] .table-wrap{background:var(--surface);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:.5px solid rgba(255,255,255,.6);box-shadow:var(--shadow-md)}[data-theme=glass] .header{background:#ffffffb8;border-bottom:.5px solid rgba(0,0,0,.06)}[data-theme=glass] .header-brand{color:var(--ink);font-weight:400}[data-theme=glass] .btn{border-radius:var(--radius);border:.5px solid rgba(0,0,0,.1);background:#ffffff80;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-family:var(--font-body);font-weight:400}[data-theme=glass] .btn:hover{background:#ffffffbf;border-color:#00000026}[data-theme=glass] .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}[data-theme=glass] .btn-primary:hover{background:#005bb5;border-color:#005bb5}[data-theme=glass] .btn-danger{color:var(--warn);border-color:#ff3b304d}[data-theme=glass] .btn-danger:hover{background:var(--warn-soft)}[data-theme=glass] .card{border-radius:var(--radius-lg)}[data-theme=glass] .card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}[data-theme=glass] .card-title{font-family:var(--font-body);font-weight:600;font-size:1.1rem}[data-theme=glass] .login-card{border-radius:var(--radius-xl);border:.5px solid rgba(255,255,255,.7)}[data-theme=glass] .login-brand h1{color:var(--ink)}[data-theme=glass] .oauth-btn{border-radius:var(--radius);border:.5px solid rgba(0,0,0,.1);background:#fff9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}[data-theme=glass] .oauth-btn:hover{background:#ffffffd9;box-shadow:var(--shadow-sm)}[data-theme=glass] .login-divider{color:var(--muted)}[data-theme=glass] .login-divider:before,[data-theme=glass] .login-divider:after{background:#00000014}[data-theme=glass] .login-error,[data-theme=glass] .login-message,[data-theme=glass] .login-submit{border-radius:var(--radius)}[data-theme=glass] .chat-main{border-radius:var(--radius-xl)}[data-theme=glass] .chat-message{border-radius:14px}[data-theme=glass] .chat-message.tutor{background:#0000000a;border:.5px solid rgba(0,0,0,.06)}[data-theme=glass] .chat-message.learner{background:var(--accent);color:#fff}[data-theme=glass] .chat-message.move-seed{border-left:3px solid var(--accent);background:var(--accent-soft)}[data-theme=glass] .chat-message.move-assertion{background:var(--ok-soft);border:.5px solid rgba(52,199,89,.3)}[data-theme=glass] .chat-message.move-correction{background:var(--warn-soft);border:.5px solid rgba(255,59,48,.3)}[data-theme=glass] .chat-composer{background:#f5f5f799;border-top:.5px solid rgba(0,0,0,.06)}[data-theme=glass] .chat-composer input{border-radius:20px;border:.5px solid rgba(0,0,0,.1);background:#ffffffb3;padding:.6rem 1.2rem}[data-theme=glass] .chat-composer input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31f}[data-theme=glass] .chat-composer button{border-radius:20px;background:var(--accent)}[data-theme=glass] .chat-composer button:hover{background:#005bb5}[data-theme=glass] .scope-panel{border-radius:var(--radius-xl)}[data-theme=glass] .scope-panel-title{font-family:var(--font-body);font-weight:600;border-bottom-color:#0000000f}[data-theme=glass] .expectation-dot{border-color:#00000026}[data-theme=glass] .expectation-dot.current{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 3px #0071e326}[data-theme=glass] .expectation-dot.met{border-color:var(--ok);background:var(--ok)}[data-theme=glass] .coverage-bar{background:#0000000f;border-radius:4px}[data-theme=glass] .coverage-bar-fill{background:var(--accent);border-radius:4px}[data-theme=glass] .engine-state{background:#00000008;border-radius:var(--radius)}[data-theme=glass] .llm-selector{border-radius:var(--radius);border:.5px solid rgba(0,0,0,.1);background:#fff9}[data-theme=glass] .form-group input,[data-theme=glass] .form-group textarea,[data-theme=glass] .form-group select{border-radius:var(--radius);border:.5px solid rgba(0,0,0,.1);background:#fff9;font-family:var(--font-body)}[data-theme=glass] .form-group textarea{font-family:var(--font-mono)}[data-theme=glass] .form-group input:focus,[data-theme=glass] .form-group textarea:focus,[data-theme=glass] .form-group select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a}[data-theme=glass] .table-wrap{border-radius:var(--radius-lg);border:.5px solid rgba(255,255,255,.6)}[data-theme=glass] thead{background:#00000008}[data-theme=glass] th,[data-theme=glass] td{border-bottom-color:#0000000a}[data-theme=glass] tr:hover td{background:#0071e30a}[data-theme=glass] .stat-card{border-radius:var(--radius-lg)}[data-theme=glass] .stat-value{font-family:var(--font-body);font-weight:700;color:var(--accent)}[data-theme=glass] .role-badge{background:var(--accent-soft);color:var(--accent);border-radius:6px}[data-theme=glass] .theme-toggle{background:#ffffff80;border-color:#0000001a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}[data-theme=glass] .theme-toggle:hover{background:#ffffffbf}[data-theme=glass] .spec-preview{background:#00000008;border:.5px solid rgba(0,0,0,.06);border-radius:var(--radius-lg)}[data-theme=glass] .validation-error{background:var(--warn-soft);border-radius:var(--radius)}[data-theme=glass] .progress-bar{background:#0000000f;border-radius:3px}[data-theme=glass] .progress-bar-fill{background:var(--ok)}[data-theme=glass] .session-status.active{background:var(--ok-soft);color:#248a3d}[data-theme=glass] .session-status.completed{background:var(--accent-soft);color:var(--accent)}[data-theme=glass] .section-title{font-family:var(--font-body);font-weight:600;border-bottom-color:#0000000f}[data-theme=glass] .dashboard-header h1{font-family:var(--font-body);font-weight:700}[data-theme=glass] .landing-video-overlay{background:linear-gradient(180deg,#f5f5f7c7,#f5f5f7a6,#f5f5f7b3 60%,#f5f5f7e0)}[data-theme=glass] .landing-nav{background:#ffffffb8;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:.5px solid rgba(0,0,0,.06)}[data-theme=glass] .landing-hero-title{font-weight:700;letter-spacing:-.02em}[data-theme=glass] .landing-showcase-window{background:var(--surface);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:.5px solid rgba(255,255,255,.6);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}[data-theme=glass] .showcase-bar{background:#00000008;border-bottom:.5px solid rgba(0,0,0,.06)}[data-theme=glass] .showcase-dot{background:#0000001f}[data-theme=glass] .showcase-msg.tutor{background:#0000000a;border:.5px solid rgba(0,0,0,.06);border-radius:14px}[data-theme=glass] .showcase-msg.tutor.hint{border-left:3px solid var(--accent);background:var(--accent-soft)}[data-theme=glass] .showcase-msg.tutor.success{background:var(--ok-soft);border:.5px solid rgba(48,209,88,.3)}[data-theme=glass] .showcase-msg.learner{background:var(--accent);border-radius:14px}[data-theme=glass] .landing-feature{background:var(--surface);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:.5px solid rgba(255,255,255,.6);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}[data-theme=glass] .landing-feature:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}[data-theme=glass] .landing-role-card{background:var(--surface);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:.5px solid rgba(255,255,255,.6);border-radius:var(--radius-lg)}[data-theme=glass] .landing-role-card h3{color:var(--accent)}[data-theme=glass] .landing-cta{background:#ffffff73;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-top:.5px solid rgba(0,0,0,.04);border-bottom:.5px solid rgba(0,0,0,.04)}[data-theme=glass] .landing-cta h2{font-family:var(--font-body);font-weight:700}[data-theme=glass] .wizard-card{background:var(--surface);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:.5px solid rgba(255,255,255,.6);border-radius:var(--radius-lg)}[data-theme=glass] .wizard-card.selected{border-color:var(--accent);background:var(--accent-soft)}[data-theme=glass] .candidate-card{background:var(--surface);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:.5px solid rgba(255,255,255,.6);border-radius:var(--radius-lg)}[data-theme=glass] .candidate-card.selected{border-color:var(--accent)}[data-theme=glass] .enrollment-section{background:var(--surface);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:.5px solid rgba(255,255,255,.6)}[data-theme=glass] .enrollment-code{background:var(--accent-soft)}[data-theme=glass] .wizard-preview{background:var(--surface);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:.5px solid rgba(255,255,255,.6);border-radius:var(--radius-lg)}[data-theme=glass] .i18n-dropdown{background:#ffffffb8;backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:.5px solid rgba(255,255,255,.6)}[data-theme=glass] .i18n-dropdown-item:hover{background:#0071e314}[data-theme=glass] .i18n-hover,[data-theme=glass] .i18n-has-tooltip{border-bottom-color:var(--muted)}[data-theme=glass] *{transition:background .3s cubic-bezier(.25,.1,.25,1),border-color .3s cubic-bezier(.25,.1,.25,1),box-shadow .3s cubic-bezier(.25,.1,.25,1),color .2s cubic-bezier(.25,.1,.25,1)}[data-theme=dark]{--paper: #1a1a1e;--paper-2: #222226;--surface: #28282d;--ink: #e4e2dc;--ink-2: #b8b5ac;--muted: #7a776d;--rule: #3a3a40;--rule-soft: #2e2e34;--accent: #5fa88f;--accent-soft: rgba(95, 168, 143, .15);--warn: #e0794a;--warn-soft: rgba(224, 121, 74, .15);--ok: #8bb95e;--ok-soft: rgba(139, 185, 94, .15);--font-display: "Instrument Serif", serif;--font-body: "Newsreader", serif;--font-mono: "JetBrains Mono", monospace;--radius: 6px;--radius-lg: 10px;--radius-xl: 14px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .25);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .35);--transition: .2s ease;--transition-slow: .4s ease;color-scheme:dark}[data-theme=dark] body{background:var(--paper);color:var(--ink)}[data-theme=dark] .header{background:var(--surface);border-bottom-color:var(--rule)}[data-theme=dark] .btn{background:var(--surface);border-color:var(--rule);color:var(--ink-2)}[data-theme=dark] .btn:hover{background:var(--paper-2);border-color:var(--muted)}[data-theme=dark] .btn-primary{background:var(--accent);border-color:var(--accent);color:#111}[data-theme=dark] .btn-primary:hover{background:#4e9078;border-color:#4e9078}[data-theme=dark] .btn-danger{color:var(--warn);border-color:var(--warn-soft)}[data-theme=dark] .btn-danger:hover{background:var(--warn-soft)}[data-theme=dark] .login-card{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .login-brand h1{color:var(--accent)}[data-theme=dark] .oauth-btn{background:var(--surface);border-color:var(--rule);color:var(--ink)}[data-theme=dark] .oauth-btn:hover{background:var(--paper-2)}[data-theme=dark] .login-divider:before,[data-theme=dark] .login-divider:after{background:var(--rule)}[data-theme=dark] .login-error{background:var(--warn-soft);color:var(--warn)}[data-theme=dark] .card{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .card:hover{box-shadow:var(--shadow-lg)}[data-theme=dark] .chat-main{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .chat-message.tutor{background:var(--paper-2);border-color:var(--rule)}[data-theme=dark] .chat-message.learner{background:var(--accent);color:#111}[data-theme=dark] .chat-message.move-seed{border-left-color:var(--accent);background:var(--accent-soft)}[data-theme=dark] .chat-message.move-assertion{background:var(--ok-soft);border-color:#8bb95e4d}[data-theme=dark] .chat-message.move-correction{background:var(--warn-soft);border-color:#e0794a4d}[data-theme=dark] .chat-composer{background:var(--paper);border-top-color:var(--rule)}[data-theme=dark] .chat-composer input{background:var(--surface);border-color:var(--rule);color:var(--ink)}[data-theme=dark] .chat-composer input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5fa88f33}[data-theme=dark] .chat-composer button{background:var(--accent);color:#111}[data-theme=dark] .chat-composer button:hover{background:#4e9078}[data-theme=dark] .scope-panel{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .scope-panel-title{border-bottom-color:var(--rule)}[data-theme=dark] .expectation-dot{border-color:var(--muted)}[data-theme=dark] .expectation-dot.current{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 3px #5fa88f33}[data-theme=dark] .expectation-dot.met{border-color:var(--ok);background:var(--ok)}[data-theme=dark] .coverage-bar{background:var(--rule)}[data-theme=dark] .coverage-bar-fill{background:var(--accent)}[data-theme=dark] .engine-state{background:var(--paper-2)}[data-theme=dark] .llm-selector{background:var(--surface);border-color:var(--rule);color:var(--ink)}[data-theme=dark] .form-group input,[data-theme=dark] .form-group textarea,[data-theme=dark] .form-group select{background:var(--paper);border-color:var(--rule);color:var(--ink)}[data-theme=dark] .form-group input:focus,[data-theme=dark] .form-group textarea:focus,[data-theme=dark] .form-group select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5fa88f26}[data-theme=dark] .form-group label{color:var(--ink-2)}[data-theme=dark] .table-wrap{background:var(--surface);border-color:var(--rule)}[data-theme=dark] thead{background:var(--paper-2)}[data-theme=dark] th{color:var(--ink-2)}[data-theme=dark] th,[data-theme=dark] td{border-bottom-color:var(--rule)}[data-theme=dark] tr:hover td{background:var(--accent-soft)}[data-theme=dark] .stat-card{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .stat-value{color:var(--accent)}[data-theme=dark] .role-badge{background:var(--accent-soft);color:var(--accent)}[data-theme=dark] .theme-toggle{background:var(--rule)}[data-theme=dark] .theme-toggle:after{background:var(--ink)}[data-theme=dark] .theme-toggle.dark{background:#4a4a52}[data-theme=dark] .progress-bar{background:var(--rule)}[data-theme=dark] .progress-bar-fill{background:var(--ok)}[data-theme=dark] .session-status.active{background:var(--ok-soft);color:var(--ok)}[data-theme=dark] .session-status.completed{background:var(--accent-soft);color:var(--accent)}[data-theme=dark] .section-title{border-bottom-color:var(--rule)}[data-theme=dark] .spec-preview{background:var(--paper-2);border-color:var(--rule)}[data-theme=dark] .validation-error{background:var(--warn-soft);color:var(--warn)}[data-theme=dark] .landing-video-overlay{background:linear-gradient(180deg,#1a1a1ed9,#1a1a1eb3,#1a1a1ebf 60%,#1a1a1eeb)}[data-theme=dark] .landing-nav{background:var(--surface);border-bottom-color:var(--rule)}[data-theme=dark] .landing-hero-title{color:var(--ink)}[data-theme=dark] .landing-hero-sub{color:var(--ink-2)}[data-theme=dark] .landing-showcase-window{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .showcase-bar{background:var(--paper-2);border-bottom-color:var(--rule)}[data-theme=dark] .showcase-dot{background:var(--muted)}[data-theme=dark] .showcase-msg.tutor{background:var(--paper-2);border-color:var(--rule)}[data-theme=dark] .showcase-msg.tutor.hint{border-left-color:var(--accent);background:var(--accent-soft)}[data-theme=dark] .showcase-msg.tutor.success{background:var(--ok-soft);border-color:#8bb95e4d}[data-theme=dark] .showcase-msg.learner{background:var(--accent);color:#111}[data-theme=dark] .landing-feature{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .landing-feature:hover{box-shadow:var(--shadow-lg)}[data-theme=dark] .landing-role-card{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .landing-role-card h3{color:var(--accent)}[data-theme=dark] .landing-cta{background:var(--paper-2);border-top-color:var(--rule);border-bottom-color:var(--rule)}[data-theme=dark] .landing-footer{color:var(--muted)}[data-theme=dark] .landing-footer-link{color:var(--ink-2)}[data-theme=dark] .landing-footer-link:hover{color:var(--ink)}[data-theme=dark] .wizard-card{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .wizard-card:hover{border-color:var(--muted)}[data-theme=dark] .wizard-card.selected{border-color:var(--accent);background:var(--accent-soft)}[data-theme=dark] .candidate-card{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .candidate-card.selected{border-color:var(--accent)}[data-theme=dark] .enrollment-section{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .enrollment-code{background:var(--accent-soft)}[data-theme=dark] .wizard-preview,[data-theme=dark] .i18n-dropdown{background:var(--surface);border-color:var(--rule)}[data-theme=dark] .i18n-dropdown-item:hover{background:var(--accent-soft)}[data-theme=dark] *{transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,color .2s ease}
