:root{color-scheme:dark;--bg:#060912;--bg-surface:#0c1120;--bg-card:hsla(0,0%,100%,.038);--text:#f0f4ff;--text-secondary:#94a3b8;--muted:#5e7298;--panel:hsla(0,0%,100%,.038);--panel-solid:#111827;--line:hsla(0,0%,100%,.07);--brand:#6366f1;--brand-2:#818cf8;--brand-glow:rgba(99,102,241,.32);--ok:#10b981;--danger:#ef4444;--warning:#f59e0b;--exam:#f87171;--exam-2:#fb7185;--exam-soft:#fca5a5;--exam-muted:#fecaca;--exam-rgb:248,113,113;--shadow:0 24px 80px rgba(0,0,0,.7);--shadow-sm:0 4px 20px rgba(0,0,0,.45);--shadow-card:0 2px 12px rgba(0,0,0,.35);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--sidebar-w:234px;--transition-fast:0.12s ease;--transition-base:0.2s ease;--card:#111827;--chrome-bg:var(--panel-solid);--chrome-shadow:0 1px 0 var(--line),0 6px 16px rgba(0,0,0,.28);--portal-shell-header-h:56px;--staff-shell-header-h:48px;--staff-page-chrome-gap:12px;--staff-page-body-gap:20px;--staff-page-chrome-h:140px;--staff-page-toolbar-h:52px;--modal-z:1000;--lightbox-z:100000;--kid-radius:18px;--kid-shadow:0 6px 24px color-mix(in srgb,var(--status-active) 35%,transparent);--kid-gradient-accent:linear-gradient(180deg,#6366f1,var(--status-complete));--status-complete:#10b981;--status-active:#3b82f6;--status-submitted:#f59e0b;--status-available:#818cf8;--status-locked:#64748b;--kid-connector-stroke:rgba(148,163,184,.45)}[data-theme=light]{color-scheme:light;--bg:#f3f6fb;--bg-surface:#fff;--bg-card:hsla(0,0%,100%,.95);--text:#0f172a;--text-secondary:#334155;--muted:#64748b;--panel:#fff;--panel-solid:#fff;--line:rgba(15,23,42,.1);--brand:#4f46e5;--brand-2:#6366f1;--brand-glow:rgba(79,70,229,.2);--card:#fff;--chrome-shadow:0 1px 0 var(--line),0 4px 12px rgba(15,23,42,.08);--kid-shadow:0 6px 20px color-mix(in srgb,var(--status-active) 22%,transparent);--kid-connector-stroke:rgba(100,116,139,.35)}.shell-chrome{background:var(--chrome-bg);isolation:isolate}.shell-chrome--top{top:0;box-shadow:var(--chrome-shadow)}.shell-chrome--bottom,.shell-chrome--top{position:-webkit-sticky;position:sticky;z-index:40}.shell-chrome--bottom{bottom:0;box-shadow:0 -1px 0 var(--line),0 -6px 16px rgba(0,0,0,.22)}.app-shell .content .shell-chrome--top:not(.staff-page-chrome):not(.staff-page-chrome *){top:var(--staff-shell-header-h);z-index:35}.staff-page-layout{display:flex;flex-direction:column}.staff-page-layout--fill{flex:1 1;min-height:0;height:100%}.staff-page-layout--fill .staff-page-chrome,.staff-page-layout--page .staff-page-chrome{position:relative;top:auto}.staff-page-toolbar{display:flex;flex-direction:column;gap:var(--space-2)}.staff-page-toolbar .section-head{margin-bottom:0}.staff-page-chrome .catalog-approvals-toolbar{margin-top:0}.staff-exams-page{max-width:720px;margin:0 auto;width:100%}.teacher-homework-board-page{max-width:1180px;margin:0 auto;width:100%}.staff-page-chrome{position:-webkit-sticky;position:sticky;top:var(--staff-shell-header-h);z-index:35;flex-shrink:0;display:flex;flex-direction:column;gap:var(--staff-page-chrome-gap);background:var(--chrome-bg);isolation:isolate;box-shadow:var(--chrome-shadow);border-bottom:1px solid var(--line);overflow:visible;margin-top:calc(-1 * var(--space-6));margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6));margin-bottom:0;padding:var(--space-6) var(--space-6) var(--space-4)}.staff-page-body{flex:1 1;min-height:0;display:flex;flex-direction:column;margin-top:var(--staff-page-body-gap)}.staff-page-body--scroll{flex:1 1;min-height:0;overflow:auto;position:relative;z-index:0}.staff-page-chrome .crm-search,.staff-page-chrome .crm-tabs,.staff-page-chrome .finance-stats-grid,.staff-page-chrome .finance-tabs,.staff-page-chrome .group-workspace-tabs,.staff-page-chrome .roster-toolbar{margin-bottom:0}.app-shell .content:has(>.staff-page-layout--fill){display:flex;flex-direction:column;min-height:0;overflow:hidden;padding-bottom:var(--space-4)}.app-shell .content:has(>.staff-page-layout--page){overflow-y:auto}.app-shell__main{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;background:var(--bg)}.staff-page-body--scroll:has(.staff-page-tab-panel--pipeline){display:flex;flex-direction:column;overflow:hidden}.staff-page-tab-panel{display:flex;flex-direction:column;min-height:0}.staff-page-tab-panel--pipeline{flex:1 1;min-height:0}.staff-page-panel-header{flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--bg);padding-bottom:var(--space-2);margin-bottom:var(--space-4)}.staff-page-tab-panel--pipeline .kanban-board{flex:1 1;min-height:0;align-items:stretch;overflow-x:auto;overflow-y:hidden}.staff-page-tab-panel--pipeline .kanban-col{max-height:none;height:100%;min-height:0}.app-shell .content .staff-page-chrome .page-header,.app-shell .content .staff-page-chrome .shell-chrome--top{position:static;top:auto;z-index:auto;box-shadow:none;margin:0;padding:0;background:transparent}.drawer-panel{display:flex;flex-direction:column;height:100%;max-height:100vh;overflow:hidden;background:var(--chrome-bg)}.drawer-panel__scroll{flex:1 1;min-height:0;overflow-y:auto}.drawer-chrome-footer,.drawer-chrome-header{flex-shrink:0;background:var(--chrome-bg);isolation:isolate}.drawer-chrome-header{top:0;box-shadow:var(--chrome-shadow)}.drawer-chrome-footer,.drawer-chrome-header{position:-webkit-sticky;position:sticky;z-index:10}.drawer-chrome-footer{bottom:0;box-shadow:0 -1px 0 var(--line),0 -6px 16px rgba(0,0,0,.22)}html{scroll-behavior:smooth}html:has(.student-portal-shell),html:has(.student-portal-shell) body{height:100%;overflow:hidden}html:has(.student-portal-shell) #app-root{height:100%;min-height:0}*{box-sizing:border-box;margin:0;padding:0}body,html{font-family:Inter,Segoe UI,system-ui,-apple-system,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.12);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.2)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid rgba(99,102,241,.8);outline-offset:2px}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;overflow:hidden;min-height:0}.app-shell,.sidebar{height:100dvh;max-height:100dvh}.sidebar{background:linear-gradient(180deg,#080c1a,#0a1020 55%,#08111e);border-right:1px solid rgba(99,102,241,.08);display:flex;flex-direction:column;padding:0;overflow-y:auto;position:-webkit-sticky;position:sticky;top:0;transition:width var(--transition-base)}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:20px 16px 16px;font-size:15px;font-weight:800;color:#fff;border-bottom:1px solid hsla(0,0%,100%,.06);margin-bottom:8px}.sidebar-brand-icon{width:28px;height:28px;background:linear-gradient(135deg,var(--brand),var(--brand-2));border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.sidebar-section-label{font-weight:700;letter-spacing:.12em;color:var(--muted);padding:10px 16px 4px}.nav-link{display:flex;align-items:center;gap:10px;padding:9px 14px;margin:1px 8px;border-radius:var(--radius-sm);color:rgba(148,163,184,.85);font-size:13px;font-weight:500;transition:color var(--transition-fast),background var(--transition-fast);position:relative;letter-spacing:.01em}.nav-link:hover{color:#e2e8f0;background:hsla(0,0%,100%,.055)}.nav-link.active{background:linear-gradient(90deg,rgba(99,102,241,.22),rgba(99,102,241,.1));color:#c7d2fe;font-weight:600}.nav-link.active:before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:3px;height:18px;background:linear-gradient(180deg,var(--brand),var(--brand-2));border-radius:2px;box-shadow:0 0 8px var(--brand-glow)}.nav-link__label{gap:8px;flex:1 1;min-width:0}.nav-link-badge,.nav-link__label{display:inline-flex;align-items:center}.nav-link-badge{justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:rgba(245,158,11,.2);color:#fcd34d;font-size:10px;font-weight:700;line-height:1;flex-shrink:0}.nav-icon{font-size:14px;width:18px;text-align:center;flex-shrink:0}.nav-course-item{display:flex;align-items:center;gap:10px;padding:7px 14px;margin:1px 8px;border-radius:var(--radius-sm);color:#64748b;font-size:12px;font-weight:500;transition:all .15s ease;cursor:default}.nav-course-item:hover{color:#94a3b8;background:hsla(0,0%,100%,.04)}.nav-course-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sidebar-spacer{flex:1 1}.sidebar-footer{padding:12px 12px 16px;border-top:1px solid hsla(0,0%,100%,.06)}.btn-logout{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:9px 12px;border-radius:var(--radius-sm);background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.25);color:#fca5a5;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s ease}.btn-logout:hover{background:rgba(239,68,68,.25);border-color:rgba(239,68,68,.4);color:#fecaca}.topbar-utility{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);height:48px;flex-shrink:0;background:var(--chrome-bg);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:50;isolation:isolate;box-shadow:var(--chrome-shadow)}.topbar-utility.shell-chrome--top{z-index:50}.topbar-utility-left,.topbar-utility-right{display:flex;align-items:center;gap:var(--space-3)}.topbar-platform{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.topbar-icon-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:4px 6px;border-radius:6px;transition:background .15s;line-height:1}.topbar-icon-btn:hover{background:hsla(0,0%,100%,.08)}.topbar-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand-2));border:none;color:#fff;font-size:11px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0;transition:opacity .15s}.topbar-avatar img{width:100%;height:100%;object-fit:cover}.topbar-avatar:hover{opacity:.85}.topbar-profile-wrap{position:relative;z-index:10}.topbar-profile-menu{position:absolute;right:0;top:calc(100% + 8px);width:200px;background:#1e293b;border:1px solid hsla(0,0%,100%,.1);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:var(--space-2) 0;z-index:10}.topbar-profile-name{padding:var(--space-2) var(--space-3);font-size:13px;font-weight:700;color:var(--text)}.topbar-profile-email{padding:0 var(--space-3) var(--space-2);font-size:11px;color:var(--muted)}.topbar-profile-divider{height:1px;background:hsla(0,0%,100%,.08);margin:var(--space-1) 0}.topbar-profile-item{display:block;width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;color:var(--text-secondary);font-size:13px;text-align:left;cursor:pointer;transition:background .15s,color .15s}.topbar-profile-item:hover{background:hsla(0,0%,100%,.06);color:var(--text)}.content{padding:var(--space-6) var(--space-6) 40px;background:var(--bg);flex:1 1;min-height:0;overflow-y:auto}@media (max-width:480px){.content{padding:var(--space-4) var(--space-3) 40px}}.course-detail-layout{display:flex;gap:14px;align-items:flex-start}.course-detail-sidebar{width:240px;flex-shrink:0;max-height:calc(100vh - 220px)}@media (max-width:768px){.course-detail-layout{flex-direction:column}.course-detail-sidebar{width:100%;max-height:min(45vh,340px)}}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:hsla(0,0%,100%,.03);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar-left{display:grid;grid-gap:3px;gap:3px}.topbar-right{display:flex;align-items:center;gap:10px}.title{font-size:28px;font-weight:900;letter-spacing:-.5px;color:var(--text);margin-bottom:2px}.subtitle{color:var(--muted);font-size:13px;font-weight:500}.breadcrumb{display:flex;align-items:center;gap:6px;list-style:none;font-size:12px;color:var(--muted)}.breadcrumb li+li:before{content:"/";color:hsla(0,0%,100%,.15);margin-right:6px}.section-head,.toolbar{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-4)}.section-head{justify-content:space-between}.legacy-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.card{background:hsla(0,0%,100%,.038);border:1px solid hsla(0,0%,100%,.08);border-radius:var(--radius-lg);padding:var(--space-4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-card);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{border-color:hsla(0,0%,100%,.1)}.card-sm{padding:var(--space-3);border-radius:var(--radius-md)}.grid{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}.grid-4{grid-template-columns:1fr 1fr 1fr 1fr}.input,.select,textarea.input{width:100%;background:hsla(0,0%,100%,.045);border:1px solid hsla(0,0%,100%,.09);border-radius:var(--radius-md);padding:9px 12px;font-size:13px;color:var(--text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);outline:none;font-family:inherit}select.input,select.select{appearance:none;-webkit-appearance:none;-moz-appearance:none;color-scheme:dark;cursor:pointer;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}[data-theme=light] select.input,[data-theme=light] select.select{color-scheme:light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}.input:focus,.select:focus,textarea.input:focus{border-color:var(--brand);background:rgba(99,102,241,.06)}.input::placeholder{color:rgba(100,116,139,.65)}.input:focus,.select:focus,textarea.input:focus{outline:none;border-color:rgba(99,102,241,.6);box-shadow:0 0 0 3px rgba(99,102,241,.15);background:hsla(0,0%,100%,.07)}select.input:focus,select.select:focus{background-color:hsla(0,0%,100%,.07);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}[data-theme=light] select.input:focus,[data-theme=light] select.select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}select.input option,select.select option{background-color:Canvas;color:CanvasText}:root:not([data-theme=light]) select.input option,:root:not([data-theme=light]) select.select option,[data-theme=light] select.input option,[data-theme=light] select.select option{background-color:#fff;color:#0f172a}.app-select{position:relative;width:100%}.app-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;width:100%;cursor:pointer}.app-select__trigger--placeholder .app-select__value{color:rgba(100,116,139,.85)}.app-select__value{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-select__chevron{flex-shrink:0;opacity:.75;transition:transform var(--transition-fast)}.app-select__trigger[aria-expanded=true] .app-select__chevron{transform:rotate(180deg)}.app-select__menu{z-index:1200;margin:0;padding:6px;list-style:none;background:var(--panel-solid);border:1px solid hsla(0,0%,100%,.12);border-radius:var(--radius-md);box-shadow:0 12px 40px rgba(0,0,0,.45),0 0 0 1px rgba(99,102,241,.08);max-height:min(280px,50vh);overflow-y:auto;overscroll-behavior:contain}[data-theme=light] .app-select__menu{border-color:var(--line);box-shadow:0 12px 32px rgba(15,23,42,.12)}.app-select__option{padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;color:var(--text);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.app-select__option--focused,.app-select__option:hover{background:rgba(99,102,241,.14)}.app-select__option--selected{background:rgba(99,102,241,.2);color:var(--brand-2);font-weight:600}.app-select__option--disabled{opacity:.45;cursor:not-allowed}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:var(--radius-md);padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),opacity var(--transition-fast);white-space:nowrap;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 3px 12px rgba(99,102,241,.38),0 1px 2px rgba(0,0,0,.3);font-family:inherit;letter-spacing:.01em;position:relative;overflow:hidden}.button:after{content:"";position:absolute;inset:0;background:#fff;opacity:0;transition:opacity var(--transition-fast);border-radius:inherit}.button:hover:after{opacity:.06}.button:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(99,102,241,.48)}.button:active{transform:translateY(0);box-shadow:0 2px 8px rgba(99,102,241,.3)}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.button.secondary{background:hsla(0,0%,100%,.07);color:#c8d4e3;border:1px solid hsla(0,0%,100%,.1);box-shadow:none}.button.secondary:hover{background:hsla(0,0%,100%,.11);color:var(--text);border-color:hsla(0,0%,100%,.15)}.button.secondary:hover:after{opacity:0}.button.danger{background:rgba(239,68,68,.15);color:#fca5a5;border:1px solid rgba(239,68,68,.25);box-shadow:none}.button.danger:hover{background:rgba(239,68,68,.25);border-color:rgba(239,68,68,.45)}.button.danger:hover:after{opacity:0}.button.icon{padding:8px 14px;gap:7px}.button.sm,.button.sm.danger,.button.sm.secondary{padding:5px 11px;font-size:12px;border-radius:var(--radius-sm);height:auto}.table-wrap{border-radius:var(--radius-md);border:1px solid hsla(0,0%,100%,.08);overflow:auto;max-height:500px;background:hsla(0,0%,100%,.02)}.table{width:100%;border-collapse:collapse;table-layout:auto}.table thead{display:table-header-group}.table tbody{display:table-row-group}.table tr{display:table-row}.table td,.table th{display:table-cell;vertical-align:middle;text-align:left}.table th{padding:10px 14px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:rgba(100,116,139,.9);background:var(--chrome-bg);border-bottom:1px solid hsla(0,0%,100%,.07);position:-webkit-sticky;position:sticky;top:0;z-index:2;white-space:nowrap;isolation:isolate;box-shadow:0 1px 0 var(--line)}.staff-page-body--scroll .table-wrap{flex:1 1;min-height:0;max-height:none}.staff-page-body--scroll .table-wrap .table th{top:0}.table td{padding:11px 14px;border-bottom:1px solid hsla(0,0%,100%,.04);color:var(--text-secondary);font-size:13px}.table tbody tr,.table td{transition:background var(--transition-fast)}.table tbody tr:hover{background:hsla(0,0%,100%,.035)}.table tbody tr:last-child td{border-bottom:none}.stat-card{background:hsla(0,0%,100%,.038);border:1px solid hsla(0,0%,100%,.08);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-card);transition:border-color var(--transition-fast),transform var(--transition-fast);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,hsla(0,0%,100%,.025),transparent 60%);pointer-events:none}.stat-card:hover{border-color:hsla(0,0%,100%,.12);transform:translateY(-2px)}.stat-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:rgba(100,116,139,.85);margin-bottom:var(--space-2)}.stat-value{font-size:20px;font-weight:900;letter-spacing:-.5px;color:var(--text);line-height:1.1;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.stat-sub{font-size:11px;color:var(--muted);margin-top:5px}.finance-accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));grid-gap:10px;gap:10px}.finance-main-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,260px);grid-gap:16px;gap:16px;margin-bottom:16px;align-items:start}.account-card{border-radius:var(--radius-md);padding:10px 12px;position:relative;overflow:hidden;border:1px solid hsla(0,0%,100%,.12);display:flex;flex-direction:column;gap:6px;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.account-card:hover{border-color:hsla(0,0%,100%,.22);box-shadow:0 6px 20px rgba(0,0,0,.18)}.account-card-green{background:linear-gradient(135deg,#047857,#10b981)}.account-card-blue{background:linear-gradient(135deg,#1d4ed8,#3b82f6)}.account-card-purple{background:linear-gradient(135deg,#6d28d9,#8b5cf6)}.account-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:0}.account-card__meta{min-width:0;flex:1 1}.account-label{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:hsla(0,0%,100%,.65);margin-bottom:2px}.account-name{font-size:12px;font-weight:700;color:hsla(0,0%,100%,.92);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-balance{font-size:17px;font-weight:900;color:#fff;line-height:1.15;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.3px}.account-card__drop-hint{font-size:10px;font-weight:600;opacity:.72;display:flex;align-items:center;gap:4px;color:hsla(0,0%,100%,.88)}.account-card__drop-hint--active{opacity:1}.account-card__actions{display:flex;flex-direction:column;gap:4px;z-index:1;flex-shrink:0;align-items:stretch}.account-card__actions--compact{flex-direction:row;gap:3px}.account-card__action-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:72px;padding:5px 10px;font-size:11px;font-weight:700;border-radius:6px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);font-family:inherit;white-space:nowrap;border:1px solid transparent;background:transparent;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.account-card__action-btn--icon-only{min-width:0;width:26px;height:26px;padding:0}.account-card__action-btn svg{flex-shrink:0}.account-card__action-btn:hover{transform:translateY(-1px)}.account-card__action-btn:active{transform:translateY(0)}.account-card__action-btn--edit{color:hsla(0,0%,100%,.92);border-color:hsla(0,0%,100%,.28);background:hsla(0,0%,100%,.14)}.account-card__action-btn--edit:hover{color:#fff;border-color:hsla(0,0%,100%,.45);background:hsla(0,0%,100%,.24)}.account-card__action-btn--delete{color:#fecaca;border-color:hsla(0,96%,89%,.35);background:rgba(239,68,68,.22)}.account-card__action-btn--delete:hover{color:#fff;border-color:hsla(0,96%,89%,.55);background:rgba(239,68,68,.38)}.kanban-board{display:flex;gap:var(--space-4);overflow-x:auto;padding-bottom:var(--space-4);align-items:flex-start}.kanban-col{min-width:270px;max-width:270px;background:hsla(0,0%,100%,.03);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:calc(100dvh - var(--staff-shell-header-h) - var(--staff-page-chrome-h, 140px) - var(--staff-page-chrome-gap, 12px) - var(--staff-page-body-gap, 20px))}.kanban-col-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 10px;border-bottom:1px solid var(--line)}.kanban-col-title{font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:7px}.kanban-col-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.kanban-count{font-size:11px;font-weight:700;padding:2px 7px;border-radius:20px;background:hsla(0,0%,100%,.08);color:var(--muted)}.kanban-col-body{padding:10px;overflow-y:auto;flex:1 1;display:flex;flex-direction:column;gap:8px}.deal-card{background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.08);border-radius:var(--radius-md);padding:12px;cursor:pointer;transition:all .15s ease}.deal-card:hover{background:hsla(0,0%,100%,.07);border-color:rgba(99,102,241,.3)}.deal-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.06em;padding:2px 8px;border-radius:20px;margin-bottom:8px}.deal-badge-new{background:rgba(16,185,129,.2);color:#6ee7b7}.deal-badge-converted{background:rgba(99,102,241,.2);color:#a5b4fc}.deal-badge-lost{background:rgba(239,68,68,.2);color:#fca5a5}.deal-name{font-size:13px;font-weight:700;color:var(--text);margin-bottom:3px}.deal-phone{font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.02em;margin-bottom:6px}.deal-course{font-size:11px;color:var(--muted);margin-bottom:10px}.deal-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid hsla(0,0%,100%,.05);padding-top:8px;margin-top:4px}.deal-footer-actions{display:flex;align-items:center;gap:6px}.deal-trial-drop-info{position:relative;display:inline-flex;align-items:center}.deal-trial-drop-info-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:50%;background:rgba(148,163,184,.15);color:#94a3b8;cursor:help;transition:background .15s ease,color .15s ease}.deal-trial-drop-info-btn:hover,.deal-trial-drop-info:hover .deal-trial-drop-info-btn{background:rgba(99,102,241,.2);color:#a5b4fc}.deal-trial-drop-info-tooltip{position:absolute;bottom:calc(100% + 8px);right:0;z-index:60;min-width:180px;max-width:240px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel-solid,#0f172a);box-shadow:var(--shadow-card);pointer-events:none}.deal-trial-drop-info-tooltip-label{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.deal-trial-drop-info-tooltip-text{font-size:12px;line-height:1.45;color:var(--text);white-space:pre-wrap;word-break:break-word}.deal-date{font-size:11px;color:var(--muted)}.deal-actions{display:flex;gap:4px;flex-wrap:wrap}.deal-card[draggable=true]{cursor:-webkit-grab;cursor:grab}.deal-card[draggable=true]:active{cursor:-webkit-grabbing;cursor:grabbing;opacity:.8}.kanban-col-over{background:rgba(99,102,241,.06);border-color:rgba(99,102,241,.4)}.kanban-col-drop-blocked{opacity:.45;cursor:not-allowed}.kanban-col-drop-blocked .kanban-col-body{pointer-events:none}.kanban-empty-drop{padding:20px 0;text-align:center;color:hsla(0,0%,100%,.1);font-size:12px;border:2px dashed hsla(0,0%,100%,.08);border-radius:var(--radius-md);transition:border-color .15s,color .15s}.kanban-col-over .kanban-empty-drop{border-color:rgba(99,102,241,.35);color:rgba(99,102,241,.6)}.crm-search{position:relative;max-width:520px;margin-bottom:var(--space-6)}.crm-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:13px}.crm-search .input{padding-left:38px;border-radius:20px}.crm-tabs{display:flex;gap:4px;background:hsla(0,0%,100%,.04);border:1px solid var(--line);border-radius:var(--radius-md);padding:4px;width:-moz-fit-content;width:fit-content;margin-bottom:var(--space-6)}.crm-tab{padding:7px 18px;border-radius:var(--radius-sm);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .15s ease;color:var(--muted);border:none;background:none;display:flex;align-items:center;gap:6px}.crm-tab:hover{color:#cbd5e1;background:hsla(0,0%,100%,.05)}.crm-tab.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 3px 10px rgba(99,102,241,.4)}body.modal-open #app-root{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;box-sizing:border-box;overflow-y:auto;z-index:var(--modal-z);animation:fadeInOverlay .16s ease;touch-action:none}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.behavior-snippet-player__trigger{display:block;width:100%;margin:0;padding:0;border:none;background:none;cursor:zoom-in;border-radius:6px}.behavior-snippet-player__trigger:focus-visible{outline:2px solid rgba(99,102,241,.85);outline-offset:2px}.behavior-snippet-lightbox{padding:12px;z-index:var(--lightbox-z)!important;background:rgba(0,0,0,.94);isolation:isolate}.behavior-snippet-lightbox__content{pointer-events:auto;display:flex;align-items:center;justify-content:center;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.behavior-snippet-lightbox__close{position:fixed;top:16px;right:16px;z-index:2;width:44px;height:44px;border:1px solid hsla(0,0%,100%,.18);border-radius:999px;background:rgba(15,22,36,.88);color:var(--text);font-size:20px;line-height:1;cursor:pointer;pointer-events:auto}.behavior-snippet-lightbox__close:hover{background:rgba(30,38,56,.95)}.behavior-snippet-lightbox__close:focus-visible{outline:2px solid rgba(99,102,241,.85);outline-offset:2px}.behavior-snippet-lightbox__media{max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 24px 64px rgba(0,0,0,.55)}.modal-card{width:min(540px,92vw);max-height:min(92vh,900px);display:flex;flex-direction:column;background:linear-gradient(180deg,#13192a,#0f1624);border:1px solid hsla(0,0%,100%,.1);border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 32px 80px rgba(0,0,0,.75),0 0 0 1px rgba(99,102,241,.14),0 0 48px rgba(99,102,241,.1);pointer-events:auto}.modal-header{justify-content:space-between;flex-shrink:0;padding:var(--space-4) var(--space-6);border-bottom:1px solid hsla(0,0%,100%,.07);background:var(--card);position:-webkit-sticky;position:sticky;top:0;z-index:2;isolation:isolate}.modal-header,.modal-title{display:flex;align-items:center}.modal-title{font-size:16px;font-weight:800;color:var(--text);gap:10px;min-width:0;overflow-wrap:anywhere}.modal-title-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:rgba(99,102,241,.2);display:flex;align-items:center;justify-content:center;font-size:14px}.modal-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:4px;line-height:1;flex-shrink:0;transition:color .15s}.modal-close:hover{color:var(--text)}.modal-body{padding:var(--space-6);display:grid;grid-gap:14px;gap:14px;flex:1 1;min-height:0;overflow-y:auto}.modal-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);flex-shrink:0;padding:var(--space-4) var(--space-6);border-top:1px solid hsla(0,0%,100%,.07);background:var(--card);position:-webkit-sticky;position:sticky;bottom:0;z-index:2;isolation:isolate}.field{display:grid;grid-gap:5px;gap:5px}.field label{font-size:12px;font-weight:600;color:var(--muted)}.skeleton{position:relative;overflow:hidden;background:hsla(0,0%,100%,.06);border-radius:var(--radius-sm)}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.08),transparent);animation:shimmer 1.4s infinite}.skeleton-line{height:12px;margin:8px 0}.skeleton-lg{height:18px}@keyframes shimmer{to{transform:translateX(100%)}}.empty-state{padding:40px var(--space-6);text-align:center;color:var(--muted);border:1px dashed hsla(0,0%,100%,.1);border-radius:var(--radius-lg);background:hsla(0,0%,100%,.02);font-size:13px}.empty-state__icon{font-size:48px;line-height:1;margin-bottom:var(--space-3)}.empty-state__title{font-size:16px;font-weight:800;color:var(--text);margin:0 0 var(--space-2)}.empty-state__body{font-size:13px;color:var(--muted);margin:0 0 var(--space-4);max-width:36ch;margin-left:auto;margin-right:auto}.empty-state__action{display:flex;justify-content:center;gap:var(--space-2)}.page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.app-shell .content .page-header{position:-webkit-sticky;position:sticky;top:var(--staff-shell-header-h);z-index:35;background:var(--chrome-bg);isolation:isolate;margin-top:calc(-1 * var(--space-6));margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6));padding:var(--space-6) var(--space-6) var(--space-4);box-shadow:var(--chrome-shadow)}.page-header__main{display:grid;grid-gap:var(--space-1);gap:var(--space-1);min-width:0}.page-header__eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-2)}.page-header__title{font-size:22px;font-weight:900;color:var(--text);margin:0;line-height:1.2}.page-header__subtitle{font-size:13px;color:var(--muted);margin:0;max-width:52ch}.page-header__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);flex-shrink:0}.alert{padding:12px 16px;border-radius:var(--radius-md);font-size:13px;line-height:1.45;border:1px solid var(--line)}.alert--error{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.25);color:#fca5a5}.alert--warn{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.25);color:#fcd34d}.alert--info{background:rgba(99,102,241,.08);border-color:rgba(99,102,241,.25);color:#a5b4fc}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack--sm{gap:var(--space-2)}.stack--lg{gap:var(--space-6)}.modal-card--sm{width:min(420px,92vw)}.modal-card--lg{width:min(720px,94vw)}.app-select__trigger:focus-visible,.app-shell-menu-btn:focus-visible,.button:focus-visible,.crm-tab:focus-visible,.input:focus-visible,.modal-close:focus-visible,.nav-link:focus-visible,.select:focus-visible,.topbar-avatar:focus-visible,.topbar-profile-item:focus-visible{outline:2px solid rgba(99,102,241,.85);outline-offset:2px}.app-shell-menu-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);cursor:pointer;font-size:18px}.sidebar-backdrop{display:none;position:fixed;inset:0;z-index:45;background:rgba(0,0,0,.55)}.sidebar--drawer-open{transform:translateX(0)!important}.settings-section-card{padding:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-card);margin-bottom:var(--space-6)}.settings-section-card h2{font-size:15px;font-weight:800;margin:0 0 var(--space-4);color:var(--text)}.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px}.badge-ok{background:rgba(16,185,129,.15);color:#6ee7b7}.badge-warn{background:rgba(245,158,11,.15);color:#fcd34d}.badge-error{background:rgba(239,68,68,.15);color:#fca5a5}.badge-brand{background:rgba(99,102,241,.15);color:#a5b4fc}.badge-muted{background:hsla(0,0%,100%,.06);color:var(--muted)}.roster-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.student-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:10px;gap:10px;margin-bottom:8px}.student-card{background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.08);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:0;cursor:pointer;transition:border-color .15s,background .15s}.student-card:hover{background:hsla(0,0%,100%,.07);border-color:rgba(99,102,241,.3)}.student-card:focus-within{border-color:rgba(99,102,241,.45);box-shadow:0 0 0 3px rgba(99,102,241,.14)}.student-avatar{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;color:#fff;flex-shrink:0}.student-card-name{font-weight:700;font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-card-phone{font-size:11px;color:var(--muted)}.group-section-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:8px 12px;background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-md)}.roster-drop-zone{border-radius:var(--radius-md);transition:background .2s ease,box-shadow .2s ease,opacity .2s ease}.roster-drop-zone--over{background:rgba(99,102,241,.08);box-shadow:inset 0 0 0 2px rgba(99,102,241,.45)}.roster-drop-zone--dim{opacity:.82}.roster-branches-stack--dnd .roster-drop-zone--over{opacity:1}.roster-branches-stack--dnd .roster-drop-zone--over .kanban-empty-drop{border-color:rgba(99,102,241,.45);color:rgba(129,140,248,.85);background:rgba(99,102,241,.06)}html.roster-dnd-active .roster-branch,html.roster-dnd-active .roster-drop-zone,html.roster-dnd-active .student-card{transition:background .2s ease,box-shadow .2s ease,opacity .2s ease,border-color .2s ease}html.roster-dnd-active .student-card--dragging{transition:none}html.roster-dnd-active{cursor:-webkit-grabbing;cursor:grabbing}html.roster-dnd-active .student-card .button,html.roster-dnd-active .student-card[draggable=true]:not(.student-card--dragging){pointer-events:none}.roster-branch{--rb-accent:var(--brand-2);--rb-accent-rgb:129,140,248;--rb-border:rgba(var(--rb-accent-rgb),0.28);--rb-bg:rgba(var(--rb-accent-rgb),0.05);--rb-header-bg:rgba(var(--rb-accent-rgb),0.12);--rb-rail:rgba(var(--rb-accent-rgb),0.45);margin-bottom:28px;border-radius:var(--radius-lg);border:1px solid var(--rb-border);background:var(--rb-bg);box-shadow:var(--shadow-card);overflow:hidden}.roster-branch--tone-0{--rb-accent-rgb:129,140,248;--rb-accent:#818cf8}.roster-branch--tone-1{--rb-accent-rgb:52,211,153;--rb-accent:#34d399}.roster-branch--tone-2{--rb-accent-rgb:251,191,36;--rb-accent:#fbbf24}.roster-branch--tone-3{--rb-accent-rgb:244,114,182;--rb-accent:#f472b6}.roster-branch--tone-unknown{--rb-accent-rgb:148,163,184;--rb-accent:#94a3b8}.roster-branch--unassigned{--rb-accent-rgb:245,158,11;--rb-accent:#f59e0b;--rb-bg:rgba(245,158,11,.04);--rb-header-bg:rgba(245,158,11,.1);border-style:dashed}.roster-branch__header{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--rb-header-bg);border-bottom:1px solid var(--rb-border);position:relative}.roster-branch__header:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,var(--rb-accent),rgba(var(--rb-accent-rgb),.45))}.roster-branch__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:rgba(var(--rb-accent-rgb),.18);border:1px solid var(--rb-border);font-size:18px;flex-shrink:0;margin-left:6px}.roster-branch__meta{flex:1 1;min-width:0}.roster-branch__title{margin:0;font-weight:800;font-size:17px;letter-spacing:.01em;color:var(--rb-accent);line-height:1.2}.roster-branch__subtitle{display:block;margin-top:3px;font-size:12px;color:var(--muted)}.roster-branch__count{flex-shrink:0;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;background:rgba(var(--rb-accent-rgb),.16);color:var(--rb-accent);border:1px solid var(--rb-border)}.roster-branch__body{padding:18px 20px 14px;display:flex;flex-direction:column;gap:18px}.roster-branch__group{padding:14px 14px 14px 16px;margin-left:4px;border-left:3px solid var(--rb-rail);border-radius:0 var(--radius-md) var(--radius-md) 0;background:hsla(0,0%,100%,.025)}[data-theme=light] .roster-branch__group{background:hsla(0,0%,100%,.65)}.group-section-header--nested{background:rgba(var(--rb-accent-rgb),.08);border-color:rgba(var(--rb-accent-rgb),.18)}.group-section-header--nested .group-section-header__name{color:var(--text)}.group-section-header__name{font-weight:800;font-size:13px;color:var(--brand-2)}.roster-copy-phones-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid hsla(0,0%,100%,.12);border-radius:6px;background:hsla(0,0%,100%,.04);color:var(--muted);font-size:12px;line-height:1;cursor:pointer;flex-shrink:0;transition:background .15s ease,color .15s ease,border-color .15s ease}.roster-copy-phones-btn:hover:not(:disabled){background:hsla(0,0%,100%,.1);color:var(--text);border-color:hsla(0,0%,100%,.2)}.roster-copy-phones-btn:disabled{opacity:.35;cursor:not-allowed}.roster-copy-phones-btn--branch{width:30px;height:30px;font-size:13px}.roster-branch--unassigned .group-section-header{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.2)}.roster-branches-stack{display:flex;flex-direction:column;gap:8px}.roster-branch--unassigned+.roster-branches-stack,.roster-branches-stack+.roster-branch{margin-top:12px}[data-theme=light] .roster-branch{box-shadow:0 2px 10px rgba(15,23,42,.06)}[data-theme=light] .roster-branch--tone-0{--rb-bg:rgba(79,70,229,.04)}[data-theme=light] .roster-branch--tone-1{--rb-bg:rgba(16,185,129,.05)}[data-theme=light] .roster-branch--tone-2{--rb-bg:rgba(245,158,11,.05)}[data-theme=light] .roster-branch--tone-3{--rb-bg:rgba(236,72,153,.05)}.student-card[draggable=true]{cursor:-webkit-grab;cursor:grab}.student-card--dragging,.student-card[draggable=true]:active{cursor:-webkit-grabbing;cursor:grabbing}.student-card--dragging{opacity:.55;border-style:dashed;border-color:rgba(99,102,241,.55);background:rgba(99,102,241,.1);transform:none!important;box-shadow:none}.student-card-drag-ghost{opacity:1!important;border-style:solid;border-color:rgba(99,102,241,.55);background:var(--panel-solid);box-shadow:var(--shadow-sm);transform:rotate(-1deg);z-index:9999}.nav-divider{height:1px;background:hsla(0,0%,100%,.06);margin:8px 16px}.sidebar-section-label{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:hsla(0,0%,100%,.25);padding:2px 16px 4px}.group-workspace-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line);padding-bottom:0}.group-workspace-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;font-size:13px;font-weight:600;margin-bottom:-1px;padding:10px 14px;transition:color var(--transition-fast),border-color var(--transition-fast)}.group-workspace-tab:hover{color:var(--text)}.group-workspace-tab--active{border-bottom-color:#6366f1;color:#6366f1;font-weight:700}.group-workspace-meta{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin:0}.group-workspace-meta dt{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;margin:0 0 4px;text-transform:uppercase}.group-workspace-meta dd{font-size:14px;font-weight:600;margin:0}.group-workspace-quick-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.group-workspace-overview{display:grid;grid-gap:16px;gap:16px}.group-syllabus-timeline__list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px;max-height:420px;overflow:auto}.group-syllabus-timeline__item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--line);background:hsla(0,0%,100%,.02)}.group-syllabus-timeline__item--passed{border-color:rgba(16,185,129,.35);background:rgba(16,185,129,.06)}.group-syllabus-timeline__item--active{border-color:rgba(99,102,241,.5);box-shadow:0 0 0 1px rgba(99,102,241,.25)}.group-syllabus-timeline__marker{width:22px;height:22px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;background:rgba(99,102,241,.15);color:#a5b4fc;flex-shrink:0}.group-attendance-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px}.group-attendance-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(300px,1fr);grid-gap:16px;gap:16px;align-items:start}@media (max-width:900px){.group-attendance-layout{grid-template-columns:1fr}}.group-attendance-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.group-attendance-dow{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--muted);text-align:center;padding:4px}.group-attendance-day{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);border-radius:8px;background:hsla(0,0%,100%,.03);min-height:52px;padding:6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text);transition:border-color .15s,background .15s}.group-attendance-day:hover:not(:disabled){border-color:rgba(99,102,241,.45)}.group-attendance-day--selected{border-color:#6366f1;background:rgba(99,102,241,.12)}.group-attendance-day--muted{opacity:.35;cursor:default}.group-attendance-day__dot{font-size:9px;font-weight:800;color:#6366f1;background:rgba(99,102,241,.2);border-radius:999px;padding:1px 6px}.group-attendance-roster{padding:16px;min-height:200px}.group-exam-score-block{border-top:1px solid var(--line);padding-top:12px}.group-overview-kpis{margin-bottom:4px}.group-overview-kpis__grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:12px;gap:12px}@media (max-width:1280px){.group-overview-kpis__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:720px){.group-overview-kpis__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:420px){.group-overview-kpis__grid{grid-template-columns:1fr}}.group-overview-kpi{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:hsla(0,0%,100%,.038);border:1px solid hsla(0,0%,100%,.08);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);cursor:pointer;display:flex;flex-direction:column;gap:6px;min-height:112px;overflow:hidden;padding:14px 16px;position:relative;text-align:left;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);width:100%}.group-overview-kpi:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(99,102,241,.06),transparent 55%);opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}.group-overview-kpi:hover:not(:disabled){border-color:rgba(99,102,241,.45);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2)}.group-overview-kpi:hover:not(:disabled):before{opacity:1}.group-overview-kpi:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.group-overview-kpi:disabled{cursor:wait;opacity:.85}.group-overview-kpi--warn{border-color:rgba(245,158,11,.35)}.group-overview-kpi--success{border-color:rgba(16,185,129,.3)}.group-overview-kpi--brand{border-color:rgba(99,102,241,.25)}.group-overview-kpi__icon{font-size:20px;line-height:1}.group-overview-kpi__label{color:rgba(100,116,139,.9);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.group-overview-kpi__value{font-size:15px;font-weight:800;letter-spacing:-.02em;line-height:1.25}.group-overview-kpi__sub{color:var(--muted);font-size:11px;line-height:1.35;margin-top:auto}.finance-report-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;border:1px solid var(--line);border-radius:var(--radius-md);padding:8px 14px;background:hsla(0,0%,100%,.02)}.finance-report-toolbar__group{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.finance-report-toolbar__icon{font-size:16px;line-height:1}.finance-report-toolbar__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.finance-report-toolbar__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}.finance-report-toolbar__period{font-size:12px;font-weight:700;color:var(--text-secondary);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-report-toolbar__badge{flex-shrink:0}.finance-report-status{display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--line)}.finance-report-status--frozen{background:rgba(99,102,241,.08);border-color:rgba(99,102,241,.22)}.finance-report-status--future{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.22)}.finance-report-status__icon{font-size:16px;line-height:1.4;flex-shrink:0}.finance-report-status__text{margin:0;font-size:12px;line-height:1.45;color:var(--text-secondary)}.finance-stat-card{position:relative;padding-top:14px}.finance-stat-card--skeleton{height:88px;border-radius:var(--radius-lg)}.finance-stat-card__icon{position:absolute;top:12px;right:14px;font-size:18px;line-height:1;opacity:.55}.finance-stat-card__value--positive{color:#6ee7b7}.finance-stat-card__value--negative{color:#fca5a5}.finance-stat-card__value--warning{color:#fcd34d}.finance-stat-card--balance{border-top:3px solid rgba(110,231,183,.45)}.finance-stat-card--expense{border-top:3px solid hsla(0,94%,82%,.45)}.finance-stat-card--income{border-top:3px solid rgba(52,211,153,.45)}.finance-stat-card--net{border-top:3px solid rgba(99,102,241,.45)}.finance-stat-card--planned{border-top:3px solid rgba(252,211,77,.45)}.finance-tabs{margin-bottom:24px;max-width:100%}.finance-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;font-size:10px;font-weight:800;background:hsla(0,0%,100%,.14);color:inherit}.crm-tab.active .finance-tab-count{background:hsla(0,0%,100%,.22)}.finance-workflow-hint{margin-bottom:16px;padding:12px 16px;border-radius:var(--radius-md);border:1px solid rgba(99,102,241,.22);background:rgba(99,102,241,.06)}.finance-workflow-hint__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.finance-workflow-hint__title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--text)}.finance-workflow-hint__toggle{border:none;background:none;padding:4px 8px;font-size:11px;font-weight:700;color:var(--brand-2);cursor:pointer;font-family:inherit;border-radius:6px}.finance-workflow-hint__toggle:hover{background:rgba(99,102,241,.12)}.finance-workflow-hint__steps{margin:12px 0 0;padding:0 0 0 4px;list-style:none;display:flex;flex-direction:column;gap:8px}.finance-workflow-hint__steps li{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.45;color:var(--text-secondary)}.finance-workflow-hint__step-icon{flex-shrink:0;width:22px;text-align:center}.finance-section-title{display:flex;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:800;color:var(--text)}.finance-section-title--plain{font-size:15px}.finance-section-desc{margin:8px 0 0;font-size:12px;line-height:1.45;color:var(--muted);max-width:560px}.finance-section-desc--secondary{margin-top:6px}.finance-income-chips{margin-bottom:12px}.finance-income-chips__label{display:block;margin-bottom:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.finance-income-chips__row{display:flex;flex-wrap:wrap;gap:6px}.finance-income-chip{padding:4px 10px;font-size:11px;font-weight:700;cursor:-webkit-grab;cursor:grab;border:1px solid rgba(16,185,129,.35);border-radius:999px;background:rgba(16,185,129,.12);color:#6ee7b7;font-family:inherit}.finance-income-chip:active{cursor:-webkit-grabbing;cursor:grabbing}.finance-amount{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.finance-amount--positive{color:#6ee7b7}.finance-amount--negative{color:#fca5a5}.finance-tx-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.finance-tx-filters__month{width:150px}.finance-tx-filters__hint{font-size:12px;color:var(--muted)}.finance-tx-accounts{margin-bottom:16px}.finance-tx-accounts__strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}.finance-tx-account-chip{min-width:158px;flex-shrink:0;padding:12px 14px;border:1px solid var(--line);border-left-width:4px;transition:box-shadow .2s ease,opacity .2s ease,transform .18s ease}.finance-tx-account-chip__type{font-size:10px;font-weight:700;color:var(--muted)}.finance-tx-account-chip__name{font-weight:800;font-size:13px;color:var(--text)}.finance-tx-account-chip__balance{font-size:12px;font-weight:700;color:#6ee7b7}.finance-drop-zone{padding:18px;text-align:center;font-size:12px;color:var(--muted);border:2px dashed hsla(0,0%,100%,.07);border-radius:var(--radius-md);background:hsla(0,0%,100%,.015)}.finance-drop-zone--empty{flex-direction:column;gap:8px;margin:12px;min-height:72px}.finance-drop-zone--empty,.finance-drop-zone__icon{display:flex;align-items:center;justify-content:center}.finance-drop-zone__icon{width:32px;height:32px;border-radius:50%;font-size:14px;font-weight:800;background:hsla(0,0%,100%,.06);color:var(--text-secondary)}.finance-pending-card{margin-bottom:20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-card);overflow:hidden}.finance-pending-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:hsla(0,0%,100%,.02)}.finance-pending-toolbar--minimal{justify-content:space-between;align-items:flex-start;padding:12px 16px}.finance-pending-total{font-size:13px;font-weight:700;color:var(--warning,#f59e0b);white-space:nowrap}.finance-copy-phones-list{display:flex;flex-direction:column;gap:6px;max-height:min(52vh,420px);overflow:auto;margin:0 -4px;padding:0 4px}.finance-copy-phones-row{display:grid;grid-template-columns:auto 1fr auto;grid-gap:10px;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:hsla(0,0%,100%,.02);font-size:13px;cursor:pointer}.finance-copy-phones-row--no-phone{opacity:.55;cursor:default}.finance-copy-phones-row__name{font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-copy-phones-row__phone{color:var(--muted);font-size:12px;white-space:nowrap}.finance-pending-strip{display:flex;flex-wrap:wrap;gap:16px;padding:18px 16px 20px;align-items:flex-start;max-height:min(340px,52vh);overflow-y:auto;overflow-x:hidden;content-visibility:auto;contain-intrinsic-size:auto 200px}.finance-pending-icon-wrap{transition:opacity .18s ease,transform .18s ease}.finance-pending-icon-wrap--dim{opacity:.42}.finance-pending-icon-wrap--lift{transform:translateY(-2px)}.finance-pending-round-icon{width:64px;height:64px;border-radius:50%;overflow:hidden;flex-shrink:0;cursor:-webkit-grab;cursor:grab;border:3px solid hsla(0,0%,100%,.14);box-shadow:0 6px 20px rgba(0,0,0,.28);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.finance-pending-round-icon:active{cursor:-webkit-grabbing;cursor:grabbing}.finance-pending-round-icon img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.finance-pending-round-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;color:#fff;letter-spacing:-.02em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.finance-pending-round-icon--dragging{border-color:rgba(110,231,183,.95);box-shadow:0 0 0 3px rgba(110,231,183,.35),0 10px 28px rgba(0,0,0,.35);transform:scale(1.04)}.finance-account-drag-strip{margin-top:2px;display:flex;align-items:center;gap:6px;padding:8px 10px;min-height:32px;border-radius:6px;background:rgba(0,0,0,.28);border:1px solid hsla(0,0%,100%,.14);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.finance-account-drag-strip:active{cursor:-webkit-grabbing;cursor:grabbing}.finance-account-drag-strip-grip{font-size:12px;opacity:.85;letter-spacing:1px;flex-shrink:0}.finance-account-drag-strip-text{font-size:10px;font-weight:700;color:hsla(0,0%,100%,.92);letter-spacing:.02em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-expense-log-card{margin-bottom:20px}.finance-stats-grid{margin-bottom:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));grid-gap:12px;gap:12px}.finance-history-card{padding:12px 14px}.finance-history-card__head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.finance-history-card__title{font-weight:800;font-size:13px;color:var(--text)}.finance-history-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:11px;padding:5px 0;border-bottom:1px solid var(--line)}.finance-history-row__label{color:var(--text-secondary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-history-row__amount{font-weight:700;flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.finance-month-picker__trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-width:140px;padding:6px 10px;font-size:13px;font-weight:700;font-family:inherit;color:var(--text);background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.finance-month-picker__trigger:hover{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.14)}.finance-month-picker__trigger:focus-visible{outline:none;border-color:rgba(99,102,241,.6);box-shadow:0 0 0 3px rgba(99,102,241,.15)}.finance-month-picker__trigger-label{text-align:left;white-space:nowrap}.finance-month-picker__chevron{font-size:11px;color:var(--muted);line-height:1;transition:transform var(--transition-fast)}.finance-month-picker__trigger[aria-expanded=true] .finance-month-picker__chevron{transform:rotate(180deg)}.finance-month-picker__panel{z-index:1100;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(15,23,42,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 40px rgba(0,0,0,.45)}.finance-month-picker__year{padding:2px 4px 8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.finance-month-picker__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:6px;gap:6px}.finance-month-picker__month{min-height:36px;padding:8px 6px;border:1px solid transparent;border-radius:8px;background:hsla(0,0%,100%,.04);color:var(--text);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.finance-month-picker__month:hover:not(:disabled){background:rgba(99,102,241,.14);border-color:rgba(99,102,241,.35)}.finance-month-picker__month:focus-visible{outline:none;border-color:rgba(99,102,241,.6);box-shadow:0 0 0 2px rgba(99,102,241,.2)}.finance-month-picker__month--selected{background:rgba(99,102,241,.22);border-color:rgba(99,102,241,.55);color:#e0e7ff}.finance-month-picker__month--selected:hover:not(:disabled){background:rgba(99,102,241,.28)}.finance-month-picker__month--disabled{opacity:.38;cursor:not-allowed;background:hsla(0,0%,100%,.02);color:var(--muted)}.finance-expense-log-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.finance-expense-log-groups{display:flex;flex-direction:column;gap:16px}.finance-expense-log-groups--split{gap:20px}.finance-expense-log-group__title{margin:0 0 10px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.finance-expense-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));grid-gap:12px;gap:12px}.finance-expense-category-drop{min-height:56px;padding:12px 14px;border-radius:var(--radius-md);border:2px dashed hsla(0,0%,100%,.14);background:hsla(0,0%,100%,.03);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;transition:border-color .18s ease,background .18s ease,opacity .18s ease,transform .18s ease,box-shadow .18s ease}.finance-expense-category-drop-icon{font-size:22px;line-height:1}.finance-expense-category-drop-label{font-size:13px;font-weight:800;color:var(--text);line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-expense-category-drop-summary{font-size:11px;font-weight:600;color:var(--text-secondary,#94a3b8);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;max-width:100%;overflow:hidden;text-overflow:ellipsis}.finance-expense-category-drop-affordance{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:rgba(110,231,183,.9);white-space:nowrap}.finance-expense-category-drop--droppable{cursor:copy}.finance-category-progress{width:100%;display:flex;flex-direction:column;gap:6px}.finance-category-progress__track{width:100%;height:8px;border-radius:999px;background:hsla(0,0%,100%,.08);overflow:hidden}.finance-category-progress__fill{height:100%;border-radius:inherit;transition:width .25s ease,background .25s ease}.finance-category-progress__label{display:flex;flex-wrap:nowrap;align-items:baseline;gap:4px;font-size:12px;font-weight:600;color:var(--text-secondary,#94a3b8);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.finance-category-progress__sep{opacity:.55}.finance-category-progress__pct{color:var(--muted);font-weight:700}.finance-category-progress--mini .finance-category-progress__track{height:5px}.finance-category-progress--mini .finance-category-progress__label{font-size:10px;justify-content:center}.finance-category-icon-preset{width:40px;height:40px;border-radius:10px;border:2px solid var(--line);background:hsla(0,0%,100%,.04);font-size:20px;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}.finance-category-icon-preset--selected{border-color:var(--text);box-shadow:0 0 0 2px rgba(99,102,241,.35)}.finance-category-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer}.finance-category-toggle input{width:16px;height:16px;accent-color:#6366f1}.finance-category-list{display:flex;flex-direction:column;gap:16px;min-height:0}.finance-category-list--split{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-gap:16px;gap:16px;min-height:480px;max-height:min(640px,calc(100vh - 220px))}.finance-category-list__section{display:flex;flex-direction:column;min-height:0;min-width:0}.finance-category-list__section-title{margin:0 0 10px;flex-shrink:0;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.finance-category-list__items{display:flex;flex-direction:column;gap:10px;flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}.finance-category-list:not(.finance-category-list--split) .finance-category-list__items{max-height:min(640px,calc(100vh - 220px))}.finance-category-card{padding:14px 16px;border-radius:var(--radius-md);border:1px solid var(--line);background:hsla(0,0%,100%,.02);display:flex;flex-direction:column;gap:10px}.finance-category-card__head{display:flex;align-items:flex-start;gap:12px}.finance-category-card__icon{font-size:28px;line-height:1;flex-shrink:0}.finance-category-card__meta{flex:1 1;min-width:0}.finance-category-card__title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}.finance-category-card__name{margin:0;font-size:15px;font-weight:800;color:var(--text)}.finance-category-card__amounts{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}.finance-category-card__amounts strong{color:var(--text)}.finance-category-card__actions{display:flex;flex-direction:column;gap:5px;flex-shrink:0;align-items:stretch}.finance-category-card__action-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:72px;padding:5px 10px;font-size:11px;font-weight:700;border-radius:8px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);font-family:inherit;white-space:nowrap;border:1px solid transparent;background:transparent}.finance-category-card__action-btn svg{flex-shrink:0}.finance-category-card__action-btn:hover{transform:translateY(-1px)}.finance-category-card__action-btn:active{transform:translateY(0)}.finance-category-card__action-btn--edit{color:#94a3b8;border-color:hsla(0,0%,100%,.1);background:hsla(0,0%,100%,.04)}.finance-category-card__action-btn--edit:hover{color:var(--text);border-color:hsla(0,0%,100%,.18);background:hsla(0,0%,100%,.09)}.finance-category-card__action-btn--delete{color:#fca5a5;border-color:rgba(239,68,68,.22);background:rgba(239,68,68,.08)}.finance-category-card__action-btn--delete:hover{color:#fecaca;border-color:rgba(239,68,68,.42);background:rgba(239,68,68,.16)}.finance-expense-category-drop--dim{opacity:.5}.finance-expense-category-drop--active{border-style:solid;border-color:hsla(0,91%,71%,.75);background:hsla(0,91%,71%,.14);box-shadow:0 0 0 2px hsla(0,91%,71%,.28);transform:scale(1.03)}.finance-dnd-overlay{position:fixed;inset:0;z-index:28;pointer-events:none;background:radial-gradient(ellipse 80% 55% at 50% 35%,rgba(16,185,129,.07),transparent 55%);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s ease}.finance-dnd-overlay--visible{opacity:1;visibility:visible}.finance-dnd-overlay-msg{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);padding:10px 18px;border-radius:999px;font-size:13px;font-weight:700;color:var(--text);background:var(--bg-card);border:1px solid var(--line);box-shadow:0 12px 40px rgba(0,0,0,.35);max-width:min(420px,92vw);text-align:center}@keyframes finance-drop-target-pulse{0%,to{box-shadow:0 0 0 3px rgba(110,231,183,.65),0 14px 36px rgba(0,0,0,.28)}50%{box-shadow:0 0 0 4px rgba(110,231,183,.95),0 16px 42px rgba(0,0,0,.32)}}.finance-account-drop-active{animation:finance-drop-target-pulse 1.1s ease-in-out infinite}html.finance-dnd-active,html.finance-dnd-active .finance-account-drag-strip,html.finance-dnd-active .finance-pending-round-icon{cursor:-webkit-grabbing;cursor:grabbing}html.finance-dnd-account .finance-expense-category-drop>*{pointer-events:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.finance-account-drop-active{animation:none!important;box-shadow:0 0 0 3px rgba(110,231,183,.75),0 12px 28px rgba(0,0,0,.22)!important}.finance-dnd-overlay{animation:none!important;opacity:1!important}}.muted{color:var(--muted);font-size:13px}.status-ok{color:var(--ok)}.status-error{color:var(--danger)}.portal-card{background:var(--bg-card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;transition:box-shadow var(--transition-fast)}.portal-section-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin-bottom:10px}.courses-page{display:flex;flex-direction:column;gap:24px}.courses-page__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.courses-page__title{font-size:26px;font-weight:900;color:var(--text);margin:0 0 8px;letter-spacing:-.02em}.courses-page__subtitle{font-size:14px;color:var(--muted);margin:0;max-width:520px;line-height:1.55}.courses-page__hero-skeleton{height:88px;border-radius:16px}.courses-page__roadmap-skeleton{display:flex;flex-direction:column;gap:20px;padding-top:8px}.courses-page__step-skeleton{height:120px;border-radius:16px}.courses-page__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px}.courses-page__stat{background:var(--bg-card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.courses-page__stat--highlight{border-color:rgba(99,102,241,.35);background:linear-gradient(145deg,rgba(99,102,241,.12),transparent)}.courses-page__stat--active{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:8px 12px}.courses-page__stat-value{font-size:22px;font-weight:800;color:var(--text);line-height:1.1}.courses-page__stat-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.courses-page__stat-active-title{font-size:14px;font-weight:700;color:var(--brand)}.courses-page__error{text-align:center;padding:48px 20px;color:var(--muted);font-size:14px}.courses-page__error span{font-size:40px;display:block;margin-bottom:12px}.courses-page__roadmap{margin-top:4px}.courses-page__roadmap.card{padding:var(--space-4) var(--space-3);background:var(--surface-2,var(--bg-card))}.course-roadmap{position:relative;padding:12px 0 24px}.course-roadmap__spine{position:absolute;left:50%;top:0;bottom:0;width:8px;transform:translateX(-50%);z-index:0;pointer-events:none}.course-roadmap__spine-track{position:absolute;inset:0;background:rgba(148,163,184,.18);border-radius:8px;background-image:repeating-linear-gradient(180deg,rgba(148,163,184,.25) 0,rgba(148,163,184,.25) 6px,transparent 0,transparent 12px)}.course-roadmap__spine-fill{position:absolute;top:0;left:0;right:0;border-radius:8px;background:linear-gradient(180deg,#6366f1,#3b82f6 50%,#10b981);transition:height .8s cubic-bezier(.22,1,.36,1);box-shadow:0 0 12px rgba(99,102,241,.6),0 0 24px rgba(99,102,241,.3)}.course-roadmap__nodes{position:relative;z-index:1;display:flex;flex-direction:column;gap:16px}@media (min-width:641px){.course-roadmap__nodes{gap:32px}.course-roadmap-row:has(.course-roadmap-hub--scatter){margin-bottom:16px}.course-roadmap-row:has(.course-roadmap-hub--scatter):last-child{margin-bottom:0}}.course-roadmap-row{position:relative;display:flex;justify-content:center;align-items:center;min-height:100px}.course-roadmap-row--active{scroll-margin-block:48px}.course-roadmap-row__hub-slot{display:flex;justify-content:center;width:100%;overflow:visible}.course-roadmap-card{max-width:300px;width:100%;position:relative;z-index:2;background:var(--bg-card);border:1.5px solid var(--line);border-radius:var(--kid-radius);padding:16px 18px;cursor:default;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.course-roadmap-card--active,.course-roadmap-card--available,.course-roadmap-card--complete{cursor:pointer;border-color:color-mix(in srgb,var(--course-accent) 40%,var(--line))}.course-roadmap-card--active:hover,.course-roadmap-card--available:hover,.course-roadmap-card--complete:hover{border-color:var(--course-accent);box-shadow:0 8px 28px color-mix(in srgb,var(--course-accent) 22%,transparent);transform:translateY(-2px)}.course-roadmap-card--active{box-shadow:0 4px 20px color-mix(in srgb,var(--course-accent) 18%,transparent)}.course-roadmap-card__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.course-roadmap-card__step{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.course-roadmap-card__badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px}.course-roadmap-card__badge--active{background:color-mix(in srgb,var(--status-active) 18%,transparent);color:var(--status-active)}.course-roadmap-card__badge--done{background:color-mix(in srgb,var(--status-complete) 15%,transparent);color:var(--status-complete)}.course-roadmap-card__badge--locked{background:color-mix(in srgb,var(--status-locked) 12%,transparent);color:var(--status-locked)}.course-roadmap-card__title{font-size:15px;font-weight:800;color:var(--text);margin:0 0 8px;line-height:1.3}.course-roadmap-card--locked .course-roadmap-card__title{color:var(--muted)}.course-roadmap-card__hint,.course-roadmap-card__meta{font-size:12px;color:var(--muted);margin:0 0 10px;line-height:1.4}.course-roadmap-card__bar{height:6px;background:var(--line);border-radius:6px;overflow:hidden;margin-bottom:8px}.course-roadmap-card__bar-fill{height:100%;background:var(--course-accent);border-radius:6px;transition:width .5s ease}.course-roadmap-card__footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.course-roadmap-card__actions{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.course-roadmap-card__set-active{font-size:10px;font-weight:800;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--course-accent) 45%,var(--line));background:color-mix(in srgb,var(--course-accent) 10%,var(--bg-card));color:var(--course-accent);cursor:pointer;transition:background .15s ease,border-color .15s ease}.course-roadmap-card__set-active:hover:not(:disabled){background:color-mix(in srgb,var(--course-accent) 18%,var(--bg-card));border-color:var(--course-accent)}.course-roadmap-card__set-active:disabled{opacity:.65;cursor:wait}.courses-page__set-active-error{font-size:12px;font-weight:600;color:var(--danger);margin:0 0 10px}.course-roadmap-card__pct{font-size:13px;font-weight:800;color:var(--course-accent)}.course-roadmap-card__cta{font-size:11px;font-weight:600;color:var(--muted)}.course-roadmap-card__open{background:none;border:none;padding:0;font:inherit;cursor:pointer;text-align:right}.course-roadmap-node{width:60px;height:60px;border-radius:var(--kid-radius);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;border:3px solid var(--bg);transition:transform .15s ease,box-shadow .2s ease}.course-roadmap-node--locked{background:color-mix(in srgb,var(--status-locked) 14%,var(--bg-card));border-color:color-mix(in srgb,var(--status-locked) 35%,var(--line));color:var(--status-locked);font-size:22px;cursor:default}.course-roadmap-node--active,.course-roadmap-node--available,.course-roadmap-node--complete{background:linear-gradient(145deg,color-mix(in srgb,var(--course-accent) 85%,#fff),var(--course-accent));box-shadow:0 6px 24px color-mix(in srgb,var(--course-accent) 45%,transparent);cursor:pointer}.course-roadmap-node--complete{background:linear-gradient(145deg,color-mix(in srgb,var(--status-complete) 85%,#fff),var(--status-complete));box-shadow:var(--kid-shadow);font-size:22px;font-weight:800;color:#fff}.course-roadmap-node--active{background:linear-gradient(145deg,color-mix(in srgb,var(--status-active) 85%,#fff),var(--status-active));box-shadow:var(--kid-shadow);animation:course-roadmap-pulse 2.2s ease-in-out infinite}.course-roadmap-node--active:hover,.course-roadmap-node--available:hover,.course-roadmap-node--complete:hover{transform:scale(1.06)}.course-roadmap-empty{text-align:center;padding:48px 24px;color:var(--muted);font-size:14px}.course-roadmap-empty__icon{font-size:48px;margin-bottom:12px}.course-roadmap-empty__sub{display:block;margin-top:8px;font-size:12px;opacity:.85}@keyframes course-roadmap-pulse{0%,to{box-shadow:0 4px 22px color-mix(in srgb,var(--course-accent,var(--status-active)) 55%,transparent),0 0 0 4px color-mix(in srgb,var(--course-accent,var(--status-active)) 18%,transparent)}50%{box-shadow:0 6px 32px color-mix(in srgb,var(--course-accent,var(--status-active)) 75%,transparent),0 0 0 6px color-mix(in srgb,var(--course-accent,var(--status-active)) 28%,transparent)}}@keyframes roadmap-active-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes roadmap-active-ring-pulse{0%,to{box-shadow:0 0 20px color-mix(in srgb,var(--status-active) 48%,transparent),0 0 42px color-mix(in srgb,var(--status-active) 24%,transparent),inset 0 1px 0 hsla(0,0%,100%,.12)}50%{box-shadow:0 0 30px color-mix(in srgb,var(--status-active) 62%,transparent),0 0 58px color-mix(in srgb,var(--status-active) 34%,transparent),inset 0 1px 0 hsla(0,0%,100%,.14)}}@keyframes roadmap-active-dash-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes roadmap-orb-float{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.04) translateY(-3px)}}@media (min-width:641px) and (max-width:720px){.course-roadmap-hub{width:min(300px,92vw)}.course-roadmap-hub--scatter,.course-roadmap-row__hub-zone{width:min(var(--hub-zone-width,360px),96vw)}.course-roadmap-hub-card{max-width:none}}@media (min-width:641px){.course-roadmap-hub--scatter .course-roadmap-hub__scatter{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--hub-zone-width,360px);height:var(--scatter-height,120px);margin:0;pointer-events:none;z-index:1}.course-roadmap-hub--scatter .course-roadmap-hub__connectors{overflow:visible}.course-roadmap-hub--scatter .course-roadmap-hub__satellites{position:absolute;inset:0;min-height:0}.course-roadmap-hub--scatter .course-roadmap-hub__satellite-slot{position:absolute;transform:translate(-50%,-50%)}.course-roadmap-hub__center{position:relative;z-index:4}}@media (max-width:640px){.course-roadmap-hub--scatter,.course-roadmap-row__hub-zone{flex-direction:column;width:min(280px,92vw);min-height:auto}.course-roadmap-row__hub-zone:before{display:none}.course-roadmap-hub--scatter .course-roadmap-hub__scatter{position:static;transform:none;margin:8px auto 0;width:100%;height:auto;min-height:0}.course-roadmap-hub--scatter .course-roadmap-hub__connectors{display:none}.course-roadmap-hub--scatter .course-roadmap-hub__satellites{position:static;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:4px 0 0;min-height:0}.course-roadmap-hub--scatter .course-roadmap-hub__satellite-slot{position:static;transform:none;width:100%;padding:0}.course-roadmap-hub--scatter .roadmap-satellite-node{flex-direction:row;align-items:center;gap:10px;max-width:none;width:100%;text-align:left;padding:6px 10px;border-radius:var(--kid-radius);border:1.5px solid var(--line);background:var(--bg-card)}.course-roadmap-hub--scatter .roadmap-satellite-node--locked{border-color:color-mix(in srgb,var(--status-locked) 45%,var(--line));background:color-mix(in srgb,var(--status-locked) 8%,var(--bg-card))}.course-roadmap-hub--scatter .roadmap-satellite-node--active,.course-roadmap-hub--scatter .roadmap-satellite-node--available{border-color:color-mix(in srgb,var(--status-available) 45%,var(--line));background:color-mix(in srgb,var(--status-available) 8%,var(--bg-card))}.course-roadmap-hub--scatter .roadmap-satellite-node--submitted{border-color:color-mix(in srgb,var(--status-submitted) 45%,var(--line));background:color-mix(in srgb,var(--status-submitted) 8%,var(--bg-card))}.course-roadmap-hub--scatter .roadmap-satellite-node--complete{border-color:color-mix(in srgb,var(--status-complete) 45%,var(--line));background:color-mix(in srgb,var(--status-complete) 8%,var(--bg-card))}.course-roadmap-hub--scatter .roadmap-satellite-node__label{flex:1 1;min-width:0;-webkit-line-clamp:1;text-align:left}.course-roadmap-hub--scatter .roadmap-satellite-node__workspace{text-align:left}.course-roadmap-hub--list{width:min(280px,100%)}.course-roadmap-row__spine-slot{overflow:visible;max-width:100%}}@media (prefers-reduced-motion:reduce){.course-roadmap-hub-card--active:not(.course-roadmap-hub-card--scatter),.course-roadmap-hub-card--scatter.course-roadmap-hub-card--active,.course-roadmap-hub-card__active-halo,.course-roadmap-hub-card__active-halo:after,.course-roadmap-hub__center--active,.course-roadmap-node--active,.roadmap-satellite-node--active .roadmap-satellite-node__orb,.roadmap-spine-node--active{animation:none}.course-roadmap-hub-card--active:hover,.course-roadmap-hub-card--available:hover,.course-roadmap-hub-card--complete:hover{transform:none}}.course-roadmap-hub{position:relative;display:flex;justify-content:center;align-items:center;width:min(300px,92vw);min-height:60px}.course-roadmap-hub--scatter{width:var(--hub-zone-width,360px);min-height:auto}.course-roadmap-row__hub-zone{position:relative;display:flex;justify-content:center;align-items:center;width:var(--hub-zone-width,360px);min-height:var(--scatter-height,120px);overflow:visible;isolation:isolate}.course-roadmap-row__hub-zone:before{content:"";position:absolute;inset:-12px -20px;border-radius:calc(var(--kid-radius) + 16px);background:color-mix(in srgb,var(--course-accent) 4%,transparent);border:1.5px dashed color-mix(in srgb,var(--course-accent) 28%,var(--kid-connector-stroke));box-shadow:0 0 0 1px color-mix(in srgb,var(--course-accent) 6%,transparent),inset 0 0 40px color-mix(in srgb,var(--course-accent) 3%,transparent);pointer-events:none;z-index:0}.course-roadmap-hub__center{position:relative;z-index:4;flex-shrink:0}.course-roadmap-hub-card{display:flex;align-items:flex-start;gap:12px;max-width:300px;width:100%;position:relative;z-index:2;background:color-mix(in srgb,var(--course-accent) 6%,#111827);border:1.5px solid color-mix(in srgb,var(--course-accent) 28%,var(--line));border-radius:20px;padding:22px 16px 14px;cursor:default;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;box-shadow:0 2px 16px color-mix(in srgb,var(--course-accent) 12%,transparent)}.course-roadmap-hub-card--scatter{flex-direction:column;align-items:center;justify-content:center;text-align:center;width:120px;height:120px;min-height:0;max-width:none;padding:0;gap:0;overflow:hidden;background:color-mix(in srgb,var(--course-accent) 8%,#111827);border:2.5px solid color-mix(in srgb,var(--course-accent) 65%,transparent);border-radius:50%;box-shadow:0 0 0 6px color-mix(in srgb,var(--course-accent) 14%,transparent),0 0 0 11px color-mix(in srgb,var(--course-accent) 6%,transparent),0 8px 40px color-mix(in srgb,var(--course-accent) 36%,transparent),inset 0 1px 0 hsla(0,0%,100%,.1)}.course-roadmap-hub-card__circle-fill{position:absolute;inset:0;z-index:0;border-radius:50%;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--course-accent) 55%,#fff 12%),var(--course-accent),color-mix(in srgb,var(--course-accent) 72%,var(--status-active)));-webkit-clip-path:inset(0 0 calc(100% - var(--hub-fill-pct, 0%)) 0 round 50%);clip-path:inset(0 0 calc(100% - var(--hub-fill-pct, 0%)) 0 round 50%);transition:-webkit-clip-path .55s ease;transition:clip-path .55s ease;transition:clip-path .55s ease,-webkit-clip-path .55s ease}.course-roadmap-hub-card__circle-fill--active{background:linear-gradient(180deg,color-mix(in srgb,var(--course-accent) 65%,#fff 10%),color-mix(in srgb,var(--course-accent) 88%,var(--status-active)),color-mix(in srgb,var(--status-active) 55%,var(--course-accent)));box-shadow:inset 0 -8px 20px color-mix(in srgb,var(--status-active) 22%,transparent)}.course-roadmap-hub-card__circle-fill--complete{background:linear-gradient(180deg,color-mix(in srgb,var(--status-complete) 70%,#fff 8%),var(--status-complete),color-mix(in srgb,var(--status-complete) 75%,var(--course-accent)))}@media (prefers-reduced-motion:reduce){.course-roadmap-hub-card__circle-fill{transition:none}}.course-roadmap-hub-card__circle-content{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:12px 10px;box-sizing:border-box}.course-roadmap-hub-card__spine-dot{position:absolute;left:50%;transform:translateX(-50%);width:10px;height:10px;border-radius:50%;background:var(--course-accent);box-shadow:0 0 8px 2px color-mix(in srgb,var(--course-accent) 70%,transparent);z-index:5;pointer-events:none}.course-roadmap-hub-card__spine-dot--top{top:-5px}.course-roadmap-hub-card__spine-dot--bottom{bottom:-5px}.course-roadmap-hub__center--active{animation:roadmap-active-float 2.8s ease-in-out infinite}.course-roadmap-hub__center--active:hover{animation-play-state:paused}.course-roadmap-hub__center--active .course-roadmap-hub-card__spine-dot{background:var(--status-active);box-shadow:0 0 0 2px color-mix(in srgb,var(--status-active) 38%,transparent),0 0 10px 2px color-mix(in srgb,var(--status-active) 68%,transparent)}.course-roadmap-hub__center .course-roadmap-hub-card__active-halo{position:absolute;inset:-18px;border-radius:50%;pointer-events:none;z-index:0;border:1.5px dashed color-mix(in srgb,var(--status-active) 40%,#2dd4bf 60%);box-shadow:none;background:transparent}.course-roadmap-hub__center .course-roadmap-hub-card__active-halo:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px dashed color-mix(in srgb,var(--status-active) 28%,#22d3ee 72%);opacity:.55;animation:roadmap-active-dash-spin 36s linear infinite}.course-roadmap-hub__center .course-roadmap-hub-card{position:relative;z-index:1}.course-roadmap-hub-card--scatter.course-roadmap-hub-card--active{border-width:3px;border-color:color-mix(in srgb,var(--status-active) 92%,#fff 8%);box-shadow:0 0 24px color-mix(in srgb,var(--status-active) 52%,transparent),0 0 48px color-mix(in srgb,var(--status-active) 26%,transparent),inset 0 1px 0 hsla(0,0%,100%,.12);animation:roadmap-active-ring-pulse 2.4s ease-in-out infinite}.course-roadmap-hub-card__hover-detail{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:10px 8px 12px;box-sizing:border-box;border-radius:50%;pointer-events:none;opacity:0;visibility:hidden;transform:scale(.94);background:radial-gradient(circle at 50% 50%,color-mix(in srgb,#0f172a 72%,transparent) 0,color-mix(in srgb,#0f172a 88%,transparent) 100%);transition:opacity .22s ease,visibility .22s ease,transform .22s ease}@media (hover:hover) and (pointer:fine){.course-roadmap-hub-card--scatter:focus-within .course-roadmap-hub-card__hover-detail,.course-roadmap-hub-card--scatter:hover .course-roadmap-hub-card__hover-detail{opacity:1;visibility:visible;transform:scale(1)}}.course-roadmap-hub-card--scatter .course-roadmap-hub-card__circle-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin:0}.course-roadmap-hub-card--scatter .course-roadmap-hub-card__node.roadmap-spine-node{width:36px;height:36px;font-size:16px;border-radius:50%;border-width:2px}.course-roadmap-hub-card--scatter .course-roadmap-hub-card__head{position:absolute;top:5px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:4px;z-index:3;pointer-events:none}.course-roadmap-hub-card--scatter .course-roadmap-hub-card__badge{font-size:7px;padding:1px 5px;white-space:nowrap}.course-roadmap-hub-card--scatter .course-roadmap-hub-card__title{position:relative;z-index:2;font-size:10px;font-weight:800;margin:0;line-height:1.25;color:var(--text);letter-spacing:-.01em;width:100%;max-width:100%;text-align:center;text-wrap:balance;overflow-wrap:anywhere;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.course-roadmap-hub-card--scatter .course-roadmap-hub-card__pct{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:1.1em;font-size:11px;font-weight:900;color:color-mix(in srgb,var(--course-accent) 35%,#fff 65%);line-height:1;flex-shrink:0;text-shadow:0 1px 3px rgba(0,0,0,.55)}.course-roadmap-hub-card__pct-value{position:absolute;right:50%;padding-right:1px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.course-roadmap-hub-card__pct-symbol{position:absolute;left:50%;transform:translateX(-50%)}.course-roadmap-hub-card--scatter.course-roadmap-hub-card--complete .course-roadmap-hub-card__pct{color:color-mix(in srgb,var(--status-complete) 25%,#fff 75%)}.course-roadmap-hub-card__hint--circle,.course-roadmap-hub-card__meta--circle{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:8px;margin:0;line-height:1.2;max-width:100%;text-align:center;overflow-wrap:anywhere;word-break:break-word}.course-roadmap-hub-card__lock-hint{font-size:10px;line-height:1.35;max-width:140px;color:var(--muted)}.course-roadmap-hub__set-active-pill{display:block;margin-top:8px;font-size:9px;font-weight:800;padding:3px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--course-accent) 50%,var(--line));background:color-mix(in srgb,var(--course-accent) 12%,var(--bg-card));color:var(--course-accent);cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease}.course-roadmap-hub__set-active-pill:hover:not(:disabled){background:color-mix(in srgb,var(--course-accent) 22%,var(--bg-card));border-color:var(--course-accent)}.course-roadmap-hub__set-active-pill:disabled{opacity:.65;cursor:wait}.course-roadmap-hub-card--locked{background:color-mix(in srgb,var(--status-locked) 10%,#0f172a);border-color:color-mix(in srgb,var(--status-locked) 38%,var(--line));box-shadow:0 2px 8px rgba(0,0,0,.4);cursor:default;opacity:.78}.course-roadmap-hub-card--scatter.course-roadmap-hub-card--locked{opacity:1;background:color-mix(in srgb,var(--status-locked) 12%,#0f172a);border-color:color-mix(in srgb,var(--status-locked) 45%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--status-locked) 8%,transparent),0 2px 12px rgba(0,0,0,.5)}.course-roadmap-hub-card--scatter.course-roadmap-hub-card--locked .course-roadmap-hub-card__title{color:color-mix(in srgb,var(--muted) 85%,var(--status-locked))}.course-roadmap-hub-card--active,.course-roadmap-hub-card--available,.course-roadmap-hub-card--complete,.course-roadmap-hub-card--scatter.course-roadmap-hub-card--active,.course-roadmap-hub-card--scatter.course-roadmap-hub-card--available,.course-roadmap-hub-card--scatter.course-roadmap-hub-card--complete{cursor:pointer}.course-roadmap-hub-card--active:not(.course-roadmap-hub-card--scatter){border-color:color-mix(in srgb,var(--course-accent) 65%,transparent);box-shadow:0 4px 24px color-mix(in srgb,var(--course-accent) 28%,transparent),0 0 0 4px color-mix(in srgb,var(--course-accent) 10%,transparent)}.course-roadmap-hub-card--active:not(.course-roadmap-hub-card--scatter):hover{animation-play-state:paused}.course-roadmap-hub-card--complete{border-color:color-mix(in srgb,var(--status-complete) 60%,transparent);box-shadow:0 4px 20px color-mix(in srgb,var(--status-complete) 24%,transparent),0 0 0 3px color-mix(in srgb,var(--status-complete) 10%,transparent)}.course-roadmap-hub-card--active:hover,.course-roadmap-hub-card--available:hover,.course-roadmap-hub-card--complete:hover{border-color:var(--course-accent);box-shadow:0 8px 32px color-mix(in srgb,var(--course-accent) 30%,transparent),0 0 0 4px color-mix(in srgb,var(--course-accent) 12%,transparent);transform:translateY(-3px) scale(1.01)}.course-roadmap-hub-card--scatter.course-roadmap-hub-card--available:hover,.course-roadmap-hub-card--scatter.course-roadmap-hub-card--complete:hover{border-color:color-mix(in srgb,var(--course-accent) 65%,transparent);box-shadow:0 0 0 6px color-mix(in srgb,var(--course-accent) 14%,transparent),0 0 0 11px color-mix(in srgb,var(--course-accent) 6%,transparent),0 8px 40px color-mix(in srgb,var(--course-accent) 36%,transparent),inset 0 1px 0 hsla(0,0%,100%,.1);transform:none}.course-roadmap-hub-card--scatter.course-roadmap-hub-card--active:hover{border-color:color-mix(in srgb,var(--status-active) 96%,#fff 4%);box-shadow:0 0 28px color-mix(in srgb,var(--status-active) 58%,transparent),0 0 54px color-mix(in srgb,var(--status-active) 30%,transparent),inset 0 1px 0 hsla(0,0%,100%,.14);transform:none;animation-play-state:paused}.course-roadmap-hub-card--active:not(.course-roadmap-hub-card--scatter):hover{border-color:var(--course-accent);box-shadow:0 8px 32px color-mix(in srgb,var(--course-accent) 35%,transparent),0 0 0 4px color-mix(in srgb,var(--course-accent) 14%,transparent)}.course-roadmap-hub-card--complete:hover{border-color:var(--status-complete);box-shadow:0 8px 32px color-mix(in srgb,var(--status-complete) 30%,transparent),0 0 0 4px color-mix(in srgb,var(--status-complete) 14%,transparent)}.course-roadmap-hub-card--active:focus-visible,.course-roadmap-hub-card--available:focus-visible,.course-roadmap-hub-card--complete:focus-visible{outline:2px solid var(--status-active);outline-offset:3px}.course-roadmap-hub-card__icon{flex-shrink:0}.course-roadmap-hub-card__node.roadmap-spine-node{width:52px;height:52px;font-size:22px;border-width:2px}.course-roadmap-hub-card__body{flex:1 1;min-width:0}.course-roadmap-hub-card__head{position:absolute;top:8px;right:10px;display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:0;min-height:0;z-index:2;pointer-events:none}.course-roadmap-hub-card__badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px}.course-roadmap-hub-card__badge--active{background:color-mix(in srgb,var(--status-active) 18%,transparent);color:var(--status-active)}.course-roadmap-hub-card__badge--done{background:color-mix(in srgb,var(--status-complete) 15%,transparent);color:var(--status-complete)}.course-roadmap-hub-card__badge--locked{background:color-mix(in srgb,var(--status-locked) 12%,transparent);color:var(--status-locked)}.course-roadmap-hub-card__indicator{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.course-roadmap-hub-card--scatter .course-roadmap-hub-card__indicator--locked{font-size:11px;opacity:.95;filter:drop-shadow(0 1px 3px rgba(0,0,0,.45))}.course-roadmap-hub-card__indicator--locked{font-size:11px;line-height:1;opacity:.92}.course-roadmap-hub-card--scatter .course-roadmap-hub-card__indicator--locked{font-size:10px}.course-roadmap-hub-card__title{font-size:15px;font-weight:800;color:var(--text);margin:0 0 6px;line-height:1.3}.course-roadmap-hub-card--locked .course-roadmap-hub-card__title{color:var(--muted)}.course-roadmap-hub-card__hint,.course-roadmap-hub-card__meta{font-size:12px;color:var(--muted);margin:0 0 8px;line-height:1.4}.course-roadmap-hub-card:not(.course-roadmap-hub-card--scatter) .course-roadmap-hub-card__progress{margin-bottom:8px}.course-roadmap-hub-card__bar{height:8px;background:color-mix(in srgb,var(--status-active) 10%,var(--line));border-radius:999px;overflow:hidden;margin-bottom:0;box-shadow:inset 0 1px 2px color-mix(in srgb,var(--text) 6%,transparent)}.course-roadmap-hub-card__progress{display:flex;align-items:center;gap:8px;width:100%;margin-bottom:4px}.course-roadmap-hub-card__progress .course-roadmap-hub-card__bar{flex:1 1;min-width:0}.course-roadmap-hub-card--scatter .course-roadmap-hub-card__progress{gap:6px;margin-bottom:2px}.course-roadmap-hub-card--scatter .course-roadmap-hub-card__bar{height:6px}.course-roadmap-hub-card__bar-fill{height:100%;background:linear-gradient(90deg,var(--course-accent),color-mix(in srgb,var(--status-active) 70%,var(--course-accent)));border-radius:999px;transition:width .5s ease;min-width:4px}.course-roadmap-hub-card--complete .course-roadmap-hub-card__bar-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--status-complete) 80%,var(--course-accent)),var(--status-complete))}.course-roadmap-hub-card--locked .course-roadmap-hub-card__bar{background:color-mix(in srgb,var(--status-locked) 12%,var(--line))}.course-roadmap-hub-card__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;width:100%}.course-roadmap-hub-card__pct{font-size:13px;font-weight:800;color:var(--course-accent);flex-shrink:0;line-height:1}.course-roadmap-hub-card__actions{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.course-roadmap-hub-card__set-active{font-size:10px;font-weight:800;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--course-accent) 45%,var(--line));background:color-mix(in srgb,var(--course-accent) 10%,var(--bg-card));color:var(--course-accent);cursor:pointer;transition:background .15s ease,border-color .15s ease}.course-roadmap-hub-card__set-active:hover:not(:disabled){background:color-mix(in srgb,var(--course-accent) 18%,var(--bg-card));border-color:var(--course-accent)}.course-roadmap-hub-card__set-active:disabled{opacity:.65;cursor:wait}.course-roadmap-hub-card__cta{font-size:11px;font-weight:600;color:var(--muted)}.course-roadmap-hub-card__open{background:none;border:none;padding:0;font:inherit;cursor:pointer;text-align:right}.course-roadmap-hub__add-project{position:absolute;right:-6px;bottom:-6px;z-index:3;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:999px;border:1px solid var(--course-accent,var(--line));background:var(--card,#fff);color:var(--course-accent,var(--text));font-size:16px;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(15,23,42,.12)}.course-roadmap-hub__add-project:hover{filter:brightness(1.05)}.course-roadmap-hub__remove-course{position:absolute;left:-6px;top:-6px;z-index:3;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:999px;border:1px solid var(--line);background:var(--card,#fff);color:var(--danger,#dc2626);font-size:16px;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(15,23,42,.12)}.course-roadmap-hub__remove-course:hover{filter:brightness(1.05)}.course-roadmap__add-course{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:999px;border:1px solid var(--accent,#6366f1);background:var(--card,#fff);color:var(--accent,#6366f1);font-size:16px;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(15,23,42,.12)}.course-roadmap__add-course:hover{filter:brightness(1.05)}.course-roadmap__add-course--empty{position:static;transform:none;width:32px;height:32px;font-size:20px;margin-top:8px}.course-roadmap-empty--editable{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 16px}.course-roadmap--editable-courses .course-roadmap__drop-slot--addable{height:24px;margin:-6px 0;pointer-events:auto}.course-roadmap-hub__satellite-slot--draggable{cursor:-webkit-grab;cursor:grab}.course-roadmap-hub__satellite-actions{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:2px}.course-roadmap-hub__satellite-drag{font-size:10px;opacity:.45;-webkit-user-select:none;-moz-user-select:none;user-select:none}.course-roadmap-hub__satellite-delete{width:20px;height:20px;padding:0;border:1px solid var(--line);border-radius:6px;background:var(--card,#fff);color:var(--danger,#dc2626);font-size:14px;line-height:1;cursor:pointer}.course-roadmap-hub-card--draggable{cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:element}.course-roadmap-hub-card--draggable:hover{transform:translateY(-2px);box-shadow:0 0 0 6px color-mix(in srgb,var(--course-accent) 14%,transparent),0 0 0 11px color-mix(in srgb,var(--course-accent) 6%,transparent),0 12px 44px color-mix(in srgb,var(--course-accent) 42%,transparent),inset 0 1px 0 hsla(0,0%,100%,.1)}.course-roadmap-hub-card--draggable:active,.course-roadmap-hub-card--dragging{cursor:-webkit-grabbing;cursor:grabbing}.course-roadmap-hub-card--draggable .course-roadmap-hub-card__circle-icon,.course-roadmap-hub-card--draggable .roadmap-spine-node{pointer-events:none}.course-roadmap-row--dragging{opacity:.5;transform:scale(.97);filter:saturate(.85);transition:opacity .15s ease,transform .15s ease,filter .15s ease}html.course-roadmap-dnd-active .course-roadmap-row:not(.course-roadmap-row--dragging){pointer-events:none}html.course-roadmap-dnd-active .course-roadmap__drop-slot{height:28px;margin:-14px 0;pointer-events:auto;z-index:20}.course-roadmap__drop-slot{position:relative;height:0;margin:0;z-index:4;pointer-events:none}.course-roadmap__drop-slot--visible{height:16px;margin:-8px 0;pointer-events:auto}.course-roadmap--reordering .course-roadmap__drop-slot--visible{height:24px;margin:-12px 0}.course-roadmap__drop-indicator{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scaleX(.35);width:min(300px,78%);height:3px;border-radius:999px;background:color-mix(in srgb,var(--accent,#6366f1) 18%,transparent);opacity:.55;transition:background .18s ease,box-shadow .18s ease,transform .18s ease,opacity .18s ease,height .18s ease}.course-roadmap--reordering .course-roadmap__drop-indicator{opacity:.85;transform:translate(-50%,-50%) scaleX(.55)}.course-roadmap__drop-slot--active .course-roadmap__drop-indicator{height:4px;opacity:1;transform:translate(-50%,-50%) scaleX(1);background:var(--accent,#6366f1);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#6366f1) 22%,transparent),0 0 14px color-mix(in srgb,var(--accent,#6366f1) 45%,transparent)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.course-roadmap-hub__scatter{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--hub-zone-width,360px);height:var(--scatter-height,120px);pointer-events:none;z-index:1}.course-roadmap-hub__connectors{position:absolute;inset:0;overflow:visible;pointer-events:none;z-index:0}.course-roadmap-hub__connectors path{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--course-accent) 60%,transparent))}.course-roadmap-hub__satellites{position:absolute;inset:0;pointer-events:none}.course-roadmap-hub__satellite-slot{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;padding:4px}.course-roadmap-hub--list{flex-direction:column;align-items:center;width:min(280px,92vw);min-height:var(--scatter-height,200px)}.course-roadmap-hub--list .course-roadmap-hub__center{margin-bottom:8px}.course-roadmap-hub__project-list{display:flex;flex-direction:column;gap:6px;width:100%;padding:0 4px 4px}.course-roadmap-hub__project-row{width:100%}.course-roadmap-projects{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--kid-connector-stroke)}.roadmap-spine-node{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;border:3px solid hsla(0,0%,100%,.12);transition:transform .18s ease,box-shadow .2s ease}.roadmap-spine-node__icon{line-height:1}.roadmap-spine-node--locked{background:color-mix(in srgb,var(--status-locked) 20%,#0f172a);border-color:color-mix(in srgb,var(--status-locked) 40%,transparent);color:var(--status-locked);font-size:22px;cursor:default;opacity:.8}.roadmap-spine-node--active,.roadmap-spine-node--available,.roadmap-spine-node--complete{cursor:pointer}.roadmap-spine-node--available{background:linear-gradient(135deg,color-mix(in srgb,var(--course-accent,var(--brand)) 70%,#fff),var(--course-accent,var(--brand)));box-shadow:0 4px 18px color-mix(in srgb,var(--course-accent,var(--brand)) 50%,transparent),0 0 0 3px color-mix(in srgb,var(--course-accent,var(--brand)) 18%,transparent)}.roadmap-spine-node--active{background:linear-gradient(135deg,color-mix(in srgb,var(--course-accent,var(--status-active)) 70%,#fff),var(--course-accent,var(--status-active)));box-shadow:0 4px 22px color-mix(in srgb,var(--course-accent,var(--status-active)) 60%,transparent),0 0 0 4px color-mix(in srgb,var(--course-accent,var(--status-active)) 22%,transparent);animation:course-roadmap-pulse 2.2s ease-in-out infinite}.roadmap-spine-node--complete{background:linear-gradient(135deg,color-mix(in srgb,var(--status-complete) 70%,#fff),var(--status-complete));box-shadow:0 4px 18px color-mix(in srgb,var(--status-complete) 55%,transparent),0 0 0 3px color-mix(in srgb,var(--status-complete) 22%,transparent);font-size:22px;font-weight:800;color:#fff}.roadmap-spine-node--active:hover,.roadmap-spine-node--available:hover,.roadmap-spine-node--complete:hover{transform:scale(1.1)}.roadmap-satellite-node{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;max-width:96px}.roadmap-satellite-node--inline{flex-direction:row;align-items:center;gap:10px;max-width:none;width:100%;text-align:left;padding:6px 10px;border-radius:var(--kid-radius);border:1.5px solid var(--line);background:var(--bg-card);transition:border-color .2s ease,box-shadow .2s ease}.roadmap-satellite-node--inline.roadmap-satellite-node--active:hover,.roadmap-satellite-node--inline.roadmap-satellite-node--available:hover,.roadmap-satellite-node--inline.roadmap-satellite-node--complete:hover,.roadmap-satellite-node--inline.roadmap-satellite-node--submitted:hover{border-color:color-mix(in srgb,var(--status-active) 45%,var(--line));box-shadow:var(--kid-shadow)}.roadmap-satellite-node--inline .roadmap-satellite-node__orb{flex-shrink:0}.roadmap-satellite-node--inline .roadmap-satellite-node__label{flex:1 1;min-width:0;-webkit-line-clamp:1;text-align:left}.roadmap-satellite-node__orb{isolation:isolate;width:var(--orb-size,52px);height:var(--orb-size,52px);font-size:calc(var(--orb-size, 52px) * .42);border-radius:50%;display:flex;align-items:center;justify-content:center;border:2.5px solid var(--bg);box-shadow:var(--kid-shadow);transition:transform .18s ease,border-color .2s ease,box-shadow .2s ease,width .25s ease,height .25s ease}.roadmap-satellite-node__orb:focus-visible{outline:2px solid var(--status-active);outline-offset:3px}.roadmap-satellite-node__label{margin:0;font-size:10.5px;font-weight:700;line-height:1.25;color:var(--text);max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-shadow:0 1px 4px rgba(0,0,0,.5)}.roadmap-satellite-node__caption{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:100%}.roadmap-satellite-node--inline .roadmap-satellite-node__caption{flex:1 1}.roadmap-satellite-node__workspace{margin:0;font-size:8px;font-weight:600;line-height:1.2;color:var(--muted);opacity:.82;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.roadmap-satellite-node__points{position:absolute;top:0;right:0;transform:translate(40%,-40%);z-index:2;font-size:8px;font-weight:800;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--warning) 25%,#111827);color:var(--warning);border:1.5px solid color-mix(in srgb,var(--warning) 55%,transparent);white-space:nowrap;pointer-events:none;line-height:1.2;box-shadow:0 1px 6px color-mix(in srgb,var(--warning) 35%,transparent),0 0 10px color-mix(in srgb,var(--warning) 20%,transparent)}.roadmap-satellite-node__points--earned{color:#6ee7b7;background:color-mix(in srgb,#10b981 22%,#111827);border-color:color-mix(in srgb,#10b981 55%,transparent);box-shadow:0 1px 6px color-mix(in srgb,#10b981 35%,transparent),0 0 10px color-mix(in srgb,#10b981 20%,transparent)}.roadmap-satellite-node--locked .roadmap-satellite-node__orb{background:color-mix(in srgb,var(--status-locked) 18%,#0f172a);border-color:color-mix(in srgb,var(--status-locked) 40%,transparent);color:var(--status-locked);box-shadow:none;cursor:default;opacity:.75}.roadmap-satellite-node--available .roadmap-satellite-node__orb{background:linear-gradient(145deg,color-mix(in srgb,var(--status-available) 80%,#fff),var(--status-available));box-shadow:0 4px 16px color-mix(in srgb,var(--status-available) 40%,transparent),0 0 0 3px color-mix(in srgb,var(--status-available) 16%,transparent);cursor:pointer}.roadmap-satellite-node--submitted .roadmap-satellite-node__orb{background:linear-gradient(145deg,color-mix(in srgb,var(--status-submitted) 80%,#fff),var(--status-submitted));box-shadow:0 4px 16px color-mix(in srgb,var(--status-submitted) 40%,transparent),0 0 0 3px color-mix(in srgb,var(--status-submitted) 16%,transparent);cursor:pointer}.roadmap-satellite-node--active .roadmap-satellite-node__orb{background:linear-gradient(145deg,color-mix(in srgb,var(--status-active) 85%,#fff),var(--status-active));box-shadow:0 4px 20px color-mix(in srgb,var(--status-active) 55%,transparent),0 0 0 4px color-mix(in srgb,var(--status-active) 22%,transparent);animation:course-roadmap-pulse 2.2s ease-in-out infinite;cursor:pointer}.roadmap-satellite-node--complete .roadmap-satellite-node__orb{background:linear-gradient(145deg,color-mix(in srgb,var(--status-complete) 80%,#fff),var(--status-complete));box-shadow:0 4px 16px color-mix(in srgb,var(--status-complete) 50%,transparent),0 0 0 3px color-mix(in srgb,var(--status-complete) 20%,transparent);color:#fff;cursor:pointer}.roadmap-satellite-node--active:hover .roadmap-satellite-node__orb,.roadmap-satellite-node--available:hover .roadmap-satellite-node__orb,.roadmap-satellite-node--complete:hover .roadmap-satellite-node__orb,.roadmap-satellite-node--submitted:hover .roadmap-satellite-node__orb{transform:scale(1.12)}.roadmap-satellite-node--locked .roadmap-satellite-node__label{color:var(--status-locked)}@media (min-width:721px){.course-roadmap-hub--scatter .course-roadmap-hub__scatter{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--hub-zone-width,360px);height:var(--scatter-height,120px);pointer-events:none;z-index:1}.course-roadmap-hub--scatter .course-roadmap-hub__satellite-slot{position:absolute;transform:translate(-50%,-50%)}.course-roadmap-hub__center{z-index:3}.course-roadmap-hub--scatter .roadmap-satellite-node{max-width:96px;gap:5px}.course-roadmap-hub--scatter .roadmap-satellite-node__label{font-size:10px;line-height:1.2;-webkit-line-clamp:2}.course-roadmap-hub--scatter .roadmap-satellite-node__workspace{font-size:8px;-webkit-line-clamp:1}.course-roadmap-hub--scatter .roadmap-satellite-node__caption{gap:1px}}.course-roadmap-hub__add-project:focus-visible{outline:2px solid var(--status-active);outline-offset:2px}.course-roadmap-hub__remove-course:focus-visible,.course-roadmap__add-course:focus-visible{outline:2px solid var(--status-active);outline-offset:2px}@media (prefers-reduced-motion:reduce){.course-roadmap-card__badge--celebrate,.roadmap-satellite-node--active .roadmap-satellite-node__orb,.roadmap-satellite-node__orb--celebrating,.roadmap-satellite-node__orb--unlocking,.roadmap-spine-node--active,.roadmap-spine-node--celebrating,.roadmap-spine-node--unlocking{animation:none}.condensed-roadmap-teaser__fill,.course-roadmap__spine-fill{transition:none}.roadmap-confetti{display:none}.roadmap-satellite-node--active:hover .roadmap-satellite-node__orb,.roadmap-satellite-node--available:hover .roadmap-satellite-node__orb,.roadmap-satellite-node--complete:hover .roadmap-satellite-node__orb,.roadmap-satellite-node--submitted:hover .roadmap-satellite-node__orb,.roadmap-spine-node--active:hover,.roadmap-spine-node--available:hover,.roadmap-spine-node--complete:hover{transform:none}}.roadmap-satellite-node__orb,.roadmap-spine-node{position:relative}.roadmap-satellite-node__orb--unlocking,.roadmap-spine-node--unlocking{animation:roadmap-unlock-pulse 1.35s ease-out}@keyframes roadmap-unlock-pulse{0%{background:color-mix(in srgb,var(--status-locked) 14%,var(--bg-card));box-shadow:none;transform:scale(1)}35%{background:linear-gradient(145deg,color-mix(in srgb,var(--status-active) 75%,#fff),var(--status-active));box-shadow:var(--kid-shadow);transform:scale(1.12)}to{transform:scale(1)}}.course-roadmap-card__badge--celebrate{animation:roadmap-checkmark-pulse .65s ease-out}@keyframes roadmap-checkmark-pulse{0%,to{transform:scale(1)}45%{transform:scale(1.12)}}.roadmap-confetti{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:2}.roadmap-confetti__piece{position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:1px;opacity:0;animation:roadmap-confetti-burst 1.4s ease-out forwards}.roadmap-confetti__piece--0{background:var(--status-complete);--confetti-angle:0deg;animation-delay:0ms}.roadmap-confetti__piece--1{background:var(--status-active);--confetti-angle:60deg;animation-delay:40ms}.roadmap-confetti__piece--2{background:#f59e0b;--confetti-angle:120deg;animation-delay:80ms}.roadmap-confetti__piece--3{background:#ec4899;--confetti-angle:180deg;animation-delay:20ms}.roadmap-confetti__piece--4{background:#8b5cf6;--confetti-angle:240deg;animation-delay:60ms}.roadmap-confetti__piece--5{background:#06b6d4;--confetti-angle:300deg;animation-delay:.1s}@keyframes roadmap-confetti-burst{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--confetti-angle)) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--confetti-angle)) translateY(-28px) scale(.4)}}.condensed-roadmap-teaser{padding:16px 18px;border-radius:var(--kid-radius);border:1px solid color-mix(in srgb,var(--status-active) 22%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--status-active) 6%,var(--bg-card)),color-mix(in srgb,var(--status-complete) 4%,var(--bg-card)));box-shadow:var(--kid-shadow)}.condensed-roadmap-teaser__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.condensed-roadmap-teaser__title{font-size:15px;font-weight:900;color:var(--text);margin:0;line-height:1.3}.condensed-roadmap-teaser__hint{font-size:11px;color:var(--muted);margin:4px 0 0;line-height:1.4}.condensed-roadmap-teaser__link{font-size:12px;font-weight:700;color:var(--status-active);text-decoration:none;white-space:nowrap;align-self:center}.condensed-roadmap-teaser__link:hover{text-decoration:underline}.condensed-roadmap-teaser__spine{position:relative;display:flex;align-items:stretch;gap:12px;min-height:52px;padding:4px 0}.condensed-roadmap-teaser__track{position:absolute;left:19px;top:8px;bottom:8px;width:4px;border-radius:4px;background:var(--kid-connector-stroke)}.condensed-roadmap-teaser__fill{position:absolute;left:19px;top:8px;width:4px;border-radius:4px;background:var(--kid-gradient-accent);box-shadow:var(--kid-shadow);transition:height .6s ease}.condensed-roadmap-teaser__nodes{list-style:none;margin:0;padding:0 0 0 44px;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}.condensed-roadmap-teaser__node-item{margin:0}.condensed-roadmap-teaser__node.roadmap-spine-node{width:40px;height:40px;font-size:18px;border-width:2px}.condensed-roadmap-teaser__node.roadmap-spine-node--complete{font-size:16px}.session-kind-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.02em;line-height:1.3;white-space:nowrap;box-shadow:var(--kid-shadow);border:1px solid transparent}.session-kind-badge__icon{font-size:11px;line-height:1}.session-kind-badge--regular{background:color-mix(in srgb,var(--brand) 14%,var(--bg-card));color:var(--brand-2);border-color:color-mix(in srgb,var(--brand) 28%,transparent)}.session-kind-badge--side_quest{background:color-mix(in srgb,var(--warning) 16%,var(--bg-card));color:var(--warning);border-color:color-mix(in srgb,var(--warning) 30%,transparent)}.session-kind-badge--exam{background:color-mix(in srgb,var(--exam) 16%,var(--bg-card));color:var(--exam);border-color:color-mix(in srgb,var(--exam) 30%,transparent)}.session-kind-badge--capstone{background:color-mix(in srgb,var(--status-complete) 14%,var(--bg-card));color:var(--status-complete);border-color:color-mix(in srgb,var(--status-complete) 28%,transparent)}.session-kind-badge--compact{padding:1px 6px;font-size:9px;box-shadow:none}.session-kind-badge--compact .session-kind-badge__icon{font-size:10px}.course-project-card{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--bg);transition:border-color .15s,transform .15s}.course-project-card--compact{padding:8px 10px}.course-project-card--available:hover,.course-project-card--complete:hover{border-color:#f59e0b;transform:translateY(-1px)}.course-project-card--locked{opacity:.72;cursor:default}.course-project-card__head{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px}.course-project-card__kind-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#b45309}.course-project-card__badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:999px}.course-project-card__badge--mandatory{background:rgba(245,158,11,.15);color:#b45309}.course-project-card__badge--optional{background:var(--line);color:var(--muted)}.course-project-card__badge--done{background:rgba(16,185,129,.15);color:#059669}.course-project-card__badge--locked{background:var(--line);color:var(--muted)}.course-project-card__title{margin:0;font-size:13px;font-weight:700;color:var(--text)}.course-project-card__points{margin:4px 0 0;font-size:11px;color:var(--muted)}.course-project-card__cta{display:inline-block;margin-top:6px;font-size:11px;font-weight:600;color:#b45309}.course-detail-projects{margin-bottom:18px}.course-detail-projects__head{margin-bottom:10px}.course-detail-projects__title{margin:0 0 4px;font-size:15px;font-weight:800}.course-detail-projects__subtitle{margin:0;font-size:12px;color:var(--muted)}.course-detail-projects__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:10px;gap:10px}.milestone-assessment-panel{margin-top:28px;padding-top:24px;border-top:2px dashed rgba(99,102,241,.35);background:linear-gradient(180deg,rgba(99,102,241,.04),transparent);border-radius:0 0 14px 14px}.milestone-assessment-panel__head{margin-bottom:14px}.milestone-assessment-panel__title{margin:0 0 6px;font-size:17px;font-weight:800;color:var(--text)}.milestone-assessment-panel__subtitle{margin:0;font-size:13px;color:var(--muted);line-height:1.45}.milestone-assessment-panel__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:10px;gap:10px;margin-bottom:16px}.milestone-assessment-panel__workspace{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--bg-card)}.milestone-assessment-panel__workspace-label{margin:0;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.lesson-exercise-tiers__studio,.lesson-online-slot-workspace{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.course-project-shell__header{margin-bottom:16px}.course-project-shell__header-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.course-project-shell__back{font-size:12px;color:var(--muted);text-decoration:none}.course-project-shell__badges{display:flex;flex-wrap:wrap;gap:6px}.course-project-shell__complete-badge,.course-project-shell__kind-badge,.course-project-shell__mandatory-badge,.course-project-shell__optional-badge{font-size:10px;font-weight:700;padding:3px 8px;border-radius:999px}.course-project-shell__kind-badge{background:rgba(245,158,11,.12);color:#b45309}.course-project-shell__mandatory-badge{background:rgba(245,158,11,.18);color:#b45309}.course-project-shell__optional-badge{background:var(--line);color:var(--muted)}.course-project-shell__complete-badge{background:rgba(16,185,129,.15);color:#059669}.course-project-shell__title{margin:0;font-size:22px;font-weight:800}.course-project-shell__points{margin:6px 0 0;font-size:13px;color:var(--muted)}.course-project-shell__section{margin-bottom:14px;padding:16px 18px}.course-project-shell__section-title{margin:0 0 10px;font-size:14px;font-weight:800}.course-project-shell__workspace-hint{margin:0 0 12px;font-size:12px;color:var(--muted)}.course-project-shell__workspace-empty{margin:0;font-size:12px;color:var(--muted)}.course-project-shell--locked{text-align:center;padding:48px 24px}.course-project-shell__locked-icon{font-size:48px;margin-bottom:12px}.course-project-shell__locked-hint{color:var(--muted);margin:0 0 16px}.course-project-page__error{text-align:center;padding:40px 24px}.prose-content{font-size:13px;line-height:1.85;color:var(--text);word-break:break-word}.prose-content h1,.prose-content h2,.prose-content h3,.prose-content h4,.prose-content h5,.prose-content h6{font-weight:700;color:var(--text);margin:1.1em 0 .45em;line-height:1.3}.prose-content h3{font-size:15px}.prose-content h4{font-size:13px}.prose-content p{margin:.55em 0}.prose-content ol,.prose-content ul{padding-left:20px;margin:.55em 0}.prose-content li{margin:.25em 0}.prose-content b,.prose-content strong{font-weight:700}.prose-content em,.prose-content i{font-style:italic}.prose-content blockquote{border-left:3px solid var(--brand);padding-left:12px;color:var(--muted);margin:.75em 0}.prose-content hr{border:none;border-top:1px solid var(--line);margin:1em 0}.prose-content a{color:var(--brand-2);text-decoration:underline}.prose-content code:not(pre code){background:rgba(99,102,241,.14);color:#a5b4fc;padding:1px 5px;border-radius:4px;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:12px}.prose-content pre{background:#0d1117;border:1px solid hsla(0,0%,100%,.08);border-radius:8px;padding:14px 16px;overflow-x:auto;margin:.75em 0;position:relative}.prose-content pre code{font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:12px;line-height:1.7;background:none;color:#e6edf3;padding:0;border-radius:0}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6a9955}.token.punctuation{color:#cfd7e0}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#79c0ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a5d6ff}.language-css .token.string,.style .token.string,.token.atrule,.token.attr-value,.token.entity,.token.keyword,.token.operator,.token.url{color:#ff7b72}.token.class-name,.token.function{color:#d2a8ff}.token.important,.token.regex,.token.variable{color:#ffa657}.token.string{color:#a5d6ff}[data-theme=light] .prose-content pre{background:#f6f8fa;border-color:rgba(0,0,0,.1)}[data-theme=light] .prose-content pre code{color:#24292e}[data-theme=light] .prose-content code:not(pre code){background:rgba(99,102,241,.1);color:#4f46e5}.hw-track{--hw-accent:#818cf8;--hw-accent-2:#6366f1;--hw-glow:rgba(99,102,241,.22);--hw-card-edge:rgba(129,140,248,.45);--hw-hero-bg:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(99,102,241,.18),transparent 55%)}.hw-track[data-hw-track=scratch]{--hw-accent:#fb923c;--hw-accent-2:#f97316;--hw-glow:rgba(251,146,60,.28);--hw-card-edge:rgba(251,146,60,.45);--hw-hero-bg:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(251,146,60,.2),transparent 55%)}.hw-track[data-hw-track=python]{--hw-accent:#5eead4;--hw-accent-2:#14b8a6;--hw-glow:rgba(45,212,191,.25);--hw-card-edge:rgba(45,212,191,.45);--hw-hero-bg:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(45,212,191,.18),transparent 55%)}.hw-track[data-hw-track=mixed]{--hw-accent:#a78bfa;--hw-accent-2:#8b5cf6;--hw-glow:rgba(167,139,250,.28);--hw-card-edge:rgba(167,139,250,.45);--hw-hero-bg:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(139,92,246,.2),transparent 55%)}.hw-quest-card{border-radius:var(--radius-xl);background:linear-gradient(165deg,var(--bg-card),hsla(0,0%,100%,.04));border:1px solid var(--hw-card-edge);box-shadow:var(--shadow-card),0 0 0 1px hsla(0,0%,100%,.04) inset;transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base)}.hw-quest-card--locked{opacity:.9;border-color:var(--line);box-shadow:none}.hw-quest-card--done{border-color:rgba(16,185,129,.45);box-shadow:0 12px 40px rgba(16,185,129,.12),inset 0 0 0 1px rgba(16,185,129,.2)}.hw-quest-card--waiting{border-color:rgba(245,158,11,.45);box-shadow:0 12px 36px rgba(245,158,11,.12)}.hw-status-pill{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid transparent;line-height:1.2}.hw-status-pill--locked{color:var(--muted);background:hsla(0,0%,100%,.04);border-color:var(--line)}.hw-status-pill--your_turn{color:#eef2ff;background:linear-gradient(135deg,rgba(99,102,241,.35),rgba(99,102,241,.12));border-color:rgba(129,140,248,.55)}.hw-status-pill--waiting{color:#fffbeb;background:linear-gradient(135deg,rgba(245,158,11,.35),rgba(245,158,11,.1));border-color:rgba(245,158,11,.5)}.hw-status-pill--done{color:#ecfdf5;background:linear-gradient(135deg,rgba(16,185,129,.35),rgba(16,185,129,.1));border-color:rgba(16,185,129,.5)}.hw-status-pill--missed{color:#fef2f2;background:linear-gradient(135deg,hsla(0,91%,71%,.25),rgba(239,68,68,.08));border-color:hsla(0,91%,71%,.45)}.hw-status-pill--session{color:#e0e7ff;background:rgba(99,102,241,.15);border-color:rgba(99,102,241,.35)}.hw-badge{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:4px 10px;border-radius:8px;border:1px solid transparent;line-height:1.2;white-space:nowrap}html[lang=hy] .hw-badge,html[lang=ru] .hw-badge{text-transform:none;letter-spacing:normal}html[lang=hy] .hw-badge{font-size:11px}html[lang=hy] .hw-badge--compact{font-size:10px}.hw-badge--compact{font-size:9px;padding:3px 7px}.hw-badge--matrix{width:100%;min-height:32px;border-radius:8px;font-size:9px}.hw-badge-label{line-height:1.2}.hw-badge-note-icon{flex-shrink:0;opacity:.95}.hw-badge--completed{color:#ecfdf5;background:#059669;border-color:#047857;box-shadow:0 1px 0 rgba(0,0,0,.15)}.hw-badge--submitted{color:#eff6ff;background:#2563eb;border-color:#1d4ed8;animation:hw-badge-pulse-blue 2s ease-in-out infinite}@keyframes hw-badge-pulse-blue{0%,to{box-shadow:0 0 0 0 rgba(37,99,235,.55);background:#2563eb}50%{box-shadow:0 0 0 6px rgba(37,99,235,0);background:#3b82f6}}.hw-badge--needs_changes{color:#fff7ed;background:linear-gradient(135deg,#ea580c,#dc2626);border-color:#c2410c;box-shadow:0 2px 8px rgba(234,88,12,.35)}.hw-badge--missed{color:#fecaca;background:#57534e;border-color:#78716c;opacity:.92}.hw-badge--upcoming{color:#c7d2fe;background:transparent;border:1px dashed rgba(129,140,248,.65)}.hw-badge--locked{color:var(--muted);background:hsla(0,0%,100%,.04);border:1px dashed var(--line)}.hw-badge--session{color:#e0e7ff;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.35)}.hw-due{font-size:inherit;font-weight:600}.hw-due--normal{color:var(--text-secondary)}.hw-due--due_before_next_session{color:#fbbf24;font-weight:700}.hw-due--missed,.hw-due--overdue{color:#f87171;font-weight:700}.hw-difficulty{display:inline-flex;align-items:center;gap:4px;vertical-align:middle}.hw-difficulty-bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px}.hw-difficulty-bar{width:4px;height:6px;border-radius:2px;background:hsla(0,0%,100%,.08);border:1px solid var(--line);transition:height .15s ease,background .15s ease}.hw-difficulty-bar--filled{height:14px}.hw-difficulty-flame{font-size:10px;opacity:.25;line-height:1}.hw-difficulty-flame--lit{opacity:1}.hw-difficulty-tier-num{font-size:10px;font-weight:800;min-width:1ch}.hw-cta-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;font-size:13px;font-weight:800;padding:11px 20px;border-radius:var(--radius-md);border:none;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--hw-accent-2),var(--hw-accent));box-shadow:0 6px 20px var(--hw-glow);transition:transform var(--transition-fast),filter var(--transition-fast),opacity var(--transition-fast),box-shadow var(--transition-fast);white-space:nowrap}.hw-cta-primary:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.hw-cta-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.hw-link-quiet{font-size:12px;font-weight:600;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.hw-link-quiet:hover{color:var(--text-secondary)}.hw-code-wrap{position:relative;border-radius:var(--radius-md);border:1px solid var(--line);background:rgba(0,0,0,.35);overflow:hidden}[data-theme=light] .hw-code-wrap{background:#f8fafc}.hw-code-textarea{width:100%;min-height:132px;font-size:12px;line-height:1.55;font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;padding:12px 12px 12px 42px;border:none;background:transparent;color:var(--text);resize:vertical}.hw-code-gutter{position:absolute;left:0;top:0;bottom:0;width:32px;padding:12px 6px;font-size:10px;line-height:1.55;color:var(--muted);text-align:right;background:rgba(0,0,0,.25);border-right:1px solid var(--line);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;font-family:ui-monospace,monospace}.hw-empty-quest{text-align:center;padding:48px 28px;border-radius:var(--radius-xl);border:1px dashed var(--line);background:linear-gradient(180deg,hsla(0,0%,100%,.04),transparent)}.hw-empty-quest-icon{font-size:42px;line-height:1;margin-bottom:12px;filter:drop-shadow(0 8px 24px var(--hw-glow))}.hw-roadmap-inner{position:relative;max-width:min(640px,100%);margin:0 auto;padding:8px 0 48px}.hw-hero{text-align:center;margin-bottom:28px;position:relative;padding:22px 18px 20px;border-radius:var(--radius-xl);background:var(--hw-hero-bg);border:1px solid var(--line)}.hw-hero-ring{width:96px;height:96px;margin:0 auto 14px;filter:drop-shadow(0 10px 28px var(--hw-glow))}.hw-hero-ring svg{display:block;width:100%;height:100%;transform:rotate(-90deg)}.hw-hero-ring-track{fill:none;stroke:var(--line);stroke-width:8}.hw-hero-ring-fill{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.22,1,.36,1)}.hw-connector-glow{filter:drop-shadow(0 0 10px var(--hw-glow))}.hw-board-modal-overlay{position:fixed;inset:0;z-index:var(--modal-z);background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;animation:hwFadeIn .2s ease;touch-action:none}.hw-board-modal{width:min(520px,100%);max-height:min(90vh,720px);display:flex;flex-direction:column;overflow:hidden;background:var(--chrome-bg);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:0 24px 64px rgba(0,0,0,.45);padding:0}.hw-board-modal__scroll{flex:1 1;min-height:0;overflow-y:auto;padding:22px 24px}.hw-board-desktop-table{display:block}.hw-board-mobile-cards{display:none}@media (max-width:900px){.hw-board-desktop-table{display:none}.hw-board-mobile-cards{display:block}}.hw-board-summary{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;padding:18px 20px;border-radius:var(--radius-xl);border:1px solid var(--line);background:linear-gradient(120deg,rgba(99,102,241,.12),rgba(15,23,42,.4));margin-bottom:20px}[data-theme=light] .hw-board-summary{background:linear-gradient(120deg,rgba(99,102,241,.1),#fff)}.hw-board-chip{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:5px 10px;border-radius:999px;background:hsla(0,0%,100%,.08);border:1px solid var(--line);color:var(--text-secondary)}.hw-pending-review-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;border-radius:6px;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.45);color:#fcd34d}.hw-action-menu{position:relative;display:inline-block;text-align:left}.hw-action-menu>summary{cursor:pointer;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:11px;font-weight:700;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:hsla(0,0%,100%,.04);color:var(--text)}.hw-action-menu>summary::-webkit-details-marker{display:none}.hw-action-menu-panel{position:absolute;right:0;top:100%;margin-top:4px;min-width:168px;padding:6px;border-radius:10px;border:1px solid var(--line);background:var(--bg-card);box-shadow:var(--shadow-card);z-index:15}.hw-action-menu-panel button{display:block;width:100%;text-align:left;padding:8px 10px;border:none;border-radius:6px;background:transparent;color:var(--text);font-size:12px;font-weight:600;cursor:pointer}.hw-action-menu-panel button:hover:not(:disabled){background:rgba(99,102,241,.12)}.hw-action-menu-panel button:disabled{opacity:.5;cursor:not-allowed}.hw-project-link{word-break:break-all;color:var(--brand-2);font-size:12px;text-decoration:underline}.hw-board-drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--modal-z);display:flex;justify-content:flex-end;animation:hwFadeIn .2s ease;touch-action:none}.hw-board-drawer{width:min(440px,100vw);height:100%;max-height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--chrome-bg);border-left:1px solid var(--line);box-shadow:-12px 0 48px rgba(0,0,0,.45);padding:0;animation:hwSlideIn .28s cubic-bezier(.22,1,.36,1)}.hw-board-drawer__scroll{flex:1 1;min-height:0;overflow-y:auto;padding:24px}@keyframes hwFadeIn{0%{opacity:0}to{opacity:1}}@keyframes hwSlideIn{0%{transform:translateX(100%)}to{transform:translateX(0)}}.hw-board-card{border-radius:var(--radius-lg);border:1px solid var(--line);padding:14px 16px;margin-bottom:10px;background:var(--bg-card)}.hw-board-card:nth-child(odd){background:hsla(0,0%,100%,.03)}.hw-board-table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--line)}.hw-board-table{width:100%;border-collapse:collapse;font-size:13px}.hw-board-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;text-align:left;padding:12px 14px;background:var(--panel-solid);border-bottom:1px solid var(--line);color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.hw-board-table tbody td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:top}.hw-matrix-scroll{overflow:auto;max-height:min(70vh,720px);border-radius:var(--radius-lg);border:1px solid var(--line)}.hw-matrix{border-collapse:separate;border-spacing:0;font-size:11px}.hw-matrix td,.hw-matrix th{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px 6px;text-align:center;min-width:72px;max-width:120px}.hw-matrix td:first-child,.hw-matrix th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:var(--panel-solid);text-align:left;font-weight:700;min-width:140px}.hw-teacher-feedback{font-size:12px;color:var(--text);margin-top:4px;padding:10px 12px;border-radius:10px;background:rgba(234,88,12,.12);border:1px solid rgba(234,88,12,.4);border-left:3px solid #ea580c;line-height:1.5;white-space:pre-wrap}.hw-teacher-feedback__title{font-weight:800;display:block;margin-bottom:4px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#fdba74}.gradebook-matrix-scroll{overflow:auto;max-height:min(78vh,800px);border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--bg-surface)}.gradebook-matrix{min-width:max-content;border-collapse:separate;border-spacing:0}.gradebook-matrix thead th{position:-webkit-sticky;position:sticky;top:0;z-index:3;background:var(--panel-solid);vertical-align:bottom;padding:10px 8px;font-weight:600;font-size:11px;color:var(--text-secondary);border-bottom:1px solid var(--line)}.gradebook-header-row--sessions th{top:0;z-index:5}.gradebook-header-row--cols th{top:42px;z-index:4}.gradebook-session-group-th{text-align:center;background:rgba(99,102,241,.08);border-left:1px solid var(--line);border-right:1px solid var(--line);min-width:120px}.gradebook-session-group-th--elapsed{background:rgba(16,185,129,.08)}.gradebook-session-group-th--future{background:rgba(148,163,184,.05);opacity:.88}.gradebook-exam-group-th{text-align:center;background:rgba(245,158,11,.1);border-left:1px solid var(--line);border-right:1px solid var(--line);min-width:72px}.gradebook-exam-score-input{margin:0 auto}.gradebook-session-group-label{display:block;font-size:11px;font-weight:700;color:var(--text);line-height:1.3}.gradebook-col-header{min-width:52px;max-width:88px}.gradebook-col-header-inner{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);max-height:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.gradebook-col-sub{display:block;font-size:9px;font-weight:500;color:var(--muted);margin-top:4px;writing-mode:horizontal-tb;transform:none}.gradebook-col-sub--inline{display:block;margin-top:2px}.gradebook-sticky-col{position:-webkit-sticky;position:sticky;z-index:6;background:var(--panel-solid);text-align:left!important;box-shadow:2px 0 6px rgba(0,0,0,.12)}.gradebook-sticky-col--name{left:0;min-width:var(--gb-sticky-name,200px);max-width:var(--gb-sticky-name,200px)}.gradebook-sticky-col--lms{left:var(--gb-sticky-lms-left,188px);min-width:var(--gb-sticky-lms,132px);max-width:var(--gb-sticky-lms,132px);z-index:7}.gradebook-sticky-col--email{left:var(--gb-sticky-email-left,320px);min-width:var(--gb-sticky-email,168px);max-width:var(--gb-sticky-email,168px)}.gradebook-sticky-col--pay{left:var(--gb-sticky-pay-left,488px);min-width:var(--gb-sticky-pay,100px);max-width:var(--gb-sticky-pay,100px)}.gradebook-name-cell{z-index:7}.gradebook-matrix tbody td,.gradebook-matrix tfoot td{padding:6px 8px;text-align:center;vertical-align:middle;border-bottom:1px solid hsla(0,0%,100%,.04)}.gradebook-matrix tbody td.gradebook-sticky-col,.gradebook-matrix tfoot td.gradebook-sticky-col{text-align:left}.gradebook-pay-pill{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:4px 8px;border-radius:6px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.gradebook-pay--paid{background:rgba(16,185,129,.15);color:#6ee7b7}.gradebook-pay--unpaid{background:rgba(245,158,11,.12);color:#fcd34d}.gradebook-pay--overdue{background:rgba(239,68,68,.14);color:#fca5a5}.gradebook-pay--free{background:rgba(148,163,184,.12);color:var(--muted)}.gradebook-cell-btn{border:none;cursor:pointer;width:100%}.gradebook-cell-empty{color:var(--muted);font-size:11px}.gradebook-student-link{display:flex;align-items:center;gap:10px;color:var(--brand-2);text-decoration:none;font-weight:600;font-size:12px}.gradebook-student-link:hover{text-decoration:underline}.gradebook-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;font-size:10px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.gradebook-email-link{color:var(--brand-2);font-size:11px;text-decoration:none;word-break:break-all}.gradebook-email-link:hover{text-decoration:underline}.gradebook-status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:4px 6px;border-radius:6px;font-size:10px;font-weight:700;text-transform:lowercase}.gradebook-hw-btn{border:none;cursor:pointer;width:100%}.gradebook-summary-row td{background:var(--chrome-bg);font-size:11px;position:-webkit-sticky;position:sticky;bottom:0;z-index:2;border-top:2px solid var(--line);isolation:isolate;box-shadow:0 -1px 0 var(--line),0 -4px 12px rgba(0,0,0,.2)}.gradebook-summary-row .gradebook-sticky-col{z-index:8}.gradebook-curriculum-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px;padding:10px 14px;border-radius:10px;border:1px solid rgba(16,185,129,.25);background:linear-gradient(90deg,rgba(16,185,129,.1),rgba(99,102,241,.08))}.gradebook-curriculum-banner__title{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#6ee7b7}.gradebook-curriculum-banner__metric{font-size:13px;font-weight:700;color:var(--text)}.gradebook-curriculum-banner__cursor{font-size:12px;color:var(--muted)}.gradebook-progress-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:10px;font-size:11px;color:var(--muted)}.gradebook-legend-item{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;font-weight:600}.gradebook-legend-hint{flex:1 1 200px;font-size:11px;color:var(--muted);line-height:1.35}.gradebook-lms-progress{display:flex;flex-direction:column;gap:2px;font-size:10px;line-height:1.25;font-weight:700}.gradebook-lms-progress__student{color:var(--text)}.gradebook-lms-progress__group{color:var(--muted);font-weight:600}.gradebook-lms-progress--ahead .gradebook-lms-progress__student{color:#6ee7b7}.gradebook-lms-progress--behind .gradebook-lms-progress__student{color:#fca5a5}.gradebook-clearance-icon{font-size:12px;line-height:1;flex-shrink:0}.gradebook-session-cell-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:28px}.gradebook-session-cell-label{font-size:10px;font-weight:700}.gradebook-clearance--present{border-color:rgba(16,185,129,.45)!important;color:#6ee7b7!important}.gradebook-clearance--homework{border-color:rgba(245,158,11,.45)!important;color:#fcd34d!important;background:rgba(245,158,11,.12)!important}.gradebook-clearance--accelerated{border-color:rgba(56,189,248,.45)!important;color:#7dd3fc!important;background:rgba(56,189,248,.1)!important}@media (prefers-reduced-motion:reduce){.hw-badge--submitted,.hw-board-drawer,.hw-board-drawer-overlay{animation:none}}.my-progress-page{display:flex;flex-direction:column;gap:24px;max-width:920px}.my-progress-header{justify-content:space-between;gap:20px}.my-progress-header,.my-progress-rings{display:flex;flex-wrap:wrap;align-items:flex-start}.my-progress-rings{gap:28px}.my-progress-toast{padding:12px 16px;border-radius:12px;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.35);font-size:13px;color:var(--text)}.my-progress-timeline-card{padding:22px 24px}.my-progress-section-title{margin:0 0 18px;font-size:16px;font-weight:700}.my-progress-timeline{list-style:none;margin:0;padding:0 0 0 12px;border-left:2px solid var(--line)}.my-progress-timeline-item{position:relative;margin-bottom:8px}.my-progress-timeline-item:last-child{margin-bottom:0}.my-progress-timeline-dot{position:absolute;left:-19px;top:18px;width:10px;height:10px;border-radius:50%;background:var(--brand);border:2px solid var(--bg);box-shadow:0 0 0 1px var(--line)}.my-progress-session-trigger{display:grid;grid-template-columns:1fr auto auto;align-items:center;grid-gap:12px;gap:12px;width:100%;text-align:left;padding:14px 16px 14px 8px;margin-left:8px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);cursor:pointer;transition:border-color .15s ease,background .15s ease}.my-progress-session-trigger.is-open,.my-progress-session-trigger:hover{border-color:rgba(99,102,241,.45);background:rgba(99,102,241,.06)}.my-progress-session-main{display:flex;flex-direction:column;gap:4px;min-width:0}.my-progress-session-title{font-size:14px;font-weight:700}.my-progress-session-meta{font-size:12px;color:var(--muted)}.my-progress-session-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.my-progress-session-hw-summary{font-size:11px;color:var(--muted)}.my-progress-chevron{font-size:12px;color:var(--muted);padding-left:4px}.my-progress-tiers{display:flex;flex-direction:column;gap:10px;margin:10px 0 4px 20px;padding-bottom:8px}.my-progress-tier{display:flex;flex-direction:column;gap:0;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--bg)}.my-progress-tier--needs-changes{border-color:rgba(249,115,22,.5);background:rgba(249,115,22,.06)}.my-progress-tier--completed{border-color:rgba(16,185,129,.45);background:rgba(16,185,129,.08);box-shadow:inset 3px 0 0 #10b981}.my-progress-tier--completed .hw-badge--completed{opacity:1}.my-progress-tier--empty{opacity:.75}.my-progress-tier-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.my-progress-tier-identity{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1}.my-progress-tier-status-cluster{display:flex;align-items:center;gap:6px;flex-shrink:0}.my-progress-tier-identity .my-progress-extra-pill{flex-shrink:0}.my-progress-tier-label{font-size:14px;font-weight:700;color:var(--text);line-height:1.3}.my-progress-tier-due-row{margin-top:6px}.my-progress-tier-due{font-size:12px;font-weight:600}.my-progress-tier--completed .my-progress-tier-due.hw-due--normal{color:rgba(110,231,183,.82)}[data-theme=light] .my-progress-tier--completed .my-progress-tier-due.hw-due--normal{color:#047857}.my-progress-tier-snippet{margin-top:12px}.my-progress-tier-description,.my-progress-tier-snippet+.my-progress-tier-description{margin-top:12px;font-size:13px;color:var(--text);line-height:1.45}.my-progress-tier-empty-msg,.my-progress-tier-lock{margin:8px 0 0;font-size:12px;color:var(--muted)}.my-progress-tier-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid hsla(0,0%,100%,.06)}.my-progress-tier--completed .my-progress-tier-footer{border-top-color:rgba(16,185,129,.18)}.my-progress-tier--needs-changes .my-progress-tier-footer{border-top-color:rgba(249,115,22,.2)}.my-progress-tier-footer .my-progress-tier-action{text-decoration:none;width:auto;flex:0 0 auto}.my-progress-tier-footer .button.my-progress-tier-action,.my-progress-tier-footer .homework-primary-action{padding:5px 12px;font-size:11px;font-weight:700;box-shadow:0 4px 12px -8px rgba(99,102,241,.55)}.my-progress-teacher-alert{display:flex;gap:10px;margin-bottom:12px;padding:10px 12px;border-radius:10px;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.35);font-size:13px}.my-progress-teacher-alert p{margin:4px 0 0;color:var(--text);white-space:pre-wrap}.my-progress-teacher-alert-icon{flex-shrink:0;font-size:18px}.my-progress-modules{display:flex;flex-direction:column;gap:28px}.my-progress-module-title{margin:0 0 14px;font-size:15px;font-weight:800;color:var(--text);letter-spacing:-.02em}.my-progress-extras{margin-bottom:16px;padding:14px 16px 12px;border-radius:14px;border:1px solid rgba(129,140,248,.28);background:linear-gradient(145deg,rgba(99,102,241,.14),rgba(139,92,246,.08) 48%,rgba(30,27,75,.04));box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.03)}.hw-extra-tier-workspace{border-color:rgba(129,140,248,.22);background:linear-gradient(160deg,rgba(99,102,241,.06),rgba(139,92,246,.04))}.my-progress-extra-bundle{padding:12px 14px;border-radius:12px;border:1px solid rgba(129,140,248,.22);background:rgba(99,102,241,.06)}.my-progress-extra-bundle-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.my-progress-extra-bundle-title{font-size:13px;font-weight:800;color:var(--text)}.my-progress-extra-bundle-progress{margin-left:auto;font-size:11px;font-weight:700;color:#a5b4fc}.my-progress-tiers--extra .my-progress-tier{border-left:3px solid rgba(129,140,248,.45)}.my-progress-extras-label{margin:0 0 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.my-progress-extras-list{display:flex;flex-direction:column;gap:10px}.my-progress-extras--in-session{margin-top:14px;margin-bottom:0}.my-progress-tier--extra{border-left:3px solid rgba(99,102,241,.55)}.my-progress-extra-pill{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;background:rgba(99,102,241,.15);color:#a5b4fc}.my-progress-tier-spacer{min-height:4px;margin:2px 0;border-radius:6px;background:hsla(0,0%,100%,.03);border:1px dashed hsla(0,0%,100%,.06)}.my-progress-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 16px;padding:14px 18px;border:1px solid rgba(16,185,129,.35);background:rgba(16,185,129,.08)}.my-progress-banner-strong{font-size:15px;font-weight:800;color:#34d399}.my-progress-banner-detail{font-size:13px;color:var(--muted)}.my-progress-session-pill{font-size:14px;line-height:1}.my-progress-session-trigger--before-join .my-progress-timeline-dot,.my-progress-timeline-item--before-join .my-progress-timeline-dot{background:#94a3b8;box-shadow:0 0 0 1px rgba(148,163,184,.4)}.my-progress-session-trigger--before-join,.my-progress-timeline-item--before-join>.my-progress-session-trigger{border-color:rgba(148,163,184,.45);background:rgba(148,163,184,.1)}.my-progress-session-trigger--catchup,.my-progress-timeline-item--catchup>.my-progress-session-trigger{border-color:rgba(16,185,129,.55);background:rgba(16,185,129,.12)}.my-progress-session-trigger--catchup .my-progress-timeline-dot,.my-progress-timeline-item--catchup .my-progress-timeline-dot{background:#10b981}.my-progress-session-trigger--accelerated,.my-progress-timeline-item--accelerated>.my-progress-session-trigger{border-color:rgba(99,102,241,.55);background:rgba(99,102,241,.12)}.my-progress-session-trigger--accelerated .my-progress-timeline-dot,.my-progress-timeline-item--accelerated .my-progress-timeline-dot{background:#818cf8}.my-progress-session-trigger--attended,.my-progress-timeline-item--attended>.my-progress-session-trigger{border-color:rgba(16,185,129,.4);background:rgba(16,185,129,.08)}.my-progress-session-trigger--upcoming,.my-progress-timeline-item--upcoming>.my-progress-session-trigger{border-style:dashed;cursor:pointer}.my-progress-timeline-item--today>.my-progress-session-trigger{border-color:rgba(245,158,11,.55);background:rgba(245,158,11,.1)}.my-progress-timeline-item--today .my-progress-timeline-dot{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.25)}.my-progress-session-trigger--missed,.my-progress-timeline-item--missed>.my-progress-session-trigger{border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.08)}.hw-teacher-blockquote{margin:0 0 16px;padding:14px 16px 14px 18px;border-left:4px solid #f59e0b;border-radius:0 12px 12px 0;background:rgba(245,158,11,.1);color:var(--text)}.hw-teacher-blockquote__title{margin:0 0 8px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#fbbf24}.hw-teacher-blockquote__body{margin:0;font-size:14px;line-height:1.55;white-space:pre-wrap}.auto-test-console{margin:0 0 14px;padding:14px 16px;border-radius:12px;background:#09090b;border:1px solid hsla(0,0%,100%,.08);color:#e4e4e7;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;line-height:1.5}.auto-test-console__header{margin:0 0 10px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#a1a1aa}.auto-test-console__case-title{margin:0 0 8px;font-weight:700;color:#fca5a5}.auto-test-console__line{margin:0 0 4px;white-space:pre-wrap;word-break:break-word}.auto-test-console__label{color:#71717a}.auto-test-console__actions{margin-top:12px}.py-hw-page{max-width:960px;margin:0 auto;padding-bottom:32px}.py-hw-hero{margin-bottom:28px}.py-hw-back{display:inline-block;margin-bottom:16px}.py-hw-title{font-size:clamp(1.35rem,4vw,1.75rem);font-weight:900;margin:0 0 8px;color:var(--text);line-height:1.2}.py-hw-subtitle{margin:0;font-size:15px;color:var(--muted)}.py-hw-module{margin:6px 0 0;font-size:13px;color:var(--muted)}.py-hw-meta{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.py-hw-status{display:inline-flex;align-items:center;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:6px 12px;border-radius:999px;border:1px solid var(--line)}.py-hw-status--done{background:rgba(16,185,129,.15);border-color:rgba(16,185,129,.45);color:#6ee7b7}.py-hw-status--retry{background:rgba(251,146,60,.12);border-color:rgba(251,146,60,.45);color:#fdba74}.py-hw-status--active{background:rgba(99,102,241,.12);border-color:rgba(99,102,241,.4);color:#a5b4fc}.py-hw-card{border-radius:var(--radius-lg,14px);overflow:hidden;background:rgba(0,0,0,.2);border:1px solid rgba(129,140,248,.25);box-shadow:0 8px 32px rgba(0,0,0,.25)}.py-hw-card--readonly{margin-top:16px}.py-hw-card__bar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:rgba(0,0,0,.18)}.py-hw-card__badge{display:inline-flex;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6ee7b7;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.35);border-radius:999px;padding:4px 10px}.py-hw-card__label{font-size:14px;font-weight:700;color:var(--text)}.py-hw-code-readonly{border:none;border-radius:0}.py-hw-code-pre{margin:0;padding:12px 12px 12px 42px;font-size:13px;line-height:1.55;font-family:ui-monospace,Cascadia Code,Consolas,monospace;color:var(--text);white-space:pre;overflow-x:auto;min-height:120px}.py-hw-tryagain{margin-bottom:20px;padding:18px 20px;border-radius:var(--radius-lg,14px);background:linear-gradient(135deg,rgba(251,146,60,.08),rgba(99,102,241,.06));border:1px solid rgba(251,146,60,.35)}.py-hw-tryagain--compact{margin-bottom:12px;padding:14px 16px}.py-hw-tryagain__title{margin:0 0 4px;font-size:18px;font-weight:800;color:var(--text)}.py-hw-tryagain__subtitle{margin:0 0 12px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.py-hw-tryagain__message{margin:0;font-size:14px;line-height:1.5;color:var(--text-secondary,var(--text))}.py-hw-tryagain__test-name{margin:0 0 10px;font-size:15px;font-weight:700;color:#fdba74}.py-hw-tryagain__compare{display:flex;flex-direction:column;gap:10px}.py-hw-tryagain__block{padding:12px 14px;border-radius:10px;background:rgba(0,0,0,.2);border:1px solid var(--line)}.py-hw-tryagain__block--actual{border-color:hsla(0,91%,71%,.35)}.py-hw-tryagain__label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.py-hw-tryagain__value{display:block;font-size:15px;font-weight:600;font-family:ui-monospace,Consolas,monospace;color:var(--text);word-break:break-word}.py-hw-tryagain__hint{margin:4px 0 0;font-size:12px;color:var(--muted)}.py-hw-tryagain__actions{margin-top:14px}.py-hw-completed__banner{display:flex;align-items:flex-start;gap:14px;padding:20px 22px;margin-bottom:8px;border-radius:var(--radius-lg,14px);background:linear-gradient(135deg,rgba(16,185,129,.15),rgba(99,102,241,.12));border:1px solid rgba(16,185,129,.4);animation:py-hw-shimmer 3s ease-in-out infinite}@keyframes py-hw-shimmer{0%,to{box-shadow:0 0 0 rgba(16,185,129,0)}50%{box-shadow:0 0 24px rgba(16,185,129,.2)}}.py-hw-completed__emoji{font-size:2rem;line-height:1}.py-hw-completed__headline{margin:0 0 6px;font-size:1.35rem;font-weight:900;color:var(--text)}.py-hw-completed__hint{margin:0;font-size:14px;color:var(--muted);line-height:1.45}.py-hw-completed__tests{margin-top:16px;font-size:14px;color:var(--text)}.py-hw-completed__tests summary{cursor:pointer;font-weight:700;color:var(--muted)}.py-hw-completed__test-list{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.py-hw-completed__test-list li{display:flex;align-items:center;gap:8px;font-size:13px}.py-hw-completed__check{color:#6ee7b7;font-weight:800}.teacher-review-page{display:flex;flex-direction:column;gap:20px;max-width:960px}.teacher-review-page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.teacher-review-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px 24px;padding:16px 18px;border-radius:12px;border:1px solid var(--line);background:var(--card)}.teacher-review-category-legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%}.teacher-review-queue-stat{font-size:13px;font-weight:600;color:var(--brand-2)}.teacher-review-empty{padding:28px 24px;text-align:center}.teacher-review-queue{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.teacher-review-queue-row{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.teacher-review-queue-row:hover{border-color:rgba(99,102,241,.45);background:rgba(99,102,241,.06)}.teacher-review-queue-main{display:flex;flex-direction:column;gap:4px;min-width:0}.teacher-review-queue-student{font-size:15px;font-weight:700}.teacher-review-queue-lesson{font-size:13px}.teacher-review-queue-sub{font-size:12px;color:var(--muted)}.teacher-review-queue-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.teacher-review-mode-chip{display:inline-flex;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700;background:rgba(99,102,241,.12);color:var(--brand-2)}.teacher-review-auto-tag{font-size:11px;color:var(--muted)}.teacher-review-work-category{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:color-mix(in srgb,var(--review-work-color) 14%,transparent);color:var(--review-work-color);border:1px solid color-mix(in srgb,var(--review-work-color) 35%,transparent)}.teacher-review-work-category--compact{padding:3px 8px;font-size:10px}.work-review-submit-card{padding:14px 16px;display:flex;flex-direction:column;gap:10px}button.my-progress-tier--clickable,button.work-review-submit-card--clickable{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:inherit;cursor:pointer;text-align:left;width:100%}.my-progress-tier--clickable:hover,.work-review-submit-card--clickable:hover{border-color:rgba(99,102,241,.45)}.my-progress-tier-open-hint,.work-review-submit-open-hint{font-size:11px;font-weight:700;color:var(--brand);margin-top:auto}.work-review-submit-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.work-review-submit-label{font-size:13px;font-weight:700}.work-review-submit-actions{display:flex;flex-wrap:wrap;gap:8px}.work-review-submit-lock,.work-review-submit-waiting{font-size:12px;color:var(--muted);margin:0}.progress-hub-online-slot-submit{margin-top:4px}.work-review-submit-card--online-slot{padding:12px 14px;border-radius:12px;background:rgba(0,0,0,.16);border:1px solid hsla(0,0%,100%,.07);gap:8px}.progress-hub-session--online-slot[data-session-kind=side_quest] .work-review-submit-card--online-slot{background:rgba(0,0,0,.14);border-color:rgba(245,158,11,.14)}.progress-hub-session--online-slot[data-session-kind=exam] .work-review-submit-card--online-slot{background:rgba(0,0,0,.14);border-color:rgba(var(--exam-rgb),.18)}.work-review-submit-head--online-slot{justify-content:flex-end}.work-review-submit-head--online-slot .hw-badge{font-size:11px}.teacher-review-modal-overlay{position:fixed;inset:0;z-index:var(--modal-z);background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;touch-action:none}.teacher-review-modal{width:min(640px,100%);max-height:min(90vh,900px);display:flex;flex-direction:column;overflow:hidden;padding:0;border-radius:16px;border:1px solid var(--line);background:var(--card);box-shadow:0 24px 48px rgba(0,0,0,.35)}.teacher-review-modal-scroll{flex:1 1;min-height:0;overflow-y:auto;padding:24px}.teacher-review-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:0;flex-shrink:0;padding:24px 24px 16px;border-bottom:1px solid var(--line);background:var(--card);isolation:isolate}.teacher-review-modal-footer{flex-shrink:0;padding:16px 24px 24px;border-top:1px solid var(--line);background:var(--card);isolation:isolate}.teacher-review-modal-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px;color:var(--muted);margin-bottom:16px}.teacher-review-student-note{font-size:13px;margin:0 0 16px;padding:10px 12px;border-radius:10px;background:hsla(0,0%,100%,.04);border:1px solid var(--line)}.teacher-review-submission-panel{margin-bottom:18px}.teacher-review-section-label{margin:0 0 10px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.teacher-review-code{margin:0;padding:14px 16px;border-radius:10px;background:#0f172a;border:1px solid var(--line);font-size:12px;line-height:1.5;overflow-x:auto;max-height:280px;color:#e2e8f0}.teacher-review-scratch-frame{width:100%;height:280px;border:1px solid var(--line);border-radius:10px;background:#fff}.teacher-review-auto-note{font-size:12px;color:var(--muted);margin:0 0 12px;padding:10px 12px;border-radius:8px;background:hsla(0,0%,100%,.04)}.teacher-review-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.teacher-exam-grid-page{display:flex;flex-direction:column;gap:20px;max-width:880px}.teacher-exam-grid-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.teacher-exam-grid-wrap{padding:0;overflow-x:auto}.teacher-exam-grid-table{width:100%;border-collapse:collapse;font-size:13px}.teacher-exam-grid-table td,.teacher-exam-grid-table th{padding:12px 16px;border-bottom:1px solid var(--line);text-align:left}.teacher-exam-grid-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:hsla(0,0%,100%,.03)}.teacher-exam-score-input{width:88px;padding:8px 10px}.teacher-exam-status{display:inline-flex;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700}.teacher-exam-status--pending{background:rgba(148,163,184,.15);color:var(--muted)}.teacher-exam-status--passed{background:rgba(16,185,129,.15);color:#34d399}.teacher-exam-status--failed{background:rgba(239,68,68,.12);color:#f87171}.hw-tier-band{border-width:1px;border-style:solid}.hw-tier-band--basic{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.hw-tier-band--intermediate{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.hw-tier-band--advanced{background:#fff1f2;color:#be123c;border-color:#fecdd3}.hw-tier--1,.hw-tier--2,.hw-tier--3,.hw-tier--4,.hw-tier--5{display:inline-flex;align-items:center;border-width:1px;border-style:solid;border-radius:9999px;font-size:11px;font-weight:700;letter-spacing:.03em;padding:3px 10px}.hw-tier--1{background:rgba(16,185,129,.1);color:#34d399;border-color:rgba(16,185,129,.35)}.hw-tier--2{background:rgba(59,130,246,.1);color:#60a5fa;border-color:rgba(59,130,246,.35)}.hw-tier--3{background:rgba(249,115,22,.1);color:#fb923c;border-color:rgba(249,115,22,.35)}.hw-tier--4{background:rgba(244,63,94,.1);color:#fb7185;border-color:rgba(244,63,94,.35)}.hw-tier--5{background:rgba(220,38,38,.12);color:#f87171;border-color:rgba(220,38,38,.4);font-weight:800}[data-theme=light] .hw-tier--1{background:#ecfdf5;color:#15803d;border-color:#bbf7d0}[data-theme=light] .hw-tier--2{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}[data-theme=light] .hw-tier--3{background:#fff7ed;color:#c2410c;border-color:#fed7aa}[data-theme=light] .hw-tier--4{background:#fff1f2;color:#be123c;border-color:#fecdd3}[data-theme=light] .hw-tier--5{background:#fef2f2;color:#b91c1c;border-color:#fecaca;font-weight:800}.hw-tier-card--1{background:rgba(16,185,129,.07);border-color:rgba(16,185,129,.25);color:var(--text)}.hw-tier-card--2{background:rgba(59,130,246,.07);border-color:rgba(59,130,246,.25);color:var(--text)}.hw-tier-card--3{background:rgba(249,115,22,.07);border-color:rgba(249,115,22,.25);color:var(--text)}.hw-tier-card--4{background:rgba(244,63,94,.07);border-color:rgba(244,63,94,.25);color:var(--text)}.hw-tier-card--5{background:rgba(220,38,38,.09);border-color:rgba(220,38,38,.35);color:var(--text)}.hw-tier-card--1,.hw-tier-card--2,.hw-tier-card--3,.hw-tier-card--4,.hw-tier-card--5{border-width:1px;border-style:solid;border-radius:12px}[data-theme=light] .hw-tier-card--1{background:#ecfdf5;border-color:#bbf7d0}[data-theme=light] .hw-tier-card--2{background:#eff6ff;border-color:#bfdbfe}[data-theme=light] .hw-tier-card--3{background:#fff7ed;border-color:#fed7aa}[data-theme=light] .hw-tier-card--4{background:#fff1f2;border-color:#fecdd3}[data-theme=light] .hw-tier-card--5{background:#fef2f2;border-color:#fecaca}.hw-dashboard-tier{position:relative;border-width:1px;border-style:solid;border-radius:12px;transition:opacity .2s ease,filter .2s ease,box-shadow .2s ease}.hw-dashboard-tier--level-1{background:linear-gradient(145deg,rgba(59,130,246,.26),rgba(37,99,235,.12));border-color:rgba(96,165,250,.45)}.hw-dashboard-tier--level-2{background:linear-gradient(145deg,rgba(99,102,241,.26),rgba(79,70,229,.12));border-color:rgba(129,140,248,.48)}.hw-dashboard-tier--level-3{background:linear-gradient(145deg,rgba(139,92,246,.26),rgba(124,58,237,.12));border-color:rgba(167,139,250,.5)}.hw-dashboard-tier--level-4{background:linear-gradient(145deg,rgba(168,85,247,.28),rgba(147,51,234,.14));border-color:rgba(192,132,252,.52)}.hw-dashboard-tier--level-5{background:linear-gradient(145deg,rgba(126,34,206,.3),rgba(88,28,135,.16));border-color:rgba(168,85,247,.55)}[data-theme=light] .hw-dashboard-tier--level-1{background:linear-gradient(145deg,#eff6ff,#dbeafe);border-color:#93c5fd}[data-theme=light] .hw-dashboard-tier--level-2{background:linear-gradient(145deg,#eef2ff,#e0e7ff);border-color:#a5b4fc}[data-theme=light] .hw-dashboard-tier--level-3{background:linear-gradient(145deg,#f5f3ff,#ede9fe);border-color:#c4b5fd}[data-theme=light] .hw-dashboard-tier--level-4{background:linear-gradient(145deg,#faf5ff,#f3e8ff);border-color:#d8b4fe}[data-theme=light] .hw-dashboard-tier--level-5{background:linear-gradient(145deg,#f3e8ff,#ede9fe);border-color:#c084fc}.hw-dashboard-tier--empty{border-style:dashed!important;opacity:.72}.hw-dashboard-tier-label{display:flex;flex-direction:column;gap:2px;min-width:0}.hw-dashboard-tier-num{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.55;color:var(--text)}.hw-dashboard-tier-name{font-size:11px;font-weight:800;line-height:1.25;color:var(--text)}.hw-dashboard-tier-status{margin-top:auto;align-self:flex-start;transition:filter .2s ease,opacity .2s ease}.hw-dashboard-tier-status--empty{font-size:10px;font-weight:700;color:var(--muted);opacity:.85}.hw-dashboard-tier--upcoming{box-shadow:inset 3px 0 0 rgba(129,140,248,.85)}.hw-dashboard-tier--upcoming .hw-dashboard-tier-status .hw-badge--upcoming{color:#c7d2fe;border-color:rgba(165,180,252,.75);background:rgba(99,102,241,.15)}.hw-dashboard-tier--submitted{box-shadow:inset 3px 0 0 #3b82f6,0 0 14px rgba(37,99,235,.22)}.hw-dashboard-tier--submitted .hw-dashboard-tier-status{filter:none;opacity:1}.hw-dashboard-tier--needs_changes{box-shadow:inset 3px 0 0 #f97316,0 0 0 1px rgba(234,88,12,.4)}.hw-dashboard-tier--needs_changes .hw-dashboard-tier-status{filter:none;opacity:1}.hw-dashboard-tier--missed{box-shadow:inset 3px 0 0 #ef4444,0 0 0 2px rgba(239,68,68,.75),0 0 18px rgba(239,68,68,.28)}.hw-dashboard-tier--missed .hw-dashboard-tier-status{filter:none;opacity:1}.hw-dashboard-tier--missed .hw-badge--missed{animation:hw-dashboard-missed-pulse 2.2s ease-in-out infinite}@keyframes hw-dashboard-missed-pulse{0%,to{box-shadow:0 0 0 0 rgba(239,68,68,.65)}50%{box-shadow:0 0 0 7px rgba(239,68,68,0)}}.hw-dashboard-tier--completed{box-shadow:inset 3px 0 0 #10b981,0 0 14px rgba(16,185,129,.18);filter:none;opacity:1}.hw-dashboard-tier--completed .hw-dashboard-tier-status{filter:none;opacity:1}.hw-dashboard-tier--completed .hw-dashboard-tier-name{opacity:1}.hw-badge--dashboard-done.hw-badge--completed,.hw-dashboard-tier--completed .hw-badge--completed{opacity:1;color:#ecfdf5;background:#059669;border-color:#047857;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 1px rgba(16,185,129,.45);font-size:10px;padding:4px 11px;letter-spacing:.06em}.hw-tier-quick-feedback{display:flex;flex-direction:column;gap:6px;margin-top:2px;min-width:0}.hw-tier-quick-feedback--compact{gap:4px}.hw-tier-quick-feedback--strip{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:10px;padding:8px 12px;border-radius:8px;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.22)}[data-theme=light] .hw-tier-quick-feedback--strip{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.28)}.hw-tier-quick-feedback--strip .hw-tier-quick-feedback__note{flex:1 1;min-width:0;-webkit-line-clamp:1}.hw-tier-quick-feedback__python{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800;color:#6ee7b7;line-height:1.3}.hw-tier-quick-feedback__check{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;background:#059669;color:#ecfdf5;font-size:10px;flex-shrink:0}.hw-tier-quick-feedback__note{margin:0;font-size:10px;font-weight:600;line-height:1.35;color:var(--text);opacity:.92;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}[data-theme=light] .hw-tier-quick-feedback__python{color:#047857}[data-theme=light] .hw-tier-quick-feedback__check{background:#10b981;color:#fff}.hw-dashboard-tier--faded-tab{opacity:.32!important;filter:saturate(.45)!important;pointer-events:none}.hw-dashboard-tier-feedback{margin-top:2px;line-height:1.35}.hw-diff{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid;letter-spacing:.02em}.hw-diff--easy{background:rgba(16,185,129,.12);color:#34d399;border-color:rgba(16,185,129,.4)}.hw-diff--medium{background:rgba(99,102,241,.12);color:#818cf8;border-color:rgba(99,102,241,.4)}.hw-diff--hard{background:rgba(245,158,11,.12);color:#fbbf24;border-color:rgba(245,158,11,.4)}.hw-diff--very-hard{background:rgba(244,63,94,.12);color:#fb7185;border-color:rgba(244,63,94,.4)}.hw-diff--extra-hard{background:rgba(220,38,38,.12);color:#f87171;border-color:rgba(220,38,38,.4)}[data-theme=light] .hw-diff--easy{background:#ecfdf5;color:#15803d;border-color:#a7f3d0}[data-theme=light] .hw-diff--medium{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}[data-theme=light] .hw-diff--hard{background:#fff7ed;color:#c2410c;border-color:#fed7aa}[data-theme=light] .hw-diff--very-hard{background:#fff1f2;color:#be123c;border-color:#fecdd3}[data-theme=light] .hw-diff--extra-hard{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.teacher-dashboard-action-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.progress-hub{display:flex;flex-direction:column;gap:20px}.portal-shell-header{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:12px;gap:12px;padding:12px 24px;border-bottom:1px solid var(--line);flex-shrink:0}.portal-shell-header--student{grid-template-columns:1fr auto 1fr}.portal-shell-header__left{display:flex;align-items:center;gap:12px;min-width:0}.portal-shell-header__brand{display:flex;align-items:center;gap:8px;flex-shrink:0}.portal-shell-header__brand-mark{font-size:22px;line-height:1}.portal-shell-header__brand-name{font-weight:800;font-size:15px;color:var(--text)}.portal-shell-header__nav{display:flex;gap:4px;flex-wrap:wrap}.portal-shell-header__nav-link{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;color:var(--muted);background:transparent;transition:all .15s}.portal-shell-header__nav-link--active{color:var(--brand);background:rgba(99,102,241,.1)}.portal-shell-header__center{justify-self:center}.portal-shell-header__right{display:flex;align-items:center;gap:12px;justify-self:end;min-width:0}@media (max-width:768px){.portal-shell-header,.portal-shell-header--student{display:flex;flex-wrap:wrap;grid-template-columns:none;padding:10px 14px;gap:8px 10px}.portal-shell-header__left{flex:1 1 auto;min-width:0}.portal-shell-header__right{justify-self:auto;margin-left:auto}.portal-shell-header__center{order:3;flex-basis:100%;justify-self:auto;display:flex;justify-content:center}}.portal-shell-header__child-switch{display:flex;align-items:center;gap:8px;flex-shrink:0}.portal-shell-header__child-label{font-size:11px;color:var(--muted);white-space:nowrap}.portal-shell-header__avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#818cf8);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff;flex-shrink:0}.portal-shell-header__logout{font-size:12px;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:8px;padding:5px 12px;cursor:pointer}[data-student-portal]{--student-shell-header-h:56px;--portal-shell-header-h:var(--student-shell-header-h);--student-bg-base:#050816;--student-bg-mesh-1:rgba(99,102,241,.2);--student-bg-mesh-2:rgba(56,189,248,.14);--student-bg-mesh-3:rgba(251,191,36,.1);--student-surface:hsla(0,0%,100%,.052);--student-surface-hover:hsla(0,0%,100%,.075);--student-glass-border:hsla(0,0%,100%,.11);--student-accent-dashboard:#818cf8;--student-accent-progress:#38bdf8;--student-accent-courses:#a78bfa;--student-accent-homework:#fbbf24;--student-route-accent:var(--student-accent-dashboard);--bg:var(--student-bg-base);--bg-card:var(--student-surface)}[data-student-portal][data-student-route=dashboard]{--student-route-accent:var(--student-accent-dashboard);--student-bg-mesh-1:rgba(99,102,241,.22);--student-bg-mesh-2:rgba(167,139,250,.14)}[data-student-portal][data-student-route=progress]{--student-route-accent:var(--student-accent-progress);--student-bg-mesh-1:rgba(56,189,248,.2);--student-bg-mesh-2:rgba(34,211,238,.12)}[data-student-portal][data-student-route=courses]{--student-route-accent:var(--student-accent-courses);--student-bg-mesh-1:rgba(167,139,250,.2);--student-bg-mesh-2:rgba(129,140,248,.12)}[data-student-portal][data-student-route=homework]{--student-route-accent:var(--student-accent-homework);--student-bg-mesh-1:rgba(251,191,36,.16);--student-bg-mesh-2:rgba(245,158,11,.1)}@keyframes student-portal-bg-shift{0%,to{opacity:1;transform:scale(1)}50%{opacity:.92;transform:scale(1.02)}}.student-portal-shell{position:relative;display:flex;flex-direction:column;height:100dvh;max-height:100dvh;overflow:hidden;background:var(--student-bg-base);isolation:isolate}.student-portal-shell:before{background:radial-gradient(ellipse 85% 55% at 8% -8%,var(--student-bg-mesh-1),transparent 58%),radial-gradient(ellipse 70% 50% at 92% 4%,var(--student-bg-mesh-2),transparent 52%),radial-gradient(ellipse 55% 45% at 50% 105%,var(--student-bg-mesh-3),transparent 62%),radial-gradient(ellipse 40% 35% at 75% 55%,color-mix(in srgb,var(--student-route-accent) 10%,transparent),transparent 70%);transition:background .55s ease;animation:student-portal-bg-shift 18s ease-in-out infinite}.student-portal-shell:after,.student-portal-shell:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0}.student-portal-shell:after{opacity:.45;background-image:radial-gradient(hsla(0,0%,100%,.045) 1px,transparent 0),radial-gradient(hsla(0,0%,100%,.025) 1px,transparent 0);background-size:32px 32px,48px 48px;background-position:0 0,16px 16px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.85) 0,rgba(0,0,0,.35) 55%,transparent);mask-image:linear-gradient(180deg,rgba(0,0,0,.85) 0,rgba(0,0,0,.35) 55%,transparent)}.student-portal-shell>.portal-shell-header{flex-shrink:0;z-index:50}.student-portal-main{position:relative;z-index:1;flex:1 1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;max-width:860px;width:100%;margin:0 auto;padding:28px 20px 60px}.student-portal-main--wide{max-width:min(1320px,100%)}.student-portal-main:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(100%,920px);height:140px;pointer-events:none;background:radial-gradient(ellipse 80% 100% at 50% 0,color-mix(in srgb,var(--student-route-accent) 16%,transparent),transparent 72%);opacity:.9;transition:background .5s ease}.student-portal-main>*{position:relative;z-index:1}[data-student-portal] .portal-shell-header--student{background:rgba(17,24,39,.8);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--student-glass-border);box-shadow:0 1px 0 hsla(0,0%,100%,.04),0 8px 32px rgba(0,0,0,.32)}[data-student-portal] .portal-shell-header__nav-link--active{color:var(--student-route-accent);background:color-mix(in srgb,var(--student-route-accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--student-route-accent) 28%,transparent);box-shadow:0 2px 12px color-mix(in srgb,var(--student-route-accent) 16%,transparent)}[data-student-portal] .portal-shell-header__avatar{background:linear-gradient(135deg,var(--student-route-accent),#6366f1);box-shadow:0 2px 12px color-mix(in srgb,var(--student-route-accent) 35%,transparent)}[data-student-portal] .portal-card{background:var(--student-surface);border-color:var(--student-glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.04),0 4px 24px rgba(0,0,0,.22)}[data-student-portal] .portal-card:hover{border-color:color-mix(in srgb,var(--student-route-accent) 28%,var(--student-glass-border));box-shadow:0 1px 0 hsla(0,0%,100%,.05) inset,0 8px 32px color-mix(in srgb,var(--student-route-accent) 12%,rgba(0,0,0,.28))}@media (prefers-reduced-motion:reduce){[data-student-portal] *,[data-student-portal] :after,[data-student-portal] :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.student-portal-shell:before{animation:none}}.progress-hub-header{position:relative;padding:22px 26px 24px;border-radius:22px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(99,102,241,.14),rgba(56,189,248,.05) 55%,var(--chrome-bg) 100%),var(--chrome-bg);box-shadow:var(--chrome-shadow);overflow:hidden;isolation:isolate}.progress-hub-header-glow{position:absolute;inset:-40% -10% auto auto;width:360px;height:360px;border-radius:50%;background:radial-gradient(closest-side,rgba(99,102,241,.28),transparent 70%);pointer-events:none;filter:blur(6px)}.progress-hub-header[data-hw-track=python] .progress-hub-header-glow{background:radial-gradient(closest-side,rgba(56,189,248,.28),transparent 70%)}.progress-hub-header[data-hw-track=scratch] .progress-hub-header-glow{background:radial-gradient(closest-side,rgba(255,140,26,.24),transparent 70%)}.progress-hub-header-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,1fr);grid-gap:28px;gap:28px;align-items:center}.progress-hub-header-meta{min-width:0}.progress-hub-header-eyebrow{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--brand-2);margin-bottom:8px}.progress-hub-header-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.progress-hub-header-title{margin:0;font-size:clamp(24px,2.6vw,32px);font-weight:900;line-height:1.1;letter-spacing:-.02em;color:var(--text);flex:1 1;min-width:0}.progress-hub-header-title-actions{flex-shrink:0;display:flex;align-items:center}.progress-hub-header-tags{display:flex;flex-wrap:wrap;gap:8px}.progress-hub-tag{display:inline-flex;flex-direction:column;gap:1px;padding:7px 12px;border-radius:10px;background:hsla(0,0%,100%,.04);border:1px solid var(--line);color:var(--text)}.progress-hub-tag--language{color:#0b1020;background:linear-gradient(135deg,#818cf8,#6366f1);border-color:transparent}[data-theme=light] .progress-hub-tag--language{color:#fff}.progress-hub-tag-label{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;opacity:.7}.progress-hub-tag-value{font-size:12px;font-weight:700}.progress-hub-header-chart{min-width:0}.progress-hub-dual{display:flex;flex-direction:column;gap:8px}.progress-hub-dual-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.progress-hub-dual-row--target{align-items:center}.progress-hub-dual-label{display:flex;flex-direction:column;gap:2px;min-width:0}.progress-hub-dual-name{font-size:12px;font-weight:800;letter-spacing:.01em;color:var(--text)}.progress-hub-dual-name--me{color:#34d399}.progress-hub-dual-name--target{color:#818cf8}.progress-hub-dual-note{font-size:10.5px;color:var(--muted)}.progress-hub-dual-value{display:flex;align-items:baseline;gap:8px;flex-shrink:0}.progress-hub-dual-percent{font-size:22px;font-weight:900;color:var(--text);letter-spacing:-.02em}.progress-hub-dual-percent--target{font-size:16px;color:var(--text-secondary);font-weight:800}.progress-hub-dual-count{font-size:11px;font-weight:600;color:var(--muted)}.progress-hub-dual-track{position:relative;height:16px;border-radius:999px;background:rgba(99,102,241,.12);overflow:hidden;isolation:isolate}.progress-hub-dual-fill{position:absolute;inset:0 auto 0 0;height:100%;border-radius:999px;transition:width .7s cubic-bezier(.22,1,.36,1)}.progress-hub-dual-fill--target{background:linear-gradient(90deg,rgba(99,102,241,.55),rgba(129,140,248,.7));z-index:1}.progress-hub-dual-fill--actual{background:linear-gradient(90deg,#10b981,#34d399 70%,#4ade80);box-shadow:0 0 18px rgba(16,185,129,.45);z-index:2;mix-blend-mode:normal}.progress-hub-dual-marker{position:absolute;top:-4px;bottom:-4px;width:2px;background:hsla(0,0%,100%,.85);border-radius:2px;transform:translateX(-50%);z-index:3;box-shadow:0 0 6px rgba(0,0,0,.4)}.progress-hub-dual-marker--target{background:#c7d2fe;box-shadow:0 0 8px rgba(129,140,248,.7)}[data-theme=light] .progress-hub-dual-track{background:rgba(99,102,241,.18)}[data-theme=light] .progress-hub-dual-marker{background:#1e293b}.progress-hub-dual-delta{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.01em}.progress-hub-dual-delta--ahead{color:#10b981;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.3)}.progress-hub-dual-delta--behind{color:#f97316;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.3)}.progress-hub-dual-delta--neutral{color:#818cf8;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.3)}.progress-hub-header-trailing{position:relative;margin-top:14px}.progress-hub-toast{padding:12px 16px;border-radius:12px;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.35);font-size:13px;color:var(--text)}.progress-hub-body{display:flex;flex-direction:column;gap:18px}.progress-hub-quick-access{padding:18px 22px;display:flex;flex-direction:column;gap:14px}.progress-hub-quick-access-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px 16px}.progress-hub-quick-access-head h2{margin:0;font-size:14px;font-weight:800;color:var(--text);letter-spacing:-.01em}.progress-hub-quick-access-head p{margin:4px 0 0;font-size:12px;color:var(--muted)}.progress-hub-quick-access-stat{font-size:11px;font-weight:700;color:var(--text-secondary);padding:5px 10px;border-radius:999px;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.28)}.progress-hub-quick-access .hw-track--scroll-list{display:flex;flex-direction:column;min-height:0;gap:0}.progress-hub-quick-access .hw-dashboard-status-tabs{flex-shrink:0;position:relative;z-index:1}.progress-hub-quick-access .hw-dashboard-list-scroll{min-height:0;max-height:clamp(220px,46vh,440px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text) 22%,transparent) transparent}.progress-hub-modules{display:flex;flex-direction:column;gap:12px}.progress-hub-module{border-radius:16px;border:1px solid var(--line);background:var(--bg-card);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.progress-hub-module:hover{border-color:rgba(99,102,241,.32)}.progress-hub-module--in-progress{border-color:rgba(245,158,11,.4);box-shadow:inset 0 0 0 1px rgba(245,158,11,.18)}.progress-hub-module--focus{border-color:rgba(99,102,241,.55);box-shadow:inset 0 0 0 1px rgba(99,102,241,.28),0 12px 32px -18px rgba(99,102,241,.45)}.progress-hub-module--focus .progress-hub-module-chip{background:linear-gradient(135deg,#6366f1,#818cf8);color:#fff}.progress-hub-module--finished{opacity:.85}.progress-hub-module-trigger{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(120px,220px) auto;align-items:center;grid-gap:14px;gap:14px;width:100%;padding:16px 18px;background:transparent;border:none;color:var(--text);text-align:left;cursor:pointer;transition:background .15s ease}.progress-hub-module-trigger:hover{background:rgba(99,102,241,.05)}.progress-hub-module-trigger.is-open{background:rgba(99,102,241,.07)}.progress-hub-module-chip{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:30px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em;color:#fff;background:linear-gradient(135deg,#6366f1,#818cf8)}.progress-hub-module--finished .progress-hub-module-chip{background:linear-gradient(135deg,#10b981,#34d399)}.progress-hub-module--in-progress .progress-hub-module-chip{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#1f1300}.progress-hub-module-headline{display:flex;flex-direction:column;gap:2px;min-width:0}.progress-hub-module-title{font-size:14.5px;font-weight:800;letter-spacing:-.01em}.progress-hub-module-meta{font-size:11.5px;color:var(--muted)}.progress-hub-module-rail{position:relative;height:6px;border-radius:999px;background:rgba(99,102,241,.14);overflow:hidden}.progress-hub-module-rail-fill{position:absolute;inset:0 auto 0 0;height:100%;background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:999px;transition:width .6s cubic-bezier(.22,1,.36,1)}.progress-hub-module--finished .progress-hub-module-rail-fill{background:linear-gradient(90deg,#10b981,#34d399)}.progress-hub-module--in-progress .progress-hub-module-rail-fill{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.progress-hub-module-chevron{font-size:14px;color:var(--muted);padding:0 6px}.progress-hub-module-body{padding:4px 22px 20px;border-top:1px solid var(--line)}.progress-hub-session-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.progress-hub-week-header{list-style:none;margin:4px 0 2px;padding:0 4px}.progress-hub-week-header__label{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.progress-hub-week-header__label:before{content:"";display:inline-block;width:10px;height:2px;border-radius:2px;background:rgba(99,102,241,.55)}.progress-hub-session{position:relative;display:flex;flex-direction:column}.progress-hub-session-row{position:relative;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(148px,.9fr) minmax(220px,1.6fr) auto;align-items:center;grid-gap:14px 18px;gap:14px 18px;padding:14px 18px;border-radius:14px;border:1px solid var(--line);background:var(--card,var(--bg-card));color:var(--text);cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease}.progress-hub-session-row:focus-visible,.progress-hub-session-row:hover{border-color:rgba(99,102,241,.45);background:rgba(99,102,241,.06);outline:none}.progress-hub-session-row.is-open{border-color:rgba(99,102,241,.55);background:rgba(99,102,241,.08);box-shadow:0 12px 32px -22px rgba(99,102,241,.7)}.progress-hub-session-left{display:flex;align-items:center;gap:12px;min-width:0}.progress-hub-session-index{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:11px;font-size:12px;font-weight:900;color:#fff;background:linear-gradient(135deg,rgba(99,102,241,.85),rgba(129,140,248,.95));border:1px solid rgba(199,210,254,.35);letter-spacing:.02em;box-shadow:0 4px 14px -8px rgba(99,102,241,.75)}.progress-hub-session-headline{display:flex;flex-direction:column;gap:2px;min-width:0}.progress-hub-session-title{font-size:14px;font-weight:800;color:var(--text);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-hub-session-middle{display:flex;flex-direction:column;align-items:flex-start;gap:6px;justify-content:flex-start;min-width:0}.progress-hub-session-date{font-size:11.5px;color:var(--muted);font-weight:600;white-space:nowrap;letter-spacing:.01em}.progress-hub-exam-pill{display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:3px 8px;border-radius:999px;border:1px solid rgba(var(--exam-rgb),.4);background:rgba(var(--exam-rgb),.14);color:var(--exam-soft);white-space:nowrap}.progress-hub-exam-pill--passed{border-color:rgba(16,185,129,.45);background:rgba(16,185,129,.12);color:#6ee7b7}.progress-hub-exam-pill--failed{border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.14);color:#fca5a5}.progress-hub-exam-pill--pending{border-color:rgba(99,102,241,.45);background:rgba(99,102,241,.15);color:#a5b4fc}button.progress-hub-exam-pill--clickable{cursor:pointer;font:inherit;transition:filter .12s,transform .12s}button.progress-hub-exam-pill--clickable:hover{filter:brightness(1.12);transform:translateY(-1px)}.progress-hub-attendance{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap;border:1px solid transparent}.progress-hub-attendance-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}.progress-hub-attendance--present{color:#10b981;background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.32)}.progress-hub-attendance--absent{color:#ef4444;background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.32)}.progress-hub-attendance--before{color:#94a3b8;background:rgba(148,163,184,.14);border-color:rgba(148,163,184,.32)}.progress-hub-attendance--upcoming{color:#818cf8;background:rgba(99,102,241,.12);border-color:rgba(99,102,241,.32)}.progress-hub-attendance--catchup{color:#f59e0b;background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.34)}.progress-hub-session-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:0}.progress-hub-tier-grid{display:inline-flex;align-items:center;gap:6px}.progress-hub-tier-pip{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;font-size:11px;font-weight:800;letter-spacing:.02em;border:1px solid transparent;background:rgba(148,163,184,.14);color:#94a3b8;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease}.progress-hub-tier-pip:focus-visible,.progress-hub-tier-pip:hover{transform:translateY(-1px);border-color:currentColor;box-shadow:0 4px 12px -6px currentColor;outline:none}.progress-hub-tier-pip--not_assigned{background:rgba(148,163,184,.1);color:#94a3b8;border-color:rgba(148,163,184,.25);opacity:.65}.progress-hub-tier-pip--locked{background:rgba(71,85,105,.18);color:#64748b;border-color:rgba(71,85,105,.32)}.progress-hub-tier-pip--assigned{background:linear-gradient(135deg,rgba(99,102,241,.22),rgba(129,140,248,.28));color:#c7d2fe;border-color:rgba(129,140,248,.45)}.progress-hub-tier-pip--submitted{background:linear-gradient(135deg,rgba(245,158,11,.22),rgba(251,191,36,.32));color:#fbbf24;border-color:rgba(245,158,11,.5)}.progress-hub-tier-pip--needs_changes{background:linear-gradient(135deg,rgba(249,115,22,.22),rgba(251,146,60,.32));color:#fb923c;border-color:rgba(249,115,22,.5);animation:progressHubPipPulse 2.4s ease-in-out infinite}.progress-hub-tier-pip--missed{background:linear-gradient(135deg,rgba(239,68,68,.22),hsla(0,91%,71%,.32));color:#f87171;border-color:rgba(239,68,68,.55)}.progress-hub-tier-pip--completed{background:linear-gradient(135deg,#059669,#10b981);color:#ecfdf5;border-color:rgba(16,185,129,.7);box-shadow:inset 0 0 0 1px rgba(16,185,129,.18),0 6px 14px -8px rgba(16,185,129,.7)}@keyframes progressHubPipPulse{0%,to{box-shadow:0 0 0 0 rgba(249,115,22,0)}50%{box-shadow:0 0 0 4px rgba(249,115,22,.18)}}.progress-hub-due{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.01em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.progress-hub-due--overdue{color:#ff2e63;font-weight:800;text-shadow:0 0 12px rgba(255,46,99,.32);animation:progressHubOverdueFlash 2.6s ease-in-out infinite}@keyframes progressHubOverdueFlash{0%,to{opacity:1}50%{opacity:.7}}.progress-hub-session-chevron{font-size:13px;color:var(--muted);padding:0 4px;align-self:center}.progress-hub-tier-detail{display:flex;flex-direction:column;gap:12px;margin:10px 0 2px 12px;padding-bottom:2px;border-left:2px dashed rgba(99,102,241,.22);padding-left:12px;width:calc(100% - 12px);min-width:0;box-sizing:border-box}.progress-hub-tier-detail .hw-track-section{gap:8px}.progress-hub-tier-detail .hw-track-section__head{margin-bottom:2px}.progress-hub-tier-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:10px;gap:10px;width:100%;min-width:0}.progress-hub-tier-cell{display:flex;min-width:0}.progress-hub-tier-cell>.my-progress-tier,.progress-hub-tier-cell>.my-progress-tier-spacer,.progress-hub-tier-cell>button.my-progress-tier{flex:1 1;width:100%;min-width:0}.progress-hub-tier-cell--hacker .my-progress-tier--compact:not(.my-progress-tier--empty){border-color:rgba(167,139,250,.38);background:linear-gradient(165deg,rgba(139,92,246,.14),rgba(99,102,241,.06))}.my-progress-tier--compact{display:flex;flex-direction:column;gap:6px;min-height:0;min-width:0;width:100%;box-sizing:border-box;padding:10px 10px 8px;border-radius:14px;border:1px solid rgba(99,102,241,.28);background:linear-gradient(165deg,rgba(99,102,241,.1) 0,rgba(15,23,42,.55) 55%,var(--bg) 100%);box-shadow:0 4px 18px -14px rgba(99,102,241,.55);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.my-progress-tier--compact:hover{transform:translateY(-2px);border-color:rgba(129,140,248,.55);box-shadow:0 10px 28px -16px rgba(99,102,241,.65)}.my-progress-tier--compact.my-progress-tier--completed{border-color:rgba(16,185,129,.55);background:linear-gradient(165deg,rgba(16,185,129,.16),rgba(6,78,59,.12));box-shadow:inset 0 0 0 1px rgba(16,185,129,.12),0 8px 22px -14px rgba(16,185,129,.55)}.my-progress-tier--compact.my-progress-tier--needs-changes{border-color:rgba(249,115,22,.55);animation:progressHubCompactPulse 2.4s ease-in-out infinite}@keyframes progressHubCompactPulse{0%,to{box-shadow:0 0 0 0 rgba(249,115,22,0)}50%{box-shadow:0 0 0 3px rgba(249,115,22,.14)}}.my-progress-tier--compact.my-progress-tier--empty{opacity:.55;border-style:dashed;justify-content:center;align-items:center;min-height:88px;text-align:center}.my-progress-tier--compact.my-progress-tier--clickable{cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%}.my-progress-tier-compact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.my-progress-tier-compact-num{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:10px;font-size:13px;font-weight:900;letter-spacing:-.02em;color:#fff;background:linear-gradient(135deg,#6366f1,#818cf8);box-shadow:0 4px 12px -6px rgba(99,102,241,.7)}.my-progress-tier--compact[data-tier="1"] .my-progress-tier-compact-num{background:linear-gradient(135deg,#22c55e,#4ade80);box-shadow:0 4px 12px -6px rgba(34,197,94,.65)}.my-progress-tier--compact[data-tier="2"] .my-progress-tier-compact-num{background:linear-gradient(135deg,#06b6d4,#22d3ee);box-shadow:0 4px 12px -6px rgba(6,182,212,.65)}.my-progress-tier--compact[data-tier="3"] .my-progress-tier-compact-num{background:linear-gradient(135deg,#6366f1,#818cf8)}.my-progress-tier--compact[data-tier="4"] .my-progress-tier-compact-num{background:linear-gradient(135deg,#a855f7,#c084fc);box-shadow:0 4px 12px -6px rgba(168,85,247,.65)}.my-progress-tier--compact[data-tier="5"] .my-progress-tier-compact-num{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#1f1300;box-shadow:0 4px 12px -6px rgba(245,158,11,.65)}.my-progress-tier-compact-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.my-progress-tier-due--compact{font-size:10px!important;font-weight:600;line-height:1.25;opacity:.88}.my-progress-tier--compact .hw-tier-quick-feedback--strip{margin-top:2px;padding:4px 6px;border-radius:8px;font-size:10px}.my-progress-tier-compact-alert{display:inline-flex;align-items:center;align-self:flex-start;padding:2px 7px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#fb923c;background:rgba(249,115,22,.14);border:1px solid rgba(249,115,22,.35)}.my-progress-tier-lock--compact{margin:0;font-size:10px;line-height:1.3}.my-progress-tier-compact-footer{margin-top:auto;padding-top:4px}.my-progress-tier-compact-action{display:flex;align-items:center;justify-content:center;width:100%;padding:6px 8px;border-radius:10px;border:1px solid rgba(99,102,241,.45);background:linear-gradient(135deg,rgba(99,102,241,.22),rgba(129,140,248,.28));color:#e0e7ff;font-size:10px;font-weight:800;letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:transform .12s ease,filter .12s ease,box-shadow .12s ease}.my-progress-tier-compact-action:hover{transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 6px 16px -10px rgba(99,102,241,.8)}.my-progress-tier-compact-action--primary{border-color:rgba(129,140,248,.55);background:linear-gradient(135deg,#6366f1,#818cf8);color:#fff}.my-progress-tier-compact-tap-hint{margin-top:auto;font-size:10px;font-weight:700;color:var(--muted);opacity:.85}.my-progress-tier--compact.my-progress-tier--completed .my-progress-tier-compact-action--primary{background:linear-gradient(135deg,#059669,#10b981);border-color:rgba(16,185,129,.55)}.my-progress-tier-spacer--compact{min-height:88px;border-radius:14px}.my-progress-tier--compact .my-progress-tier-empty-msg{margin:4px 0 0;font-size:10px}@media (max-width:1100px){.progress-hub-tier-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:720px){.progress-hub-tier-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.progress-hub-tier-cards{grid-template-columns:1fr 1fr;gap:8px}.my-progress-tier--compact{padding:8px}}.progress-hub-session--focus>.progress-hub-session-row{border-color:rgba(99,102,241,.7);box-shadow:0 0 0 3px rgba(99,102,241,.18),0 8px 24px -10px rgba(99,102,241,.6);animation:progressHubFocusPulse 1.6s ease-out 1}@keyframes progressHubFocusPulse{0%{box-shadow:0 0 0 0 rgba(99,102,241,.5),0 8px 24px -10px rgba(99,102,241,.6)}to{box-shadow:0 0 0 3px rgba(99,102,241,.18),0 8px 24px -10px rgba(99,102,241,.6)}}.progress-hub-session--online-slot{position:relative;padding:2px;border-radius:16px;background:linear-gradient(135deg,rgba(99,102,241,.35),rgba(167,85,247,.28) 55%,rgba(236,72,153,.22));box-shadow:0 12px 32px -20px rgba(99,102,241,.45)}.progress-hub-session--online-slot[data-session-kind=side_quest]{background:linear-gradient(135deg,rgba(167,85,247,.42),rgba(245,158,11,.32) 55%,rgba(236,72,153,.28));box-shadow:0 14px 36px -20px rgba(167,85,247,.45)}.progress-hub-session--online-slot[data-session-kind=exam]{background:linear-gradient(135deg,rgba(var(--exam-rgb),.42),rgba(var(--exam-rgb),.28) 55%,rgba(var(--exam-rgb),.34));box-shadow:0 14px 36px -20px rgba(var(--exam-rgb),.38)}.progress-hub-online-slot-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px;border-radius:14px;background:var(--bg-card);border:1px solid hsla(0,0%,100%,.06)}.progress-hub-online-slot-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:10px 12px;gap:10px 12px;align-items:start}.progress-hub-online-slot-index{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;font-size:12px;font-weight:800;background:rgba(99,102,241,.18);border:1px solid rgba(99,102,241,.28);color:#c7d2fe}.progress-hub-session--online-slot[data-session-kind=side_quest] .progress-hub-online-slot-index{background:linear-gradient(135deg,rgba(167,85,247,.28),rgba(245,158,11,.22));border-color:rgba(245,158,11,.35);color:#fef3c7}.progress-hub-session--online-slot[data-session-kind=exam] .progress-hub-online-slot-index{background:linear-gradient(135deg,rgba(var(--exam-rgb),.28),rgba(var(--exam-rgb),.34));border-color:rgba(var(--exam-rgb),.38);color:var(--exam-muted)}.progress-hub-online-slot-headline{display:flex;flex-direction:column;gap:4px;min-width:0}.progress-hub-online-slot-kind{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:rgba(199,210,254,.92)}.progress-hub-session--online-slot[data-session-kind=side_quest] .progress-hub-online-slot-kind{color:#fde68a}.progress-hub-session--online-slot[data-session-kind=exam] .progress-hub-online-slot-kind{color:var(--exam-muted)}.progress-hub-online-slot-icon{font-size:13px;line-height:1}.progress-hub-online-slot-academic-month{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:none;color:var(--muted);padding:1px 6px;border-radius:999px;border:1px solid color-mix(in srgb,var(--exam-muted) 35%,transparent);background:color-mix(in srgb,var(--exam-muted) 10%,transparent)}.progress-hub-online-slot-title{font-size:14px;font-weight:700;color:var(--text);line-height:1.35}.progress-hub-online-slot-date,.progress-hub-online-slot-pace{font-size:11.5px;font-weight:600;color:var(--muted);white-space:nowrap}.progress-hub-online-slot-pace{font-weight:500;font-style:italic;opacity:.85}.progress-hub-online-slot-brief{margin:0;font-size:13px;line-height:1.45;color:var(--text);opacity:.92}.progress-hub-online-slot-hint{margin:0;font-size:11.5px;line-height:1.4;color:var(--muted)}.progress-hub-online-slot-work{margin-top:2px;padding-top:10px;border-top:1px solid hsla(0,0%,100%,.06)}.progress-hub-session--online-slot[data-session-kind=side_quest] .progress-hub-online-slot-work{border-top-color:rgba(245,158,11,.12)}.progress-hub-session--online-slot[data-session-kind=exam] .progress-hub-online-slot-work{border-top-color:rgba(var(--exam-rgb),.14)}.progress-hub-online-slot-actions{display:flex;flex-wrap:wrap;gap:8px}.homework-primary-action,.progress-hub-online-slot-action{display:inline-flex;align-items:center;justify-content:center;padding:7px 14px;border-radius:999px;font-size:12px;font-weight:700;text-decoration:none;border:none;cursor:pointer;background:linear-gradient(135deg,rgba(99,102,241,.92),rgba(129,140,248,.88));color:#fff;box-shadow:0 6px 16px -8px rgba(99,102,241,.65)}.progress-hub-session--online-slot[data-session-kind=side_quest] .homework-primary-action,.progress-hub-session--online-slot[data-session-kind=side_quest] .progress-hub-online-slot-action{background:linear-gradient(135deg,#a855f7,#f59e0b);color:#1f1300;box-shadow:0 6px 16px -8px rgba(245,158,11,.55)}.progress-hub-session--online-slot[data-session-kind=exam] .homework-primary-action,.progress-hub-session--online-slot[data-session-kind=exam] .progress-hub-online-slot-action{background:linear-gradient(135deg,var(--exam),var(--exam-2));color:#fff;box-shadow:0 6px 16px -8px rgba(var(--exam-rgb),.45)}.homework-primary-action:hover,.progress-hub-online-slot-action:hover{filter:brightness(1.06)}.point-value-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.02em;white-space:nowrap;color:#fbbf24;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.35)}.point-value-badge--earned{color:#6ee7b7;background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.35)}.point-value-badge--compact{padding:2px 6px;font-size:10px}.point-value-badge__icon{font-size:10px;line-height:1;opacity:.9}[data-theme=light] .point-value-badge{color:#b45309;background:rgba(245,158,11,.14)}[data-theme=light] .point-value-badge--earned{color:#047857;background:rgba(16,185,129,.12)}[data-theme=light] .progress-hub-online-slot-card{border-color:rgba(15,23,42,.08)}[data-theme=light] .progress-hub-session--online-slot[data-session-kind=side_quest] .progress-hub-online-slot-kind{color:#7c3aed}[data-theme=light] .progress-hub-session--online-slot[data-session-kind=exam] .progress-hub-online-slot-kind{color:#e11d48}.progress-hub-session--exam{position:relative;padding:2px;border-radius:18px;background:linear-gradient(135deg,rgba(var(--exam-rgb),.42),rgba(var(--exam-rgb),.32) 50%,rgba(var(--exam-rgb),.38));box-shadow:0 18px 44px -22px rgba(var(--exam-rgb),.35),0 0 0 1px rgba(var(--exam-rgb),.18) inset}.progress-hub-session--exam>.progress-hub-session-row{border-radius:16px;background:linear-gradient(135deg,rgba(var(--exam-rgb),.14),rgba(var(--exam-rgb),.07) 60%,rgba(15,23,42,0)),var(--bg-card);border-color:transparent}.progress-hub-session--exam>.progress-hub-session-row.is-open,.progress-hub-session--exam>.progress-hub-session-row:hover{background:linear-gradient(135deg,rgba(var(--exam-rgb),.22),rgba(var(--exam-rgb),.1) 60%,rgba(99,102,241,.06)),var(--bg-card);box-shadow:0 12px 32px -22px rgba(var(--exam-rgb),.32)}.progress-hub-session--exam .progress-hub-session-index{background:linear-gradient(135deg,rgba(var(--exam-rgb),.32),rgba(var(--exam-rgb),.38));border-color:rgba(var(--exam-rgb),.42);color:var(--exam-muted)}.progress-hub-exam-banner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 18px 8px;background:linear-gradient(135deg,rgba(var(--exam-rgb),.18),rgba(var(--exam-rgb),.1));color:var(--exam-muted);border-radius:16px 16px 0 0;overflow:hidden}.progress-hub-exam-glow{position:absolute;inset:-60% -20% auto -20%;height:180%;background:radial-gradient(closest-side,rgba(var(--exam-rgb),.35),transparent 70%);pointer-events:none;filter:blur(2px);z-index:0}.progress-hub-exam-banner-badge{position:relative;z-index:1;display:inline-flex;align-items:center;gap:7px;padding:4px 12px;border-radius:999px;font-size:11.5px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(135deg,var(--exam),var(--exam-2));color:#fff;box-shadow:0 0 0 1px hsla(0,0%,100%,.2) inset,0 6px 18px -6px rgba(var(--exam-rgb),.4);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-hub-exam-banner-icon{font-size:12px;flex-shrink:0}[data-theme=light] .progress-hub-session--exam>.progress-hub-session-row{background:linear-gradient(135deg,rgba(var(--exam-rgb),.1),rgba(var(--exam-rgb),.05) 60%,transparent),var(--bg-card)}[data-theme=light] .progress-hub-exam-banner{color:#e11d48}.group-syllabus-timeline__item--exam{border-color:rgba(var(--exam-rgb),.38);background:linear-gradient(135deg,rgba(var(--exam-rgb),.12),rgba(var(--exam-rgb),.05));box-shadow:0 0 0 1px rgba(var(--exam-rgb),.1) inset}.group-syllabus-timeline__item--exam .group-syllabus-timeline__marker{background:rgba(var(--exam-rgb),.2);color:var(--exam-soft);border:1px solid rgba(var(--exam-rgb),.32)}.parent-attendance-session--exam .parent-attendance-session-card{border-color:rgba(var(--exam-rgb),.4)!important;background:linear-gradient(135deg,rgba(var(--exam-rgb),.14),rgba(var(--exam-rgb),.07))!important;box-shadow:0 0 0 1px rgba(var(--exam-rgb),.12) inset}.parent-attendance-session--exam .parent-attendance-timeline-dot{background:var(--exam)!important;box-shadow:0 0 0 3px rgba(var(--exam-rgb),.22)!important}.calendar-session-tile--exam{outline:2px solid rgba(var(--exam-rgb),.55);outline-offset:1px}.calendar-day-modal-item--exam-session{border-left-color:var(--exam)!important;background:linear-gradient(90deg,rgba(var(--exam-rgb),.12),var(--bg-card) 40%)!important}@media (max-width:880px){.progress-hub-session-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"idx  title    chevron" "idx  middle   chevron" "right right   right";row-gap:8px}.progress-hub-session-index{grid-area:idx}.progress-hub-session-headline{grid-area:title}.progress-hub-session-left{display:contents}.progress-hub-session-middle{grid-area:middle;justify-content:flex-start}.progress-hub-session-right{grid-area:right;align-items:flex-start}.progress-hub-session-chevron{grid-area:chevron}.progress-hub-online-slot-head{grid-template-columns:auto minmax(0,1fr)}.progress-hub-online-slot-date{grid-column:2}.progress-hub-header{padding:18px 18px 20px}.progress-hub-header-grid{grid-template-columns:1fr;gap:18px}.progress-hub-module-trigger{grid-template-columns:auto minmax(0,1fr) auto}.progress-hub-module-trigger .progress-hub-module-rail{grid-column:1/-1;margin-top:4px}.progress-hub-module-body{padding:4px 14px 16px}}@media (max-width:1080px){.app-shell{grid-template-columns:1fr}.app-shell-menu-btn{display:inline-flex}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(var(--sidebar-w),88vw);z-index:60;flex-direction:column;flex-wrap:nowrap;height:100dvh;transform:translateX(-105%);transition:transform var(--transition-base);box-shadow:var(--shadow)}.sidebar.sidebar--drawer-open{transform:translateX(0)}.sidebar-backdrop{display:block}.finance-main-split,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.finance-accounts-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.finance-report-toolbar__meta{margin-left:0;width:100%}.finance-tabs{width:100%}.finance-tabs .crm-tab{flex:1 1;justify-content:center}.finance-stats-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.kanban-board{flex-direction:column}.kanban-col{min-width:unset;max-width:unset;width:100%}.staff-page-chrome .catalog-approvals-toolbar,.staff-page-chrome .crm-search,.staff-page-chrome .crm-tabs,.staff-page-chrome .finance-tabs,.staff-page-chrome .teacher-review-toolbar,.staff-page-toolbar .section-head{flex-wrap:wrap;width:100%}.staff-page-chrome .crm-tab,.staff-page-chrome .finance-tabs .crm-tab{flex:1 1 auto;min-width:0;justify-content:center}.staff-page-chrome .page-header__actions{flex-wrap:wrap;width:100%}.staff-page-chrome .catalog-approvals-toolbar__tabs{width:100%}}[data-parent-workspace]{--parent-shell-header-h:60px;--portal-shell-header-h:var(--parent-shell-header-h);--parent-bg-base:#070b18;--parent-bg-mesh-1:rgba(99,102,241,.18);--parent-bg-mesh-2:rgba(16,185,129,.12);--parent-bg-mesh-3:rgba(45,212,191,.07);--parent-surface:hsla(0,0%,100%,.052);--parent-surface-hover:hsla(0,0%,100%,.075);--parent-glass-border:hsla(0,0%,100%,.11);--parent-accent-dashboard:#6366f1;--parent-accent-academics:#10b981;--parent-accent-attendance:#f59e0b;--parent-accent-homework:#a78bfa;--parent-accent-payments:#2dd4bf;--parent-accent-profile:#fb7185;--parent-route-accent:var(--parent-accent-dashboard);--bg:var(--parent-bg-base);--bg-card:var(--parent-surface)}[data-parent-workspace][data-parent-route=dashboard]{--parent-route-accent:var(--parent-accent-dashboard);--parent-bg-mesh-1:rgba(99,102,241,.2);--parent-bg-mesh-2:rgba(129,140,248,.1)}[data-parent-workspace][data-parent-route=academics]{--parent-route-accent:var(--parent-accent-academics);--parent-bg-mesh-1:rgba(16,185,129,.18);--parent-bg-mesh-2:rgba(52,211,153,.1)}[data-parent-workspace][data-parent-route=attendance]{--parent-route-accent:var(--parent-accent-attendance);--parent-bg-mesh-1:rgba(245,158,11,.16);--parent-bg-mesh-2:rgba(251,191,36,.09)}[data-parent-workspace][data-parent-route=homework]{--parent-route-accent:var(--parent-accent-homework);--parent-bg-mesh-1:rgba(167,139,250,.18);--parent-bg-mesh-2:rgba(196,181,253,.1)}[data-parent-workspace][data-parent-route=payments]{--parent-route-accent:var(--parent-accent-payments);--parent-bg-mesh-1:rgba(45,212,191,.16);--parent-bg-mesh-2:rgba(94,234,212,.09)}[data-parent-workspace][data-parent-route=profile]{--parent-route-accent:var(--parent-accent-profile);--parent-bg-mesh-1:rgba(251,113,133,.16);--parent-bg-mesh-2:rgba(253,164,175,.09)}@keyframes parent-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes parent-menu-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes parent-dropdown-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.parent-shell{position:relative;min-height:100vh;display:flex;flex-direction:column;background:var(--parent-bg-base);isolation:isolate}.parent-shell:before{background:radial-gradient(ellipse 85% 55% at 8% -8%,var(--parent-bg-mesh-1),transparent 58%),radial-gradient(ellipse 70% 48% at 92% 2%,var(--parent-bg-mesh-2),transparent 52%),radial-gradient(ellipse 55% 42% at 50% 105%,var(--parent-bg-mesh-3),transparent 62%),radial-gradient(ellipse 42% 38% at 72% 48%,color-mix(in srgb,var(--parent-route-accent) 11%,transparent),transparent 68%);transition:background .55s ease}.parent-shell:after,.parent-shell:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0}.parent-shell:after{opacity:.4;background-image:radial-gradient(hsla(0,0%,100%,.035) 1px,transparent 0),radial-gradient(hsla(0,0%,100%,.02) 1px,transparent 0);background-size:36px 36px,52px 52px;background-position:0 0,18px 18px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.8) 0,rgba(0,0,0,.3) 60%,transparent);mask-image:linear-gradient(180deg,rgba(0,0,0,.8) 0,rgba(0,0,0,.3) 60%,transparent)}.parent-shell__chrome{position:-webkit-sticky;position:sticky;top:0;z-index:50;flex-shrink:0}.parent-shell>.parent-main{position:relative;z-index:1;flex:1 1;min-width:0}[data-parent-workspace] .parent-header{display:flex;align-items:center;gap:10px;height:60px;padding:0 20px;flex-wrap:nowrap;background:rgba(17,24,39,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--parent-glass-border);box-shadow:0 1px 0 hsla(0,0%,100%,.04),0 8px 32px rgba(0,0,0,.35)}[data-parent-workspace] .parent-header--narrow{padding:0 14px}@media (max-width:440px){[data-parent-workspace] .parent-header{gap:6px}.parent-brand__name{display:none}[data-parent-workspace] .parent-header__actions{gap:6px}}.parent-brand{display:flex;align-items:center;gap:8px;text-decoration:none;flex-shrink:0;transition:transform var(--transition-fast),opacity var(--transition-fast)}.parent-brand:hover{transform:scale(1.02);opacity:.95}.parent-brand__logo{font-size:22px;line-height:1}.parent-brand__name{font-weight:900;font-size:14px;color:var(--text);line-height:1.1}.parent-header__spacer{flex:1 1;min-width:8px}.parent-header__actions{gap:8px}.parent-avatar,.parent-header__actions{display:flex;align-items:center;flex-shrink:0}.parent-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#818cf8);justify-content:center;font-weight:800;font-size:12px;color:#fff;box-shadow:0 2px 12px rgba(99,102,241,.35)}.parent-chrome-btn{font-size:12px;color:var(--muted);background:hsla(0,0%,100%,.03);border:1px solid var(--line);border-radius:8px;padding:5px 12px;cursor:pointer;flex-shrink:0;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.parent-chrome-btn:hover{color:var(--text);border-color:color-mix(in srgb,var(--parent-route-accent) 40%,var(--line));background:hsla(0,0%,100%,.06);box-shadow:0 0 0 3px color-mix(in srgb,var(--parent-route-accent) 12%,transparent)}.parent-chrome-btn--icon{padding:4px 9px;font-size:15px}.parent-nav{gap:2px;flex:1 1;overflow:hidden;min-width:0}.parent-nav,.parent-nav__link{display:flex;align-items:center}.parent-nav__link{gap:5px;padding:6px 10px;border-radius:9px;font-size:11px;font-weight:600;text-decoration:none;color:var(--muted);background:transparent;border:1px solid transparent;white-space:nowrap;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.parent-nav__link:hover{color:var(--text);background:hsla(0,0%,100%,.05);transform:translateY(-1px)}.parent-nav__link[data-active=true]{color:var(--text);border-color:color-mix(in srgb,var(--parent-route-accent) 35%,transparent);box-shadow:0 2px 12px color-mix(in srgb,var(--parent-route-accent) 18%,transparent)}.parent-nav__link[data-route=dashboard][data-active=true]{background:linear-gradient(135deg,rgba(99,102,241,.22),rgba(99,102,241,.08));color:#a5b4fc}.parent-nav__link[data-route=academics][data-active=true]{background:linear-gradient(135deg,rgba(16,185,129,.22),rgba(16,185,129,.08));color:#6ee7b7}.parent-nav__link[data-route=attendance][data-active=true]{background:linear-gradient(135deg,rgba(245,158,11,.22),rgba(245,158,11,.08));color:#fcd34d}.parent-nav__link[data-route=homework][data-active=true]{background:linear-gradient(135deg,rgba(167,139,250,.22),rgba(167,139,250,.08));color:#c4b5fd}.parent-nav__link[data-route=payments][data-active=true]{background:linear-gradient(135deg,rgba(45,212,191,.22),rgba(45,212,191,.08));color:#5eead4}.parent-nav__link[data-route=profile][data-active=true]{background:linear-gradient(135deg,rgba(251,113,133,.22),rgba(251,113,133,.08));color:#fda4af}.parent-nav__icon{font-size:13px;line-height:1}.parent-mobile-menu{border-bottom:1px solid var(--parent-glass-border);background:rgba(17,24,39,.92);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:12px 14px 16px;display:flex;flex-direction:column;gap:4px;z-index:49;animation:parent-menu-in .22s ease}.parent-mobile-menu .parent-nav{flex-direction:column;align-items:stretch;overflow:visible}.parent-mobile-menu .parent-nav__link{padding:10px 14px;font-size:13px;gap:10px;border-radius:10px;animation:parent-fade-in .28s ease backwards}.parent-mobile-menu .parent-nav__link:first-child{animation-delay:.02s}.parent-mobile-menu .parent-nav__link:nth-child(2){animation-delay:.04s}.parent-mobile-menu .parent-nav__link:nth-child(3){animation-delay:.06s}.parent-mobile-menu .parent-nav__link:nth-child(4){animation-delay:.08s}.parent-mobile-menu .parent-nav__link:nth-child(5){animation-delay:.1s}.parent-mobile-menu .parent-nav__link:nth-child(6){animation-delay:.12s}.parent-mobile-menu .parent-nav__icon{font-size:15px;width:20px;text-align:center;flex-shrink:0}.parent-mobile-menu__signout{margin-top:10px;text-align:left;width:100%}.parent-main{flex:1 1;min-width:0;max-width:1180px;width:100%;margin:0 auto;padding:28px 24px 64px;position:relative}.parent-main:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(100%,920px);height:140px;pointer-events:none;background:radial-gradient(ellipse 80% 100% at 50% 0,color-mix(in srgb,var(--parent-route-accent) 18%,transparent),transparent 72%);opacity:.9;transition:background .5s ease}.parent-main--narrow{padding:22px 16px 64px}.parent-main>*{position:relative;z-index:1}.parent-stack{display:flex;flex-direction:column;gap:20px}.parent-stack--lg{gap:24px}.parent-page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 16px;animation:parent-fade-in .35s ease;position:-webkit-sticky;position:sticky;top:var(--parent-shell-header-h);z-index:30;background:rgba(7,11,24,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-bottom:12px;margin-bottom:12px;box-shadow:0 1px 0 var(--parent-glass-border)}.parent-page-header__text{min-width:0}.parent-page-header__title{font-size:22px;font-weight:900;color:var(--text);margin:0 0 5px;letter-spacing:-.02em}.parent-page-header__subtitle{margin:0;font-size:12px;color:var(--muted);line-height:1.5;max-width:520px}.parent-page-header__actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.parent-field-label{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0}.parent-surface{background:var(--parent-surface);border:1px solid var(--parent-glass-border);border-radius:16px;overflow:hidden;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.04),0 4px 24px rgba(0,0,0,.2);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.parent-surface:hover{border-color:color-mix(in srgb,var(--parent-route-accent) 22%,var(--parent-glass-border))}.parent-surface--flush{padding:0;overflow:visible;background:transparent;border:none;-webkit-backdrop-filter:none;backdrop-filter:none}.parent-surface--flush:hover{border-color:transparent;box-shadow:none}.parent-surface__head{padding:14px 18px;margin-bottom:0;border-bottom:1px solid var(--line);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.parent-surface__body{padding:14px 18px}.parent-surface__body--flush{padding:0}.parent-hero{border-radius:18px;border:1px solid var(--parent-glass-border);background:linear-gradient(135deg,color-mix(in srgb,var(--parent-route-accent) 10%,transparent),var(--parent-surface) 45%);overflow:hidden;animation:parent-fade-in .4s ease;transition:box-shadow var(--transition-base)}.parent-hero:hover{box-shadow:0 8px 40px color-mix(in srgb,var(--parent-route-accent) 12%,transparent)}.parent-metric{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:12px;background:rgba(0,0,0,.2);border:1px solid var(--line);min-width:0;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.parent-metric:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--parent-route-accent) 30%,var(--line));box-shadow:0 6px 20px rgba(0,0,0,.25)}.parent-metric--highlight{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.35)}.parent-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px}.parent-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px}.parent-grid-2{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px}@media (min-width:900px){.parent-grid-2{grid-template-columns:1fr 1fr;align-items:start}.parent-grid-2--attendance{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}.parent-scroll-region{max-height:min(55vh,520px);overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.15) transparent}.parent-scroll-region--history{max-height:min(40vh,400px)}.parent-child-switcher{position:relative;flex-shrink:0}.parent-child-switcher--full{width:100%}.parent-child-switcher__trigger{display:flex;align-items:center;gap:8px;width:100%;padding:5px 10px;border-radius:10px;border:1.5px solid var(--line);background:var(--parent-surface);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);outline:none}.parent-child-switcher__trigger--expanded{padding:10px 12px;border-radius:12px;gap:10px}.parent-child-switcher__trigger:hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:rgba(99,102,241,.06)}.parent-child-switcher__trigger--open{border-color:var(--brand);background:rgba(99,102,241,.1);box-shadow:0 0 0 3px rgba(99,102,241,.16)}.parent-child-switcher__trigger:disabled{cursor:wait;opacity:.7}.parent-child-switcher__eyebrow{font-size:9px;font-weight:800;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;line-height:1;margin-bottom:3px}.parent-child-switcher__label{flex:1 1;min-width:0;text-align:left;font-size:12px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parent-child-switcher__label--lg{font-size:13px}.parent-child-switcher__chevron{flex-shrink:0;color:var(--muted);transition:transform .15s ease}.parent-child-switcher__trigger--open .parent-child-switcher__chevron{transform:rotate(180deg)}.parent-child-switcher__avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;flex-shrink:0;transition:box-shadow .2s ease}.parent-child-switcher__avatar--glow{box-shadow:0 3px 14px rgba(99,102,241,.45)}.parent-child-switcher__menu{position:absolute;top:calc(100% + 6px);right:0;min-width:240px;z-index:60;background:rgba(17,24,39,.96);border:1px solid var(--parent-glass-border);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.55);overflow:hidden;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:parent-dropdown-in .2s ease}.parent-child-switcher__menu-head{padding:9px 14px 8px;font-size:10px;font-weight:800;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--line)}.parent-child-switcher__option{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border:none;background:transparent;cursor:pointer;transition:background .12s ease,padding-left .12s ease;outline:none;text-align:left;border-bottom:1px solid var(--line)}.parent-child-switcher__option:last-child{border-bottom:none}.parent-child-switcher__option:focus-visible,.parent-child-switcher__option:hover{background:hsla(0,0%,100%,.05);padding-left:18px}.parent-child-switcher__option--active{background:rgba(99,102,241,.12);border-left:3px solid var(--brand)}.parent-child-switcher__option-name{flex:1 1;min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parent-child-switcher__option--active .parent-child-switcher__option-name{font-weight:700;color:var(--brand)}.parent-timeline-session{transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.parent-timeline-session:hover{transform:translateX(4px)}.parent-day-panel{animation:parent-fade-in .28s ease;border-radius:12px;border:1px solid color-mix(in srgb,var(--parent-route-accent) 25%,var(--line));background:color-mix(in srgb,var(--parent-route-accent) 6%,var(--parent-surface))}[data-parent-workspace] .portal-card{background:var(--parent-surface);border-color:var(--parent-glass-border);border-radius:16px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.04),0 4px 24px rgba(0,0,0,.2);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}[data-parent-workspace] .portal-card:hover{border-color:color-mix(in srgb,var(--parent-route-accent) 28%,var(--parent-glass-border));box-shadow:0 1px 0 hsla(0,0%,100%,.05) inset,0 8px 32px color-mix(in srgb,var(--parent-route-accent) 10%,rgba(0,0,0,.28))}[data-parent-workspace] .progress-hub{gap:14px}[data-parent-workspace] .progress-hub-header{padding:16px 18px 18px;border-radius:16px}[data-parent-workspace] .progress-hub-module-trigger{padding:12px 14px}[data-parent-workspace] .progress-hub-module-body{padding:4px 12px 14px}[data-parent-workspace] .progress-hub-session-row{padding:10px 12px}[data-parent-workspace] .hw-dashboard-tier{margin-bottom:10px}[data-parent-workspace] .hw-tier-card{padding:10px 12px}[data-parent-workspace] .hw-dashboard-summary{padding:12px 14px}.parent-list-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;background:color-mix(in srgb,var(--parent-route-accent) 6%,transparent);border:1px solid color-mix(in srgb,var(--parent-route-accent) 18%,var(--line));transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.parent-list-row:hover{transform:translateX(3px);background:color-mix(in srgb,var(--parent-route-accent) 10%,transparent)}.parent-kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px}.parent-kpi-card{padding:16px 18px;border-radius:14px;background:var(--parent-surface);border:1px solid var(--parent-glass-border);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.parent-kpi-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.22)}.parent-profile-hero{padding:24px 22px;border-radius:18px;border:1px solid var(--parent-glass-border);animation:parent-fade-in .4s ease}.parent-payment-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;transition:box-shadow var(--transition-fast)}.parent-payment-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.2)}.parent-payments-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--parent-glass-border)}.parent-payments-summary__month{font-size:15px;font-weight:800;color:var(--text)}.parent-payments-summary__badge{font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px}.parent-payments-summary__badge--ok{color:#10b981;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.28)}.parent-payments-summary__badge--due{color:#dc2626;background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.28)}.parent-payments-summary__meta{font-size:12px;color:var(--muted);font-weight:600}.parent-payments-ledger{display:flex;flex-direction:column;gap:8px}.parent-payments-ledger__empty{margin:0;font-size:13px;color:var(--muted)}.parent-payments-row{border-radius:14px;border:1px solid var(--parent-glass-border);background:color-mix(in srgb,var(--parent-surface) 92%,transparent);overflow:hidden;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.parent-payments-row:hover{border-color:color-mix(in srgb,var(--parent-route-accent) 35%,var(--parent-glass-border))}.parent-payments-row--open{border-color:color-mix(in srgb,var(--parent-route-accent) 45%,var(--parent-glass-border));box-shadow:0 8px 28px rgba(0,0,0,.18)}.parent-payments-row--overdue{border-color:rgba(220,38,38,.4)}.parent-payments-row--paid{border-color:rgba(16,185,129,.32)}.parent-payments-row__head{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;background:transparent;border:none;cursor:pointer;text-align:left;color:inherit;font:inherit}.parent-payments-row__chevron{flex-shrink:0;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s ease;margin-top:-2px}.parent-payments-row__chevron--open{transform:rotate(45deg);margin-top:2px}.parent-payments-row__main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.parent-payments-row__name{font-size:14px;font-weight:800;color:var(--text)}.parent-payments-row__courses{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parent-payments-row__meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.parent-payments-row__amount{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap}.parent-payments-row__body{padding:0 16px 16px;border-top:1px solid var(--parent-glass-border);animation:parent-fade-in .2s ease}.parent-payments-row__hint{margin:12px 0 10px;font-size:11px;color:var(--muted);line-height:1.5}.parent-payments-row__outstanding{margin-bottom:12px;padding:8px 12px;border-radius:8px;font-size:12px;font-weight:600;color:#dc2626;background:rgba(220,38,38,.06);border:1px solid rgba(220,38,38,.22)}.parent-payments-enrollment{margin-bottom:14px}.parent-payments-enrollment:last-child{margin-bottom:0}.parent-payments-enrollment__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.parent-payments-enrollment__title{margin:0;font-size:12px;font-weight:800;color:var(--text)}.parent-payments-enrollment__group{display:block;font-size:10px;color:var(--muted);margin-top:2px}.parent-payments-enrollment__remaining{font-size:10px;font-weight:800;color:#f59e0b;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.parent-payments-enrollment__empty{margin:0;padding:8px 0;font-size:12px;color:var(--muted)}.parent-payments-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--line)}.parent-payments-table{width:100%;border-collapse:collapse;font-size:12px}.parent-payments-table th{text-align:left;padding:8px 12px;font-size:9px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.parent-payments-table td,.parent-payments-table th{border-bottom:1px solid var(--line);white-space:nowrap}.parent-payments-table td{padding:9px 12px;color:var(--text)}.parent-payments-table tbody tr:last-child td{border-bottom:none}.parent-payments-table__row--due{background:rgba(220,38,38,.04)}.parent-payments-table__note{color:var(--muted);max-width:200px;white-space:normal}.parent-payments-chip{display:inline-block;font-size:10px;font-weight:800;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;border:1px solid transparent}.parent-payments-chip--compact{font-size:9px;padding:2px 8px}.parent-payments-chip--paid{color:#10b981;background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.28)}.parent-payments-chip--unpaid{color:#818cf8;background:rgba(129,140,248,.1);border-color:rgba(129,140,248,.28)}.parent-payments-chip--overdue{color:#dc2626;background:rgba(220,38,38,.1);border-color:rgba(220,38,38,.3)}.parent-payments-chip--free{color:#94a3b8;background:rgba(148,163,184,.12);border-color:rgba(148,163,184,.28)}.parent-payments-footer{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.55;color:var(--muted)}@media (max-width:640px){.parent-payments-row__head{flex-wrap:wrap}.parent-payments-row__meta{width:100%;flex-direction:row;justify-content:space-between;align-items:center}}.parent-homework-workspace{display:flex;flex-direction:column;min-height:min(72vh,640px);max-height:min(calc(100vh - 200px),720px)}.parent-homework-workspace__tabs{display:flex;gap:6px;padding:4px;margin-bottom:12px;border-radius:12px;background:rgba(0,0,0,.25);border:1px solid var(--parent-glass-border);flex-shrink:0}.parent-homework-workspace__tab{flex:1 1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:9px;border:1px solid transparent;background:transparent;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.parent-homework-workspace__tab:hover{color:var(--text);background:hsla(0,0%,100%,.05)}.parent-homework-workspace__tab--active{color:var(--text);background:linear-gradient(135deg,color-mix(in srgb,var(--parent-accent-homework) 22%,transparent),color-mix(in srgb,var(--parent-accent-homework) 8%,transparent));border-color:color-mix(in srgb,var(--parent-accent-homework) 35%,transparent);box-shadow:0 4px 16px color-mix(in srgb,var(--parent-accent-homework) 15%,transparent)}.parent-homework-workspace__tab-count{font-size:11px;font-weight:800;opacity:.75;padding:2px 8px;border-radius:999px;background:hsla(0,0%,100%,.08)}.parent-homework-workspace__panel{display:flex;flex-direction:column;flex:1 1;min-height:0}.parent-homework-workspace__banner{margin:0 0 10px;font-size:12px;color:var(--muted);flex-shrink:0}.parent-homework-workspace__scroll{flex:1 1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.15) transparent}.parent-homework-workspace .hw-track--scroll-list,.parent-homework-workspace__homework{display:flex;flex-direction:column;flex:1 1;min-height:0}.parent-homework-workspace .hw-track--scroll-list{gap:0}.parent-homework-workspace .hw-dashboard-status-tabs{flex-shrink:0;position:relative;z-index:1}.parent-homework-workspace .hw-dashboard-list-scroll{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.15) transparent}.hw-session-toggle{flex-shrink:0;width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:hsla(0,0%,100%,.04);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background var(--transition-fast),border-color var(--transition-fast)}.hw-session-toggle:hover{background:rgba(99,102,241,.12);border-color:rgba(99,102,241,.35)}.hw-session-toggle__chevron{font-size:18px;font-weight:900;color:var(--muted);line-height:1;transition:transform var(--transition-fast);display:inline-block}.hw-session-toggle__chevron--open{transform:rotate(90deg);color:var(--brand)}.hw-quest-card--collapsed{transition:box-shadow var(--transition-fast)}.hw-quest-card--collapsed:hover{border-color:color-mix(in srgb,var(--brand) 30%,var(--line))!important}.hw-session-collapsed-summary{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}[data-parent-workspace] .hw-track--parent-collapsible .hw-quest-card{margin-bottom:0}[data-parent-workspace] .hw-track--parent-collapsible ul{gap:8px!important}@media (max-width:860px){.parent-homework-workspace{min-height:min(65vh,520px);max-height:min(calc(100vh - 180px),600px)}}@media (prefers-reduced-motion:reduce){[data-parent-workspace] *,[data-parent-workspace] :after,[data-parent-workspace] :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.parent-kpi-card:hover,.parent-list-row:hover,.parent-metric:hover,.parent-nav__link:hover,.parent-timeline-session:hover{transform:none}}.lesson-panel,.lesson-panel-wrap{display:flex;flex-direction:column}.lesson-panel{gap:14px}.lesson-panel-empty{color:var(--muted);font-size:13px;font-style:italic;margin:0;padding:8px 0}.lesson-panel-fallback{border-left:3px solid var(--brand);padding-left:16px}.lesson-epic-banner{border:1px solid var(--line);border-radius:12px;padding:14px 18px;background:linear-gradient(135deg,rgba(99,102,241,.08),rgba(16,185,129,.05))}.lesson-epic-banner__badge{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);margin-bottom:6px}.lesson-epic-banner__title{font-size:17px;font-weight:800;color:var(--text);line-height:1.3}.lesson-epic-banner__tagline{font-size:13px;color:var(--muted);margin-top:4px}.lesson-epic-banner__week{font-size:12px;font-weight:600;color:var(--text);margin-top:8px}.lesson-side-quest{border-radius:12px;padding:14px 18px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.35)}.lesson-side-quest__title{font-size:13px;font-weight:800;color:#b45309;margin-bottom:6px}.lesson-side-quest__text{font-size:13px;color:var(--text);line-height:1.55;margin:0}.lesson-section-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--bg-card)}.lesson-section-card--goal{border-color:rgba(99,102,241,.35)}.lesson-section-card--example{background:rgba(16,185,129,.04)}.lesson-section-card--project{border-color:rgba(245,158,11,.35)}.lesson-section-card__head{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);background:hsla(0,0%,100%,.02)}.lesson-section-card__icon{font-size:16px;line-height:1}.lesson-section-card__label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.lesson-section-card__body{padding:14px 18px;border-left:3px solid var(--brand);margin:0}.course-lesson-nav__module-btn{width:100%;text-align:left;padding:10px 16px;background:transparent;border:none;cursor:pointer;display:flex;align-items:flex-start;gap:8px;color:var(--text);font-size:12px;font-weight:600;line-height:1.4}.course-lesson-nav__module-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.course-lesson-nav__module-title-row{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap}.course-lesson-nav__track-mascot{flex-shrink:0;font-size:14px;line-height:1.2}.course-lesson-nav__module-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:10px;line-height:1.3}.course-lesson-nav__skill-band{font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--status-active) 14%,var(--bg-card));color:var(--status-active);border:1px solid color-mix(in srgb,var(--status-active) 28%,transparent);box-shadow:var(--kid-shadow)}.course-lesson-nav__epic-title{font-weight:600;color:var(--muted);font-style:italic}.course-lesson-nav__chevron{margin-top:1px;flex-shrink:0}.course-lesson-nav__module-title{flex:1 1;min-width:0}.course-lesson-nav__module-chip{flex-shrink:0;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:4px;background:rgba(99,102,241,.12);color:var(--brand)}.course-lesson-nav__lesson-btn{width:100%;text-align:left;padding:8px 16px 8px 12px;background:transparent;border:none;border-left:3px solid transparent;cursor:pointer;display:flex;align-items:flex-start;gap:8px}.course-lesson-nav__lesson-btn--done .course-lesson-nav__lesson-title{color:color-mix(in srgb,var(--text) 82%,var(--status-complete))}.course-lesson-nav__done-check{flex-shrink:0;width:18px;text-align:center;font-size:11px;line-height:1.5;color:var(--muted);margin-top:1px}.course-lesson-nav__done-check--done{color:var(--status-complete);font-weight:800}.course-lesson-nav__lesson-btn--active{border-left-width:3px;border-left-style:solid}.course-lesson-nav__lesson-icon{font-size:14px;flex-shrink:0;margin-top:1px}.course-lesson-nav__lesson-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1}.course-lesson-nav__lesson-title{font-size:12px;line-height:1.35;color:var(--text)}.course-lesson-nav__lesson-sub{display:flex;flex-wrap:wrap;gap:4px 6px;font-size:10px;color:var(--muted);line-height:1.3}.course-lesson-nav__kind-pill{font-weight:700;color:#b45309}.course-lesson-nav__epic-sub{color:var(--muted)}.lesson-tab-pills{display:flex;gap:4px;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--kid-radius);padding:5px;width:-moz-fit-content;width:fit-content;box-shadow:var(--kid-shadow)}.lesson-tab-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:calc(var(--kid-radius) - 6px);border:none;cursor:pointer;font-size:12px;font-weight:700;background:transparent;color:var(--muted);transition:background .15s,color .15s,transform .15s}.lesson-tab-pill:hover:not(.lesson-tab-pill--active){background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--text)}.lesson-tab-pill--active{color:#fff;box-shadow:var(--kid-shadow)}.lesson-tab-pill__icon{font-size:14px;line-height:1}.lesson-tab-pill__label{line-height:1.2}.kid-empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 20px;gap:10px}.kid-empty-state__emoji{font-size:48px;line-height:1;filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--brand) 25%,transparent))}.kid-empty-state__title{margin:0;font-size:16px;font-weight:800;color:var(--text)}.kid-empty-state__body{margin:0;max-width:360px;font-size:13px;line-height:1.55;color:var(--muted)}.kid-empty-state__cta{margin-top:6px}.hw-track-section{margin-bottom:20px}.hw-track-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.hw-track-section__title{font-size:13px;font-weight:800;color:var(--text)}.hw-track-section__hint{font-size:11px;color:var(--muted);max-width:280px;text-align:right;line-height:1.4}.hw-track-section--hacker .hw-track-section__title{color:#be123c}.roadmap-lesson-meta{font-size:10px;font-weight:600;color:var(--muted);margin-top:2px;line-height:1.3}.roadmap-lesson-meta__pill{display:inline-block;margin-right:6px;padding:1px 5px;border-radius:4px;background:rgba(245,158,11,.15);color:#b45309;font-weight:700}.lesson-exercise-tiers{display:flex;flex-direction:column;gap:18px}.lesson-exercise-tiers__group-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:10px}.lesson-exercise-tiers__group--hacker .lesson-exercise-tiers__group-label{color:#be123c}.lesson-exercise-tiers__list{display:flex;flex-direction:column;gap:10px}.lesson-exercise-tier-card{border-radius:12px;border:1px solid var(--line);overflow:hidden}.lesson-exercise-tier-card__head{padding:10px 14px;border-bottom:1px solid var(--line);background:hsla(0,0%,100%,.02)}.lesson-exercise-tier-card__pill{display:inline-block;font-size:11px;font-weight:800;padding:4px 10px;border-radius:6px}.lesson-exercise-tier-card__body{padding:14px 18px;font-size:14px;line-height:1.55}.lesson-exercise-tier-card.hw-tier-card--1,.lesson-exercise-tier-card.hw-tier-card--2,.lesson-exercise-tier-card.hw-tier-card--3,.lesson-exercise-tier-card.hw-tier-card--4,.lesson-exercise-tier-card.hw-tier-card--5{border-width:1px;border-style:solid}.ds-layout-immersive,.studio-layout-immersive{background:#0a0c12}body:has(.studio-layout-immersive),html:has(.studio-layout-immersive){overflow:hidden;height:100%;overscroll-behavior:none}.studio-layout-immersive{--studio-chrome-height:120px;height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column;min-height:0;width:100%}.ds-page,.ds-shell{--ds-bg:#0a0c12;--ds-surface:#12141f;--ds-surface-2:#1a1d2e;--ds-accent:#3776ab;--ds-accent-glow:rgba(55,118,171,.35);--ds-gold:#ffd43b;--ds-green:#4ade80;--ds-amber:#fbbf24;--ds-red:#f87171;--ds-text:#f0f0f8;--ds-muted:#8b8fa8;--ds-line:hsla(0,0%,100%,.08);--ds-action-bar-height:52px;--studio-chrome-height:120px;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(55,118,171,.15),transparent),radial-gradient(circle at 100% 100%,rgba(255,212,59,.06),transparent),var(--ds-bg);color:var(--ds-text);font-family:inherit;display:flex;flex-direction:column}.ds-shell{padding:0}.ds-shell--fixed{flex:1 1;min-height:0;height:100%;max-height:100dvh;overflow:hidden}.ds-shell--error-only,.ds-shell--loading{min-height:100dvh;max-height:none;overflow:auto;padding:clamp(16px,4vw,32px);gap:16px}.ds-shell__chrome{flex-shrink:0;z-index:40;background:rgba(10,12,18,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--ds-line)}.ds-shell__topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:6px clamp(12px,2.5vw,20px)}.ds-shell__topbar-left,.ds-shell__topbar-right{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0}.ds-shell__back{display:inline-flex;align-items:center;gap:5px;padding:4px 10px 4px 7px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--ds-muted);text-decoration:none;background:hsla(0,0%,100%,.04);border:1px solid var(--ds-line);transition:color .15s ease,background .15s ease,border-color .15s ease}.ds-shell__back:hover{color:var(--ds-text);background:hsla(0,0%,100%,.08);border-color:rgba(55,118,171,.35)}.ds-shell__back:focus-visible{outline:2px solid var(--ds-accent);outline-offset:2px}.ds-shell__back-icon{width:14px;height:14px;flex-shrink:0;transition:transform .15s ease}.ds-shell__back:hover .ds-shell__back-icon{transform:translateX(-2px)}.ds-shell__topbar-divider{width:1px;height:20px;background:var(--ds-line);flex-shrink:0}.ds-shell__brand{display:flex;align-items:center;gap:8px;min-width:0}.ds-shell__brand-mark{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#3776ab,#ffd43b);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:#0a0c12;letter-spacing:-.02em}.ds-shell__brand-name{font-size:12px;font-weight:800;color:var(--ds-text);letter-spacing:.06em;text-transform:uppercase}.ds-shell__title-row{flex-shrink:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;grid-column-gap:8px;column-gap:8px;padding:2px clamp(12px,2.5vw,20px) 6px;border-top:1px solid hsla(0,0%,100%,.04)}.ds-shell__title-row:not(:has(.studio-shell__title-actions)){display:block}.ds-shell__title-block{grid-column:1;min-width:0}.studio-shell__title-actions{grid-column:2;justify-self:center}.ds-shell__title{margin:0;font-size:clamp(16px,2.5vw,22px);font-weight:800;line-height:1.25}.ds-shell__module,.ds-shell__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-shell__module{margin:2px 0 0;font-size:12px;color:var(--ds-muted)}.ds-shell__main{flex:1 1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:6px clamp(12px,2.5vw,20px) clamp(8px,1.5vw,16px);max-width:1600px;width:100%;margin:0 auto;box-sizing:border-box;overflow-y:auto}.ds-shell__main:not(:has(.ds-editor-panel)){overflow-y:auto;padding-bottom:clamp(16px,3vw,28px)}.ds-shell__main>.ds-editor-panel{flex:1 1;min-height:0}.ds-shell__main>.ds-completed,.ds-shell__main>.ds-feedback-card,.ds-shell__main>.ds-review-badge-wrap,.ds-shell__main>.ds-toast{flex-shrink:0}.ds-shell__action-bar{flex-shrink:0;position:relative;z-index:2;background:var(--ds-surface-2);border-top:2px solid rgba(55,118,171,.4);border-radius:0 0 15px 15px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.05),0 -6px 20px rgba(0,0,0,.35);padding:8px clamp(12px,2.5vw,20px) max(8px,env(safe-area-inset-bottom))}.ds-editor-panel:has(.ds-shell__action-bar) .ds-workspace-grid{border-bottom:1px solid var(--ds-line)}.ds-action-bar{max-width:1600px;margin:0 auto;display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:16px}.ds-action-bar--view-only{flex-direction:column;align-items:stretch;gap:10px}.ds-action-bar__left{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:4px;flex-shrink:0}.ds-action-bar__right{flex:1 1;min-width:0;max-width:min(420px,55%);display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:6px}.ds-action-bar__view-hint{margin:0;font-size:13px;font-weight:600;line-height:1.45;color:#93c5fd;text-align:left;padding:8px 12px;border-radius:10px;background:rgba(55,118,171,.12);border:1px solid rgba(55,118,171,.28)}.ds-action-bar--view-only .ds-action-bar__buttons,.ds-action-bar--view-only .ds-action-bar__left{width:100%}.ds-action-bar__notes-wrap{width:100%;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.ds-action-bar__error{margin:0;font-size:11px;color:var(--ds-red)}.ds-action-bar__notes-toggle{background:transparent;border:none;color:var(--ds-muted);font-size:11px;font-weight:600;cursor:pointer;padding:2px 0;text-align:right;white-space:nowrap}.ds-action-bar__notes-toggle:hover{color:var(--ds-text)}.ds-action-bar__notes-opt{font-weight:400}.ds-action-bar__notes-panel{width:100%}.ds-action-bar__notes-input{background:var(--ds-bg)!important;border:1px solid var(--ds-line)!important;color:var(--ds-text)!important;width:100%;box-sizing:border-box;font-size:12px;padding:6px 10px!important;min-height:0!important}.ds-action-bar__buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.ds-action-bar__buttons .ds-btn{min-height:38px;flex:0 1 auto;justify-content:center;min-width:0;font-size:13px;padding:7px 14px;border-radius:10px}.ds-toast{border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600}.ds-toast--info{background:rgba(55,118,171,.15);border:1px solid rgba(55,118,171,.35);color:#93c5fd}.ds-toast--waiting{background:rgba(148,163,184,.1);border:1px solid var(--ds-line);color:var(--ds-muted)}.ds-review-badge-wrap{margin-bottom:4px}.ds-skeleton{background:linear-gradient(90deg,var(--ds-surface) 25%,var(--ds-surface-2) 50%,var(--ds-surface) 75%);background-size:200% 100%;animation:ds-shimmer 1.2s ease-in-out infinite;border-radius:12px}@keyframes ds-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ds-skeleton--topbar{height:52px}.ds-skeleton--title{height:36px;max-width:480px}.ds-skeleton--mission{height:100px}.ds-skeleton--workspace{height:min(60vh,520px);flex:1 1}.ds-workspace-grid{display:grid;grid-template-columns:1fr;grid-gap:0;gap:0;flex:1 1;min-height:min(60vh,520px)}@media (min-width:768px){.ds-workspace-grid{grid-template-columns:var(--split-pct,55%) 8px 1fr}}@media (max-width:767px){.ds-workspace-grid__resizer{display:none}.ds-workspace-grid{grid-template-rows:1fr 1fr;grid-template-columns:1fr}.ds-workspace-grid__code{min-height:min(45vh,360px);border-bottom:1px solid var(--ds-line)}.ds-workspace-grid__terminal{min-height:min(35vh,280px)}}.ds-workspace-grid__code,.ds-workspace-grid__terminal{min-height:0;display:flex;flex-direction:column;height:100%;overflow:hidden}.ds-workspace-grid__code{min-height:0}.ds-workspace-grid__code-inner{flex:1 1;min-height:0;height:100%;display:flex;flex-direction:column}.ds-workspace-grid__terminal{min-height:0}.ds-workspace-grid__resizer,.studio-split-resizer{cursor:col-resize;touch-action:none;border:none;background:var(--ds-line);padding:0;position:relative;transition:background .15s ease,box-shadow .15s ease}.ds-workspace-grid__resizer:after,.studio-split-resizer:after{content:"⋮⋮";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;letter-spacing:-2px;color:var(--ds-muted);pointer-events:none;opacity:.7}.ds-workspace-grid__resizer:focus-visible,.ds-workspace-grid__resizer:hover,.studio-split-resizer:focus-visible,.studio-split-resizer:hover{background:var(--ds-accent);box-shadow:0 0 12px var(--ds-accent-glow);outline:none}@media (min-width:768px){.ds-workspace-grid__terminal .ds-terminal{height:100%;border-radius:0;border:none;margin:0}.ds-workspace-grid__terminal .ds-terminal__body{flex:1 1;min-height:0;max-height:none}}.ds-workspace-grid__terminal .ds-terminal__body{min-height:0}.ds-terminal{display:flex;flex-direction:column;flex:1 1;margin-top:0;border-radius:0;border:none;border-top:1px solid var(--ds-line);background:#0d0f14;overflow:hidden}@media (min-width:1024px){.ds-terminal{border-top:none}}.ds-terminal__chrome{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#161820;border-bottom:1px solid var(--ds-line)}.ds-terminal__dots{display:flex;gap:6px}.ds-terminal__dot{width:10px;height:10px;border-radius:50%}.ds-terminal__dot--red{background:#f87171}.ds-terminal__dot--amber{background:#fbbf24}.ds-terminal__dot--green{background:#4ade80}.ds-terminal__title{flex:1 1;font-size:11px;font-weight:700;color:var(--ds-muted);letter-spacing:.04em}.ds-terminal__clear{background:transparent;border:1px solid var(--ds-line);border-radius:6px;color:var(--ds-muted);font-size:11px;font-weight:600;padding:3px 8px;cursor:pointer}.ds-terminal__clear:hover{color:var(--ds-text);border-color:var(--ds-muted)}.ds-terminal__body{flex:1 1;overflow:auto;padding:14px 16px;min-height:120px;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:13px;line-height:1.6}.ds-terminal__idle{text-align:center;padding:16px 8px}.ds-terminal__idle-mascot{font-size:28px;margin:0 0 8px}.ds-terminal__idle-hint{margin:0 0 12px;color:var(--ds-muted);font-size:14px;line-height:1.5}.ds-terminal__prompt-line{display:flex;align-items:center;justify-content:center;gap:2px;font-size:12px}.ds-terminal__prompt{color:var(--ds-accent);font-weight:700;margin-right:6px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ds-terminal__cursor{display:inline-block;width:8px;height:14px;background:var(--ds-green);animation:ds-blink 1s step-end infinite}@keyframes ds-blink{50%{opacity:0}}.ds-terminal__spinner{width:12px;height:12px;flex-shrink:0;border:2px solid rgba(74,222,128,.25);border-top:2px solid var(--ds-green);border-radius:50%;animation:ds-spin .7s linear infinite}@keyframes ds-spin{to{transform:rotate(1turn)}}.ds-terminal__status{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid transparent}.ds-terminal__status--running{color:var(--ds-green);border-color:rgba(74,222,128,.25);background:rgba(74,222,128,.08)}.ds-terminal__status--stopped{color:var(--ds-amber);border-color:rgba(251,191,36,.3);background:rgba(251,191,36,.08)}.ds-terminal__status--timeout{color:var(--ds-red);border-color:hsla(0,91%,71%,.3);background:hsla(0,91%,71%,.08)}.ds-terminal__line-content{white-space:pre-wrap;word-break:break-word}.ds-terminal__input-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(74,222,128,.2)}.ds-terminal__input-prompt{color:var(--ds-green);white-space:pre-wrap;word-break:break-word}.ds-terminal__input-field{flex:1 1;min-width:120px;background:hsla(0,0%,100%,.04);border:1px solid var(--ds-line);border-radius:6px;color:var(--ds-text);font:inherit;padding:4px 8px;outline:none}.ds-terminal__input-field:focus{border-color:var(--ds-accent);box-shadow:0 0 0 2px rgba(96,165,250,.15)}.ds-terminal__input-field::placeholder{color:var(--ds-muted);opacity:.85}.ds-terminal__block{margin-top:8px}.ds-terminal__stderr-label{margin:0 0 6px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ds-amber)}.ds-terminal__line{animation:ds-line-in .25s ease backwards}@keyframes ds-line-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ds-terminal__line--out{color:var(--ds-green)}.ds-terminal__line--err{color:var(--ds-amber)}.ds-terminal__error-label{margin:0 0 6px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ds-red)}.ds-terminal__block--traceback{margin-top:8px;padding:10px 12px;background:hsla(0,91%,71%,.08);border-radius:8px;border:1px solid hsla(0,91%,71%,.2)}.ds-terminal__line--traceback{color:var(--ds-red)}.ds-terminal__line--error-source{background:hsla(0,91%,71%,.16);border-left:3px solid var(--ds-red);padding-left:8px;margin-left:-3px;font-weight:600}.ds-page{padding:clamp(16px,4vw,40px);gap:20px}.ds-header{display:flex;flex-direction:column;gap:16px}.ds-header__top-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.ds-header__back{font-size:13px;color:var(--ds-muted);text-decoration:none;transition:color .15s ease}.ds-header__back:hover{color:var(--ds-text)}.ds-header__brand{display:flex;align-items:center;gap:8px}.ds-header__brand-icon{font-size:22px}.ds-header__brand-name{font-size:15px;font-weight:800;color:var(--ds-accent);letter-spacing:.04em;text-transform:uppercase}.ds-header__body{display:flex;flex-direction:column;gap:8px}.ds-header__badges{display:flex;flex-wrap:wrap;gap:8px}.ds-badge{display:inline-flex;align-items:center;gap:4px;border-radius:8px;font-size:11px;font-weight:800;padding:4px 10px;letter-spacing:.04em}.ds-badge--tier{background:rgba(245,158,11,.18);color:var(--ds-gold);border:1px solid rgba(245,158,11,.3)}.ds-badge--course{background:rgba(99,102,241,.18);color:var(--ds-accent);border:1px solid rgba(99,102,241,.3)}.ds-header__title{font-size:clamp(22px,4vw,32px);font-weight:900;margin:0;color:var(--ds-text);line-height:1.2}.ds-header__module{font-size:13px;color:var(--ds-muted);margin:0}.ds-header__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}.ds-header__status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.ds-header__status-dot--active{background:var(--ds-accent);box-shadow:0 0 0 3px var(--ds-accent-glow)}.ds-header__status-dot--done{background:var(--ds-green)}.ds-header__status-dot--retry{background:var(--ds-gold)}.ds-header__status-dot--waiting{background:var(--ds-muted)}.studio-shell__view-btn{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:5px 12px;border-radius:8px;border:1px solid rgba(55,118,171,.35);background:rgba(55,118,171,.1);color:var(--ds-accent,#5b9fd4);font-size:12px;font-weight:600;letter-spacing:.01em;line-height:1.2;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.studio-shell__view-btn:hover{background:rgba(55,118,171,.2);border-color:rgba(55,118,171,.55);box-shadow:0 4px 14px rgba(55,118,171,.15)}.studio-shell__view-btn:focus-visible{outline:2px solid var(--ds-accent,#5b9fd4);outline-offset:2px}.studio-shell__view-btn-icon{width:15px;height:15px;flex-shrink:0;opacity:.92}.ds-editor-panel{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;flex:1 1;min-height:0;box-shadow:0 0 0 1px rgba(55,118,171,.06),0 12px 40px rgba(0,0,0,.25)}.ds-editor-panel__toolbar{justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--ds-line);background:var(--ds-surface-2);gap:8px;flex-shrink:0}.ds-editor-panel__toolbar,.ds-file-explorer{display:flex;align-items:center;flex-wrap:wrap}.ds-file-explorer{gap:6px;min-width:0;flex:1 1}.ds-file-explorer__tab-wrap{display:inline-flex;align-items:center;gap:2px;max-width:100%}.ds-file-explorer__tab-wrap--active{background:rgba(99,102,241,.1);border-radius:8px}.ds-file-explorer__tab{border:none;background:transparent;color:var(--ds-muted);font-size:13px;font-weight:700;padding:8px 12px;border-radius:8px;cursor:pointer;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-file-explorer__tab--active{color:var(--ds-accent)}.ds-file-explorer__actions{display:inline-flex;align-items:center;gap:2px;padding-right:4px}.ds-file-explorer__action-btn{border:none;background:transparent;color:var(--ds-muted);font-size:14px;line-height:1;width:24px;height:24px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.ds-file-explorer__action-btn:hover{background:rgba(99,102,241,.15);color:var(--ds-accent)}.ds-file-explorer__action-btn--danger:hover{background:rgba(239,68,68,.15);color:#ef4444}.ds-file-explorer__add{border:1px dashed var(--ds-line);background:transparent;color:var(--ds-muted);font-size:16px;font-weight:700;width:32px;height:32px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ds-file-explorer__add:hover{border-color:var(--ds-accent);color:var(--ds-accent);background:rgba(99,102,241,.08)}.ds-file-explorer__rename-input{border:1px solid var(--ds-accent);background:var(--ds-surface);color:var(--ds-text);font-size:13px;font-weight:700;padding:6px 10px;border-radius:8px;min-width:120px;max-width:180px}.ds-editor-panel__lang-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--ds-accent);background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.25);border-radius:8px;padding:4px 10px}.ds-editor-panel__toolbar-right{display:flex;align-items:center;gap:12px}.ds-editor-panel__stats{font-size:13px;color:var(--ds-muted)}.ds-autosave-chip{font-size:12px;font-weight:700;padding:4px 10px;border-radius:10px;display:inline-flex;align-items:center;gap:4px}.ds-autosave-chip--saving{background:rgba(245,158,11,.15);color:var(--ds-gold)}.ds-autosave-chip--saved{background:rgba(16,185,129,.15);color:var(--ds-green)}.ds-editor-panel__editor{border-radius:0!important;border:none!important;flex:1 1;min-height:0;height:100%}.ds-editor-panel__footer{padding:14px 16px;border-top:1px solid var(--ds-line);background:var(--ds-surface-2);display:flex;flex-direction:column;gap:12px}.ds-editor-panel__notes-row{display:flex;flex-direction:column;gap:6px}.ds-editor-panel__notes-label{font-size:12px;font-weight:700;color:var(--ds-text)}.ds-editor-panel__notes-opt{font-weight:400;color:var(--ds-muted)}.ds-editor-panel__notes-input{background:var(--ds-bg)!important;border:1px solid var(--ds-line)!important;color:var(--ds-text)!important;font-size:13px;width:100%;box-sizing:border-box;resize:vertical}.ds-editor-panel__error{margin:0;font-size:12px;color:var(--ds-red)}.ds-btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:12px;font-size:14px;font-weight:800;padding:10px 20px;cursor:pointer;transition:background .15s ease,transform .1s ease,opacity .15s ease}.ds-btn:active:not(:disabled){transform:scale(.97)}.ds-btn:disabled{opacity:.45;cursor:not-allowed}.ds-btn--run{background:rgba(74,222,128,.12);color:var(--ds-green);border:1px solid rgba(74,222,128,.35)}.ds-btn--run:hover:not(:disabled){background:rgba(74,222,128,.22)}.ds-btn--run:not(:disabled).ds-btn--ready{animation:ds-run-ready-pulse 2.5s ease-in-out infinite}@keyframes ds-run-ready-pulse{0%,to{box-shadow:0 0 0 0 rgba(74,222,128,0)}50%{box-shadow:0 0 16px 2px rgba(74,222,128,.2)}}.ds-btn--run:disabled{animation:none}.ds-btn--run:focus-visible{outline:2px solid var(--ds-green);outline-offset:2px}.ds-btn--stop{background:hsla(0,91%,71%,.12);color:#f87171;border:1px solid hsla(0,91%,71%,.35)}.ds-btn--stop:hover:not(:disabled){background:hsla(0,91%,71%,.22)}.ds-btn--stop:focus-visible{outline:2px solid #f87171;outline-offset:2px}.ds-btn--send{background:linear-gradient(135deg,#3776ab,#4f8fc4);color:#fff;box-shadow:0 0 20px var(--ds-accent-glow)}.ds-btn--send:hover:not(:disabled){background:linear-gradient(135deg,#2d6290,#3776ab);box-shadow:0 0 28px var(--ds-accent-glow)}.ds-btn--send:focus-visible{outline:2px solid var(--ds-accent);outline-offset:2px}.ds-btn--review{background:rgba(251,191,36,.18);border:1px solid rgba(251,191,36,.55);color:#fde68a}.ds-btn--review:hover:not(:disabled){background:rgba(251,191,36,.28);border-color:rgba(251,191,36,.75)}.ds-btn--review:focus-visible{outline:2px solid rgba(251,191,36,.85);outline-offset:2px}.ds-btn--ghost{background:transparent;color:var(--ds-muted);border:1px solid var(--ds-line);font-size:13px;padding:7px 14px}.ds-btn--ghost:hover:not(:disabled){color:var(--ds-text);border-color:var(--ds-muted)}.ds-completed{display:flex;flex-direction:column;gap:12px}.ds-stars{position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:1px;pointer-events:none}.ds-stars__star{position:absolute;font-size:18px;transform-origin:0 60px;transform:rotate(var(--angle)) translateY(-60px)}.ds-completed__banner{background:linear-gradient(135deg,#1a1d2e,#16213e);border:1px solid rgba(245,158,11,.3);border-radius:12px;padding:12px 16px;display:flex;flex-direction:row;align-items:center;gap:12px;box-shadow:0 0 20px rgba(245,158,11,.08)}.ds-completed__trophy{font-size:28px;line-height:1;flex-shrink:0;filter:drop-shadow(0 0 10px rgba(245,158,11,.4))}.ds-completed__banner-text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.ds-completed__headline{font-size:16px;font-weight:800;color:var(--ds-gold);margin:0;line-height:1.2}.ds-completed__xp-badge{display:inline-flex;align-items:center;gap:4px;background:rgba(245,158,11,.18);color:var(--ds-gold);border:1px solid rgba(245,158,11,.3);border-radius:999px;font-size:11px;font-weight:700;padding:3px 10px}.ds-feedback-card{background:var(--ds-surface);border:1px solid rgba(245,158,11,.25);border-left:4px solid var(--ds-gold);border-radius:14px;padding:16px 20px;display:flex;flex-direction:column;gap:12px}.ds-feedback-card__header{display:flex;gap:12px;align-items:flex-start}.ds-feedback-card__avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,rgba(255,212,59,.25),rgba(55,118,171,.25));border:2px solid rgba(255,212,59,.35);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.ds-feedback-card__title{margin:0 0 2px;font-size:15px;font-weight:800;color:var(--ds-gold)}.ds-feedback-card__hint{margin:0;font-size:13px;color:var(--ds-muted)}.ds-feedback-card__message{margin:0;font-size:14px;line-height:1.6;color:var(--ds-text);white-space:pre-wrap;background:var(--ds-bg);border-radius:10px;padding:12px 16px;border:1px solid var(--ds-line)}.ds-feedback-card__message--empty{color:var(--ds-muted);font-style:italic}.ds-review-panel{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:4px;margin-top:0}.ds-review-panel__title{margin:0 0 12px;font-size:17px;font-weight:800;color:var(--ds-text)}.ds-review-panel__meta{margin:0 0 12px;display:flex;flex-direction:column;gap:8px}.ds-review-panel__meta-row{display:flex;gap:8px;font-size:13px;color:var(--ds-text-secondary)}.ds-review-panel__meta-row dt{font-weight:700;color:var(--ds-text);min-width:48px}.ds-review-panel__meta-row dd{margin:0}.ds-review-panel__student-note{margin:0 0 12px;font-size:13px;color:var(--ds-text-secondary);line-height:1.45}.ds-review-panel__overview{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;font-size:12px}.ds-review-panel__label{display:block;font-size:12px;font-weight:700;margin:12px 0 6px;color:var(--ds-text)}.ds-review-panel__textarea{width:100%;margin-bottom:4px}.ds-review-panel__actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}.ds-review-panel__action{width:100%;font-size:13px}.ds-review-modal-overlay{--ds-bg:#0a0c12;--ds-surface:#12141f;--ds-surface-2:#1a1d2e;--ds-accent:#3776ab;--ds-text:#f0f0f8;--ds-text-secondary:#b0b4c8;--ds-muted:#8b8fa8;--ds-line:hsla(0,0%,100%,.08);position:fixed;inset:0;z-index:calc(var(--modal-z) + 300);background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;touch-action:none}.ds-review-modal{width:min(560px,100%);max-height:min(90vh,820px);display:flex;flex-direction:column;overflow:hidden;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:16px;box-shadow:0 24px 64px rgba(0,0,0,.45)}.ds-review-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 0;flex-shrink:0}.ds-review-modal__title{margin:0;font-size:18px;font-weight:800;color:var(--ds-text)}.ds-review-modal__close{flex-shrink:0;min-width:36px;padding:6px 10px}.ds-review-modal__scroll{flex:1 1;min-height:0;overflow-y:auto;padding:16px 20px;overscroll-behavior:contain}.ds-review-modal__footer{flex-shrink:0;padding:12px 20px 20px;border-top:1px solid var(--ds-line);background:var(--ds-surface-2)}.ds-review-modal__actions{margin-top:0}.ds-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.ds-confetti__piece{position:absolute;width:8px;height:8px;border-radius:2px;top:20%;left:calc(10% + (var(--i, 0) * 5%));background:hsl(calc(var(--i, 0) * 40),80%,60%);animation:ds-confetti-fall 1.4s ease-out forwards;animation-delay:calc(var(--i, 0) * .05s);opacity:0}@keyframes ds-confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0deg)}to{opacity:0;transform:translateY(120px) rotate(1turn)}}.ds-completed{position:relative;overflow:hidden}@media (max-width:640px){.ds-shell__topbar{padding:5px 10px;gap:6px}.ds-shell__topbar-right{gap:5px}.ds-shell__topbar-right .ds-badge{font-size:10px;padding:2px 7px}.ds-shell__title-row{padding:2px 10px 4px;column-gap:6px}.studio-shell__view-btn{padding:4px 9px;font-size:11px}.studio-shell__view-btn-icon{width:14px;height:14px}.ds-shell__title{font-size:clamp(15px,4vw,18px)}.ds-shell__module{display:none}.ds-shell__main{padding:6px 10px 0;gap:6px}.ds-editor-panel__toolbar{padding:8px 10px}.ds-editor-panel__stats{display:none}.ds-file-explorer__tab{max-width:120px;font-size:12px;padding:6px 8px}.ds-action-bar__buttons .ds-btn{min-height:36px;font-size:12px;padding:6px 12px}.ds-shell__action-bar{padding:6px 10px max(6px,env(safe-area-inset-bottom))}.ds-action-bar{gap:6px 8px}}@media (max-width:480px){.ds-action-bar{flex-direction:column;align-items:stretch;gap:10px}.ds-action-bar__right{max-width:none;align-items:stretch}.ds-action-bar__notes-wrap{align-items:stretch}.ds-action-bar__notes-toggle{text-align:left;white-space:normal}.ds-action-bar__view-hint{text-align:left}.ds-action-bar__buttons .ds-btn{flex:1 1;min-width:0}}@media (max-width:380px){.ds-shell__brand-name{display:none}}@media (prefers-reduced-motion:reduce){.ds-confetti__piece,.ds-skeleton,.ds-stars__star,.ds-terminal__block--traceback,.ds-terminal__line{animation:none!important}.ds-terminal__cursor{animation:none;opacity:.6}}.ws-shell{--ws-bg:#080b14;--ws-surface:#101522;--ws-surface-2:#161c2e;--ws-accent:#22d3ee;--ws-accent-glow:rgba(34,211,238,.35);--ws-gold:#a78bfa;--ws-green:#4ade80;--ws-amber:#fbbf24;--ws-red:#f87171;--ws-text:#f0f4ff;--ws-muted:#8b95b8;--ws-line:hsla(0,0%,100%,.08);--studio-chrome-height:120px;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(34,211,238,.12),transparent),radial-gradient(circle at 0 100%,rgba(167,139,250,.08),transparent),var(--ws-bg);color:var(--ws-text);display:flex;flex-direction:column;padding:0;font-family:inherit}.ws-shell--fixed{flex:1 1;min-height:0;height:100%;max-height:100dvh;overflow:hidden}.ws-shell--error-only,.ws-shell--loading{min-height:100dvh;max-height:none;overflow:auto;padding:clamp(16px,4vw,32px);gap:16px}.ws-shell__chrome{flex-shrink:0;z-index:40;background:rgba(8,11,20,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--ws-line)}.ws-shell__topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:6px clamp(12px,2.5vw,20px)}.ws-shell__topbar-left,.ws-shell__topbar-right{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0}.ws-shell__back{display:inline-flex;align-items:center;gap:5px;padding:4px 10px 4px 7px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--ws-muted);text-decoration:none;background:hsla(0,0%,100%,.04);border:1px solid var(--ws-line);transition:color .15s ease,background .15s ease,border-color .15s ease}.ws-shell__back:hover{color:var(--ws-text);background:hsla(0,0%,100%,.08);border-color:var(--ws-accent-glow)}.ws-shell__back:focus-visible{outline:2px solid var(--ws-accent);outline-offset:2px}.ws-shell__back-icon{width:14px;height:14px;flex-shrink:0;transition:transform .15s ease}.ws-shell__back:hover .ws-shell__back-icon{transform:translateX(-2px)}.ws-shell__topbar-divider{width:1px;height:20px;background:var(--ws-line);flex-shrink:0}.ws-shell__brand{display:flex;align-items:center;gap:8px;min-width:0}.ws-shell__brand-mark{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#22d3ee,#a78bfa);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:#080b14}.ws-shell__brand-name{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.ws-shell__title-row{flex-shrink:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;grid-column-gap:8px;column-gap:8px;padding:2px clamp(12px,2.5vw,20px) 6px;border-top:1px solid hsla(0,0%,100%,.04)}.ws-shell__title-row:not(:has(.studio-shell__title-actions)){display:block}.ws-shell__title-block{grid-column:1;min-width:0}.ws-shell__title{margin:0;font-size:clamp(16px,2.5vw,22px);font-weight:800;line-height:1.25}.ws-shell__module,.ws-shell__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-shell__module{margin:2px 0 0;font-size:12px;color:var(--ws-muted)}.ws-shell__main{flex:1 1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:6px clamp(12px,2.5vw,20px) clamp(8px,1.5vw,16px);max-width:1600px;width:100%;margin:0 auto;box-sizing:border-box;overflow-y:auto}.ws-shell__main:not(:has(.ws-editor-panel)){overflow-y:auto;padding-bottom:clamp(16px,3vw,28px)}.ws-shell__main>.ws-editor-panel{flex:1 1;min-height:0}.ws-shell__main>.ws-completed,.ws-shell__main>.ws-feedback-card,.ws-shell__main>.ws-toast{flex-shrink:0}.ws-shell__action-bar{flex-shrink:0;position:relative;z-index:2;background:var(--ws-surface-2);border-top:2px solid rgba(34,211,238,.35);border-radius:0 0 15px 15px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.05),0 -6px 20px rgba(0,0,0,.35);padding:8px clamp(12px,2.5vw,20px) max(8px,env(safe-area-inset-bottom))}.ws-editor-panel:has(.ws-shell__action-bar) .ws-editor-panel__split{border-bottom:1px solid var(--ws-line)}.ws-badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid var(--ws-line);color:var(--ws-muted)}.ws-badge--tier{color:var(--ws-accent);border-color:rgba(34,211,238,.35)}.ws-header__status-dot{width:10px;height:10px;border-radius:50%;background:var(--ws-accent)}.ws-header__status-dot--done{background:var(--ws-green)}.ws-header__status-dot--waiting{background:var(--ws-amber)}.ws-header__status-dot--retry{background:var(--ws-red)}.ws-editor-panel{border:1px solid var(--ws-line);border-radius:14px;overflow:hidden;background:var(--ws-surface);display:flex;flex-direction:column;flex:1 1;min-height:0;box-shadow:0 0 0 1px rgba(34,211,238,.06),0 12px 40px rgba(0,0,0,.25)}.ws-editor-panel__toolbar{justify-content:space-between;gap:8px;padding:10px 16px;border-bottom:1px solid var(--ws-line);background:var(--ws-surface-2);flex-shrink:0}.ws-editor-panel__toolbar,.ws-file-explorer{display:flex;flex-wrap:wrap;align-items:center}.ws-file-explorer{gap:6px;min-width:0;flex:1 1}.ws-file-explorer__tab-wrap{display:inline-flex;align-items:center;gap:2px;max-width:100%}.ws-file-explorer__tab-wrap--active{background:rgba(34,211,238,.1);border-radius:8px}.ws-file-explorer__tab{border:none;background:transparent;color:var(--ws-muted);font-size:12px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;padding:8px 12px;border-radius:8px;cursor:pointer;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-file-explorer__tab--active{color:var(--ws-accent)}.ws-file-explorer__actions{display:inline-flex;align-items:center;gap:2px;padding-right:4px}.ws-file-explorer__action-btn{border:none;background:transparent;color:var(--ws-muted);font-size:12px;line-height:1;width:22px;height:22px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.ws-file-explorer__action-btn:hover{background:hsla(0,0%,100%,.08);color:var(--ws-text)}.ws-file-explorer__action-btn--danger:hover{background:rgba(239,68,68,.15);color:#f87171}.ws-file-explorer__add{border:1px dashed var(--ws-line);background:transparent;color:var(--ws-muted);font-size:16px;font-weight:700;width:30px;height:30px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ws-file-explorer__add:hover{border-color:var(--ws-accent);color:var(--ws-accent);background:rgba(34,211,238,.08)}.ws-file-explorer__rename-input{border:1px solid var(--ws-accent);background:var(--ws-surface);color:var(--ws-text);font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;padding:6px 10px;border-radius:8px;min-width:120px;max-width:180px}.ws-editor-panel__toolbar-right{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.ws-device-toggle{display:flex;gap:4px}.ws-device-toggle__btn{border:1px solid var(--ws-line);background:transparent;color:var(--ws-muted);font-size:12px;font-weight:600;padding:6px 10px;border-radius:6px;cursor:pointer}.ws-device-toggle__btn--active{border-color:rgba(34,211,238,.5);color:var(--ws-accent)}.ws-editor-panel__stats{font-size:13px;color:var(--ws-muted)}.ws-editor-panel__split{display:grid;flex:1 1;min-height:min(60vh,520px);grid-gap:0;gap:0;border-top:1px solid var(--ws-line)}@media (min-width:768px){.ws-editor-panel__split{grid-template-columns:var(--split-pct,55%) 8px 1fr}}@media (max-width:767px){.ws-editor-panel__split{grid-template-columns:1fr!important;grid-template-rows:1fr 1fr}.ws-editor-panel__resizer{display:none}.ws-editor-panel__code{min-height:min(45vh,360px);border-bottom:1px solid var(--ws-line)}.ws-editor-panel__preview{min-height:min(35vh,280px)}}.ws-editor-panel__code,.ws-editor-panel__preview{min-height:0;height:100%;display:flex;flex-direction:column;overflow:hidden}.ws-editor-panel__code-inner{flex:1 1;min-height:0;height:100%;display:flex;flex-direction:column}.ws-editor-panel__editor{flex:1 1;min-height:0;height:100%}.ws-editor-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 12px;border-bottom:1px solid var(--ws-line);background:var(--ws-surface-2);flex-shrink:0}.ws-editor-toolbar__group{display:inline-flex;align-items:center;gap:4px}.ws-editor-toolbar__spacer{flex:1 1;min-width:8px}.ws-editor-toolbar__divider{width:1px;height:18px;background:var(--ws-line);flex-shrink:0}.ws-editor-toolbar__btn{border:1px solid var(--ws-line);background:transparent;color:var(--ws-muted);font-size:12px;font-weight:600;padding:5px 10px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease,background .15s ease}.ws-editor-toolbar__btn--icon{min-width:30px;padding:5px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700}.ws-editor-toolbar__btn:hover:not(:disabled){color:var(--ws-text);border-color:rgba(34,211,238,.35);background:hsla(0,0%,100%,.05)}.ws-editor-toolbar__btn--active{border-color:rgba(34,211,238,.5);color:var(--ws-accent);background:rgba(34,211,238,.1)}.ws-editor-toolbar__btn:disabled{opacity:.45;cursor:not-allowed}.ws-editor-toolbar__btn:focus-visible{outline:2px solid var(--ws-accent);outline-offset:2px}.ws-editor-toolbar__btn--accent{color:var(--ws-accent);border-color:rgba(34,211,238,.45);background:rgba(34,211,238,.12)}.ws-editor-toolbar__btn--accent:hover:not(:disabled){background:rgba(34,211,238,.22);border-color:rgba(34,211,238,.6)}.ws-editor-toolbar__font-label{min-width:22px;text-align:center;font-size:12px;font-weight:700;color:var(--ws-text)}.ws-editor-statusbar,.ws-editor-toolbar__font-label{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.ws-editor-statusbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:4px 12px;border-top:1px solid var(--ws-line);background:var(--ws-surface-2);font-size:11px;font-weight:600;color:var(--ws-muted);flex-shrink:0}.ws-editor-statusbar__item{white-space:nowrap}.ws-editor-statusbar__sep{width:1px;height:12px;background:var(--ws-line);flex-shrink:0}.ws-editor-quick-open-overlay,.ws-editor-shortcuts-overlay{position:fixed;inset:0;z-index:calc(var(--modal-z) + 300);background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:min(12vh,96px) 16px 16px;touch-action:none}.ws-editor-shortcuts{width:min(440px,100%);background:var(--ws-surface);border:1px solid var(--ws-line);border-radius:12px;box-shadow:0 24px 64px rgba(0,0,0,.45);overflow:hidden}.ws-editor-shortcuts__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--ws-line);background:var(--ws-surface-2)}.ws-editor-shortcuts__title{margin:0;font-size:16px;font-weight:800;color:var(--ws-text)}.ws-editor-shortcuts__close{min-width:32px;padding:4px 8px;font-size:18px;line-height:1}.ws-editor-shortcuts__list{list-style:none;margin:0;padding:8px 0}.ws-editor-shortcuts__row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px}.ws-editor-shortcuts__row--disabled{opacity:.45}.ws-editor-shortcuts__label{font-size:13px;font-weight:600;color:var(--ws-text)}.ws-editor-shortcuts__keys{font-size:12px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:var(--ws-accent);background:rgba(34,211,238,.1);border:1px solid rgba(34,211,238,.25);border-radius:6px;padding:4px 8px;white-space:nowrap}.ws-editor-quick-open{width:min(520px,100%);background:var(--ws-surface);border:1px solid var(--ws-line);border-radius:12px;box-shadow:0 24px 64px rgba(0,0,0,.45);overflow:hidden}.ws-editor-quick-open__label{display:block;padding:12px 14px 0;font-size:12px;font-weight:700;color:var(--ws-muted);text-transform:uppercase;letter-spacing:.04em}.ws-editor-quick-open__input{display:block;width:calc(100% - 28px);margin:8px 14px 0;padding:10px 12px;border:1px solid var(--ws-line);border-radius:8px;background:var(--ws-surface-2);color:var(--ws-text);font-size:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.ws-editor-quick-open__input:focus{outline:2px solid var(--ws-accent);outline-offset:1px;border-color:rgba(34,211,238,.45)}.ws-editor-quick-open__list{list-style:none;margin:8px 0 0;padding:0 0 8px;max-height:min(50vh,320px);overflow-y:auto}.ws-editor-quick-open__item{display:block;width:100%;border:none;background:transparent;color:var(--ws-text);font-size:13px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-align:left;padding:10px 14px;cursor:pointer}.ws-editor-quick-open__item--active,.ws-editor-quick-open__item:hover{background:rgba(34,211,238,.12);color:var(--ws-accent)}.ws-editor-quick-open__item--current{border-left:3px solid var(--ws-accent);padding-left:11px}.ws-editor-quick-open__empty{padding:16px 14px;font-size:13px;color:var(--ws-muted);text-align:center}.ds-editor-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 12px;border-bottom:1px solid var(--ds-line);background:var(--ds-surface-2);flex-shrink:0}.ds-editor-toolbar__group{display:inline-flex;align-items:center;gap:4px}.ds-editor-toolbar__spacer{flex:1 1;min-width:8px}.ds-editor-toolbar__divider{width:1px;height:18px;background:var(--ds-line);flex-shrink:0}.ds-editor-toolbar__btn{border:1px solid var(--ds-line);background:transparent;color:var(--ds-muted);font-size:12px;font-weight:600;padding:5px 10px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease,background .15s ease}.ds-editor-toolbar__btn--icon{min-width:30px;padding:5px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700}.ds-editor-toolbar__btn:hover:not(:disabled){color:var(--ds-text);border-color:rgba(55,118,171,.35);background:hsla(0,0%,100%,.05)}.ds-editor-toolbar__btn--active{border-color:rgba(55,118,171,.5);color:var(--ds-accent);background:rgba(55,118,171,.1)}.ds-editor-toolbar__btn:disabled{opacity:.45;cursor:not-allowed}.ds-editor-toolbar__btn:focus-visible{outline:2px solid var(--ds-accent);outline-offset:2px}.ds-editor-toolbar__btn--accent{color:var(--ds-accent);border-color:rgba(55,118,171,.45);background:rgba(55,118,171,.12)}.ds-editor-toolbar__btn--accent:hover:not(:disabled){background:rgba(55,118,171,.22);border-color:rgba(55,118,171,.6)}.ds-editor-toolbar__font-label{min-width:22px;text-align:center;font-size:12px;font-weight:700;color:var(--ds-text)}.ds-editor-statusbar,.ds-editor-toolbar__font-label{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.ds-editor-statusbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:4px 12px;border-top:1px solid var(--ds-line);background:var(--ds-surface-2);font-size:11px;font-weight:600;color:var(--ds-muted);flex-shrink:0}.ds-editor-statusbar__item{white-space:nowrap}.ds-editor-statusbar__sep{width:1px;height:12px;background:var(--ds-line);flex-shrink:0}.ds-editor-quick-open-overlay,.ds-editor-shortcuts-overlay{position:fixed;inset:0;z-index:calc(var(--modal-z) + 300);background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:min(12vh,96px) 16px 16px;touch-action:none}.ds-editor-shortcuts{width:min(440px,100%);background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:12px;box-shadow:0 24px 64px rgba(0,0,0,.45);overflow:hidden}.ds-editor-shortcuts__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--ds-line);background:var(--ds-surface-2)}.ds-editor-shortcuts__title{margin:0;font-size:16px;font-weight:800;color:var(--ds-text)}.ds-editor-shortcuts__close{min-width:32px;padding:4px 8px;font-size:18px;line-height:1}.ds-editor-shortcuts__list{list-style:none;margin:0;padding:8px 0}.ds-editor-shortcuts__row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px}.ds-editor-shortcuts__row--disabled{opacity:.45}.ds-editor-shortcuts__label{font-size:13px;font-weight:600;color:var(--ds-text)}.ds-editor-shortcuts__keys{font-size:12px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:var(--ds-accent);background:rgba(55,118,171,.1);border:1px solid rgba(55,118,171,.25);border-radius:6px;padding:4px 8px;white-space:nowrap}.ds-editor-quick-open{width:min(520px,100%);background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:12px;box-shadow:0 24px 64px rgba(0,0,0,.45);overflow:hidden}.ds-editor-quick-open__label{display:block;padding:12px 14px 0;font-size:12px;font-weight:700;color:var(--ds-muted);text-transform:uppercase;letter-spacing:.04em}.ds-editor-quick-open__input{display:block;width:calc(100% - 28px);margin:8px 14px 0;padding:10px 12px;border:1px solid var(--ds-line);border-radius:8px;background:var(--ds-surface-2);color:var(--ds-text);font-size:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.ds-editor-quick-open__input:focus{outline:2px solid var(--ds-accent);outline-offset:1px;border-color:rgba(55,118,171,.45)}.ds-editor-quick-open__list{list-style:none;margin:8px 0 0;padding:0 0 8px;max-height:min(50vh,320px);overflow-y:auto}.ds-editor-quick-open__item{display:block;width:100%;border:none;background:transparent;color:var(--ds-text);font-size:13px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-align:left;padding:10px 14px;cursor:pointer}.ds-editor-quick-open__item--active,.ds-editor-quick-open__item:hover{background:rgba(55,118,171,.12);color:var(--ds-accent)}.ds-editor-quick-open__item--current{border-left:3px solid var(--ds-accent);padding-left:11px}.ds-editor-quick-open__empty{padding:16px 14px;font-size:13px;color:var(--ds-muted);text-align:center}.ws-editor-panel__resizer{cursor:col-resize;touch-action:none;border:none;background:var(--ws-line);padding:0;position:relative;transition:background .15s ease,box-shadow .15s ease}.ws-editor-panel__resizer:after{content:"⋮⋮";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;letter-spacing:-2px;color:var(--ws-muted);pointer-events:none;opacity:.7}.ws-editor-panel__resizer:focus-visible,.ws-editor-panel__resizer:hover{background:var(--ws-accent);box-shadow:0 0 12px var(--ws-accent-glow);outline:none}.ws-preview-panel{display:flex;flex-direction:column;height:100%;flex:1 1;min-height:0}.ws-preview-panel__frame-wrap{flex:1 1;display:flex;justify-content:center;align-items:flex-start;padding:12px;background:#fff;overflow:auto;position:relative}.ws-preview-panel__loading{position:absolute;inset:12px;display:flex;align-items:center;justify-content:center;background:hsla(0,0%,100%,.82);color:var(--ws-muted,var(--muted));font-size:13px;z-index:1;pointer-events:none}.ws-preview-panel__iframe{border:none;min-height:280px;height:100%;background:#fff;box-shadow:0 8px 32px rgba(0,0,0,.2)}.ws-preview-panel__console{border-top:1px solid var(--ws-line);background:#0a0d16;max-height:140px}.ws-preview-panel__console-header{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ws-muted);padding:6px 12px}.ws-preview-panel__console-body{padding:0 12px 10px;font-family:ui-monospace,monospace;font-size:11px;overflow-y:auto;max-height:100px}.ws-console-line--error{color:var(--ws-red)}.ws-console-line--warn{color:var(--ws-amber)}.ws-console-line--log{color:var(--ws-muted)}.ws-preview-panel__console-empty{color:var(--ws-muted);font-style:italic}.ws-action-bar{max-width:1600px;margin:0 auto;display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:16px}.ws-action-bar--view-only{flex-direction:column;align-items:stretch;gap:10px}.ws-action-bar__left{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:4px;flex-shrink:0}.ws-action-bar__right{flex:1 1;min-width:0;max-width:min(420px,55%);display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:6px}.ws-action-bar__view-hint{margin:0;font-size:13px;font-weight:600;line-height:1.45;color:#67e8f9;text-align:left;padding:8px 12px;border-radius:10px;background:rgba(34,211,238,.12);border:1px solid rgba(34,211,238,.28)}.ws-action-bar--view-only .ws-action-bar__buttons,.ws-action-bar--view-only .ws-action-bar__left{width:100%}.ws-action-bar__notes-wrap{width:100%;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.ws-action-bar__error{margin:0;font-size:11px;color:var(--ws-red)}.ws-action-bar__notes-toggle{background:transparent;border:none;color:var(--ws-muted);font-size:11px;font-weight:600;cursor:pointer;padding:2px 0;text-align:right;white-space:nowrap}.ws-action-bar__notes-toggle:hover{color:var(--ws-text)}.ws-action-bar__notes-opt{font-weight:400}.ws-action-bar__notes-panel{width:100%}.ws-action-bar__notes-input{background:var(--ws-bg)!important;border:1px solid var(--ws-line)!important;color:var(--ws-text)!important;width:100%;box-sizing:border-box;font-size:12px;padding:6px 10px!important;min-height:0!important}.ws-action-bar__buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.ws-action-bar__buttons .ws-btn{min-height:38px;flex:0 1 auto;justify-content:center;min-width:0;font-size:13px;padding:7px 14px;border-radius:10px}.ws-btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:12px;font-size:14px;font-weight:800;padding:10px 20px;cursor:pointer;transition:background .15s ease,transform .1s ease,opacity .15s ease}.ws-btn:active:not(:disabled){transform:scale(.97)}.ws-btn:disabled{opacity:.45;cursor:not-allowed}.ws-btn--preview{background:rgba(34,211,238,.12);color:var(--ws-accent);border:1px solid rgba(34,211,238,.35)}.ws-btn--preview:hover:not(:disabled){background:rgba(34,211,238,.22)}.ws-btn--preview:not(:disabled).ws-btn--ready{animation:ws-preview-ready-pulse 2.5s ease-in-out infinite}@keyframes ws-preview-ready-pulse{0%,to{box-shadow:0 0 0 0 rgba(34,211,238,0)}50%{box-shadow:0 0 16px 2px rgba(34,211,238,.2)}}.ws-btn--preview:disabled{animation:none}.ws-btn--preview:focus-visible{outline:2px solid var(--ws-accent);outline-offset:2px}.ws-btn--send{background:linear-gradient(135deg,#22d3ee,#6366f1);color:#080b14;box-shadow:0 0 20px var(--ws-accent-glow)}.ws-btn--send:hover:not(:disabled){background:linear-gradient(135deg,#06b6d4,#4f46e5);box-shadow:0 0 28px var(--ws-accent-glow)}.ws-btn--send:focus-visible{outline:2px solid var(--ws-accent);outline-offset:2px}.ws-btn--review{background:rgba(251,191,36,.18);border:1px solid rgba(251,191,36,.55);color:#fde68a}.ws-btn--review:hover:not(:disabled){background:rgba(251,191,36,.28);border-color:rgba(251,191,36,.75)}.ws-btn--review:focus-visible{outline:2px solid rgba(251,191,36,.85);outline-offset:2px}.ws-btn--ghost{background:transparent;color:var(--ws-muted);border:1px solid var(--ws-line);font-size:13px;padding:7px 14px}.ws-btn--ghost:hover:not(:disabled){color:var(--ws-text);border-color:var(--ws-muted)}.ws-toast{border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600}.ws-toast--info{background:rgba(34,211,238,.12);color:var(--ws-accent)}.ws-toast--waiting{background:rgba(251,191,36,.12);color:var(--ws-amber)}.ws-completed__banner{text-align:center;padding:24px;border-radius:14px;border:1px solid var(--ws-line);background:var(--ws-surface)}.ws-completed__headline{margin:12px 0 8px;font-size:22px;font-weight:900}.ws-skeleton{background:linear-gradient(90deg,var(--ws-surface) 25%,var(--ws-surface-2) 50%,var(--ws-surface) 75%);background-size:200% 100%;animation:ws-shimmer 1.2s ease-in-out infinite;border-radius:10px}@keyframes ws-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ws-skeleton--topbar{height:40px}.ws-skeleton--title{height:24px;width:60%}.ws-skeleton--mission{height:72px}.ws-skeleton--workspace{height:400px;flex:1 1}@media (max-width:640px){.ws-shell__topbar{padding:5px 10px;gap:6px}.ws-shell__topbar-right{gap:5px}.ws-shell__topbar-right .ws-badge{font-size:10px;padding:2px 7px}.ws-shell__title-row{padding:2px 10px 4px;column-gap:6px}.ws-shell__title{font-size:clamp(15px,4vw,18px)}.ws-shell__module{display:none}.ws-shell__main{padding:6px 10px 0;gap:6px}.ws-editor-panel__toolbar{padding:6px 10px}.ws-editor-panel__stats{display:none}.ws-file-explorer__tab{max-width:120px;font-size:11px;padding:5px 7px}}@media (max-width:380px){.ws-shell__brand-name{display:none}}@media (max-width:767px){.ws-shell__action-bar{padding:6px 10px max(6px,env(safe-area-inset-bottom))}.ws-action-bar{gap:6px 8px}.ws-action-bar__buttons .ws-btn{min-height:36px;font-size:12px;padding:6px 12px}}@media (max-width:480px){.ws-action-bar{flex-direction:column;align-items:stretch;gap:10px}.ws-action-bar__right{max-width:none;align-items:stretch}.ws-action-bar__notes-wrap{align-items:stretch}.ws-action-bar__notes-toggle{text-align:left;white-space:normal}.ws-action-bar__view-hint{text-align:left}.ws-action-bar__buttons .ws-btn{flex:1 1;min-width:0}}.hw-board-chip--python{background:rgba(99,102,241,.18);color:#a5b4fc;border:1px solid rgba(99,102,241,.3)}.hw-board-chip--scratch{background:rgba(251,146,60,.18);color:#fb923c;border:1px solid rgba(251,146,60,.3)}.hw-board-chip--web{background:rgba(34,211,238,.18);color:#67e8f9;border:1px solid rgba(34,211,238,.35)}.catalog-approvals-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}.catalog-approvals-toolbar__label{font-size:12px;font-weight:600;color:var(--muted)}.catalog-approvals-toolbar__tabs{display:flex;gap:8px;flex-wrap:wrap}.catalog-approvals-toolbar__tab--active{border-color:rgba(99,102,241,.45);background:rgba(99,102,241,.12);color:#c7d2fe}.catalog-approval-row{padding:0;overflow:hidden}.catalog-approval-row__summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;width:100%;padding:16px 18px;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer}.catalog-approval-row__summary:hover{background:hsla(0,0%,100%,.02)}.catalog-approval-row__main{flex:1 1;min-width:0}.catalog-approval-row__title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:4px}.catalog-approval-row__preview,.catalog-approval-row__sub{font-size:12px;color:var(--muted);line-height:1.45}.catalog-approval-row__preview{margin-top:6px}.catalog-approval-row__sep{margin:0 6px;opacity:.5}.catalog-approval-row__aside{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.catalog-approval-row__time{font-size:11px;color:var(--muted)}.catalog-approval-row__chevron{font-size:12px;color:var(--muted)}.catalog-approval-row__detail{padding:0 18px 18px;border-top:1px solid var(--line)}.catalog-approval-row__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.catalog-diff-viewer__header{margin-bottom:16px}.catalog-diff-viewer__meta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:12px 16px;gap:12px 16px}.catalog-diff-viewer__meta-key{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px}.catalog-diff-viewer__meta-val{font-size:13px;color:var(--text);line-height:1.4}.catalog-diff-viewer__review-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.catalog-diff-viewer__empty{margin:0;font-size:13px;color:var(--muted)}.catalog-diff-viewer__entries{display:flex;flex-direction:column;gap:14px}.catalog-diff-entry{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(0,0,0,.12)}.catalog-diff-entry__title{margin:0;padding:10px 14px;font-size:12px;font-weight:700;color:var(--text);border-bottom:1px solid var(--line);background:hsla(0,0%,100%,.03)}.catalog-diff-entry__columns{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0}@media (max-width:720px){.catalog-diff-entry__columns{grid-template-columns:1fr}}.catalog-diff-value{min-width:0;border-right:1px solid var(--line)}.catalog-diff-entry__columns .catalog-diff-value:last-child{border-right:none}@media (max-width:720px){.catalog-diff-value{border-right:none;border-bottom:1px solid var(--line)}.catalog-diff-entry__columns .catalog-diff-value:last-child{border-bottom:none}}.catalog-diff-value__label{padding:8px 12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line)}.catalog-diff-value__block{max-height:220px;overflow:auto;padding:10px 12px}.catalog-diff-value__block--before{background:rgba(239,68,68,.04)}.catalog-diff-value__block--after{background:rgba(16,185,129,.04)}.catalog-diff-value__block--mono .catalog-diff-value__pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.catalog-diff-value__pre{margin:0;font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.catalog-diff-value__empty{font-size:12px;color:var(--muted)}