:root{--color-background:#f7f8fa;--color-surface:#fff;--color-text:#1d2939;--color-text-secondary:#667085;--color-text-subtle:#475467;--color-border:#dce3e9;--color-brand:#243b53;--color-brand-hover:#172d43;--color-brand-soft:#edf1f5;--color-accent:#7b6848;--color-focus:#175cd3;--color-success:#067647;--color-success-soft:#ecfdf3;--color-warning:#93370d;--color-warning-soft:#fffaeb;--color-error:#b42318;--color-error-soft:#fef3f2;--font-interface:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-editorial:"DM Serif Display", Georgia, serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:96px;--radius-control:4px;--radius-panel:6px;--radius-large:8px;--content-width:1280px;--bg:var(--color-background);--surface:var(--color-surface);--ink:var(--color-text);--muted:var(--color-text-secondary);--line:var(--color-border);--brand:var(--color-brand);--brand-2:var(--color-brand);--brand-soft:var(--color-brand-soft);--brand-deep:var(--color-brand-hover);--mint:var(--color-success-soft);--mint-ink:var(--color-success);--peach:var(--color-warning-soft);--sky:#eff4fa;--ok:var(--color-success);--ok-soft:var(--color-success-soft);--warn:var(--color-warning);--warn-soft:var(--color-warning-soft);--danger:var(--color-error);--danger-soft:var(--color-error-soft);--shadow:none;--shadow-lg:none;--radius:var(--radius-panel);--radius-sm:var(--radius-control);--font:var(--font-interface);--display:var(--font-interface);--sidebar:236px}*{box-sizing:border-box}html,body,#app{min-height:100%}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3{font-family:var(--display);letter-spacing:-.03em;color:var(--ink);margin:0;font-weight:700}.app-shell{grid-template-columns:var(--sidebar) 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;margin-bottom:22px;padding:4px 8px 16px;display:flex}.brand-mark{border-radius:var(--radius-panel);background:var(--brand);color:#fff;width:38px;height:38px;box-shadow:none;flex:none;place-items:center;font-size:18px;font-weight:800;display:grid}.brand-copy{min-width:0}.brand-copy strong{font-size:17px;font-weight:800;line-height:1.2;display:block}.brand-copy small{color:var(--muted);margin-top:2px;font-size:11px;display:block}.nav-label{letter-spacing:.08em;text-transform:uppercase;color:#b0b5c3;padding:0 12px 10px;font-size:11px;font-weight:700}.nav{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex;overflow:auto}.nav-item{border-radius:var(--radius-panel);color:#6b7285;text-align:left;cursor:pointer;background:0 0;border:0;flex-flow:row;align-items:center;gap:12px;width:100%;min-height:48px;padding:10px 12px;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;display:flex}.nav-ico{border-radius:var(--radius-panel);color:#8b90a0;background:#f3f4f8;flex:0 0 34px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.nav-ico svg{width:18px;height:18px;display:block}.nav-text{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;display:block;overflow:hidden}.nav-item.active{background:var(--brand-soft);color:var(--brand-deep)}.nav-item.active .nav-ico{color:var(--brand);box-shadow:none;background:#fff}.nav-item:hover{color:var(--ink);background:#f7f8fa}.nav-item.active:hover{background:var(--brand-soft);color:var(--brand-deep)}.sidebar-foot{border-top:1px solid var(--line);flex:none;margin-top:auto;padding-top:14px}.user-chip{border-radius:var(--radius-panel);background:#f7f8fa;align-items:center;gap:10px;padding:10px;display:flex}.user-avatar{background:var(--brand);color:#fff;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-size:13px;font-weight:700;display:grid}.user-meta{min-width:0}.user-meta strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;line-height:1.2;display:block;overflow:hidden}.user-meta small{color:var(--muted);margin-top:2px;font-size:11px;display:block}.signout{border:1px solid var(--line);color:#6b7285;border-radius:var(--radius-panel);cursor:pointer;background:#fff;width:100%;margin-top:10px;padding:10px 12px;font-weight:650}.signout:hover{color:var(--brand);border-color:#a6b5c4}.main{background:var(--bg);min-width:0;padding:22px 28px 40px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.search-bar{border:1px solid var(--line);max-width:520px;height:46px;box-shadow:var(--shadow);background:#fff;border-radius:999px;flex:1;align-items:center;gap:10px;padding:0 16px;display:flex}.search-bar input{width:100%;color:var(--ink);background:0 0;border:0;outline:none}.search-bar span{color:var(--brand);font-weight:700}.top-actions{align-items:center;gap:10px;display:flex}.icon-btn{border:1px solid var(--line);color:#6b7285;cursor:pointer;background:#fff;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.top-user{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:10px;padding:6px 10px 6px 6px;display:flex}.top-user strong{font-size:13px;display:block}.top-user span{color:var(--muted);font-size:11px;display:block}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:18px;display:flex}.page-head h1{font-size:clamp(28px,3vw,36px);line-height:1.1}.page-head p{color:var(--muted);max-width:60ch;margin:8px 0 0;line-height:1.5}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--brand);margin-bottom:8px;font-size:12px;font-weight:750;display:inline-flex}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-dash{grid-template-columns:minmax(0,1.45fr) 320px;align-items:start;gap:18px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card.soft{background:var(--surface)}.section-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;font-size:18px;display:flex}.section-title span{color:var(--muted);font-size:12px;font-weight:700}.greet-row{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:18px;margin-bottom:14px;display:flex}.greet-row h1{font-size:clamp(30px,3.5vw,40px)}.reward-row{flex-wrap:wrap;gap:10px;display:flex}.reward-chip{border-radius:var(--radius-panel);border:1px solid var(--line);min-width:120px;box-shadow:var(--shadow);background:#fff;align-items:center;gap:10px;padding:10px 14px;display:flex}.reward-chip i{background:#fff7e8;border-radius:50%;place-items:center;width:34px;height:34px;font-style:normal;display:grid}.reward-chip strong{font-size:14px;display:block}.reward-chip span{color:var(--muted);font-size:11px;display:block}.banner-mint{border-radius:var(--radius-panel);background:var(--mint);color:var(--mint-ink);justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;padding:14px 16px;font-weight:650;display:flex}.progress-item{border-bottom:1px solid var(--line);grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 0;display:grid}.progress-item:last-child{border-bottom:0}.progress-thumb{border-radius:var(--radius-panel);object-fit:cover;background:var(--brand-soft);width:52px;height:52px}.progress-thumb.fallback{color:var(--brand);place-items:center;font-weight:800;display:grid}.mini-ring{--p:50;background:conic-gradient(var(--brand) calc(var(--p) * 1%), var(--line) 0);border-radius:50%;place-items:center;width:46px;height:46px;display:grid;position:relative}.mini-ring:after{content:"";background:#fff;border-radius:50%;width:34px;height:34px}.mini-ring span{color:var(--brand-deep);font-size:10px;font-weight:800;position:absolute}.enroll-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.enroll-card{border-radius:var(--radius-panel);border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;transition:border-color .15s;overflow:hidden}.enroll-card:hover{box-shadow:var(--shadow-lg);border-color:#a6b5c4}.enroll-art{height:140px;position:relative;overflow:hidden}.enroll-art img{object-fit:cover;width:100%;height:100%;display:block}.enroll-art .wash{background:linear-gradient(#0000 35%,#1c1d2173);position:absolute;inset:0}.enroll-body .meta{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.enroll-body h3{min-height:42px;margin-bottom:10px;font-size:16px;line-height:1.3}.side-stat{border-radius:var(--radius-panel);border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;align-items:center;gap:12px;padding:14px;display:flex}.side-stat i{border-radius:var(--radius-panel);background:var(--brand-soft);width:44px;height:44px;color:var(--brand);place-items:center;font-style:normal;font-weight:800;display:grid}.side-stat strong{font-size:22px;display:block}.side-stat span{color:var(--muted);margin-top:2px;font-size:12px;display:block}.goal-card{border-radius:var(--radius-panel);border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;padding:18px}.donut-wrap{align-items:center;gap:16px;display:flex}.donut{--p:50;background:conic-gradient(var(--brand) calc(var(--p) * 1%), var(--line) 0);border-radius:50%;flex:none;place-items:center;width:110px;height:110px;display:grid;position:relative}.donut:after{content:"";background:#fff;border-radius:50%;width:76px;height:76px}.donut-label{color:var(--brand-deep);place-items:center;font-size:20px;font-weight:800;display:grid;position:absolute;inset:0}.progress{background:var(--line);border-radius:999px;height:8px;margin-top:8px;overflow:hidden}.progress>i{background:var(--brand);border-radius:inherit;height:100%;display:block}.btn{border-radius:var(--radius-panel);cursor:pointer;background:var(--brand);color:#fff;box-shadow:none;border:0;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-weight:700;display:inline-flex}.btn:hover{filter:brightness(1.03)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn.secondary{background:var(--brand-soft);color:var(--brand-deep);box-shadow:none}.btn.ghost{color:#6b7285;border:1px solid var(--line);box-shadow:none;background:#fff}.btn.danger{background:var(--danger);box-shadow:none}.btn.sm{border-radius:var(--radius-panel);padding:8px 14px;font-size:13px}.field{gap:6px;margin-bottom:14px;display:grid}.field label{color:var(--muted);font-size:13px;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--radius-panel);width:100%;color:var(--ink);background:#fff;padding:12px 13px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-focus);outline:none;box-shadow:0 0 0 4px #6d5efc1f}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:13px 10px;font-size:14px}.table th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;background:#f8fafb;font-size:11px;font-weight:750}.badge{color:#6b7285;background:#f3f4f8;border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:750;display:inline-flex}.auth-wrap{grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.auth-hero{color:#fff;background:radial-gradient(circle at 20% 20%,#ffffff38,#0000 28%),linear-gradient(150deg,#4f3fd4 0%,#6d5efc 45%,#9f8cff 100%);flex-direction:column;justify-content:space-between;padding:48px;display:flex;position:relative;overflow:hidden}.auth-hero h1{color:#fff;max-width:11ch;margin-top:24px;font-size:clamp(36px,4.5vw,52px);line-height:1.05}.auth-hero p{color:#ffffffdb;max-width:34ch;margin-top:16px;font-size:16px;line-height:1.6}.auth-points{gap:10px;margin-top:28px;display:grid}.auth-points div{color:#ffffffeb;align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.auth-points i{background:#ffffff29;border-radius:9px;place-items:center;width:28px;height:28px;font-style:normal;display:grid}.auth-panel{background:#f7f8fa;place-items:center;padding:32px 24px;display:grid}.auth-card{border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow-lg);border-radius:var(--radius-panel);background:#fff;padding:28px}.auth-card h1{font-size:30px}.linkish{color:var(--brand);font-weight:750}.muted{color:var(--muted)}.error,.success{border-radius:var(--radius-panel);margin-bottom:12px;padding:12px 14px;font-size:14px;font-weight:600}.error{color:var(--danger);background:var(--danger-soft)}.success{color:var(--ok);background:var(--ok-soft)}.empty{text-align:center;color:var(--muted);border-radius:var(--radius-panel);background:#f8fafb;border:1px dashed #d9dce8;padding:36px 20px}.stack{gap:12px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.video-frame{border-radius:var(--radius-panel);background:#111827;width:100%;padding-top:56.25%;position:relative;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.option{border:1px solid var(--line);border-radius:var(--radius-panel);cursor:pointer;align-items:flex-start;gap:12px;padding:14px;display:flex}.option:hover{border-color:#a6b5c4}.option.active{border-color:var(--color-focus);background:var(--brand-soft)}.bar-chart{gap:12px;display:grid}.bar-row{grid-template-columns:1fr 56px;align-items:center;gap:10px;display:grid}.bar-track{background:var(--line);border-radius:999px;height:10px;overflow:hidden}.bar-track>i{background:var(--brand);height:100%;display:block}.timeline{gap:0;padding-left:4px;display:grid}.timeline-item{grid-template-columns:36px 1fr;gap:12px;padding:0 0 16px;display:grid;position:relative}.timeline-item:before{content:"";background:var(--line);width:2px;position:absolute;top:30px;bottom:0;left:17px}.timeline-item:last-child:before{display:none}.timeline-ico{border-radius:var(--radius-panel);background:var(--brand-soft);width:36px;height:36px;color:var(--brand);place-items:center;font-size:13px;font-weight:800;display:grid}.timeline-ico.quiz{color:#3b82f6;background:#e8f2ff}.timeline-ico.done{background:var(--ok-soft);color:var(--ok)}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px;margin:8px 0 16px;display:flex}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px 10px 0 0;padding:10px 14px;font-weight:700}.tabs button.active{color:var(--brand-deep);background:var(--brand-soft)}.classroom{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.classroom-main{gap:16px;min-width:0;display:grid}.class-top{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:12px;display:flex}.class-meta{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.material-card{border:1px solid var(--line);border-radius:var(--radius-panel);background:#fff;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:14px;display:grid}.material-ico{border-radius:var(--radius-panel);background:var(--brand-soft);width:44px;height:44px;color:var(--brand);place-items:center;font-size:12px;font-weight:800;display:grid}.material-ico.pdf{color:#e11d48;background:#ffe4e8}.material-ico.img{color:#ea580c;background:#fff1e8}.outline-lesson{border-radius:var(--radius-panel);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.outline-lesson:hover{background:#f7f8fa}.outline-lesson.current{background:var(--brand-soft)}.outline-lesson.done{color:var(--ok)}.objective{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:10px 0;font-size:14px;display:flex}.objective:last-child{border-bottom:0}.objective i{background:var(--brand-soft);width:22px;height:22px;color:var(--brand);border-radius:7px;flex:none;place-items:center;font-size:12px;font-style:normal;font-weight:800;display:grid}.list-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:14px 0;display:flex}.list-row:last-child{border-bottom:0}.hero-panel{border-radius:var(--radius-panel);color:#fff;box-shadow:var(--shadow-lg);background:linear-gradient(125deg,#4f3fd4 0%,#6d5efc 50%,#9f8cff 120%);margin-bottom:18px;padding:28px;position:relative;overflow:hidden}.hero-panel p{color:#ffffffdb;max-width:52ch;margin:10px 0 0;line-height:1.55}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.hero-actions .btn{color:var(--brand-deep);box-shadow:none;background:#fff}.hero-actions .btn.secondary{color:#fff;background:#ffffff24;border:1px solid #ffffff38}.kpi .label{color:var(--muted);font-size:13px;font-weight:650}.kpi .value{margin-top:10px;font-size:30px;font-weight:800}.kpi .hint{color:var(--muted);margin-top:8px;font-size:12px}.pill-soft{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:650;display:inline-flex}.mobile-bar{display:none}.scrim{z-index:30;background:#1c1d2147;display:none;position:fixed;inset:0}.topbar-meta{align-items:center;gap:10px;display:flex}.profile-head{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.profile-avatar{background:var(--brand);color:#fff;border-radius:50%;flex:none;place-items:center;width:64px;height:64px;font-size:22px;font-weight:800;display:grid;position:relative}.course-tile{gap:0;padding:0;display:grid;overflow:hidden}.course-cover{height:140px;position:relative}.course-cover img{object-fit:cover;width:100%;height:100%;display:block}@media (width<=1100px){.grid-dash,.enroll-grid{grid-template-columns:1fr}}@media (width<=960px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:40;width:min(300px,88vw);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.sidebar.open{transform:none}.scrim.show{display:block}.mobile-bar{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.grid-2,.grid-3{grid-template-columns:1fr}.main{padding:16px}.auth-wrap{grid-template-columns:1fr}.auth-hero{min-height:260px;padding:28px}.classroom{grid-template-columns:1fr}.search-bar{display:none}}.grid-dash{display:grid}.grid-dash>*{min-width:0}.search-wrap{flex:1;max-width:480px;position:relative}.search-results{border:1px solid var(--line);z-index:30;background:#fff;border-radius:4px;padding:8px;position:absolute;top:calc(100% + 6px);left:0;right:0}.search-results a{border-radius:4px;padding:10px;display:block}.search-results a:hover{background:var(--brand-soft)}.lesson-content img{max-width:100%;height:auto}.lesson-content a{color:var(--brand);text-decoration:underline}.lesson-content ul,.lesson-content ol{padding-left:24px}.course-pick,.report-filters>*{min-width:0}body{font-family:var(--font-interface);background:var(--color-background);color:var(--color-text)}button,a,input,select,textarea{touch-action:manipulation}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}button:disabled{cursor:not-allowed}.app-shell{font-size:14px;line-height:1.5}.app-shell h1,.app-shell h2,.app-shell h3{font-family:var(--font-interface);letter-spacing:-.025em;font-weight:600}.app-shell h1{font-size:30px;line-height:1.25}.app-shell h2{font-size:18px;line-height:1.4}.app-shell h3{font-size:15px;line-height:1.5}.sidebar{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;padding:24px 16px}.brand{border-bottom:1px solid var(--line);gap:10px;margin-bottom:22px;padding:0 4px 24px}.brand-copy strong{font-size:15px;font-weight:600}.brand-copy small{color:var(--muted);font-size:11px;line-height:1.7}.nav-label{color:var(--muted);letter-spacing:.1em;padding:0 12px 12px;font-size:10px;font-weight:600}.nav{gap:3px}.nav-item{color:#475467;border-left:2px solid #0000;border-radius:4px;gap:10px;min-height:43px;padding:9px 12px;font-size:13px;font-weight:500}.nav-ico{color:#667085;background:0 0;border-radius:0;flex-basis:22px;width:22px;height:22px}.nav-item.active{background:var(--brand-soft);border-left-color:var(--brand);color:var(--brand)}.nav-item.active .nav-ico{box-shadow:none;color:var(--brand);background:0 0}.nav-item:hover{background:#f3f5f7}.sidebar-foot{padding-top:16px}.user-chip{background:0 0;border-radius:0;padding:0 4px}.user-avatar,.profile-avatar{background:var(--brand);box-shadow:none;font-weight:500}.user-meta strong{font-size:12px;font-weight:500}.user-meta small{font-size:11px}.signout{border-radius:4px;min-height:40px;margin-top:16px;padding:9px 12px;font-size:12px;font-weight:500}.main{background:var(--bg);padding:24px 32px 48px}.topbar{border-bottom:1px solid var(--line);min-height:62px;margin-bottom:32px;padding-bottom:20px}.top-user{background:0 0;border:0;border-radius:0;padding:0}.top-user .user-avatar{border-radius:50%}.topbar .search-bar{background:var(--surface);max-width:440px;height:40px;box-shadow:none;border-radius:4px;padding:0 12px}.search-bar input{font-size:13px}.search-bar svg{color:#667085}.ui-app-context{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 5px;font-size:11px}.ui-app-context strong{color:var(--ink);font-weight:500}.ui-page-header,.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;display:flex}.ui-page-header h1,.page-head h1{font-size:30px;font-weight:600;line-height:1.25}.ui-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#52677a;margin:0 0 10px;font-size:10px;font-weight:600}.ui-page-description,.page-head p{color:var(--muted);max-width:68ch;margin:10px 0 0;font-size:14px;line-height:1.75}.ui-page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ui-panel,.card{border:1px solid var(--line);background:var(--surface);box-shadow:none;border-radius:6px;padding:24px}.ui-panel-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.ui-panel-header h2{margin:0;font-size:16px;font-weight:600;line-height:1.5}.ui-panel-header p{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.75}.ui-panel-header>a{color:var(--brand);text-underline-offset:4px;white-space:nowrap;margin-top:4px;font-size:12px;text-decoration:underline}.ui-metric-strip{border:1px solid var(--line);background:var(--surface);border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0 0 28px;display:grid}.ui-metric-strip>div{border-right:1px solid var(--line);min-width:0;padding:21px 24px}.ui-metric-strip>div:last-child{border-right:0}.ui-metric-strip dt{color:var(--muted);font-size:12px;line-height:1.6}.ui-metric-strip dd{letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums;margin:12px 0 0;font-size:30px;font-weight:500;line-height:1.3}.ui-metric-strip p{color:var(--muted);margin:8px 0 0;font-size:11px;line-height:1.65}.ui-metric-attention dd{color:var(--color-warning)}.btn{background:var(--brand);border:1px solid var(--brand);box-shadow:none;border-radius:4px;min-height:40px;padding:9px 15px;font-size:12px;font-weight:500;line-height:1.5}.btn:hover{background:var(--color-brand-hover);filter:none}.btn.secondary,.btn.ghost{color:var(--brand);box-shadow:none;background:#fff;border:1px solid #bdc8d2}.btn.secondary:hover,.btn.ghost:hover{background:#f0f3f6;border-color:#97a9b9}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.sm{border-radius:4px;min-height:34px;padding:6px 11px;font-size:12px}.badge,.pill-soft{color:#475467;overflow-wrap:anywhere;white-space:normal;background:#f1f3f5;border-radius:4px;max-width:100%;padding:3px 7px;font-size:11px;font-weight:500;line-height:1.5}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.brand{background:var(--brand-soft);color:var(--brand)}.field{gap:8px;margin-bottom:20px}.field label{color:var(--ink);font-size:12px;font-weight:500;line-height:1.6}.field input,.field select,.field textarea,.app-shell input:not([type=checkbox]):not([type=radio]),.app-shell select,.app-shell textarea{color:var(--ink);background:#fff;border:1px solid #cbd5df;border-radius:4px;max-width:100%;min-height:42px;padding:10px 12px;font-size:13px;line-height:1.5}.app-shell .search-bar input{background:0 0!important;border:0!important;min-height:0!important;padding:0!important}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-focus);outline-offset:2px;box-shadow:none;border-color:var(--color-focus)}input[type=checkbox],input[type=radio]{accent-color:var(--brand);vertical-align:middle;width:16px;height:16px}.table{font-variant-numeric:tabular-nums;width:100%}.table th{color:#475467;text-transform:none;letter-spacing:0;white-space:nowrap;background:#f8fafb;padding:12px 14px;font-size:11px;font-weight:600}.table td{color:var(--ink);padding:15px 14px;font-size:13px;line-height:1.65}.table tbody tr:hover{background:#fafbfd}.table td .muted{font-size:12px}.app-shell .table td{min-width:110px}.app-shell .table td:first-child{min-width:150px}.section-title{margin-bottom:20px;font-size:16px;font-weight:600;line-height:1.5}.section-title span,.section-title>a{color:var(--muted);font-size:12px;font-weight:400}.progress{background:#e9edf1;border-radius:3px;height:6px}.progress>i{background:var(--brand);border-radius:3px}.bar-track{background:#e9edf1;border-radius:2px;height:8px}.bar-track>i{background:var(--brand)}.donut,.mini-ring{background:conic-gradient(var(--brand) calc(var(--p) * 1%),#e6ebf0 0)}.donut{width:100px;height:100px}.donut:after{width:78px;height:78px}.donut-label{color:var(--ink);font-size:21px;font-weight:500}.enroll-card{box-shadow:none;border-radius:6px;transition:border-color .15s}.enroll-card:hover{box-shadow:none;border-color:#a6b5c4;transform:none}.enroll-art{height:150px}.enroll-body{padding:20px}.enroll-body h3{min-height:0;margin:12px 0;font-size:17px;font-weight:600;line-height:1.45}.enroll-body .row{margin-top:16px;font-size:12px}.enroll-body>.muted{font-size:12px;line-height:1.75}.error,.success{border:1px solid #0000;border-radius:4px;font-size:13px;font-weight:400;line-height:1.7}.error{background:var(--danger-soft);color:var(--danger);border-color:#fecdca}.success{background:var(--ok-soft);color:var(--ok);border-color:#abefc6}.empty{background:#f8fafb;border:1px dashed #cbd5df;border-radius:4px;font-size:13px;line-height:1.8}.tabs{gap:16px}.tabs button{border-bottom:2px solid #0000;border-radius:0;padding:12px 0;font-size:13px;font-weight:500}.tabs button.active{border-bottom-color:var(--brand);color:var(--brand);background:0 0}.material-card,.outline-lesson,.option,.video-frame,.material-ico,.progress-thumb,.timeline-ico,.side-stat,.goal-card{border-radius:4px}.material-card{grid-template-columns:40px minmax(0,1fr) auto}.material-card strong{font-size:13px;font-weight:500}.outline-lesson.current{border-left:2px solid var(--brand)}.hero-panel{color:var(--ink);box-shadow:none;border:1px solid var(--line);background:#fff;border-radius:6px;padding:28px}.hero-panel h1{color:var(--ink)}.hero-panel p{color:var(--muted)}.hero-panel .eyebrow{color:var(--muted)!important}.hero-actions .btn{background:var(--brand);color:#fff}.hero-actions .btn.secondary{color:var(--brand);background:#fff;border-color:#bdc8d2}.kpi{min-height:110px}.kpi .value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:29px;font-weight:500}.ui-dashboard-columns{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.ui-dashboard-columns>*{min-width:0}.ui-task-summary{border:1px solid var(--line);border-left:3px solid var(--brand);background:#fff;border-radius:4px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;margin-bottom:28px;padding:20px 24px;display:grid}.ui-task-summary h2{margin:0 0 6px;font-size:15px}.ui-task-summary p{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.ui-learning-list{display:grid}.ui-learning-row{border-bottom:1px solid var(--line);grid-template-columns:84px minmax(0,1fr) auto;align-items:center;gap:20px;padding:24px 0;display:grid}.ui-learning-row:first-child{padding-top:0}.ui-learning-row:last-child{border-bottom:0;padding-bottom:0}.ui-learning-row>img{object-fit:cover;border:1px solid var(--line);border-radius:4px;width:84px;height:84px}.ui-learning-row h3{margin:7px 0 8px;font-size:16px;font-weight:600}.ui-learning-row p{color:var(--muted);margin:0 0 10px;font-size:12px}.ui-learning-row .ui-course-progress{color:var(--muted);justify-content:space-between;gap:12px;margin-top:8px;font-size:11px;display:flex}.ui-status-line{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:13px 0;font-size:13px;display:flex}.ui-status-line:last-child{border:0}.ui-status-line span{color:var(--muted)}.ui-status-line strong{font-weight:500}.ui-dashboard-chart{gap:21px;display:grid}.ui-dashboard-chart .bar-row{font-size:12px}.ui-dashboard-chart .bar-row strong{font-variant-numeric:tabular-nums;font-weight:500}.ui-subtle-note{color:var(--muted);margin:18px 0 0;font-size:11px;line-height:1.8}.ui-activity-list .list-row{align-items:flex-start;gap:24px;font-size:13px}.ui-activity-list time{white-space:nowrap;font-size:11px}.ui-admin-tools{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:20px;display:flex}.ui-app-skip{z-index:70;border:1px solid var(--line);background:#fff;padding:12px 18px;position:fixed;top:-100px;left:16px}.ui-app-skip:focus{top:12px}@media (width<=1200px){.main{padding:24px}.ui-dashboard-columns{grid-template-columns:minmax(0,1fr) 270px;gap:20px}}@media (width<=1100px){.ui-dashboard-columns{grid-template-columns:1fr}.ui-metric-strip>div{padding:20px}.ui-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-metric-strip>div:nth-child(2n){border-right:0}.ui-metric-strip>div:nth-child(n+3){border-top:1px solid var(--line)}}@media (width<=960px){.topbar{min-height:0;margin-bottom:24px;padding:0 0 15px}.topbar .search-wrap{max-width:100%}.topbar .top-actions{display:none}.topbar .search-bar{width:100%;max-width:none;height:42px;display:flex}.mobile-bar{border-bottom:1px solid var(--line);align-items:center;gap:15px;margin-bottom:20px;padding-bottom:14px}.mobile-bar .pill-soft{background:0 0;border:0;font-weight:500}.main{padding:20px}.sidebar{height:100dvh;overflow:auto}.app-shell h1,.ui-page-header h1,.page-head h1{font-size:27px}.ui-page-header,.page-head{gap:18px;margin-bottom:24px}}@media (width<=600px){.ui-panel,.card{padding:20px}.main{padding:16px}.ui-metric-strip>div{padding:17px 16px}.ui-metric-strip dd{font-size:25px}.ui-metric-strip dt{font-size:11px}.ui-task-summary{grid-template-columns:1fr;gap:16px;padding:20px}.ui-task-summary .btn{justify-self:start}.ui-learning-row{grid-template-columns:56px minmax(0,1fr);gap:14px}.ui-learning-row>img{align-self:start;width:56px;height:56px}.ui-learning-row>.btn{grid-column:2;justify-self:start}.ui-learning-row h3{font-size:15px}.ui-activity-list .list-row{flex-direction:column;gap:7px}.ui-panel-header{flex-wrap:wrap;gap:14px}.app-shell input:not([type=checkbox]):not([type=radio]),.app-shell select,.app-shell textarea{font-size:16px}.material-card{grid-template-columns:40px minmax(0,1fr)}.material-card>.btn{grid-column:2;justify-self:start}.table td,.table th{padding:12px}.donut-wrap{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.material-ico.pdf{background:var(--color-error-soft);color:var(--color-error)}.material-ico.doc{color:#184a86;background:#eff4fa}.material-ico.img{background:var(--color-warning-soft);color:var(--color-warning)}.list-row>div{min-width:0}.list-row>.badge{flex-shrink:0;max-width:105px}.ui-table-region{width:100%;max-width:100%;overflow-x:auto}.ui-table-region .table td:first-child{min-width:280px;max-width:400px}.ui-table-region .table td>strong{font-size:13px;font-weight:500;line-height:1.65;display:block}.ui-table-region .table td>.muted{margin-top:5px;font-size:11px}.card>form>.field:first-child{margin-top:20px}.ui-metric-strip dd small{color:var(--muted);letter-spacing:normal;margin:8px 0 0;font-size:11px;font-weight:400;line-height:1.65;display:block}
