@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap);:root{--green-50:#ecfdf3;--green-100:#d1fadf;--green-200:#a6f0c6;--green-300:#6ce9a6;--green-400:#38d68a;--green-500:#22b573;--green-600:#17945c;--green-700:#0f7a48;--green-800:#0b5e38;--teal-50:#ecfeff;--teal-100:#cff9fb;--teal-200:#a3eef3;--teal-300:#67dde7;--teal-400:#26c3d4;--teal-500:#0ea5b7;--teal-600:#0b8a9a;--teal-700:#0c6f7c;--gray-0:#fff;--gray-50:#f7f9fb;--gray-100:#eef1f5;--gray-200:#e2e6ec;--gray-300:#cbd2db;--gray-400:#9aa4b2;--gray-500:#6b7684;--gray-600:#4b5563;--gray-700:#333c49;--gray-800:#1c2434;--gray-900:#0f141d;--color-primary:var(--green-500);--color-primary-hover:var(--green-600);--color-secondary:var(--teal-500);--color-secondary-hover:var(--teal-600);--accent:var(--color-primary);--bg-app:var(--gray-50);--bg-surface:var(--gray-0);--border:var(--gray-200);--border-strong:var(--gray-300);--text:var(--gray-800);--text-muted:var(--gray-500);--text-subtle:var(--gray-400);--text-on-accent:#fff;--success:#16a34a;--warning:#f59e0b;--danger:#ef4444;--info:var(--teal-500);--primary-wash:#22b5731a;--secondary-wash:#0ea5b71a;--chart-1:var(--green-500);--chart-2:var(--teal-500);--chart-3:#f59e0b;--chart-4:#6366f1;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-display:clamp(2.1rem,5vw,3.4rem);--leading-tight:1.15;--leading-normal:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 4px 12px #10182814;--shadow-lg:0 12px 32px #1018281f;--transition:0.15s ease;--container-max:1240px;--z-nav:50;--z-modal:100}[data-theme=dark]{--bg-app:#080b0d;--bg-surface:#0e1417;--border:#ffffff0f;--border-strong:#ffffff1f;--text:#f4f7fa;--text-muted:#8a94a0;--text-subtle:#5a6470;--color-primary:var(--green-400);--color-primary-hover:var(--green-300);--primary-wash:#38d68a2e}*,:after,:before{box-sizing:border-box}body,html{margin:0}body{-webkit-font-smoothing:antialiased;background:var(--bg-app);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);text-rendering:optimizeLegibility}body,h1,h2,h3{color:var(--text)}h1,h2,h3{line-height:var(--leading-tight);margin:0 0 var(--space-4)}h1{font-size:var(--text-3xl);font-weight:var(--fw-extrabold);letter-spacing:-.01em}h2{font-size:var(--text-2xl);font-weight:var(--fw-bold)}h3{font-size:var(--text-xl);font-weight:var(--fw-semibold)}p{margin:0 0 var(--space-4)}a{color:var(--color-secondary);text-decoration:none}a:hover{text-decoration:underline}.btn{align-items:center;border:1.5px solid #0000;border-radius:var(--radius-pill);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--fw-semibold);gap:var(--space-2);justify-content:center;min-height:40px;padding:10px 20px;transition:background var(--transition),border-color var(--transition),color var(--transition)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-secondary);color:#fff}.btn-secondary:hover{background:var(--color-secondary-hover)}.btn-outline{background:#0000;border-color:var(--color-primary);color:var(--color-primary)}.btn-outline:hover{background:var(--primary-wash)}.btn-ghost{background:#0000;color:var(--text-muted)}.btn-ghost:hover{background:var(--gray-100);color:var(--text)}.btn-lg{font-size:var(--text-base);min-height:48px;padding:14px 30px}.btn-sm{font-size:var(--text-xs);min-height:34px;padding:7px 14px}.btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:600px){.btn{min-height:44px}}.card{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6)}.card,.input,.textarea{background:var(--bg-surface)}.input,.textarea{border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);padding:10px 12px;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.input:focus,.textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--primary-wash);outline:none}.badge{align-items:center;border-radius:var(--radius-pill);display:inline-flex;font-size:var(--text-xs);font-weight:var(--fw-medium);padding:2px 10px}.badge-primary{background:var(--primary-wash);color:var(--green-700)}.badge-secondary{background:var(--secondary-wash);color:var(--teal-700)}.badge-warning{background:#f59e0b1f;color:#b45309}.badge-danger{background:#ef44441f;color:#b91c1c}.modal-overlay{align-items:center;background:#141c288c;display:flex;inset:0;justify-content:center;padding:var(--space-5);position:fixed;z-index:var(--z-modal)}.modal-card{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;max-width:420px;overflow-y:auto;padding:var(--space-8);position:relative;width:100%}.modal-card:focus{outline:none}.modal-card-md{max-width:560px}.modal-header{align-items:flex-start;display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-4)}.modal-title{color:var(--text);font-size:var(--text-xl);font-weight:var(--fw-semibold);margin:0}.modal-close{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;transition:background var(--transition),color var(--transition);width:32px}.modal-close:hover{background:var(--gray-100);color:var(--text)}.modal-body{color:var(--text)}.modal-footer{align-items:center;display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-6)}.page-header{align-items:flex-start;display:flex;gap:var(--space-6);justify-content:space-between;margin-bottom:var(--space-6)}.page-header-text{min-width:0}.page-header-title{color:var(--text);font-size:var(--text-2xl);font-weight:var(--fw-bold);margin:0}.page-header-subtitle{color:var(--text-muted);font-size:var(--text-sm);margin:var(--space-1) 0 0}.page-header-actions{align-items:center;display:flex;flex-shrink:0;gap:var(--space-3)}*{margin:0;padding:0}#root,body,html{height:100%}body{-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.editor-panel{background-color:#1e1e2e;display:flex;flex-direction:column;height:100%;position:relative}.editor-tabs{background:#16161f;border-bottom:1px solid #ffffff0f;display:flex;flex-shrink:0}.tab-button{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:12px;font-weight:500;letter-spacing:.6px;padding:10px 16px;text-transform:uppercase;transition:color .15s ease}.tab-button:hover{color:#d1d5db}.tab-button.active{border-bottom-color:var(--green-400);color:var(--green-400)}.mode-menu-wrap{margin-left:auto;position:relative}.mode-btn,.mode-menu-wrap{align-items:center;align-self:center;display:flex}.mode-btn{background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;font-family:inherit;font-size:11px;font-weight:500;gap:5px;height:24px;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.mode-btn.active,.mode-btn:hover{background:#38d68a14;border-color:#38d68a66;color:var(--green-400)}.mode-menu{left:auto;min-width:280px;right:0}.mode-menu-item-active{background:#38d68a1a!important;color:var(--green-400)!important}.mode-menu .download-menu-item{display:flex;flex-direction:column;gap:1px;padding:7px 12px}.mode-menu-item-label{color:inherit;font-size:.75rem;font-weight:600}.mode-menu-item-detail{color:#6b7280;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.68rem}.upload-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease}.upload-btn.active,.upload-btn:hover{background:#38d68a14;border-color:#38d68a66;color:var(--green-400)}.download-menu-wrap,.upload-menu-wrap{align-items:center;align-self:center;display:flex;position:relative}.download-menu{background:#1e1e2e;border:1px solid #ffffff1f;border-radius:6px;box-shadow:0 4px 12px #0006;min-width:130px;overflow:hidden;position:absolute;right:0;top:calc(100% + 6px);z-index:100}.download-menu-item{background:#0000;border:none;color:#d1d5db;cursor:pointer;display:block;font-family:inherit;font-size:12px;padding:8px 12px;text-align:left;transition:background .12s ease,color .12s ease;white-space:nowrap;width:100%}.download-menu-item:hover{background:#38d68a26;color:var(--green-400)}.download-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease}.download-btn.active,.download-btn:hover{background:#38d68a14;border-color:#38d68a66;color:var(--green-400)}.reset-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-family:inherit;font-size:11px;height:24px;margin-left:0;margin-right:8px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.reset-btn:hover{background:#ffffff0d;border-color:#fff3;color:#d1d5db}.reset-btn-confirm{background:#f8717114;border-color:#f8717166;color:#f87171}.reset-btn-confirm:hover{background:#f8717126;border-color:#f8717199;color:#fca5a5}.panel-maximize-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;height:24px;margin-left:4px;padding:0 6px;transition:color .15s ease,border-color .15s ease,background .15s ease}.panel-maximize-btn:hover{background:#38d68a14;border-color:#38d68a66;color:var(--green-400)}.editor-wrapper{flex:1 1;min-height:0;overflow:hidden}.save-btn{align-items:center;align-self:center;background:#0000;border:1px solid #38d68a59;border-radius:4px;color:var(--green-400);cursor:pointer;display:flex;font-family:inherit;font-size:11px;gap:4px;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.save-btn:hover:not(:disabled){background:#38d68a14;border-color:#38d68a99;color:var(--green-400)}.save-btn:disabled{cursor:default;opacity:.5}.save-btn-saved{border-color:#34d39973;color:#34d399}.revert-btn{align-items:center;align-self:center;background:#0000;border:1px solid #fbbf244d;border-radius:4px;color:#fbbf24;cursor:pointer;display:flex;font-family:inherit;font-size:11px;gap:4px;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.revert-btn:hover{background:#fbbf2414;border-color:#fbbf248c;color:#fcd34d}.drop-overlay{align-items:center;background:#38d68a1f;border:2px dashed var(--green-400);display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute;z-index:50}.drop-overlay-content{align-items:center;color:var(--green-400);display:flex;flex-direction:column;font-size:.9375rem;font-weight:600;gap:12px}.drop-confirm-overlay{align-items:center;background:#000000a6;display:flex;inset:0;justify-content:center;position:absolute;z-index:100}.drop-confirm-modal{background:#1e1e2e;border:1px solid #ffffff1f;border-radius:10px;box-shadow:0 8px 32px #0009;max-width:340px;padding:24px;width:90%}.drop-confirm-title{color:#e5e7eb;font-size:1rem;font-weight:600;margin:0 0 10px}.drop-confirm-body{color:#9ca3af;font-size:.875rem;margin:0 0 10px}.drop-confirm-tags{display:flex;gap:6px;margin-bottom:12px}.drop-confirm-tag{background:#38d68a2e;border:1px solid #38d68a59;border-radius:4px;color:var(--green-400);font-size:.78rem;font-weight:600;padding:2px 8px}.drop-confirm-note{color:#6b7280;font-size:.8125rem;font-style:italic;margin:0 0 20px}.drop-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.drop-confirm-cancel{background:#0000;border:1px solid #ffffff1f;border-radius:6px;color:#9ca3af;cursor:pointer;font-family:inherit;font-size:.875rem;padding:6px 14px;transition:background .12s ease,color .12s ease}.drop-confirm-cancel:hover{background:#ffffff0f;color:#d1d5db}.drop-confirm-apply{background:var(--green-500);border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:600;padding:6px 14px;transition:background .12s ease}.drop-confirm-apply:hover{background:var(--green-600)}.browser-preview{background:#fff;display:flex;flex-direction:column;height:100%}.tab-strip{align-items:stretch;background:#dee1e6;display:flex;flex-shrink:0;height:38px;padding-left:8px}.tab-row{align-items:flex-end;flex:1 1;gap:0}.browser-tab,.tab-row{display:flex;min-width:0}.browser-tab{align-items:center;align-self:flex-end;background:#fff;border-radius:8px 8px 0 0;box-shadow:0 1px 3px #0000001f;color:#3c4043;font-size:.78rem;font-weight:500;gap:7px;height:30px;max-width:220px;padding:0 14px 0 12px;white-space:nowrap}.tab-favicon{color:#5f6368;flex-shrink:0}.tab-favicon-img{flex-shrink:0;height:14px;object-fit:contain;width:14px}.tab-title{overflow:hidden;text-overflow:ellipsis}.new-tab-btn{align-items:center;align-self:flex-end;background:#0000;border:none;border-radius:50%;color:#5f6368;cursor:default;display:flex;flex-shrink:0;height:28px;justify-content:center;margin-bottom:1px;opacity:.45;width:28px}.window-controls{align-items:stretch;margin-left:auto}.wc-btn,.window-controls{display:flex;flex-shrink:0}.wc-btn{align-items:center;background:#0000;border:none;color:#3c4043;cursor:pointer;height:38px;justify-content:center;transition:background .1s ease;width:46px}.wc-max:hover,.wc-min:hover{background:#0000001a}.wc-close:hover{background:#c42b1c;color:#fff}.chrome-toolbar{background:#f1f3f4;border-bottom:1px solid #dadce0;gap:2px;height:44px;padding:5px 10px}.chrome-icon-btn,.chrome-toolbar{align-items:center;display:flex;flex-shrink:0}.chrome-icon-btn{background:#0000;border:none;border-radius:50%;color:#3c4043;cursor:pointer;height:32px;justify-content:center;transition:background .1s ease;width:32px}.nav-btn{cursor:default;opacity:.3}.refresh-btn{color:#3c4043;margin-right:4px;opacity:1}.refresh-btn:hover{background:#3c40431f;color:#1a73e8}.refresh-btn:active{background:#1a73e829;color:#1a73e8}.side-btn{cursor:default;opacity:.5}.omnibox{align-items:center;background:#fff;border:1.5px solid #dadce0;border-radius:16px;cursor:default;display:flex;flex:1 1;gap:7px;height:30px;padding:0 14px;-webkit-user-select:none;user-select:none}.omnibox-lock{color:#188038;flex-shrink:0}.omnibox-url{color:#202124;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.8125rem;letter-spacing:.01em}.console-toggle-btn{opacity:.75;position:relative}.console-toggle-btn:hover{background:#3c40431f;opacity:1}.console-toggle-btn.active{background:#1a73e81a;color:#1a73e8;opacity:1}.console-toggle-btn.has-errors svg{transform:scale(1.4);transform-origin:center}.browser-content{display:flex;flex:1 1;min-height:0;overflow:hidden;position:relative}.syntax-error-banner{align-items:center;background:#7f1d1d;border-top:1px solid #991b1b;color:#fecaca;display:flex;flex-shrink:0;font-family:Consolas,Menlo,monospace;font-size:.78rem;gap:8px;padding:7px 14px}.syntax-error-banner strong{color:#fca5a5;font-weight:700}.syntax-error-dismiss{background:#0000;border:none;color:#fca5a5;cursor:pointer;font-size:1rem;line-height:1;margin-left:auto;opacity:.75;padding:0 4px;transition:opacity .1s}.syntax-error-dismiss:hover{opacity:1}.console-panel{background:#1e1e1e;border-left:1px solid #333;display:flex;flex-direction:column;flex-shrink:0;font-family:Consolas,Menlo,Monaco,monospace;font-size:.78rem;overflow:hidden;position:relative}.console-resize-handle{bottom:0;cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='16'%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' d='M11 1v14'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M4 8H0'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='M2 5 0 8l2 3'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M18 8h4'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='m20 5 2 3-2 3'/%3E%3C/svg%3E") 11 8,col-resize;left:0;position:absolute;top:0;transition:background .15s ease;width:5px;z-index:10}.console-resize-handle:hover{background:#6366f159}.resize-overlay{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='16'%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' d='M11 1v14'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M4 8H0'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='M2 5 0 8l2 3'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M18 8h4'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='m20 5 2 3-2 3'/%3E%3C/svg%3E") 11 8,col-resize;inset:0;position:absolute;z-index:100}.console-panel-header{align-items:center;background:#2d2d2d;border-bottom:1px solid #444;display:flex;flex-shrink:0;gap:6px;justify-content:space-between;min-height:32px;padding:2px 8px 2px 12px}.console-tabs{display:flex;gap:2px}.console-tab-btn{background:none;border:none;border-radius:3px;color:#6b7280;cursor:pointer;font-family:inherit;font-size:.7rem;font-weight:600;letter-spacing:.05em;padding:3px 8px;text-transform:uppercase;transition:color .1s,background .1s}.console-tab-btn:hover{background:#ffffff0f;color:#d1d5db}.console-tab-btn.active{background:#ffffff1a;color:#e5e7eb}.console-header-right{align-items:center;display:flex;gap:6px;margin-left:auto}.console-filter-chips{display:flex;gap:3px}.console-filter-chip{background:#ffffff0d;border:1px solid #ffffff14;border-radius:3px;color:#4b5563;cursor:pointer;font-family:inherit;font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:1px 5px;transition:background .12s,color .12s,border-color .12s}.console-filter-chip.filter-error.active{background:#ef444426;border-color:#ef444466;color:#ef4444}.console-filter-chip.filter-warn.active{background:#fbbf241f;border-color:#fbbf2466;color:#fbbf24}.console-filter-chip.filter-log.active{background:#6b728026;border-color:#ffffff1f;color:#9ca3af}.console-filter-chip:hover{opacity:.85}.console-clear-btn{background:none;border:none;border-radius:3px;color:#6b7280;cursor:pointer;font-family:inherit;font-size:.72rem;padding:2px 6px;transition:background .1s,color .1s}.console-clear-btn:hover{background:#ffffff14;color:#d1d5db}.console-tab-body{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.console-entries{flex:1 1;min-height:0;overflow-y:auto;padding:4px 0}.console-empty{color:#6b7280;font-size:.75rem;font-style:italic;padding:8px 12px}.console-entry{border-bottom:1px solid #ffffff08;cursor:default;display:flex;flex-direction:column;line-height:1.4;padding:3px 12px}.console-entry:last-child{border-bottom:none}.console-entry-linked{cursor:pointer}.console-entry-linked:hover{background:#ffffff0a}.console-entry-main{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px}.console-level{flex-shrink:0;font-size:.68rem;font-weight:700;letter-spacing:.04em;padding-top:1px;text-transform:uppercase;width:34px}.console-message{color:#e5e7eb;flex:1 1;white-space:pre-wrap;word-break:break-all}.console-line-link{color:#6b7280;flex-shrink:0;font-size:.7rem;margin-left:4px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.console-stack-btn{background:none;border:none;color:#6b7280;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:.68rem;padding:0 4px;transition:color .1s}.console-stack-btn:hover{color:#9ca3af}.console-entry-source-line{padding:3px 8px 3px 42px}.console-entry-source-line code{background:#ffffff0d;border-radius:3px;color:#9ca3af;display:block;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.7rem;max-width:100%;overflow:hidden;padding:1px 5px;text-overflow:ellipsis;white-space:pre}.console-stack{border-left:2px solid #333;margin-left:2px;margin-top:3px;padding-left:42px}.console-stack-frame{color:#6b7280;font-size:.7rem;line-height:1.5;white-space:pre-wrap;word-break:break-all}.console-log .console-level{color:#6b7280}.console-info .console-level{color:#60a5fa}.console-info .console-message{color:#93c5fd}.console-warn{background:#fbbf2412}.console-warn .console-level{color:#fbbf24}.console-warn .console-message{color:#fde68a}.console-error{background:#ef44441a}.console-error .console-level{color:#ef4444}.console-error .console-message{color:#fca5a5}.console-arg{display:inline}.obj-node{display:inline-block;vertical-align:top}.obj-toggle{background:none;border:none;color:#a5b4fc;cursor:pointer;font-family:inherit;font-size:.75rem;padding:0;transition:color .1s;white-space:nowrap}.obj-toggle:hover{color:#818cf8}.obj-children{border-left:1px solid #333;margin-left:4px;padding-left:14px}.obj-row{display:flex;flex-wrap:wrap;line-height:1.5}.obj-key{color:#a5b4fc;font-size:.73rem}.obj-primitive{color:#86efac;font-size:.73rem}.obj-ellipsis{color:#6b7280;font-size:.73rem}.console-repl{background:#181818;border-top:1px solid #333;flex-shrink:0}.console-repl-history{max-height:120px;overflow-y:auto;padding:4px 0}.console-repl-entry{padding:2px 10px}.console-repl-expr{color:#d1d5db;display:flex;font-size:.73rem;gap:6px}.console-repl-prompt{color:#6366f1;flex-shrink:0;font-weight:700}.console-repl-expr-text{color:#e5e7eb}.console-repl-result{color:#86efac;display:flex;font-size:.73rem;gap:6px;padding-left:2px}.console-repl-error{color:#fca5a5}.console-repl-arrow{color:#6b7280;flex-shrink:0}.console-repl-pending{color:#4b5563;font-size:.73rem;padding-left:12px}.console-repl-input-row{align-items:center;border-top:1px solid #2a2a2a;display:flex;gap:6px;padding:5px 8px 5px 10px}.console-repl-input{background:#0000;border:none;caret-color:#a5b4fc;color:#e5e7eb;flex:1 1;font-family:Consolas,Menlo,monospace;font-size:.75rem;outline:none}.console-repl-input::placeholder{color:#4b5563}.console-repl-run{background:#6366f126;border:1px solid #6366f14d;border-radius:3px;color:#a5b4fc;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:.68rem;padding:2px 7px;transition:background .1s,color .1s}.console-repl-run:hover{background:#6366f147;color:#c7d2fe}.console-source{background:#1e1e1e;flex:1 1;min-height:0;overflow-x:auto;overflow-y:auto}.console-source-info{background:#2d2d2d;border-bottom:1px solid #444;color:#fbbf24;font-size:.7rem;padding:5px 12px;position:-webkit-sticky;position:sticky;top:0;white-space:nowrap;z-index:5}.console-source-body{display:flex;min-width:-webkit-max-content;min-width:max-content;position:relative}.console-source-line-highlight{background:#ef44442e;border-left:3px solid #ef4444;height:18px;left:0;pointer-events:none;position:absolute;right:0;z-index:1}.console-source-gutter{background:#1e1e1e;border-right:1px solid #333;flex-shrink:0;left:0;padding-right:0;position:-webkit-sticky;position:sticky;-webkit-user-select:none;user-select:none;z-index:2}.console-source-linenum{align-items:center;color:#4b5563;display:flex;font-size:.73rem;height:18px;justify-content:flex-end;line-height:18px;min-width:42px;padding-right:10px}.console-source-linenum.line-highlighted{background:#ef444426;color:#fca5a5}.console-source-pre{background:#0000!important;color:#d4d4d4;font-family:Consolas,Menlo,Monaco,monospace!important;font-size:.73rem!important;line-height:18px!important;margin:0;padding:0 14px;tab-size:2;white-space:pre!important}.console-source-pre .token.tag{color:#569cd6}.console-source-pre .token.attr-name{color:#9cdcfe}.console-source-pre .token.attr-value,.console-source-pre .token.string{color:#ce9178}.console-source-pre .token.comment{color:#6a9955}.console-source-pre .token.keyword{color:#569cd6}.console-source-pre .token.number{color:#b5cea8}.console-source-pre .token.function{color:#dcdcaa}.console-source-pre .token.operator,.console-source-pre .token.punctuation{color:#d4d4d4}.console-source-pre .token.cdata,.console-source-pre .token.doctype,.console-source-pre .token.prolog{color:grey}.browser-iframe{background:#fff;border:none;display:block;flex:1 1;min-width:0}.client-panel{background:var(--bg-app);border-left:3px solid var(--accent);box-sizing:border-box;color:var(--text);display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}[data-theme=dark] .client-panel{box-shadow:inset 15px 0 30px -15px var(--accent-glow)}.chat-modal-header{align-items:center;background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:14px 16px}.chat-modal-header-left{align-items:center;display:flex;gap:10px}.modal-avatar{align-items:center;background:var(--secondary-wash);border-radius:50%;color:var(--color-secondary);display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.chat-modal-header h2{color:var(--text);font-size:.9375rem;font-weight:600;line-height:1.2;margin:0}.modal-status{align-items:center;color:var(--text-muted);display:flex;font-size:.75rem;gap:5px;margin-top:1px}.modal-status:before{background:var(--accent);border-radius:50%;content:"";display:inline-block;flex-shrink:0;height:6px;width:6px}.chat-modal-header-right{align-items:center;display:flex;flex-shrink:0;gap:4px}.chat-maximize-btn,.close-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:30px;justify-content:center;transition:color .12s ease,background .12s ease;width:30px}.chat-maximize-btn:hover,.close-btn:hover{background:var(--surface-hi);color:var(--text)}.close-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chat-modal-body{background:var(--bg-app);flex:1 1;min-height:0;overflow:hidden}.chat-modal-body,.session-picker{display:flex;flex-direction:column}.session-picker{gap:12px;padding:4px 0}.session-picker-header h3{color:var(--text);font-size:.9375rem;font-weight:600;margin:0 0 4px}.session-picker-header p{color:var(--text-muted);font-size:.8rem;margin:0}.session-picker-loading{color:var(--text-subtle);font-size:.8rem;padding:8px 0}.session-picker-list{display:flex;flex-direction:column;gap:7px}.session-picker-item{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:4px;padding:12px 14px;text-align:left;transition:border-color .13s,box-shadow .13s,background .13s}.session-picker-item:hover{background:var(--surface-hi);border-color:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.spi-meta{align-items:center;display:flex;gap:8px;justify-content:space-between}.spi-unit{color:var(--text);font-size:.8125rem;font-weight:600}.spi-status{border-radius:10px;flex-shrink:0;font-size:.7rem;font-weight:500;padding:2px 7px;text-transform:capitalize}.spi-status-active{background:var(--primary-wash);color:var(--color-primary)}.spi-status-complete{background:var(--surface-hi);color:var(--text-subtle)}.spi-topics{color:var(--text-muted);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spi-date{color:var(--text-subtle);font-size:.7rem}.session-picker-new{background:#0000;border:1.5px dashed var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:.8125rem;padding:10px;transition:border-color .13s,color .13s;width:100%}.session-picker-new:hover{border-color:var(--accent);color:var(--accent)}.setup-screen{background:var(--bg-app);display:flex;flex:1 1;flex-direction:column;gap:18px;overflow-y:auto;padding:18px}.helper-blurb{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:16px}.helper-blurb h3{color:var(--text);font-size:.9375rem;font-weight:600;margin:0 0 10px}.helper-blurb p{color:var(--text-muted);font-size:.8rem;line-height:1.6;margin:0 0 10px}.blurb-list{display:flex;flex-direction:column;gap:6px;margin:0 0 10px;padding-left:16px}.blurb-list li{color:var(--text-muted);font-size:.8rem;line-height:1.5}.blurb-footer{color:var(--text-subtle)!important;font-size:.8rem!important;font-style:italic;margin:0!important}.setup-form{gap:14px}.form-group,.setup-form{display:flex;flex-direction:column}.form-group{gap:4px}.form-group label{color:var(--text);font-size:.8125rem;font-weight:500}.required-star{color:#ef4444;margin-left:1px}.optional-label{margin-left:3px}.setup-input{background:var(--surface-hi);border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:inherit;font-size:.875rem;padding:9px 12px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.setup-input::placeholder{color:var(--text-subtle)}.setup-input:focus{background:var(--bg-surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-hint{color:var(--text-subtle);font-size:.75rem}.setup-input-disabled{cursor:not-allowed;opacity:.45}.setup-textarea{font-family:inherit;min-height:56px;resize:vertical}.form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.checkbox-label{align-items:center;color:var(--text-muted);cursor:pointer;display:flex;font-size:.8rem;gap:7px;margin-top:2px;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{accent-color:var(--accent);cursor:pointer;flex-shrink:0;height:14px;width:14px}.btn-start{background:var(--accent);border:none;border-radius:8px;color:var(--bg-app);cursor:pointer;font-size:.875rem;font-weight:500;letter-spacing:.1px;padding:10px 16px;transition:opacity .15s ease;width:100%}.btn-start:hover:not(:disabled){opacity:.88}.btn-start:disabled{background:var(--accent-soft);color:var(--text-subtle);cursor:not-allowed}.btn-start:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.setup-context-block{background:var(--surface-hi);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:6px;padding:10px 12px}.setup-context-row{align-items:flex-start;display:flex;gap:8px}.setup-context-label{color:var(--text-subtle);flex-shrink:0;font-size:.75rem;font-weight:600;letter-spacing:.04em;min-width:52px;padding-top:1px;text-transform:uppercase}.setup-context-value{color:var(--text-muted);font-size:.8125rem;line-height:1.45}.error-message{background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.875rem;margin:16px;padding:12px 14px}.error{color:#b91c1c;font-size:.8125rem;margin:4px 0 0}.chat-section{position:relative}.chat-section,.messages-list{background:var(--bg-app);display:flex;flex:1 1;flex-direction:column;min-height:0}.messages-list{gap:8px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:16px}.messages-list::-webkit-scrollbar{width:4px}.messages-list::-webkit-scrollbar-track{background:var(--bg-app)}.messages-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}.messages-list::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.message{align-items:flex-end;display:flex;gap:8px}.msg-user{flex-direction:row-reverse}.msg-assistant{flex-direction:row}.msg-avatar{align-items:center;background:var(--color-secondary);border-radius:50%;color:var(--bg-app);display:flex;flex-shrink:0;font-size:.6875rem;font-weight:600;height:26px;justify-content:center;margin-bottom:2px;width:26px}.bubble-wrap{align-items:flex-start;display:flex;flex-direction:column;gap:3px;max-width:72%;min-width:0}.msg-user .bubble-wrap{align-items:flex-end}.msg-assistant .bubble-wrap{max-width:90%}.bubble-actions{align-items:center;align-self:flex-start;display:flex;gap:2px}.msg-user .bubble-actions{align-self:flex-end}.bubble-copy-btn,.bubble-retry-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:var(--text-subtle);cursor:pointer;display:flex;justify-content:center;opacity:0;padding:2px 4px;pointer-events:none;transition:opacity .12s ease,color .12s ease}.bubble-wrap:hover .bubble-copy-btn,.bubble-wrap:hover .bubble-retry-btn{opacity:1;pointer-events:auto}.bubble-copy-btn:hover,.bubble-retry-btn:hover{color:var(--text-muted)}.message-bubble{word-wrap:break-word;border-radius:14px;min-width:0;overflow:hidden;padding:9px 13px}.msg-user .message-bubble{background:var(--accent-soft);border-bottom-right-radius:4px;color:var(--text)}.msg-assistant .message-bubble{background:var(--surface-hi);border:1px solid var(--border);border-bottom-left-radius:4px;color:var(--text)}.message-bubble p{color:var(--text);font-size:.875rem;line-height:1.5;margin:0}.message-bubble .md{color:var(--text);font-size:.875rem;line-height:1.55}.message-bubble .md>*+*{margin-top:6px}.message-bubble .md p{color:var(--text);margin:0}.message-bubble .md p+p{margin-top:6px}.message-bubble .md ol,.message-bubble .md ul{color:var(--text);margin:4px 0;padding-left:18px}.message-bubble .md li{margin:2px 0}.message-bubble .md strong{color:var(--text);font-weight:600}.message-bubble .md em{font-style:italic}.message-bubble .md h1,.message-bubble .md h2,.message-bubble .md h3{color:var(--text);font-size:.9375rem;font-weight:600;margin:4px 0 2px}.message-bubble .md table{border-collapse:collapse;font-size:.8rem;margin:6px 0;width:100%}.message-bubble .md td,.message-bubble .md th{border:1px solid var(--border);line-height:1.45;padding:5px 8px;text-align:left;vertical-align:top}.message-bubble .md th{background:var(--surface-hi);color:var(--text);font-weight:600;white-space:nowrap}.message-bubble .md tr:nth-child(2n) td{background:var(--bg-surface)}.code-block-wrapper{border-radius:6px;margin:6px 0;overflow:hidden}.code-block-header{align-items:center;background:#2d2d2d;border-bottom:1px solid #ffffff12;display:flex;justify-content:space-between;padding:6px 10px 6px 12px}.code-block-lang{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;gap:6px;-webkit-user-select:none;user-select:none}.code-block-lang,.code-copy-btn{align-items:center;color:#9ca3af;display:flex}.code-copy-btn{background:#0000;border:none;border-radius:3px;cursor:pointer;justify-content:center;line-height:1;padding:3px 5px;transition:color .12s ease,background .12s ease}.code-copy-btn:hover{background:#ffffff1a;color:#e5e7eb}.message-bubble .md pre{background:#2d2d2d;border-radius:0;color:#d4d4d4;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.78rem;line-height:1.5;margin:0;overflow-x:auto;padding:10px 12px;white-space:pre}.message-bubble .md pre code{background:none;border-radius:0;color:inherit;font-size:inherit;padding:0}.message-bubble .md code{background:var(--surface-hi);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.8rem;padding:1px 5px}.typing-bubble{align-items:center;display:flex;gap:4px;min-width:52px;padding:12px 14px}.dot{animation:bounce 1.2s ease-in-out infinite;background:var(--text-subtle);border-radius:50%;display:block;height:6px;width:6px}.dot:first-child{animation-delay:0s}.dot:nth-child(2){animation-delay:.18s}.dot:nth-child(3){animation-delay:.36s}@keyframes bounce{0%,60%,to{opacity:.6;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.chat-footer{background:var(--bg-surface);border-top:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;gap:8px;padding:12px 14px}.chat-error{margin:0}.csv-block{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;margin:6px 0;overflow:hidden}.csv-block-header{align-items:center;background:var(--surface-hi);border-bottom:1px solid var(--border);display:flex;gap:8px;justify-content:space-between;padding:8px 11px}.csv-block-info{align-items:center;color:var(--text-muted);display:flex;gap:7px;min-width:0}.csv-filename{color:var(--text);font-size:.8125rem;font-weight:600}.csv-rowcount{color:var(--text-subtle);font-size:.75rem}.csv-download-btn{align-items:center;background:var(--accent);border:none;border-radius:5px;color:var(--bg-app);cursor:pointer;display:flex;flex-shrink:0;font-family:inherit;font-size:.75rem;font-weight:500;gap:5px;padding:4px 10px;transition:opacity .12s ease}.csv-download-btn:hover{opacity:.88}.csv-download-btn:active{opacity:.75}.csv-block-preview{color:var(--text-muted);font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.72rem;line-height:1.6;overflow-x:auto;padding:8px 11px}.csv-row{white-space:pre}.csv-row-header{border-bottom:1px solid var(--border);color:var(--text);font-weight:600;margin-bottom:3px;padding-bottom:3px}.csv-row-more{color:var(--text-subtle);font-size:.7rem;margin-top:3px}.pasted-preview{align-self:flex-start;display:inline-flex;position:relative}.pasted-thumb{border:1px solid var(--border);border-radius:8px;display:block;max-height:80px;max-width:100%;object-fit:contain}.pasted-remove{align-items:center;background:var(--text);border:none;border-radius:50%;color:var(--bg-app);cursor:pointer;display:flex;height:18px;justify-content:center;padding:0;position:absolute;right:-6px;top:-6px;transition:opacity .12s;width:18px}.pasted-remove:hover{opacity:.8}.msg-image-badge{align-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;color:var(--text-muted);display:inline-flex;font-size:.75rem;gap:5px;margin-bottom:4px;padding:3px 7px}.chat-input-form{align-items:center;display:flex;gap:8px}.chat-input{background:var(--surface-hi);border:1px solid var(--border);border-radius:20px;color:var(--text);flex:1 1;font-family:inherit;font-size:.875rem;line-height:1.5;max-height:140px;min-height:36px;overflow:hidden;overflow-y:auto;padding:9px 13px;resize:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.chat-input::placeholder{color:var(--text-subtle)}.chat-input:focus{background:var(--bg-surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.chat-input:disabled{cursor:not-allowed;opacity:.55}.chat-input-listening{border-color:#fca5a5!important;box-shadow:0 0 0 3px #ef444414!important}.btn-mic{align-items:center;background:#0000;border:1px solid var(--border);border-radius:50%;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:34px;justify-content:center;transition:background .15s ease,color .15s ease,border-color .15s ease;width:34px}.btn-mic:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent)}.btn-mic:disabled{cursor:not-allowed;opacity:.4}.btn-mic:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-mic-active{animation:mic-pulse 1.4s ease-in-out infinite;background:#fef2f2;border-color:#fca5a5;color:#ef4444}.btn-mic-active:hover:not(:disabled){background:#fee2e2;border-color:#f87171;color:#dc2626}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 #ef444440}50%{box-shadow:0 0 0 5px #ef444400}}.btn-send{align-items:center;background:var(--accent);border:none;border-radius:50%;color:var(--bg-app);cursor:pointer;display:flex;flex-shrink:0;height:34px;justify-content:center;transition:opacity .15s ease,transform .1s ease;width:34px}.btn-send:hover:not(:disabled){opacity:.88}.btn-send:active:not(:disabled){transform:scale(.93)}.btn-send:disabled{background:var(--surface-hi);color:var(--text-subtle);cursor:not-allowed}.btn-send:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.send-spinner{animation:spin .7s linear infinite;border:2px solid #ffffff59;border-radius:50%;border-top:2px solid var(--bg-app);display:block;height:13px;width:13px}[data-theme=dark] .send-spinner{border-color:#00000040;border-top-color:var(--bg-app)}.finish-lecture-bar{border-bottom:1px solid var(--border);display:flex;justify-content:flex-end;margin-bottom:2px;padding-bottom:6px}.lecture-finish-btn{background:var(--accent);border:none;border-radius:20px;box-shadow:0 2px 10px var(--accent-glow);color:var(--bg-app);cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:7px 18px;transition:opacity .15s,box-shadow .15s;white-space:nowrap}.lecture-finish-btn:hover:not(:disabled){box-shadow:0 4px 18px var(--accent-glow);opacity:.88}.lecture-finish-btn:disabled{cursor:not-allowed;opacity:.5}.lecture-done-bar{align-items:center;background:var(--accent-soft);border-top:1px solid var(--accent-soft);display:flex;gap:8px;justify-content:flex-end;padding:12px 16px}.lecture-done-next{background:var(--accent);border:none;border-radius:6px;color:var(--bg-app);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:7px 14px;transition:opacity .15s}.lecture-done-next:hover{opacity:.88}.lecture-done-ghost{background:#0000;border:1.5px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:7px 12px;transition:border-color .15s,color .15s}.lecture-done-ghost:hover{border-color:var(--text-muted);color:var(--text)}.pa-done-bar{align-items:center;background:var(--bg-surface);border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding:12px 16px}.pa-done-primary{background:var(--accent);border:none;border-radius:6px;color:var(--bg-app);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:7px 14px;transition:opacity .15s}.pa-done-primary:hover{opacity:.88}.pa-done-secondary{background:#0000;border:1.5px solid var(--accent-soft);border-radius:6px;color:var(--accent);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:7px 14px;transition:background .15s,border-color .15s}.pa-done-secondary:hover{background:var(--accent-soft);border-color:var(--accent)}.pa-done-ghost{background:#0000;border:1.5px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:7px 12px;transition:border-color .15s,color .15s}.pa-done-ghost:hover{border-color:var(--text-muted);color:var(--text)}.report-download{align-items:center;background:var(--surface-hi);border:1px solid var(--accent-soft);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px 10px;justify-content:space-between;margin:8px 0 2px;padding:10px 12px}.report-download-info{align-items:center;color:var(--icon-accent);display:flex;gap:9px;min-width:0}.report-download-title{color:var(--text);font-size:.8125rem;font-weight:600;line-height:1.3}.report-download-subtitle{color:var(--text-muted);font-size:.75rem;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-prompt-banner{align-items:center;background:var(--surface-hi);border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:10px;justify-content:space-between;padding:10px 14px}.save-prompt-text{align-items:center;color:var(--text);display:flex;font-size:.8125rem;font-weight:500;gap:8px;min-width:0}.save-prompt-actions{display:flex;flex-shrink:0;gap:6px}.save-prompt-btn-primary{background:var(--accent);border:none;border-radius:5px;color:var(--bg-app);cursor:pointer;font-family:inherit;font-size:.75rem;font-weight:500;padding:4px 12px;transition:opacity .12s ease}.save-prompt-btn-primary:hover{opacity:.88}.save-prompt-btn-dismiss{background:#0000;border:1px solid var(--accent-soft);border-radius:5px;color:var(--accent);cursor:pointer;font-family:inherit;font-size:.75rem;font-weight:500;padding:4px 10px;transition:background .12s ease}.save-prompt-btn-dismiss:hover{background:var(--accent-soft)}.mode-select-screen{display:flex;flex-direction:column;gap:20px;padding:8px 0}.mode-select-heading{color:var(--text);font-size:17px;font-weight:700;margin:0}.mode-select-sub{color:var(--text-muted);font-size:13px;margin:-12px 0 0}.mode-cards{gap:10px}.mode-card,.mode-cards{display:flex;flex-direction:column}.mode-card{background:var(--surface-hi);border:1.5px solid var(--border);border-radius:10px;cursor:pointer;font-family:inherit;gap:6px;padding:16px 18px;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s}.mode-card:hover{background:var(--bg-surface);border-color:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.mode-card-icon{align-items:center;color:var(--icon-accent);display:flex;margin-bottom:2px}.mode-card-title{color:var(--text);font-size:14px;font-weight:600}.mode-card-desc{color:var(--text-muted);font-size:12px;line-height:1.5}.mode-back-btn{align-items:center;background:none;border:none;color:var(--color-primary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:12px;gap:5px;margin-bottom:12px;padding:0;transition:opacity .15s}.mode-back-btn:hover{opacity:.75}@media (max-width:640px){.client-panel{border-left:none;border-radius:0;border-top:3px solid var(--accent);height:100%}[data-theme=dark] .client-panel{box-shadow:none}.chat-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px))}.messages-list{-webkit-overflow-scrolling:touch}.chat-input,.setup-input{font-size:16px}.btn-mic,.btn-send,.chat-maximize-btn,.close-btn{height:44px;width:44px}.code-copy-btn{min-height:44px;min-width:44px;padding:10px}.bubble-copy-btn,.bubble-retry-btn{min-height:44px;min-width:44px;opacity:1;padding:12px;pointer-events:auto}.bubble-wrap{max-width:85%}.msg-assistant .bubble-wrap{max-width:calc(100% - 34px)}.message-bubble{word-break:break-word}.code-block-wrapper,.csv-block-preview{overflow-x:auto}.finish-lecture-bar{justify-content:stretch}.lecture-finish-btn{border-radius:8px;font-size:14px;padding:12px 16px;width:100%}.save-prompt-banner{flex-wrap:wrap;gap:8px}.save-prompt-actions{flex-wrap:wrap;width:100%}.save-prompt-btn-dismiss,.save-prompt-btn-primary{flex:1 1;padding:8px 12px;text-align:center}.form-row{grid-template-columns:1fr}.lecture-done-bar,.pa-done-bar{align-items:stretch;flex-direction:column;gap:8px}.lecture-done-ghost,.lecture-done-next,.pa-done-ghost,.pa-done-primary,.pa-done-secondary{padding:11px 16px;text-align:center;width:100%}}.welcome-header{margin-bottom:18px;text-align:center}.welcome-logo{height:32px;margin-bottom:8px;object-fit:contain;width:32px}.welcome-title{color:var(--text);font-size:var(--text-xl);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:0 0 6px}.welcome-subtitle{color:var(--text-muted);font-size:var(--text-sm);line-height:1.55;margin:0}.welcome-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.welcome-step{align-items:flex-start;display:flex;gap:12px}.step-icon{align-items:center;border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:28px;justify-content:center;margin-top:1px;width:28px}.step-icon-editor{background:#eff6ff;color:#3b82f6}.step-icon-preview{background:#f0fdf4;color:#22c55e}.step-icon-chat{background:#faf5ff;color:#a855f7}.step-icon-sm{background:#fff7ed;color:#f97316}.step-icon-lecture{background:#fdf4ff;color:#a21caf}.step-icon-pa{background:#f0fdf4;color:#16a34a}.step-text{color:var(--text-muted);font-size:var(--text-sm);line-height:1.5}.step-text strong{color:var(--text)}.welcome-file-modes{margin-bottom:18px}.welcome-file-modes-label{color:var(--text-muted);font-size:.8125rem;font-weight:var(--fw-semibold);margin:0 0 10px}.welcome-mode-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.welcome-mode-option{align-items:flex-start;background:var(--bg-app);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:2px;padding:8px 10px;text-align:left;transition:border-color .12s ease,background .12s ease;width:100%}.welcome-mode-option.selected,.welcome-mode-option:hover{background:var(--primary-wash);border-color:var(--color-primary)}.welcome-mode-count{color:var(--text-subtle);font-size:.7rem;font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase}.welcome-mode-option.selected .welcome-mode-count{color:var(--color-primary)}.welcome-mode-files{align-items:center;display:flex;flex-wrap:wrap;gap:1px;line-height:1.4}.welcome-mode-filename{color:var(--text);font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:var(--text-xs)}.welcome-mode-sep{color:var(--text-subtle);font-size:var(--text-xs)}.welcome-mode-desc{color:var(--text-subtle);font-size:.72rem;line-height:1.4}.welcome-cta{width:100%}.avatar-menu{position:relative}.avatar-menu-trigger{align-items:center;background:var(--primary-wash);border:1px solid var(--primary-wash);border-radius:50%;color:var(--color-primary);cursor:pointer;display:flex;flex-shrink:0;font-family:inherit;font-size:12px;font-weight:700;height:32px;justify-content:center;transition:border-color .15s,box-shadow .15s;width:32px}.avatar-menu-trigger:hover{border-color:var(--color-primary)}.avatar-menu-dropdown{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);min-width:200px;padding:5px;position:absolute;right:0;top:calc(100% + 8px);z-index:500}.avatar-menu-name{color:var(--text-muted);font-size:12px;font-weight:600;overflow:hidden;padding:8px 10px 6px;text-overflow:ellipsis;white-space:nowrap}.avatar-menu-divider{background:var(--border);height:1px;margin:4px 0}.avatar-menu-item{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text);cursor:pointer;display:flex;font-family:inherit;font-size:13px;gap:8px;justify-content:space-between;padding:8px 10px;text-align:left;transition:background .12s;width:100%}.avatar-menu-item:hover{background:var(--gray-100)}.avatar-menu-theme-icon{font-size:14px;line-height:1}@media (max-width:640px){.avatar-menu-trigger{height:44px;width:44px}.avatar-menu-item{min-height:44px}}.topbar{background:var(--bg-surface);border-bottom:1px solid var(--border);gap:12px;height:56px;justify-content:space-between;padding:0 20px;position:relative;z-index:50}.topbar,.topbar-left,.topbar-right{align-items:center;display:flex;flex-shrink:0}.topbar-left,.topbar-right{gap:10px;min-width:0}.topbar-logo-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-family:inherit;gap:8px;padding:4px 2px;transition:background .12s}.topbar-logo-btn:hover{background:var(--gray-100)}.topbar-logo-static{cursor:default}.topbar-logo-static:hover{background:#0000}.topbar-logo{flex-shrink:0;height:22px;width:22px}.topbar-brand{color:var(--text);font-size:16px;font-weight:700;letter-spacing:-.2px;white-space:nowrap}.topbar-center{display:flex;flex:1 1;justify-content:center;min-width:0;overflow:hidden}.topbar-breadcrumb{color:var(--text-muted);font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-help-btn{align-items:center;background:#0000;border:1px solid var(--border);border-radius:7px;color:var(--text-subtle);cursor:pointer;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:30px;justify-content:center;transition:border-color .15s,color .15s,background .15s;width:30px}.topbar-help-btn:hover{background:var(--gray-100);border-color:var(--border-strong);color:var(--text)}.topbar-sidebar-toggle{align-items:center;background:#0000;border:1px solid var(--border);border-radius:7px;color:var(--text);cursor:pointer;display:none;flex-shrink:0;height:32px;justify-content:center;width:32px}@media (max-width:720px){.topbar{gap:8px;padding:0 12px}.topbar-sidebar-toggle{display:flex}.topbar-brand{display:none}.topbar-breadcrumb{font-size:12px}.topbar-help-btn,.topbar-sidebar-toggle{height:44px;width:44px}}:root{--surface-hi:#ebeef2;--accent-soft:var(--primary-wash);--accent-glow:#22b57340;--icon-accent:var(--color-secondary);--icon-bg:var(--secondary-wash);--locked:var(--text-subtle);--glow-accent:0 0 14px var(--accent-glow),0 0 1px var(--accent-soft);--glow-card:0 0 0 1px var(--accent-soft),0 4px 20px #00000012;--wm-color:rgba(0,0,0,.035);--check-fg:var(--bg-surface);--badge-lock-bg:#0000000d;--pill-hover-border:#00000024;--ring-track:#00000014;--logout-hover-border:#0000002e}[data-theme=dark]{--surface-hi:#12191d;--accent-glow:#38d68a73;--icon-accent:var(--color-secondary);--icon-bg:var(--secondary-wash);--glow-accent:0 0 24px var(--accent-glow),0 0 1px var(--accent-soft);--glow-card:0 0 0 1px var(--accent-soft),0 8px 40px #00000080;--wm-color:hsla(0,0%,100%,.025);--check-fg:var(--bg-app);--badge-lock-bg:#ffffff0d;--pill-hover-border:#ffffff1f;--ring-track:#ffffff14;--logout-hover-border:#fff3}.landing-root{background:var(--bg-app);color:var(--text);display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;overflow-x:hidden;position:relative}.landing-watermarks{inset:0;overflow:hidden;pointer-events:none;position:fixed;-webkit-user-select:none;user-select:none;z-index:0}.wm-x{color:rgba(0,0,0,.035);color:var(--wm-color);font-family:Inter,-apple-system,sans-serif;font-size:420px;font-weight:900;line-height:1;position:absolute}.wm-1{left:-80px;top:-100px}.wm-2{font-size:320px;right:-120px;top:30%}.wm-3{bottom:-140px;font-size:500px;left:30%}.landing-main{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:36px;margin:0 auto;max-width:1020px;padding:44px 24px 40px;position:relative;width:100%;z-index:1}.landing-empty,.landing-loading{color:var(--text-muted);font-size:13px;padding:6px 0}.landing-roadmap-section{width:100%}.roadmap-section-label{color:var(--text-subtle);font-size:11px;font-weight:600;letter-spacing:.08em;margin-bottom:16px;text-transform:uppercase}.roadmap-scroll-wrap{align-items:center;display:flex;gap:6px;width:100%}.roadmap-scroll{-ms-overflow-style:none;align-items:flex-start;display:flex;flex:1 1;min-width:0;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}.roadmap-scroll::-webkit-scrollbar{display:none}.roadmap-track{align-items:flex-start;display:flex;flex-shrink:0}.roadmap-arrow{align-items:center;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:50%;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;font-family:inherit;font-size:20px;height:32px;justify-content:center;line-height:1;margin-bottom:6px;transition:border-color .15s,color .15s,background .15s;width:32px}.roadmap-arrow:hover{background:#3ee8b50f;border-color:var(--accent);color:var(--accent)}.roadmap-arrow-hidden{pointer-events:none;visibility:hidden}.roadmap-node-group{align-items:center;display:flex;flex-direction:column;flex-shrink:0;gap:5px}.roadmap-pill{align-items:center;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--radius-pill);color:var(--text-subtle);cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:500;gap:6px;height:40px;padding:0 16px;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;white-space:nowrap}.pill-icon,.pill-right-check{align-items:center;display:flex;flex-shrink:0}.pill-right-check{margin-left:4px}.roadmap-pill-active{background:#3ee8b50f;border:1.5px solid var(--accent);box-shadow:0 0 14px #22b57340,0 0 1px var(--primary-wash);box-shadow:var(--glow-accent);color:var(--accent)}.roadmap-pill-completed{background:#3ee8b50d;border-color:var(--accent-soft);color:var(--accent)}.roadmap-pill-unlocked{color:var(--text-subtle)}.roadmap-pill:hover:not(.roadmap-pill-active){background:#ebeef2;background:var(--surface-hi);border-color:#00000024;border-color:var(--pill-hover-border);color:var(--text-muted)}.node-sublabel{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.node-sublabel-completed{color:var(--accent)}.node-sublabel-locked,.node-sublabel-unlocked,.roadmap-pill-locked{color:var(--text-subtle)}.roadmap-pill-locked{cursor:pointer;opacity:.6}.roadmap-pill-locked:hover{background:#ebeef2;background:var(--surface-hi);border-color:#00000024;border-color:var(--pill-hover-border);color:var(--text-muted);opacity:.8}.roadmap-connector{background:var(--border);flex-shrink:0;height:2px;margin-top:19px;width:44px}.roadmap-connector.connector-lit{background:var(--accent);box-shadow:0 0 8px #22b57340;box-shadow:0 0 8px var(--accent-glow)}.landing-page-header{display:block;margin-bottom:0;text-align:center;width:100%}.landing-page-header .page-header-title{font-size:36px;letter-spacing:-.5px;line-height:1.15}.landing-page-header .page-header-subtitle{font-size:16px;margin-top:8px}.cards-scene{align-items:center;display:flex;position:relative;width:100%}.cards-connector-line{background:var(--accent);height:2px;left:0;position:absolute;right:29px;top:50%;transform:translateY(-50%);z-index:0}[data-theme=dark] .cards-connector-line{box-shadow:0 0 10px #22b57340;box-shadow:0 0 10px var(--accent-glow)}.cards-row{grid-gap:14px;display:grid;flex:1 1;gap:14px;grid-template-columns:repeat(3,1fr)}.cards-end-node,.cards-row{position:relative;z-index:1}.cards-end-node{align-self:stretch;flex-shrink:0;width:58px}.end-node-circle{align-items:center;background:var(--accent);border-radius:50%;box-shadow:0 0 10px #22b57340;box-shadow:0 0 10px var(--accent-glow);color:var(--bg-surface);color:var(--check-fg);display:flex;height:18px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:18px}.end-node-pending{background:#ebeef2;background:var(--surface-hi);border:2px solid var(--border);box-shadow:none}.end-node-label{color:var(--accent);font-size:10px;font-weight:600;left:50%;position:absolute;text-align:center;top:calc(50% + 13px);transform:translateX(-50%);white-space:nowrap}.activity-card,.card-outer{display:flex;flex-direction:column;gap:8px}.activity-card{align-items:flex-start;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);box-sizing:border-box;color:var(--text);cursor:default;font-family:inherit;min-height:220px;padding:20px 18px 18px;position:relative;text-align:left;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;width:100%}button.activity-card:not([disabled]):hover{background:#ebeef2;background:var(--surface-hi);transform:translateY(-2px)}.activity-card-in-progress,button.activity-card:not([disabled]):hover{border-color:var(--accent-soft);box-shadow:0 0 0 1px var(--primary-wash),0 4px 20px #00000012;box-shadow:var(--glow-card)}.activity-card-coming-soon .card-desc,.activity-card-coming-soon .card-icon,.activity-card-coming-soon .card-title,.activity-card-locked .card-desc,.activity-card-locked .card-icon,.activity-card-locked .card-title{opacity:.45}.card-check-badge{background:var(--accent);border-radius:50%;box-shadow:0 0 8px #22b57340;box-shadow:0 0 8px var(--accent-glow);color:var(--bg-surface);color:var(--check-fg);height:18px;position:absolute;right:-9px;top:-9px;width:18px;z-index:2}.card-check-badge,.card-icon{align-items:center;display:flex;justify-content:center}.card-icon{background:var(--secondary-wash);background:var(--icon-bg);border-radius:12px;color:var(--color-secondary);color:var(--icon-accent);flex-shrink:0;height:42px;margin-bottom:2px;width:42px}.card-title{color:var(--text);font-size:16px;font-weight:600;line-height:1.3}.card-desc{color:var(--text-muted);flex:1 1;font-size:13px;line-height:1.5}.card-footer{margin-top:auto;width:100%}.card-badge{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-size:11px;font-weight:600;gap:5px;padding:4px 10px}.card-badge-soon{background:#ebeef2;background:var(--surface-hi);color:var(--text-subtle);letter-spacing:.06em;text-transform:uppercase}.card-badge-lock{background:#0000000d;background:var(--badge-lock-bg);color:var(--text-subtle);color:var(--locked)}.card-badge-progress{background:var(--primary-wash);background:var(--accent-soft);color:var(--accent)}.card-lock-block{display:flex;flex-direction:column;gap:6px}.card-lock-reason{color:var(--text-subtle);font-size:12px;line-height:1.4;margin:0}.card-ring-block{align-items:flex-start;gap:4px}.card-hw-block,.card-ring-block{display:flex;flex-direction:column}.card-hw-block{gap:6px}.card-hw-project{color:var(--text-muted);font-size:12px;margin:0}.card-hw-project strong{color:var(--text);font-weight:600}.card-start-link{color:var(--accent);font-size:13px;font-weight:600}.card-completed-label{color:var(--accent);font-size:12px;font-weight:600}.card-footnote{color:var(--text-subtle);font-size:11px;margin:0;text-align:center}.progress-ring{display:block}.progress-ring-track{fill:none;stroke:#00000014;stroke:var(--ring-track);stroke-width:6}.progress-ring-fill{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .6s ease}.progress-ring-text{fill:var(--accent);font-family:inherit;font-size:13px;font-weight:600}.landing-practice{display:flex;justify-content:center;width:100%}.landing-practice-link{background:none;border:none;color:var(--text-subtle);cursor:pointer;font-family:inherit;font-size:13px;padding:4px 6px;transition:color .15s}.landing-practice-link:hover{color:var(--text-muted)}@media (max-width:700px){.cards-row{grid-template-columns:1fr}.card-check-badge,.cards-connector-line,.cards-end-node{display:none}.landing-page-header .page-header-title{font-size:26px}}.login-logo{align-items:center;display:flex;gap:10px;margin-bottom:6px}.login-logo img{height:32px;width:32px}.login-logo h1{color:var(--text);font-size:20px;font-weight:700;margin:0}.login-subtitle{color:var(--text-muted);font-size:13px;margin:0 0 24px}.login-form{gap:16px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:6px}.login-field label{color:var(--text-muted);font-size:12px;font-weight:500;letter-spacing:.03em}.login-field input{background:var(--bg-app);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:14px;outline:none;padding:9px 12px;transition:border-color .15s}.login-field input:focus{border-color:var(--color-primary)}.login-field input::placeholder{color:var(--text-subtle)}.login-error{background:#f8717114;border:1px solid #f8717133;border-radius:6px;color:var(--danger);font-size:12px;margin:0;padding:8px 10px}.login-btn{align-items:center;background:var(--color-primary);border:none;border-radius:7px;color:var(--text-on-accent);cursor:pointer;display:flex;font-size:14px;font-weight:600;justify-content:center;margin-top:4px;min-height:40px;padding:10px;transition:background .15s}.login-btn:hover:not(:disabled){background:var(--color-primary-hover)}.login-btn:disabled{cursor:not-allowed;opacity:.6}.login-spinner{animation:spin .7s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.login-link{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:12px;padding:4px 0;text-align:center;transition:color .15s}.login-link:hover{color:var(--color-primary-hover)}.login-form-row-2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;min-width:0}.login-form-row-2 .login-field{min-width:0}.login-textarea{background:var(--bg-app);border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:inherit;font-size:14px;outline:none;padding:9px 12px;resize:vertical;transition:border-color .15s}.login-textarea:focus{border-color:var(--color-primary)}.login-optional,.login-textarea::placeholder{color:var(--text-subtle)}.login-optional{font-weight:400}.req{color:var(--danger)}.request-sent{align-items:center;display:flex;flex-direction:column;gap:10px;padding:16px 0;text-align:center}.request-sent-icon{align-items:center;background:#4ade8026;border-radius:50%;color:var(--success);display:flex;font-size:20px;font-weight:700;height:40px;justify-content:center;width:40px}.request-sent h3{color:var(--text);font-size:15px;font-weight:600;margin:0}.request-sent p{color:var(--text-muted);font-size:13px;margin:0}:root{--xenos-green:var(--color-primary);--xenos-green-dark:var(--color-primary-hover);--landing-bg:var(--bg-app);--grid-line:var(--border);--ink:var(--text);--ink-soft:var(--text-muted)}.pl-landing{background-color:var(--bg-app);background-color:var(--landing-bg);background-image:linear-gradient(var(--border) 1px,#0000 1px),linear-gradient(90deg,var(--border) 1px,#0000 1px);background-image:linear-gradient(var(--grid-line) 1px,#0000 1px),linear-gradient(90deg,var(--grid-line) 1px,#0000 1px);background-size:44px 44px;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;overflow-x:hidden}.pl-nav{justify-content:space-between;padding:20px clamp(20px,5vw,64px)}.pl-logo,.pl-nav{align-items:center;display:flex}.pl-logo{color:var(--text);color:var(--ink);font-size:1.4rem;font-weight:700;gap:10px}.pl-logo img{height:34px;width:auto}.pl-nav-actions{align-items:center;display:flex;gap:12px}.pl-btn-login,.pl-btn-request{border-radius:999px;cursor:pointer;font-size:.95rem;font-weight:600;min-height:44px;padding:10px 22px;transition:all .15s ease}.pl-btn-login{background:var(--color-primary);background:var(--xenos-green);border:none;color:#fff}.pl-btn-login:hover{background:var(--color-primary-hover);background:var(--xenos-green-dark)}.pl-btn-request{background:#0000;border:1.5px solid var(--xenos-green);color:var(--color-primary);color:var(--xenos-green)}.pl-btn-request:hover{background:#21a36614}.pl-hero{grid-gap:clamp(24px,4vw,56px);align-items:center;display:grid;flex:1 1;gap:clamp(24px,4vw,56px);grid-template-columns:.9fr 1.1fr;margin:0 auto;max-width:1240px;padding:clamp(24px,6vh,72px) clamp(20px,5vw,64px);position:relative;width:100%}.pl-hero-text{position:relative;z-index:1}.pl-title{color:var(--text);color:var(--ink);font-size:clamp(2.1rem,5vw,3.4rem);font-weight:800;letter-spacing:-.01em;line-height:1.08;margin:0 0 18px}.pl-subtitle{color:var(--text-muted);color:var(--ink-soft);font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.5;margin:0 0 28px;max-width:34ch}.pl-cta{background:var(--color-primary);background:var(--xenos-green);border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:1.05rem;font-weight:600;min-height:48px;padding:15px 34px;transition:transform .12s ease,background .15s ease}.pl-cta:hover{background:var(--color-primary-hover);background:var(--xenos-green-dark);transform:translateY(-1px)}.pl-hero-art{position:relative;z-index:1}.pl-hero-art img{display:block;height:auto;width:100%}.pl-watermark{color:#e6eaef;left:-6%;opacity:.9;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:min(46vw,620px);z-index:0}.pl-watermark img,.pl-watermark svg{height:auto;width:100%}@media (max-width:900px){.pl-hero{gap:32px;grid-template-columns:1fr;padding-top:40px;text-align:center}.pl-subtitle{margin-left:auto;margin-right:auto}.pl-hero-art{margin:0 auto;max-width:560px}.pl-watermark{left:50%;opacity:.5;transform:translate(-50%,-50%);width:80vw}}@media (max-width:600px){.pl-nav{flex-wrap:wrap;gap:10px;padding:16px 18px}.pl-logo{font-size:1.2rem}.pl-btn-login,.pl-btn-request{font-size:.9rem;padding:9px 16px}.pl-title{font-size:clamp(1.8rem,8vw,2.4rem)}.pl-cta{width:100%}}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);flex-shrink:0;overflow-y:auto;padding:16px 10px;width:220px}.sidebar-group+.sidebar-group{margin-top:18px}.sidebar-group-label{color:var(--text-subtle);font-size:11px;font-weight:700;letter-spacing:.06em;padding:0 10px 6px;text-transform:uppercase}.sidebar-item{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:block;font-family:inherit;font-size:13.5px;font-weight:500;padding:8px 10px;text-align:left;transition:background .12s,color .12s;width:100%}.sidebar-item:hover{background:var(--gray-100);color:var(--text)}.sidebar-item-active{font-weight:600}.sidebar-item-active,.sidebar-item-active:hover{background:var(--primary-wash);color:var(--color-primary)}.sidebar-backdrop{display:none}@media (max-width:720px){.sidebar{bottom:0;box-shadow:var(--shadow-lg);left:0;position:fixed;top:56px;transform:translateX(-100%);transition:transform .2s ease;z-index:400}.sidebar-open{transform:translateX(0)}.sidebar-backdrop{background:#141c2873;display:block;inset:56px 0 0 0;position:fixed;z-index:399}.sidebar-item{align-items:center;display:flex;min-height:44px;padding:12px 10px}}.profile-readonly{align-items:center;background:var(--bg-app);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;gap:10px;margin-bottom:18px;padding:9px 12px}.profile-readonly-label{color:var(--text-subtle);font-size:var(--text-xs);font-weight:var(--fw-medium)}.profile-readonly-value{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:13px}.profile-form{display:flex;flex-direction:column;gap:14px}.profile-row-2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;min-width:0}.profile-row-2 .profile-field{min-width:0}.profile-field{display:flex;flex-direction:column;gap:5px}.profile-field label{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--fw-medium)}.profile-optional{color:var(--text-subtle);font-weight:var(--fw-regular)}.profile-divider{background:var(--border);height:1px;margin:2px 0}.profile-error{background:#ef444414;border:1px solid #ef444440;border-radius:var(--radius-sm);color:var(--danger)}.profile-error,.profile-success{font-size:var(--text-xs);margin:0;padding:8px 10px}.profile-success{background:#16a34a14;border:1px solid #16a34a40;border-radius:var(--radius-sm);color:var(--success)}:root{--mode-homework:#2a78d6;--mode-lecture:#eb6834;--mode-preassessment:#1baf7a;--mode-study-methods:#eda100}[data-theme=dark]{--mode-homework:#3987e5;--mode-lecture:#d95926;--mode-preassessment:#199e70;--mode-study-methods:#c98500}.instructor-panel{background:var(--bg-app);color:var(--text);display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100vh}.instructor-layout{display:flex;flex:1 1;min-height:0}.instructor-body{flex:1 1;overflow:auto;padding:24px}.tab-body{display:flex;flex-direction:column;gap:16px}.panel-empty{color:var(--text-subtle);font-size:13px;padding:24px 0}.btn-export{align-items:center;background:#0000;border:1px solid var(--border);border-radius:5px;color:var(--text-muted);cursor:pointer;display:flex;padding:5px 8px;transition:border-color .15s,color .15s}.btn-export:hover{border-color:var(--color-primary);color:var(--color-primary)}.action-btns{align-items:center;display:flex;gap:6px}.btn-edit{background:#0000;border:1px solid var(--border);border-radius:5px;color:var(--text-muted);cursor:pointer;font-size:12px;padding:4px 10px;transition:border-color .15s,color .15s}.btn-edit:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-delete{background:#0000;border:1px solid var(--border);border-radius:5px;color:var(--text-muted);cursor:pointer;font-size:12px;padding:4px 10px;transition:border-color .15s,color .15s}.btn-delete:hover{border-color:#ef4444;color:#f87171}.btn-save{background:var(--color-primary);border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:4px 10px;transition:filter .15s}.btn-save:hover{filter:brightness(.88)}.btn-cancel{background:#0000;border:1px solid var(--border);border-radius:5px;color:var(--text-subtle);cursor:pointer;font-size:12px;padding:4px 10px;transition:border-color .15s,color .15s}.btn-cancel:hover{border-color:var(--logout-hover-border);color:var(--text-muted)}.sessions-table-wrap{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.sessions-table{border-collapse:collapse;font-size:12px;width:100%}.sessions-table th{background:var(--surface-hi);color:var(--text-muted);font-weight:500;text-align:left;white-space:nowrap}.sessions-table td,.sessions-table th{border-bottom:1px solid var(--border);padding:10px 12px}.sessions-table td{background:var(--bg-surface);color:var(--text);vertical-align:middle}.sessions-table tbody tr:last-child td{border-bottom:none}.sessions-table tbody tr:hover td{background:var(--surface-hi)}.row-complete td{opacity:.85}.row-editing td{background:var(--surface-hi)}.td-topics{max-width:220px}.topic-chip{background:var(--primary-wash);border-radius:10px;color:var(--color-primary);display:inline-block;font-size:11px;font-weight:500;margin:2px 3px 2px 0;padding:2px 8px;white-space:nowrap}.row-being-edited td{background:var(--surface-hi)}.row-edit-panel td{border-top:none!important;padding:0!important}.unit-edit-form{background:var(--bg-surface);border-top:2px solid var(--color-primary);display:flex;flex-direction:column;gap:14px;padding:16px 20px 20px}.sessions-table td input,.sessions-table td textarea{background:var(--bg-app);border:1px solid var(--border);border-radius:5px;color:var(--text);font-family:inherit;font-size:12px;min-width:80px;outline:none;padding:5px 8px;transition:border-color .15s;width:100%}.sessions-table td input:focus,.sessions-table td textarea:focus{border-color:var(--color-primary)}.edit-name-row{display:flex;gap:4px}.edit-name-row input{min-width:70px}.role-select{background:var(--bg-surface);border:1px solid var(--border);border-radius:5px;color:var(--text);cursor:pointer;font-size:12px;outline:none;padding:5px 8px;transition:border-color .15s}.role-select:focus{border-color:var(--color-primary)}.status-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:500;padding:2px 8px}.status-badge.active{background:var(--primary-wash);color:var(--color-primary)}.status-badge.complete{background:#22c55e1f;color:#22c55e}.status-badge.denied{background:#f871711f;color:#f87171}.role-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:500;padding:2px 8px}.role-badge.instructor{background:#fbbf241f;color:#d97706}.role-badge.student{background:var(--primary-wash);color:var(--color-primary)}[data-theme=dark] .status-badge.complete{color:#4ade80}[data-theme=dark] .role-badge.instructor{color:#fbbf24}.group-control{align-items:center;color:var(--text-subtle);display:flex;font-size:12px;gap:8px}.group-control select{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-size:12px;outline:none;padding:5px 8px;transition:border-color .15s}.group-control select:focus{border-color:var(--color-primary)}.session-group{display:flex;flex-direction:column;gap:8px}.session-group-label{align-items:center;border-bottom:1px solid var(--border);color:var(--text);display:flex;font-size:13px;font-weight:600;gap:8px;padding:8px 0 4px}.session-group-count{color:var(--text-subtle);font-size:11px;font-weight:400}.create-form{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:14px;max-width:520px;padding:20px}.create-form h3{color:var(--text);font-size:14px;font-weight:600;margin:0}.form-row-2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.cu-field{display:flex;flex-direction:column;gap:6px}.cu-field label{color:var(--text-muted);font-size:12px;font-weight:500}.cu-field input,.cu-field textarea{background:var(--bg-app);border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:inherit;font-size:13px;outline:none;padding:9px 12px;transition:border-color .15s}.cu-field textarea{resize:vertical}.cu-field input:focus,.cu-field textarea:focus{border-color:var(--color-primary)}.cu-field input::placeholder,.cu-field textarea::placeholder,.optional-label{color:var(--text-subtle)}.optional-label{font-size:11px;font-weight:400}.req{color:#f87171}.cu-hint{color:var(--text-subtle);font-size:11px;line-height:1.4;margin:0}.topic-row{align-items:center;display:flex;gap:6px}.topic-row input{flex:1 1}.btn-topic-remove{align-items:center;background:#0000;border:1px solid var(--border);border-radius:5px;color:var(--text-subtle);cursor:pointer;display:flex;flex-shrink:0;font-size:15px;height:26px;justify-content:center;line-height:1;transition:border-color .12s,color .12s;width:26px}.btn-topic-remove:hover{border-color:#f87171;color:#f87171}.btn-topic-add{align-self:flex-start;background:#0000;border:none;color:var(--color-primary);cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;margin-top:2px;padding:0;transition:opacity .12s}.btn-topic-add:hover{opacity:.75}.cu-error{background:#f8717114;border:1px solid #f8717133;border-radius:6px;color:#f87171}.cu-error,.cu-success{font-size:12px;margin:0;padding:8px 10px}.cu-success{background:#22c55e14;border:1px solid #22c55e33;border-radius:6px;color:#22c55e}[data-theme=dark] .cu-success{color:#4ade80}.btn-delete-confirm{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px;transition:background .15s}.btn-delete-confirm:hover{background:#dc2626}.request-section-label{color:var(--text-muted);font-size:13px;font-weight:600;margin:0}.request-list{display:flex;flex-direction:column;gap:10px}.request-card{align-items:flex-start;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;display:flex;gap:16px;justify-content:space-between;padding:14px 16px}.request-info{display:flex;flex-direction:column;gap:4px}.request-name{color:var(--text);font-size:14px;font-weight:600}.request-meta{color:var(--text-muted);font-size:12px}.request-message{color:var(--text-subtle);font-size:12px;font-style:italic}.request-date{color:var(--text-subtle);font-size:11px}.approve-form{display:flex;flex-direction:column;gap:8px;min-width:200px}.approve-form input{background:var(--bg-app);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:12px;outline:none;padding:7px 10px;transition:border-color .15s}.approve-form input:focus{border-color:var(--color-primary)}.approve-form input::placeholder{color:var(--text-subtle)}.report-unit-select{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-size:13px;outline:none;padding:6px 10px;transition:border-color .15s}.report-unit-select:focus{border-color:var(--color-primary)}.stat-cards-row{display:flex;flex-wrap:wrap;gap:12px}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;display:flex;flex:1 1;flex-direction:column;gap:6px;min-width:180px;padding:16px 18px}.stat-card-dims{flex:1.5 1;min-width:240px}.stat-card-label{color:var(--text-subtle);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.stat-card-value{color:var(--text);font-size:28px;font-weight:700;line-height:1}.stat-card-sub{color:var(--text-subtle);font-size:11px}.stat-card-pair{align-items:center;display:flex;gap:10px;margin-top:2px}.stat-pair-item{display:flex;flex-direction:column;gap:2px}.stat-pair-label{color:var(--text-subtle);font-size:10px}.stat-pair-val{font-size:22px;font-weight:700;line-height:1}.stat-pair-sep{color:var(--text-subtle);font-size:11px;margin-top:10px}.stat-card-warning{background:#d9770614;border:1px solid #d9770633;border-radius:5px;color:#b45309;font-size:11px;line-height:1.4;margin-top:4px;padding:5px 8px}[data-theme=dark] .stat-card-warning{background:#fbbf241a;border-color:#fbbf2433;color:#fbbf24}.dim-bar-row{align-items:center;display:flex;gap:8px;margin-top:4px}.dim-bar-label{color:var(--text-muted);flex-shrink:0;font-size:11px;width:90px}.dim-bar-track{background:var(--surface-hi);border-radius:3px;flex:1 1;height:6px;overflow:hidden}[data-theme=dark] .dim-bar-track{background:#ffffff12}.dim-bar-fill{border-radius:3px;height:100%;transition:width .3s ease}.dim-bar-val{color:var(--text-muted);flex-shrink:0;font-size:11px;text-align:right;width:28px}.report-section{display:flex;flex-direction:column;gap:10px}.report-section-title{color:var(--text-muted);font-size:13px;font-weight:600;margin:0}.report-section-count{color:var(--text-subtle);font-weight:400}.concept-heatmap{display:flex;flex-wrap:wrap;gap:8px}.concept-chip{border:1px solid;border-radius:5px;display:inline-block;font-size:12px;padding:4px 10px}.concept-chip strong{margin-left:4px}.gaps-list{display:flex;flex-direction:column;gap:4px;margin:0;padding:0 0 0 16px}.gaps-item{color:var(--text-muted);font-size:13px;line-height:1.5}.transcript-link{border-bottom:1px solid #0000;color:var(--color-primary);font-size:12px;text-decoration:none;transition:border-color .15s}.transcript-link:hover{border-bottom-color:var(--color-primary)}.report-all-clear{color:#16a34a;font-size:13px;margin:0}[data-theme=dark] .report-all-clear{color:#4ade80}.export-controls{align-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px}.export-controls-label{color:var(--text-subtle);font-size:12px;white-space:nowrap}.export-points-input{background:var(--bg-app);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;outline:none;padding:6px 8px;transition:border-color .15s;width:60px}.export-points-input:focus{border-color:var(--color-primary)}.grades-matrix td,.grades-matrix th{text-align:center}.grades-student-col{min-width:120px;text-align:left!important}.grades-unit-header{background:var(--surface-hi)!important;border-left:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:600;padding:6px 8px!important}.grades-sub-header{border-left:1px solid var(--border);color:var(--text-subtle);font-size:10px;font-weight:500;padding:4px 8px!important}.grades-sub-header,.grades-sub-row{background:var(--bg-app)!important}.grades-student-name{color:var(--text);font-weight:500;text-align:left!important}.grades-cell{border-left:1px solid var(--border);font-size:12px;padding:8px 10px!important}.grade-check{color:#16a34a;font-weight:700}.grade-cross{color:var(--text-subtle)}[data-theme=dark] .grade-check{color:#4ade80}.sm-analytics-row{display:flex;gap:16px;margin-bottom:20px}.sm-dist-section,.sm-style-section{flex:1 1;min-width:0}.sm-dist-top td,.sm-dist-top th{color:var(--text);font-weight:600}.sm-dist-bottom td{color:var(--text-subtle);font-style:italic}.sm-style-top td{color:var(--text);font-weight:600}@media (max-width:700px){.sm-analytics-row{flex-direction:column}}.usage-date-filter{align-items:center;display:flex;gap:8px;margin-left:auto;margin-right:12px}.usage-date-sep{color:var(--text-subtle);font-size:12px}.usage-alltime-btn.active{background:var(--primary-wash);border-color:var(--color-primary);color:var(--color-primary)}.usage-chart-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:16px 12px 8px}.usage-mode-swatch{border-radius:2px;display:inline-block;height:8px;margin-right:8px;width:8px}.usage-footnote{color:var(--text-subtle);font-size:11px;margin:0}.usage-tooltip{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0000001f;font-size:12px;padding:8px 10px}.usage-tooltip-label{color:var(--text-subtle);font-size:11px;margin-bottom:4px}.usage-tooltip-row{align-items:center;display:flex;gap:6px;padding:2px 0}.usage-tooltip-key{border-radius:2px;flex-shrink:0;height:3px;width:8px}.usage-tooltip-value{color:var(--text);font-weight:700}.usage-tooltip-name{color:var(--text-muted)}@media (max-width:700px){.usage-date-filter{flex-wrap:wrap;margin-left:0;margin-right:0}}.fpr-header{align-items:center;display:flex;flex-direction:column;text-align:center}.fpr-icon{font-size:36px;margin-bottom:12px}.fpr-title{color:var(--text);font-size:var(--text-lg);font-weight:var(--fw-bold);margin:0 0 8px}.fpr-subtitle{color:var(--text-muted);font-size:var(--text-sm);line-height:1.5;margin:0 0 24px}.fpr-form{gap:14px;text-align:left;width:100%}.fpr-field,.fpr-form{display:flex;flex-direction:column}.fpr-field{gap:5px}.fpr-field label{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--fw-medium)}.fpr-hint{color:var(--text-subtle);font-weight:var(--fw-regular)}.fpr-error{background:#ef444414;border:1px solid #ef444440;border-radius:var(--radius-sm);color:var(--danger);font-size:var(--text-xs);margin:0;padding:8px 10px}.fpr-btn{margin-top:4px;width:100%}.workspace-toolbar{align-items:center;background:var(--bg-app);border-bottom:1px solid var(--border);display:flex;flex-shrink:0;padding:6px 14px}.workspace-toolbar-segmented{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;gap:2px;padding:2px}.ws-segment{background:#0000;border:none;border-radius:5px;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;min-height:26px;padding:4px 12px;position:relative;transition:background .12s,color .12s}.ws-segment-pulse{animation:ws-pulse-ring 1.6s ease-in-out infinite;background:var(--color-primary);border:2px solid var(--bg-surface);border-radius:50%;height:8px;position:absolute;right:0;top:-2px;width:8px}@keyframes ws-pulse-ring{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.4)}}.ws-segment:hover{color:var(--text)}.ws-segment.active{background:var(--primary-wash);color:var(--color-primary);font-weight:600}@media (max-width:480px){.workspace-toolbar{padding:6px 10px}.ws-segment{font-size:11px;padding:4px 9px}}*{box-sizing:border-box}.app-loading{inset:0;position:fixed}.App{background:var(--bg-app);color:var(--text);display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.session-modal-empty,.session-modal-loading{color:var(--text-subtle);font-size:13px;padding:20px;text-align:center}.session-modal-item{align-items:flex-start;background:#0000;border:none;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:3px;padding:10px 12px;text-align:left;transition:background .12s;width:100%}.session-modal-item:hover{background:var(--gray-100)}.smi-meta{align-items:center;display:flex;justify-content:space-between;width:100%}.smi-unit{color:var(--text);font-size:13px;font-weight:600}.smi-badge{border-radius:var(--radius-sm);font-size:11px;font-weight:500;padding:1px 7px}.smi-badge-active{background:var(--primary-wash);color:var(--color-primary)}.smi-badge-complete{background:var(--gray-100);color:var(--text-muted)}.smi-topics{color:var(--text-muted);font-size:12px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.smi-date{color:var(--text-subtle);font-size:11px}.session-modal-new{background:#0000;border:none;border-radius:8px;color:var(--color-primary);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;padding:9px 12px;text-align:left;transition:background .12s;width:100%}.session-modal-new:hover{background:var(--primary-wash)}.workspace{flex:1 1;min-height:0}.panel,.workspace{display:flex;overflow:hidden;position:relative}.panel{flex-direction:column}.panel-left{border-right:1px solid var(--border);flex-shrink:0}.panel-left.panel-closed{border-right:none}.panel-center{flex:1 1;min-width:0}.panel-right{background:var(--bg-surface);border-left:1px solid var(--border);flex-shrink:0}.panel-right.panel-closed{border-left:none}.panel-resize-handle{bottom:0;cursor:col-resize;position:absolute;top:0;transition:background .15s ease;width:5px;z-index:10}.panel-resize-handle:active,.panel-resize-handle:hover{background:#22b57359}.panel-resize-handle-right{right:0}.panel-resize-handle-left{left:0}.practice-session-row{align-items:center;border-radius:8px;display:flex;gap:4px;padding:2px 4px}.practice-session-btn{align-items:flex-start;background:#0000;border:none;border-radius:7px;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-family:inherit;gap:2px;min-width:0;padding:9px 10px;text-align:left;transition:background .12s}.practice-session-btn:hover{background:var(--gray-100)}.practice-session-name{color:var(--text);font-size:13px;font-weight:500;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.practice-session-date{color:var(--text-subtle);font-size:11px}.practice-session-actions{display:flex;flex-shrink:0;gap:2px}.practice-action-btn{align-items:center;background:#0000;border:none;border-radius:5px;color:var(--text-subtle);cursor:pointer;display:flex;height:28px;justify-content:center;transition:background .12s,color .12s;width:28px}.practice-action-btn:hover{background:var(--gray-100);color:var(--text)}.practice-delete-btn:hover{background:#ef444414;color:var(--danger)}.practice-rename-row{align-items:center;display:flex;flex:1 1;gap:6px;padding:4px 4px 4px 8px}.practice-rename-input{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:6px;color:var(--text);flex:1 1;font-family:inherit;font-size:13px;outline:none;padding:5px 8px}.practice-rename-input:focus{border-color:var(--color-primary)}.practice-rename-save{background:var(--color-primary);color:var(--text-on-accent);padding:4px 10px;white-space:nowrap}.practice-rename-cancel,.practice-rename-save{border:none;border-radius:5px;cursor:pointer;font-family:inherit;font-size:12px}.practice-rename-cancel{background:#0000;color:var(--text-muted);padding:4px 8px}.practice-delete-confirm{align-items:center;background:#ef444414;border-radius:7px;display:flex;flex:1 1;gap:8px;padding:6px 8px}.practice-confirm-text{color:var(--danger);flex:1 1;font-size:12px}.practice-confirm-yes{background:var(--danger);color:var(--text-on-accent);padding:3px 10px}.practice-confirm-no,.practice-confirm-yes{border:none;border-radius:5px;cursor:pointer;font-family:inherit;font-size:12px}.practice-confirm-no{background:#0000;color:var(--text-muted);padding:3px 8px}.practice-error{background:#ef444414;border-radius:6px;color:var(--danger);font-size:12px;margin:4px 4px 0;padding:6px 10px}
/*# sourceMappingURL=main.b6bee58b.css.map*/