:root{--bg:#fbf7ff;--bg-soft:#fff9fc;--panel:rgba(255,255,255,0.9);--panel-solid:#ffffff;--ink:#2b2940;--muted:#77728a;--line:#eadff5;--brand:#8f6cff;--brand-dark:#6546d6;--brand-soft:#f0eaff;--accent:#ff8bbb;--sky:#73c8ff;--danger:#e35d75;--shadow:0 22px 50px rgba(111,86,180,0.14)}*{box-sizing:border-box}body,html{min-height:100%;max-width:100%;overflow-x:hidden}body{margin:0;background:radial-gradient(circle at 10% 8%,rgba(255,139,187,.24),transparent 24%),radial-gradient(circle at 88% 12%,rgba(115,200,255,.24),transparent 26%),radial-gradient(circle at 80% 86%,rgba(143,108,255,.18),transparent 24%),linear-gradient(135deg,#fff9fc,#f4f1ff 46%,#eef9ff);color:var(--ink);font-family:Arial,Microsoft YaHei,sans-serif}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(143,108,255,.06) 1px,transparent 0),linear-gradient(90deg,rgba(143,108,255,.06) 1px,transparent 0);background-size:34px 34px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent 70%);mask-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent 70%)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{display:grid;align-items:stretch;grid-template-columns:278px minmax(0,1fr);min-width:0}.shell,.sidebar{min-height:100vh}.sidebar{background:linear-gradient(180deg,rgba(101,70,214,.95),rgba(255,139,187,.9)),#8f6cff;color:#fff;padding:30px 22px;height:auto;align-self:stretch;position:relative;box-shadow:18px 0 42px rgba(111,86,180,.24);overflow:hidden}.desktop-nav{height:calc(100vh - 60px);max-height:calc(100vh - 60px);display:flex;flex-direction:column;min-height:0;position:-webkit-sticky;position:sticky;top:30px}.mobile-nav{display:none}.institution-brand{align-items:center;display:flex;gap:12px;min-width:0}.institution-brand>span{min-width:0}.institution-brand small,.institution-brand strong{display:block}.institution-logo{display:block;flex:0 0 auto;object-fit:contain}.sidebar-brand{flex:0 0 auto;margin-bottom:7px;text-shadow:0 2px 16px rgba(64,37,148,.28)}.sidebar-brand .institution-logo{background:rgba(255,255,255,.94);border:2px solid rgba(255,255,255,.8);border-radius:999px;height:58px;padding:3px;width:58px}.sidebar-brand strong{font-size:21px;font-weight:900;line-height:1.25}.sidebar-brand small{color:rgba(255,255,255,.78);font-size:13px;line-height:1.4;margin-top:3px}.subtle{color:var(--muted);font-size:14px;line-height:1.6}.sidebar .subtle{color:rgba(255,255,255,.78)}.nav{grid-gap:8px;gap:8px;margin-top:30px}.nav,.nav-entry{display:grid}.nav-group-label{color:rgba(255,255,255,.58);display:block;font-size:11px;font-weight:900;letter-spacing:.16em;padding:13px 12px 5px}.desktop-nav>.nav{align-content:start;flex:1 1 auto;margin:24px -8px 14px 0;min-height:0;overflow-y:auto;padding-right:8px;scrollbar-color:rgba(255,255,255,.42) transparent;scrollbar-width:thin}.desktop-nav>.nav::-webkit-scrollbar,.mobile-nav .nav::-webkit-scrollbar{width:6px}.desktop-nav>.nav::-webkit-scrollbar-thumb,.mobile-nav .nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.34);border-radius:999px}.nav a,.nav button{align-items:center;border:1px solid rgba(255,255,255,.12);width:100%;color:inherit;background:rgba(255,255,255,.1);display:flex;gap:11px;padding:12px 13px;border-radius:8px;text-align:left;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.nav .active,.nav a:hover,.nav button:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.36);transform:translateX(3px)}.check-in-page{display:grid;grid-gap:22px;gap:22px}.check-in-hero{align-items:stretch;background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(238,249,255,.94)),var(--panel-solid);border:1px solid rgba(143,108,255,.18);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);overflow:hidden;padding:28px}.check-in-hero h2{font-size:34px;margin:8px 0 10px}.check-in-hero p{color:var(--muted);line-height:1.7;margin:0 0 18px}.daily-check-in-form{display:grid;grid-gap:12px;gap:12px;max-width:360px}.check-in-button{font-size:18px;font-weight:900;min-height:52px}.check-in-hero-stats{display:grid;grid-gap:12px;gap:12px}.check-in-hero-stats span{background:rgba(143,108,255,.1);border:1px solid rgba(143,108,255,.16);border-radius:8px;display:grid;grid-gap:4px;gap:4px;padding:16px}.check-in-hero-stats em,.check-in-hero-stats small{color:var(--muted);font-style:normal}.check-in-hero-stats strong{color:var(--brand-dark);font-size:28px}.check-in-rule-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px}.check-in-rule-grid article{background:var(--bg-soft);border:1px solid var(--line);border-radius:8px;padding:14px}.check-in-rule-grid strong{display:block;margin-bottom:6px}.check-in-rule-grid p{color:var(--muted);font-size:14px;line-height:1.55;margin:0}.check-in-progress-track{background:var(--brand-soft);border-radius:999px;height:14px;margin:18px 0 12px;overflow:hidden}.check-in-progress-track span{background:linear-gradient(90deg,var(--brand),var(--accent));display:block;height:100%}.check-in-leaderboard{display:grid;grid-gap:10px;gap:10px;margin-top:14px}.check-in-leaderboard article{align-items:center;background:var(--bg-soft);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:34px minmax(0,1fr) auto auto;padding:10px 12px}.check-in-leaderboard article.current{border-color:rgba(143,108,255,.46);background:var(--brand-soft)}.check-in-leaderboard span{align-items:center;background:#fff;border-radius:999px;color:var(--brand-dark);display:inline-flex;font-weight:900;height:28px;justify-content:center;width:28px}.check-in-leaderboard em,.check-in-leaderboard small{color:var(--muted);font-style:normal;white-space:nowrap}.check-in-calendar-card{overflow:hidden}.check-in-calendar,.check-in-calendar-weekdays{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(7,minmax(0,1fr))}.check-in-calendar-weekdays{color:var(--muted);font-size:13px;font-weight:900;margin:18px 0 8px;text-align:center}.check-in-day{aspect-ratio:1/.82;background:#fff;border:1px solid var(--line);border-radius:8px;display:grid;min-height:74px;padding:8px;position:relative}.check-in-day.empty{background:transparent;border-color:transparent}.check-in-day.future{opacity:.52}.check-in-day.today{border-color:var(--brand);box-shadow:0 0 0 3px rgba(143,108,255,.12)}.check-in-day span{color:var(--ink);font-weight:900}.check-in-day strong{align-self:end;border:2px solid var(--accent);border-radius:999px;color:var(--accent);display:inline-flex;font-size:13px;font-weight:900;justify-self:center;padding:5px 10px;transform:rotate(-10deg)}.check-in-reminder{background:rgba(18,16,32,.48);display:grid;inset:0;padding:18px;place-items:center;position:fixed;z-index:80}.check-in-reminder-panel{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);max-width:460px;padding:24px;position:relative;width:min(100%,460px)}.check-in-reminder-close{align-items:center;background:var(--bg-soft);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:20px;height:34px;justify-content:center;padding:0;position:absolute;right:14px;top:14px;width:34px}.check-in-reminder-kicker{color:var(--brand-dark);font-size:12px;font-weight:900;letter-spacing:.14em}.check-in-reminder-panel h2{margin:8px 44px 8px 0}.check-in-reminder-panel p{color:var(--muted);line-height:1.6}.check-in-reminder-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.sidebar-version{margin-top:auto;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.12);color:rgba(255,255,255,.86);font-size:13px;font-weight:900;padding:10px 12px;flex:0 0 auto}.main{padding:34px;position:relative;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.desktop-user-menu{position:relative;min-width:188px;z-index:20}.desktop-user-menu summary{align-items:center;background:rgba(255,255,255,.82);border:1px solid rgba(219,207,244,.95);border-radius:8px;box-shadow:0 16px 34px rgba(99,73,186,.12);color:#31295d;cursor:pointer;display:grid;grid-template-columns:42px minmax(0,1fr);font-weight:900;grid-gap:10px;gap:10px;list-style:none;padding:9px 12px 9px 10px;text-align:left}.desktop-user-menu summary img{aspect-ratio:1;border:2px solid rgba(255,255,255,.96);border-radius:999px;box-shadow:0 8px 18px rgba(88,65,165,.18);height:42px;object-fit:cover;width:42px}.desktop-user-menu summary span{display:grid;grid-gap:1px;gap:1px;min-width:0}.desktop-user-menu summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desktop-user-menu summary::-webkit-details-marker{display:none}.desktop-user-menu summary small{color:#7a7397;font-size:12px;font-weight:700}.user-menu-panel{background:rgba(255,255,255,.96);border:1px solid rgba(219,207,244,.95);border-radius:8px;box-shadow:0 22px 48px rgba(67,44,134,.18);display:grid;grid-gap:8px;gap:8px;margin-top:8px;padding:10px;position:absolute;right:0;width:184px}.user-menu-panel a,.user-menu-panel button{background:rgba(148,108,244,.08);border:1px solid rgba(148,108,244,.14);border-radius:8px;color:#3a2f75;cursor:pointer;display:block;font:inherit;font-weight:800;padding:10px 12px;text-align:left;width:100%}.user-menu-panel a:hover,.user-menu-panel button:hover{background:rgba(148,108,244,.16)}h1,h2,h3{margin:0;letter-spacing:0}h1{color:#31295d;font-size:32px;font-weight:900}h2{color:#3a3560;font-size:20px}h3{color:#4d4673;font-size:16px}.grid{display:grid;grid-gap:18px;gap:18px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-layout{align-items:start;display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout>.card{align-self:start}.settings-wide-card{grid-column:1/-1}.settings-account-grid{align-items:start;display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-subcard{background:rgba(255,255,255,.72);border:1px solid rgba(234,223,245,.95);border-radius:8px;padding:16px}.settings-subcard h3{font-size:17px;margin-bottom:6px}.settings-note{align-self:end;border:1px solid rgba(234,223,245,.95);border-radius:8px;background:rgba(241,234,255,.68);padding:12px 14px}.settings-note span,.settings-note strong{display:block}.settings-note span{color:var(--muted);font-size:13px;line-height:1.55;margin-top:3px}.card{background:var(--panel);border:1px solid rgba(234,223,245,.95);border-radius:8px;padding:22px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.section-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.stat{background:linear-gradient(135deg,var(--brand-dark),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:38px;font-weight:900;margin-top:10px}.student-dashboard{display:grid;grid-gap:18px;gap:18px}.student-announcements,.student-feature-panel,.student-learning-panel,.student-metrics,.student-next-course,.student-progress-card,.student-quick-section,.student-welcome-card{background:rgba(255,255,255,.92);border:1px solid rgba(229,216,247,.96);border-radius:18px;box-shadow:0 20px 45px rgba(102,70,172,.1)}.student-welcome-card{align-items:center;background:radial-gradient(circle at 85% 25%,rgba(255,255,255,.23),transparent 18%),linear-gradient(125deg,#52217b,#7d42cb 62%,#dc67ad);color:#fff;display:flex;justify-content:space-between;min-height:180px;overflow:hidden;padding:30px 34px;position:relative}.student-welcome-card:after{border:1px solid rgba(255,255,255,.13);border-radius:999px;content:"";height:240px;position:absolute;right:-70px;top:-100px;width:240px}.student-welcome-copy{position:relative;z-index:1}.student-welcome-kicker{color:rgba(255,255,255,.65);font-size:11px;font-weight:900;letter-spacing:.2em}.student-welcome-card h2{color:#fff;font-size:28px;margin-top:10px}.student-welcome-card p{color:rgba(255,255,255,.82);margin:7px 0 14px}.student-number{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.16);border-radius:999px;display:inline-block;font-size:12px;padding:6px 10px}.student-welcome-card>img{border:4px solid rgba(255,255,255,.86);border-radius:999px;box-shadow:0 16px 34px rgba(31,9,64,.28);height:102px;object-fit:cover;position:relative;width:102px;z-index:1}.student-announcements,.student-feature-panel,.student-learning-panel,.student-next-course,.student-progress-card,.student-quick-section{padding:22px}.student-section-heading{align-items:center;display:flex;justify-content:space-between;margin-bottom:18px}.student-section-heading>div>span{color:#9a86c1;display:block;font-size:11px;font-weight:900;letter-spacing:.14em;margin-bottom:5px}.student-section-heading h2{font-size:19px}.student-section-heading>a{align-items:center;color:#8261d8;display:flex;font-size:13px;font-weight:800}.student-course-content{align-items:center;background:linear-gradient(135deg,#faf8ff,#fff8fc);border:1px solid #eee5fa;border-radius:14px;display:grid;grid-gap:14px;gap:14px;grid-template-columns:auto minmax(0,1fr) auto;padding:18px}.student-course-content p{color:var(--muted);font-size:13px;margin:5px 0 0}.student-feature-icon,.student-metric-icon{align-items:center;border-radius:14px;display:inline-flex;height:48px;justify-content:center;width:48px}.student-feature-icon{background:linear-gradient(135deg,#8058ef,#e467b3);color:#fff}.student-overview-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr)}.student-progress-content{align-items:center;display:grid;grid-gap:28px;gap:28px;grid-template-columns:auto minmax(0,1fr)}.student-progress-ring{align-items:center;border-radius:999px;display:flex;height:138px;justify-content:center;position:relative;width:138px}.student-progress-ring:before{background:#fff;border-radius:inherit;content:"";inset:11px;position:absolute}.student-progress-ring span{display:grid;position:relative;text-align:center}.student-progress-ring strong{color:#6040bf;font-size:26px}.student-progress-ring small{color:var(--muted);font-size:11px}.student-progress-content dl{display:grid;grid-gap:11px;gap:11px;margin:0}.student-progress-content dl div{align-items:center;border-bottom:1px solid #f0eaf8;display:flex;justify-content:space-between;padding-bottom:9px}.student-progress-content dt{color:var(--muted);font-size:13px}.student-progress-content dd{color:#50358f;font-size:17px;font-weight:900;margin:0}.student-metrics{display:grid;overflow:hidden;padding:8px 18px}.student-metrics>a{align-items:center;border-bottom:1px solid #eee7f7;display:grid;grid-gap:13px;gap:13px;grid-template-columns:auto minmax(0,1fr) auto;padding:14px 0}.student-metrics>a:last-child{border-bottom:0}.student-metrics>a>span:nth-child(2){display:grid;grid-gap:3px;gap:3px}.student-metrics small{color:var(--muted)}.student-metrics strong{color:#3c2d6e;font-size:21px}.student-metric-icon{height:42px;width:42px}.student-metric-icon svg{height:20px;width:20px}.student-metric-icon.purple{background:#eee8ff;color:#7651de}.student-metric-icon.pink{background:#ffe8f3;color:#d6539b}.student-metric-icon.blue{background:#e7f5ff;color:#408fc5}.student-quick-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}.student-quick-grid a{align-items:center;background:#fbf9ff;border:1px solid #eee5fa;border-radius:14px;display:flex;flex-direction:column;gap:8px;min-height:116px;padding:18px 10px 12px;text-align:center;transition:transform .18s ease,box-shadow .18s ease}.student-quick-grid a:hover{box-shadow:0 14px 28px rgba(105,74,175,.12);transform:translateY(-2px)}.student-quick-grid svg{color:#7c55df}.student-quick-grid span{font-size:13px;font-weight:900}.student-quick-grid small{color:var(--muted);font-size:11px}.student-announcement-list{display:grid;grid-gap:12px;gap:12px}.student-announcement-list article{background:#fbf9ff;border:1px solid #eee6f8;border-radius:12px;padding:14px 16px}.student-announcement-list p{margin-bottom:0}.student-feature-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.student-feature-card{background:linear-gradient(135deg,#fbf9ff,#fff8fd);border:1px solid #eee5fa;border-radius:14px;display:grid;grid-gap:8px;gap:8px;min-height:124px;padding:16px}.student-feature-card span{align-items:center;color:#7b55de;display:flex;font-size:13px;font-weight:900;gap:8px}.student-feature-card strong{color:#392b6d;font-size:24px}.student-feature-card small{color:var(--muted);font-size:12px;line-height:1.5}.student-learning-panel,.student-learning-row{display:grid;grid-gap:14px;gap:14px}.student-learning-row{align-items:center;background:#fbf9ff;border:1px solid #eee5fa;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;padding:16px}.student-learning-row strong{display:block;margin-bottom:4px}.student-learning-row p{color:var(--muted);font-size:13px;margin:0}.student-learning-row .badge{justify-self:end}.role-dashboard{display:grid;grid-gap:18px;gap:18px}.role-hero{align-items:center;background:radial-gradient(circle at 86% 20%,rgba(255,255,255,.16),transparent 20%),linear-gradient(125deg,#302067,#6242b1 68%,#9470db);border-radius:20px;box-shadow:0 22px 50px rgba(61,37,125,.2);color:#fff;display:flex;justify-content:space-between;min-height:178px;overflow:hidden;padding:30px 34px;position:relative}.teacher-dashboard .role-hero{background:radial-gradient(circle at 86% 20%,rgba(255,255,255,.17),transparent 20%),linear-gradient(125deg,#542071,#8740a7 64%,#dc69ad)}.role-hero:after{border:1px solid rgba(255,255,255,.13);border-radius:999px;content:"";height:250px;position:absolute;right:-70px;top:-105px;width:250px}.role-hero>a,.role-hero>div{position:relative;z-index:1}.role-eyebrow,.role-panel-heading span{color:rgba(255,255,255,.65);display:block;font-size:11px;font-weight:900;letter-spacing:.18em}.role-hero h2{color:#fff;font-size:29px;margin-top:9px}.role-hero p{color:rgba(255,255,255,.8);margin:8px 0 0}.role-hero>a{align-items:center;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.24);border-radius:12px;display:flex;font-size:14px;font-weight:900;gap:8px;padding:12px 16px}.role-metric-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.role-metric-card{align-items:center;background:rgba(255,255,255,.92);border:1px solid rgba(228,216,246,.96);border-radius:16px;box-shadow:0 16px 36px rgba(86,58,153,.09);display:grid;grid-gap:13px;gap:13px;grid-template-columns:auto minmax(0,1fr) auto;min-height:108px;padding:18px;transition:transform .18s ease,box-shadow .18s ease}.role-metric-card:hover{box-shadow:0 20px 42px rgba(86,58,153,.15);transform:translateY(-2px)}.role-metric-card>span:nth-child(2){display:grid;grid-gap:4px;gap:4px}.role-metric-card small{color:var(--muted);font-size:12px}.role-metric-card strong{color:#392b6d;font-size:27px}.role-metric-icon{align-items:center;border-radius:14px;display:flex;height:48px;justify-content:center;width:48px}.role-metric-icon svg{height:22px;width:22px}.role-metric-icon.violet{background:#eee8ff;color:#7651dc}.role-metric-icon.blue{background:#e8efff;color:#5278dc}.role-metric-icon.pink{background:#ffe8f3;color:#d55499}.role-metric-icon.amber{background:#fff3dc;color:#c7862c}.role-metric-icon.cyan{background:#e5f7ff;color:#368ebc}.role-metric-icon.green{background:#e6f8ef;color:#32956a}.role-metric-arrow{color:#a697c2}.role-dashboard-columns{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1.6fr) minmax(300px,.75fr)}.role-panel{background:rgba(255,255,255,.92);border:1px solid rgba(228,216,246,.96);border-radius:18px;box-shadow:0 18px 40px rgba(86,58,153,.09);padding:22px}.role-panel-heading{margin-bottom:18px}.role-panel-heading span{color:#9a87c0;margin-bottom:5px}.role-panel-heading h2{font-size:19px}.role-action-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.role-action-grid a{align-items:center;background:#faf8ff;border:1px solid #eee5fa;border-radius:14px;display:flex;flex-direction:column;gap:7px;min-height:125px;padding:18px 10px 12px;text-align:center}.role-action-grid svg{color:#7551d5}.teacher-dashboard .role-action-grid svg{color:#a344a5}.role-action-grid span{font-size:13px;font-weight:900}.role-action-grid small{color:var(--muted);font-size:11px}.role-focus-list{display:grid}.role-focus-list a{align-items:center;border-bottom:1px solid #eee7f7;display:flex;justify-content:space-between;padding:13px 0}.role-focus-list a:first-child{padding-top:0}.role-focus-list span{color:var(--muted);font-size:13px}.role-focus-list strong{color:#503890;font-size:20px}.role-focus-panel>p{background:#f6f1ff;border-radius:10px;color:#71668b;font-size:12px;line-height:1.6;margin:16px 0 0;padding:11px 12px}.role-module-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.role-module-card{background:#faf8ff;border:1px solid #eee5fa;border-radius:14px;display:grid;grid-gap:8px;gap:8px;min-height:118px;padding:16px}.role-module-card span{color:var(--muted);font-size:12px}.role-module-card strong{color:#392b6d;font-size:24px}.role-module-card small{color:var(--muted);font-size:12px;line-height:1.5}.form{display:grid;grid-gap:13px;gap:13px}.filter-bar{align-items:end;border:1px solid rgba(226,213,247,.9);border-radius:8px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(220px,1.4fr) minmax(160px,.8fr) auto auto auto;margin-bottom:18px;padding:14px}.check-row{align-items:center;display:flex;gap:8px;min-height:42px}.check-row input{width:auto}label{display:grid;grid-gap:7px;gap:7px;color:#4a446b;font-size:14px;font-weight:800}input,select,textarea{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.9);color:var(--ink);border-radius:8px;padding:11px 12px;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}input:focus,select:focus,textarea:focus{border-color:rgba(143,108,255,.62);box-shadow:0 0 0 4px rgba(143,108,255,.14);background:#fff}textarea{min-height:104px;resize:vertical}.button,button{border:0;border-radius:8px;padding:10px 15px;background:linear-gradient(135deg,var(--brand),var(--accent));color:white;font-weight:900;cursor:pointer;box-shadow:0 12px 26px rgba(143,108,255,.25);transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.button:hover,button:hover{box-shadow:0 16px 30px rgba(143,108,255,.32);transform:translateY(-1px)}.button.secondary,button.secondary{background:#f1eaff;color:#4e3ca8;box-shadow:none}.button.disabled{opacity:.5;pointer-events:none}.button.danger,button.danger{background:linear-gradient(135deg,var(--danger),#ff8bbb);box-shadow:0 10px 22px rgba(227,93,117,.2)}button:disabled{background:#c9c1d5;box-shadow:none;cursor:not-allowed;opacity:.76;transform:none}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;overflow:hidden}.table td,.table th{border-bottom:1px solid var(--line);padding:13px 11px;text-align:left;vertical-align:top}.table th{background:rgba(143,108,255,.08);color:#67607e;font-size:13px;font-weight:900}.table tr:hover td{background:rgba(255,255,255,.5)}.pagination{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:18px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;background:#edf3ff;color:#405dbe;font-size:12px;font-weight:900}.badge.warn{background:#fff0c9;color:#8a5b00}.badge.bad{background:#ffe0ea;color:#ba2f5d}.paid-product-grid{display:grid;grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.paid-product-card{background:rgba(255,255,255,.96);border:1px solid rgba(234,223,245,.95);border-radius:8px;box-shadow:0 16px 36px rgba(80,58,145,.1);display:flex;flex-direction:column;min-width:0;overflow:hidden}.paid-product-cover{aspect-ratio:16/9;background:#f2eef9;display:block;object-fit:cover;width:100%}.paid-product-cover-empty{align-items:center;color:#6d5ac7;display:flex;font-size:20px;font-weight:900;justify-content:center;padding:18px;text-align:center}.paid-product-body{display:grid;flex:1 1;grid-gap:11px;gap:11px;padding:13px 12px 14px}.paid-product-title{align-items:flex-start;color:#201b3f;display:flex;font-size:15px;gap:7px;line-height:1.45}.paid-product-title strong{font-weight:800}.paid-product-badge{background:linear-gradient(135deg,#ff6d5c,#ff8aa8);border-radius:4px;color:#fff;flex:0 0 auto;font-size:12px;font-weight:900;line-height:1;padding:4px 5px}.paid-product-body p{color:#615a7d;font-size:13px;line-height:1.55;margin:0}.paid-product-rating{align-items:center;color:#4d4667;display:flex;font-size:13px;gap:4px}.paid-product-rating span{color:#ffbd28;letter-spacing:0}.paid-product-price{align-items:baseline;display:flex;flex-wrap:wrap;gap:6px}.paid-product-price strong{color:#2c244d;font-size:16px;font-weight:900}.paid-product-price span{color:#8c84a4;font-size:12px;text-decoration:line-through}.paid-admin-item{align-items:flex-start;display:flex;gap:12px;min-width:0}.paid-admin-item img,.paid-cover-placeholder{aspect-ratio:16/9;background:#f2eef9;border-radius:6px;flex:0 0 112px;object-fit:cover;overflow:hidden;width:112px}.paid-cover-placeholder{align-items:center;color:#7a66cb;display:flex;font-size:13px;font-weight:900;justify-content:center}.profile-avatar-edit{align-items:center;background:rgba(246,241,255,.72);border:1px solid rgba(226,213,247,.9);border-radius:8px;display:grid;grid-gap:16px;gap:16px;grid-template-columns:86px minmax(0,1fr);padding:14px}.profile-avatar-edit img{aspect-ratio:1;border:3px solid #fff;border-radius:999px;box-shadow:0 14px 28px rgba(88,65,165,.16);height:86px;object-fit:cover;width:86px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(rgba(75,52,154,.48),rgba(255,139,187,.34)),url(https://images.unsplash.com/photo-1516280440614-37939bbacd81?auto=format&fit=crop&w=1800&q=80) 50%/cover}.auth-card{width:min(460px,100%);background:rgba(255,255,255,.93);border:1px solid rgba(255,255,255,.72);border-radius:8px;padding:32px;box-shadow:0 30px 90px rgba(72,47,140,.28)}.nav a svg{flex:0 0 auto}.shell-student{grid-template-columns:294px minmax(0,1fr)}.shell-student .sidebar{background:radial-gradient(circle at 50% 0,rgba(255,255,255,.16),transparent 28%),linear-gradient(180deg,#52217b,#7137bd 47%,#e06caf);padding:28px 22px 22px}.shell-student .sidebar:after{border:1px solid rgba(255,255,255,.08);border-radius:999px;content:"";height:230px;left:-92px;pointer-events:none;position:absolute;top:-96px;width:230px}.shell-student .sidebar-brand{align-items:center;flex-direction:column;gap:10px;padding:4px 8px 14px;text-align:center}.shell-student .sidebar-brand .institution-logo{border:3px solid rgba(255,255,255,.82);box-shadow:0 14px 30px rgba(42,14,79,.28);height:84px;padding:4px;width:84px}.shell-student .sidebar-brand strong{font-size:20px}.shell-student .sidebar-brand small{font-size:12px}.shell-student .desktop-nav>.nav{gap:3px;margin-top:4px}.shell-student .nav a{background:transparent;border-color:transparent;border-radius:12px;font-size:14px;font-weight:800;padding:10px 13px}.shell-student .nav a.active,.shell-student .nav a:hover{background:linear-gradient(90deg,rgba(255,255,255,.22),rgba(255,255,255,.12));border-color:rgba(255,255,255,.22);box-shadow:inset 3px 0 #fff,0 10px 22px rgba(53,18,93,.12);transform:translateX(0)}.shell-admin,.shell-teacher{grid-template-columns:294px minmax(0,1fr)}.shell-admin .sidebar{background:radial-gradient(circle at 48% 0,rgba(255,255,255,.13),transparent 27%),linear-gradient(180deg,#241653,#49318f 58%,#7952bf)}.shell-teacher .sidebar{background:radial-gradient(circle at 48% 0,rgba(255,255,255,.14),transparent 27%),linear-gradient(180deg,#4b1f69,#7938a0 56%,#d060a8)}.shell-admin .sidebar-brand,.shell-teacher .sidebar-brand{align-items:center;flex-direction:column;gap:9px;padding:2px 8px 12px;text-align:center}.shell-admin .sidebar-brand .institution-logo,.shell-teacher .sidebar-brand .institution-logo{border:3px solid rgba(255,255,255,.82);box-shadow:0 14px 30px rgba(25,12,65,.3);height:78px;padding:4px;width:78px}.shell-admin .sidebar-brand strong,.shell-teacher .sidebar-brand strong{font-size:19px}.shell-admin .sidebar-brand small,.shell-teacher .sidebar-brand small{font-size:12px}.shell-admin .desktop-nav>.nav,.shell-teacher .desktop-nav>.nav{gap:2px;margin-top:3px}.shell-admin .nav a,.shell-teacher .nav a{background:transparent;border-color:transparent;border-radius:11px;font-size:13px;font-weight:800}.shell-admin .nav a.active,.shell-admin .nav a:hover,.shell-teacher .nav a.active,.shell-teacher .nav a:hover{background:linear-gradient(90deg,rgba(255,255,255,.2),rgba(255,255,255,.09));border-color:rgba(255,255,255,.2);box-shadow:inset 3px 0 #fff,0 10px 22px rgba(28,12,70,.14);transform:none}.auth-brand{justify-content:center;margin-bottom:18px;text-align:left}.auth-brand .institution-logo{height:76px;width:76px}.auth-brand strong{color:#4e347e;font-size:20px;max-width:260px}.settings-logo-preview{align-items:center;display:flex;flex-wrap:wrap;gap:18px}.settings-logo-preview img{background:#fff;border:1px solid var(--line);border-radius:12px;height:120px;object-fit:contain;padding:8px;width:120px}.form-error{border:1px solid #ffb3c2;background:#fff0f4;color:var(--danger);border-radius:8px}.form-error,.form-success{padding:10px 12px;font-size:14px;font-weight:900}.form-success{border:1px solid #b3dfc6;background:#effaf3;color:#236143;border-radius:8px}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:14px;gap:14px}.slot{border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.76);padding:16px;box-shadow:0 12px 26px rgba(111,86,180,.08)}.homework-review-list,.homework-review-list .form,.homework-review-list label,.homework-review-list>.slot,.homework-review-page{min-width:0;max-width:100%}.homework-review-list button,.homework-review-list textarea{max-width:100%}.homework-review-list textarea{display:block}.homework-review-list a{max-width:100%;overflow-wrap:anywhere;word-break:break-word}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.hour-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));grid-gap:10px;gap:10px;margin-top:12px}.check-pill{align-items:center;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.72);display:flex;flex-direction:row;gap:8px;justify-content:flex-start;padding:10px 12px}.check-pill input{width:auto}.version-list{margin:12px 0 0;padding-left:20px;color:var(--muted);line-height:1.8}.ai-bubble{align-items:center;border-radius:999px;display:inline-flex;font-size:16px;height:58px;justify-content:center;position:fixed;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:58px;z-index:58}.ai-panel{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:8px;box-shadow:0 28px 80px rgba(80,61,150,.26);display:grid;grid-gap:12px;gap:12px;overflow:hidden;padding:14px;position:fixed;z-index:57}.ai-head{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding-bottom:10px}.ai-head span{color:var(--muted);display:block;font-size:12px;margin-top:2px}.ai-messages{display:grid;grid-gap:10px;gap:10px;max-height:min(360px,calc(100vh - 270px));overflow:auto;padding-right:4px}.ai-message{border-radius:8px;line-height:1.7;padding:10px 12px;white-space:pre-wrap}.ai-message.assistant{background:#f3efff;color:#42357b}.ai-message.user{background:linear-gradient(135deg,var(--brand),var(--accent));color:white;justify-self:end;max-width:88%}.ai-input-row{display:grid;grid-gap:10px;gap:10px}.ai-input-row textarea{min-height:72px}summary.button{display:inline-flex;width:-moz-fit-content;width:fit-content;list-style:none}summary.button::-webkit-details-marker{display:none}.progress-form{margin-top:16px}.progress-table-fields{border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.progress-table-head{background:rgba(143,108,255,.08);color:#67607e;font-size:13px;font-weight:900;padding:10px}.progress-table-row{display:contents}.progress-table-row textarea{border:0;border-radius:0;border-top:1px solid var(--line);min-height:86px}.inline-fieldset{border:1px solid var(--line);border-radius:8px;display:flex;flex-wrap:wrap;gap:10px 16px;margin:0;padding:14px}.inline-fieldset legend{color:#4a446b;font-weight:900;padding:0 8px}.print-shell{background:#edeaf2;min-height:100vh;padding:28px}.print-actions{display:flex;gap:10px;margin:0 auto 18px;width:min(900px,100%)}.progress-print-page{background:#fffdf9;border:1px solid #d8c7a3;box-shadow:0 18px 60px rgba(34,26,62,.18);color:#25213f;display:flex;flex-direction:column;margin:0 auto 22px;min-height:1120px;padding:36px 38px 150px;position:relative;width:min(900px,100%)}.progress-print-header{align-items:flex-start;border-bottom:2px solid #d8c7a3;display:flex;justify-content:space-between;gap:20px;padding-bottom:18px}.progress-print-brand{align-items:center;display:flex;gap:14px}.progress-print-brand .institution-logo{height:72px;width:72px}.progress-print-header p{color:#9a7432;font-weight:900;letter-spacing:3px;margin:0 0 6px}.progress-print-header h1{color:#25213f;font-size:29px;line-height:1.2}.progress-print-header span,.progress-print-meta{color:#5f587d}.progress-print-meta{border:1px solid #e3d7be;border-radius:8px;min-width:240px;padding:10px 14px}.progress-print-block p,.progress-print-meta p{line-height:1.75;margin:0}.progress-print-block{margin-top:16px}.progress-print-block h2,.progress-print-notes h2{color:#2f2a56;font-size:15px;margin-bottom:7px}.progress-print-block table{border-collapse:collapse;table-layout:fixed;width:100%}.progress-print-block td:first-child,.progress-print-block th:first-child{width:46px}.progress-print-block td:nth-child(2),.progress-print-block th:nth-child(2){width:150px}.progress-print-block td:nth-child(4),.progress-print-block th:nth-child(4){width:110px}.progress-print-block td,.progress-print-block th{border:1px solid #d8c7a3;line-height:1.45;padding:0;text-align:left;vertical-align:top}.progress-print-block th{padding:7px 9px;background:#faf2df}.progress-print-cell{box-sizing:border-box;display:block;height:70px;line-height:1.38;overflow:hidden;padding:7px 9px;word-break:break-word}.progress-print-cell.is-small,.progress-print-homework p.is-small,.progress-print-plan p.is-small{font-size:13px;line-height:1.32}.progress-print-cell.is-tiny,.progress-print-homework p.is-tiny,.progress-print-plan p.is-tiny{font-size:11.5px;line-height:1.24}.progress-print-cell.is-ultra,.progress-print-homework p.is-ultra,.progress-print-plan p.is-ultra{font-size:10px;line-height:1.16}.progress-print-homework p,.progress-print-plan p{max-height:58px;overflow:hidden}.progress-print-footer{align-items:flex-end;border-top:1px solid #e3d7be;bottom:34px;display:flex;justify-content:space-between;gap:18px;margin-top:20px;padding-top:12px;position:absolute;left:38px;right:38px}.progress-print-footer-main{display:flex;flex-wrap:wrap;gap:32px}.progress-print-seal{align-items:center;display:flex;flex:0 0 auto;height:112px;justify-content:center;width:112px}.progress-print-seal img{display:block;height:100%;object-fit:contain;width:100%}.progress-print-seal span{align-items:center;border:2px solid #ef4444;border-radius:999px;color:#ef4444;display:flex;font-size:14px;font-weight:900;height:100%;justify-content:center;line-height:1.35;padding:14px;text-align:center;width:100%}.progress-print-notes{border:1px solid #d8c7a3;min-height:116px;padding:16px}.progress-print-notes p{line-height:1.75;min-height:64px;white-space:pre-wrap}@page{size:A4 portrait;margin:8mm}@media print{body,html{background:#fff;min-height:0;overflow:visible;width:210mm}.print-actions,body:before{display:none}.print-shell{background:#fff;min-height:0;padding:0}.progress-print-page{border:1px solid #d8c7a3;box-sizing:border-box;box-shadow:none;height:281mm;margin:0;min-height:281mm;overflow:hidden;padding:8mm 9mm 32mm;page-break-after:auto;page-break-inside:avoid;width:100%}.progress-print-header{gap:7mm;padding-bottom:4mm}.progress-print-header h1{font-size:20pt}.progress-print-brand{gap:3mm}.progress-print-brand .institution-logo{height:14mm;width:14mm}.progress-print-brand .institution-brand strong{font-size:10pt;max-width:34mm}.progress-print-header p{letter-spacing:2px}.progress-print-block p,.progress-print-meta p{line-height:1.42}.progress-print-block{margin-top:3.6mm}.progress-print-block h2,.progress-print-notes h2{font-size:10.5pt;margin-bottom:1.6mm}.progress-print-block td,.progress-print-block th{line-height:1.36;padding:0}.progress-print-block th{padding:1.6mm 2mm}.progress-print-cell{font-size:9.5pt;height:18mm;line-height:1.18;padding:1.3mm 2mm}.progress-print-cell.is-small,.progress-print-homework p.is-small,.progress-print-plan p.is-small{font-size:8.5pt;line-height:1.13}.progress-print-cell.is-tiny,.progress-print-homework p.is-tiny,.progress-print-plan p.is-tiny{font-size:7.7pt;line-height:1.08}.progress-print-cell.is-ultra,.progress-print-homework p.is-ultra,.progress-print-plan p.is-ultra{font-size:7pt;line-height:1.02}.progress-print-homework p,.progress-print-plan p{max-height:12mm}.progress-print-notes{min-height:28mm;padding:4mm}.progress-print-footer{bottom:7mm;left:9mm;margin-top:0;padding-top:3mm;right:9mm}.progress-print-seal{height:24mm;width:24mm}.progress-print-block,.progress-print-footer,.progress-print-meta,tr{break-inside:avoid;page-break-inside:avoid}}@media (max-width:820px){body{background:var(--bg-soft)}.shell{grid-template-columns:1fr;width:100%}.sidebar{position:-webkit-sticky;position:sticky;top:0;z-index:20;height:auto;min-height:0;padding:14px 18px;overflow:visible}.desktop-nav{display:none}.mobile-nav{display:block}.mobile-nav .nav{align-content:start;max-height:min(70vh,calc(100dvh - 96px));margin-top:14px;overflow-y:auto;padding-right:4px;overscroll-behavior:contain;scrollbar-color:rgba(255,255,255,.42) transparent;scrollbar-width:thin}.mobile-nav-panel>form{margin-top:8px}.mobile-nav-panel>form button{align-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff;cursor:pointer;display:flex;font-weight:800;padding:11px 13px;width:100%}.mobile-nav .sidebar-version{margin-top:8px}.mobile-nav summary{align-items:center;cursor:pointer;display:flex;justify-content:space-between;list-style:none}.mobile-brand{padding-right:12px}.mobile-brand .institution-logo{background:rgba(255,255,255,.94);border-radius:999px;height:44px;padding:2px;width:44px}.mobile-nav-student .mobile-brand .institution-logo{border:2px solid rgba(255,255,255,.8);box-shadow:0 7px 18px rgba(55,18,95,.2);height:48px;width:48px}.mobile-nav-student .mobile-brand strong{font-size:17px}.mobile-brand strong{font-size:16px;line-height:1.25}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav summary:after{content:"展开";border:1px solid rgba(255,255,255,.42);border-radius:8px;padding:6px 10px;font-size:13px}.mobile-nav[open] summary:after{content:"收起"}.mobile-nav small{color:rgba(255,255,255,.8);display:block;font-size:12px;margin-top:2px}.main{padding:18px;width:100%;max-width:100vw}.shell-admin .main,.shell-student .main,.shell-teacher .main{padding:22px 15px 30px}.mobile-nav-admin .mobile-brand .institution-logo,.mobile-nav-teacher .mobile-brand .institution-logo{border:2px solid rgba(255,255,255,.8);box-shadow:0 7px 18px rgba(55,18,95,.2);height:48px;width:48px}.shell-student .topbar{margin-bottom:20px}.shell-student .topbar h1{font-size:30px}.shell-student .nav-group-label{padding-left:13px}.shell-student .mobile-nav .nav{gap:3px;margin-top:10px}.student-dashboard{gap:14px}.student-welcome-card{min-height:150px;padding:22px 20px}.student-welcome-card h2{font-size:23px}.student-welcome-card p{font-size:13px;margin-bottom:12px}.student-welcome-card>img{height:72px;width:72px}.student-number{font-size:10px;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-announcements,.student-next-course,.student-progress-card,.student-quick-section{padding:18px}.student-section-heading{margin-bottom:14px}.student-course-content{align-items:start;grid-template-columns:auto minmax(0,1fr);padding:15px}.student-course-content>.button{grid-column:1/-1;text-align:center;width:100%}.student-overview-grid{grid-template-columns:1fr}.student-progress-content{gap:20px}.student-progress-ring{height:112px;width:112px}.student-progress-ring strong{font-size:22px}.student-metrics{padding:4px 16px}.student-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.role-module-grid,.student-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-learning-row{align-items:start;grid-template-columns:auto minmax(0,1fr)}.student-learning-row .badge{grid-column:1/-1;justify-self:start}.student-quick-grid a{min-height:104px;padding:15px 7px 10px}.role-dashboard{gap:14px}.role-hero{align-items:flex-start;flex-direction:column;gap:18px;min-height:190px;padding:24px 20px}.role-hero h2{font-size:24px}.role-hero p{font-size:13px}.role-metric-grid,.teacher-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-metric-card{gap:10px;grid-template-columns:auto minmax(0,1fr);min-height:96px;padding:14px}.role-metric-arrow{display:none}.role-metric-icon{height:42px;width:42px}.role-dashboard-columns{grid-template-columns:1fr}.role-panel{padding:18px}.role-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-2,.grid.cols-3,.settings-account-grid,.settings-layout{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.desktop-user-menu{display:none}.section-head{flex-direction:column}.filter-bar{grid-template-columns:1fr}.table{display:block;overflow:visible;white-space:normal}.card{padding:18px;max-width:100%;overflow:hidden}.slot-grid{grid-template-columns:minmax(0,1fr)}.slot{min-width:0}.slot .row{align-items:flex-start;flex-wrap:wrap}.table thead{display:none}.table tbody,.table td,.table tr{display:block;width:100%}.table tr{border:1px solid var(--line);border-radius:8px;margin-top:12px;overflow:hidden;background:rgba(255,255,255,.72)}.table td{border-bottom:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(74px,30%) minmax(0,1fr);white-space:normal;word-break:break-word}.table td[colspan]{grid-template-columns:1fr}.table td:last-child{border-bottom:0}.table td:before{content:attr(data-label);color:#7a7397;font-weight:900}.table td:not([data-label]):before,.table td[colspan]:before,.table td[data-label=""]:before{content:"";display:none}.progress-table-fields{grid-template-columns:1fr}.progress-table-head{display:none}.progress-table-row{display:grid;grid-template-columns:1fr}.progress-print-page{padding:22px}.progress-print-header{flex-direction:column}}.shell-admin,.shell-teacher{--workspace-brand:#56165d;--workspace-brand-2:#7c317e;--workspace-accent:#d678a9;--workspace-ink:#251f2b;--workspace-muted:#756d7c;--workspace-line:#e7dfe9;--workspace-soft:#f8f4f8;background:#f5f1f4}.shell-admin,.shell-teacher{grid-template-columns:264px minmax(0,1fr)}.shell-admin .sidebar,.shell-teacher .sidebar{background:radial-gradient(circle at 50% -8%,rgba(255,255,255,.12),transparent 25%),linear-gradient(180deg,#211027,#421348 48%,#641c5e);box-shadow:12px 0 36px rgba(39,20,48,.18);padding:26px 18px}.shell-teacher .sidebar{background:radial-gradient(circle at 50% -8%,rgba(255,255,255,.12),transparent 25%),linear-gradient(180deg,#26102c,#501753 50%,#762568)}.shell-admin .desktop-nav,.shell-teacher .desktop-nav{height:calc(100vh - 52px);max-height:calc(100vh - 52px);top:26px}.shell-admin .sidebar-brand,.shell-teacher .sidebar-brand{margin-bottom:8px;padding-bottom:18px}.shell-admin .sidebar-brand .institution-logo,.shell-teacher .sidebar-brand .institution-logo{height:72px;width:72px}.shell-admin .nav-group-label,.shell-teacher .nav-group-label{color:rgba(255,255,255,.46);font-size:10px;letter-spacing:.18em;padding:15px 12px 6px}.shell-admin .nav a,.shell-teacher .nav a{border-radius:12px;color:rgba(255,255,255,.78);min-height:40px;padding:9px 12px}.shell-admin .nav a.active,.shell-admin .nav a:hover,.shell-teacher .nav a.active,.shell-teacher .nav a:hover{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.12);box-shadow:inset 3px 0 rgba(255,255,255,.9);color:#fff}.shell-admin .sidebar-version,.shell-teacher .sidebar-version{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);border-radius:12px}.shell-admin .main,.shell-teacher .main{background:radial-gradient(circle at 95% 0,rgba(197,165,205,.18),transparent 25%),linear-gradient(180deg,#fbf9fb,#f5f1f4);padding:30px clamp(24px,3vw,48px) 48px}.shell-topbar{align-items:center;display:flex;gap:20px;justify-content:space-between;margin:0 auto 28px;max-width:1440px}.shell-topbar h1{color:var(--workspace-ink);font-size:30px;letter-spacing:-.04em}.shell-breadcrumb{align-items:center;color:var(--workspace-muted);display:flex;font-size:12px;gap:8px;margin-top:7px}.shell-breadcrumb i{background:#baaabb;border-radius:999px;height:3px;width:3px}.shell-breadcrumb strong{color:#4d3c53}.shell-admin .desktop-user-menu summary,.shell-teacher .desktop-user-menu summary{background:rgba(255,255,255,.82);border-color:rgba(220,210,222,.96);border-radius:14px;box-shadow:0 12px 30px rgba(70,48,75,.08)}.shell-admin .card,.shell-teacher .card{background:rgba(255,255,255,.9);border:1px solid var(--workspace-line);border-radius:18px;box-shadow:0 14px 36px rgba(67,45,72,.07);padding:24px}.shell-admin input,.shell-admin select,.shell-admin textarea,.shell-teacher input,.shell-teacher select,.shell-teacher textarea{background:#fff;border-color:#ded4e0;border-radius:11px;min-height:44px;padding:11px 13px}.shell-admin input:focus,.shell-admin select:focus,.shell-admin textarea:focus,.shell-teacher input:focus,.shell-teacher select:focus,.shell-teacher textarea:focus{border-color:#7c317e;box-shadow:0 0 0 4px rgba(86,22,93,.1)}.shell-admin .button,.shell-admin button,.shell-teacher .button,.shell-teacher button{align-items:center;background:linear-gradient(135deg,#56165d,#9d427f);border-radius:11px;box-shadow:0 9px 20px rgba(86,22,93,.16);display:inline-flex;justify-content:center;min-height:42px;padding:10px 16px}.shell-admin .button.secondary,.shell-admin button.secondary,.shell-teacher .button.secondary,.shell-teacher button.secondary{background:#f1ebf2;border:1px solid #e4d9e7;color:#593d65}.shell-admin .button.danger,.shell-admin button.danger,.shell-teacher .button.danger,.shell-teacher button.danger{background:#fff0f2;border:1px solid #f4cdd4;box-shadow:none;color:#b53f57}.shell-admin .table,.shell-teacher .table{border:1px solid var(--workspace-line);border-radius:14px;overflow:hidden}.shell-admin .table th,.shell-teacher .table th{background:#f4eff5;color:#685b6d;font-size:12px;letter-spacing:.02em;padding:13px 14px}.shell-admin .table td,.shell-teacher .table td{background:rgba(255,255,255,.84);border-bottom-color:#eee7ef;padding:16px 14px}.shell-admin .table tr:hover td,.shell-teacher .table tr:hover td{background:#fcfafc}.shell-admin .filter-bar,.shell-teacher .filter-bar{background:#f8f5f8;border-color:var(--workspace-line);border-radius:14px;padding:16px}.management-page{display:grid;grid-gap:20px;gap:20px;margin:0 auto;max-width:1440px}.management-intro{align-items:center;background:radial-gradient(circle at 90% 10%,rgba(255,255,255,.1),transparent 25%),linear-gradient(130deg,#28112d,#56165d 64%,#7c317e);border-radius:20px;color:#fff;display:flex;justify-content:space-between;min-height:150px;padding:28px 32px}.management-intro.compact{background:transparent;color:var(--workspace-ink);min-height:0;padding:0 0 22px}.management-kicker{color:rgba(255,255,255,.58);display:block;font-size:10px;font-weight:900;letter-spacing:.2em;margin-bottom:8px}.management-intro.compact .management-kicker{color:#9b7da3}.management-intro h2{color:inherit;font-size:26px}.management-intro p{color:rgba(255,255,255,.68);line-height:1.7;margin:7px 0 0}.management-intro.compact p{color:var(--workspace-muted)}.count-chip,.status-chip{align-items:center;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.16);border-radius:999px;display:inline-flex;font-size:12px;font-weight:900;padding:7px 11px;white-space:nowrap}.status-chip{background:#f1ebf2;border-color:#e4d9e7;color:#654b6d;padding:5px 9px}.status-chip.success{background:#eaf6ef;border-color:#cee8d7;color:#347050}.status-chip.muted{background:#f1eff2;border-color:#e3dfe5;color:#766e79}.status-chip.danger{background:#fff0f2;border-color:#f4cdd4;color:#b53f57}.management-create-grid{display:grid;grid-gap:20px;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.management-form-card{align-self:start}.panel-title{border-bottom:1px solid #eee7ef;gap:13px;margin-bottom:20px;padding-bottom:17px}.panel-title,.panel-title>span{align-items:center;display:flex}.panel-title>span{background:#f0e8f1;border-radius:12px;color:#704e7d;flex:0 0 auto;font-size:11px;font-weight:900;height:42px;justify-content:center;width:42px}.panel-title h3{color:var(--workspace-ink);font-size:18px}.panel-title p{color:var(--workspace-muted);font-size:12px;margin:4px 0 0}.primary-action{width:100%}.permission-fieldset{border:1px solid #e7dfe9;border-radius:14px;margin:0;padding:14px}.permission-fieldset legend{color:#66556b;font-size:12px;font-weight:900;padding:0 7px}.permission-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.permission-option,.toggle-row{align-items:center;background:#faf8fa;border:1px solid #ece5ed;border-radius:10px;cursor:pointer;display:flex;flex-direction:row;font-size:12px;gap:8px;min-height:39px;padding:8px 10px}.permission-option input,.segmented-options input,.toggle-row input{accent-color:#6b3f7d;min-height:0;width:auto}.student-record-list,.teacher-record-list{display:grid;grid-gap:16px;gap:16px}.student-record,.teacher-record{background:#fff;border:1px solid #e8e0e9;border-radius:17px;overflow:hidden}.record-summary,.student-record-head{align-items:center;background:linear-gradient(135deg,#fbf9fb,#f6f1f6);display:grid;grid-gap:14px;gap:14px;grid-template-columns:auto minmax(0,1fr) auto;padding:18px 20px}.record-avatar{align-items:center;background:linear-gradient(135deg,#56165d,#b85b91);border-radius:14px;color:#fff;display:flex;font-size:18px;font-weight:900;height:48px;justify-content:center;width:48px}.student-avatar{background:linear-gradient(135deg,#6b256c,#d070a3)}.shell-admin .role-hero{background:radial-gradient(circle at 86% 20%,rgba(255,255,255,.15),transparent 20%),linear-gradient(125deg,#2b1131,#56165d 66%,#7c317e);box-shadow:0 22px 50px rgba(61,18,66,.2)}.shell-teacher .role-hero{background:radial-gradient(circle at 86% 20%,rgba(255,255,255,.15),transparent 20%),linear-gradient(125deg,#35123b,#681e68 64%,#a34883);box-shadow:0 22px 50px rgba(74,20,76,.2)}.shell-admin .role-metric-icon.violet,.shell-teacher .role-metric-icon.violet{background:#f1e8f1;color:#6b256c}.shell-admin .role-metric-icon.blue,.shell-teacher .role-metric-icon.blue{background:#eee8f5;color:#765087}.shell-admin .role-metric-icon.pink,.shell-teacher .role-metric-icon.pink{background:#fbe8f1;color:#bd568b}.shell-admin .role-action-grid svg{color:#6b256c}.shell-teacher .role-action-grid svg{color:#9b3f80}.shell-admin{--workspace-brand:#7137bd;--workspace-brand-2:#9650df;--workspace-accent:#e06caf;--workspace-ink:#302746;--workspace-muted:#756d8f;--workspace-line:#e5daf5;--workspace-soft:#f8f4ff;background:#f5f1ff}.shell-admin .sidebar{background:radial-gradient(circle at 50% -8%,rgba(255,255,255,.16),transparent 28%),linear-gradient(180deg,#52217b,#7137bd 47%,#e06caf);box-shadow:12px 0 36px rgba(70,35,125,.2)}.shell-admin .sidebar:after{border:1px solid rgba(255,255,255,.08);border-radius:999px;content:"";height:230px;left:-92px;pointer-events:none;position:absolute;top:-96px;width:230px}.shell-admin .nav a.active,.shell-admin .nav a:hover{background:linear-gradient(90deg,rgba(255,255,255,.22),rgba(255,255,255,.12));border-color:rgba(255,255,255,.22);box-shadow:inset 3px 0 #fff,0 10px 22px rgba(53,18,93,.12)}.shell-admin .main{background:radial-gradient(circle at 7% 0,rgba(224,108,175,.12),transparent 27%),radial-gradient(circle at 94% 4%,rgba(115,200,255,.2),transparent 30%),linear-gradient(180deg,#fbf8ff,#f3f0ff)}.shell-admin .desktop-user-menu summary{border-color:#ddd2ef;box-shadow:0 12px 30px rgba(88,65,165,.1)}.shell-admin .card,.shell-admin .role-metric-card,.shell-admin .role-panel{border-color:#e5daf5;box-shadow:0 14px 36px rgba(88,65,165,.09)}.shell-admin input,.shell-admin select,.shell-admin textarea{border-color:#ddd2ef}.shell-admin input:focus,.shell-admin select:focus,.shell-admin textarea:focus{border-color:#8f6cff;box-shadow:0 0 0 4px rgba(143,108,255,.14)}.shell-admin .button,.shell-admin button{background:linear-gradient(135deg,#8f6cff,#e06caf);box-shadow:0 9px 20px rgba(113,55,189,.18)}.shell-admin .button.secondary,.shell-admin button.secondary{background:#f1eaff;border-color:#e1d5f5;color:#5d3dab}.shell-admin .table th{background:#f2edff;color:#675c86}.shell-admin .filter-bar{background:#f8f5ff}.shell-admin .management-intro,.shell-admin .role-hero{background:radial-gradient(circle at 86% 20%,rgba(255,255,255,.15),transparent 20%),linear-gradient(125deg,#5b2790,#8b43d3 62%,#db65ad);box-shadow:0 22px 50px rgba(92,44,153,.2)}.shell-admin .management-intro.compact{align-items:center;color:#fff;display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(0,1fr) minmax(300px,34%);min-height:110px;padding:24px 28px}.shell-admin .management-intro.compact h2,.shell-admin .management-intro.compact p,.shell-admin .management-intro.compact>div{min-width:0;max-width:100%;overflow-wrap:anywhere}.shell-admin .management-intro.compact .management-search{min-width:0;width:100%}.shell-admin .management-intro.compact .management-kicker{color:rgba(255,255,255,.64)}.shell-admin .management-intro.compact .subtle,.shell-admin .management-intro.compact p{color:rgba(255,255,255,.76)}@media (max-width:1100px){.shell-admin .management-intro.compact{align-items:stretch;grid-template-columns:1fr}}.shell-admin .panel-title>span{background:#f0eaff;color:#7149c5}.shell-admin .permission-option input,.shell-admin .segmented-options input,.shell-admin .toggle-row input{accent-color:#8f6cff}.shell-admin .record-avatar,.shell-admin .student-avatar{background:linear-gradient(135deg,#8058ef,#e467b3)}.shell-admin .role-metric-icon.violet{background:#f0eaff;color:#744ae0}.shell-admin .role-metric-icon.blue{background:#e8f5ff;color:#299cd7}.shell-admin .role-metric-icon.pink{background:#ffe8f4;color:#e45b9e}.shell-admin .role-action-grid svg{color:#744ae0}.record-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:9px}.record-identity h3{color:var(--workspace-ink);font-size:18px}.record-identity p{color:#655d69;font-size:13px;margin:5px 0 0}.record-identity small{color:#928994;display:block;font-size:11px;margin-top:5px}.record-metrics,.student-primary-stats{display:flex;gap:8px}.record-metrics>span,.student-primary-stats>span{background:rgba(255,255,255,.8);border:1px solid #e9e1ea;border-radius:12px;display:grid;min-width:68px;padding:9px 11px;text-align:center}.record-metrics strong,.student-primary-stats strong{color:#563465;font-size:20px}.record-metrics small,.student-primary-stats small{color:#8a808c;font-size:10px}.record-body{display:grid;grid-gap:22px;gap:22px;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);padding:20px}.record-danger-zone{background:#faf7fa;border:1px solid #ece4ed;border-radius:14px;padding:16px}.record-subhead{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.record-subhead span,.record-subhead strong{display:block}.record-subhead strong{color:#433648;font-size:13px}.record-note,.record-subhead span{color:#8a808c;font-size:11px;line-height:1.5;margin-top:3px}.delete-account-form{border-top:1px solid #eee5ef;margin-top:14px;padding-top:14px}.management-search{display:grid;grid-gap:9px;gap:9px;grid-template-columns:minmax(240px,1fr) auto}.student-record-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.record-section{border-right:1px solid #eee7ef;border-top:1px solid #eee7ef;min-width:0;padding:18px 20px}.record-section:nth-child(2n){border-right:0}.inline-actions,.inline-form{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.inline-form input{flex:1 1 120px}.segmented-options{display:flex;gap:7px}.segmented-options label{align-items:center;background:#f7f3f7;border:1px solid #e7dfe8;border-radius:999px;cursor:pointer;display:flex;flex-direction:row;font-size:12px;gap:6px;padding:7px 11px}.quota-ledger-mini{border-top:1px dashed #e6dcea;display:grid;grid-gap:7px;gap:7px;margin-top:14px;padding-top:12px}.quota-ledger-mini>strong{color:#433648;font-size:12px}.quota-ledger-mini p{align-items:center;color:#6b6070;display:grid;font-size:11px;grid-gap:8px;gap:8px;grid-template-columns:minmax(64px,auto) minmax(72px,auto) minmax(0,1fr) auto;line-height:1.5;margin:0}.quota-ledger-mini time{color:#9a8d9d;white-space:nowrap}.document-actions{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.document-actions>div{background:#faf8fa;border:1px solid #ece5ed;border-radius:12px;padding:12px}.document-actions small{color:#887d8a;display:block;font-size:11px;margin-bottom:9px}.student-record-footer{align-items:center;background:#fcfafc;border-top:1px solid #eee7ef;color:#8b818d;display:flex;font-size:11px;justify-content:space-between;padding:12px 20px}.teacher-student-actions{display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;padding:18px 20px}.document-status{align-content:center;display:flex;flex-wrap:wrap;gap:7px}.empty-state{background:#faf8fa;border:1px dashed #dacee0;border-radius:14px;color:#817684;padding:32px;text-align:center}@media (max-width:1180px){.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.record-summary,.student-record-head{grid-template-columns:auto minmax(0,1fr)}.record-metrics,.student-primary-stats{grid-column:1/-1;padding-left:62px}.teacher-student-actions{grid-template-columns:1fr 1fr}.document-status{grid-column:1/-1}}@media (max-width:820px){.shell-admin,.shell-teacher{grid-template-columns:1fr}.shell-admin .main,.shell-teacher .main{padding:20px 14px 32px}.shell-topbar{align-items:flex-start;margin-bottom:20px}.shell-topbar h1{font-size:26px}.management-intro{align-items:flex-start;flex-direction:column;gap:18px;padding:24px 20px}.management-intro.compact{padding:0 0 18px}.management-create-grid,.permission-grid,.record-body,.student-record-body,.teacher-student-actions{grid-template-columns:1fr}.management-search{width:100%}.record-section{border-right:0}.record-summary,.student-record-head{align-items:start;grid-template-columns:auto minmax(0,1fr);padding:16px}.record-metrics,.student-primary-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-left:0}.record-body,.teacher-student-actions{padding:16px}.document-actions{grid-template-columns:1fr}.student-record-footer{align-items:flex-start;flex-direction:column;gap:10px;padding:13px 16px}.quota-ledger-mini p{align-items:start;grid-template-columns:1fr}}@media (max-width:520px){.management-search{grid-template-columns:1fr}.inline-actions,.inline-form{align-items:stretch;flex-direction:column}.inline-actions .button,.inline-actions button,.inline-form button,.inline-form input{width:100%}.record-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}