:root{--ink:#20251e;--brand:#171b16;--green:#4e6854;--sage:#e9eee7;--warm:#f4f2ed;--paper:#fff;--muted:#80867b;--border:#e7e9e3;--gold:#a38650;--red:#b66453;--radius:16px;--shadow:0 12px 40px #1b24190d;--font:Arial,"Microsoft YaHei","PingFang SC",sans-serif}*{box-sizing:border-box}body{margin:0;font:15px/1.6 var(--font);color:var(--ink);background:#f6f7f3}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #98ad8b;outline-offset:3px}button{border:none;background:none;color:inherit}input,select,textarea{width:100%;background:#fff;border:1px solid #dfe4da;border-radius:9px;padding:11px 12px;color:var(--ink);transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:#7c9279;outline:none;box-shadow:0 0 0 3px #edf2e8}textarea{min-height:106px;resize:vertical}input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand)}input[type=color]{padding:5px;height:42px}.icon{width:19px;height:19px;flex:none;stroke:currentColor;stroke-width:1.65;fill:none;stroke-linecap:round;stroke-linejoin:round}.initial-loading{display:flex;min-height:100vh;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:var(--warm)}.initial-loading p{font-size:24px;letter-spacing:3px;margin:0}.initial-loading span{color:var(--muted)}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid #c4cbbb;font-family:Georgia,serif;font-size:31px;font-weight:400;color:var(--brand)}.brand-lockup{display:flex;gap:11px;align-items:center}.brand-name{font-size:20px;font-weight:600;letter-spacing:2px;line-height:1.35}.brand-sub{font-size:9px;letter-spacing:2.7px;color:var(--muted);margin-top:4px}.shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:#fbfcf9;border-right:1px solid var(--border);padding:28px 18px 16px;display:flex;flex-direction:column;z-index:25}.sidebar .brand-lockup{padding:0 10px 27px}.workspace-pill{margin:0 8px 21px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;display:flex;gap:9px;align-items:center;font-size:12px;background:#fff}.workspace-pill .dot{width:7px;height:7px;border-radius:100%;background:#749674}.side-scroll{overflow:auto;scrollbar-width:thin;flex:1}.nav-section{font-size:10px;letter-spacing:1.4px;color:#9a9f93;padding:20px 14px 7px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:9px;color:#646d5f;text-align:left;margin:2px 0;transition:.18s}.nav-item:hover{background:#eff2ea}.nav-item.active{background:var(--brand);color:white}.nav-item .nav-count{margin-left:auto;background:#f0e8d6;color:#8d6f32;border-radius:5px;line-height:1;padding:5px 6px;font-size:10px}.side-foot{border-top:1px solid var(--border);padding:18px 12px 4px;display:flex;gap:9px;font-size:11px;color:var(--muted);align-items:center}.main-shell{width:calc(100% - 240px);margin-left:240px}.topbar{height:78px;padding:0 38px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:20px;background:#ffffffb3;position:sticky;top:0;z-index:20;backdrop-filter:blur(20px)}.breadcrumb{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:10px}.breadcrumb strong{color:var(--ink);font-weight:500}.topbar-right{margin-left:auto;display:flex;gap:14px;align-items:center}.topbar-select{width:auto;max-width:200px;padding:7px 25px 7px 10px;background:transparent;border:none;font-size:12px}.profile{display:flex;align-items:center;gap:9px}.profile .avatar{width:33px;height:33px}.avatar{display:inline-grid;place-items:center;border-radius:50%;width:39px;height:39px;background:#e7ecdf;font-weight:500;font-size:14px;color:#526448;flex:none}.avatar.peach{background:#f3e8df;color:#9c7b5d}.avatar.blue{background:#e8edf0;color:#667d8b}.avatar.gold{background:#f2edde;color:#9b874a}.profile-info{font-size:12px;line-height:1.4}.profile-info small{display:block;color:var(--muted);font-size:10px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:35px;height:35px;border:1px solid transparent;border-radius:9px}.icon-button:hover{border-color:var(--border);background:#fff}.menu-toggle{display:none}.content{max-width:1640px;padding:32px 38px 60px;margin:auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 25px}.eyebrow{font-size:10px;color:#839075;letter-spacing:2.2px;font-weight:600;text-transform:uppercase;margin:0 0 7px}.page-heading h1{font-size:27px;line-height:1.35;font-weight:500;letter-spacing:.5px;margin:0 0 7px}.page-heading p{margin:0;color:var(--muted);font-size:12px}.heading-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border);background:white;border-radius:9px;padding:9px 14px;white-space:nowrap;font-size:12px;min-height:38px;transition:.18s}.btn:hover{background:#f1f4ec;border-color:#cfd6c6}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.primary:hover{background:#384333}.btn.soft{background:var(--sage);border-color:var(--sage);color:#56734f}.btn.danger{color:var(--red);border-color:#ecd7cf}.btn.small{padding:5px 10px;min-height:30px;font-size:11px}.text-link{color:#57714d;font-size:12px;display:inline-flex;gap:6px;align-items:center;padding:4px 0}.text-link .icon{width:14px}.date-pill{font-size:11px;background:#fff;border:1px solid var(--border);padding:9px 13px;border-radius:8px;display:flex;gap:8px;align-items:center;white-space:nowrap}.hero{background:#e9eedf;border-radius:var(--radius);padding:28px 32px;display:flex;position:relative;min-height:172px;overflow:hidden;margin-bottom:24px;align-items:center}.hero-copy{position:relative;z-index:2;max-width:65%}.hero h2{font-size:26px;font-weight:400;letter-spacing:1px;margin:0 0 9px}.hero p{font-size:12px;color:#6e7e62;margin:0 0 20px}.hero .btn{background:#fff9;border-color:#ffffff80}.hero-leaves{position:absolute;width:260px;right:7%;top:4px;opacity:.66}.hero-quote{font-family:Georgia,serif;font-style:italic;font-size:21px;color:#849878;position:absolute;right:30px;bottom:20px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:26px}.stat-card{background:white;border:1px solid var(--border);border-radius:14px;padding:20px 23px;position:relative;min-height:134px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#7a8570;font-size:11px;margin-bottom:12px}.stat-icon{width:32px;height:32px;background:#f4f6ee;border-radius:9px;display:grid;place-items:center;color:#6c815f}.stat-number{font-size:29px;line-height:1.2;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.7px}.stat-number small{font-size:12px;font-weight:400;letter-spacing:0;margin-left:5px;color:var(--muted)}.stat-foot{display:flex;justify-content:space-between;margin-top:12px;font-size:10px;color:#97a08d}.stat-foot b{font-weight:400;color:#7b925e}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(280px,1fr);gap:22px}.panel{background:white;border:1px solid var(--border);border-radius:var(--radius);padding:23px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.panel-heading h2{margin:0;font-size:15px;font-weight:500;display:flex;align-items:center;gap:8px}.panel-heading h2 small{font-size:10px;color:var(--muted);font-weight:400}.class-mini{border:1px solid var(--border);padding:18px;border-radius:12px;margin-bottom:12px}.class-mini:last-child{margin-bottom:0}.class-mini-top{display:flex;align-items:center;gap:12px}.class-badge{width:43px;height:43px;background:#ebefdf;color:#63744e;border-radius:12px;display:grid;place-items:center;font-size:18px;font-family:Georgia,serif}.class-title{font-size:15px;font-weight:500}.class-sub{font-size:10px;color:var(--muted);margin-top:2px}.class-mini-top .status{margin-left:auto}.status{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:10px;line-height:1.2;padding:5px 8px;border-radius:5px;background:#edf2e5;color:#6e854b}.status.warning{background:#f8efdc;color:#ad8944}.status.red{background:#f9eae4;color:#b26c53}.status.gray{background:#f0f2ed;color:#91988a}.status.blue{background:#e7eff2;color:#62869c}.mini-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin:18px 0 15px;font-size:11px;color:var(--muted)}.mini-metrics strong{display:block;color:var(--ink);font-size:18px;font-weight:500;margin-top:3px}.progress-row{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:7px}.progress{height:5px;border-radius:20px;background:#edf0e8;overflow:hidden}.progress span{display:block;height:100%;background:#8c9f6f;border-radius:20px;max-width:100%}.todo-item{display:flex;align-items:center;gap:11px;padding:14px 0;border-bottom:1px solid #f0f2eb}.todo-item:last-child{border:0}.todo-icon{width:36px;height:36px;border-radius:9px;background:#f4f5ee;display:grid;place-items:center;color:#859267}.todo-text{flex:1}.todo-text strong{display:block;font-size:12px;font-weight:500}.todo-text small{font-size:10px;color:var(--muted)}.todo-item>b{font-size:18px;font-weight:400;color:#829469}.dashboard-secondary{margin-top:22px;display:grid;grid-template-columns:1.85fr 1fr;gap:22px}.agenda-item{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #f0f2eb}.agenda-date{background:#f5f3ed;border-radius:9px;min-width:43px;height:46px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:16px;line-height:1.4;color:#8a876f}.agenda-date small{font-size:9px}.agenda-info strong{font-size:12px;font-weight:500;display:block}.agenda-info p{font-size:10px;color:var(--muted);margin:4px 0}.tiny-chart{height:146px;display:flex;align-items:flex-end;gap:13px;padding:8px 6px 20px;position:relative}.chart-column{flex:1;text-align:center;position:relative;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;height:100%}.chart-bar{width:min(30px,65%);height:var(--height);background:#c9d5b6;border-radius:5px 5px 0 0;min-height:2px}.chart-column:nth-child(2n) .chart-bar{background:#8d9f70}.chart-column small{position:absolute;bottom:-20px;font-size:9px;white-space:nowrap;color:#939c86}.chart-value{font-size:9px;margin-bottom:5px;color:#71815e}.notice{padding:13px 16px;border:1px solid #e5e9dc;background:#f1f5e9;border-radius:10px;color:#78876b;font-size:11px;display:flex;gap:9px;align-items:flex-start;margin:18px 0}.notice.warning{background:#fbf6eb;border-color:#f0e6cf;color:#9e8652}.notice .icon{width:16px;height:16px;margin-top:2px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.class-card{background:white;border:1px solid var(--border);border-radius:16px;overflow:hidden}.class-card-head{background:#eef2e7;padding:22px;display:flex;gap:13px;align-items:center;position:relative}.class-card-head .status{margin-left:auto}.class-card-body{padding:21px}.class-card h2{margin:0;font-size:21px;font-weight:500}.class-card p{margin:5px 0;font-size:11px;color:#849279}.class-card dl{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin:20px 0}.class-card dt{font-size:10px;color:var(--muted)}.class-card dd{margin:4px 0 0;font-size:12px}.class-card-actions{display:flex;gap:8px;margin-top:20px}.class-card-actions .btn:first-child{flex:1}.table-panel{background:white;border:1px solid var(--border);border-radius:14px;overflow:hidden}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:17px 20px;border-bottom:1px solid var(--border)}.search-box{position:relative;flex:1;min-width:200px;max-width:350px}.search-box .icon{position:absolute;left:12px;top:12px;color:#9da693;width:16px}.search-box input{padding:9px 12px 9px 36px;background:#fbfcf9;font-size:12px}.toolbar select{width:auto;min-width:110px;max-width:190px;padding:9px 12px;font-size:11px}.toolbar-spacer{flex:1}.tabs{display:flex;gap:22px;padding:0 20px;border-bottom:1px solid var(--border);overflow:auto}.tab{padding:14px 0;border-bottom:2px solid transparent;font-size:12px;white-space:nowrap;color:#89917d}.tab.active{color:#435f3d;border-color:#637e55}.tab small{font-size:10px;background:#eef1e8;padding:2px 5px;border-radius:4px;margin-left:5px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#8b9580;background:#fafbf7;font-weight:400;padding:13px 18px;white-space:nowrap;border-bottom:1px solid var(--border);font-size:12px}td{padding:15px 18px;border-bottom:1px solid #f0f2ec;max-width:260px;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcf5}.table-cell-main{display:flex;align-items:center;gap:9px}.table-cell-main .avatar{width:30px;height:30px;font-size:11px}.cell-primary{font-weight:500}.cell-secondary{font-size:11px;color:#9aa28f;margin-top:2px}.cell-truncate{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-actions{display:flex;gap:7px;align-items:center}.row-actions button{font-size:10px;padding:4px 0;color:#6a8458;white-space:nowrap}.row-actions button:hover{text-decoration:underline}.row-actions .danger{color:#b28372}.table-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#929c87}.pagination{display:flex;gap:4px;align-items:center}.pagination button{border:1px solid var(--border);border-radius:5px;width:29px;height:29px;font-size:11px}.pagination button.current{background:var(--brand);color:white}.empty{padding:60px 20px;text-align:center;color:var(--muted)}.empty .icon{width:37px;height:37px;margin-bottom:9px;color:#abb8a0}.empty h3{font-size:15px;font-weight:400;color:#7a866f;margin:4px 0}.empty p{font-size:11px;margin:5px 0 16px}.person-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px}.person-card-top{display:flex;gap:13px;align-items:center}.person-card-top .avatar{width:49px;height:49px;font-size:18px}.person-card h3{margin:0;font-size:16px;font-weight:500}.person-card small{font-size:10px;color:var(--muted)}.person-card .tag-row{margin:16px 0;display:flex;gap:7px;flex-wrap:wrap}.tag{font-size:10px;border:1px solid var(--border);background:#f8faf4;padding:4px 8px;border-radius:5px;color:#849475}.person-card-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding-top:14px;margin-top:15px;font-size:11px;color:#8a967c}.person-card-foot strong{color:#526c45;font-size:17px;font-weight:500}.sub-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.rank-hero{background:var(--brand);color:#fff;border-radius:16px;padding:25px;margin-bottom:22px;display:grid;grid-template-columns:1fr 50px 1fr;align-items:center}.rank-team{text-align:center}.rank-team h3{font-size:18px;font-weight:400;margin:0 0 4px}.rank-team .avg{font-size:36px;font-family:Georgia,serif;line-height:1.3}.rank-team p{font-size:10px;color:#aebba5;margin:8px 0 0}.rank-vs{font-family:Georgia,serif;font-size:20px;text-align:center;color:#8e9f80}.rank-label{font-size:9px;letter-spacing:1.5px;color:#bfcab4}.rank-no{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#eef2e6;color:#83956d;font-size:11px}.rank-no.top{background:#f3eddc;color:#a18b56}.gold-number{font-family:Georgia,serif;color:#a48c56;font-size:21px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label{font-size:13px;color:#78866a}.field>label b{color:#a88656;font-weight:400}.field.full{grid-column:1/-1}.field small{font-size:10px;color:#a0a992}.field input,.field select,.field textarea{font-size:12px}.form-section{grid-column:1/-1;font-size:13px;font-weight:500;border-top:1px solid var(--border);padding-top:17px;margin-top:6px}.file-upload{border:1px dashed #c8d3bd;border-radius:10px;padding:18px;text-align:center;background:#f9fbf5;font-size:11px;color:#8c9b7f;cursor:pointer;display:block}.file-upload input{border:0;padding:8px;margin-top:8px;font-size:10px;background:transparent}.file-list{display:flex;gap:6px;flex-wrap:wrap;font-size:10px;margin-top:7px}.file-chip{display:flex;gap:6px;align-items:center;border:1px solid var(--border);border-radius:5px;padding:4px 8px;background:#fff}.file-chip button{color:#a67e6b}.overlay{position:fixed;inset:0;background:#18241560;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(3px)}.modal{background:#fff;border-radius:18px;width:min(780px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 100px #1a281433}.modal.small{max-width:480px}.modal.wide{max-width:1060px}.modal-header{padding:22px 27px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:15px;align-items:center}.modal-header h2{font-size:20px;font-weight:500;margin:0}.modal-header p{font-size:13px;color:var(--muted);margin:5px 0 0}.modal-body{overflow:auto;padding:25px 27px}.modal-footer{border-top:1px solid var(--border);padding:17px 27px;display:flex;align-items:center;justify-content:flex-end;gap:9px;background:#fafbf7;border-radius:0 0 18px 18px}.modal-footer .left{margin-right:auto;font-size:10px;color:#9caa8c}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.detail-item small{font-size:13px;color:#9aa28f;display:block;margin-bottom:5px}.detail-item p{margin:0;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.detail-item.full{grid-column:1/-1}.attachment-preview{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.attachment-preview img{height:120px;width:140px;object-fit:cover;border:1px solid var(--border);border-radius:8px}.attachment-preview a{font-size:11px;color:#7b9066}.history-item{border-left:2px solid #dce5d2;padding:4px 12px 14px;margin:6px 0;font-size:11px;color:#8b9780}.history-item strong{color:#637858;font-weight:500}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#263322;color:white;padding:12px 23px;border-radius:11px;box-shadow:0 8px 30px #13240f33;z-index:200;font-size:12px;max-width:80%;animation:toast-in .2s}.toast.error{background:#994d3e}@keyframes toast-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}.config-grid{display:grid;grid-template-columns:250px minmax(0,1fr);gap:23px}.config-menu{align-self:start;background:white;border:1px solid var(--border);border-radius:13px;padding:12px}.config-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:12px;border-radius:8px;text-align:left;font-size:12px;color:#87957a}.config-menu button.active{background:#edf2e5;color:#566e49}.config-panel{padding:28px;background:white;border:1px solid var(--border);border-radius:14px}.config-panel h2{font-size:18px;font-weight:500;margin:0 0 5px}.config-panel>p{font-size:11px;color:var(--muted);margin:0 0 23px}.ratio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ratio-field{padding:13px;background:#f8faf4;border:1px solid var(--border);border-radius:8px}.ratio-field label{font-size:10px;color:#879678;display:block;margin-bottom:6px}.ratio-field input{padding:7px;background:#fff;font-size:13px}.config-actions{margin-top:24px;border-top:1px solid var(--border);padding-top:20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.subtle{font-size:11px}.amount{font-variant-numeric:tabular-nums}.mobile-bottom{display:none}.today-hero{background:var(--brand);border-radius:17px;padding:25px;color:#fff;margin-bottom:23px;position:relative;overflow:hidden}.today-hero .eyebrow{color:#aabc95}.today-hero h2{font-size:24px;font-weight:400;margin:4px 0 13px}.today-hero .hero-leaves{right:4%;width:185px;top:5px;opacity:.25}.today-hero .progress{background:#49533e;height:6px}.today-hero .progress span{background:#b4c997}.today-hero-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;position:relative;margin:20px 0}.today-hero-metrics span{font-size:10px;color:#b3c3a2}.today-hero-metrics strong{display:block;font-size:25px;font-weight:400;line-height:1.5}.today-task-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-bottom:23px}.task-card{padding:23px;background:#fff;border:1px solid var(--border);border-radius:14px}.task-card-top{display:flex;align-items:center;justify-content:space-between}.task-card h3{font-size:15px;font-weight:500;margin:16px 0 6px}.task-card p{font-size:11px;color:var(--muted);min-height:36px;margin-bottom:15px}.task-card .btn{width:100%}.honor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.honor-card{border:1px solid #ebe7d9;border-radius:14px;background:#fffef9;padding:24px 16px;text-align:center}.honor-medal{width:58px;height:58px;border-radius:50%;border:2px solid #d9ca9c;outline:4px solid #f5efdd;color:#aa925b;background:#f8f2e2;margin:5px auto 17px;display:grid;place-items:center}.honor-medal .icon{width:27px;height:27px}.honor-card h3{font-size:14px;font-weight:500;margin:0 0 6px}.honor-card p{font-size:10px;color:#99907a;margin:0}.honor-card small{font-size:9px;color:#b1a58c;display:block;margin-top:12px}.login{min-height:100vh;background:var(--warm);display:grid;grid-template-columns:1.15fr 1fr}.login-brand{background:#1c2419;color:#fff;padding:60px 9%;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-brand .brand-mark{color:#e4e8da;border-color:#788570}.login-brand .brand-sub{color:#98a18f}.login-brand h1{font-size:43px;font-weight:400;letter-spacing:3px;line-height:1.55;margin:0 0 17px}.login-brand p{color:#a8b29d;font-size:13px;letter-spacing:1px;max-width:370px}.login-brand .hero-leaves{width:380px;right:-100px;top:25%;opacity:.45}.login-brand footer{color:#8f9d82;font-size:10px;letter-spacing:3px}.login-form-area{display:flex;align-items:center;justify-content:center;padding:45px}.login-form{width:100%;max-width:350px}.login-form h2{font-size:28px;font-weight:400;margin:0 0 8px}.login-form>p{font-size:12px;color:var(--muted);margin:0 0 30px}.login-form .field{margin:18px 0}.login-form .btn.primary{width:100%;padding:13px;margin-top:10px;font-size:13px}.demo-logins{border-top:1px solid #e1e4d9;margin-top:26px;padding-top:19px}.demo-logins p{color:#9aa28f;font-size:10px;margin:0 0 10px}.demo-buttons{display:flex;flex-wrap:wrap;gap:7px}.demo-buttons button{padding:6px 11px;border:1px solid #dfe4d5;border-radius:6px;font-size:10px;color:#829572;background:#ffffff60}.login-foot{font-size:9px;color:#a2a898;text-align:center;margin-top:28px}.join-page{background:var(--warm);min-height:100vh;padding:35px 20px}.join-wrap{max-width:730px;margin:auto}.join-header{padding:24px 0 25px}.join-header h1{font-size:28px;font-weight:400;margin:25px 0 7px}.join-header p{font-size:12px;color:var(--muted);margin:0}.join-form{background:#fff;border:1px solid var(--border);border-radius:16px;padding:27px}.join-form>.btn{margin-top:24px;width:100%}.loading-row{color:#9aa590;text-align:center;padding:35px}.skeleton{height:150px;background:linear-gradient(110deg,#edf0e8 30%,#f5f7f0 50%,#edf0e8 70%);border-radius:14px}.mobile-scrim{display:none}.checkbox-row{display:flex;gap:8px;align-items:center;font-size:11px;color:#819074}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.account-role{font-size:11px;color:#758568}.review-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}.review-summary .stat-card{min-height:104px}.timeline-list{list-style:none;padding:0;margin:0}.activity-row{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid #f0f2ea;font-size:11px}.activity-row .dot{width:7px;height:7px;background:#b0be97;border-radius:50%;margin-top:6px}.activity-row small{font-size:9px;color:#a2ad94;display:block;margin-top:3px}.section-caption{font-size:12px;color:#849377;margin:24px 0 11px}.nowrap{white-space:nowrap}.pointer{cursor:pointer}.hidden{display:none!important}.app-footer{margin-top:30px;padding-top:16px;font-size:9px;color:#afb5a6;display:flex;justify-content:space-between;border-top:1px solid #e9ece3}.report-selection{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.report-card{text-align:left;background:#fff;border:1px solid var(--border);border-radius:13px;padding:21px}.report-card:hover{border-color:#becdab;background:#fafcf4}.report-card .icon{color:#8b9d74;width:26px;height:26px}.report-card h3{margin:12px 0 5px;font-size:14px;font-weight:500}.report-card p{font-size:10px;color:var(--muted);margin:0}.history-preview{font-size:11px;color:#839273}.upload-progress{font-size:10px;color:#819973}.label-value{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf1e5;font-size:11px}.label-value strong{font-weight:500;color:#4d653c}.review-layout{display:grid;grid-template-columns:1fr 1fr;gap:22px}.integration-card{border:1px solid var(--border);border-radius:10px;padding:17px;margin-top:13px;background:#fafbf6}.integration-card h3{font-size:13px;font-weight:500;margin:0 0 7px}.integration-card p{font-size:11px;color:var(--muted);margin:0}.brand-leaf{color:#8e9e7b}.metric-inline{display:flex;gap:24px;align-items:center}.metric-inline strong{font-weight:500;font-size:19px}.mobile-account-head{display:flex;gap:16px;align-items:center;margin:0 0 25px}.mobile-account-head .avatar{width:65px;height:65px;font-size:24px}.mobile-account-head h2{font-size:22px;font-weight:400;margin:0}.mobile-account-head p{font-size:11px;color:var(--muted);margin:5px 0}.profile-actions{display:flex;flex-direction:column;gap:2px}.profile-actions button{display:flex;align-items:center;gap:12px;padding:17px 6px;text-align:left;border-bottom:1px solid var(--border);font-size:12px}.profile-actions button .icon:last-child{margin-left:auto;color:#a5af9b}.notice .text-link{font-size:10px}.rules-table input{padding:6px;width:70px;font-size:11px}.rules-table select{padding:6px;font-size:10px}.rules-table th,.rules-table td{padding:8px}.class-detail-banner{background:#edf2e4;padding:24px;border-radius:13px;margin-bottom:20px}.class-detail-banner h2{font-size:25px;font-weight:400;margin:0 0 6px}.class-detail-banner p{font-size:11px;color:#8d9c7b;margin:0}.class-detail-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0}.metric-pill{background:#f5f7ee;padding:8px 13px;border-radius:7px;font-size:11px;color:#8f9f7c}.metric-pill strong{color:#607b49;font-weight:500}.inline-error{color:#af6c52;font-size:11px;margin-top:8px}.rows-summary{font-size:11px;color:#899778;margin:18px 0}.content-reading{white-space:pre-wrap;line-height:1.9;font-size:13px;color:#66775b}.quick-actions{display:flex;flex-wrap:wrap;gap:9px}.tiny-arrow{color:#9caf8b;margin-left:auto}.progress-label{font-size:10px;color:#8d9c7c;margin-top:8px}.period-strip{display:flex;gap:7px;overflow:auto;padding:3px 0 15px}.period-strip button{border:1px solid var(--border);border-radius:7px;padding:7px 15px;white-space:nowrap;font-size:11px;background:#fff;color:#93a083}.period-strip button.active{background:#eaf0df;border-color:#becdad;color:#6b8352}.viewer-title{display:flex;align-items:center;gap:12px}.viewer-title .avatar{width:45px;height:45px}.viewer-title h3{margin:0;font-size:17px;font-weight:500}.viewer-title p{margin:3px 0;font-size:11px;color:#9baa89}.review-hint{margin:20px 0 0;font-size:11px;color:#9ba58f}.audit-table{font-size:11px}.rules-badge{font-size:9px;color:#a28b5d;border:1px solid #eadfc9;background:#fbf7eb;border-radius:5px;padding:3px 7px}.phone-stack{display:flex;gap:20px}.btn.full{width:100%}.login .status{align-self:flex-start;margin:15px 0 0}.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.article-card{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;text-align:left}.article-cover{height:115px;background:#e6ecde;display:flex;align-items:flex-end;padding:18px;position:relative;overflow:hidden}.article-cover .hero-leaves{width:145px;right:-10px;top:-8px;opacity:.5}.article-cover span{font-size:10px;color:#7b8e69;letter-spacing:1px;z-index:1}.article-body{padding:20px}.article-body h3{font-weight:500;font-size:15px;margin:0 0 10px}.article-body p{font-size:11px;color:var(--muted);margin:0}.article-body footer{display:flex;justify-content:space-between;font-size:9px;color:#a0ad91;margin-top:20px}.print-only{display:none}
@media(min-width:1600px){.content{padding:38px 48px 65px}.topbar{padding:0 48px}.dashboard-grid,.dashboard-secondary{grid-template-columns:2fr 1fr}.hero{min-height:190px}}
@media(max-width:1200px){.sidebar{width:210px;padding-left:12px;padding-right:12px}.main-shell{width:calc(100% - 210px);margin-left:210px}.content{padding:27px 25px 50px}.topbar{padding:0 25px}.stat-card{padding:18px}.card-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.dashboard-secondary{grid-template-columns:1.6fr 1fr}.hero-leaves{right:1%}.honor-grid{grid-template-columns:repeat(3,1fr)}.config-grid{grid-template-columns:205px 1fr}.config-panel{padding:23px}}
@media(max-width:980px){.sidebar{width:230px;transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0)}.main-shell{width:100%;margin-left:0}.menu-toggle{display:inline-flex}.topbar{height:68px;padding:0 22px}.topbar .breadcrumb{display:none}.mobile-scrim.open{display:block;position:fixed;inset:0;background:#1c291750;z-index:24}.dashboard-grid,.dashboard-secondary{grid-template-columns:1.5fr 1fr}.content{padding:26px 22px 60px}.login-brand{padding:45px 9%}.login-brand h1{font-size:35px}.login-form-area{padding:35px}.today-task-grid{gap:12px}.config-menu{padding:9px}.config-menu button{padding:10px}.report-selection{grid-template-columns:repeat(2,1fr)}}
@media(max-width:740px){.content{padding:22px 17px 100px}.topbar{padding:0 14px;height:61px}.topbar-right{gap:5px}.topbar-select{max-width:132px;font-size:11px}.profile-info{display:none}.topbar-mode{font-size:10px;padding:6px 9px;min-height:32px}.page-heading{margin-bottom:21px;gap:10px}.page-heading h1{font-size:24px}.page-heading p{font-size:11px;max-width:250px}.date-pill{display:none}.heading-actions .btn{font-size:10px;padding:7px 10px;min-height:33px}.hero{padding:24px 21px;min-height:165px;margin-bottom:18px}.hero-copy{max-width:80%}.hero h2{font-size:21px}.hero p{max-width:260px;font-size:11px}.hero-leaves{right:-50px;top:24px;width:205px;opacity:.4}.hero-quote{display:none}.stat-grid{grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:19px}.stat-card{padding:17px;min-height:121px}.stat-top{font-size:10px;margin-bottom:10px}.stat-icon{width:27px;height:27px}.stat-icon .icon{width:15px;height:15px}.stat-number{font-size:25px}.stat-foot{font-size:9px}.dashboard-grid,.dashboard-secondary{grid-template-columns:1fr;gap:17px}.dashboard-secondary{margin-top:17px}.panel{padding:19px}.class-mini{padding:16px}.card-grid{grid-template-columns:1fr;gap:15px}.class-card-head{padding:19px}.class-card-body{padding:18px}.class-card dl{gap:14px}.mobile-bottom{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);background:#fffffff5;border-top:1px solid var(--border);z-index:30;padding:9px 7px max(9px,env(safe-area-inset-bottom));backdrop-filter:blur(20px)}.mobile-bottom button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-size:9px;color:#9ba58e}.mobile-bottom button.active{color:#546d44}.mobile-bottom .icon{width:20px;height:20px}.sub-grid,.review-layout{grid-template-columns:1fr;gap:17px}.today-task-grid{grid-template-columns:1fr;gap:12px}.task-card{padding:18px;display:grid;grid-template-columns:1fr auto;gap:0 15px}.task-card-top{grid-column:1/-1}.task-card h3{margin:9px 0 5px}.task-card p{margin:0;min-height:0;grid-column:1;max-width:250px}.task-card .btn{width:auto;grid-column:2;grid-row:2/4;align-self:center;padding:8px 11px}.today-hero{padding:22px}.today-hero h2{font-size:23px}.today-hero-metrics strong{font-size:23px}.today-hero .hero-leaves{right:-10px}.honor-grid{grid-template-columns:repeat(2,1fr);gap:12px}.honor-card{padding:20px 10px}.rank-hero{padding:24px 13px;grid-template-columns:1fr 35px 1fr}.rank-team h3{font-size:15px}.rank-team .avg{font-size:30px}.rank-team p{font-size:9px}.toolbar{padding:13px;gap:8px}.search-box{min-width:100%;max-width:none}.toolbar select{font-size:10px;padding:8px;width:calc(50% - 4px);max-width:none}.toolbar-spacer{display:none}.tabs{gap:18px;padding:0 14px}.tab{font-size:11px;padding:12px 0}.table-panel td{padding:12px 13px;font-size:11px}.table-panel th{padding:12px 13px;font-size:9px}.cell-truncate{max-width:170px}.table-footer{padding:12px 13px}.row-actions{gap:8px}.table-footer>span{max-width:150px}.modal{max-height:93vh;border-radius:15px}.overlay{padding:12px}.modal-header{padding:18px 20px}.modal-body{padding:20px}.modal-footer{padding:15px 18px;flex-wrap:wrap}.modal-footer .btn{font-size:11px}.form-grid{grid-template-columns:1fr;gap:15px}.field.full{grid-column:auto}.form-section{grid-column:auto}.detail-grid{gap:17px}.config-grid{grid-template-columns:1fr;gap:15px}.config-menu{display:flex;overflow:auto;gap:4px;padding:8px}.config-menu button{width:auto;flex:none;padding:9px 12px;white-space:nowrap;font-size:11px}.config-menu button .icon{display:none}.config-panel{padding:20px}.ratio-grid{gap:10px}.ratio-field{padding:10px}.config-actions .btn{font-size:10px}.login{display:block;min-height:100vh}.login-brand{padding:30px 27px 35px;min-height:265px}.login-brand .brand-name{font-size:18px}.login-brand h1{font-size:28px;margin-top:28px;margin-bottom:8px;letter-spacing:2px;line-height:1.4}.login-brand p{font-size:11px;margin:6px 0 0;max-width:290px}.login-brand footer{display:none}.login-brand .hero-leaves{width:230px;right:-30px;top:80px;opacity:.22}.login-form-area{padding:30px 27px 40px}.login-form{max-width:440px}.login-form h2{font-size:24px}.login-form>p{margin-bottom:20px}.login-form .field{margin:15px 0}.login-foot{margin-top:20px}.review-summary{gap:10px;grid-template-columns:repeat(3,1fr)}.review-summary .stat-card{padding:14px;min-height:92px}.review-summary .stat-icon{display:none}.review-summary .stat-number{font-size:24px}.review-summary .stat-foot{display:none}.report-selection{gap:12px}.report-card{padding:18px}.report-card h3{font-size:13px}.report-card p{font-size:10px}.article-grid{grid-template-columns:1fr}.article-cover{height:98px}.app-footer{font-size:8px}.app-footer>span:last-child{display:none}.notice{font-size:10px}.person-card{padding:20px}.class-detail-banner{padding:20px}.class-detail-banner h2{font-size:22px}.check-grid{grid-template-columns:1fr}.join-form{padding:20px}.join-header h1{font-size:25px}.period-strip button{padding:6px 12px}.rules-table td,.rules-table th{padding:6px}.rules-table input{width:60px}.rules-table select{max-width:70px}.phone-stack{flex-direction:column;gap:12px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media print{.sidebar,.topbar,.mobile-bottom,.heading-actions,.app-footer,.btn,.toolbar,.row-actions{display:none!important}.main-shell{width:100%;margin:0}.content{padding:0}.panel,.stat-card,.table-panel{break-inside:avoid;border-color:#ddd}.overlay{position:static;background:#fff}.modal{max-height:none;box-shadow:none}.print-only{display:block}}

.qr-code svg{width:220px;max-width:100%;height:auto;background:white}

/* Invitation registration follows the mobile frontend palette. */
.join-page{--ink:#2b2134;--brand:#660874;--green:#80509b;--sage:#f0e5f8;--warm:#faf7fd;--muted:#7d698b;--border:#e7d7ef;background:radial-gradient(ellipse at 90% 0,rgba(215,174,242,.32),transparent 55%),#faf7fd;color:var(--ink)}
.join-page .brand-mark{background:linear-gradient(140deg,#4b105d,#660874 55%,#9554ba);border-color:#9455b2;color:#fff;box-shadow:0 5px 16px rgba(102,8,116,.14)}
.join-page .join-form{box-shadow:0 10px 32px rgba(102,8,116,.045);border-color:#e9dcf2}
.join-page .btn.primary{background:linear-gradient(120deg,#5e086f,#7b279b);color:#fff;box-shadow:0 6px 18px rgba(102,8,116,.12)}
.join-page input,.join-page select,.join-page textarea{border-color:#e2d2ea}
.join-page input:focus,.join-page select:focus,.join-page textarea:focus{border-color:#a767c5;box-shadow:0 0 0 3px rgba(160,89,190,.12)}

.icon-field{display:flex;align-items:center;gap:12px}.icon-field select{flex:1}.icon-preview{width:44px;height:44px;flex:none;border-radius:12px;border:1px solid var(--border);background:linear-gradient(180deg,#fffdf6,#f7f2e6);display:grid;place-items:center;padding:0}.icon-preview .icon{width:28px;height:28px}svg.icon.art{overflow:visible}.icon-opt .icon.art{width:22px;height:22px}.honor-medal{background:radial-gradient(circle at 50% 32%,#fffdf3,#f6ead0 70%,#ecdcb6)}.honor-medal .icon{width:32px;height:32px}.honor-medal .icon.art{width:34px;height:34px}.avatar.gold .ico.art,.avatar .ico.art{width:22px;height:22px}.member .avatar{display:grid;place-items:center}

/* ===== 美业女性向主题增强（2026-10 改版） ===== */
:root{--brand:#660874;--brand-2:#a836c9;--brand-3:#e94f9e;--ink:#2d1b3d;--muted:#8b7a9a;--sage:#f6e8fa;--warm:#faf5fc;--border:#efdff5;--gold:#c9a24b;--red:#d94a6e;--radius:20px;--shadow:0 12px 40px rgba(102,8,116,.10)}
body{background:linear-gradient(135deg,#faf5fc 0%,#fdf0f7 50%,#f6e8fa 100%)!important}
.btn.primary{background:linear-gradient(135deg,#660874 0%,#a836c9 100%)!important;border:none!important;box-shadow:0 4px 14px rgba(168,54,201,.35)!important;transition:all .25s!important}
.btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(168,54,201,.5)!important}
.stat-card,.panel,.class-card,.task-card,.report-card,.article-card{transition:all .3s!important}
.stat-card:hover,.class-card:hover,.task-card:hover,.report-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(102,8,116,.14)!important}
.hero{background:linear-gradient(135deg,#660874 0%,#a836c9 50%,#e94f9e 100%)!important;color:#fff!important}
.hero h2{color:#fff!important}.hero p{color:rgba(255,255,255,.85)!important}
.hero .btn{background:rgba(255,255,255,.2)!important;border:1px solid rgba(255,255,255,.4)!important;color:#fff!important}
.nav-item.active{background:linear-gradient(135deg,#660874,#a836c9)!important;box-shadow:0 4px 12px rgba(102,8,116,.3)}
.progress span{background:linear-gradient(90deg,#a836c9,#e94f9e)!important}
input:focus,select:focus,textarea:focus{border-color:#a836c9!important;box-shadow:0 0 0 3px rgba(168,54,201,.15)!important}
.status{background:#f6e8fa;color:#8b3ba8}
.login-brand{background:linear-gradient(160deg,#3d0a5c 0%,#660874 50%,#a836c9 100%)!important}
.today-hero{background:linear-gradient(135deg,#660874,#a836c9)!important}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.stat-card,.panel,.class-card{animation:fadeUp .5s ease both}
.stat-card:nth-child(2){animation-delay:.05s}.stat-card:nth-child(3){animation-delay:.1s}.stat-card:nth-child(4){animation-delay:.15s}
.sidebar{background:linear-gradient(180deg,#fdfaff 0%,#f6e8fa 100%)!important}
.honor-card{border:1px solid #efdff5!important;background:linear-gradient(180deg,#fff,#fdf5fc)!important}
.honor-medal{background:linear-gradient(135deg,#f6e8fa,#e9d5f5)!important;border:2px solid #d9b8e8!important;outline:4px solid #f6e8fa!important;color:#8b3ba8!important}

/* ===== 深色华丽主题（PC后台统一深色，2026-10-27）===== */
:root{
  --ink:#ffffff!important;
  --muted:#d9cef0!important;
  --brand:#a855f7!important;
  --brand-2:#ec4899!important;
  --brand-3:#7c3aed!important;
  --sage:rgba(255,255,255,.08)!important;
  --warm:#0f0520!important;
  --border:rgba(255,255,255,.12)!important;
  --paper:rgba(255,255,255,.06)!important;
  --gold:#f0c75c!important;
  --red:#f472b6!important;
  --shadow:0 12px 40px rgba(124,58,237,.15)!important;
}
body{
  background:#0f0520!important;
  background-image:
    radial-gradient(ellipse 80% 60% at 20% 0%,rgba(236,72,153,.18),transparent 50%),
    radial-gradient(ellipse 70% 50% at 80% 30%,rgba(168,85,247,.15),transparent 50%),
    radial-gradient(ellipse 60% 40% at 50% 100%,rgba(124,58,237,.12),transparent 60%)!important;
  color:#ffffff!important;
  min-height:100vh;
}
/* 侧边栏深色玻璃 */
.sidebar{
  background:linear-gradient(180deg,rgba(30,15,60,.85) 0%,rgba(20,10,45,.9) 100%)!important;
  backdrop-filter:blur(20px)!important;
  border-right:1px solid rgba(255,255,255,.1)!important;
}
.brand-name{color:#fff!important}
.brand-sub{color:#fff!important}
.brand-mark{background:linear-gradient(135deg,#ec4899,#a855f7)!important;color:#fff!important;border:none!important;box-shadow:0 4px 14px rgba(168,85,247,.4)!important}
.workspace-pill{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.12)!important;color:#fff!important}
.workspace-pill .dot{background:#ec4899!important;box-shadow:0 0 8px #ec4899}
.nav-section{color:#fff!important}
.nav-item{color:#fff!important}
.nav-item:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}
.nav-item.active{background:linear-gradient(135deg,#ec4899,#a855f7)!important;color:#fff!important;box-shadow:0 4px 14px rgba(236,72,153,.35)!important}
.nav-item .icon{color:inherit!important}
.side-foot{color:#fff!important;border-top:1px solid rgba(255,255,255,.08)!important}
/* 顶栏 */
.topbar{background:rgba(15,5,32,.7)!important;backdrop-filter:blur(20px)!important;border-bottom:1px solid rgba(255,255,255,.1)!important}
.breadcrumb{color:#fff!important}
.breadcrumb strong{color:#fff!important}
.topbar-select{color:#fff!important;background:transparent!important}
.topbar-select option{background:#1a0b2e!important;color:#fff!important}
.topbar-mode{background:rgba(255,255,255,.1)!important;color:#fff!important;border:1px solid rgba(255,255,255,.15)!important}
.profile-info{color:#fff!important}
.profile-info small{color:#fff!important}
.icon-button{color:#fff!important}
.icon-button:hover{background:rgba(255,255,255,.1)!important}
/* 主内容区 */
.content{color:#ffffff!important}
.page-heading h1{color:#fff!important}
.page-heading p{color:#fff!important}
.eyebrow{color:#fff!important}
/* 卡片玻璃拟态 */
.stat-card,.panel,.class-card,.task-card,.report-card,.article-card,.table-panel,.config-panel,.config-menu,.person-card,.honor-card,.search-box input,.toolbar,.class-detail-banner,.class-card-head,.metric-pill,.file-upload{
  background:rgba(255,255,255,.06)!important;
  backdrop-filter:blur(16px)!important;
  border:1px solid rgba(255,255,255,.1)!important;
  color:#ffffff!important;
}
/* v196.2：班级空间横幅/班级卡头/指标胶囊/上传区/轮次条 统一深色玻璃，白字可读 */
.class-detail-banner h2,.class-detail-banner p,.class-card-head h2,.class-card-head p,.metric-pill,.metric-pill strong{color:#fff!important}
.file-upload{border:1px dashed rgba(255,255,255,.25)!important}
.period-strip button{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.12)!important;color:#fff!important}
.period-strip button.active{background:linear-gradient(135deg,#660874,#a836c9)!important;border-color:transparent!important;color:#fff!important}
.stat-top{color:#fff!important}
.stat-icon{background:rgba(236,72,153,.15)!important;color:#fff!important}
.stat-number{color:#fff!important}
.stat-number small{color:#fff!important}
.stat-foot{color:#fff!important}
.stat-foot b{color:#fff!important}
.panel-heading h2{color:#fff!important}
.panel-heading h2 small{color:#fff!important}
.text-link{color:#fff!important}
/* hero 保持紫粉渐变 */
.hero{background:linear-gradient(135deg,#ec4899 0%,#a855f7 50%,#7c3aed 100%)!important;color:#fff!important}
.hero h2{color:#fff!important}
.hero p{color:rgba(255,255,255,.85)!important}
.hero .btn{background:rgba(255,255,255,.2)!important;border:1px solid rgba(255,255,255,.4)!important;color:#fff!important}
.hero-quote{color:rgba(255,255,255,.5)!important}
/* 按钮 */
.btn{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.15)!important;color:#fff!important}
.btn:hover{background:rgba(255,255,255,.15)!important}
.btn.primary{background:linear-gradient(135deg,#ec4899,#a855f7)!important;border:none!important;color:#fff!important;box-shadow:0 4px 14px rgba(236,72,153,.35)!important}
.btn.primary:hover{transform:translateY(-2px)!important;box-shadow:0 8px 22px rgba(236,72,153,.5)!important}
.btn.soft{background:rgba(168,85,247,.2)!important;border:1px solid rgba(168,85,247,.3)!important;color:#fff!important}
.btn.danger{color:#f472b6!important;border-color:rgba(244,114,182,.3)!important}
/* 输入框 */
input,select,textarea{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.15)!important;color:#fff!important}
input::placeholder,textarea::placeholder{color:#fff!important}
input:focus,select:focus,textarea:focus{border-color:#ec4899!important;box-shadow:0 0 0 3px rgba(236,72,153,.2)!important}
/* 表格 */
table th{background:rgba(255,255,255,.06)!important;color:#fff!important;border-bottom:1px solid rgba(255,255,255,.1)!important}
table td{color:#fff!important;border-bottom:1px solid rgba(255,255,255,.06)!important}
tbody tr:hover{background:rgba(255,255,255,.04)!important}
/* 状态标签 */
.status{background:rgba(168,85,247,.2)!important;color:#fff!important}
.status.warning{background:rgba(240,199,92,.2)!important;color:#f0c75c!important}
.status.red{background:rgba(244,114,182,.2)!important;color:#f472b6!important}
.status.gray{background:rgba(255,255,255,.1)!important;color:#fff!important}
/* 进度条 */
.progress{background:rgba(255,255,255,.1)!important}
.progress span{background:linear-gradient(90deg,#ec4899,#a855f7)!important}
/* 荣誉卡片 */
.honor-card{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.1)!important;color:#ffffff!important}
.honor-card h3{color:#fff!important}
.honor-card p{color:#fff!important}
.honor-medal{background:rgba(236,72,153,.15)!important;border:2px solid rgba(236,72,153,.3)!important;outline:4px solid rgba(168,85,247,.15)!important}
/* 弹窗 */
.overlay{background:rgba(15,5,32,.8)!important;backdrop-filter:blur(6px)!important}
.modal{background:#1a0b2e!important;color:#ffffff!important;border:1px solid rgba(255,255,255,.1)!important}
.modal-header{border-bottom:1px solid rgba(255,255,255,.1)!important}
.modal-header h2{color:#fff!important}
.modal-header p{color:#fff!important}
.modal-footer{background:rgba(255,255,255,.04)!important;border-top:1px solid rgba(255,255,255,.1)!important}
/* 其他 */
.app-footer{color:#fff!important;border-top:1px solid rgba(255,255,255,.08)!important}
.empty{color:#fff!important}
.empty h3{color:#fff!important}
.notice{background:rgba(168,85,247,.1)!important;border:1px solid rgba(168,85,247,.2)!important;color:#fff!important}
.chart-bar{background:rgba(168,85,247,.4)!important}
.chart-column:nth-child(2n) .chart-bar{background:linear-gradient(90deg,#ec4899,#a855f7)!important}
.class-badge{background:linear-gradient(135deg,#ec4899,#a855f7)!important;color:#fff!important}
.today-hero{background:linear-gradient(135deg,#ec4899,#a855f7)!important;color:#fff!important}
.today-hero h2{color:#fff!important}
.today-hero .progress{background:rgba(255,255,255,.2)!important}
.login-brand{background:linear-gradient(160deg,#2d0a4e 0%,#660874 50%,#a855f7 100%)!important;color:#fff!important}
.login-brand h1{color:#fff!important}
.login-brand p{color:rgba(255,255,255,.7)!important}
.login-form h2{color:#fff!important}
.login-form>p{color:#fff!important}
.config-menu button{color:#fff!important}
.config-menu button.active{background:rgba(236,72,153,.2)!important;color:#fff!important}
.ratio-field{background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.1)!important}
.ratio-field label{color:#fff!important}
.field>label{color:#fff!important}
.field small{color:#fff!important}
/* 滚动条 */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:rgba(255,255,255,.05)}
::-webkit-scrollbar-thumb{background:rgba(168,85,247,.3);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:rgba(168,85,247,.5)}

/* v160 新版公司 Logo */
.brand-mark img{width:100%;height:100%;object-fit:contain;display:block;border-radius:inherit}
.splash img{width:64px;height:64px;object-fit:contain;display:block;margin:0 auto 10px}

/* v166.29：后台文字全量提亮——补齐深色主题下仍偏暗的文字元素 */
.checkbox-row{color:#fff!important}
.checkbox-row input[type=checkbox]{accent-color:#ec4899!important}
.check-grid{color:#fff!important}
.modal-footer .left{color:#fff!important}
.modal-body label{color:#fff!important}
.modal-body small,.modal-body p{color:#fff!important}
.detail-item small{color:#fff!important}
.detail-item p{color:#fff!important}
.history-item{color:#fff!important}
.history-item strong{color:#fff!important}
.attachment-preview a{color:#fff!important}
.tag{color:#fff!important;background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.15)!important}
.cell-primary{color:#fff!important}
.cell-secondary{color:#fff!important}
.row-actions button{color:#fff!important}
.row-actions .danger{color:#f472b6!important}
.table-footer{color:#fff!important}
.pagination button{color:#fff!important;border-color:rgba(255,255,255,.15)!important}
.form-section{color:#fff!important}
.file-upload{color:#fff!important}
.file-list{color:#fff!important}
.file-chip{color:#fff!important;background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.15)!important}
.file-chip button{color:#f472b6!important}
.account-role{color:#fff!important}
.demo-logins p{color:#fff!important}
.demo-buttons button{color:#fff!important;border-color:rgba(255,255,255,.15)!important}
.login-foot{color:#fff!important}
.article-body p{color:#fff!important}
.article-body footer{color:#fff!important}
.article-cover span{color:#fff!important}
.label-value{color:#fff!important}
.label-value strong{color:#fff!important}
.report-card p{color:#fff!important}
.report-card .icon{color:#fff!important}
.rows-summary{color:#fff!important}
.content-reading{color:#fff!important}
.viewer-title p{color:#fff!important}
.review-hint{color:#fff!important}
.history-preview{color:#fff!important}
.upload-progress{color:#fff!important}
.todo-text small{color:#fff!important}
.todo-item>b{color:#fff!important}
.agenda-info p{color:#fff!important}
.chart-column small{color:#fff!important}
.chart-value{color:#fff!important}
.class-card p{color:#fff!important}
.class-card dt{color:#fff!important}
.search-box .icon{color:#fff!important}
.tab{color:#fff!important}
.tab small{background:rgba(255,255,255,.1)!important;color:#fff!important}
.person-card small{color:#fff!important}
.person-card-foot{color:#fff!important}
.person-card-foot strong{color:#fff!important}
.today-hero-metrics span{color:#fff!important}
.task-card p{color:#fff!important}
.honor-card small{color:#fff!important}
.loading-row{color:#fff!important}
.section-caption{color:#fff!important}
.activity-row{color:#fff!important}
.activity-row small{color:#fff!important}
.integration-card p{color:#fff!important}
.class-detail-banner p{color:#fff!important}
.metric-pill{color:#fff!important}
.metric-pill strong{color:#fff!important}
.inline-error{color:#f472b6!important}
.progress-label{color:#fff!important}
.period-strip button{color:#fff!important}
.period-strip button.active{color:#fff!important}
.rules-badge{color:#f0c75c!important;background:rgba(240,199,92,.12)!important;border-color:rgba(240,199,92,.3)!important}
.field>label b{color:#f0c75c!important}
