.pv-page{padding:4px 2px 40px}.pv-head{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.pv-head h2{letter-spacing:-.3px;color:#1b2233;margin:0;font-size:21px}.pv-sub{color:#8a93a6;margin:4px 0 0;font-size:12.5px}.pv-actions{gap:8px;margin-left:auto;display:flex}.pv-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:14px;display:grid}.pv-stat{background:#fff;border:1px solid #e9edf4;border-radius:14px;gap:3px;padding:12px 14px;display:grid}.pv-stat b{letter-spacing:-.3px;color:#1b2233;font-size:19px}.pv-stat span{color:#8a93a6;font-size:12px}.pv-alert{color:#8a5a12;background:#fff7e8;border:1px solid #f7dfae;border-radius:12px;margin-top:10px;padding:10px 13px;font-size:12.5px;line-height:1.7}.pv-filters{flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;display:flex}.pv-filters button{color:#5c667c;cursor:pointer;background:#fff;border:1px solid #e9edf4;border-radius:999px;padding:6px 14px;font-size:12.5px}.pv-filters button.on{color:#3a6bff;background:#edf2ff;border-color:#c9d8ff;font-weight:600}.pv-count{color:#8a93a6;margin-left:auto;font-size:12px}.pv-empty{text-align:center;color:#8a93a6;background:#fff;border:1px solid #e9edf4;border-radius:14px;margin-top:14px;padding:20px;font-size:13px}.pv-list{gap:10px;margin-top:12px;display:grid}.pv-item{align-items:flex-start;gap:12px;display:flex}.pv-date{text-align:center;background:#fff;border:1px solid #e9edf4;border-radius:12px;flex:0 0 52px;width:52px;padding:8px 0}.pv-date b{color:#1b2233;font-size:17px;line-height:1.15;display:block}.pv-date span{color:#8a93a6;font-size:11px}.pv-card{background:#fff;border:1px solid #e9edf4;border-radius:14px;flex:1;min-width:0;padding:13px 15px}.pv-row{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.pv-avatar{color:#3a6bff;background:#edf2ff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:inline-flex}.pv-who{gap:1px;min-width:0;display:grid}.pv-who b{color:#1b2233;font-size:13.5px}.pv-who span{color:#8a93a6;font-size:11.5px}.pv-chip{color:#5c667c;background:#f4f6fa;border-radius:999px;padding:2px 9px;font-size:11.5px}.pv-status{border-radius:999px;padding:2px 9px;font-size:11.5px}.pv-status.pending{color:#c9821a;background:#fdf3e2}.pv-status.done{color:#0fa968;background:#e7f7ef}.pv-status.late{color:#dc4a3c;background:#fdecea}.pv-stars{color:#f0a93b;letter-spacing:1px;margin-left:auto;font-size:12px}.pv-stars i{color:#e3e8f2;font-style:normal}.pv-content{color:#1b2233;margin:9px 0 0;font-size:12.8px;line-height:1.75}.pv-line{color:#5c667c;margin:7px 0 0;font-size:12.3px;line-height:1.7}.pv-line em{color:#8a93a6;margin-right:6px;font-style:normal}.pv-foot{color:#8a93a6;border-top:1px solid #f1f4f9;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;padding-top:9px;font-size:11.8px;display:flex}.pv-next{color:#8a5a12}.pv-ops{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.pv-danger{color:#dc4a3c}.pv-mask{z-index:80;background:#10182873;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.pv-modal{background:#fff;border-radius:16px;width:min(620px,96vw);max-height:88vh;padding:16px;overflow:auto}.pv-modal-head{align-items:center;gap:10px;display:flex}.pv-modal-head b{font-size:15px}.pv-modal-head button{margin-left:auto}.pv-fields{grid-template-columns:1fr 1fr;gap:9px;margin-top:12px;display:grid}.pv-fields label{color:#5c667c;gap:4px;font-size:12px;display:grid}.pv-fields input,.pv-fields select,.pv-fields textarea{border:1px solid #e9edf4;border-radius:9px;padding:7px 9px;font-family:inherit;font-size:13px}.pv-modal-foot{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}@media (max-width:760px){.pv-item{flex-direction:column}.pv-date{flex:none;align-items:baseline;gap:6px;width:auto;padding:6px 10px;display:flex}.pv-fields{grid-template-columns:1fr}}.pv-actions .btn,.pv-modal-foot .btn,.pv-ops .btn{border-radius:10px;font-weight:500;transition:all .15s}.pv-actions .btn{color:#3b4557;background:#fff;border:1px solid #e4e9f2;height:34px;padding:0 15px}.pv-actions .btn:hover{background:#f7f9fd;border-color:#c9d4ea}.pv-actions .btn-primary{color:#fff;background:linear-gradient(135deg,#4a78ff,#3a6bff);border:none;box-shadow:0 6px 16px -8px #3a6bffbf}.pv-actions .btn-primary:hover{background:linear-gradient(135deg,#3e6bf5,#2f5bea);box-shadow:0 8px 20px -8px #3a6bffd9}.pv-ops .btn{color:#5c667c;background:#fff;border:1px solid #e4e9f2;height:28px;padding:0 11px;font-size:12px}.pv-ops .btn:hover{color:#3a6bff;background:#f7f9fd;border-color:#c9d4ea}.pv-ops .pv-danger:hover{color:#dc4a3c;background:#fff5f4;border-color:#f3c6c1}.pv-modal{border:1px solid #e9edf4e6;border-radius:18px;padding:0;overflow:hidden;box-shadow:0 32px 80px -28px #10182873}.pv-modal-head{background:linear-gradient(#fafbfe,#f4f6fb);border-bottom:1px solid #edf0f6;padding:15px 18px}.pv-modal-head b{color:#1b2233;letter-spacing:-.2px;font-size:15.5px}.pv-modal-head .btn{color:#5c667c;background:#fff;border:1px solid #e4e9f2;border-radius:9px;height:28px;padding:0 11px;font-size:12px}.pv-fields{gap:11px;padding:16px 18px 4px}.pv-fields label{color:#7a8497;font-size:12px;font-weight:500}.pv-fields input,.pv-fields select,.pv-fields textarea{color:#1b2233;background:#fbfcfe;border:1px solid #e4e9f2;border-radius:10px;padding:9px 11px;font-size:13px;transition:all .15s}.pv-fields input:focus,.pv-fields select:focus,.pv-fields textarea:focus{background:#fff;border-color:#9db6ff;outline:none;box-shadow:0 0 0 3px #3a6bff1f}.pv-fields input::placeholder,.pv-fields textarea::placeholder{color:#b4bccb}.pv-modal-foot{background:#fcfdff;border-top:1px solid #f1f4f9;margin-top:12px;padding:12px 18px 16px}.pv-modal-foot .btn{color:#3b4557;background:#fff;border:1px solid #e4e9f2;height:34px;padding:0 16px}.pv-modal-foot .btn:hover{background:#f7f9fd}.pv-modal-foot .btn-primary{color:#fff;background:linear-gradient(135deg,#4a78ff,#3a6bff);border:none;box-shadow:0 8px 18px -10px #3a6bffcc}.pv-modal-foot .btn-primary:hover{background:linear-gradient(135deg,#3e6bf5,#2f5bea)}.pv-modal-foot .btn-primary:disabled{box-shadow:none;color:#fff;background:#dde3ee}.pv-checks{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.pv-checks button{color:#5c667c;cursor:pointer;background:#fbfcfe;border:1px solid #e4e9f2;border-radius:999px;padding:6px 13px;font-size:12.5px;transition:all .15s}.pv-checks button:hover{background:#f7f9fd;border-color:#c9d4ea}.pv-checks button.on{color:#3a6bff;background:#edf2ff;border-color:#9db6ff;font-weight:600}.pv-mask{z-index:9999!important;width:100vw!important;height:100vh!important;position:fixed!important;inset:0!important}.pv-modal{min-width:320px;width:min(640px,92vw)!important;max-width:none!important}@media (max-width:760px){.pv-modal{width:96vw!important}}.pv-modal{width:min(920px,94vw)!important}.pv-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important}.pv-fields .wide{grid-column:1/-1}.pv-combo{position:relative}.pv-combo-list{z-index:20;background:#fff;border:1px solid #e4e9f2;border-radius:12px;max-height:220px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 16px 40px -18px #10182859}.pv-combo-list button{text-align:left;color:#1b2233;cursor:pointer;background:#fff;border:0;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;display:flex}.pv-combo-list button:hover{background:#f2f6ff}.pv-combo-list button span{color:#8a93a6;margin-left:auto;font-size:11.5px}.pv-combo-empty{color:#8a93a6;padding:10px;font-size:12px}@media (max-width:760px){.pv-fields{grid-template-columns:1fr!important}.pv-modal{width:96vw!important}}.pv-modal{flex-direction:column;max-height:92vh!important;display:flex!important;overflow:hidden!important}.pv-modal-head{flex:none}.pv-fields{flex:auto;max-height:none;padding-bottom:8px;overflow-y:auto}.pv-modal-foot{background:#fff;flex:none;position:sticky;bottom:0;box-shadow:0 -8px 18px -14px #10182859}.pv-modal-foot .btn{height:36px}.pv-chip.dept{color:#c9821a;background:#fff4e8}.pv-filters button{position:relative}.pv-filters .pv-dot{background:#ef4444;border-radius:50%;width:8px;height:8px;display:inline-block;position:absolute;top:-2px;right:-2px}.pv-upload{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pv-upload input[type=file]{font-size:12px}.pv-thumbs{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.pv-thumbs img{object-fit:cover;border:1px solid #e9edf4;border-radius:8px;width:56px;height:56px}.pv-thumbs .pv-file{color:#8a93a6;background:#f1f4f9;border-radius:8px;justify-content:center;align-items:center;width:56px;height:56px;font-size:10px;display:inline-flex}
.gcx *{box-sizing:border-box;margin:0;padding:0}.gcx{--bg:#f4f6fa;--panel:#fff;--ink:#1b2233;--sub:#5c667c;--muted:#8a93a6;--line:#e9edf4;--line-2:#f1f4f9;--brand:#3a6bff;--soft:#edf2ff;--ok:#0fa968;--ok-soft:#e7f7ef;--warn:#c9821a;--warn-soft:#fdf3e2;--danger:#dc4a3c;--danger-soft:#fdecea;--purple:#7358e8;--purple-soft:#f1edff;--teal:#12a594;--teal-soft:#e4f6f3;--shadow:0 1px 2px #1018280a, 0 8px 24px -16px #1018282e}.gcx,.gcx{height:100%}.gcx{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,sans-serif;font-size:14px;line-height:1.55}.gcx button,.gcx input,.gcx select,.gcx textarea{font-family:inherit}.gcx ::selection{background:#d9e3ff}.gcx .shell{min-height:100vh;display:flex}.gcx .sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;flex:none;width:232px;height:100vh;padding:18px 14px 16px;display:flex;position:sticky;top:0}.gcx .brand{align-items:center;gap:10px;padding:4px 6px 18px;display:flex}.gcx .logo{color:#fff;background:linear-gradient(140deg,#4a7bff,#7a93ff 60%,#9eb0ff);border-radius:12px;flex:none;place-items:center;width:38px;height:38px;font-size:16px;font-weight:700;display:grid;box-shadow:0 6px 14px -6px #3a6bffb3}.gcx .brand h1{font-size:15px;font-weight:700}.gcx .brand p{color:var(--muted);letter-spacing:.3px;font-size:11.5px}.gcx .nav-label{color:#aeb6c6;letter-spacing:1.2px;padding:12px 10px 6px;font-size:11px;font-weight:600}.gcx .nav-item{color:var(--sub);cursor:pointer;border:1px solid #0000;border-radius:11px;align-items:center;gap:10px;margin-bottom:2px;padding:10px 11px;font-size:13.5px;font-weight:500;transition:all .16s;display:flex}.gcx .nav-item:hover{color:var(--ink);background:#f6f8fc}.gcx .nav-item.active{background:var(--soft);color:var(--brand);border-color:#dfe8ff;font-weight:600}.gcx .nav-item svg{stroke:currentColor;fill:none;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:17px;height:17px}.gcx .side-foot{border-top:1px solid var(--line-2);margin-top:auto;padding-top:14px}.gcx .teacher-card{align-items:center;gap:10px;padding:8px 6px;display:flex}.gcx .avatar{color:#fff;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:grid}.gcx .teacher-card b{font-size:13px;font-weight:600;display:block}.gcx .teacher-card span{color:var(--muted);font-size:11.5px}.gcx .dot-live{background:var(--ok);width:7px;height:7px;box-shadow:0 0 0 3px var(--ok-soft);border-radius:50%;margin-left:auto}.gcx .main{flex:1;min-width:0;padding:22px 28px 64px}.gcx .wrap{max-width:1280px;margin:0 auto}.gcx .topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.gcx .topbar h2{letter-spacing:-.2px;align-items:center;gap:9px;font-size:21px;font-weight:700;display:flex}.gcx .topbar .sub{color:var(--muted);margin-top:4px;font-size:12.5px}.gcx .topbar-right{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.gcx .back{color:var(--muted);cursor:pointer;align-items:center;gap:5px;margin-bottom:10px;font-size:12.5px;display:inline-flex}.gcx .back:hover{color:var(--brand)}.gcx .card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:16px}.gcx .card-pad{padding:17px 19px}.gcx .sec-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.gcx .sec-head h3{align-items:center;gap:7px;font-size:14px;font-weight:650;display:flex}.gcx .sec-head .hint,.gcx .hint{color:var(--muted);font-size:12px}.gcx .spacer{flex:1}.gcx .btn{border:1px solid var(--line);height:36px;color:var(--sub);cursor:pointer;white-space:nowrap;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;transition:all .16s;display:inline-flex}.gcx .btn:hover{color:var(--ink);background:#f7f9fd;border-color:#dce3ef}.gcx .btn:active{transform:translateY(1px)}.gcx .btn svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.gcx .btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 6px 16px -8px #3a6bffd9}.gcx .btn-primary:hover{color:#fff;background:#2f5cea;border-color:#2f5cea}.gcx .btn-soft{background:var(--soft);color:var(--brand);border-color:#dfe8ff}.gcx .btn-soft:hover{color:var(--brand);background:#e3ebff}.gcx .btn-sm{border-radius:8px;height:30px;padding:0 10px;font-size:12px}.gcx .pill{white-space:nowrap;border-radius:7px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.gcx .pill.blue{background:var(--soft);color:var(--brand)}.gcx .pill.green{background:var(--ok-soft);color:var(--ok)}.gcx .pill.amber{background:var(--warn-soft);color:var(--warn)}.gcx .pill.red{background:var(--danger-soft);color:var(--danger)}.gcx .pill.purple{background:var(--purple-soft);color:var(--purple)}.gcx .pill.teal{background:var(--teal-soft);color:var(--teal)}.gcx .pill.gray{color:#6b7688;background:#f2f4f8}.gcx .stats{grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:15px;display:grid}.gcx .stat{align-items:center;gap:11px;padding:14px 16px;display:flex}.gcx .stat .ic{border-radius:11px;flex:none;place-items:center;width:38px;height:38px;display:grid}.gcx .stat .ic svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.gcx .stat .num{letter-spacing:-.5px;font-size:22px;font-weight:750;line-height:1.15}.gcx .stat .num small{color:var(--muted);margin-left:2px;font-size:12px;font-weight:600}.gcx .stat .lab{color:var(--muted);margin-top:2px;font-size:12px}.gcx .grid{gap:14px;margin-bottom:14px;display:grid}.gcx .g-2{grid-template-columns:1fr 1fr}.gcx .g-14{grid-template-columns:1.35fr 1fr}.gcx .g-41{grid-template-columns:.95fr 1.35fr}.gcx .svg-chart{width:100%;height:auto;display:block;overflow:visible}.gcx .legend{color:var(--sub);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:11.5px;display:flex}.gcx .legend i{border-radius:2px;width:8px;height:8px;margin-right:5px;display:inline-block}.gcx .class-tabs{flex-wrap:wrap;gap:8px;margin-bottom:15px;display:flex}.gcx .class-tab{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:11px;flex-direction:column;gap:1px;min-width:150px;padding:9px 15px;transition:all .16s;display:flex}.gcx .class-tab:hover{border-color:#d5ddeb}.gcx .class-tab b{font-size:13px;font-weight:600}.gcx .class-tab span{color:var(--muted);font-size:11px}.gcx .class-tab.active{background:linear-gradient(#f7f9ff,#eff4ff);border-color:#c9d8ff;box-shadow:0 4px 14px -10px #3a6bffe6}.gcx .class-tab.active b{color:var(--brand)}.gcx .tabs{background:#edf1f8;border-radius:10px;gap:4px;width:fit-content;max-width:100%;padding:3px;display:flex;overflow-x:auto}.gcx .tabs button{color:var(--sub);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:6px 13px;font-size:12.5px;font-weight:500;transition:all .16s}.gcx .tabs button.active{color:var(--ink);background:#fff;font-weight:650;box-shadow:0 1px 3px #1018281a}.gcx .exam-card{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:14px;padding:16px 18px;transition:all .18s;box-shadow:0 1px 2px #10182808}.gcx .exam-card:hover{border-color:#dfe6f2;transform:translateY(-1px);box-shadow:0 12px 28px -20px #10182873}.gcx .exam-card h4{margin-bottom:3px;font-size:14px;font-weight:650}.gcx .exam-card .meta{color:var(--muted);margin-bottom:11px;font-size:11.5px}.gcx .exam-card .nums{flex-wrap:wrap;gap:16px;display:flex}.gcx .exam-card .nums div{color:var(--muted);font-size:11.5px}.gcx .exam-card .nums b{color:var(--ink);letter-spacing:-.3px;font-size:17px;font-weight:700;display:block}.gcx .exam-grid{grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:12px;display:grid}.gcx table{border-collapse:separate;border-spacing:0;width:100%}.gcx th{color:var(--muted);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1;background:#fafbfd;padding:9px 12px;font-size:12px;font-weight:600;position:sticky;top:0}.gcx td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:8px 12px;font-size:13px}.gcx tbody tr:last-child td{border-bottom:none}.gcx tbody tr:hover td{background:#fcfdff}.gcx .table-scroll{overflow-x:auto}.gcx .muted-td{color:var(--muted);font-size:12.5px}.gcx .stu-cell{align-items:center;gap:8px;display:flex}.gcx .stu-cell b{font-size:13px;font-weight:600;display:block}.gcx .stu-cell span{color:var(--muted);font-size:11px}.gcx .score-input{border:1px solid var(--line);width:68px;height:32px;color:var(--ink);text-align:center;background:#fdfeff;border-radius:8px;outline:none;padding:0 8px;font-size:13px;font-weight:600;transition:all .15s}.gcx .score-input:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px #3a6bff1a}.gcx .score-input::placeholder{color:#c8cfdb;font-weight:400}.gcx .diff-up{color:var(--ok);font-size:12.5px;font-weight:650}.gcx .diff-down{color:var(--danger);font-size:12.5px;font-weight:650}.gcx .diff-flat{color:var(--muted);font-size:12.5px}.gcx .rank-badge{width:22px;height:22px;color:var(--muted);background:#f2f5fa;border-radius:7px;place-items:center;font-size:11.5px;font-weight:700;display:grid}.gcx .rank-badge.top{color:#b77a10;background:#fff4dc}.gcx .bar-list{flex-direction:column;gap:11px;display:flex}.gcx .bar-row .top{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px;font-size:12.5px;display:flex}.gcx .bar-row .top b{font-weight:600}.gcx .bar-row .top span{color:var(--muted);font-size:11.5px}.gcx .bar-track{background:#f0f3f8;border-radius:5px;height:8px;overflow:hidden}.gcx .bar-track i{border-radius:5px;height:100%;transition:width .4s;display:block}.gcx .list-row{border-bottom:1px dashed var(--line-2);align-items:center;gap:10px;padding:9px 0;display:flex}.gcx .list-row:last-child{border-bottom:none;padding-bottom:0}.gcx .list-row .txt{flex:1;min-width:0}.gcx .list-row .txt b{font-size:13px;font-weight:600;display:block}.gcx .list-row .txt span{color:var(--muted);font-size:11.5px}.gcx .list-row .val{letter-spacing:-.2px;font-size:14px;font-weight:700}.gcx .link-btn{color:var(--brand);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:2px 0;font-size:12px;font-weight:600}.gcx .link-btn:hover{text-decoration:underline}.gcx .empty{text-align:center;color:var(--muted);background:#fff;border:1px dashed #dde4ef;border-radius:14px;padding:46px 20px}.gcx .empty b{color:var(--ink);margin-bottom:5px;font-size:14px;font-weight:600;display:block}.gcx .empty svg{stroke:#c9d3e3;fill:none;stroke-width:1.4px;width:38px;height:38px;margin-bottom:10px}.gcx .ai-box{color:#33405a;white-space:pre-wrap;background:linear-gradient(#f8faff,#f5f8ff);border:1px solid #e2eaf9;border-radius:13px;max-height:420px;padding:15px 17px;font-size:12.8px;line-height:1.85;overflow:auto}.gcx .ai-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.gcx .ai-badge{color:#fff;background:linear-gradient(120deg,#6c5ce7,#3a6bff);border-radius:7px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.gcx .ai-badge svg{stroke:currentColor;fill:none;stroke-width:2px;width:12px;height:12px}.gcx .paper-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;display:grid}.gcx .paper{border:1px solid var(--line);aspect-ratio:3/4;cursor:pointer;background:#f8fafd;border-radius:10px;place-items:center;display:grid;position:relative;overflow:hidden}.gcx .paper img{object-fit:cover;width:100%;height:100%;display:block}.gcx .paper .ph{color:var(--muted);text-align:center;padding:8px;font-size:11px}.gcx .paper .del{color:#fff;cursor:pointer;background:#1b2233b8;border:none;border-radius:6px;place-items:center;width:22px;height:22px;font-size:11px;line-height:1;display:grid;position:absolute;top:4px;right:4px}.gcx .upload-zone{text-align:center;cursor:pointer;background:#fafcff;border:1.5px dashed #cfd9ea;border-radius:12px;padding:20px;transition:all .16s}.gcx .upload-zone:hover{border-color:var(--brand);background:#f5f8ff}.gcx .upload-zone b{color:var(--ink);margin-bottom:3px;font-size:13px;display:block}.gcx .upload-zone span{color:var(--muted);font-size:11.5px}.gcx .mask{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#161e306b;place-items:center;padding:22px;display:none;position:fixed;inset:0}.gcx .mask.show{animation:.16s fade;display:grid}.gcx .dialog{background:#fff;border-radius:18px;width:680px;max-width:100%;max-height:88vh;animation:.2s cubic-bezier(.2,.8,.3,1) pop;overflow:auto;box-shadow:0 30px 70px -30px #0f172a80}.gcx .dlg-head{border-bottom:1px solid var(--line-2);z-index:2;background:#fff;border-radius:18px 18px 0 0;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 22px 13px;display:flex;position:sticky;top:0}.gcx .dlg-head h3{font-size:16px;font-weight:700}.gcx .dlg-head p{color:var(--muted);margin-top:3px;font-size:12px}.gcx .x-btn{cursor:pointer;width:30px;height:30px;color:var(--sub);background:#f4f6fa;border:none;border-radius:9px;flex:none;place-items:center;font-size:15px;display:grid}.gcx .x-btn:hover{color:var(--ink);background:#e9edf5}.gcx .dlg-body{padding:16px 22px}.gcx .dlg-foot{border-top:1px solid var(--line-2);background:#fff;justify-content:flex-end;gap:9px;padding:13px 22px 19px;display:flex;position:sticky;bottom:0}.gcx .form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.gcx .field{flex-direction:column;gap:6px;display:flex}.gcx .field.full{grid-column:1/-1}.gcx .field label{color:var(--sub);font-size:12px;font-weight:600}.gcx .field input,.gcx .field select{border:1px solid var(--line);height:38px;color:var(--ink);background:#fff;border-radius:10px;outline:none;width:100%;padding:0 11px;font-size:13px}.gcx .field input:focus,.gcx .field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #3a6bff1a}.gcx .subj-row{border-bottom:1px dashed var(--line-2);align-items:center;gap:10px;padding:8px 0;display:flex}.gcx .subj-row:last-child{border-bottom:none}.gcx .subj-row .nm{flex:1;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.gcx .subj-row .nm input{accent-color:#3a6bff;width:15px;height:15px}.gcx .subj-row input[type=number]{border:1px solid var(--line);text-align:center;border-radius:8px;outline:none;width:88px;height:34px;padding:0 10px;font-size:13px}.gcx .toast{color:#fff;opacity:0;pointer-events:none;z-index:90;background:#1b2233;border-radius:11px;align-items:center;gap:8px;max-width:88vw;padding:10px 18px;font-size:13px;font-weight:500;transition:all .25s;display:flex;position:fixed;bottom:34px;left:50%;transform:translate(-50%,20px);box-shadow:0 14px 34px -14px #00000080}.gcx .toast.show{opacity:1;transform:translate(-50%)}.gcx .toast svg{stroke:#4ade80;fill:none;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:15px;height:15px}.gcx .view{animation:.22s viewIn}.gcx .kv-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.gcx .kv{border:1px solid var(--line);border-radius:11px;padding:10px 12px}.gcx .kv .k{color:var(--muted);font-size:11.5px}.gcx .kv .v{letter-spacing:-.4px;margin-top:2px;font-size:17px;font-weight:750}.gcx .kv .v small{color:var(--muted);margin-left:2px;font-size:11.5px;font-weight:600}
.finance-main-tabs,.finance-sub-tabs{background:#fff;border:1px solid #e4e1eb;border-radius:12px;gap:7px;width:max-content;max-width:100%;padding:7px;display:flex;overflow:auto}.finance-main-tabs button,.finance-sub-tabs button{white-space:nowrap;color:#737b89;background:0 0;border:0;border-radius:8px;padding:10px 16px;font-weight:900}.finance-main-tabs button.active,.finance-sub-tabs button.active{color:#fff;background:#6d5dfc}.finance-sub-tabs button.active{color:#6251d1;background:#eeeaff}.finance-filter-line{align-items:center;gap:12px;padding:14px;display:flex}.finance-filter-line input{border:1px solid #dfe3eb;border-radius:8px;width:min(360px,100%);padding:10px}.finance-filter-line span{color:#858c98;font-size:10px}.teacher-standard-form{grid-template-columns:repeat(6,1fr);gap:8px;padding:14px;display:grid}.teacher-standard-form input,.teacher-standard-form select,.teacher-standard-form label,.teacher-standard-form button,.finance-fee-filters input,.finance-fee-filters select,.student-payment-entry input,.student-payment-entry select,.student-payment-entry label,.student-payment-entry button,.expense-apply-form input,.expense-apply-form select{background:#fff;border:1px solid #dfe3eb;border-radius:8px;min-width:0;padding:9px}.teacher-standard-form label,.student-payment-entry label{color:#6251d1;text-align:center;font-size:10px}.teacher-standard-form label input,.student-payment-entry label input{display:none}.teacher-standard-form button,.student-payment-entry button,.expense-apply-form button{color:#fff;background:#6d5dfc;border:0;font-weight:900}.finance-wide-table{overflow:auto}.teacher-standard-row,.teacher-fee-row,.expense-row{border-top:1px solid #eceaf0;align-items:center;gap:8px;min-width:1120px;padding:11px 14px;font-size:10px;display:grid}.teacher-standard-row{grid-template-columns:110px 65px 90px 85px 75px 100px 85px 80px 120px 120px 130px}.teacher-fee-row{grid-template-columns:100px 110px 75px 130px 90px 65px 80px 80px 80px 100px}.expense-row{grid-template-columns:95px 130px 90px 80px 100px 100px 80px 100px 90px 150px}.teacher-standard-row.head,.teacher-fee-row.head,.expense-row.head{color:#8991a2;background:#fafbfe;border:0}.finance-wide-table a,.student-payment-grid a{color:#6251d1;text-decoration:none}.finance-fee-filters{grid-template-columns:repeat(4,1fr);gap:10px;padding:14px;display:grid}.finance-fee-filters label{color:#7b8391;gap:6px;font-size:10px;display:grid}.finance-month-stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.finance-month-stats article{background:#fff;border:1px solid #e4e0eb;border-radius:11px;gap:5px;padding:15px;display:grid}.finance-month-stats span{color:#818996;font-size:10px}.finance-month-stats strong{color:#6251d1;font-size:23px}.student-payment-entry{padding:16px}.student-payment-entry>header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.student-payment-entry h2{margin:0}.student-payment-entry>header input{border:1px solid #dfe3eb;border-radius:8px;padding:9px}.student-payment-entry form{grid-template-columns:1fr 100px 140px 1.5fr 150px 130px;gap:8px;display:grid}.student-payment-grid{grid-template-columns:repeat(2,1fr);gap:11px;display:grid}.student-payment-grid>article{padding:15px}.student-payment-grid>article>header{justify-content:space-between;display:flex}.student-payment-grid header div{gap:4px;display:grid}.student-payment-grid header span,.student-payment-grid>article>p{color:#808895;font-size:10px}.student-payment-grid section{border-top:1px solid #eceaf0;margin-top:9px;padding-top:9px}.student-payment-grid h3{margin:0 0 6px;font-size:12px}.student-payment-grid section div{grid-template-columns:1fr auto auto;gap:8px;padding:5px 0;font-size:10px;display:grid}.student-payment-grid small{color:#9aa1ac}.expense-apply-form{grid-template-columns:repeat(3,1fr);gap:11px;padding:18px;display:grid}.expense-apply-form label{color:#737c89;gap:6px;font-size:10px;display:grid}.expense-apply-form .wide{grid-column:1/-1}.expense-apply-form .wide input{padding:8px}.expense-apply-form button{grid-column:3}.expense-row>div{align-items:center;gap:5px;display:flex}.expense-row button{color:#6251d1;background:#eeeaff;border:0;border-radius:6px;padding:6px}.finance-reimburse-modal{max-width:640px}@media (max-width:950px){.teacher-standard-form{grid-template-columns:repeat(3,1fr)}.student-payment-entry form{grid-template-columns:1fr 1fr 1fr}.student-payment-grid{grid-template-columns:1fr}}@media (max-width:650px){.teacher-standard-form,.finance-fee-filters,.expense-apply-form{grid-template-columns:1fr 1fr}.finance-month-stats{grid-template-columns:1fr}.student-payment-entry>header{flex-direction:column;align-items:flex-start;gap:8px}.student-payment-entry form{grid-template-columns:1fr 1fr}.expense-apply-form .wide,.expense-apply-form button{grid-column:1/-1}}.teacher-standard-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.teacher-standard-toolbar input,.teacher-standard-toolbar select{background:#fff;border:1px solid #dfe2ea;border-radius:8px;min-width:280px;max-width:420px;padding:10px 12px}.teacher-standard-picker{font-size:15px;font-weight:700;min-width:320px!important}.teacher-standard-picker option{color:#1f1f1f;background:#fff;padding:6px;font-size:14px}.teacher-standard-empty{text-align:center;color:#6d7484;padding:48px 20px;font-size:16px;font-weight:700}.teacher-standard-toolbar button{color:#5b49c8;background:#eeeafd;border:0;border-radius:8px;padding:10px 16px;font-weight:800}.teacher-standard-toolbar .standard-save-button{color:#fff;background:#6554d8;min-width:110px;margin-left:auto}.teacher-standard-toolbar .standard-save-button.saved{background:#15936d}.teacher-standard-sheet{background:#fff;border:1px solid #cfd5df}.teacher-standard-sheet .teacher-standard-row{border:0;border-top:1px solid #d9dde5;grid-template-columns:140px 90px 110px 105px 90px 125px 105px 105px 150px 110px 75px;gap:0;min-width:1240px;padding:0}.teacher-standard-sheet .teacher-standard-row>*{min-width:0;height:42px;font:inherit;color:#303846;background:#fff;border:0;border-right:1px solid #d9dde5;border-radius:0;padding:7px 8px}.teacher-standard-sheet .teacher-standard-row.head>*{background:#eef1f5;align-items:center;font-weight:800;display:flex}.teacher-standard-sheet .teacher-standard-row input:focus,.teacher-standard-sheet .teacher-standard-row select:focus{outline-offset:-2px;background:#f8f6ff;outline:2px solid #6554d8}.teacher-standard-sheet .teacher-standard-row .danger{color:#c33;cursor:pointer;background:#fff7f7}.standard-upload-button{color:#5b49c8;cursor:pointer;background:#eeeafd;border:0;border-radius:8px;padding:10px 16px;font-weight:800}.standard-upload-button input{display:none}.teacher-standard-sheet,.teacher-standard-sheet>*{transform:none!important}.teacher-standard-sheet{max-height:min(78vh,920px);padding:0;overflow:auto}.teacher-standard-scroll{min-width:1280px}.teacher-fee-standard-table{border-collapse:collapse;color:#1f1f1f;text-align:center;background:#fff;width:100%;min-width:1280px;font-size:13px}.teacher-fee-standard-table caption{color:#1f1f1f;caption-side:top;background:#fff;padding:10px 0;font-size:22px;font-weight:800}.teacher-fee-standard-table th,.teacher-fee-standard-table td{border:1px solid #7f7f7f;min-width:72px;height:34px;padding:0}.teacher-fee-standard-table thead th{z-index:5;color:#fff;background:#4472c4;padding:8px 6px;font-weight:800;position:sticky;top:0}.teacher-fee-standard-table .std-subhead td{color:#fff;background:#4472c4;padding:7px 6px;font-weight:800}.teacher-fee-standard-table .std-id{color:#fff;background:#70ad47;min-width:88px;padding:6px}.teacher-fee-standard-table .std-type,.teacher-fee-standard-table .std-grade,.teacher-fee-standard-table .std-count,.teacher-fee-standard-table .std-price{background:#ff0;font-weight:700}.teacher-fee-standard-table .std-id input,.teacher-fee-standard-table .std-id select{color:#fff;text-align:center;width:100%;font:inherit;background:0 0;border:0;font-weight:800}.teacher-fee-standard-table .std-id option{color:#1f1f1f}.teacher-fee-standard-table input{text-align:center;width:100%;height:32px;font:inherit;background:0 0;border:0}.teacher-fee-standard-table .std-price input{background:#ff0}.teacher-fee-standard-table .std-actions{background:#fff;min-width:64px}.teacher-fee-standard-table .std-actions .danger{color:#c33;cursor:pointer;background:#fff2f2;border:0;padding:6px 10px;font-weight:800}.teacher-fee-standard-table input:focus,.teacher-fee-standard-table select:focus{outline-offset:-2px;background:#fff;outline:2px solid #2f5597}.teacher-fee-chart{padding:16px}.teacher-fee-chart header,.teacher-fee-details header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.teacher-fee-chart h2,.teacher-fee-details h2{margin:0;font-size:16px}.teacher-fee-chart p{color:#858c98;margin:5px 0 0;font-size:11px}.teacher-fee-details{margin-top:12px;padding:16px}.teacher-fee-details header span{color:#6251d1;font-weight:800}
.fee-type-icons{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.fee-type-icons button{color:#6251d1;cursor:pointer;background:#fff;border:1px solid #e4e0eb;border-radius:16px;justify-items:center;gap:4px;padding:16px 12px;transition:all .15s;display:grid;box-shadow:0 7px 20px #2c24520b}.fee-type-icons button:hover{border-color:#c9c1f2}.fee-type-icons button.active{background:#f5f2ff;border-color:#6554d8;box-shadow:0 10px 24px #6554d826}.fee-type-icons strong{color:#5b49c8;font-size:30px;font-weight:900;line-height:1.1}.fee-type-icons span{color:#3a3750;font-size:13px;font-weight:800}.fee-type-icons small{color:#858c98;font-size:11px}.fee-type-summary{border-top:1px dashed #e2ddf0;margin-top:16px;padding-top:14px}.fee-type-summary>header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px;display:flex}.fee-type-summary h3{color:#3a3552;margin:0;font-size:15px;font-weight:900}.fee-type-summary p{color:#858c98;margin:4px 0 0;font-size:11px}.fee-type-summary>header>b{color:#5b49c8;white-space:nowrap;font-size:20px;font-weight:900}.fee-summary-row{text-align:left;border-top:1px solid #f0eef6;grid-template-columns:110px 90px 90px minmax(240px,1.6fr) 120px;place-items:center start;gap:10px;padding:10px 12px;font-size:12px;display:grid}.fee-summary-row.head{color:#6558d6;background:#f6f4ff;border-top:0;border-radius:10px;font-weight:900}.fee-summary-row strong{color:#332f4a;font-size:13px}.fee-summary-row b{color:#5b49c8;font-weight:900}.fee-summary-row.total{background:#faf8ff;border-radius:10px;margin-top:6px;font-weight:900}.fee-summary-row.total b{font-size:15px}.teacher-fee-row.fee-main-row{text-align:left;grid-template-columns:92px 92px 62px minmax(150px,1.4fr) 78px 58px 72px 72px 68px 84px 104px 96px 84px;justify-items:start;min-width:1180px}.teacher-fee-row.fee-main-row.head{color:#6558d6;background:#f6f4ff;border-top:0;font-size:11px;font-weight:900;position:static}.fee-state{white-space:nowrap;align-items:center;gap:5px;font-size:11px;font-weight:800;display:inline-flex}.fee-state i{color:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-style:normal;display:grid}.fee-state.ok{color:#16875d}.fee-state.ok i{background:#16875d}.fee-state.off{color:#b9605f}.fee-state.off i{background:#c9747a}.fee-feedback-button{color:#5b49c8;cursor:pointer;white-space:nowrap;background:#f4f1ff;border:1px solid #ded9f0;border-radius:8px;padding:6px 12px;font-size:11px;font-weight:800}.fee-feedback-button:hover{background:#eae4ff}.fee-feedback-modal{max-width:min(760px,94vw);max-height:88vh;overflow:auto}.fee-feedback-body{gap:14px;padding:4px 0;display:grid}.fee-feedback-body section{background:#fbfaff;border:1px solid #eceaf4;border-radius:12px;padding:12px 14px}.fee-feedback-body h3{color:#5b49c8;margin:0 0 8px;font-size:14px}.fee-feedback-text{color:#33304a;white-space:pre-wrap;margin:0;font-size:14px;line-height:1.8}.fee-feedback-empty{color:#9290a0;margin:0;font-size:13px}.fee-feedback-students{flex-wrap:wrap;gap:8px;display:flex}.fee-feedback-students em{color:#16875d;background:#eef6f1;border-radius:999px;padding:5px 10px;font-size:12px;font-style:normal;font-weight:800}.fee-feedback-students em.leave{color:#c0564f;background:#fdf0ef}@media (max-width:950px){.fee-type-icons{grid-template-columns:repeat(3,minmax(0,1fr))}.fee-summary-row{grid-template-columns:90px 70px 70px minmax(180px,1.4fr) 96px}}@media (max-width:650px){.fee-type-icons{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fee-type-icons strong{font-size:24px}.fee-summary-row{grid-template-columns:80px 60px 60px minmax(150px,1fr) 90px;padding:9px 8px;font-size:11px}.fee-summary-row.head{font-size:10px}}.teacher-fee-details .teacher-fee-row{text-align:left;grid-template-columns:92px 92px 62px minmax(150px,1.4fr) 78px 58px 72px 72px 68px 84px 104px 96px 84px;justify-items:start;min-width:1180px}.teacher-fee-details .teacher-fee-row.head{color:#6558d6;background:#f6f4ff;font-size:11px;font-weight:900;position:static}.teacher-fee-details{margin-top:16px}.teacher-fee-details>header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px;display:flex}.teacher-fee-details>header h2{color:#3a3552;margin:0;font-size:16px;font-weight:900}.teacher-fee-details>header p{color:#7d8496;flex-wrap:wrap;align-items:center;gap:8px;margin:5px 0 0;font-size:12px;display:flex}.teacher-fee-details>header p b{color:#5b49c8}.fee-detail-reset{color:#5f50d0;cursor:pointer;background:#efedff;border:0;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:800}.finance-fee-filters label{color:#3a3552!important;font-size:16px!important;font-weight:900!important}.finance-fee-filters label input,.finance-fee-filters label select{min-height:44px;color:#2f2b45!important;font-size:16px!important;font-weight:800!important}.data-upload-switch{gap:10px;margin:0 0 12px;display:flex}.data-upload-switch button{color:#5f5a72;cursor:pointer;background:#fff;border:1px solid #e2ddf0;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:800}.data-upload-switch button.active{color:#fff;background:#6554d8;border-color:#6554d8}.fee-summary-row{grid-template-columns:110px 90px 90px minmax(220px,1.4fr) minmax(230px,1.2fr) 120px}.fee-confirm-cell{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.fee-confirm-tag{color:#6b7280;background:#f3f4f8;border-radius:999px;padding:4px 8px;font-size:11px;font-style:normal}.fee-confirm-tag.ok{color:#12795a;background:#e6f8f0}.fee-confirm-tag.asking{color:#a8641c;background:#fff2e2}.fee-confirm-tag.wait{color:#b43f57;background:#fdeef1}.fee-finance-note{resize:vertical;border:1px solid #e6e2f0;border-radius:8px;width:100%;min-height:44px;padding:8px;font-size:12px}.fee-confirm-actions{gap:8px;display:flex}.fee-confirm-actions button{color:#5a4cc4;cursor:pointer;background:#fff;border:1px solid #ddd6f2;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:800}.fee-confirm-actions button.ask{color:#fff;background:#6554d8;border-color:#6554d8}.teacher-confirm-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:14px;display:grid}.teacher-confirm-card{background:#fff;border:1px solid #e8e4f3;border-radius:14px;flex-direction:column;gap:12px;padding:14px;display:flex}.teacher-confirm-card.requested{border-color:#f0a63c;box-shadow:0 8px 20px #f0a63c26}.teacher-confirm-card>header{align-items:center;gap:10px;display:flex}.teacher-confirm-card>header strong{color:#332f4a;font-size:16px}.teacher-confirm-card>header span{color:#858c98;font-size:12px}.teacher-confirm-actions{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.teacher-confirm-actions button{cursor:pointer;color:#fff;background:#6554d8;border:0;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:800}.teacher-confirm-actions button.confirmed{color:#12795a;cursor:default;background:#e6f8f0}.teacher-confirm-actions small{color:#8b93a5;font-size:11px}.teacher-confirm-remark{color:#5f6680;flex-direction:column;gap:6px;font-size:12px;font-weight:700;display:flex}.teacher-confirm-remark textarea{resize:vertical;border:1px solid #e6e2f0;border-radius:8px;min-height:56px;padding:8px;font-size:12px}.teacher-fee-page .teacher-fee-row.fee-main-row{grid-template-columns:92px 92px 62px minmax(150px,1.4fr) 78px 58px 72px 100px 108px 96px 96px;min-width:1120px}.teacher-fee-page .teacher-fee-row.fee-main-row.head{order:-1}.payroll-filters{flex-wrap:wrap;align-items:flex-end;gap:14px;padding:16px 18px;display:flex}.payroll-filters label{color:#3a3552;flex-direction:column;gap:6px;font-size:16px;font-weight:900;display:flex}.payroll-filters select,.payroll-filters input{color:#2f2b45;border:1px solid #dfe2ea;border-radius:10px;min-height:44px;padding:8px 12px;font-size:16px;font-weight:800}.payroll-filters span{color:#7d8496;font-size:13px;font-weight:700}.payroll-table{padding:14px 18px}.payroll-row{border-top:1px solid #f0eef6;grid-template-columns:110px 92px 210px repeat(4,minmax(120px,1fr)) 110px 96px minmax(160px,1.1fr);align-items:center;gap:10px;min-width:1400px;padding:10px 12px;font-size:12px;display:grid}.payroll-row.head{color:#6558d6;background:#f6f4ff;border-top:0;border-radius:10px;font-weight:900}.payroll-row.head span{flex-direction:column;gap:2px;display:flex}.payroll-row.head small{color:#8b93a5;font-size:10px;font-weight:700}.payroll-row>strong{color:#332f4a;font-size:14px}.payroll-type-cell{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.payroll-type-cell small{color:#858c98}.payroll-type-cell em{color:#5b49c8;font-style:normal;font-weight:800}.payroll-total{color:#5b49c8;font-size:14px;font-weight:900}.payroll-status{cursor:pointer;border:0;border-radius:9px;padding:8px 12px;font-size:13px;font-weight:900}.payroll-status.counting{color:#a8641c;background:#fff2e2}.payroll-status.ready{color:#2f6bd1;background:#e8f1ff}.payroll-status.paid{color:#12795a;background:#e6f8f0}.payroll-remark{resize:vertical;border:1px solid #e6e2f0;border-radius:8px;min-height:48px;padding:8px;font-size:12px}
.student-detail-mask{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#f3f2f8!important;place-items:stretch stretch!important;padding:0!important}.student-detail-mask .modal.student-detail-modal.student-detail-reference{background:#f3f2f8;height:100%;margin:0;overflow:auto;width:100%!important;max-width:none!important;max-height:none!important;box-shadow:none!important;border-radius:0!important;padding:0!important}.student-detail-back{color:#6d5dfc;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:18px 28px 10px;font-size:15px;font-weight:800;display:flex}.student-detail-back span{color:#98a0b5;font-weight:700}.student-detail-layout{background:#fff;border:1px solid #e6e2f2;border-radius:18px;grid-template-columns:minmax(380px,420px) minmax(0,1fr);gap:0;min-height:calc(100vh - 86px);margin:0 24px 24px;display:grid;overflow:hidden;box-shadow:0 12px 32px #4a3d8c12}.student-detail-sidebar{background:#fbfaff;border-right:1px solid #eeeaf6;padding:28px 24px}.student-detail-identity{align-items:center;gap:14px;margin-bottom:18px;display:flex}.student-detail-avatar{color:#fff;border-radius:20px;place-items:center;width:62px;height:62px;font-size:24px;font-weight:900;display:grid}.student-detail-identity h2{color:#2d3044;letter-spacing:.02em;margin:0;font-size:24px;line-height:1.35}.student-detail-identity h2 span{color:#9aa0b8;font-size:16px}.student-detail-identity .student-online{margin-top:6px;font-size:13px;font-weight:800;display:inline-block}.student-detail-sidebar>p{color:#4a5066;margin:10px 0;font-size:14px;line-height:1.8}.student-detail-sidebar>p em{color:#6d5dfc;font-style:normal;font-weight:800}.student-vip{color:#5b48c7;background:#eeeaff;border-radius:999px;margin-right:8px;padding:4px 10px;font-size:12px;font-weight:800;display:inline-flex}.student-refund-tag{color:#dc2626;cursor:pointer;background:#fff1f2;border:0;border-radius:999px;margin-left:6px;padding:4px 10px;font-size:12px;font-weight:800}.student-detail-sidebar .secondary{border-radius:10px;margin:10px 8px 0 0}.student-detail-sidebar hr{border:0;border-top:1px dashed #e4e0f2;margin:18px 0}.student-detail-sidebar dl{margin:0;display:block}.student-detail-sidebar dt,.student-detail-sidebar dd{display:inline}.student-detail-sidebar dl{grid-template-columns:120px minmax(0,1fr);gap:0;margin:0;display:grid}.student-detail-sidebar dt,.student-detail-sidebar dd{border-bottom:1px dashed #eceaf3;align-items:flex-start;padding:10px 0;font-size:13px;line-height:1.7;display:flex}.student-detail-sidebar dt{color:#8d93aa;font-weight:700}.student-detail-sidebar dd{color:#2f3348;text-align:right;word-break:break-word;white-space:normal;justify-content:flex-end;margin:0}.student-detail-sidebar>p>b{color:#6b7285;margin-right:6px;font-weight:700}.student-detail-main{background:#fff;flex-direction:column;min-width:0;display:flex}.student-detail-tabs{background:#fff;border-bottom:1px solid #eeeaf6;flex-wrap:wrap;align-items:center;gap:8px;padding:16px 18px 0;display:flex}.student-detail-tabs button{color:#5f6578;white-space:nowrap;cursor:pointer;background:#f3f1fa;border:0;border-radius:999px;flex:none;padding:9px 16px;font-size:13px;font-weight:800;line-height:1.4}.student-detail-tabs button.active{color:#fff;background:#6d5dfc}.student-detail-close{width:34px;height:34px;color:#6d5dfc!important;background:#f3f0ff!important;border-radius:50%!important;margin-left:auto!important;padding:0!important}.student-package-card,.student-detail-board{background:#fbfbfe;border:1px solid #ece9f4;border-radius:16px;margin:18px 20px;padding:18px}.student-package-card header{align-items:center;gap:10px;margin-bottom:14px;display:flex}.package-tag{color:#5b48c7;background:#eeeaff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800}.student-package-card strong{color:#2f3344;font-size:16px}.package-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.package-stat-grid p{color:#4b5166;background:#fff;border:1px solid #eeeaf3;border-radius:12px;margin:0;padding:12px;font-size:13px;line-height:1.6}.package-stat-grid em{color:#6d5dfc;font-style:normal;font-weight:800}.student-package-table{background:#fff;border:1px solid #eeeaf3;border-radius:12px;gap:0;display:grid;overflow:hidden}.student-package-table>div{color:#3c4254;border-bottom:1px solid #f1eef6;grid-template-columns:1.4fr 1.2fr 1.3fr .8fr .8fr;gap:10px;padding:12px 14px;font-size:13px;line-height:1.6;display:grid}.student-package-table>div:first-child{color:#7a7f93;background:#f7f5ff;font-size:12px;font-weight:800}.student-package-table>div:last-child{border-bottom:0}.student-session-grid,.package-session-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.student-detail-tab-empty{color:#8a91a0;text-align:center;margin:24px}@media (max-width:1100px){.student-detail-layout{grid-template-columns:1fr;min-height:auto;margin:0 12px 16px}.student-detail-sidebar{border-bottom:1px solid #eeeaf6;border-right:0}.student-package-table>div{grid-template-columns:1fr 1fr}}.student-detail-board{gap:14px;margin:16px;display:grid}.student-detail-board>header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.student-detail-board>header h3{color:#2d3340;margin:0}.student-detail-board>header p{color:#8a91a0;margin:4px 0 0;font-size:12px}.student-enrolled-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.student-enrolled-grid article{background:#fbfbfe;border:1px solid #e8ebf0;border-radius:12px;padding:14px}.student-enrolled-grid strong{color:#2f3542;margin-bottom:8px;display:block}.student-enrolled-grid p{color:#5b6372;margin:4px 0;font-size:13px}.student-feedback-range{gap:10px;display:flex}.student-feedback-range label{color:#6b7280;gap:4px;font-size:12px;display:grid}.student-feedback-range input,.student-feedback-range select{background:#fff;border:1px solid #dfe3eb;border-radius:8px;min-width:140px;padding:8px}.student-feedback-card{border:1px solid #e8ebf0;border-radius:12px;padding:14px}.student-feedback-card>div{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:10px;display:flex}.student-feedback-card span{color:#8a91a0;font-size:12px}.student-feedback-card pre{white-space:pre-wrap;font:inherit;color:#3c4350;margin:0;line-height:1.7}.student-growth-form{border:1px solid #e8ebf0;border-radius:12px;grid-template-columns:1fr 1fr;gap:12px;padding:14px;display:grid}.student-growth-form .wide{grid-column:1/-1}.student-growth-form label{color:#667085;gap:6px;font-size:12px;display:grid}.student-growth-form input,.student-growth-form select,.student-growth-form textarea{font:inherit;border:1px solid #dfe3eb;border-radius:8px;padding:9px}.student-growth-form textarea{min-height:88px}.student-growth-form button{color:#fff;background:#6d5dfc;border:0;border-radius:8px;justify-self:end;padding:10px 16px;font-weight:800}.student-growth-tree{gap:10px;display:grid}.growth-tree-node{text-align:left;color:#5b48c7;background:#f6f3ff;border:1px solid #ece4ff;border-radius:10px;width:100%;padding:10px 12px;font-weight:800}.growth-tree-node small{color:#8b82b3;margin-left:8px;font-weight:700}.student-growth-tree article{border-left:3px solid #d9d1ff;margin-left:18px;padding:8px 12px}.student-growth-tree article b{color:#6558d6}.student-growth-tree article p{color:#4b5563;margin:6px 0}.student-growth-tree article button,.student-growth-form label button{color:#584bc4;background:#eeeaff;border:0;border-radius:8px;padding:6px 10px}.student-level-card{background:#f8f6ff;border:1px solid #ece4ff;border-radius:16px;padding:24px}.student-level-card b{color:#5b48c7;font-size:28px}.student-level-card p{color:#4b5563;margin:10px 0 6px}.student-level-card small{color:#8a91a0}.consumption-sign-list{gap:8px;padding:0 18px 18px;display:grid}.consumption-sign-list article{border:1px solid #eeeaf3;border-radius:10px;grid-template-columns:88px 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.consumption-sign-list time{color:#8a91a0;font-size:12px}.consumption-sign-list b.signed{color:#16805d}.consumption-sign-list b.unsigned{color:#c44c5a}.wallet-note{color:#667085;margin:0 0 8px}.package-session-grid{margin:16px 0 0;padding:0}.urgency-tag{border-radius:999px;align-items:center;padding:5px 9px;font-size:11px;font-style:normal;font-weight:800;display:inline-flex}.urgency-非常紧急{color:#c43b4c;background:#fff0f1}.urgency-较紧急{color:#c36b12;background:#fff4e5}.urgency-正常维护{color:#16805d;background:#e9f8f1}.urgency-待维护{color:#6b7280;background:#f0f2f6}.maintenance-level-cell{align-items:flex-start}@media (max-width:700px){.student-growth-form,.consumption-sign-list article{grid-template-columns:1fr}}.modal.student-detail-modal.student-detail-reference{border-radius:18px;overflow:auto;width:min(1180px,96vw)!important;max-width:1180px!important;max-height:92vh!important;padding:0!important}.modal.student-detail-modal.student-detail-reference .student-detail-layout{border:0;border-radius:0;margin:0 0 12px}.student-handover-entry{flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0 4px;display:flex}.student-handover-entry .student-handover-button{color:#fff;cursor:pointer;background:#6554d8;border:0;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:800}.student-handover-entry .student-handover-button:disabled{color:#9a93bd;cursor:not-allowed;background:#e9e7f6}.student-handover-entry small{color:#8b93a5;font-size:13px}.package-stat-grid .package-remaining{flex-direction:column;align-items:flex-start;gap:8px;display:flex!important}.package-stat-grid .package-remaining .student-handover-entry{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.package-stat-grid .package-remaining .student-handover-entry small{color:#9a93bd;font-size:11px}.package-stat-grid .package-remaining-text{display:block}
