:root{--primary:#7455dc;--primary-dark:#5c3dc2;--bg:#f7f8fc;--card:#fff;--border:#eaeaf2;--text:#292740;--muted:#77758c;--green:#24785f;--amber:#94621a;--red:#c04461;--radius:18px;--shadow:0 4px 24px #29274004;--purple-soft:#efebfc;--mint:#e6f6ef;--peach:#fff0e6;--yellow:#fff7dd}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:var(--primary);text-decoration:none}svg{flex-shrink:0;vertical-align:middle}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{line-height:1.4}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #ad96ef;outline-offset:4px}::selection{background:#ded3fc}#app,.app-shell{min-height:100vh}.app-shell{display:flex}.skip-link{position:fixed;left:16px;top:-100px;background:#fff;padding:12px;z-index:100}.skip-link:focus{top:12px}.sidebar{position:fixed;inset:0 auto 0 0;width:228px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:34px 22px 20px;z-index:30}.brand{display:flex;gap:12px;align-items:center;color:var(--text);font-size:22px;font-weight:800;letter-spacing:.5px}.brand small{display:block;color:#9290a5;font-size:9px;letter-spacing:2px;font-weight:600;margin-top:1px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:43px;height:43px;border-radius:14px;background:var(--primary);color:#fff;box-shadow:0 5px 12px #7455dc20;transform:rotate(-4deg)}.brand-mark svg{transform:rotate(4deg)}.workspace-label{font-size:11px;letter-spacing:1.5px;color:#aaa7ba;margin:45px 12px 15px}.side-nav{display:flex;flex-direction:column;gap:9px}.side-nav a{display:flex;align-items:center;gap:13px;padding:13px 14px;color:var(--muted);font-weight:500;border-radius:12px;transition:background .15s}.side-nav a:hover{background:#f7f5ff}.side-nav a.router-link-active{color:var(--primary);background:var(--purple-soft);font-weight:700}.nav-indicator{margin-left:auto}.router-link-active .nav-indicator{width:6px;height:6px;border-radius:50%;background:var(--primary)}.sidebar-note{margin-top:auto;background:#faf6ed;border:1px solid #f5eedc;border-radius:16px;padding:19px 15px;position:relative}.note-star{display:block;color:#d0a353;font-size:31px;line-height:1;margin-bottom:12px}.sidebar-note b{font-size:13px}.sidebar-note p{color:#948875;font-size:11px;line-height:1.8;margin:7px 0 15px}.sidebar-note a{display:flex;gap:6px;color:#9b7d40;font-size:11px}.sidebar-profile{display:flex;align-items:center;gap:10px;border-top:1px solid var(--border);padding:22px 0 0;margin-top:25px;color:var(--text)}.sidebar-profile>span:nth-child(2){flex:1;min-width:0}.sidebar-profile b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-profile small{display:block;color:var(--muted);font-size:10px}.avatar{width:40px;height:40px;border-radius:14px;background:#eee6ff;color:#7752b4;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.avatar-small{width:35px;height:35px;border-radius:12px}.workspace{width:calc(100% - 228px);margin-left:228px;display:flex;flex-direction:column;min-height:100vh}.workspace-header{height:82px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:#ffffffb5;gap:12px}.breadcrumb{display:flex;gap:16px;font-size:12px}.breadcrumb span{color:#aaa6bb}.breadcrumb b{font-weight:500}.header-right{display:flex;align-items:center;gap:20px}.header-date{color:var(--muted);font-size:11px}.icon-btn{width:36px;height:36px;border:1px solid var(--border);border-radius:11px;background:#fff;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.notification-link{position:relative}.notification-count{position:absolute;right:-5px;top:-5px;background:#e37888;color:#fff;border-radius:8px;font-size:9px;padding:0 4px}.mobile-brand{display:none}#main-content{flex:1;min-width:0}.main{max-width:1350px;padding:30px 38px 40px;margin:0 auto}.beian-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 38px;padding:20px 0 24px;border-top:1px solid var(--border);font-size:10px;color:#9692a9}.beian-footer a{color:#9692a9}.beian-footer .sep{margin:0 8px}.footer-motto{letter-spacing:2px}.tabbar{display:none}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:700;color:#a4a0b6;margin-bottom:7px}.page-heading h1{font-size:26px;letter-spacing:.3px;margin:0;font-weight:750}.page-heading p{font-size:12px;color:var(--muted);margin:8px 0 0}.heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.page-title{font-size:23px;font-weight:750;display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:3px 0 24px}.page-title .spacer{flex:1}.page-title .btn{font-weight:500}.page-title>span:first-child[style*=cursor]{font-size:13px;font-weight:500;margin-right:8px;color:var(--muted)}.hero-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:202px;border-radius:22px;padding:26px 32px;background:#eee8fc;position:relative;overflow:hidden;margin-bottom:24px}.hero-copy{position:relative;z-index:1;max-width:70%}.hero-kicker{display:flex;align-items:center;gap:7px;font-size:11px;color:#8065b6;letter-spacing:1px}.hero-copy h2{font-size:28px;margin:10px 0 9px;letter-spacing:.5px}.hero-copy p{font-size:12px;color:#817499;line-height:1.9;margin:0}.hero-copy .btn{margin-top:18px}.hero-banner .growth-art{width:260px;height:188px;flex-shrink:0;margin:-17px -8px -15px 0}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:29px}.stat-card{border-radius:17px;border:1px solid #ffffff99;padding:20px 21px;background:var(--purple-soft);min-width:0}.stat-card.mint{background:var(--mint)}.stat-card.peach{background:var(--peach)}.stat-card.yellow{background:var(--yellow)}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#827292;font-size:12px}.stat-top svg{opacity:.65}.stat-number{font-size:31px;font-weight:750;line-height:1.35;margin:12px 0 2px;color:#51456c;font-variant-numeric:tabular-nums}.stat-number small{font-size:11px;font-weight:400;margin-left:7px;color:#8d839b}.stat-card.mint .stat-number{color:#3d7763}.stat-card.peach .stat-number{color:#ae7653}.stat-card.yellow .stat-number{color:#9f8741}.stat-foot{font-size:10px;color:#8c8599}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) 268px;gap:23px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 17px;gap:12px}.section-heading h2{font-size:17px;margin:0}.section-heading h2 span{font-size:11px;font-weight:400;color:var(--muted);margin-left:9px}.section-heading a,.section-heading>span{font-size:11px;color:var(--muted)}.task-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:17px}.task-toolbar .chips{margin:0}.search-field{position:relative;display:flex;align-items:center;min-width:0}.search-field>svg{position:absolute;left:13px;color:#a4a0b6}.search-field input{padding-left:40px!important}.task-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px;margin-bottom:16px;transition:box-shadow .18s,transform .18s}.task-card:hover{box-shadow:0 8px 26px #3b2d7510;transform:translateY(-2px)}.task-card-top{display:flex;align-items:flex-start;gap:13px}.task-icon{width:45px;height:45px;display:flex;align-items:center;justify-content:center;background:#eee8ff;color:#9271d3;border-radius:14px;flex-shrink:0}.task-card:nth-child(3n+2) .task-icon{background:var(--mint);color:#64a28c}.task-card:nth-child(3n) .task-icon{background:var(--peach);color:#cd9676}.task-main-title{flex:1;min-width:0}.task-main-title h3{font-size:16px;margin:0 0 7px;font-weight:650}.task-main-title h3 a{color:var(--text)}.task-description{color:#9390a2;font-size:12px;margin:16px 0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-progress-label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:17px 0 7px}.progress-track{height:6px;border-radius:6px;background:#f0edf8;overflow:hidden}.progress-fill{height:100%;background:#a593e1;border-radius:6px;max-width:100%}.task-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;padding-top:15px;border-top:1px solid #f1eff5}.task-meta{display:flex;align-items:center;gap:6px;font-size:10px;color:#9b94a9}.task-actions{display:flex;gap:7px;align-items:center}.task-actions .btn-link{font-size:11px}.side-panel{padding:22px;background:#fff;border:1px solid var(--border);border-radius:18px;margin-bottom:20px}.side-panel h3{font-size:15px;margin:0 0 18px}.shortcut{display:flex;gap:11px;align-items:center;color:var(--text);padding:12px 0;border-bottom:1px solid #f3f1f7}.shortcut:last-child{border:0;padding-bottom:0}.shortcut>span:first-child{display:flex;align-items:center;justify-content:center;width:35px;height:35px;border-radius:10px;background:var(--purple-soft);color:#997dcc}.shortcut:nth-of-type(2)>span:first-child{background:var(--mint);color:#6ca68e}.shortcut:nth-of-type(3)>span:first-child{background:var(--peach);color:#d09a72}.shortcut strong{font-weight:500;font-size:12px;display:block}.shortcut small{font-size:10px;color:#a19bad;display:block}.shortcut>svg{margin-left:auto;color:#b8b2c7}.note-panel{background:#fff6e8;border-color:#f9efde}.note-panel .note-heading{display:flex;gap:8px;align-items:center;color:#b58b53;font-size:11px}.note-panel p{font-size:13px;line-height:1.9;margin:16px 0 0;color:#8c785b}.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:20px}.card-title{font-size:16px;font-weight:700;margin-bottom:10px}.card .sub{color:var(--muted);font-size:12px}.card.clickable{cursor:pointer}.card.clickable:hover{border-color:#cbbdef}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:17px}.field{margin-bottom:19px}.field label{display:block;color:#696477;font-size:12px;font-weight:500;margin-bottom:8px}.input,.select,.textarea{background:#fff;width:100%;border:1px solid #e4e1ed;border-radius:11px;color:var(--text);padding:11px 13px;font-size:13px;min-height:43px;transition:border-color .15s,box-shadow .15s}.input::placeholder,.textarea::placeholder{color:#b0aabf}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:#a893e5;box-shadow:0 0 0 3px #7455dc0d}.textarea{resize:vertical;min-height:110px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 17px;min-height:40px;border:1px solid #e5e1ee;border-radius:10px;background:#fff;color:#6a627b;font-size:12px;font-weight:500;transition:background .15s,transform .15s}.btn:not(:disabled):hover{background:#f9f7ff;border-color:#c4b4e9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 8px #7455dc14}.btn-primary:not(:disabled):hover{background:var(--primary-dark);color:#fff;border-color:var(--primary-dark)}.btn-sm{padding:6px 11px;font-size:11px;min-height:31px;border-radius:8px}.btn-danger{color:var(--red);border-color:#f1dce2}.btn-link{border:0;background:none;color:var(--primary);padding:5px 7px;font-size:12px;border-radius:6px}.btn-link.danger{color:var(--red)}.badge{display:inline-block;padding:3px 9px;font-size:10px;border-radius:6px;line-height:1.6;font-weight:500;white-space:nowrap}.badge-gray{background:#f1f0f5;color:#8a8299}.badge-blue{background:#eee9fa;color:#8b6cb3}.badge-green{background:#e6f5ed;color:#4b8d70}.badge-amber{background:#fff2df;color:#b18950}.badge-red{background:#fbeaf0;color:#c4768d}.badge-star{background:#fff4d4;color:#a98438}.chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.chip{border:1px solid #e8e4f0;padding:7px 13px;border-radius:9px;background:#fff;font-size:11px;color:#8c849f;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.file-chip{display:inline-flex;align-items:center;gap:7px;background:#f8f6fd;border:1px solid #eee9f9;border-radius:9px;padding:8px 11px;font-size:12px;margin:4px 6px 4px 0;max-width:100%;overflow-wrap:anywhere;flex-wrap:wrap}.file-chip .size{color:var(--muted);font-size:10px}.file-chip .dl{color:var(--primary);cursor:pointer;font-weight:600}.table-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:12px}.tbl th,.tbl td{text-align:left;padding:15px 13px;border-bottom:1px solid #f0edf5;white-space:nowrap}.tbl th{color:#a29aaf;font-size:10px;font-weight:500;background:#fcfbfe}.tbl tbody tr:last-child td{border-bottom:0}.tbl tr.clickable{cursor:pointer}.tbl tr:hover{background:#fcfaff}.empty{text-align:center;padding:40px 15px;color:var(--muted);font-size:13px}.empty-state{text-align:center;padding:47px 24px;border:1px dashed #e0daee;border-radius:18px;background:#fff}.empty-symbol{display:inline-flex;align-items:center;justify-content:center;background:#efebfa;color:#a28ccf;width:65px;height:65px;border-radius:22px;transform:rotate(-5deg);margin-bottom:17px}.empty-symbol svg{transform:rotate(5deg)}.empty-state h3{font-size:16px;margin:0 0 9px;font-weight:600}.empty-state p{font-size:12px;color:#9b91ac;margin:0 auto 18px;max-width:360px;line-height:1.9}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#28203f66;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}.sheet{width:100%;max-width:680px;max-height:90vh;max-height:90dvh;overflow-y:auto;border-radius:22px;padding:29px;background:#fff;box-shadow:0 24px 90px #2b204c30;outline:none}.sheet-head{display:flex;align-items:center;gap:15px;margin-bottom:24px}.sheet-head h3{flex:1;margin:0;font-size:19px}.sheet-head .close{border:0;background:#f4f1fa;color:#9e92b4;width:33px;height:33px;border-radius:10px;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.toasts{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:100;width:min(90vw,440px);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:13px 19px;background:#3d3458;color:#fff;box-shadow:0 8px 28px #20122f24;border-radius:12px;font-size:13px}.toast.success{background:#3b856c}.toast.error{background:#b4526d}.divider{border:0;border-top:1px solid var(--border);margin:20px 0}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:Cascadia Code,Consolas,monospace}pre.plain{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0;line-height:1.9}.section-title{font-weight:650;font-size:16px;margin:24px 0 13px}.revision-box{background:#fbfaff;border:1px solid var(--border);padding:16px;border-radius:12px;margin-bottom:12px}.notif-item{display:flex;gap:13px;padding:20px 5px;border-bottom:1px solid var(--border);cursor:pointer}.notif-item .t{font-weight:600;font-size:13px}.notif-item.unread .t:after{content:"";display:inline-block;margin-left:8px;width:7px;height:7px;background:#db8b96;border-radius:50%}.auth-shell .workspace{width:100%;margin:0}.auth-shell .beian-footer{justify-content:center;border:0;margin:0;padding:20px;gap:10px}.auth-shell .footer-motto{display:none}.login-wrap{min-height:calc(100vh - 76px);display:flex;align-items:center;justify-content:center;padding:35px}.login-card{background:#fff;border:1px solid var(--border);padding:38px;width:min(100%,440px);border-radius:24px;box-shadow:0 16px 50px #57447709}.login-card h1{font-size:25px;margin:0 0 10px}.login-card .sub{font-size:12px;color:#9b92ad;margin:0 0 28px}.login-scene{min-height:calc(100vh - 76px);max-width:1160px;margin:auto;padding:65px 55px;display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:85px}.login-story .brand{margin-bottom:50px}.login-story h1{font-size:43px;line-height:1.5;margin:0 0 18px;letter-spacing:1px;font-weight:750}.login-story h1 em{font-style:normal;color:var(--primary);position:relative}.login-story>p{color:#a092ae;font-size:13px;line-height:2}.login-story .growth-art{width:320px;margin:10px 0 -20px 25px;display:block}.login-story .story-tags{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.story-tags span{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:6px 10px;font-size:10px;color:#93879f}.login-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.login-greeting{font-size:12px;color:#b099c8}.login-form-header .brand-mark{background:#f0e9fc;color:var(--primary);box-shadow:none}.login-card .btn-primary{width:100%;margin-top:5px;min-height:46px}.login-hint{font-size:10px;color:#aaa1b6;padding:17px 0 0;margin:24px 0 0;border-top:1px solid var(--border);display:flex;gap:8px;line-height:1.9}.password-field{position:relative}.password-field .input{padding-right:62px}.password-toggle{position:absolute;right:10px;top:10px;background:none;border:0;color:#9b8daf;font-size:11px}.mobile-only{display:none}.profile-grid{max-width:760px}.material-banner{background:#eaf6f1}.material-banner .hero-kicker{color:#5b9a85}.material-banner .hero-copy p{color:#7b9a8d}.group-card{display:flex;align-items:center;gap:15px}.group-card .group-details{flex:1}.group-card b{font-size:16px}.group-card p{margin:5px 0 0;color:#9992a4;font-size:11px}.group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.group-grid .card{margin:0}.form-intro{color:var(--muted);font-size:12px;margin:-12px 0 25px}.student-summary{display:flex;gap:8px;color:var(--muted);font-size:12px;margin:-8px 0 20px}.roster-mobile{display:none}.loading-shimmer{height:145px;background:linear-gradient(100deg,#eeeaf5 30%,#f8f5ff,#eeeaf5 70%);background-size:200% 100%;animation:shimmer 1.6s infinite;border-radius:18px;margin-bottom:16px}@keyframes shimmer{to{background-position:-200% 0}}input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px;vertical-align:middle}input[type=file]{max-width:100%;font-size:12px;color:var(--muted);border:1px dashed #d5c9e9;border-radius:12px;padding:16px;width:100%;background:#fcfaff}input[type=file]::file-selector-button{border:0;border-radius:7px;background:#eee7fa;color:var(--primary);padding:8px 12px;margin-right:12px;cursor:pointer}@media(min-width:1450px){.main{padding-top:38px}.hero-banner{min-height:222px}.hero-banner .growth-art{width:310px;height:210px}.dashboard-columns{grid-template-columns:minmax(0,1fr) 310px}}@media(max-width:1160px){.sidebar{width:200px;padding:30px 16px 20px}.brand{font-size:20px;gap:9px}.workspace{width:calc(100% - 200px);margin-left:200px}.main{padding:26px}.workspace-header{padding:0 26px}.beian-footer{margin:0 26px}.dashboard-columns{grid-template-columns:minmax(0,1fr) 235px;gap:18px}.hero-copy h2{font-size:25px}.hero-banner{padding:25px}.hero-banner .growth-art{width:210px}.stat-card{padding:17px}.stat-top{font-size:11px}.login-scene{gap:45px;padding:50px 35px}}@media(max-width:960px){.dashboard-columns{grid-template-columns:1fr}.dashboard-aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.stats-grid{gap:10px}.stat-card{padding:16px 13px}.stat-number{font-size:26px}.hero-copy h2{font-size:23px}.hero-banner .growth-art{width:170px}.header-date{display:none}.login-scene{gap:30px}.login-story h1{font-size:35px}.login-card{padding:30px}.page-heading h1{font-size:24px}.group-grid{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{display:none}.workspace{width:100%;margin:0}.workspace-header{height:68px;padding:0 20px;background:#fff}.breadcrumb{display:none}.mobile-brand{display:flex;gap:10px;align-items:center;color:var(--text);font-weight:750;font-size:18px}.mobile-brand .brand-mark{width:34px;height:34px;border-radius:11px}.header-right{gap:12px}.header-right .avatar{display:none}.main{padding:25px 20px 28px}.page-heading{margin-bottom:23px;align-items:flex-start}.page-heading h1{font-size:23px}.page-heading p{font-size:11px}.page-heading .eyebrow{font-size:9px;letter-spacing:2px}.heading-actions{gap:7px}.heading-actions .btn{padding:9px 12px;font-size:11px}.page-title{font-size:21px;margin-bottom:20px;gap:10px}.page-title>.btn{font-size:11px;padding:8px 10px}.hero-banner{border-radius:18px;padding:23px;min-height:173px;margin-bottom:18px}.hero-copy{max-width:75%}.hero-copy h2{font-size:23px;max-width:260px;line-height:1.55}.hero-copy p{font-size:11px;max-width:215px}.hero-banner .growth-art{width:165px;position:absolute;right:-15px;bottom:-5px;opacity:.7}.hero-copy .btn{margin-top:14px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:25px}.stat-card{padding:16px 18px;border-radius:14px}.stat-top{font-size:11px}.stat-number{font-size:28px;margin-top:8px}.stat-foot{font-size:10px}.dashboard-columns{display:block}.dashboard-aside{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}.side-panel{padding:18px}.side-panel h3{font-size:14px}.note-panel p{font-size:12px}.task-toolbar{gap:11px}.task-toolbar>.search-field{width:100%}.task-toolbar input{min-height:40px}.task-toolbar .chips{gap:6px}.chip{font-size:11px;padding:6px 10px}.task-card{padding:19px;border-radius:16px}.task-main-title h3{font-size:15px}.task-card-top{gap:10px}.task-icon{width:39px;height:39px;border-radius:12px}.task-card-bottom{flex-wrap:wrap}.task-meta{font-size:10px}.task-actions{margin-left:auto}.card{padding:20px;border-radius:16px}.table-wrap{padding:0!important}.table-wrap .tbl th,.table-wrap .tbl td{padding:13px 11px}.beian-footer{margin:0 20px 78px;justify-content:center;text-align:center;gap:8px;font-size:9px;line-height:1.9;padding:20px 0}.beian-footer .footer-motto{width:100%;font-size:10px}.beian-footer a{display:inline-block}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;background:#ffffffed;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid #eee8f6;z-index:40;padding:8px 8px calc(9px + env(safe-area-inset-bottom))}.tabbar a{display:flex;align-items:center;gap:4px;flex-direction:column;flex:1;color:#a098ad;font-size:10px;padding:4px 0;border-radius:10px}.tabbar a.router-link-active{color:var(--primary);background:#f3eefc;font-weight:600}.tabbar svg{width:21px;height:21px}.overlay{align-items:flex-end;padding:0}.sheet{border-radius:23px 23px 0 0;padding:24px 22px calc(26px + env(safe-area-inset-bottom));max-height:90dvh}.sheet-head h3{font-size:18px}.empty-state{padding:36px 20px}.auth-shell .beian-footer{margin:0;padding:20px}.login-scene{display:flex;flex-direction:column;min-height:calc(100vh - 76px);padding:35px 24px 15px;gap:27px}.login-story{width:100%;max-width:420px}.login-story .brand{font-size:20px;margin-bottom:28px}.login-story h1{font-size:30px;margin:0 0 10px;line-height:1.45}.login-story>p{margin:0;font-size:11px}.login-story .growth-art,.login-story .story-tags{display:none}.login-card{width:100%;max-width:420px;padding:27px;border-radius:22px}.login-card h1{font-size:23px}.login-card .sub{margin-bottom:23px}.login-form-header{margin-bottom:16px}.login-hint{margin-top:18px}.login-wrap{padding:25px}.mobile-only{display:block}.desktop-only{display:none!important}.student-mobile-card{background:#fff;padding:19px;border:1px solid var(--border);border-radius:16px;margin-bottom:12px}.student-mobile-card .row{justify-content:space-between}.student-mobile-card .student-identity{display:flex;gap:10px;align-items:center}.student-mobile-card b{font-size:14px}.student-mobile-card small{display:block;color:#a49aaf;font-size:10px}.student-mobile-card .student-info{display:flex;gap:8px;margin:14px 0;align-items:center}.student-mobile-card .actions{border-top:1px solid var(--border);padding-top:11px;gap:6px;justify-content:flex-end}.roster-mobile{display:block}.student-filters .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.student-filters .select,.student-filters .input{width:100%!important;min-width:0}.field{margin-bottom:17px}.input,.select,.textarea{font-size:14px}.group-grid{grid-template-columns:1fr}.group-card{flex-wrap:wrap}.group-card .group-details{min-width:120px}.group-card .group-controls{width:100%;display:flex;justify-content:flex-end;gap:8px}.file-chip{font-size:11px}}@media(max-width:400px){.main{padding:22px 16px}.hero-banner{padding:20px}.hero-copy h2{font-size:21px}.hero-banner .growth-art{width:138px;right:-16px}.hero-copy{max-width:80%}.dashboard-aside{display:block}.page-heading{gap:8px}.page-heading h1{font-size:22px}.stat-card{padding:15px}.page-title .spacer{display:none}.task-card-bottom{gap:12px}.task-actions{width:100%;justify-content:flex-end}.login-scene{padding:28px 20px 12px}.login-card{padding:25px}.beian-footer .sep{margin:0 4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.stat-foot,.task-meta,.task-description,.card .sub,.login-card .sub,.login-story>p,.login-hint,.empty-state p,.shortcut small,.page-heading p{color:#777083}.badge-blue{color:#755299}.badge-green{color:#357658}.badge-amber{color:#91662f}.badge-gray{color:#71687f}.stat-top{color:#72637f}.hero-copy p{color:#746386}.login-card .input::placeholder{color:#918799}.student-filters select{min-width:115px}@media(max-width:760px){.main:has(.student-summary) .page-heading{flex-direction:column;gap:16px}.main:has(.student-summary) .heading-actions{width:100%}.main:has(.student-summary) .heading-actions .btn{flex:1}.login-hint{font-size:11px}}
