@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300..900&family=Instrument+Sans:wght@400..700&display=swap";.app-root{--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-8:2rem;--sp-10:2.5rem;--fs-2xs:.625rem;--fs-xs:.72rem;--fs-sm:.8rem;--fs-md:.875rem;--fs-lg:.95rem;--fs-xl:1.05rem;--fs-2xl:1.2rem;--fs-3xl:1.4rem;--radius-pill:999px;--ring:0 0 0 3px #1111110d;--disabled-opacity:.45;--z-dropdown:50;--z-overlay:100;--z-modal:120;--z-lightbox:200;--transition-fast:.12s;--transition:.15s;--transition-slow:.22s;--font-body:var(--font-sans);--status-success-text:#065f46;--status-success-bg:#ecfdf5;--status-success-border:#a7f3d0;--status-warning-text:#b45309;--status-warning-bg:#fffbeb;--status-warning-border:#fde68a;--status-error-text:#991b1b;--status-error-bg:#fef2f2;--status-error-border:#fecaca;--status-info-text:#1e40af;--status-info-bg:#eff6ff;--status-info-border:#bfdbfe}.app-root input[type=checkbox],.app-root input[type=radio]{cursor:pointer}.app-root .btn{justify-content:center;align-items:center;gap:var(--sp-2);font-family:var(--font-sans);font-weight:500;font-size:var(--fs-md);border-radius:var(--radius-pill);color:var(--text-2);cursor:pointer;transition:all var(--transition);white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;padding:.55rem 1.05rem;line-height:1.3;text-decoration:none;display:inline-flex}.app-root .btn:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.app-root .btn--xs{font-size:var(--fs-xs);padding:.25rem .6rem}.app-root .btn--sm{font-size:var(--fs-sm);padding:.4rem .85rem}.app-root .btn--lg{font-size:var(--fs-md);padding:.7rem 1.25rem}.app-root .btn--primary{background:var(--text);color:var(--surface);border-color:var(--text)}.app-root .btn--primary:hover:not(:disabled){background:#2a2a2a;border-color:#2a2a2a}.app-root .btn--outline{color:var(--text-2);border-color:var(--line);background:0 0}.app-root .btn--outline:hover:not(:disabled){border-color:var(--text);color:var(--text)}.app-root .btn--ghost{color:var(--text-2);background:0 0;border-color:#0000}.app-root .btn--ghost:hover:not(:disabled){background:var(--surface-alt);color:var(--text)}.app-root .btn--danger{color:var(--status-error-text);border-color:var(--status-error-border);background:0 0}.app-root .btn--danger:hover:not(:disabled){background:var(--status-error-bg)}.app-root .btn--icon{border-radius:var(--radius-xs);flex:none;width:30px;height:30px;padding:0}.app-root .btn--icon.btn--lg{width:36px;height:36px}.app-root .btn--label{text-transform:uppercase;letter-spacing:.04em;font-weight:600}.app-root .input{width:100%;font-family:var(--font-sans);font-size:var(--fs-lg);color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color var(--transition), box-shadow var(--transition);padding:.6rem .85rem;display:block}.app-root .input::placeholder{color:var(--text-3)}.app-root .input:hover:not(:focus):not(:disabled){border-color:var(--text-3)}.app-root .input:focus{border-color:var(--text);box-shadow:var(--ring);outline:none}.app-root .input:disabled{opacity:var(--disabled-opacity)}.app-root .input--sm{font-size:var(--fs-md);padding:.45rem .7rem}.app-root .input--xs{font-size:var(--fs-sm);padding:.3rem .55rem}.app-root .input--underline{border:none;border-bottom:1px solid var(--line);background:0 0;border-radius:0;padding:.2rem 0}.app-root .input--underline:focus{box-shadow:none;border-bottom-color:var(--text)}.app-root .input--display{font-family:var(--font-display);letter-spacing:-.018em;font-size:1.5rem;font-weight:500}.app-root .textarea{width:100%;font-family:var(--font-sans);font-size:var(--fs-lg);color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);resize:vertical;min-height:5em;transition:border-color var(--transition), box-shadow var(--transition);padding:.6rem .85rem;line-height:1.55;display:block}.app-root .textarea::placeholder{color:var(--text-3)}.app-root .textarea:hover:not(:focus):not(:disabled){border-color:var(--text-3)}.app-root .textarea:focus{border-color:var(--text);box-shadow:var(--ring);outline:none}.app-root .textarea:disabled{opacity:var(--disabled-opacity)}.app-root .textarea--minimal{background:var(--surface-alt);min-height:unset;resize:none;font-size:var(--fs-md);line-height:1.5}.app-root .textarea--minimal:focus{background:var(--surface)}.app-root .block-editor{border:1.5px solid var(--text);background:var(--surface);transition:border-color var(--transition), box-shadow var(--transition);border-radius:8px;position:relative;overflow:visible;box-shadow:0 0 0 3px #11111108,0 1px 3px #1111110a}.app-root .block-editor:focus-within{border-color:var(--text);box-shadow:0 0 0 3px #1111110f,0 2px 8px #1111110f}.app-root .block-editor-input{resize:vertical;width:100%;min-height:5em;font-family:var(--font-body);font-size:var(--fs-md);color:var(--text);background:0 0;border:none;padding:.65rem .8rem;line-height:1.55;display:block}.app-root .block-editor-input:focus{box-shadow:none;outline:none}.app-root .block-editor-actions{align-items:center;gap:var(--sp-2);border-top:1px solid var(--line-soft,var(--line));padding:.4rem .8rem;display:flex}.app-root .block-editor-hint{font-size:var(--fs-xs);color:var(--text-3);font-family:var(--font-sans);letter-spacing:.01em;margin-right:auto}.app-root .block-editor-error{color:var(--status-error-text);font-size:var(--fs-xs);align-items:center;gap:.25rem;display:inline-flex}.app-root .select{width:100%;font-family:var(--font-sans);font-size:var(--fs-lg);color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;appearance:none;transition:border-color var(--transition), box-shadow var(--transition);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8b85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .85rem center;background-repeat:no-repeat;padding:.6rem 2.4rem .6rem .85rem;display:block}.app-root .select:hover:not(:focus){border-color:var(--text-3)}.app-root .select:focus{border-color:var(--text);box-shadow:var(--ring);outline:none}.app-root .select:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.app-root .select--compact{font-size:var(--fs-sm);border-radius:var(--radius-xs);background-color:var(--surface-alt);background-position:right .4rem center;width:auto;padding:.25rem 1.4rem .25rem .5rem;font-weight:500}.app-root .pill{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);font-family:var(--font-sans);font-size:var(--fs-2xs);letter-spacing:.03em;color:var(--text-3);cursor:pointer;transition:all var(--transition);white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:.3rem;padding:.3rem .75rem;font-weight:550;line-height:1.3;display:inline-flex}.app-root .pill:hover:not(.is-active):not(:disabled){color:var(--text-2);border-color:var(--text-3);background:var(--surface-alt)}.app-root .pill.is-active{background:var(--text);color:var(--surface);border-color:var(--text)}.app-root .pill:disabled{opacity:var(--disabled-opacity);cursor:default}.app-root .pill--sm{font-size:var(--fs-2xs);padding:.22rem .6rem}.app-root .pill--md{font-size:var(--fs-xs);padding:.4rem .75rem;font-weight:500}.app-root .pill-group{gap:var(--sp-2);flex-wrap:wrap;display:inline-flex}.app-root .pill--status{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;cursor:default;padding:.35rem .75rem .35rem .55rem;font-weight:500}.app-root .pill--planned .pill-dot{background:var(--status-planned)}.app-root .pill--generating{color:var(--status-warning-text);border-color:var(--status-warning-border)}.app-root .pill--generating .pill-dot{background:var(--status-generating);animation:1.2s ease-in-out infinite pulse-dot}.app-root .pill--generated{color:var(--status-success-text);border-color:var(--status-success-border)}.app-root .pill--generated .pill-dot{background:var(--status-generated)}.app-root .pill--edited{color:var(--status-info-text);border-color:var(--status-info-border)}.app-root .pill--edited .pill-dot{background:var(--status-edited)}.app-root .pill--stale{color:var(--status-error-text);border-color:var(--status-error-border)}.app-root .pill--stale .pill-dot{background:var(--status-stale)}.app-root .pill-dot{border-radius:var(--radius-pill);flex:none;width:7px;height:7px}.app-root .chip{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);min-width:42px;color:var(--text-2);font-family:var(--font-sans);font-size:var(--fs-sm);cursor:pointer;text-align:center;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:.4rem .75rem;font-weight:500;display:inline-flex}.app-root .chip:hover:not(.is-on):not(:disabled){border-color:var(--text-3);color:var(--text)}.app-root .chip.is-on{background:var(--text);color:var(--surface);border-color:var(--text)}.app-root .chip:disabled{opacity:var(--disabled-opacity);cursor:default}.app-root .chip--sm{font-size:var(--fs-xs);min-width:unset;padding:.3rem .6rem}.app-root .badge{border:1px solid var(--line);border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:var(--fs-2xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);white-space:nowrap;align-items:center;gap:.25rem;padding:.1rem .4rem;font-weight:600;display:inline-flex}.app-root .badge--success{border-color:var(--status-success-border);color:var(--status-success-text);background:var(--status-success-bg)}.app-root .badge--warning{border-color:var(--status-warning-border);color:var(--status-warning-text);background:var(--status-warning-bg)}.app-root .badge--error{border-color:var(--status-error-border);color:var(--status-error-text);background:var(--status-error-bg)}.app-root .badge--info{border-color:var(--status-info-border);color:var(--status-info-text);background:var(--status-info-bg)}.app-root .badge--neutral{background:#1111110a}.app-root .badge--compact{padding:.1rem .25rem}.app-root .label{font-family:var(--font-sans);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);align-items:center;gap:.35rem;font-weight:600;display:flex}.app-root .label--section{font-size:var(--fs-2xs);letter-spacing:.14em;color:var(--text-3);margin-bottom:var(--sp-3)}.app-root .tag{font-family:var(--font-sans);font-size:var(--fs-sm);border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--text-2);background:var(--surface);align-items:center;padding:.25rem .65rem;font-weight:500;display:inline-flex}.app-root .chip-input{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.app-root .chip-input-tag{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text);transition:border-color var(--transition);align-items:center;gap:.3rem;padding:.25rem .55rem .25rem .7rem;display:inline-flex}.app-root .chip-input-tag:hover{border-color:var(--text-3)}.app-root .chip-input-remove{color:var(--text-3);cursor:pointer;width:14px;height:14px;transition:all var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.app-root .chip-input-remove:hover{color:var(--text);background:#1111110f}.app-root .chip-input-add{align-items:center;gap:.25rem;display:inline-flex}.app-root .chip-input-add input{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text);background:0 0;border:none;outline:none;width:7rem;padding:.2rem 0}.app-root .chip-input-add input::placeholder{color:var(--text-3)}.app-root .chip-input-add-btn{border:1px solid var(--line);width:20px;height:20px;color:var(--text-3);cursor:pointer;font-size:var(--fs-sm);transition:all var(--transition-fast);background:0 0;border-radius:50%;justify-content:center;align-items:center;display:flex}.app-root .chip-input-add-btn:hover:not(:disabled){border-color:var(--text);color:var(--text)}.app-root .chip-input-add-btn:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.app-root .seg-group{align-items:center;gap:.35rem;display:flex}.app-root .seg{align-items:center;gap:var(--sp-2);color:var(--text-2);font-family:var(--font-sans);font-size:var(--fs-sm);letter-spacing:.01em;border-radius:var(--radius-pill);cursor:pointer;transition:all var(--transition);white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:none;padding:.4rem .85rem;font-weight:500;display:inline-flex}.app-root .seg:hover:not(.is-active){color:var(--text)}.app-root .seg.is-active{background:var(--text);color:var(--surface);box-shadow:0 1px 3px #0000001f}.app-root .seg-group--strip{background:var(--surface-alt);border-radius:var(--radius-pill);align-self:flex-start;gap:.15rem;width:fit-content;max-width:100%;padding:0}.app-root .seg-group--strip .seg{flex:none}.app-root .banner{align-items:center;gap:var(--sp-2);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--fs-sm);border:1px solid var(--line);background:var(--surface-alt);color:var(--text-2);margin-bottom:var(--sp-4);padding:.6rem .9rem;display:flex}.app-root .banner--success{background:var(--status-success-bg);color:var(--status-success-text);border-color:var(--status-success-border)}.app-root .banner--error{background:var(--status-error-bg);color:var(--status-error-text);border-color:var(--status-error-border)}.app-root .banner--info{background:var(--status-info-bg);color:var(--status-info-text);border-color:var(--status-info-border)}.app-root .banner--warning{background:var(--status-warning-bg);color:var(--status-warning-text);border-color:var(--status-warning-border)}.app-root .banner--compact{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs);gap:var(--sp-1);margin-bottom:0;line-height:1.35}.app-root .toggle{cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text-2);-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:inline-flex}.app-root .toggle:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.app-root .toggle-track{background:var(--line);width:28px;height:16px;transition:background var(--transition);border-radius:8px;flex:none;position:relative}.app-root .toggle.is-on .toggle-track{background:var(--text)}.app-root .toggle-thumb{background:var(--surface);width:12px;height:12px;transition:transform var(--transition);border-radius:50%;position:absolute;top:2px;left:2px}.app-root .toggle.is-on .toggle-thumb{transform:translate(12px)}.app-root .overlay{z-index:var(--z-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:overlay-fade var(--transition-slow) ease-out;background:#1116;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.app-root .overlay--dark{z-index:var(--z-lightbox);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#111111d1}.app-root .dialog{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:90vw;max-width:420px;padding:1.75rem 2rem}.app-root .dialog--lg{max-width:1120px}@keyframes overlay-fade{0%{opacity:0}to{opacity:1}}.app-root .tooltip-wrap{align-items:center;display:inline-flex;position:relative}.app-root .tooltip-pop{z-index:var(--z-dropdown);width:280px;max-width:min(280px, calc(100vw - var(--sp-6)));padding:var(--sp-3) var(--sp-4);background:var(--status-info-bg);border:1px solid var(--status-info-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);color:var(--text-2);font-size:var(--fs-sm);overflow-wrap:anywhere;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-fast) ease-out, visibility 0s linear var(--transition-fast);line-height:1.45;position:absolute}.app-root .tooltip-wrap:hover .tooltip-pop,.app-root .tooltip-wrap:focus-within .tooltip-pop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--transition-fast) ease-out, visibility 0s linear 0s;transition-delay:.12s}.app-root .tooltip-pop--bottom-start{top:calc(100% + var(--sp-1));left:0}.app-root .tooltip-pop--bottom-end{top:calc(100% + var(--sp-1));right:0}.app-root .tooltip-pop--top-start{bottom:calc(100% + var(--sp-1));left:0}.app-root .tooltip-pop--left-center{top:50%;right:calc(100% + var(--sp-2));transform:translateY(-50%)}.app-root .tooltip-pop p{margin:0}.app-root .tooltip-pop p+p,.app-root .tooltip-pop p+ul,.app-root .tooltip-pop ul+p{margin-top:var(--sp-2)}.app-root .tooltip-pop .tooltip-list{padding-left:var(--sp-4);margin:0}.app-root .tooltip-pop .tooltip-list li+li{margin-top:var(--sp-1)}.app-root .popover{z-index:var(--z-dropdown);width:320px;padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);color:var(--text);font-size:var(--fs-sm);line-height:1.45;position:absolute}.app-root .popover--right-end{top:0;right:calc(100% + var(--sp-2))}.app-root .popover--right-start{top:0;left:calc(100% + var(--sp-2))}.app-root .popover--bottom-end{top:calc(100% + var(--sp-1));right:0}.app-root .popover--bottom-start{top:calc(100% + var(--sp-1));left:0}.app-root .popover--menu{flex-direction:column;width:100%;max-height:320px;padding:0;display:flex;overflow-y:auto}.app-root .popover-form{gap:var(--sp-3);flex-direction:column;display:flex}.app-root .popover-head{padding-bottom:var(--sp-3);border-bottom:1px solid var(--line-soft)}.app-root .popover-body{gap:var(--sp-3);flex-direction:column;display:flex}.app-root .popover-error{color:var(--status-error-text);background:var(--status-error-bg);border:1px solid var(--status-error-border);border-radius:var(--radius-xs);padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs)}.app-root .popover-blurb{color:var(--text-2);font-size:var(--fs-sm);margin:0;line-height:1.45}.app-root .popover-actions{justify-content:flex-end;align-items:center;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--line-soft);display:flex}.app-root .form-row{align-items:center;gap:var(--sp-2);display:flex}.app-root .form-row>.input,.app-root .form-row>.select,.app-root .form-row>.textarea{flex:1;min-width:0}.app-root .popover-field{gap:var(--sp-1);flex-direction:column;display:flex}.app-root .link{color:var(--text);text-underline-offset:2px;transition:text-decoration-thickness var(--transition);text-decoration:underline;text-decoration-thickness:1px}.app-root .link:hover{text-decoration-thickness:2px}.app-root .link--subtle{color:var(--text-2);text-decoration:none}.app-root .link--subtle:hover{color:var(--text)}.app-root .form-stack{gap:var(--sp-4);flex-direction:column;display:flex}.app-root .form-row{gap:var(--sp-4);align-items:flex-end;display:flex}.app-root .form-col{flex:1;min-width:0}.app-root .form-actions{gap:var(--sp-2);justify-content:flex-end;align-items:center;display:flex}.app-root .input-group{gap:var(--sp-2);align-items:center;display:flex}.app-root .input-group>.select,.app-root .input-group>.input{flex:1;min-width:0}.app-root .search-field{width:100%;position:relative}.app-root .search-field>svg{left:var(--sp-3);color:var(--text-3);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.app-root .search-field>.input{padding-left:calc(var(--sp-3) + var(--sp-4) + var(--sp-1));width:100%}.app-root .filter-row{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.app-root .filter-row-sep{background:var(--line);width:1px;height:18px;margin:0 var(--sp-1)}.app-root .card-description{font-size:var(--fs-md);color:var(--text-2);line-height:1.55}.app-root .label-hint{color:var(--text-3);font-size:var(--fs-xs);margin-left:var(--sp-2);letter-spacing:0;text-transform:none;font-weight:400}.app-root .avatar-chip{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line);width:28px;height:28px;font-family:var(--font-sans);font-size:var(--fs-2xs);letter-spacing:.02em;color:var(--text-2);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.app-root .avatar-chip.is-self{background:var(--status-info-bg);color:var(--status-info-text);border-color:var(--status-info-border)}.app-root .avatar-chip--assistant{background:var(--surface-alt);color:var(--text);border-color:var(--line)}.app-root .avatar-chip--sm{width:22px;height:22px;font-size:9px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f5f5;--bg-surface:#fff;--bg-card:#fff;--bg-input:#fff;--bg-elevated:#f0f0f0;--border:#e0e0e0;--border-subtle:#ebebeb;--border-focus:#111;--text:#1a1a1a;--text-secondary:#4a4a4a;--text-muted:#888;--accent:#111;--accent-hover:#333;--accent-dim:#0000000d;--accent-glow:#00000014;--success:#34d399;--success-dim:#34d3991f;--warning:#f59e0b;--warning-dim:#fbbf241f;--error:#f87171;--error-dim:#f871711f;--radius:12px;--radius-sm:8px;--radius-xs:6px;--student-accent:#3b82f6;--student-bg:#3b82f60a;--student-border:#3b82f633;--teacher-accent:#d97706;--teacher-bg:#d977060a;--teacher-border:#d9770633}.app-root{--font-display:"Fraunces", ui-serif, Georgia, "Times New Roman", serif;--font-sans:"Instrument Sans", ui-sans-serif, system-ui, sans-serif;--bg:#fafaf8;--surface:#fff;--surface-alt:#f4f4f0;--text:#111;--text-2:#4a4a46;--text-3:#8b8b85;--line:#e6e4dc;--line-soft:#eeece4;--accent:#111;--focus:#2563eb;--focus-soft:#2563eb1a;--status-planned:#c4c2ba;--status-generating:#f59e0b;--status-generated:#10b981;--status-edited:#2563eb;--status-stale:#d97706;--status-failed:#dc2626;--radius:14px;--radius-sm:10px;--radius-xs:6px;--shadow:0 1px 2px #1111110a;--shadow-lg:0 8px 32px -12px #1111111f;font-family:var(--font-sans);font-optical-sizing:auto;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app-root h1,.app-root h2,.app-root h3,.app-root .display{font-family:var(--font-display);letter-spacing:-.015em;font-weight:500;line-height:1.1}.app-root h1{font-size:clamp(2rem,3.5vw,3.25rem);font-weight:500}.app-root h2{font-size:1.75rem;font-weight:500}.app-root h3{font-size:1.25rem;font-weight:600}.app-root p,.app-root li,.app-root span,.app-root div{font-family:var(--font-sans)}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none;padding:0}.form-dialog{min-width:360px;padding:var(--sp-6);gap:var(--sp-4);flex-direction:column;display:flex}.form-dialog__head{justify-content:space-between;align-items:center;display:flex}.form-dialog__title{font-size:var(--fs-2xl);margin:0;font-weight:600}.form-dialog__field{gap:var(--sp-1);flex-direction:column;display:flex}.form-dialog__actions{justify-content:flex-end;gap:var(--sp-2);display:flex}.form-dialog__hint{font-size:var(--fs-sm);color:var(--text-2);margin:0;line-height:1.5}.form-dialog__active-toggle{align-items:center;gap:var(--sp-2);flex-direction:row}.form-dialog__active-toggle input[type=checkbox]{margin:0}.app-root.admin-analytics{background:var(--bg);min-height:100vh;position:relative}.app-root.admin-analytics:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 18% 22%,#00000003 0%,#0000 60%),radial-gradient(circle at 82% 78%,#2563eb04 0%,#0000 55%);position:fixed;inset:0}.admin-analytics>*{z-index:1;position:relative}.admin-analytics__header{align-items:center;gap:var(--sp-4);border-bottom:1px solid var(--line);padding:1.25rem 3rem;display:flex}.admin-analytics__back{gap:var(--sp-1)!important}.admin-analytics__brand{margin-left:auto}.admin-analytics__eyebrow{font-family:var(--font-sans);font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3);font-weight:500}.admin-analytics__main{gap:var(--sp-10);flex-direction:column;max-width:1100px;margin:0 auto;padding:4rem 3rem 6rem;animation:.4s ease-out admin-analytics-fade-up;display:flex}@keyframes admin-analytics-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.admin-analytics__hero{align-items:end;gap:var(--sp-6);grid-template-columns:1fr auto;display:grid}.admin-analytics__title{margin:0 0 var(--sp-3);font-family:var(--font-display);letter-spacing:-.025em;font-variation-settings:"SOFT" 40, "WONK" 0;color:var(--text);font-size:clamp(2.4rem,4.5vw,3.5rem);font-weight:500;line-height:1}.admin-analytics__lede{max-width:38rem;font-size:var(--fs-xl);color:var(--text-2);margin:0;line-height:1.55}.admin-analytics__range{align-self:end}.admin-analytics__panel{background:var(--surface,#fff);border:1px solid var(--line);border-radius:var(--radius-md,10px);padding:var(--sp-6);gap:var(--sp-4);flex-direction:column;display:flex}.admin-analytics__panel-header h2{margin:0 0 var(--sp-1);font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:-.015em;color:var(--text);font-weight:500}.admin-analytics__panel-header p{font-size:var(--fs-sm);color:var(--text-2);max-width:50rem;margin:0}.admin-analytics__loading{align-items:center;gap:var(--sp-2);color:var(--text-2);font-size:var(--fs-sm);display:inline-flex}.admin-analytics__empty{color:var(--text-3);font-size:var(--fs-sm);font-style:italic}.admin-analytics__panel-notes{font-size:var(--fs-xs);color:var(--text-3);margin:0;font-style:italic}.admin-analytics__pulse,.admin-analytics__chat-summary{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;display:grid}.admin-analytics__stat{flex-direction:column;gap:2px;display:flex}.admin-analytics__stat-value{font-family:var(--font-display);font-size:var(--fs-3xl);letter-spacing:-.015em;color:var(--text);font-weight:500;line-height:1}.admin-analytics__stat-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-weight:500}.admin-analytics__stat-subtle{font-size:var(--fs-xs);color:var(--text-3)}.admin-analytics__pulse-spark{gap:var(--sp-1);border-top:1px dashed var(--line);padding-top:var(--sp-3);flex-direction:column;grid-column:1/-1;display:flex}.admin-analytics__pulse-spark-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}.admin-analytics__sparkline{display:block}.admin-analytics__sparkline polyline{stroke:var(--accent,#2563eb);stroke-width:1.5px;fill:none}.admin-analytics__sparkline-empty{font-size:var(--fs-xs);color:var(--text-3);font-style:italic}.admin-analytics__table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.admin-analytics__table thead th{text-align:left;font-weight:500;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line)}.admin-analytics__table tbody td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line-soft,#0000000a);color:var(--text);vertical-align:top}.admin-analytics__table tbody tr:last-child td{border-bottom:none}.admin-analytics__table th.num,.admin-analytics__table td.num{text-align:right;font-variant-numeric:tabular-nums}.admin-analytics__table .muted{color:var(--text-3);font-style:italic}.admin-analytics__truncate{text-overflow:ellipsis;white-space:nowrap;max-width:32rem;overflow:hidden}.admin-analytics__clickable{cursor:pointer;transition:background .12s ease-out}.admin-analytics__clickable:hover{background:var(--hover,#00000006)}.admin-analytics__blockers{gap:var(--sp-6);flex-direction:column;display:flex}.admin-analytics__blocker-sub h3{margin:0 0 var(--sp-2);font-family:var(--font-sans);font-size:var(--fs-md);color:var(--text);font-weight:500}.admin-analytics__timeline{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.admin-analytics__timeline-row{gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--line-soft,#0000000a);font-size:var(--fs-sm);grid-template-columns:64px 96px 1fr;align-items:baseline;display:grid}.admin-analytics__timeline-row:last-child{border-bottom:none}.admin-analytics__timeline-when{color:var(--text-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.admin-analytics__timeline-text{color:var(--text);line-height:1.5}.admin-analytics__timeline-text .muted{color:var(--text-3)}.admin-analytics__filters{gap:var(--sp-4);margin-top:calc(-1 * var(--sp-6));flex-wrap:wrap;align-items:end;display:flex}.admin-analytics__filter-slot{gap:var(--sp-1);flex-direction:column;min-width:220px;display:flex}.admin-analytics__filter-slot .label{text-transform:uppercase;letter-spacing:.12em;font-size:var(--fs-xs);color:var(--text-3);font-weight:500}.leak-board{gap:var(--sp-2);background:var(--surface,#fff);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-3);transition:opacity var(--transition);flex-direction:column;display:flex}.leak-board.is-refreshing{opacity:.7}.leak-row{border-radius:var(--radius-sm);background:var(--bg);transition:background var(--transition)}.leak-row.is-expanded{background:var(--surface,#fff);box-shadow:0 1px 0 var(--line) inset}.leak-row__head{gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4);text-align:left;cursor:pointer;border-radius:var(--radius-sm);font-size:var(--fs-md);color:var(--text);transition:background var(--transition);background:0 0;border:none;grid-template-columns:18px 1fr 28px 110px 90px 96px;align-items:center;display:grid}.leak-row__head:not([aria-disabled=true]):hover{background:var(--surface-2,#00000008)}.leak-row__head:not([aria-disabled=true]):focus-visible{box-shadow:var(--ring);outline:none}.leak-row__head[aria-disabled=true]{cursor:default;opacity:var(--disabled-opacity)}.leak-row__chevron{color:var(--text-3);justify-content:center;align-items:center;display:inline-flex}.leak-row__label{font-weight:500}.leak-row__how{width:20px;height:20px;padding:0!important}.leak-row__cost{font-variant-numeric:tabular-nums;text-align:right;color:var(--text);font-weight:500}.leak-row__count{font-variant-numeric:tabular-nums;text-align:right;color:var(--text-2);font-size:var(--fs-sm);justify-content:flex-end;align-items:baseline;gap:var(--sp-1);display:inline-flex}.leak-row__count-unit{color:var(--text-3);font-size:var(--fs-xs)}.leak-row__spark{color:var(--text-2);justify-content:flex-end;display:inline-flex}.admin-analytics__sparkline{stroke:currentColor;stroke-width:1.5px;fill:none}.admin-analytics__sparkline-empty{color:var(--text-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.leak-row__tooltip{gap:var(--sp-2);flex-direction:column;max-width:320px;display:flex}.leak-row__tooltip-body{font-size:var(--fs-sm);color:var(--text);line-height:1.5}.leak-row__tooltip-hint{font-size:var(--fs-xs);color:var(--status-warning-text);background:var(--status-warning-bg);border:1px solid var(--status-warning-border);border-radius:var(--radius-xs);padding:var(--sp-1) var(--sp-2)}.leak-drill{padding:0 var(--sp-4) var(--sp-4);gap:var(--sp-3);font-size:var(--fs-sm);flex-direction:column;display:flex}.leak-drill__crumbs{align-items:center;gap:var(--sp-1);color:var(--text-3);font-size:var(--fs-xs);flex-wrap:wrap;display:inline-flex}.leak-drill__crumb{align-items:center;gap:var(--sp-1);color:var(--text-2);display:inline-flex}.leak-drill__crumb>span{font-weight:500}.leak-drill__dimension{font-size:var(--fs-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:.14em;font-weight:500}.leak-drill__rows{gap:var(--sp-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.leak-drill__row-btn{gap:var(--sp-3);width:100%;padding:var(--sp-2) var(--sp-3);border:none;border-bottom:1px solid var(--line-soft,#0000000d);text-align:left;cursor:pointer;font-size:var(--fs-sm);color:var(--text);transition:background var(--transition);background:0 0;grid-template-columns:1fr 110px 80px 18px;align-items:baseline;display:grid}.leak-drill__row-btn:hover:not(:disabled){background:var(--surface-2,#00000008)}.leak-drill__row-btn:disabled{cursor:default}.leak-drill__row-label{font-weight:500}.leak-drill__row-sublabel{font-size:var(--fs-xs);color:var(--text-3);grid-column:1;margin-top:2px;font-weight:400;display:block}.leak-drill__row-cost{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.leak-drill__row-count{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-2)}.leak-drill__row-arrow{color:var(--text-3)}.combobox{min-width:220px;position:relative}.combobox.is-disabled{opacity:var(--disabled-opacity);pointer-events:none}.combobox__trigger{text-align:left;width:100%;justify-content:space-between!important}.combobox__trigger-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.combobox__input-wrap{align-items:center;display:flex;position:relative}.combobox__icon{left:var(--sp-2);color:var(--text-3);pointer-events:none;position:absolute}.combobox__input{padding-left:calc(var(--sp-2) * 2 + 13px);padding-right:calc(var(--sp-2) * 2 + 16px);width:100%}.combobox__clear{right:var(--sp-1);width:20px;height:20px;position:absolute;padding:0!important}.combobox__pop{right:0}.combobox__row{padding:var(--sp-2) var(--sp-3);text-align:left;cursor:pointer;font-size:var(--fs-sm);color:var(--text);border:none;border-bottom:1px solid var(--line-soft,#0000000a);background:0 0;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.combobox__row:last-child{border-bottom:none}.combobox__row.is-active{background:var(--surface-2,#0000000a)}.combobox__row.is-selected{font-weight:500}.combobox__row--clear{color:var(--text-3);font-style:italic;font-size:var(--fs-xs);border-bottom:1px solid var(--line)}.combobox__row-label{font-size:var(--fs-sm)}.combobox__row-sublabel{font-size:var(--fs-xs);color:var(--text-3)}.combobox__empty,.combobox__more{padding:var(--sp-3);font-size:var(--fs-xs);color:var(--text-3);text-align:center}.app-root.admin-users{background:var(--bg);min-height:100vh;position:relative}.app-root.admin-users:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 18% 22%,#00000003 0%,#0000 60%),radial-gradient(circle at 82% 78%,#2563eb04 0%,#0000 55%);position:fixed;inset:0}.admin-users>*{z-index:1;position:relative}.admin-users__header{align-items:center;gap:var(--sp-4);border-bottom:1px solid var(--line);padding:1.25rem 3rem;display:flex}.admin-users__back{gap:var(--sp-1)!important}.admin-users__brand{margin-left:auto}.admin-users__eyebrow{font-family:var(--font-sans);font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3);font-weight:500}.admin-users__main{max-width:1000px;margin:0 auto;padding:4rem 3rem 6rem;animation:.4s ease-out admin-users-fade-up}@keyframes admin-users-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.admin-users__hero{align-items:end;gap:var(--sp-6);margin-bottom:var(--sp-10);grid-template-columns:1fr auto;display:grid}.admin-users__title{margin:0 0 var(--sp-3);font-family:var(--font-display);letter-spacing:-.025em;font-variation-settings:"SOFT" 40, "WONK" 0;color:var(--text);font-size:clamp(2.4rem,4.5vw,3.5rem);font-weight:500;line-height:1}.admin-users__lede{max-width:38rem;font-size:var(--fs-xl);color:var(--text-2);margin:0;line-height:1.55}.admin-users__hero>.btn{align-self:end}.admin-users__banner{margin-bottom:var(--sp-4)}.admin-users__loading{text-align:center;color:var(--text-3);font-size:var(--fs-md);padding:4rem 0}.admin-users__list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.admin-users__row{gap:var(--sp-4);padding:var(--sp-5) 0;border-bottom:1px solid var(--line);transition:var(--transition);grid-template-columns:auto 1fr auto;align-items:center;display:grid}.admin-users__row.is-inactive .admin-users__avatar,.admin-users__row.is-inactive .admin-users__identity{opacity:.55}.admin-users__avatar{border-radius:var(--radius-pill);background:var(--surface-alt);border:1px solid var(--line);width:44px;height:44px;font-family:var(--font-sans);font-size:var(--fs-sm);letter-spacing:.02em;color:var(--text-2);justify-content:center;align-items:center;font-weight:600;display:flex}.admin-users__identity{min-width:0}.admin-users__name-line{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);display:flex}.admin-users__name{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--text);letter-spacing:-.005em;font-weight:500}.admin-users__self{font-family:var(--font-sans);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.14em;color:var(--text-3);padding-left:var(--sp-2);border-left:1px solid var(--line)}.admin-users__meta{gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-2);flex-wrap:wrap;align-items:center;display:flex}.admin-users__email{font-family:var(--font-sans);letter-spacing:.005em}.admin-users__divider{color:var(--text-3)}.admin-users__actions{gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.app-root .admin-users__danger{color:var(--status-error-text)}.app-root .admin-users__danger:hover:not(:disabled){background:var(--status-error-bg)}@media (width<=720px){.admin-users__header,.admin-users__main{padding-left:1.25rem;padding-right:1.25rem}.admin-users__hero{grid-template-columns:1fr}.admin-users__row{grid-template-columns:auto 1fr}.admin-users__actions{grid-column:1/-1;justify-content:flex-start}}.presence-avatars{isolation:isolate;align-items:center;display:inline-flex}.presence-avatars .presence-avatars__chip{box-shadow:0 0 0 2px var(--surface);margin-left:-8px}.presence-avatars .presence-avatars__chip:first-child{margin-left:0}.presence-avatars--sm .presence-avatars__chip{margin-left:-6px}.presence-avatars .presence-avatars__chip--more{background:var(--surface-alt);color:var(--text-3);letter-spacing:0}.profile-menu{display:inline-flex;position:relative}.profile-menu__avatar{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);width:32px;height:32px;color:var(--text);font-size:var(--fs-xs);letter-spacing:.02em;cursor:pointer;transition:var(--transition);justify-content:center;align-items:center;font-weight:600;display:inline-flex}.profile-menu__avatar:hover{border-color:var(--text-3);background:var(--surface-2)}.profile-menu__avatar:focus-visible{box-shadow:var(--ring);border-color:var(--text);outline:none}.profile-menu__panel{top:calc(100% + var(--sp-2));z-index:var(--z-dropdown);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:220px;padding:var(--sp-2);gap:var(--sp-1);flex-direction:column;display:flex;position:absolute;right:0;box-shadow:0 10px 28px #0000001a}.profile-menu__header{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);margin-bottom:var(--sp-1);color:var(--text-2);align-items:flex-start;display:flex}.profile-menu__identity{min-width:0}.profile-menu__name{font-size:var(--fs-sm);color:var(--text);text-overflow:ellipsis;font-weight:600;overflow:hidden}.profile-menu__email{font-size:var(--fs-xs);color:var(--text-2);text-overflow:ellipsis;overflow:hidden}.profile-menu__item{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-xs);font-size:var(--fs-sm);color:var(--text);cursor:pointer;text-align:left;transition:var(--transition);background:0 0;border:none;display:flex}.profile-menu__item:hover{background:var(--surface-2)}.profile-menu__item--danger{color:var(--status-error-text)}.profile-menu__item--danger:hover{background:var(--status-error-bg)}.app-root.landing{background:var(--bg);min-height:100vh;padding:0;position:relative}.app-root.landing:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 18% 22%,#00000003 0%,#0000 60%),radial-gradient(circle at 82% 78%,#2563eb04 0%,#0000 55%);position:fixed;inset:0}.landing>*{z-index:1;position:relative}.landing-header{border-bottom:1px solid var(--line);z-index:2;justify-content:space-between;align-items:baseline;padding:1.5rem 3rem;display:flex;position:relative}.landing-header-right{align-items:center;gap:var(--sp-3);display:flex}.landing-brand{align-items:center;gap:.9rem;display:flex}.landing-logo{width:auto;height:32px;display:block}.landing-sub{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.14em;color:var(--text-3);border-left:1px solid var(--line);padding-left:.9rem;font-size:.78rem;font-weight:500}.landing-hero{max-width:1100px;margin:0 auto;padding:5rem 3rem 3rem;animation:.45s ease-out fade-up}.landing-hero h1.display{letter-spacing:-.035em;font-variation-settings:"SOFT" 40, "WONK" 0;color:var(--text);margin:.6rem 0 1.25rem;font-size:clamp(2.5rem,5.5vw,4.75rem);font-weight:500;line-height:.98}.landing-lede{color:var(--text-2);max-width:36rem;font-size:1.1rem;line-height:1.55}.landing-curricula{max-width:1100px;margin:0 auto;padding:1.5rem 3rem 6rem}.landing-filter{margin-bottom:var(--sp-6);max-width:36rem;position:relative}.landing-filter-icon{top:50%;left:var(--sp-3);color:var(--text-3);pointer-events:none;position:absolute;transform:translateY(-50%)}.app-root .landing-filter-input{padding-left:calc(var(--sp-3) + 14px + var(--sp-2))}.landing-section{margin-bottom:var(--sp-8)}.landing-section-head{margin-bottom:var(--sp-3);justify-content:space-between;align-items:baseline;display:flex}.landing-section-count{font-size:var(--fs-xs);color:var(--text-3);letter-spacing:.02em}.landing-loading,.landing-error{text-align:center;color:var(--text-3);padding:3rem;font-size:.9rem}.landing-error{color:var(--status-stale)}.curriculum-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.curriculum-grid>li{list-style:none;animation:.4s ease-out both card-in}.curriculum-grid>li:first-child{animation-delay:20ms}.curriculum-grid>li:nth-child(2){animation-delay:60ms}.curriculum-grid>li:nth-child(3){animation-delay:.1s}.curriculum-grid>li:nth-child(4){animation-delay:.14s}.curriculum-grid>li:nth-child(5){animation-delay:.18s}.curriculum-grid>li:nth-child(n+6){animation-delay:.22s}@keyframes card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.curriculum-card,.curriculum-new{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:left;cursor:pointer;width:100%;height:200px;font-family:var(--font-sans);flex-direction:column;align-items:stretch;gap:.75rem;padding:1.5rem;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex;position:relative}.curriculum-card:hover,.curriculum-new:hover{border-color:var(--text);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.curriculum-new{color:var(--text-3);text-align:center;background:0 0;border-style:dashed;justify-content:center;align-items:center}.curriculum-new:hover{color:var(--text);background:var(--surface);border-style:solid}.curriculum-new-icon{background:var(--surface-alt);width:44px;height:44px;color:var(--text);border-radius:999px;justify-content:center;align-items:center;margin-bottom:.4rem;display:flex}.curriculum-new-label{color:var(--text);font-size:.95rem;font-weight:600}.curriculum-new-meta{color:var(--text-3);font-size:.75rem}.curriculum-card-menu-trigger{width:28px;height:28px;color:var(--text-3);opacity:0;z-index:2;border-radius:6px;justify-content:center;align-items:center;transition:opacity .15s,background .15s,color .15s;display:flex;position:absolute;top:.75rem;right:.75rem}.curriculum-card:hover .curriculum-card-menu-trigger{opacity:1}.curriculum-card-menu-trigger:hover{background:var(--surface-alt);color:var(--text)}.curriculum-card-menu{z-index:20;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:10px;flex-direction:column;min-width:150px;padding:.35rem;display:flex;position:absolute;top:2.5rem;right:.75rem}.curriculum-card-menu button{text-align:left;width:100%;font-family:var(--font-sans);color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:flex-start;align-items:center;gap:.5rem;padding:.5rem .65rem;font-size:.82rem;font-weight:500;transition:background .12s,color .12s;display:flex}.curriculum-card-menu button:hover{background:var(--surface-alt);color:var(--text)}.curriculum-card-menu-danger{color:#c53030!important}.curriculum-card-menu-danger:hover{color:#9b2c2c!important;background:#fff5f5!important}.curriculum-card-title{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.25rem 0 .4rem;font-size:1.4rem;font-weight:500;line-height:1.15;display:-webkit-box;overflow:hidden}.curriculum-card-stats{color:var(--text-2);align-items:center;gap:.75rem;margin-top:auto;font-size:.82rem;display:flex}.curriculum-card-stats strong{font-family:var(--font-display);color:var(--text);margin-right:.25rem;font-size:1.1rem;font-weight:600}.curriculum-card-stat-label{color:var(--text-3)}.curriculum-card-divider{background:var(--line);width:1px;height:14px}.curriculum-card-foot{color:var(--text-3);border-top:1px solid var(--line-soft);align-items:center;gap:.35rem;padding-top:.75rem;font-size:.72rem;display:flex}.curriculum-card-ownership{isolation:isolate;display:inline-flex}.curriculum-card-ownership__chip{cursor:help}.curriculum-card-ownership__chip+.curriculum-card-ownership__chip{box-shadow:0 0 0 2px var(--surface);margin-left:-6px}.curriculum-card-ownership__chip--editor{background:var(--surface-2,var(--surface));color:var(--text-2)}.curriculum-card-published-badge{cursor:pointer;transition:filter var(--transition)}.curriculum-card-published-badge:hover,.curriculum-card-published-badge:focus-visible{filter:brightness(.95)}.curriculum-card-published-badge:focus-visible{box-shadow:var(--ring);outline:none}@keyframes spin{to{transform:rotate(360deg)}}.app-root .confirm-dialog{max-width:380px;padding:var(--sp-6) var(--sp-6) var(--sp-5);align-items:stretch;gap:var(--sp-4);flex-direction:column;display:flex}.app-root .confirm-dialog__icon{border-radius:var(--radius-pill);flex:none;justify-content:center;align-self:flex-start;align-items:center;width:44px;height:44px;display:inline-flex;box-shadow:inset 0 0 0 1px}.app-root .confirm-dialog__icon--warning{color:var(--status-warning-text);background:var(--status-warning-bg)}.app-root .confirm-dialog__icon--danger{color:var(--status-error-text);background:var(--status-error-bg)}.app-root .confirm-dialog__icon--info{color:var(--status-info-text);background:var(--status-info-bg)}.app-root .confirm-dialog__content{gap:var(--sp-2);flex-direction:column;display:flex}.app-root .confirm-dialog__title{font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:-.01em;color:var(--text);margin:0;font-weight:500;line-height:1.25}.app-root .confirm-dialog__body{font-family:var(--font-body);font-size:var(--fs-md);color:var(--text-2);margin:0;line-height:1.5}.app-root .confirm-dialog__extra{margin-top:var(--sp-2)}.app-root .confirm-dialog__actions{justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-2);display:flex}.rte-bubble{background:var(--text);border-radius:9px;align-items:center;gap:2px;padding:3px 5px;animation:.14s ease-out rte-bubble-in;display:flex;box-shadow:0 4px 20px #11111138,0 1px 4px #11111124}@keyframes rte-bubble-in{0%{opacity:0;transform:translateY(4px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.rte-bubble button{color:#ffffff8c;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:26px;padding:0;transition:color .1s,background .1s;display:inline-flex}.rte-bubble button:hover{color:#fff;background:#ffffff1a}.rte-bubble button.is-active{color:#fff;background:#ffffff2e}.rte-bubble-sep{background:#ffffff2e;flex-shrink:0;width:1px;height:16px;margin:0 3px}.rte-content{padding:.65rem .8rem}.rte-content .ProseMirror{font-family:var(--font-body);color:var(--text);outline:none;font-size:.88rem;line-height:1.62}.rte-content .ProseMirror>:first-child{margin-top:0}.rte-content .ProseMirror>:last-child{margin-bottom:0}.rte-content .ProseMirror p{margin:0 0 .6rem}.rte-content .ProseMirror h1,.rte-content .ProseMirror h2,.rte-content .ProseMirror h3{font-family:var(--font-display);color:var(--text);margin:1rem 0 .35rem;font-weight:500}.rte-content .ProseMirror h1{font-size:1.35rem}.rte-content .ProseMirror h2{font-size:1.15rem}.rte-content .ProseMirror h3{letter-spacing:.01em;font-size:1rem}.rte-content .ProseMirror strong{color:var(--text);font-weight:600}.rte-content .ProseMirror em{font-style:italic}.rte-content .ProseMirror ul,.rte-content .ProseMirror ol{margin:.4rem 0 .8rem;padding-left:1.4rem}.rte-content .ProseMirror ul{list-style:outside}.rte-content .ProseMirror ol{list-style:decimal}.rte-content .ProseMirror li{margin:.15rem 0}.rte-content .ProseMirror li>p{margin:0}.rte-content .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--text-3);pointer-events:none;height:0;font-style:italic}.card-hero{animation:.4s ease-out fade-up;position:relative}.activity-card.is-focused,.asset-card.is-focused,.activity-item-body.is-focused,.section.is-focused,.lesson-hero.is-focused{background-color:var(--accent-dim);transition:background-color var(--transition-fast) ease-out}.asset-card{position:relative}.card-kicker{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.14em;color:var(--text-3);align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.7rem;font-weight:600;display:flex}.card-kicker-dot{background:var(--text-3);border-radius:999px;width:6px;height:6px}.card-title{font-family:var(--font-display);letter-spacing:-.028em;color:var(--text);font-variation-settings:"SOFT" 30, "WONK" 0;max-width:24ch;margin:0 0 1.25rem;font-size:clamp(2.25rem,4.4vw,3.75rem);font-weight:500;line-height:1.02}.card-description{color:var(--text-2);max-width:44rem;margin-bottom:.75rem;font-size:1.05rem;line-height:1.55}.card-subtitle{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--text-2);max-width:44rem;margin:-.75rem 0 var(--sp-5);font-variation-settings:"SOFT" 50, "WONK" 0;font-style:italic;line-height:1.45}.card-short{color:var(--text-3);max-width:44rem;margin-bottom:1.25rem;font-size:.92rem;font-style:italic;line-height:1.55}.inline-asset-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.6rem;margin-top:.25rem;display:grid}.inline-asset{border:1px solid var(--line);background:var(--surface);color:inherit;border-radius:10px;flex-direction:column;gap:.35rem;text-decoration:none;transition:all .15s;display:flex;overflow:hidden}.inline-asset:hover{border-color:var(--text-3);transform:translateY(-1px);box-shadow:0 4px 14px #0000000f}.inline-asset--failed{background:#dc26260a;border-color:#dc262666}.inline-asset--pending{opacity:.75;border-style:dashed}.inline-asset--clickable{cursor:zoom-in}.inline-asset-thumb{aspect-ratio:16/9;background:var(--surface-alt);width:100%;color:var(--text-3);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.inline-asset-thumb img{object-fit:cover;width:100%;height:100%;display:block}.inline-asset-overlay{color:var(--text-2);background:#ffffffb3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.inline-asset--failed .inline-asset-overlay{color:#991b1b;background:#dc262614}.inline-asset-placeholder{font-family:var(--font-sans);letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:.3rem;font-size:.6rem;font-weight:500;display:flex}.inline-asset-pdf-badge{top:var(--sp-1);right:var(--sp-1);font-family:var(--font-sans);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:#fff;border-radius:var(--radius-xs);pointer-events:none;background:#0000008c;padding:1px 5px;font-weight:600;position:absolute}.lb-pdf-preview{cursor:pointer;justify-content:center;align-items:center;width:100%;height:100%;text-decoration:none;display:flex;position:relative}.lb-pdf-preview:hover .lb-pdf-action,.lb-pdf-preview:focus-visible .lb-pdf-action{background:#000000eb}.lb-pdf-preview:focus-visible{outline:2px solid var(--text);outline-offset:4px;border-radius:var(--radius-sm)}.lb-pdf-action{bottom:var(--sp-3);right:var(--sp-3);align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);color:#fff;border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:var(--fs-xs);letter-spacing:.01em;transition:background var(--transition);pointer-events:none;background:#000000b8;border:1px solid #ffffff2e;font-weight:500;display:inline-flex;position:absolute;box-shadow:0 2px 10px #00000052}.inline-asset-meta{font-family:var(--font-sans);color:var(--text-2);justify-content:space-between;align-items:center;padding:.4rem .55rem .5rem;font-size:.68rem;display:flex}.inline-asset-field{color:var(--text);font-weight:500}.inline-asset-index{color:var(--text-3);font-weight:400}.inline-asset-status{color:var(--text-3);text-transform:lowercase;align-items:center;gap:.25rem;display:inline-flex}.inline-asset--success .inline-asset-status{color:var(--accent)}.activity-asset-count{font-family:var(--font-sans);letter-spacing:.08em;color:var(--text-3);border:1px solid var(--line);border-radius:999px;margin-left:.5rem;padding:.1rem .45rem;font-size:.62rem}.asset-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);gap:0;margin:.5rem 0 .2rem;display:flex;overflow:hidden}.asset-card-preview{background:var(--surface-alt);flex-direction:column;flex-shrink:0;gap:1px;width:140px;display:flex}.asset-card-meta{border-left:1px solid var(--line);flex-direction:column;flex:1;gap:.5rem;min-width:0;padding:.7rem .9rem .75rem;display:flex}.asset-card-status-row{gap:.3rem;margin-bottom:.2rem;display:flex}.asset-card-meta .activity-field--helper{padding:.35rem .65rem}.asset-card-meta .activity-field-label{margin-bottom:.1rem;font-size:.6rem}.asset-thumb{aspect-ratio:4/3;color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:.3rem;display:flex;position:relative;overflow:hidden}.asset-thumb img{object-fit:cover;width:100%;height:100%;display:block}.asset-thumb--ready{cursor:zoom-in;transition:opacity .15s}.asset-thumb--ready:hover{opacity:.88}.asset-thumb--pending{background:linear-gradient(90deg, var(--surface-alt) 25%, #ffffff80 50%, var(--surface-alt) 75%);background-size:200% 100%;animation:1.8s ease-in-out infinite shimmer}.asset-thumb--failed{color:#991b1b;background:#dc26260a}.asset-thumb--pdf{cursor:zoom-in;background:var(--surface-alt)}.asset-thumb--pdf-has-preview{background:var(--surface-alt);position:relative;overflow:hidden}.asset-thumb--pdf-has-preview img{object-fit:cover;width:100%;height:100%;display:block}.asset-thumb-pdf-badge{top:var(--sp-1);right:var(--sp-1);font-family:var(--font-sans);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:#fff;border-radius:var(--radius-xs);pointer-events:none;background:#0000008c;padding:2px 6px;font-weight:600;position:absolute}.asset-thumb--missing{cursor:zoom-in;background:var(--surface-alt)}.asset-thumb-label{font-family:var(--font-sans);letter-spacing:.04em;text-transform:uppercase;font-size:.58rem;font-weight:500}.asset-card-empty{aspect-ratio:4/3;color:var(--text-3);background:var(--surface-alt);flex-direction:column;justify-content:center;align-items:center;gap:.3rem;display:flex}.asset-card-empty span{text-align:center;font-family:var(--font-sans);letter-spacing:.04em;text-transform:uppercase;font-size:.58rem;font-weight:500}.pill-selector{align-items:center;gap:.3rem;display:flex}.pill{border:1px solid var(--line);background:var(--surface);font-family:var(--font-sans);letter-spacing:.03em;color:var(--text-3);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:999px;padding:.3rem .75rem;font-size:.64rem;font-weight:550;line-height:1.3;transition:all .15s}.pill:hover:not(.is-active):not(:disabled){color:var(--text-2);border-color:var(--text-3);background:var(--surface-alt)}.pill.is-active{background:var(--text);color:var(--surface);border-color:var(--text)}.pill:disabled{opacity:.5;cursor:default}.pill--sm{padding:.22rem .6rem;font-size:.6rem}.model-selector{align-items:center;gap:.5rem;display:flex}.model-selector .pill-selector{align-items:center}.model-label{font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);flex-shrink:0;font-size:.58rem;font-weight:600;line-height:1}.asset-card-empty .btn{margin-top:.45rem}.asset-regen-row{border-top:1px solid var(--line-soft);margin-top:.35rem;padding-top:.4rem}.asset-feedback{flex-direction:column;gap:.35rem;display:flex}.asset-feedback-input{border:1px solid var(--line);border-radius:var(--radius-xs);width:100%;font-family:var(--font-sans);background:var(--surface);color:var(--text);resize:vertical;padding:.4rem .55rem;font-size:.72rem;line-height:1.45;transition:border-color .12s}.asset-feedback-input::placeholder{color:var(--text-3)}.asset-feedback-input:focus{border-color:var(--focus);outline:none}.asset-feedback-actions{gap:.3rem;display:flex}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.lb{z-index:9999;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#111111d1;justify-content:center;align-items:center;padding:2rem;animation:.18s ease-out lb-fadein;display:flex;position:fixed;inset:0}@keyframes lb-fadein{0%{opacity:0}to{opacity:1}}.lb-panel{border-radius:var(--radius);background:var(--surface);flex-direction:column;max-width:min(860px,88vw);max-height:88vh;animation:.22s cubic-bezier(.16,1,.3,1) lb-scale;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff0f,0 32px 80px -16px #0009}@keyframes lb-scale{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.lb-close{z-index:2;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface);width:30px;height:30px;color:var(--text-2);cursor:pointer;justify-content:center;align-items:center;transition:color .12s,border-color .12s;display:flex;position:absolute;top:.6rem;right:.6rem;box-shadow:0 1px 4px #00000014}.lb-close:hover{color:var(--text);border-color:var(--text-3)}.lb-media{background:repeating-conic-gradient(var(--surface-alt) 0% 25%, var(--surface) 0% 50%) 50% / 16px 16px;flex:0 0 72vh;justify-content:center;align-items:center;min-height:320px;display:flex;overflow:hidden}.lb-img{object-fit:contain;max-width:100%;max-height:72vh;display:block}.lb-fallback{color:var(--text-3);background:var(--surface);flex-direction:column;align-items:center;gap:.6rem;padding:3.5rem 4rem;display:flex}.lb-fallback--error{color:#991b1b}.lb-fallback-title{font-family:var(--font-sans);font-size:.88rem;font-weight:500}.lb-fallback-detail{font-family:var(--font-sans);color:var(--text-3);text-align:center;max-width:30rem;margin:0;font-size:.76rem;line-height:1.5}.lb-action{font-family:var(--font-sans);color:var(--focus);border:1px solid var(--focus);border-radius:var(--radius-xs);align-items:center;gap:.4rem;padding:.35rem .85rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:background .12s;display:inline-flex}.lb-action:hover{background:var(--focus-soft)}.lb-info{border-top:1px solid var(--line-soft);background:var(--surface);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.7rem .9rem;display:flex}.lb-info-left{flex:1;min-width:0}.lb-desc{font-family:var(--font-sans);color:var(--text);margin:0;font-size:.82rem;font-weight:450;line-height:1.5}.lb-tags{flex-shrink:0;align-items:center;gap:.3rem;display:flex}.lb-tag{font-family:var(--font-sans);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line);color:var(--text-3);white-space:nowrap;border-radius:999px;padding:.12rem .42rem;font-size:.58rem;font-weight:600}.lb-tag--link{cursor:pointer;align-items:center;gap:.25rem;text-decoration:none;transition:border-color .12s,color .12s;display:inline-flex}.lb-tag--link:hover{border-color:var(--text-3);color:var(--text)}.gen-stepper{margin:var(--sp-3) 0 0;padding:var(--sp-4);border:1px solid var(--status-info-border);border-radius:var(--radius-sm);background:var(--status-info-bg);font-family:var(--font-body);font-size:var(--fs-sm);animation:.22s ease-out section-open}.gen-stepper-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);color:var(--status-info-text);font-weight:600;font-size:var(--fs-md);display:flex}.gen-stepper-title{flex:1}.gen-stepper-steps,.gen-stepper-groups{gap:var(--sp-1);margin-bottom:var(--sp-3);flex-direction:column;display:flex}.gen-stepper-step{align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;display:flex}.gen-stepper-step-icon{flex-shrink:0;display:flex}.gen-stepper-step.is-done{color:var(--status-success-text)}.gen-stepper-step.is-current{color:var(--status-warning-text);font-weight:500}.gen-stepper-step.is-pending{color:var(--text-3)}.gen-stepper-step.is-failed{color:var(--status-error-text)}.gen-stepper-step-label{text-overflow:ellipsis;white-space:nowrap;line-height:1.3;overflow:hidden}.gen-stepper-group{flex-direction:column;display:flex}.gen-stepper-group-header-row{align-items:center;gap:var(--sp-2);display:flex}.gen-stepper-group-header-row>.gen-stepper-group-header{flex:1}.gen-stepper-group-header{align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;cursor:pointer;text-align:left;color:inherit;font:inherit;background:0 0;border:0;width:100%;display:flex}.gen-stepper-group-header:hover{color:var(--text)}.gen-stepper-group-caret{color:var(--text-3);flex-shrink:0;display:flex}.gen-stepper-group-title{flex:1;font-weight:500}.gen-stepper-group-count{font-variant-numeric:tabular-nums;color:var(--text-3);font-size:var(--fs-xs)}.gen-stepper-group.is-done .gen-stepper-step-icon{color:var(--status-success-text)}.gen-stepper-group.is-current .gen-stepper-step-icon{color:var(--status-warning-text)}.gen-stepper-group.is-failed .gen-stepper-step-icon{color:var(--status-error-text)}.gen-stepper-group-children{margin-left:calc(var(--sp-2) + 12px);padding-left:var(--sp-2);border-left:1px solid var(--status-info-border);flex-direction:column;gap:0;display:flex}.gen-stepper-group-children .gen-stepper-step{font-size:var(--fs-xs);padding:2px 0}.gen-stepper-footer{align-items:center;gap:var(--sp-2);display:flex}.gen-stepper-bar{border-radius:var(--radius-pill);background:#00000014;flex:1;height:4px;position:relative;overflow:hidden}.gen-stepper-bar-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width .3s}.gen-stepper-bar--indeterminate:after{content:"";border-radius:var(--radius-pill);background:var(--accent);width:40%;height:100%;animation:1.4s ease-in-out infinite gen-stepper-bar-indeterminate;position:absolute;top:0;left:-40%}@keyframes gen-stepper-bar-indeterminate{0%{left:-40%}to{left:100%}}.gen-stepper-pct,.gen-stepper-segments{font-variant-numeric:tabular-nums;color:var(--text-3);font-size:var(--fs-xs)}.gen-stepper-error{margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-xs);background:var(--status-error-bg);border:1px solid var(--status-error-border);color:var(--status-error-text);font-size:var(--fs-xs)}.gen-stepper-notice{margin-top:var(--sp-2);font-size:var(--fs-xs)}.overwrite-guard{margin:var(--sp-3) 0 0;padding:var(--sp-4);border:1px solid var(--status-warning-border);border-radius:var(--radius-sm);background:var(--status-warning-bg);font-family:var(--font-body);animation:.22s ease-out section-open}.overwrite-guard-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);font-size:var(--fs-md);color:var(--status-warning-text);font-weight:600;display:flex}.overwrite-guard-options{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.overwrite-guard-option{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface);cursor:pointer;transition:border-color var(--transition);display:flex}.overwrite-guard-option:hover{border-color:var(--text-3)}.overwrite-guard-option.is-selected{border-color:var(--accent);background:#2563eb0a}.overwrite-guard-option.is-destructive.is-selected{border-color:var(--status-error-border);background:var(--status-error-bg)}.overwrite-guard-option input[type=radio]{flex-shrink:0;margin-top:3px}.overwrite-guard-option-text{flex-direction:column;gap:2px;display:flex}.overwrite-guard-option-label{font-size:var(--fs-md);color:var(--text);font-weight:500}.overwrite-guard-option-desc{font-size:var(--fs-xs);color:var(--text-3);line-height:1.4}.overwrite-guard-actions{justify-content:flex-end;gap:var(--sp-2);display:flex}.tasks-item--clickable{cursor:pointer}.tasks-item--clickable:hover{background:#00000008}.tasks-item-bar-row{align-items:center;gap:var(--sp-2);display:flex}.tasks-item-pct{font-variant-numeric:tabular-nums;font-size:var(--fs-2xs);color:var(--text-3);text-align:right;min-width:2rem}.tasks-item-segments{font-variant-numeric:tabular-nums;font-size:var(--fs-2xs);color:var(--text-3)}.tasks-item-elapsed{font-variant-numeric:tabular-nums;font-size:var(--fs-2xs);color:var(--text-3);font-style:italic}.tasks-item-actor-chip{cursor:help;margin-left:var(--sp-1);flex-shrink:0}.batch-panel{gap:var(--sp-3);flex-direction:column;display:flex}.batch-panel-controls{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.batch-with-assets-row{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) 0;cursor:pointer;display:flex}.batch-panel .batch-with-assets-row{border-top:1px solid var(--border-1)}.batch-with-assets-text{gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-1);flex-direction:column;display:flex}.batch-with-assets-hint{color:var(--text-2);font-size:var(--fs-xs)}.batch-panel-toggle{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;margin-left:auto;display:flex}.batch-panel-tree{gap:var(--sp-1);flex-direction:column;display:flex}.batch-unit-row{align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;display:flex}.batch-unit-expand{cursor:pointer;color:var(--text-3);background:0 0;border:none;padding:0;display:flex}.batch-unit-label{font-size:var(--fs-md);color:var(--text);flex:1;font-weight:500}.batch-unit-count{font-size:var(--fs-xs);color:var(--text-3);font-variant-numeric:tabular-nums}.batch-lesson-list{padding-left:calc(var(--sp-4) + var(--sp-2));flex-direction:column;gap:2px;animation:.18s ease-out section-open;display:flex}.batch-lesson-row{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-xs);cursor:pointer;transition:background var(--transition-fast);display:flex}.batch-lesson-row:hover{background:#00000005}.batch-lesson-row.is-locked{opacity:var(--disabled-opacity);cursor:not-allowed}.batch-lesson-label{font-size:var(--fs-sm);color:var(--text);flex:1}.controls{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:2rem;padding:1.25rem 0 2rem;display:flex}.control-divider{background:var(--line);width:1px;height:20px;margin:0 .25rem}.control-spacer{flex:1}.controls-last-edit{font-size:var(--fs-xs);color:var(--text-3);font-family:var(--font-sans);letter-spacing:.01em;margin-left:auto}.status-pill{text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--line);background:var(--surface);color:var(--text-2);border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .75rem .35rem .55rem;font-size:.72rem;font-weight:500;display:inline-flex}.status-pill-dot{border-radius:999px;width:7px;height:7px}.status-pill--planned{color:var(--text-3);border-color:var(--line)}.status-pill--planned .status-pill-dot{background:var(--status-planned)}.status-pill--generating{color:#b45309;border-color:#fde68a}.status-pill--generating .status-pill-dot{background:var(--status-generating);animation:1.2s ease-in-out infinite pulse-dot}.status-pill--generated{color:#065f46;border-color:#a7f3d0}.status-pill--generated .status-pill-dot{background:var(--status-generated)}.status-pill--edited{color:#1e3a8a;border-color:#bfdbfe}.status-pill--edited .status-pill-dot{background:var(--status-edited)}.status-pill--stale{color:#991b1b;border-color:#fecaca}.status-pill--stale .status-pill-dot{background:var(--status-stale)}.tile-grid{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.25rem 2rem;margin-bottom:2rem;padding:1.5rem 0;display:grid}.tile{align-items:flex-start;gap:.75rem;min-width:0;display:flex}.tile-icon{width:28px;height:28px;color:var(--text-2);flex:none;justify-content:center;align-items:center;margin-top:2px;display:flex}.tile-body{flex-direction:column;flex:auto;gap:.1rem;min-width:0;display:flex}.tile-value{font-family:var(--font-display);color:var(--text);letter-spacing:-.005em;font-size:1.05rem;font-weight:600;line-height:1.2}.tile-value--empty{color:var(--text-3);font-style:italic;font-weight:400;font-family:var(--font-sans);font-size:.9rem}.tile-label{font-family:var(--font-sans);color:var(--text-3);font-size:.78rem;line-height:1.3}.section{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:.65rem;transition:border-color .15s;overflow:hidden}.section[data-open=true]{border-color:var(--line);overflow:visible}.section:hover{border-color:var(--line)}.section-header{width:100%;font-family:var(--font-sans);color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;padding:1rem 1.25rem;font-size:.95rem;font-weight:600;display:flex}.section-header:hover{background:#00000004}.section-chev{color:var(--text-3);flex:none;transition:transform .2s}.section[data-open=true] .section-chev{transform:rotate(90deg)}.section-title{flex:auto}.section-count{font-family:var(--font-sans);color:var(--text-3);background:var(--surface-alt);border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:500}.section-body{border-top:1px solid var(--line-soft);color:var(--text-2);padding:1rem 1.25rem 1.25rem;font-size:.92rem;line-height:1.6;animation:.22s ease-out section-open}@keyframes section-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.section-body p{margin-bottom:.75rem}.section-body p:last-child{margin-bottom:0}.section-body ul,.section-body ol{margin-bottom:.75rem;padding-left:1.25rem}.section-body li{margin-bottom:.35rem}.section-body strong{color:var(--text);font-weight:600}.section-empty{color:var(--text-3);font-size:.88rem;font-style:italic}.key-terms-panel{gap:var(--sp-3);flex-direction:column;display:flex}.key-terms-empty{align-items:center;gap:var(--sp-2);color:var(--text-3);font-size:var(--fs-sm);display:inline-flex}.key-terms-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.key-term-row{border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:var(--sp-3);background:var(--surface-alt)}.key-term-row-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.key-term-row-title{align-items:center;gap:var(--sp-2);flex-wrap:wrap;flex:auto;min-width:0;display:flex}.key-term-term{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--text)}.key-term-chips{align-items:center;gap:var(--sp-1);flex-wrap:wrap;display:inline-flex}.key-term-row-actions{align-items:center;gap:var(--sp-1);flex:none;display:inline-flex}.key-term-definition{margin:var(--sp-2) 0 0;font-size:var(--fs-md);color:var(--text-2);line-height:1.5}.key-term-definition-field{gap:var(--sp-1);margin-top:var(--sp-2);font-size:var(--fs-md);color:var(--text-2);flex-direction:column;line-height:1.5;display:flex}.key-term-cascade-hint{align-items:flex-start;gap:var(--sp-1);color:var(--text-3);font-size:var(--fs-xs);margin:0;font-style:italic;line-height:1.35;display:flex}.key-term-cascade-hint>svg{flex:none;margin-top:2px}.key-term-edit{gap:var(--sp-2);margin-top:var(--sp-2);flex-direction:column;display:flex}.key-term-edit-actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:inline-flex}.key-term-error{align-items:center;gap:var(--sp-1);color:var(--status-error-text);font-size:var(--fs-xs);margin-top:var(--sp-1);display:inline-flex}.key-term-add-trigger{align-self:flex-start}.key-term-add-form{gap:var(--sp-2);border:1px dashed var(--line);border-radius:var(--radius-sm);padding:var(--sp-3);background:var(--surface-alt);flex-direction:column;display:flex}.key-term-add-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.key-term-search{align-items:center;gap:var(--sp-2);display:flex}.key-term-search-icon{color:var(--text-3)}.key-term-search .input{flex:auto}.key-term-pick-list{gap:var(--sp-1);flex-direction:column;max-height:240px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.key-term-pick-item{text-align:left;gap:var(--sp-1);width:100%;padding:var(--sp-2) var(--sp-3);border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:var(--surface);cursor:pointer;transition:border-color var(--transition), background var(--transition);flex-direction:column;display:flex}.key-term-pick-item:hover:not(:disabled){border-color:var(--text);background:var(--surface-alt)}.key-term-pick-item:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.key-term-pick-def{color:var(--text-2);font-size:var(--fs-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.standards-table{border:1px solid var(--line);border-radius:var(--radius-xs);grid-template-columns:minmax(140px,auto) 1fr;gap:0;font-size:.88rem;display:grid;overflow:hidden}.standards-table>*{border-bottom:1px solid var(--line-soft);padding:.85rem 1rem}.standards-table>:nth-last-child(-n+2){border-bottom:none}.standards-code{font-family:var(--font-sans);color:var(--text);border-right:1px solid var(--line-soft);background:var(--surface-alt);font-weight:600}.standards-desc{color:var(--text-2);line-height:1.55}.minilist{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.mini-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);text-align:left;cursor:pointer;width:100%;font-family:var(--font-sans);color:inherit;align-items:center;gap:1rem;padding:1rem 1.25rem;transition:all .15s;display:flex}.mini-card:hover{border-color:var(--text);transform:translate(2px)}.mini-card-num{font-family:var(--font-display);color:var(--text-3);min-width:2.25rem;font-size:1.5rem;font-weight:600;line-height:1}.mini-card-body{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.mini-card-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.mini-card-desc{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.mini-card .tag{flex-shrink:0}.mini-card-arrow{color:var(--text-3);flex-shrink:0;transition:transform .15s}.mini-card:hover .mini-card-arrow{color:var(--text);transform:translate(2px)}.entity-thumb--mini{border-radius:6px;flex-shrink:0;width:40px;height:40px;overflow:hidden}.entity-thumb--mini img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .3s;display:block}.entity-thumb--mini.is-loaded img{opacity:1}.entity-thumb--cover{aspect-ratio:16/5;border-radius:var(--radius-sm);width:100%;position:relative;overflow:hidden}.entity-thumb--cover img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .4s;display:block}.entity-thumb--cover.is-loaded img{opacity:1}.entity-thumb--cover:after{content:"";pointer-events:none;background:linear-gradient(#0000,#ffffff80);height:40%;position:absolute;bottom:0;left:0;right:0}.entity-thumb--pending{background:linear-gradient(90deg, var(--surface-alt) 25%, #ffffff80 50%, var(--surface-alt) 75%);background-size:200% 100%;animation:1.8s ease-in-out infinite shimmer}.cover-card .asset-card-preview{width:180px}.cover-card .asset-thumb--ready img,.cover-card .asset-card-empty{aspect-ratio:16/9}.style-ref{background:linear-gradient(135deg,#c4956a0f 0%,#c4956a05 100%);border-left:3px solid #c4956a;border-radius:0 6px 6px 0;margin-top:.5rem;padding:.55rem .75rem .5rem}.style-ref-header{color:#9a7350;align-items:center;gap:.4rem;margin-bottom:.35rem;display:flex}.style-ref-title{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;font-size:.62rem;font-weight:700}.style-ref-scope{font-family:var(--font-sans);color:#b8976e;letter-spacing:.02em;margin-left:auto;font-size:.58rem;font-weight:500}.style-ref-body{color:var(--text-2);font-size:.78rem;line-height:1.55}.style-register{background:linear-gradient(135deg,#c4956a0f 0%,#c4956a05 100%);border-left:3px solid #c4956a;border-radius:0 6px 6px 0;margin-top:.5rem;padding:.55rem .75rem .5rem}.style-register-header{color:#9a7350;align-items:center;gap:.4rem;margin-bottom:.45rem;display:flex}.style-register-title{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;font-size:.62rem;font-weight:700}.style-register-scope{font-family:var(--font-sans);color:#b8976e;letter-spacing:.02em;margin-left:auto;font-size:.58rem;font-weight:500}.taglist{flex-wrap:wrap;gap:.4rem;display:flex}.tag{border:1px solid var(--line);color:var(--text-2);background:var(--surface);border-radius:999px;align-items:center;padding:.25rem .65rem;font-size:.75rem;font-weight:500;display:inline-flex}.card-loading{text-align:center;font-family:var(--font-display);color:var(--text-3);padding:3rem 0;font-size:1rem;font-style:italic;animation:2s ease-in-out infinite pulse}.phase{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:1rem;transition:box-shadow .2s;position:relative;overflow:hidden}.phase[data-open=true]{box-shadow:var(--shadow)}.phase-header{cursor:pointer;text-align:left;width:100%;font-family:var(--font-sans);color:var(--text);background:0 0;border:none;align-items:center;gap:.85rem;padding:1.25rem 1.5rem;transition:background .12s;display:flex}.phase-header:hover{background:#00000004}.phase-duration-unit,.tile-value-unit{margin-left:var(--sp-1);color:var(--text-3);font-size:.85em}.phase-index{font-family:var(--font-display);color:var(--text);letter-spacing:-.02em;min-width:2rem;font-size:1.75rem;font-weight:500;line-height:1}.phase-title{font-family:var(--font-display);color:var(--text);letter-spacing:-.015em;font-size:1.5rem;font-weight:500;line-height:1}.phase-duration{border:1px solid var(--line);color:var(--text-2);background:var(--surface-alt);border-radius:999px;align-items:center;padding:.25rem .6rem;font-size:.72rem;font-weight:500;display:inline-flex}.phase-spacer{flex:1}.phase-count{color:var(--text-3);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:500}.phase-chev{color:var(--text-3);transition:transform .2s}.phase[data-open=true] .phase-chev{transform:rotate(180deg)}.phase-body{border-top:1px solid var(--line-soft);flex-direction:column;gap:1.25rem;padding:1.25rem 1.5rem 1.5rem;animation:.22s ease-out section-open;display:flex}.phase-empty{text-align:center;color:var(--text-3);padding:1rem;font-size:.88rem;font-style:italic}.activity-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);position:relative;overflow:hidden}.activity-card-head{border-bottom:1px solid var(--line-soft);padding:1rem 1.25rem .85rem}.activity-card-title-row{align-items:baseline;gap:.65rem;margin-bottom:.35rem;display:flex}.activity-card-index{font-family:var(--font-display);color:var(--text-3);min-width:1.1rem;font-size:.92rem;font-weight:700}.activity-card-title{font-family:var(--font-sans);color:var(--text);margin:0;font-size:1rem;font-weight:600;line-height:1.3}.activity-card-meta{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:1.75rem;font-size:.78rem;display:flex}.activity-type{color:var(--text-2);font-weight:500}.activity-kind{align-items:center;gap:.3rem;display:inline-flex}.activity-lang{border:1px solid var(--line);color:var(--text-2);border-radius:999px;padding:.15rem .55rem;font-size:.7rem}.meta-sep{color:var(--text-3);opacity:.5}.activity-link{color:var(--text-2);align-items:center;gap:.25rem;font-weight:500;text-decoration:none;display:inline-flex}.activity-link:hover{color:var(--focus)}.app-root .activity-link--button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.app-root .activity-player-dialog{flex-direction:column;max-width:min(1280px,92vw);max-height:90vh;padding:0;display:flex;overflow:hidden}.app-root .activity-player-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);display:flex}.app-root .activity-player-title{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:600;overflow:hidden}.app-root .activity-player-frame{background:var(--bg);border:0;width:100%;height:min(82vh,900px);display:block}.activity-variant-tabs{flex-wrap:wrap;margin-top:.8rem;margin-left:1.75rem}.seg-group .variation-regen-trigger-wrap{margin-left:auto}.activity-card-body{flex-direction:column;gap:1rem;padding:1rem 1.25rem 1.25rem;display:flex}.activity-section{flex-direction:column;gap:.35rem;display:flex}.activity-section--student,.activity-section--teacher{padding-left:var(--sp-3);border-left:2px solid var(--status-info-border)}.activity-section--student .label{color:var(--status-info-text)}.activity-section--teacher{border-left-color:var(--status-warning-border)}.activity-section--teacher .label{color:var(--status-warning-text)}.regen-inline{padding:var(--sp-3);background:var(--alt-bg);border-radius:var(--radius-sm);gap:var(--sp-3);grid-template-columns:1fr auto;align-items:start;display:grid}.regen-inline .textarea{width:100%}.regen-inline-actions{gap:var(--sp-2);align-items:center;display:flex}.regen-inline-error{color:var(--status-error-text);background:var(--status-error-bg);border-radius:var(--radius-xs);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);grid-column:1/-1}.variation-regen-inline{margin:var(--sp-2) 1.75rem 0}.activity-section--teacher .activity-section-body{color:var(--text-2)}.activity-content{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.activity-content-empty,.activity-content-raw{color:var(--text-3);font-size:.85rem;font-style:italic}.activity-content-raw{white-space:pre-wrap;background:var(--surface-alt);border-radius:var(--radius-xs);border:1px solid var(--line);padding:.75rem;font-family:ui-monospace,Cascadia Code,Menlo,monospace;font-size:.78rem}.activity-item{list-style:none}.activity-item-body{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);gap:.75rem;padding:.75rem .9rem;display:flex;overflow:hidden}.activity-item-num{font-family:var(--font-display);color:var(--text-3);text-align:right;flex:none;min-width:1.5rem;font-size:.95rem;font-weight:600}.content-item-regen-trigger{opacity:0;transition:opacity var(--transition);padding:var(--sp-1);color:var(--text-3);flex:none}.activity-item-body:hover .content-item-regen-trigger,.content-item-regen-trigger:focus-visible{opacity:1}.activity-item-body>.tooltip-wrap{align-self:flex-start}.content-item-regen-trigger--busy{width:30px;height:30px;padding:var(--sp-1);flex:none;justify-content:center;align-self:flex-start;align-items:center;display:inline-flex}.activity-item-body.is-regenerating .activity-item-fields{opacity:var(--disabled-opacity);transition:opacity var(--transition)}.content-item-regen-inline{margin-top:var(--sp-2)}.activity-item-fields{flex-direction:column;flex:auto;gap:.65rem;min-width:0;display:flex}.activity-field{flex-direction:column;gap:.15rem;display:flex}.activity-field-value{color:var(--text);font-size:.87rem;line-height:1.5}.activity-empty{color:var(--text-3);font-style:italic}.activity-field--helper{border-left:2px solid var(--text-3);background:#11111106;border-radius:0 4px 4px 0;padding:.5rem .75rem}.activity-field--helper .activity-field-value{font-style:italic}.activity-helper-group{flex-direction:column;gap:.4rem;padding:.25rem 0;display:flex}.activity-raw-details{font-size:.78rem}.activity-raw-details summary{cursor:pointer;color:var(--text-3);padding:.25rem 0}.activity-raw-details pre{background:var(--surface-alt);border-radius:var(--radius-xs);max-height:240px;margin-top:.5rem;padding:.75rem;font-family:ui-monospace,Cascadia Code,Menlo,monospace;font-size:.72rem;overflow:auto}.answer-list{color:var(--text);margin:.25rem 0 0;padding-left:1.25rem;font-size:.87rem}.answer-list li{margin-bottom:.15rem}.activity-nested{flex-direction:column;gap:.35rem;display:flex}.activity-nested-item pre{background:var(--surface-alt);border-radius:var(--radius-xs);border:1px solid var(--line-soft);white-space:pre-wrap;padding:.5rem .75rem;font-family:ui-monospace,Cascadia Code,Menlo,monospace;font-size:.75rem}.assets-summary{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.assets-summary li{background:var(--surface-alt);border-radius:var(--radius-xs);color:var(--text-2);align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.8rem;display:flex}.assets-summary li strong{color:var(--text);min-width:5rem;font-weight:600}.inline-dropdown{align-items:center;display:inline-flex;position:relative}.inline-dropdown select{appearance:none;font-family:var(--font-sans);color:var(--text);background:var(--surface-alt);border:1px solid var(--line);cursor:pointer;border-radius:5px;padding:.2rem 1.4rem .2rem .5rem;font-size:.8rem;font-weight:500;transition:border-color .15s}.inline-dropdown select:hover{border-color:var(--text-3)}.inline-dropdown select:focus{border-color:var(--text);outline:none;box-shadow:0 0 0 2px #1111110f}.inline-dropdown-arrow{pointer-events:none;color:var(--text-3);position:absolute;right:5px}.inline-dropdown-spin{color:var(--text-3);margin-left:4px}.inline-toggle{cursor:pointer;font-family:var(--font-sans);color:var(--text-2);background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:.78rem;display:inline-flex}.inline-toggle:disabled{opacity:.5;cursor:not-allowed}.inline-toggle-track{background:var(--line);border-radius:8px;width:28px;height:16px;transition:background .15s;position:relative}.inline-toggle.is-on .inline-toggle-track{background:var(--text)}.inline-toggle-thumb{background:var(--surface);border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px}.inline-toggle.is-on .inline-toggle-thumb{transform:translate(12px)}.edit-form{border:1px solid var(--text);background:var(--surface);border-radius:10px;flex-direction:column;gap:.9rem;margin:.2rem 0 1rem;padding:1.1rem 1.25rem 1.25rem;display:flex}.edit-field{flex-direction:column;gap:.35rem;display:flex}.edit-error{color:#b42318;background:#ef44440f;border:1px solid #ef444440;border-radius:10px;align-items:center;gap:.4rem;padding:.5rem .75rem;font-size:.82rem;display:flex}.edit-actions{justify-content:flex-end;gap:.5rem;display:flex}.editable{cursor:text;position:relative}.editable:hover>.editable-value,.editable--block:hover{background:linear-gradient(to bottom, transparent 0%, transparent calc(100% - 1px), var(--line) 100%);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px}.editable--text{max-width:100%;display:inline-block}.editable--text.is-empty .editable-value{color:var(--text-3);font-style:italic}.editable-value{display:inline}.editable--block{border-radius:6px;margin:-.1rem -.25rem;padding:.1rem .25rem;transition:background-color .15s;position:relative}.editable--block:hover{background-color:#11111105}.editable.is-editing{background:0 0;width:100%;display:block}.editable.is-editing .input{border-color:var(--text);box-shadow:var(--ring);width:100%;font-size:inherit;font-family:inherit;font-weight:inherit;line-height:inherit;padding:var(--sp-1) var(--sp-2)}.editable-spin{color:var(--text-3);vertical-align:middle;margin-left:.5rem}.editable-error{color:#b42318;align-items:center;gap:.25rem;font-size:.78rem;display:inline-flex}.editable--list{display:block}.editable-chips{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.editable-chip{background:var(--surface-alt);border:1px solid var(--line);color:var(--text);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .55rem .25rem .7rem;font-size:.8rem;transition:border-color .15s;display:inline-flex}.editable-chip:hover{border-color:var(--text-3)}.editable-chip-remove{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;padding:0;display:inline-flex}.editable-chip-remove:hover{color:var(--text);background:#1111110f}.editable-chip-add{border:1px dashed var(--line);border-radius:999px;align-items:center;gap:.2rem;padding:.1rem .35rem .1rem .55rem;display:inline-flex}.editable-chip-add input{color:var(--text);background:0 0;border:none;outline:none;min-width:6rem;font-family:inherit;font-size:.8rem}.editable-chip-add input::placeholder{color:var(--text-3)}.editable-chip-add-btn{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.editable-chip-add-btn:hover:not(:disabled){color:var(--text);background:#1111110f}.editable-chip-add-btn:disabled{opacity:.4;cursor:not-allowed}.card-actions-row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.generate-panel{padding:var(--sp-5) 0 var(--sp-6);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin-bottom:var(--sp-6);display:block}.generate-panel-kicker{display:block}.generate-panel-body{gap:var(--sp-2);flex-direction:column;display:flex}.generate-panel-body>.section{margin-bottom:0}.generate-panel-body>.controls{border-bottom:none;margin-bottom:0;padding:0}.generate-panel+.tile-grid{margin-top:calc(var(--sp-6) * -1);padding-top:var(--sp-6);border-top:none}.variants-out-of-sync{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);font-size:var(--fs-xs);color:var(--status-warning-text);display:inline-flex}.asset-gen-body{gap:var(--sp-3);flex-direction:column;display:flex}.asset-gen-toolbar{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.asset-gen-kind-row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:inline-flex}.app-root .asset-gen-kind-chip{gap:var(--sp-1);font-weight:500}.asset-gen-controls{gap:var(--sp-1);flex-wrap:wrap;align-items:center;display:inline-flex}.asset-gen-tree{border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:var(--surface);max-height:360px;padding:var(--sp-1) 0;flex-direction:column;gap:1px;display:flex;overflow-y:auto}.asset-gen-empty{justify-content:center;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-2);padding:var(--sp-4);display:flex}.asset-gen-empty--idle{color:var(--text-3);font-style:italic}.asset-gen-row{--row-depth:0;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);padding-left:calc(var(--sp-2) + var(--row-depth) * var(--sp-4));font-size:var(--fs-sm);border-radius:var(--radius-xs);text-align:left;width:100%;transition:background var(--transition-fast);display:flex}.asset-gen-row--entity{font-size:var(--fs-md);color:var(--text);font-weight:500}.asset-gen-row--entity:hover{background:#00000006}.asset-gen-row-target{align-items:center;gap:var(--sp-2);min-width:0;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex:1;padding:0;display:inline-flex}.asset-gen-row-target:disabled{cursor:default}.asset-gen-row-target:focus-visible{box-shadow:var(--ring);border-radius:var(--radius-xs);outline:none}.asset-gen-row--leaf{cursor:pointer;color:var(--text-2)}.asset-gen-row--leaf:hover{background:#00000006}.asset-gen-row--leaf.is-disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.asset-gen-row--leaf.is-disabled:hover{background:0 0}.asset-gen-row-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.asset-gen-row-leaf-label{color:var(--text-2);font-weight:400}.asset-gen-row-check{flex-shrink:0}.asset-gen-chev{width:14px;height:14px;color:var(--text-3);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.asset-gen-status{border-radius:var(--radius-pill);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap;border:1px solid #0000;flex-shrink:0;align-items:center;gap:.35rem;padding:.2rem .55rem;font-weight:500;display:inline-flex}.asset-gen-status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.asset-gen-status--missing{background:var(--bg-2);color:var(--text-3);border-color:var(--border)}.asset-gen-status--generated{background:var(--status-success-bg);color:var(--status-success-text);border-color:var(--status-success-border);font-weight:600}.asset-gen-status--mixed{background:var(--status-info-bg);color:var(--status-info-text);border-color:var(--status-info-border);font-weight:600}.asset-gen-status-check{align-items:center;display:inline-flex}.asset-gen-loading{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-2);padding:var(--sp-4);justify-content:center;display:flex}.asset-gen-loading--empty{color:var(--text-3);font-style:italic}.asset-gen-loading--sub{--row-depth:0;padding:var(--sp-2) var(--sp-3);padding-left:calc(var(--sp-3) + var(--row-depth) * var(--sp-3));font-size:var(--fs-xs);color:var(--text-3);border-bottom:1px solid var(--border);justify-content:flex-start}.asset-gen-overwrite{gap:var(--sp-2);border:none;flex-direction:column;margin:0;padding:0;display:flex}.asset-gen-legend{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text);margin:0;margin-bottom:var(--sp-3);letter-spacing:0;text-transform:none;padding:0;font-weight:600}.asset-gen-footer{justify-content:space-between;align-items:center;gap:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.asset-gen-footer-status{font-size:var(--fs-sm);color:var(--text-2);align-items:center;gap:var(--sp-2);font-variant-numeric:tabular-nums;display:inline-flex}.asset-gen-footer-empty{color:var(--text-3);font-style:italic}.asset-gen-footer-skip{color:var(--text-3)}.asset-gen-footer-skip strong{color:var(--text-2);font-weight:600}.asset-gen-footer-loader{color:var(--text-3)}.asset-gen-footer-actions{gap:var(--sp-2);align-items:center;display:inline-flex}.asset-gen-button-count{min-width:1.1rem;height:1.1rem;margin-left:var(--sp-2);border-radius:var(--radius-pill);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:inherit;background:#ffffff2e;justify-content:center;align-items:center;padding:0 .4rem;font-weight:700;line-height:1;display:inline-flex}.app-root .gutter-overlay{z-index:var(--z-dropdown);align-items:center;gap:var(--sp-1);transition:top var(--transition-fast) ease-out, left var(--transition-fast) ease-out;flex-direction:column;display:flex;position:fixed;transform:translateY(-50%)}.app-root .gutter-state-button{background:var(--bg);border-radius:var(--radius-pill);width:30px;height:30px;color:var(--text-3);cursor:pointer;transition:color var(--transition-fast) ease-out, background var(--transition-fast) ease-out, box-shadow var(--transition-fast) ease-out;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.app-root .gutter-state-button:hover{background:var(--surface-alt);color:var(--text);box-shadow:0 1px 3px #00000014}.app-root .gutter-state-button.is-stale,.app-root .gutter-state-button.is-warn{color:var(--status-warning-text)}.app-root .gutter-state-button.is-stale:hover,.app-root .gutter-state-button.is-warn:hover{color:var(--status-warning-text);background:var(--status-warning-bg)}.app-root .gutter-divider{background:var(--line);width:18px;height:1px;margin:var(--sp-1) 0;display:block}.app-root .gutter-state-count{border-radius:var(--radius-pill);background:var(--status-warning-text);min-width:14px;height:14px;color:var(--surface);font-size:var(--fs-2xs);text-align:center;pointer-events:none;padding:0 3px;font-weight:600;line-height:14px;position:absolute;top:-2px;right:-2px}.app-root .gutter-overlay .tooltip-pop{width:max-content;max-width:280px;padding:var(--sp-2) var(--sp-3)}.app-root .staleness-chooser{width:380px}.app-root .staleness-chooser-head{padding-bottom:var(--sp-2);border-bottom:1px solid var(--line-soft);margin-bottom:var(--sp-2);justify-content:space-between;align-items:center;display:flex}.app-root .staleness-chooser-list{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.app-root .staleness-chooser-row{gap:var(--sp-2);flex-direction:column;display:flex}.app-root .staleness-chooser-row-summary{color:var(--text);font-size:var(--fs-md);line-height:1.4}.app-root .staleness-chooser-row-error{color:var(--status-error-text);background:var(--status-error-bg);border:1px solid var(--status-error-border);border-radius:var(--radius-xs);padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs)}.app-root .staleness-chooser-row-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.app-root .gutter-regen-popover,.app-root .gutter-propagate-popover{width:22.5rem}.app-root .gutter-propagate-popover-list{padding-left:var(--sp-4);max-height:14rem;font-size:var(--fs-sm);margin:0;overflow-y:auto}.app-root .gutter-propagate-popover-list li{margin-bottom:var(--sp-1)}.app-root .gutter-regen-popover-note{resize:vertical;width:100%;min-height:5.5rem}.restore-state{display:flex;position:relative}.app-root .restore-state__button{justify-content:flex-start;gap:var(--sp-2);width:100%}.restore-state__panel{bottom:calc(100% + var(--sp-2));z-index:var(--z-dropdown);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-2);gap:var(--sp-1);flex-direction:column;display:flex;position:absolute;left:0;right:0;box-shadow:0 -10px 28px #0000001a}.restore-state__panel-header{padding:var(--sp-1) var(--sp-3) var(--sp-2);border-bottom:1px solid var(--line);margin-bottom:var(--sp-1)}.restore-state__item{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-xs);text-align:left;cursor:pointer;transition:var(--transition);background:0 0;border:none;flex-direction:column;gap:2px;display:flex}.restore-state__item:hover{background:var(--surface-2)}.restore-state__item-time{font-size:var(--fs-sm);color:var(--text);font-weight:600}.restore-state__item-summary{font-size:var(--fs-xs);color:var(--text-2);-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.restore-state__item-actor{font-size:var(--fs-2xs);color:var(--text-3);margin-top:2px}.app-root .restore-state__dialog{max-width:460px;padding:var(--sp-6) var(--sp-6) var(--sp-5);gap:var(--sp-4);flex-direction:column;display:flex}.app-root .restore-state__icon{border-radius:var(--radius-pill);flex:none;justify-content:center;align-self:flex-start;align-items:center;width:44px;height:44px;display:inline-flex;box-shadow:inset 0 0 0 1px}.app-root .restore-state__icon--warning{color:var(--status-warning-text);background:var(--status-warning-bg)}.app-root .restore-state__icon--danger{color:var(--status-error-text);background:var(--status-error-bg)}.app-root .restore-state__content{gap:var(--sp-3);flex-direction:column;display:flex}.app-root .restore-state__title{font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:-.01em;color:var(--text);margin:0;font-weight:500;line-height:1.25}.app-root .restore-state__body{font-family:var(--font-body);font-size:var(--fs-md);color:var(--text-2);margin:0;line-height:1.5}.app-root .restore-state__warning{width:100%;margin:0}.app-root .restore-state__user-list{margin:var(--sp-1) 0 0;padding-left:var(--sp-4);font-size:var(--fs-sm);line-height:1.4}.app-root .restore-state__actions{justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-2);display:flex}.app-root.workspace{background:var(--bg);height:100vh;color:var(--text);flex-direction:column;display:flex;overflow:hidden}.loading{text-align:center;background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:4rem 2rem;display:flex}.loading-mark{font-family:var(--font-display);color:var(--text-3);font-size:1.5rem;font-weight:500;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}.error{max-width:28rem}.error h2{font-family:var(--font-display);margin-bottom:.75rem;font-size:1.75rem}.error p{color:var(--text-2);margin-bottom:1.5rem}.header{background:var(--surface);border-bottom:1px solid var(--line);z-index:10;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;padding:.9rem 1.5rem;display:grid;position:sticky;top:0}.header-left{align-items:center;gap:.75rem;min-width:0;display:flex}.brand-back{border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--text-2);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.brand-back:hover{border-color:var(--text);color:var(--text);background:var(--surface-alt)}.brand{align-items:center;gap:.6rem;min-width:0;display:flex;overflow:hidden}.brand-logo{flex:none;width:auto;height:22px;display:block}.brand-sep{color:var(--text-3);flex:none}.brand-curriculum{font-family:var(--font-sans);color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}.tabs{background:var(--surface-alt);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.25rem;padding:.25rem;display:flex}.tab-group{align-items:center;gap:.25rem;display:flex}.tab-sep{background:var(--line);flex:none;width:1px;height:18px;margin:0 .15rem}.tab{font-family:var(--font-sans);color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.8rem;font-weight:500;transition:all .15s;display:flex}.tab:hover{color:var(--text)}.tab.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.tab.is-locked{opacity:var(--disabled-opacity);cursor:not-allowed;pointer-events:none}.header-right{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.chat-toggle{border:1px solid var(--line);background:var(--surface);color:var(--text-2);font-family:var(--font-sans);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.8rem;font-weight:500;transition:all .15s;display:flex}.chat-toggle:hover{border-color:var(--text);color:var(--text)}.chat-toggle.is-active{background:var(--text);color:var(--surface);border-color:var(--text)}.tasks-indicator{position:relative}.tasks-pill{border:1px solid var(--line);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.78rem;font-weight:500;transition:all .15s;display:flex}.tasks-pill:hover{border-color:var(--text-3);color:var(--text)}.tasks-pill.is-active{border-color:var(--status-generating);color:var(--status-generating)}.tasks-pill.is-done{border-color:var(--status-generated);color:var(--status-generated);animation:3s ease-out forwards tasks-fade-out}@keyframes tasks-fade-out{0%,70%{opacity:1}to{opacity:0;pointer-events:none}}.tasks-dropdown{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);width:280px;box-shadow:var(--shadow-lg);z-index:100;flex-direction:column;gap:.4rem;padding:.5rem;display:flex;position:absolute;top:calc(100% + 6px);right:0}.tasks-item{border-radius:var(--radius-xs);background:var(--surface-alt);flex-direction:column;gap:.3rem;padding:.45rem .5rem;display:flex}.tasks-item--done{opacity:.7}.tasks-item--err{background:#ef44440f}.tasks-item--interrupted{background:var(--status-warning-bg)}.tasks-item--interrupted .tasks-item-icon{color:var(--status-warning-text)}.tasks-item-top{align-items:flex-start;gap:.35rem;display:flex}.tasks-item-icon{color:var(--status-generating);flex-shrink:0;margin-top:.15rem}.tasks-ok-icon{color:var(--status-generated)}.tasks-err-icon{color:var(--status-stale)}.tasks-item-label{color:var(--text-2);overflow-wrap:anywhere;flex:1;font-size:.78rem;line-height:1.3}.tasks-item-cancel{width:20px;height:20px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:all .1s;display:flex}.tasks-item-cancel:hover{color:var(--text);background:#1111110f}.tasks-item-cancel.tasks-item-cancel--pending{cursor:default}.tasks-item-cancel.tasks-item-cancel--pending:hover{color:var(--text-3);background:0 0}.tasks-bar{background:var(--line);border-radius:2px;height:3px;overflow:hidden}.tasks-bar-fill{background:var(--status-generating);border-radius:2px;height:100%;transition:width .3s}.tasks-bar--indeterminate{position:relative}.tasks-bar--indeterminate:after{content:"";background:var(--status-generating);border-radius:2px;width:40%;height:100%;animation:1.4s ease-in-out infinite tasks-bar-indeterminate;position:absolute;top:0;left:-40%}@keyframes tasks-bar-indeterminate{0%{left:-40%}to{left:100%}}.tasks-empty{color:var(--text-3);text-align:center;padding:.5rem;font-size:.78rem}.tasks-item-actions{align-items:center;gap:var(--sp-1);flex-shrink:0;display:flex}.app-root .tasks-resume-btn{background:var(--status-warning-text);color:var(--surface);border-color:var(--status-warning-text);font-weight:600}.app-root .tasks-resume-btn:hover:not(:disabled){background:var(--status-warning-text);filter:brightness(.92);color:var(--surface)}.app-root .tasks-resume-btn:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.tasks-item-discard{border-radius:var(--radius-xs);width:20px;height:20px;color:var(--text-3);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tasks-item-discard:hover:not(:disabled){background:var(--status-error-bg);color:var(--status-error-text)}.tasks-item-discard:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.tasks-item-hint{font-size:var(--fs-2xs);color:var(--status-warning-text);opacity:.85;line-height:1.35}.tasks-item-error{align-items:flex-start}.tasks-item-error-msg{word-break:break-word;flex:1;min-width:0}.tasks-bar--paused .tasks-bar-fill{background:var(--status-warning-border);transition:none}.tasks-section-head{align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2) 0 var(--sp-2);font-size:var(--fs-2xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);font-weight:600;display:flex}.tasks-section-head-icon{color:var(--status-warning-text);flex-shrink:0}.tasks-section-head-label{flex:1}.tasks-section-divider{background:var(--line);height:1px;margin:var(--sp-1) 0}.body{flex:1;grid-template-columns:320px 1fr;min-height:0;display:grid}.body:has(.drawer){grid-template-columns:320px 1fr 380px}.sidebar{background:var(--surface-alt);border-right:1px solid var(--line);flex-direction:column;gap:1.25rem;padding:1.75rem 0 2rem;display:flex;overflow-y:auto}.sidebar-head{cursor:pointer;padding:0 1.5rem}.sidebar-footer{padding:var(--sp-3) var(--sp-6) 0;border-top:1px solid var(--line);align-items:stretch;gap:var(--sp-2);flex-direction:column;margin-top:auto;display:flex}.sidebar-kicker{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.12em;color:var(--text-3);margin-bottom:.35rem;font-size:.68rem;font-weight:600}.sidebar-title{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text);margin-bottom:.5rem;font-size:1.4rem;font-weight:500;line-height:1.15}.sidebar-stats{color:var(--text-3);align-items:center;gap:.45rem;font-size:.8rem;display:flex}.dot-sep{opacity:.6}.tree{flex-direction:column;gap:.15rem;padding:0 .75rem;display:flex}.tree-empty{color:var(--text-3);align-items:flex-start;gap:.5rem;padding:1.25rem .75rem;font-size:.82rem;line-height:1.4;display:flex}.tree-empty svg{flex:none;margin-top:2px}.tree-unit{flex-direction:column;margin-bottom:.25rem;display:flex}.tree-row{border-radius:var(--radius-sm);text-align:left;cursor:pointer;width:100%;font-family:var(--font-sans);color:var(--text);background:0 0;border:none;align-items:center;gap:.5rem;padding:.55rem .75rem;font-size:.85rem;transition:background .12s;display:flex;position:relative}.tree-row:hover{background:#00000009}.tree-row.is-selected{background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line)}.tree-row.is-selected:before{content:"";background:var(--text);border-radius:2px;width:3px;position:absolute;top:25%;bottom:25%;left:-.4rem}.tree-row--unit .tree-unit-num{text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);flex:none;font-size:.7rem;font-weight:500}.tree-row--unit .tree-unit-num strong{color:var(--text);font-weight:700}.tree-chev{color:var(--text-3);flex:none;align-items:center;display:flex}.tree-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.tree-row--unit .tree-label{font-weight:500}.tree-lessons{border-left:1px dashed var(--line);margin:.2rem 0 .3rem 1.15rem;padding:0 0 0 1.5rem;list-style:none}.tree-row--lesson{color:var(--text-2);padding:.45rem .65rem;font-size:.82rem}.tree-row--lesson:hover,.tree-row--lesson.is-selected{color:var(--text)}.tree-lesson-num{font-family:var(--font-display);color:var(--text-3);text-align:right;flex:none;min-width:1.1rem;font-size:.85rem;font-weight:600}.tree-empty-lessons{color:var(--text-3);align-items:center;gap:.45rem;padding:.4rem 0 .4rem 2.4rem;font-size:.76rem;font-style:italic;display:flex}.status-dot{background:var(--status-planned);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface-alt);border-radius:999px;flex:none}.tree-row--lesson .status-dot{box-shadow:0 0 0 2px var(--surface-alt)}.tree-row.is-selected .status-dot{box-shadow:0 0 0 2px var(--surface)}.status-dot--planned{background:var(--status-planned)}.status-dot--generating{background:var(--status-generating);animation:1.2s ease-in-out infinite pulse-dot}.status-dot--generated{background:var(--status-generated)}.status-dot--edited{background:var(--status-edited)}.status-dot--stale{background:var(--status-stale)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}}.main{background:var(--bg);flex-direction:column;min-width:0;display:flex;overflow-y:auto}.crumb{color:var(--text-3);border-bottom:1px solid var(--line-soft);background:var(--bg);z-index:1;align-items:center;gap:.35rem;padding:.9rem 2.25rem;font-size:.78rem;display:flex;position:sticky;top:0}.crumb-item{align-items:center;gap:.35rem;font-weight:500;display:inline-flex}.crumb-item:last-child span{color:var(--text)}.crumb-sep{color:var(--text-3);opacity:.5;font-size:.95rem}.crumb-muted{color:var(--text-3);font-style:italic}.main-inner{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:2.5rem 2.75rem 4rem}.md{font-family:var(--font-body);color:var(--text);font-size:.88rem;line-height:1.62}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .75rem}.md h1,.md h2,.md h3,.md h4{font-family:var(--font-display);color:var(--text);margin:1.1rem 0 .5rem;font-weight:500;line-height:1.25}.md h1{font-size:1.35rem}.md h2{font-size:1.15rem}.md h3{letter-spacing:.01em;font-size:1rem}.md h4{text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-size:.9rem}.md strong{color:var(--text);font-weight:600}.md em{font-style:italic}.md ul,.md ol{margin:.4rem 0 .8rem;padding-left:1.4rem}.md ul{list-style:outside}.md ol{list-style:decimal}.md li{margin:.2rem 0}.md li>p{margin:0}.md blockquote{border-left:3px solid var(--accent);background:var(--surface-alt);color:var(--text-2);border-radius:0 6px 6px 0;margin:.75rem 0;padding:.5rem .9rem}.md code{background:var(--surface-alt);border:1px solid var(--line);border-radius:4px;padding:.08em .35em;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82em}.md pre{background:var(--surface-alt);border:1px solid var(--line);border-radius:8px;margin:.75rem 0;padding:.8rem 1rem;font-size:.78rem;line-height:1.5;overflow-x:auto}.md pre code{font-size:inherit;background:0 0;border:none;padding:0}.md hr{border:none;border-top:1px solid var(--line);margin:1rem 0}.md table{border-collapse:collapse;width:100%;margin:.75rem 0;font-size:.82rem}.md th,.md td{border:1px solid var(--line);text-align:left;padding:.4rem .6rem}.md th{background:var(--surface-alt);font-weight:600}.md a{color:var(--accent);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.md a:hover{text-decoration-thickness:2px}span.md>p{margin:0;display:inline}span.md>:not(p){vertical-align:baseline;display:inline-block}.doc-hero{padding:2rem 0;animation:.4s ease-out fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.kicker{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.14em;color:var(--text-3);margin-bottom:.9rem;font-size:.72rem;font-weight:600}.doc-hero h1.display{letter-spacing:-.025em;color:var(--text);font-variation-settings:"SOFT" 30, "WONK" 0;max-width:22ch;margin-bottom:1.25rem;font-size:clamp(2.25rem,4.2vw,3.6rem);font-weight:500;line-height:1.05}.doc-lede{color:var(--text-2);max-width:42rem;margin-bottom:1.5rem;font-size:1.05rem;line-height:1.6}.doc-meta{color:var(--text-3);font-size:.82rem;font-style:italic}.doc-meta strong{color:var(--text-2);font-style:normal;font-weight:600}.tab-placeholder{text-align:center;color:var(--text-3);padding:3rem 0}.tab-placeholder h2{font-family:var(--font-display);margin-bottom:.5rem}.tab-head{margin-bottom:2rem}.tab-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);margin:.65rem 0 .8rem;font-size:2.4rem;font-weight:400;line-height:1.1}.tab-lede{font-family:var(--font-body);max-width:56ch;color:var(--text-2);margin:0 0 1rem;font-size:.95rem;line-height:1.55}.tab-head-actions{gap:var(--sp-2);margin-top:var(--sp-2);display:flex}.tab-section{margin-top:2.25rem}.tab-section-title{font-family:var(--font-display);color:var(--text);align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1.2rem;font-weight:500;display:inline-flex}.tab-section-count{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);border:1px solid var(--line);border-radius:999px;padding:.15rem .5rem;font-size:.68rem;font-weight:500}.tab-empty,.tab-empty-inline{font-family:var(--font-body);color:var(--text-3);align-items:center;gap:.5rem;padding:1rem 0;font-size:.85rem;font-style:italic;display:flex}.tab-loading,.tab-error{color:var(--text-3);font-family:var(--font-body);align-items:center;gap:.5rem;padding:3rem 0;font-size:.85rem;display:flex}.tab-error{color:#991b1b}.standards-group{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-bottom:2rem;overflow:hidden}.standards-group-head{border-bottom:1px solid var(--line);background:var(--surface-alt);justify-content:space-between;align-items:baseline;padding:.85rem 1.25rem;display:flex}.standards-group-title{font-family:var(--font-display);color:var(--text);margin:0;font-size:1.05rem;font-weight:500}.standards-group-count{font-family:var(--font-body);color:var(--text-3);letter-spacing:.02em;font-size:.72rem}.standards-list{margin:0;padding:0;list-style:none}.standards-row{border-top:1px solid var(--line);padding:.85rem 1.25rem}.standards-row:first-child{border-top:none}.standards-row-head{align-items:baseline;gap:.6rem;margin-bottom:.3rem;display:flex}.standards-code{font-family:var(--font-mono,ui-monospace, "SF Mono", Menlo, monospace);color:var(--text);font-size:.82rem;font-weight:600}.standards-role{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:.1rem .5rem;font-size:.62rem;font-weight:600}.standards-role--primary{background:var(--accent);color:#fff}.standards-role--secondary{background:var(--surface-alt);color:var(--text-2);border:1px solid var(--line)}.standards-type{font-family:var(--font-body);color:var(--text-3);font-size:.68rem;font-style:italic}.standards-desc{font-family:var(--font-body);color:var(--text-2);margin:0;font-size:.82rem;line-height:1.55}.guidelines-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.guidelines-item{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:.85rem;padding:.85rem 1rem;display:flex}.guidelines-index{font-family:var(--font-display);color:var(--text-3);text-align:right;min-width:1.5rem;font-size:1.3rem;font-weight:400}.guidelines-text{font-family:var(--font-body);color:var(--text);font-size:.88rem;line-height:1.6}.variation-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.variation-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:.9rem 1rem 1rem}.variation-head{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);align-items:center;gap:.4rem;margin-bottom:.65rem;font-size:.68rem;display:inline-flex}.variation-items{font-family:var(--font-body);margin:0;padding:0;font-size:.84rem;line-height:1.55;list-style:none}.variation-items li{color:var(--text);padding:.25rem 0}.variation-desc{color:var(--text-3)}.guidelines-edit-list{flex-direction:column;gap:.5rem;display:flex}.guideline-edit-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:flex-start;gap:.6rem;padding:.65rem .8rem;display:flex}.guideline-edit-textarea{font-family:var(--font-body);color:var(--text);resize:none;background:0 0;border:none;outline:none;flex:1;min-height:1.5em;padding:.15rem 0;font-size:.88rem;line-height:1.5}.guidelines-save-status{font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--text-3);align-items:center;gap:.3rem;display:inline-flex}.guidelines-save-status--error{color:var(--status-error-text)}.variations-regen-banner{margin-bottom:var(--sp-3)}.guidelines-add-btn{border:1px dashed var(--line);font-family:var(--font-sans);color:var(--text-3);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-start;align-items:center;gap:.35rem;margin-top:.25rem;padding:.4rem .75rem;font-size:.72rem;font-weight:500;transition:all .15s;display:inline-flex}.guidelines-add-btn:hover{color:var(--text);border-color:var(--text-2)}.variations-edit-section{flex-direction:column;gap:1.25rem;display:flex}.variation-edit-group{flex-direction:column;gap:.4rem;display:flex}.variation-edit-group-head{font-family:var(--font-sans);color:var(--text-2);align-items:center;gap:.45rem;margin-bottom:.2rem;font-size:.78rem;font-weight:600;display:flex}.variation-edit-row{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:.5rem;padding:.45rem .7rem;display:flex}.variation-edit-name{font-family:var(--font-body);color:var(--text);border:none;border-bottom:1px solid var(--line);background:0 0;outline:none;flex:0 0 140px;padding:.15rem 0;font-size:.85rem;font-weight:500}.variation-edit-name:focus{border-bottom-color:var(--text)}.variation-edit-desc{font-family:var(--font-body);color:var(--text-2);border:none;border-bottom:1px solid var(--line);background:0 0;outline:none;flex:1;padding:.15rem 0;font-size:.82rem}.variation-edit-desc:focus{border-bottom-color:var(--text)}.variation-edit-remove{width:26px;height:26px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:all .12s;display:flex}.variation-edit-remove:hover{color:#991b1b;background:#fef2f2}.banner .btn{margin-left:auto}.coverage-headline{background:var(--surface);border:1px solid var(--line);border-radius:14px;align-items:center;gap:1.5rem;margin-bottom:2rem;padding:1.5rem 1.75rem;display:flex}.coverage-headline-pct{font-family:var(--font-display);color:var(--text);font-size:4rem;font-weight:400;line-height:1}.coverage-headline-pct span{color:var(--text-3);margin-left:.15rem;font-size:1.5rem}.coverage-headline-meta{flex-direction:column;flex:1;gap:.25rem;display:flex}.coverage-headline-title{font-family:var(--font-display);font-size:1rem;font-weight:500}.coverage-headline-sub{font-family:var(--font-body);color:var(--text-3);margin-bottom:.4rem;font-size:.8rem}.coverage-bar{background:var(--surface-alt);border-radius:999px;height:4px;overflow:hidden}.coverage-bar-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.coverage-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.coverage-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;gap:.5rem;padding:1rem 1.1rem 1.1rem;display:flex}.coverage-card-head{color:var(--text-3);align-items:center;gap:.5rem;display:flex}.coverage-card-title{font-family:var(--font-body);color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.8rem;font-weight:600;overflow:hidden}.coverage-card-role{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:.08rem .45rem;font-size:.58rem;font-weight:600}.coverage-card-role--primary{background:var(--accent);color:#fff}.coverage-card-role--secondary{background:var(--surface-alt);color:var(--text-2);border:1px solid var(--line)}.coverage-card-pct{font-family:var(--font-display);color:var(--text);font-size:2rem;font-weight:400;line-height:1}.coverage-card-pct span{color:var(--text-3);margin-left:.1rem;font-size:.9rem}.coverage-card-sub{font-family:var(--font-body);color:var(--text-3);font-size:.72rem}.coverage-card-total{color:var(--text-3)}.gaps-list{font-family:var(--font-body);margin:0;padding:0;font-size:.8rem;list-style:none}.gap-row{border-bottom:1px solid var(--line);color:var(--text-2);grid-template-columns:1fr 7rem 2fr;gap:.75rem;padding:.55rem .75rem;display:grid}.gap-framework{color:var(--text);font-weight:500}.gap-code{font-family:var(--font-mono,ui-monospace, "SF Mono", Menlo, monospace);color:var(--text)}.gap-desc{color:var(--text-3)}.config-section{padding:var(--sp-6) var(--sp-8);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.config-section+.config-section{margin-top:var(--sp-5)}.config-section-head{justify-content:space-between;align-items:baseline;gap:var(--sp-4);margin-bottom:var(--sp-5);padding-bottom:var(--sp-3);border-bottom:1px solid var(--line);display:flex}.config-section-head .tab-section-title{margin:0}.config-fields{gap:var(--sp-5);flex-direction:column;display:flex}.config-row{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.config-row--full{grid-column:1/-1}.config-row-label{align-items:center;gap:var(--sp-2);font-family:var(--font-body);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);line-height:1;display:flex}.config-row-label-icon{opacity:.75;align-items:center;display:inline-flex}.config-row-control{align-items:center;gap:var(--sp-2);flex-wrap:nowrap;min-width:0;display:flex}.config-row-control>.config-field-input,.config-row-control>.select,.config-row-control>.input{flex:1 1 0;min-width:0}.config-row-value{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--text);overflow-wrap:anywhere;padding:.15rem 0;line-height:1.35}.config-row-hint{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--text-3);letter-spacing:.04em;white-space:nowrap;flex:none}.config-docs{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.config-doc{border:1px solid var(--line);background:var(--surface);border-radius:10px;justify-content:space-between;align-items:center;padding:.65rem .95rem;display:flex}.config-doc-name{font-family:var(--font-body);color:var(--text);font-size:.86rem;font-weight:500}.config-doc-meta{align-items:center;gap:.5rem;display:flex}.config-doc-type{font-family:var(--font-body);color:var(--text-3);font-size:.7rem}.tab-section-header{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.tab-section-header .tab-section-title{margin-bottom:0}.config-edit-actions{gap:var(--sp-2);display:flex}.config-field-input{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--text);border:none;border-bottom:1px solid var(--line);width:100%;transition:border-color var(--transition);background:0 0;outline:none;padding:.25rem 0}.config-field-input:focus{border-bottom-color:var(--text)}.config-chip-grid{gap:var(--sp-2);flex-wrap:wrap;display:flex}.config-inline-select{gap:var(--sp-2);align-items:center;min-width:0;display:flex}.config-inline-select .config-field-input{flex:1 1 0;max-width:6rem}.config-confirm-icon{color:#92400e;background:#fef3c7;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:.9rem;display:flex}.config-confirm-title{font-family:var(--font-display);color:var(--text);margin-bottom:.5rem;font-size:1.1rem;font-weight:500}.config-confirm-body{font-family:var(--font-body);color:var(--text-2);margin-bottom:1.25rem;font-size:.85rem;line-height:1.55}.config-confirm-actions{margin-top:var(--sp-4);gap:.5rem;display:flex}.lesson-model-preview{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2,var(--surface))}.lesson-model-preview__header{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);margin-bottom:var(--sp-2)}.lesson-model-preview__list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lesson-model-preview__row{gap:var(--sp-3);align-items:flex-start;display:flex}.lesson-model-preview__idx{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line);height:1.5rem;font-size:var(--fs-xs);color:var(--text-2);flex:0 0 1.5rem;place-items:center;display:grid}.lesson-model-preview__body{flex:auto;min-width:0}.lesson-model-preview__title{align-items:baseline;gap:var(--sp-2);font-size:var(--fs-md);color:var(--text);display:flex}.lesson-model-preview__code{font-family:var(--font-mono,ui-monospace, monospace);font-size:var(--fs-xs);color:var(--text-2);padding:0 var(--sp-2);border-radius:var(--radius-xs);background:var(--surface);border:1px solid var(--line)}.lesson-model-preview__pct{font-size:var(--fs-sm);color:var(--text-2);margin-left:auto}.lesson-model-preview__roles{gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-2);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.lesson-model-phases{margin-top:var(--sp-5);gap:var(--sp-2);flex-direction:column;display:flex}.lesson-model-phases__head{margin-bottom:var(--sp-1);justify-content:space-between;align-items:center;display:flex}.lesson-model-phases__row{gap:var(--sp-2);grid-template-columns:1fr 1fr 1fr 4.5rem auto;align-items:center;display:grid}.export-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.export-card-head{align-items:flex-start;gap:var(--sp-5);padding:var(--sp-6) var(--sp-8);border-bottom:1px solid var(--line);background:var(--surface-alt);display:flex}.export-card-icon{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);width:48px;height:48px;color:var(--text);flex-shrink:0;justify-content:center;align-items:center;display:flex}.export-card-head-text{flex:1;min-width:0}.export-card-title{font-family:var(--font-display);font-size:var(--fs-2xl);margin:0 0 var(--sp-1);color:var(--text);font-weight:500;line-height:1.2}.export-card-sub{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--text-3);margin:0}.export-card-body{padding:var(--sp-6) var(--sp-8);gap:var(--sp-4);flex-direction:column;display:flex}.export-card-desc{font-family:var(--font-body);font-size:var(--fs-md);color:var(--text-2);max-width:62ch;margin:0;line-height:1.6}.export-contents{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-alt)}.export-contents>summary{cursor:pointer;padding:var(--sp-3) var(--sp-4);align-items:center;gap:var(--sp-2);font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text-2);-webkit-user-select:none;user-select:none;list-style:none;display:flex}.export-contents>summary::-webkit-details-marker{display:none}.export-contents>summary .export-contents-caret{transition:transform var(--transition);color:var(--text-3)}.export-contents[open]>summary .export-contents-caret{transform:rotate(90deg)}.export-contents-count{color:var(--text-3);font-size:var(--fs-xs);margin-left:auto}.export-tree{padding:var(--sp-3) var(--sp-4) var(--sp-4);border-top:1px solid var(--line);background:var(--surface);font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);font-size:var(--fs-xs);color:var(--text-2);white-space:pre;margin:0;line-height:1.7;overflow-x:auto}.export-tree-dim{color:var(--text-3)}.export-card-actions{padding:var(--sp-5) var(--sp-8);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:var(--sp-4);background:var(--surface-alt);display:flex}.export-card-actions-hint{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--text-3)}.publish-status{margin-top:var(--sp-5);max-width:720px}.publish-progress-bar{background:var(--surface-alt);border-radius:var(--radius-pill);height:4px;overflow:hidden}.publish-progress-fill{background:var(--text);border-radius:var(--radius-pill);height:100%;transition:width .3s}.publish-progress-meta{gap:var(--sp-2);margin-top:var(--sp-2);font-family:var(--font-body);font-size:var(--fs-xs);color:var(--text-3);letter-spacing:.02em;display:flex}.publish-result-title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:500;line-height:1.2}.publish-result-sub{font-family:var(--font-body);font-size:var(--fs-sm);margin-top:var(--sp-1);opacity:.82;line-height:1.5}.tab-lede code{background:var(--surface-alt);border-radius:var(--radius-xs);padding:.05rem .35rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92em}.drawer{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;min-height:0;animation:.24s ease-out slide-in;display:flex}@keyframes slide-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.drawer-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.9rem 1rem .75rem;display:flex}.drawer-head-title{color:var(--text-2);align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;display:flex}.drawer-close{width:28px;height:28px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.drawer-close:hover{background:var(--surface-alt);color:var(--text)}.drawer-body{flex-direction:column;flex:1;min-height:0;display:flex}.icon-btn{width:24px;height:24px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:999px;font-size:1.1rem;line-height:1;transition:all .15s}.icon-btn:hover{background:var(--surface);color:var(--text)}.chat{flex-direction:column;flex:1;min-height:0;display:flex}.chat-participants{align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--line);background:var(--surface);display:flex}.chat-participants__chip{cursor:pointer;border:1px solid var(--line);transition:box-shadow var(--transition), border-color var(--transition)}.chat-participants__chip:hover{border-color:var(--text-2)}.chat-participants__chip.is-active{box-shadow:var(--ring);border-color:var(--text)}.chat-messages.is-viewing-other{opacity:var(--disabled-opacity)}.chat-input--readonly{padding:var(--sp-3) var(--sp-4)}.chat-viewing-banner{cursor:pointer;text-align:left;width:100%;font:inherit;border:none}.chat-messages{flex-direction:column;flex:1;gap:.85rem;padding:1rem 1rem .5rem;display:flex;overflow-y:auto}.chat-empty{text-align:center;max-width:260px;margin:auto;padding:2rem .5rem}.chat-empty-title{font-family:var(--font-display);color:var(--text);margin:0 0 .4rem;font-size:1rem;font-weight:500;line-height:1.3}.chat-empty-body{font-family:var(--font-body);color:var(--text-3);margin:0;font-size:.78rem;line-height:1.55}.chat-bubble{align-items:flex-end;gap:var(--sp-2);flex-direction:row;max-width:90%;display:flex}.chat-bubble--user{flex-direction:row-reverse;align-self:flex-end}.chat-bubble--assistant{flex-direction:row;align-self:flex-start}.chat-bubble-inner{flex-direction:column;gap:.2rem;min-width:0;display:flex}.chat-bubble--user .chat-bubble-inner{align-items:flex-end}.chat-bubble--assistant .chat-bubble-inner{align-items:flex-start}.chat-bubble-chip{align-self:flex-end;margin-bottom:2px}.chat-bubble-role{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);font-size:.6rem}.chat-bubble-body{font-family:var(--font-body);color:var(--text);word-break:break-word;border-radius:14px;padding:.6rem .85rem;font-size:.84rem;line-height:1.55}.chat-bubble--user .chat-bubble-body{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-bubble--user .md,.chat-bubble--user .md strong,.chat-bubble--user .md a,.chat-bubble--user .md h1,.chat-bubble--user .md h2,.chat-bubble--user .md h3,.chat-bubble--user .md h4,.chat-bubble--user .md code{color:inherit}.chat-bubble--assistant .chat-bubble-body{background:var(--surface-alt);border:1px solid var(--line);border-bottom-left-radius:4px}.chat-bubble-task-hint{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);margin-top:var(--sp-1);font-family:var(--font-body);font-size:var(--fs-xs);color:var(--text-3);font-style:italic;display:inline-flex}.chat-bubble-task-hint .spin{color:var(--accent)}.chat-bubble-ack{gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.chat-bubble-ack--confirm-card{align-items:stretch;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border-2);background:var(--surface-2);border-radius:var(--radius-sm);flex-direction:column}.chat-bubble-ack--destructive{border-color:var(--status-warning-border);background:var(--status-warning-bg)}.chat-bubble-ack--constructive{border-color:var(--status-info-border);background:var(--status-info-bg)}.chat-bubble-ack--confirm-card.chat-bubble-ack--readonly{border-color:var(--border-2);background:var(--surface-2)}.chat-confirm-preview{gap:var(--sp-2);color:var(--text);flex-direction:column;display:flex}.chat-bubble-ack--destructive .chat-confirm-preview{color:var(--status-warning-text)}.chat-bubble-ack--constructive .chat-confirm-preview{color:var(--status-info-text)}.chat-bubble-ack--readonly .chat-confirm-preview{color:var(--text-2)}.chat-confirm-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.chat-confirm-readonly-note{font-size:var(--fs-sm);color:var(--text-3);margin:0;font-style:italic}.chat-confirm-proposal-quote{padding:var(--sp-3);background:var(--surface);border-radius:var(--radius-sm);font-size:var(--fs-md);color:var(--text);margin:0}.chat-confirm-proposal-replaces{color:var(--text-2);font-size:var(--fs-sm)}.chat-confirm-proposal-error{font-size:var(--fs-sm);color:var(--status-error-text);flex:1 0 100%;margin:0}.chat-cascade-list{padding-left:var(--sp-4);font-size:var(--fs-sm);gap:var(--sp-1);flex-direction:column;margin:0;display:flex}.chat-cascade-target{font-weight:600}.chat-cascade-target-id{opacity:.85;font-weight:500}.chat-cascade-summary{font-weight:400}.chat-bubble.is-undoing{opacity:var(--disabled-opacity);pointer-events:none;transition:opacity var(--transition)}.changes-dialog{gap:var(--sp-4);max-height:80vh;padding:var(--sp-5) var(--sp-6) var(--sp-4);flex-direction:column;display:flex}.changes-dialog-header{justify-content:space-between;align-items:center;gap:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:1px solid var(--line);display:flex}.changes-dialog-title{font-family:var(--font-display);font-size:var(--fs-2xl);color:var(--text);align-items:baseline;gap:var(--sp-2);margin:0;font-weight:500;display:inline-flex}.changes-dialog-count{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text-3);font-variant-numeric:tabular-nums}.changes-dialog-empty{font-family:var(--font-body);font-size:var(--fs-md);color:var(--text-3);text-align:center;padding:var(--sp-6) 0;margin:0}.changes-diff-list{padding:0 var(--sp-1) var(--sp-2);gap:var(--sp-3);flex-direction:column;margin:0;list-style:none;display:flex;overflow-y:auto}.diff-card{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-alt);flex-direction:column;display:flex}.diff-card-header{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.diff-card-location{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text-2);font-weight:500}.diff-block{font-family:var(--font-body);font-size:var(--fs-md);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-xs);border-left:3px solid var(--line);background:var(--surface);color:var(--text);line-height:1.5}.diff-block+.diff-block{margin-top:var(--sp-2)}.diff-block--old{background:var(--status-error-bg);border-left-color:var(--status-error-border);color:var(--status-error-text)}.diff-block--new{background:var(--status-success-bg);border-left-color:var(--status-success-border);color:var(--status-success-text)}.diff-block--inline{background:var(--surface);border-left:3px solid var(--line);color:var(--text)}.diff-block .md{font-size:inherit}.diff-block .md>:first-child{margin-top:0}.diff-block .md>:last-child{margin-bottom:0}.diff-toggle{margin-top:var(--sp-1);align-self:flex-start}.diff-inline-text{white-space:pre-wrap;word-break:break-word}.diff-inline-context{color:var(--text-2)}.diff-inline-added{background:var(--status-success-bg);color:var(--status-success-text);border-radius:var(--radius-xs);padding:0 2px}.diff-inline-removed{background:var(--status-error-bg);color:var(--status-error-text);border-radius:var(--radius-xs);padding:0 2px;text-decoration:line-through}.diff-sub-keys{gap:var(--sp-3);flex-direction:column;display:flex}.diff-sub-key{gap:var(--sp-1);flex-direction:column;display:flex}.diff-sub-key-label{font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.reorder-diff{gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xs);flex-direction:column;display:flex}.reorder-row{align-items:center;gap:var(--sp-2);font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text-2);display:flex}.reorder-row--changed{color:var(--text)}.reorder-pos{color:var(--text-3);font-variant-numeric:tabular-nums;min-width:1.75rem}.reorder-old{color:var(--status-error-text);text-decoration:line-through}.reorder-new{color:var(--status-success-text);font-weight:500}.reorder-arrow,.reorder-same{color:var(--text-3)}.chat-bubble .md{font-size:.84rem}.chat-bubble.is-typing .chat-bubble-body{color:var(--text-3);align-items:center;gap:.4rem;font-style:italic;display:inline-flex}.spin{animation:1s linear infinite spin}.chat-error{color:#991b1b;background:#dc262614;border-radius:8px;align-items:flex-start;gap:.5rem;padding:.6rem .75rem;font-size:.78rem;line-height:1.5;display:flex}.chat-input{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-4);border-top:1px solid var(--line);background:var(--surface);flex-direction:column;display:flex;position:relative}.chat-input-row{align-items:center;gap:var(--sp-2);display:flex}.chat-input-editable{white-space:pre-wrap;word-break:break-word;outline:none;flex:1;min-height:2.5em;max-height:8em;overflow-y:auto}.chat-input-editable:empty:before{content:attr(data-placeholder);color:var(--text-3);pointer-events:none}.chat-input-editable .mention-ref{color:var(--status-info-text);font-weight:600}.chat-attachments-tray{gap:var(--sp-2);flex-wrap:wrap;display:flex}.chat-bubble-attachments{gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.chat-attachment-chip{gap:var(--sp-1);max-width:100%;overflow:hidden}.chat-attachment-chip .chat-attachment-name{text-overflow:ellipsis;white-space:nowrap;max-width:14ch;overflow:hidden}.chat-attachment-chip .chat-attachment-size{color:var(--text-3);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums}.chat-attachment-chip.is-uploading{color:var(--text-3)}.chat-attachment-thumb{border-radius:var(--radius-xs);border:1px solid var(--line);object-fit:cover;max-width:120px;max-height:80px;display:block}.mention-ref{color:var(--status-info-text);font-weight:600}.chat-bubble--user .mention-ref{color:#93c5fd}.mention-picker{z-index:var(--z-dropdown);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:280px;max-width:360px;padding:var(--sp-1) 0;position:fixed;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.mention-picker-group{padding:var(--sp-2) var(--sp-3) var(--sp-1);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-weight:600}.mention-picker-item{align-items:baseline;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);text-align:left;cursor:pointer;font-size:var(--fs-sm);color:var(--text);transition:background var(--transition-fast);background:0 0;border:none;display:flex}.mention-picker-item.is-focused{background:var(--surface-alt)}.mention-picker-item.is-field{padding-left:var(--sp-6);font-size:var(--fs-xs);color:var(--text-2)}.mention-picker-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.mention-picker-path{font-size:var(--fs-2xs);color:var(--text-3);white-space:nowrap}.mention-picker-more{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);color:var(--text-3);border-top:1px solid var(--line-soft);background:var(--surface-alt);font-style:italic}.chat-send{width:32px;height:32px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.chat-send:hover:not(:disabled){color:var(--text)}.chat-send:disabled{opacity:.3;cursor:not-allowed}.upload-drop-zone{align-items:center;gap:var(--sp-3);padding:var(--sp-5);border:1px dashed var(--line);border-radius:var(--radius-sm);color:var(--text-3);font-size:var(--fs-sm);cursor:pointer;transition:border-color var(--transition), color var(--transition);display:flex}.upload-drop-zone:hover{border-color:var(--text);color:var(--text);border-style:solid}.upload-selected{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-alt);font-size:var(--fs-sm);display:flex}.upload-selected-icon{color:var(--text-2);flex:none}.upload-selected-body{gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex}.upload-selected-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:500;overflow:hidden}.upload-selected-meta{color:var(--text-3);font-size:var(--fs-xs)}.upload-name-auto{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-alt);font-size:var(--fs-sm);display:flex}.upload-name-auto .label-hint{color:var(--text-3);font-size:var(--fs-xs);flex:none}.upload-name-auto .upload-name-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);flex:1;font-weight:500;overflow:hidden}.upload-name-status{align-items:center;gap:var(--sp-2);color:var(--text-3);font-size:var(--fs-sm);padding:var(--sp-2) 0;display:inline-flex}.standards-group-body{padding:var(--sp-5)}.standards-group-body+.standards-list{border-top:1px solid var(--line)}.standards-group-head-actions{align-items:center;gap:var(--sp-3);display:flex}.standards-row-actions{gap:var(--sp-1);align-items:center;margin-left:auto;display:flex}.standards-row-head{flex-wrap:wrap}.standards-row-title{align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;flex:1;min-width:0;display:flex}.standards-meta{gap:var(--sp-2);margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--text-3);flex-wrap:wrap;align-items:center;display:flex}.standards-meta-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-weight:500}.standards-row-edit{gap:var(--sp-3);flex-direction:column;display:flex}.standards-group-body .search-field,.standards-group-body .filter-row{margin-bottom:var(--sp-3)}.framework-filters{gap:var(--sp-3);padding:var(--sp-3) 0;border-top:1px dashed var(--line);margin-bottom:var(--sp-3);flex-direction:column;display:flex}.filter-group{align-items:baseline;gap:var(--sp-3);display:flex}.filter-group-label{min-width:70px;font-family:var(--font-sans);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);flex:none;font-weight:500}.filter-group .filter-row{flex:1;margin-bottom:0}.standards-group-empty{padding:var(--sp-8) var(--sp-5);text-align:center;color:var(--text-3);font-size:var(--fs-sm);font-family:var(--font-body);line-height:1.55}.standards-group-empty strong{color:var(--text-2);font-weight:500}.standards-group-empty .btn{margin-top:var(--sp-3)}.app-root .library-folder{border-top:1px solid var(--line)}.app-root .library-folder:first-child{border-top:none}.app-root .library-folder-head{align-items:center;gap:var(--sp-3);text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;transition:background var(--transition);background:0 0;border:none;padding:.85rem 1.25rem;display:flex}.app-root .library-folder-head:hover{background:var(--bg-2,#00000005)}.app-root .library-folder-chevron{color:var(--text-3);transition:transform var(--transition);flex-shrink:0}.app-root .library-folder-chevron.is-open{transform:rotate(90deg)}.app-root .library-folder-title{align-items:center;gap:var(--sp-2);flex:auto;min-width:0;display:flex}.app-root .library-folder-sub{font-size:var(--fs-xs);color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;overflow:hidden}.app-root .library-folder-body{background:var(--bg-2,#00000004);margin:0;padding:0;list-style:none}.app-root .library-folder-body .standards-row{padding-left:2.5rem}.app-root .btn[aria-disabled=true]{opacity:var(--disabled-opacity);cursor:not-allowed;pointer-events:none}.app-root .btn.view-pdf-missing{color:var(--status-warning-text)}.app-root .btn.view-pdf-missing:hover{color:var(--status-warning-text);background:var(--status-warning-bg)}.app-root .pdf-lightbox{flex-direction:column;width:min(96vw,1120px);max-width:none;height:min(92vh,1200px);padding:0;display:flex;overflow:hidden}.app-root .pdf-lightbox-head{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);display:flex}.app-root .pdf-lightbox-title{font-size:var(--fs-lg);color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:auto;margin:0;font-weight:600;overflow:hidden}.app-root .pdf-lightbox-frame{background:var(--bg-2,#f7f7f7);border:none;flex:auto;width:100%}.app-root .pdf-lightbox-banner{margin:var(--sp-3) var(--sp-4) 0}.app-root .pdf-lightbox-pending-banner{align-items:flex-start;gap:var(--sp-4);flex-wrap:wrap;display:flex}.app-root .pdf-lightbox-pending-copy{gap:var(--sp-1);flex-direction:column;flex:320px;min-width:0;line-height:1.45;display:flex}.app-root .pdf-lightbox-pending-copy strong{font-weight:600}.app-root .pdf-lightbox-pending-actions{gap:var(--sp-2);flex:none;align-items:center;display:flex}.app-root .pdf-lightbox-status{justify-content:center;align-items:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-6);color:var(--text-3);font-size:var(--fs-md);flex-direction:column;flex:auto;display:flex}.app-root .pdf-lightbox-unreachable{text-align:center;max-width:480px;margin:0 auto}.app-root .pdf-lightbox-unreachable h3{font-size:var(--fs-lg);color:var(--text);margin:0;font-weight:600}.app-root .pdf-lightbox-unreachable p{color:var(--text-2);margin:0;line-height:1.55}.app-root .pdf-lightbox-unreachable .banner{width:100%}.app-root .rename-confirm{gap:var(--sp-4);flex-direction:column;display:flex}.app-root .rename-confirm-title{font-family:var(--font-display);font-size:var(--fs-2xl);color:var(--text);margin:0;font-weight:500}.app-root .rename-confirm-banner{align-items:flex-start;margin:0;line-height:1.5}.app-root .rename-confirm-help{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text-3);margin:0;line-height:1.55}.app-root .rename-confirm-actions{justify-content:flex-end;gap:var(--sp-2);display:flex}@media (width<=900px){.body{grid-template-columns:240px 1fr}.body:has(.drawer){grid-template-columns:240px 1fr 320px}.main-inner{padding:2rem 1.5rem 3rem}}.app-root.login-screen{background:var(--bg);grid-template-columns:1.05fr 1fr;min-height:100vh;display:grid;position:relative;overflow:hidden}.app-root.login-screen:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 18% 22%,#00000005 0%,#0000 55%),radial-gradient(circle at 82% 78%,#2563eb06 0%,#0000 55%);position:fixed;inset:0}.app-root.login-screen>*{z-index:1;position:relative}.login-screen__pane{padding:var(--sp-10);justify-content:center;align-items:center;display:flex}.login-screen__pane--brand{border-right:1px solid var(--line);background:linear-gradient(180deg, transparent 0%, #00000003 100%), var(--surface-alt)}.login-screen__wordmark{max-width:26rem}.login-screen__brand-eyebrow{font-family:var(--font-sans);font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3);padding-bottom:var(--sp-2);margin-bottom:var(--sp-6);border-bottom:1px solid var(--line);font-weight:500;display:inline-block}.login-screen__brand-title{margin:0 0 var(--sp-6);font-family:var(--font-display);letter-spacing:-.03em;font-variation-settings:"SOFT" 40, "WONK" 0;color:var(--text);font-size:clamp(2.75rem,5vw,4.25rem);font-weight:500;line-height:.96}.login-screen__brand-lede{font-size:var(--fs-xl);color:var(--text-2);max-width:22rem;margin:0;line-height:1.5}.login-screen__pane--form{background:var(--bg)}.login-card{gap:var(--sp-5);flex-direction:column;width:100%;max-width:360px;display:flex}.login-card__head{gap:var(--sp-1);margin-bottom:var(--sp-2);flex-direction:column;display:flex}.login-card__kicker{font-family:var(--font-sans);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);font-weight:500}.login-card__title{font-family:var(--font-display);font-size:var(--fs-3xl);color:var(--text);letter-spacing:-.015em;margin:0;font-weight:500;line-height:1}.login-card__field{gap:var(--sp-2);flex-direction:column;display:flex}.login-card__field-label{font-family:var(--font-sans);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-2);font-weight:500}.login-card__submit{margin-top:var(--sp-3);justify-content:center;gap:var(--sp-3)}.login-card__hint{margin:var(--sp-4) 0 0;font-size:var(--fs-xs);color:var(--text-3);text-align:center}@media (width<=880px){.app-root.login-screen{grid-template-columns:1fr}.login-screen__pane--brand{border-right:none;border-bottom:1px solid var(--line);padding:var(--sp-8) var(--sp-6)}.login-screen__brand-title{font-size:clamp(2.25rem,8vw,3.5rem)}.login-screen__pane--form{padding:var(--sp-8) var(--sp-6)}}
