:root{--blue: #2563eb;--blue-dark: #1d4ed8;--mint: #0f9d8a;--purple: #7c3aed;--ink: #172033;--muted: #64748b;--line: #e2e8f0;--canvas: #f6f8fc;--card: #ffffff;--danger: #ef4444;--warning: #f59e0b;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--canvas);font-size:18px}button,input,select{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,.95fr) minmax(420px,1.05fr);background:#fff}.brand-panel{position:relative;overflow:hidden;padding:56px clamp(32px,7vw,96px);color:#fff;background:linear-gradient(145deg,#1d4ed8,#2563eb 52%,#7c3aed)}.brand-panel:before,.brand-panel:after{content:"";position:absolute;border-radius:50%;background:#ffffff1a}.brand-panel:before{width:360px;height:360px;right:-130px;top:14%}.brand-panel:after{width:220px;height:220px;left:-110px;bottom:10%}.brand-content{position:relative;z-index:1;max-width:460px;height:100%;display:flex;flex-direction:column;justify-content:space-between}.brand-mark{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.02em}.mark-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:#ffffff2e;font-size:21px}.brand-copy{margin:auto 0;padding:48px 0}.brand-copy h1{max-width:420px;margin:0 0 18px;font-size:clamp(34px,4vw,58px);line-height:1.12;letter-spacing:-.04em}.brand-copy p{max-width:380px;margin:0;color:#ffffffc7;font-size:16px;line-height:1.8}.brand-points{display:flex;gap:22px;color:#ffffffd1;font-size:13px}.brand-points span:before{content:"✓";margin-right:7px;color:#a7f3d0;font-weight:800}.login-panel{display:grid;place-items:center;padding:54px}.login-card{width:min(100%,620px);padding:32px;border-radius:28px}.eyebrow{color:var(--blue);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.login-card h2{margin:10px 0;font-size:36px;letter-spacing:-.03em}.login-card .intro{max-width:520px;margin:0 0 34px;color:var(--muted);line-height:1.7;font-size:19px}.field{display:grid;gap:12px;margin-bottom:24px;max-width:520px}.field label{color:#334155;font-size:16px;font-weight:700}.input,.select{width:100%;border:1px solid var(--line);border-radius:18px;padding:17px 20px;outline:none;color:var(--ink);background:#fff;transition:.18s;font-size:18px}.input:focus,.select:focus{border-color:var(--blue);box-shadow:0 0 0 4px #2563eb1a}.login-button,.primary-button{width:100%;max-width:520px;border:0;border-radius:18px;padding:18px 22px;color:#fff;font-weight:800;background:var(--blue);box-shadow:0 8px 18px #2563eb33;transition:.18s;font-size:18px}.login-button:hover,.primary-button:hover{background:var(--blue-dark);transform:translateY(-1px)}.demo-hint{margin-top:20px;padding:13px 14px;border-radius:12px;color:#475569;background:#eff6ff;font-size:13px;line-height:1.6}.auth-links button{padding:0;border:0;color:var(--blue);background:transparent;font-size:15px;font-weight:800}.form-grid .field{min-width:0}.app-shell{display:none;min-height:100vh}.app-shell.active{display:flex}.sidebar{width:248px;flex:0 0 248px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:#fff}.sidebar-header{padding:24px 22px 28px}.sidebar .mark-icon{color:#fff;background:linear-gradient(135deg,var(--blue),var(--purple))}.role-chip{display:inline-flex;margin-top:15px;padding:6px 10px;border:0;border-radius:999px;color:var(--blue);background:#eff6ff;font-size:13px;font-weight:800;cursor:pointer}.nav{display:grid;gap:5px;padding:0 12px}.nav-button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 13px;border:0;border-radius:11px;color:var(--muted);background:transparent;text-align:left;font-size:16px;font-weight:700}.nav-button:hover{color:var(--blue);background:#f8faff}.nav-button.active{color:var(--blue);background:#eff6ff}.nav-icon{width:20px;text-align:center;font-size:17px}.sidebar-footer{margin-top:auto;padding:18px;border-top:1px solid var(--line)}.user-mini{display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;color:var(--blue);background:#dbeafe;font-weight:900}.user-mini strong{display:block;font-size:14px}.user-mini small{color:var(--muted);font-size:12px}.logout{margin-top:14px;border:0;color:var(--muted);background:transparent;font-size:13px}.main{min-width:0;flex:1}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--line);background:#ffffffd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar h2{margin:0;font-size:21px;letter-spacing:-.02em}.top-actions{display:flex;align-items:center;gap:14px}.date-label{color:var(--muted);font-size:13px}.icon-button{width:36px;height:36px;border:1px solid var(--line);border-radius:11px;color:var(--muted);background:#fff}.content{max-width:1440px;margin:0 auto;padding:32px 34px 48px}.page-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.page-head h1{margin:7px 0 0;font-size:34px;letter-spacing:-.04em}.page-head p{margin:8px 0 0;color:var(--muted);font-size:16px}.page-head .primary-button{width:auto;padding:11px 16px;box-shadow:none}.grid{display:grid;gap:18px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card,.panel{border:1px solid var(--line);border-radius:16px;background:var(--card)}.stat-card{padding:20px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px;font-weight:700}.stat-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:var(--blue);background:#eff6ff}.stat-value{margin:17px 0 7px;font-size:34px;font-weight:850;letter-spacing:-.05em}.stat-trend{color:var(--mint);font-size:13px;font-weight:800}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);margin-top:18px}.panel{padding:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.panel-title{margin:0;font-size:18px}.panel-subtitle,.panel-link{color:var(--muted);font-size:15px}.panel-link{color:var(--blue);border:0;background:transparent;font-weight:700}.chart{height:250px;position:relative;overflow:hidden;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#fff)}.chart-grid{position:absolute;inset:18px 14px 31px;display:flex;flex-direction:column;justify-content:space-between}.chart-grid span{display:block;border-top:1px dashed #dbe5f2}.chart-svg{position:absolute;inset:20px 14px 30px;width:calc(100% - 28px);height:calc(100% - 50px);overflow:visible}.chart-labels{position:absolute;bottom:9px;left:15px;right:15px;display:flex;justify-content:space-between;color:#94a3b8;font-size:11px}.chart-legend{display:flex;gap:14px;color:var(--muted);font-size:12px}.dot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:var(--blue)}.dot.mint{background:var(--mint)}.score-list{display:grid;gap:17px}.score-row{display:grid;grid-template-columns:70px 1fr 42px;align-items:center;gap:12px;font-size:13px}.score-name{color:#475569;font-weight:700}.bar{height:8px;overflow:hidden;border-radius:99px;background:#eef2f7}.bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),#60a5fa)}.score-row strong{text-align:right;font-size:13px}.activity-list{display:grid;gap:15px}.activity{display:flex;gap:11px;align-items:flex-start}.activity-bullet{width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px #dff8f3}.activity p{margin:0;font-size:12px;line-height:1.5}.activity small{color:#94a3b8;font-size:11px}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.filters .select,.filters .input{width:auto;min-width:150px;padding:10px 12px;font-size:13px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:13px}table{width:100%;min-width:680px;border-collapse:collapse;font-size:15px}th,td{padding:15px 16px;border-bottom:1px solid #edf1f6;text-align:left;white-space:nowrap;font-size:15px}th{color:var(--muted);background:#f8fafc;font-size:13px;font-weight:800}tr:last-child td{border-bottom:0}.student-cell{display:flex;align-items:center;gap:9px}.student-cell .avatar{width:28px;height:28px;border-radius:9px;font-size:11px}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:800}.badge.success{color:#047857;background:#d1fae5}.badge.warning{color:#b45309;background:#fef3c7}.badge.neutral{color:#475569;background:#f1f5f9}.chart-large{height:350px}.analysis-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.analysis-number{margin:12px 0 4px;font-size:30px;font-weight:850;letter-spacing:-.05em}.analysis-note{color:var(--muted);font-size:13px}.donut{width:154px;height:154px;margin:16px auto 20px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--blue) 0 68%,#60a5fa 68% 84%,#c4b5fd 84% 94%,#e2e8f0 94% 100%)}.donut:after{content:"68%";width:94px;height:94px;display:grid;place-items:center;border-radius:50%;color:var(--ink);background:#fff;font-size:24px;font-weight:850}.legend-list{display:grid;gap:9px;font-size:13px}.legend-row{display:flex;justify-content:space-between;color:var(--muted)}.legend-row i{width:8px;height:8px;display:inline-block;margin-right:7px;border-radius:3px;background:var(--blue)}.legend-row:nth-child(2) i{background:#60a5fa}.legend-row:nth-child(3) i{background:#c4b5fd}.legend-row:nth-child(4) i{background:#e2e8f0}.empty{padding:70px 20px;color:var(--muted);text-align:center;font-size:15px}@media(max-width:980px){.login-shell{grid-template-columns:1fr}.brand-panel{min-height:340px;padding:34px}.brand-copy{margin:40px 0 0;padding:0}.brand-copy h1{font-size:38px}.brand-points{margin-top:28px}.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.analysis-grid{grid-template-columns:1fr}}@media(max-width:700px){.sidebar{width:72px;flex-basis:72px}.sidebar-header{padding:20px 14px}.sidebar .brand-mark span,.role-chip,.nav-button span:not(.nav-icon),.sidebar-footer .user-mini>div,.logout{display:none}.sidebar-header .brand-mark{justify-content:center}.nav{padding:0 10px}.nav-button{justify-content:center;padding:12px 8px}.sidebar-footer{padding:14px 10px}.user-mini{justify-content:center}.topbar{padding:0 18px}.date-label{display:none}.content{padding:24px 18px 36px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:28px}.page-head .primary-button{width:100%}}.teacher-shell .chart{height:380px;overflow:visible;padding-left:34px;padding-bottom:18px}.teacher-shell .chart-axis-y{position:absolute;z-index:2;top:20px;bottom:30px;left:6px;display:flex;flex-direction:column;justify-content:space-between;color:#718096;font-size:12px;line-height:1}.teacher-shell .chart-axis-y-title{position:absolute;top:7px;left:8px;color:#536579;font-size:12px;font-weight:700;writing-mode:vertical-rl}.teacher-shell .chart-axis-x-title{position:absolute;bottom:1px;left:50%;color:#536579;font-size:12px;font-weight:700;transform:translate(-50%)}.teacher-shell .chart-labels{left:49px;right:15px;bottom:25px;font-size:12px}.teacher-shell .activity p{font-size:16px;line-height:1.5}.teacher-shell .activity small{display:block;margin-top:4px;font-size:14px;line-height:1.45}body{transition:background-color .2s ease,color .2s ease}.five-stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.analysis-decision-panel,.analysis-visual-card{margin-top:18px;border:1px solid #dbe5ee;border-radius:8px;background:#fff}.analysis-decision-panel{padding:24px}.analysis-decision-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.analysis-decision-head h3{margin:10px 0 6px;color:#1f3348;font-size:25px}.analysis-decision-head p{max-width:880px;margin:0;color:#526579;font-size:17px;line-height:1.7}.analysis-decision-head>span{color:#718096;font-size:16px;white-space:nowrap}.analysis-findings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.analysis-findings-grid article{min-height:144px;padding:18px;border-left:4px solid #2d83c5;background:#f6faff}.analysis-findings-grid article:nth-child(2){border-left-color:#159b70;background:#f2fbf7}.analysis-findings-grid article:nth-child(3){border-left-color:#e38b25;background:#fffaf2}.analysis-findings-grid span{display:block;color:#718096;font-size:16px}.analysis-findings-grid strong{display:block;margin-top:8px;color:#21364c;font-size:23px}.analysis-findings-grid p{margin:9px 0 0;color:#536579;font-size:17px;line-height:1.65}.analysis-visual-grid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:18px}.analysis-visual-card{min-width:0;padding:22px;margin-top:0}.analysis-visual-card h3{margin:0;color:#24384d;font-size:22px}.analysis-visual-card p{margin:5px 0 0;color:#718096;font-size:16px}.distribution-chart{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;margin-top:44px}.distribution-axis-y{position:relative;height:300px;border-right:1px solid #aebdca;color:#718096;font-size:13px}.distribution-axis-title{position:absolute;top:-30px;left:0;color:#536579;font-size:16px;font-weight:800}.distribution-y-tick{position:absolute;right:8px;transform:translateY(-50%);white-space:nowrap}.distribution-plot-area{min-width:0}.distribution-plot-stage{position:relative;height:300px;border-bottom:1px solid #aebdca}.distribution-gridlines{position:absolute;z-index:0;inset:0;pointer-events:none}.distribution-gridline{position:absolute;right:0;left:0;border-top:1px solid #e2eaf1}.distribution-bars{position:absolute;z-index:1;inset:0 12px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.distribution-bar{min-width:0;display:flex;flex-direction:column}.distribution-bar-stage{position:relative;min-height:0;height:100%;display:flex;align-items:flex-end;justify-content:center}.distribution-bar strong{position:absolute;left:50%;color:#34495e;font-size:18px;line-height:1;transform:translate(-50%,-100%)}.distribution-column{width:min(68px,72%);min-height:0;align-self:end;border-radius:5px 5px 0 0;background:#4f91c5}.distribution-column.excellent{background:#1da875}.distribution-column.good{background:#58b897}.distribution-column.pass{background:#5d9dcc}.distribution-column.borderline{background:#e5a640}.distribution-column.attention{background:#dc6262}.distribution-axis-x{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;padding:10px 12px 0;text-align:center}.distribution-axis-x>div{display:grid;gap:5px;min-width:0}.distribution-axis-x strong{color:#465a70;font-size:16px}.distribution-axis-x span{color:#718096;font-size:15px;white-space:nowrap}.distribution-axis-x-title{margin-top:14px;color:#536579;font-size:16px;font-weight:800;text-align:center}.distribution-analysis{margin:20px 8px 0;padding-top:16px;border-top:1px solid #e2eaf1;color:#536579;font-size:16px;line-height:1.7}.subject-health-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.subject-health-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 16px;color:#536579;font-size:14px}.subject-health-legend span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.subject-health-legend i{width:18px;height:7px;border-radius:999px}.subject-health-list{display:grid;gap:14px;margin-top:20px}.subject-health-row{display:grid;grid-template-columns:72px minmax(180px,1fr) 104px;align-items:center;gap:14px;color:#465a70;font-size:16px}.subject-health-name{color:#2d4054;font-size:17px}.subject-health-bars{min-width:0}.subject-health-comparison{display:grid;grid-template-columns:minmax(100px,1fr) 48px;align-items:center;gap:10px}.subject-health-comparison-values{display:grid;grid-template-rows:repeat(2,1fr);gap:7px}.subject-health-comparison-values b{color:#2d4054;font-size:15px;font-variant-numeric:tabular-nums;line-height:10px;text-align:right}.subject-health-ghost-track{position:relative;height:30px;overflow:hidden;border-radius:7px;background:#edf2f6}.subject-health-ghost-track.is-grade-summary i.class-average{top:0;height:30px;border-radius:7px;background:#3f7fdb}.subject-health-ghost-track i{position:absolute;left:0;display:block;height:7px;border-radius:0 999px 999px 0}.subject-health-ghost-track i.class-average{top:0;height:15px;border-radius:0;background:#3f7fdb}.subject-health-ghost-track i.grade-average{bottom:0;height:15px;border-radius:0;background:#e4a052}.subject-health-legend i.class-average{background:#2f80ed}.subject-health-legend i.grade-average{background:#f2994a}.subject-health-rank{display:grid;gap:4px;justify-items:end;text-align:right;white-space:nowrap}.subject-health-rank strong{color:#2d4054;font-size:15px}.subject-health-rank small{color:#718096;font-size:13px}.analysis-details{margin-top:18px;border:1px solid #dbe5ee;border-radius:8px;background:#fff}.analysis-details>summary{padding:16px 20px;color:#2b5d86;font-size:15px;font-weight:700;cursor:pointer}.analysis-details[open]>summary{border-bottom:1px solid #e4eaf0}.analysis-details .panel{margin:0;border:0;box-shadow:none}@media(max-width:1180px){.five-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.parent-score-filters .select,.parent-score-filters .parent-current-total{grid-column:1;justify-self:stretch;margin-left:0}.five-stats-grid{grid-template-columns:1fr}.analysis-decision-panel{padding:18px}.analysis-decision-head{flex-direction:column}.analysis-decision-head>span{white-space:normal}.analysis-findings-grid,.analysis-visual-grid{grid-template-columns:1fr}.subject-health-heading{flex-direction:column}.subject-health-legend{justify-content:flex-start}.subject-health-row{grid-template-columns:58px minmax(150px,1fr)}.subject-health-rank{grid-column:2;justify-items:start;text-align:left}}body[data-theme=dark]{--bg: #1f1f1f;--panel: #242424;--card: #262626;--line: #343434;--text: #f2f2f2;--muted: #b0b0b0;--blue: #dedede;--blue-dark: #c8c8c8;--mint: #d2d2d2;--danger: #f87171;--purple: #2b2b2b;background:#1f1f1f;color:var(--text)}body[data-theme=dark] .app-shell,body[data-theme=dark] .login-shell{background:#252525;color:var(--text)}body[data-theme=dark] .login-shell,body[data-theme=dark] .login-panel,body[data-theme=dark] .brand-panel{background:#252525}body[data-theme=dark] .brand-panel:before,body[data-theme=dark] .brand-panel:after{background:#ffffff05}body[data-theme=dark] .brand-mark,body[data-theme=dark] .sidebar .brand-mark{color:#fff}body[data-theme=dark] .sidebar .mark-icon{color:#fff;background:linear-gradient(135deg,#343434,#262626)}body[data-theme=dark] .sidebar,body[data-theme=dark] .main,body[data-theme=dark] .login-card,body[data-theme=dark] .brand-panel,body[data-theme=dark] .panel,body[data-theme=dark] .stat-card,body[data-theme=dark] .activity,body[data-theme=dark] .subject-card{background:#1b1b1b;color:var(--text);border-color:var(--line);box-shadow:0 18px 52px #00000057}body[data-theme=dark] .topbar,body[data-theme=dark] .page-head,body[data-theme=dark] .sidebar-header,body[data-theme=dark] .sidebar-footer{color:var(--text)}body[data-theme=dark] .sidebar{background:#252525;border-right-color:#ffffff0f}body[data-theme=dark] .sidebar-header,body[data-theme=dark] .sidebar-footer{background:#252525}body[data-theme=dark] .role-chip{background:#ffffff0f;color:#f5f5f5}body[data-theme=dark] .nav-button{color:#d6dbe3}body[data-theme=dark] .nav-button:hover{background:#ffffff0d;color:#fff}body[data-theme=dark] .topbar{background:#252525;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom-color:#ffffff14}body[data-theme=dark] .content{background:transparent}body[data-theme=dark] .page-head h1,body[data-theme=dark] .topbar h2{color:#f3f7ff;line-height:1.2}body[data-theme=dark] .nav-button,body[data-theme=dark] .logout,body[data-theme=dark] .icon-button,body[data-theme=dark] .password-toggle,body[data-theme=dark] .captcha-image,body[data-theme=dark] .captcha-loading,body[data-theme=dark] .sms-button,body[data-theme=dark] .primary-button,body[data-theme=dark] .row-actions button{background:#2b2b2b;color:var(--text);border-color:var(--line)}body[data-theme=dark] .login-button{background:#3b82f6;color:#fff;box-shadow:0 8px 18px #3b82f63d}body[data-theme=dark] .login-button:hover{background:#2563eb}body[data-theme=dark] .icon-button{background:#2b2b2b}body[data-theme=dark] .nav-button:hover,body[data-theme=dark] .logout:hover,body[data-theme=dark] .icon-button:hover,body[data-theme=dark] .password-toggle:hover,body[data-theme=dark] .captcha-loading:hover,body[data-theme=dark] .sms-button:hover,body[data-theme=dark] .primary-button:hover,body[data-theme=dark] .row-actions button:hover{background:#343434}body[data-theme=dark] .nav-button.active{background:#ffffff14;color:#eef5ff;box-shadow:inset 0 0 0 1px #ffffff1f}body[data-theme=dark] .input,body[data-theme=dark] .select{background:#2b2b2b;color:var(--text);border-color:var(--line);line-height:1.25}body[data-theme=dark] .input::placeholder{color:#71819e}body[data-theme=dark] .table-wrap,body[data-theme=dark] .chart,body[data-theme=dark] .empty-state{background:transparent}body[data-theme=dark] .table-wrap table th,body[data-theme=dark] .table-wrap table td{background:#242424;color:var(--text);border-color:var(--line);line-height:1.35}body[data-theme=dark] .table-wrap table thead th{background:#2f2f2f}body[data-theme=dark] .badge.success{background:#34d39926;color:#6ee7b7}body[data-theme=dark] .badge.warning{background:#fbbf2429;color:#fbbf24}body[data-theme=dark] .badge.neutral{background:#94a3b829;color:#cbd5e1}body[data-theme=dark] .auth-error{background:#7f1d1d73;color:#fecaca;border-color:#f8717166}body[data-theme=dark] .binding-success{background:#065f4673;color:#a7f3d0;border-color:#34d39959}body[data-theme=dark] .role-chip{background:#ffffff12;color:#e5e7eb}body[data-theme=dark] .demo-hint{color:#a7b4c8}body[data-theme=dark] .password-toggle{color:#f3f3f3;background:#272727}body[data-theme=dark] .password-toggle:hover{background:#303030}body[data-theme=dark] .captcha-image,body[data-theme=dark] .captcha-loading{background:#272727}body[data-theme=dark] .captcha-loading{color:#f3f3f3}body[data-theme=dark] .theme-toggle{width:40px;font-size:16px}body[data-theme=dark] .chart{background:linear-gradient(180deg,#242424f5,#1b1b1bf5)}body[data-theme=dark] .chart-grid span{border-top-color:#94a3b81f}body[data-theme=dark] .score-name,body[data-theme=dark] .activity small,body[data-theme=dark] .panel-subtitle,body[data-theme=dark] .page-head p,body[data-theme=dark] .date-label{color:var(--muted)}body[data-theme=dark] .demo-hint{background:#242424b8;border:1px solid rgba(255,255,255,.08)}body[data-theme=dark] .empty-state{background:#2424249e;border:1px solid rgba(255,255,255,.08)}body[data-theme=dark] .stat-icon{background:#ffffff14;color:#f1f5f9}body[data-theme=dark] .activity-bullet{box-shadow:0 0 0 4px #35d0a01f}body[data-theme=dark] .bar{background:#ffffff1a}body[data-theme=dark] .donut:after{background:#151922;color:var(--text)}body[data-theme=dark] .brand-copy h1,body[data-theme=dark] .login-card h2,body[data-theme=dark] .panel-title,body[data-theme=dark] .stat-value,body[data-theme=dark] .analysis-number,body[data-theme=dark] .subject-card strong{line-height:1.25}body[data-theme=dark] .brand-copy p,body[data-theme=dark] .login-card .intro,body[data-theme=dark] .panel-subtitle,body[data-theme=dark] .page-head p,body[data-theme=dark] .activity p,body[data-theme=dark] td,body[data-theme=dark] th,body[data-theme=dark] .field label,body[data-theme=dark] .auth-links button,body[data-theme=dark] .logout,body[data-theme=dark] .date-label{line-height:1.45}body[data-theme=dark] .brand-points,body[data-theme=dark] .role-chip,body[data-theme=dark] .badge,body[data-theme=dark] .stat-top,body[data-theme=dark] .panel-link{letter-spacing:0}body[data-theme=dark] .brand-copy h1,body[data-theme=dark] .brand-copy p,body[data-theme=dark] .brand-points{color:#f5f5f5}body[data-theme=dark] .brand-points span:before{color:#fff}body[data-theme=dark] .login-card,body[data-theme=dark] .panel,body[data-theme=dark] .stat-card,body[data-theme=dark] .activity,body[data-theme=dark] .subject-card{background:#1b1b1b}body[data-theme=dark] .login-card{border-radius:28px}body[data-theme=dark] .main{background:#252525}body[data-theme=dark] .top-actions .avatar,body[data-theme=dark] .user-mini .avatar{background:#2b2b2b;color:#fff}body[data-theme=dark] .eyebrow,body[data-theme=dark] .login-card h2,body[data-theme=dark] .login-card .intro,body[data-theme=dark] .field label{color:#f5f5f5}body[data-theme=dark] .login-card .intro,body[data-theme=dark] .page-head p,body[data-theme=dark] .panel-subtitle,body[data-theme=dark] .date-label,body[data-theme=dark] .demo-hint,body[data-theme=dark] .activity small{color:#d0d0d0}.role-chip{font-family:inherit}.auth-links{display:flex;justify-content:center;gap:18px;margin-top:18px}.auth-links button{display:inline-flex;min-height:44px;padding:10px 4px;align-items:center;justify-content:center;border:0;color:var(--blue);background:transparent;font-size:12px;font-weight:800}.exam-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:18px;padding:6px;border:1px solid var(--line);border-radius:16px;background:#f8fafc}.exam-tabs button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:9px;border:0;border-radius:12px;color:var(--muted);background:transparent;font-weight:800}.exam-tabs button span{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:50%;color:#475569;background:#e2e8f0;font-size:12px}.exam-tabs button.active{color:#fff;background:var(--blue);box-shadow:0 8px 18px #2563eb33}.exam-tabs button.active span{color:var(--blue);background:#fff}.form-note{margin:14px 0 10px;color:var(--muted);font-size:13px;line-height:1.6}.subject-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:12px 0 18px}.subject-options.compact{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.subject-option{display:flex;min-height:64px;padding:12px 14px;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;color:var(--text);background:#fff;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.subject-option:hover{border-color:#93c5fd;background:#f8fbff}.subject-option:has(input:checked){border-color:var(--blue);background:#eff6ff;box-shadow:inset 0 0 0 1px var(--blue)}.subject-option:has(input:disabled){cursor:not-allowed;opacity:.65}.subject-option input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--blue)}.subject-option-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}.subject-option-copy strong{font-size:14px}.subject-option-copy small{color:var(--muted);font-size:12px}.subject-option-state{min-width:38px;color:var(--muted);text-align:right;font-size:11px;font-weight:800}.subject-option-state:after{content:"未选"}.subject-option:has(input:checked) .subject-option-state{color:var(--blue)}.subject-option:has(input:checked) .subject-option-state:after{content:"已选"}.impact-notice{display:flex;margin-top:14px;padding:13px 15px;gap:5px;flex-direction:column;border:1px solid #fde68a;border-radius:12px;color:#854d0e;background:#fffbeb;font-size:13px;line-height:1.6}.impact-notice.danger{border-color:#fecaca;color:#991b1b;background:#fef2f2}.review-sheet-toolbar{display:flex;margin-bottom:14px;align-items:center;flex-wrap:wrap;gap:10px}.review-sheet-table{margin-top:16px}.review-sheet-table th,.review-sheet-table td{text-align:center;vertical-align:middle}.review-sheet-table th:first-child,.review-sheet-table td:first-child,.review-sheet-table th:nth-child(2),.review-sheet-table td:nth-child(2){text-align:left}.review-score-input{width:88px;min-height:40px;padding:7px 8px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:#fff;text-align:center;font:inherit;font-weight:800}.review-score-input:focus{outline:2px solid #93c5fd;border-color:var(--blue)}.review-score-input:disabled{color:var(--muted);background:#f1f5f9}.review-absence{display:inline-flex;min-height:40px;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.review-absence input{width:18px;height:18px;accent-color:var(--danger)}.review-sheet-actions{display:flex;margin-top:18px;justify-content:flex-end;flex-wrap:wrap;gap:10px}.sms-button.danger-button{background:var(--danger);color:#fff}.progress-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.progress-filter{display:flex;min-width:0;flex-direction:column;gap:7px}.progress-filter>span{color:var(--muted);font-size:12px;font-weight:800}.progress-filter .select{width:100%;min-width:0}.progress-filter-actions{display:flex;margin:12px 0 18px;justify-content:flex-start}.progress-table{min-width:0;table-layout:fixed}.progress-table th:first-child{width:24%}.progress-table th:nth-child(2){width:24%}.progress-table th:nth-child(3){width:28%}.progress-table th:last-child{width:24%}.table-wrap .progress-table th,.table-wrap .progress-table td{min-width:0}.table-wrap table.progress-table td:last-child{min-width:0}.progress-table td:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-table td:nth-child(3) small{display:block;margin-top:5px;color:var(--muted)}.progress-table td:last-child button{width:auto}.exam-progress-command-bar{display:flex;margin:16px 0;padding:14px 16px;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.exam-progress-command-bar>div:first-child{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 10px}.exam-progress-command-bar>div:first-child small{grid-column:2;color:var(--muted)}body[data-theme=dark] .exam-progress-command-bar{background:#111827}.plan-selector{width:auto;min-width:220px}.year-plan-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:16px 0}.year-plan-summary>div{display:flex;min-width:0;padding:14px;gap:6px;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.year-plan-summary span{color:var(--muted);font-size:11px;font-weight:800}.year-plan-summary strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.year-plan-steps{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:18px 0}.year-plan-step{display:flex;min-height:64px;padding:10px;align-items:center;gap:9px;border:1px solid var(--line);border-radius:12px;color:var(--muted);background:#fff;font:inherit;font-size:12px;text-align:left;cursor:pointer}.year-plan-step:disabled{cursor:not-allowed;opacity:.48}.year-plan-step>span:first-child{display:inline-flex;width:26px;height:26px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:50%;color:#64748b;background:#e2e8f0;font-weight:900}.year-plan-step>span:last-child{display:flex;min-width:0;flex-direction:column;gap:2px}.year-plan-step strong{color:inherit;font-size:12px}.year-plan-step small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.year-plan-step.done{border-color:#a7f3d0;color:#047857;background:#ecfdf5}.year-plan-step.done>span:first-child{color:#fff;background:#10b981}.year-plan-step.current{border-color:#93c5fd;color:var(--blue);background:#eff6ff}.year-plan-step.current>span:first-child{color:#fff;background:var(--blue)}.year-plan-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.year-plan-archive-box{display:flex;margin-top:14px;padding:15px 16px;align-items:center;justify-content:space-between;gap:16px;border:1px solid #fecaca;border-radius:14px;color:#991b1b;background:#fef2f2}.year-plan-archive-box>div{display:flex;min-width:0;flex-direction:column;gap:5px}.year-plan-archive-box span{color:#b45309;font-size:12px;line-height:1.6}.year-plan-archive-box .sms-button{flex:0 0 auto}.teacher-year-switcher{display:flex;margin-bottom:18px;align-items:center;justify-content:space-between;gap:18px}.teacher-year-switcher .progress-filter{width:240px;flex:0 0 auto}.teacher-task-table tbody tr{cursor:pointer;transition:background-color .16s ease,box-shadow .16s ease}.teacher-task-table tbody tr:hover{background:#f8fbff}.teacher-task-table tbody tr.active-task-row{background:#eff6ff;box-shadow:inset 4px 0 0 var(--blue)}.teaching-identity-switcher{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);margin-top:16px;padding:16px;align-items:center;gap:22px;border:1px solid #bfdbfe;border-radius:16px;background:linear-gradient(135deg,#eff6ff,#f8fbff)}.teaching-identity-switcher>div{display:flex;min-width:0;flex-direction:column;gap:5px}.teaching-identity-switcher span,.teaching-identity-switcher label>span{color:var(--muted);font-size:12px;font-weight:800}.teaching-identity-switcher strong{color:var(--text);font-size:16px}.teaching-identity-switcher small{color:var(--muted);line-height:1.5}.teaching-identity-switcher label{display:flex;min-width:0;flex-direction:column;gap:7px}.teaching-identity-switcher .select{width:100%;min-width:0;background:#fff}.trend-mode-switch{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.trend-mode-button,.trend-mode-static{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;padding:7px 12px;background:#fff;color:var(--muted);font-size:13px;font-weight:800;line-height:1.2;white-space:nowrap}.trend-mode-button{cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.trend-mode-button:hover{border-color:#93c5fd;color:var(--text);background:#eff6ff;transform:translateY(-1px)}.trend-mode-button.active{border-color:var(--blue);color:var(--blue);background:#eff6ff}.table-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;color:var(--muted);font-size:14px}.table-pagination .secondary-button{width:auto;min-width:74px;padding:8px 12px}.table-pagination .secondary-button:disabled{cursor:not-allowed;opacity:.45}.trend-chart-legend{display:inline-flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;white-space:nowrap}.trend-chart-legend span{display:inline-flex;align-items:center;gap:5px}.trend-chart-legend i{width:10px;height:10px;border-radius:50%}.trend-legend-primary{background:#2563eb}.trend-legend-secondary{background:#10b981}.active-teaching-scope{display:flex;margin:0 0 18px;padding:13px 16px;align-items:center;gap:12px;border:1px solid #bfdbfe;border-radius:14px;background:#eff6ff}.active-teaching-scope>span{color:var(--blue);font-size:12px;font-weight:900}.active-teaching-scope>strong{color:var(--text);font-size:14px}.active-teaching-scope>small{margin-left:auto;color:var(--muted)}.archived-year-notice{display:flex;margin:0 0 18px;padding:14px 16px;align-items:center;justify-content:space-between;gap:14px;border:1px solid #cbd5e1;border-radius:14px;color:#334155;background:#f1f5f9}.archived-year-notice strong{font-size:14px}.archived-year-notice span{color:#64748b;font-size:12px}.assignment-create-row{margin-bottom:14px}.bulk-assignment-bar{display:grid;grid-template-columns:auto repeat(4,minmax(140px,1fr)) auto auto;margin:0 0 14px;padding:12px;align-items:center;gap:8px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.bulk-assignment-bar>strong{padding:0 6px;white-space:nowrap;font-size:12px}.bulk-assignment-bar .select{min-width:0}.check-cell{width:46px;min-width:46px!important;text-align:center}.check-cell input{width:18px;height:18px;accent-color:var(--blue)}.validation-list{display:grid;gap:10px}.validation-item{display:flex;padding:13px 15px;align-items:flex-start;gap:11px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.validation-item>span{display:inline-flex;width:24px;height:24px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:50%;font-weight:900}.validation-item strong{font-size:13px}.validation-item p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.validation-item.error{border-color:#fecaca;background:#fef2f2}.validation-item.error>span{color:#fff;background:var(--danger)}.validation-item.warning{border-color:#fde68a;background:#fffbeb}.validation-item.warning>span{color:#fff;background:#d97706}.validation-item.success{border-color:#a7f3d0;background:#ecfdf5}.validation-item.success>span{color:#fff;background:#10b981}.year-wizard-shell{margin-bottom:18px;padding-bottom:18px}.year-wizard-context{display:flex;align-items:center;justify-content:space-between;gap:20px}.year-wizard-context>div{display:flex;min-width:0;flex-direction:column;gap:3px}.year-wizard-context>div>span{color:var(--muted);font-size:11px;font-weight:800}.year-wizard-context>div>strong{font-size:20px}.year-wizard-context>div>small{color:var(--muted)}.year-wizard-context .progress-filter{width:250px;flex:0 0 auto}.year-wizard-panel{min-height:430px}.wizard-section-head{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}.wizard-section-head>span{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.04em}.wizard-section-head h3{margin:5px 0 4px;font-size:22px}.wizard-section-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.wizard-form-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) auto;padding:18px;align-items:end;gap:12px;border:1px solid var(--line);border-radius:16px;background:#f8fafc}.wizard-form-grid.compact{grid-template-columns:minmax(160px,220px) minmax(160px,220px) auto;margin:14px 0;justify-content:start}.wizard-form-grid.assignment{grid-template-columns:repeat(4,minmax(150px,1fr)) auto;margin-bottom:16px}.wizard-form-grid .primary-button{width:auto;white-space:nowrap}.wizard-resume-card{display:flex;margin-top:16px;padding:16px;align-items:center;justify-content:space-between;gap:18px;border:1px solid #bfdbfe;border-radius:16px;background:#eff6ff}.wizard-resume-card>div{display:flex;flex-direction:column;gap:4px}.wizard-resume-card span{color:var(--muted);font-size:12px}.wizard-resume-card .primary-button{width:auto}.wizard-action-row{display:flex;margin-bottom:14px;padding:13px 14px;align-items:center;gap:12px;border:1px solid #bfdbfe;border-radius:14px;background:#eff6ff}.wizard-action-row span{color:#475569;font-size:12px;line-height:1.5}.wizard-class-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px}.wizard-class-card{display:flex;min-width:0;padding:14px;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:14px;background:#fff}.wizard-class-card>div{display:flex;min-width:0;flex-direction:column;gap:3px}.wizard-class-card span,.wizard-class-card small{color:var(--muted);font-size:11px}.wizard-class-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wizard-class-card button{border:0;color:var(--danger);background:transparent;font-weight:800;cursor:pointer}.wizard-class-card button:disabled{color:#cbd5e1;cursor:not-allowed}.wizard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px;gap:10px}.wizard-metrics>div{display:flex;padding:14px;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.wizard-metrics span{color:var(--muted);font-size:11px;font-weight:800}.wizard-metrics strong{font-size:22px}.wizard-metrics .attention{border-color:#fde68a;background:#fffbeb}.wizard-metrics .attention strong{color:#b45309}.wizard-metrics .complete{border-color:#a7f3d0;background:#ecfdf5}.wizard-metrics .complete strong{color:#047857}.roster-preview-panel{display:grid;gap:16px}.class-roster-import{display:grid;gap:14px;padding:16px;border:1px solid #bfdbfe;border-radius:16px;background:linear-gradient(135deg,#eff6ff,#fff 70%)}.student-filter-panel{margin-bottom:18px}.student-management-filters{display:grid;grid-template-columns:repeat(3,minmax(190px,260px));gap:14px;align-items:end}.teacher-management-filters{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr)) auto;align-items:end;gap:14px}.teacher-management-filters .primary-button{width:auto;min-width:96px}.student-list-panel{overflow:hidden}.student-total{color:var(--muted);font-size:13px;white-space:nowrap}.student-list-actions{display:flex;align-items:center;gap:12px}.student-list-actions .primary-button{width:auto;white-space:nowrap}.student-overview-table{min-width:720px}.student-overview-table th{padding-top:16px;padding-bottom:16px}.student-overview-table td{padding-top:17px;padding-bottom:17px;vertical-align:middle}.student-overview-table td small{display:block;margin-top:5px;color:var(--muted)}.teacher-overview-table{min-width:760px}.teacher-task-list{display:grid;justify-items:start;gap:5px}.teacher-task-list>span:not(.muted){padding:4px 8px;border-radius:999px;color:#1d4ed8;background:#2563eb14;font-size:12px;white-space:nowrap}.teacher-task-list>span.disabled{color:var(--muted);background:#64748b17;text-decoration:line-through}body[data-theme=dark] .teacher-task-list>span:not(.muted){color:#d6e4ff;background:#60a5fa24}.student-edit-dialog{width:min(720px,100%)}.teacher-batch-page-panel{margin-bottom:18px;overflow:hidden}.teacher-batch-content{display:grid;gap:18px}.teacher-batch-page-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) max-content minmax(240px,1.3fr) max-content;align-items:center;gap:14px}.teacher-batch-page-toolbar .input{min-width:0}.teacher-batch-page-toolbar button{width:auto;white-space:nowrap}.student-edit-dialog .ai-dialog-head>div{display:grid;gap:4px}.student-edit-dialog .ai-dialog-head small{color:var(--muted);font-size:12px}.student-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.student-edit-grid .input,.student-edit-grid .select{width:100%}.student-edit-sync-note{padding:11px 13px;border:1px solid rgba(47,151,178,.22);border-radius:8px;color:var(--muted);background:#2f97b212;font-size:13px;line-height:1.6}body[data-theme=dark] .student-edit-sync-note{border-color:#60a5fa3d;background:#1e40af24}.teacher-roster-import{margin:16px 0}.placement-toolbar.teacher-roster-toolbar{grid-template-columns:minmax(240px,1.2fr) auto minmax(220px,1fr) auto}.teacher-roster-review-table table{min-width:1220px}.empty-state.compact{min-height:150px;padding:28px}.empty-state.compact h2{font-size:17px}.roster-detection-note{display:grid;gap:7px;padding:12px 14px;border:1px solid #dbeafe;border-radius:12px;background:#eff6ff;color:#1e3a5f;font-size:12px}.roster-review-table table{min-width:1180px}.roster-review-table td{vertical-align:top}.roster-review-table small{display:block;margin-top:4px;color:var(--muted)}.compact-select{min-width:170px;max-width:240px}.roster-review-row{background:#fffbeb}.roster-error-row{background:#fff1f2}.roster-issues{margin:0;padding-left:17px;color:#b45309;font-size:12px}.roster-error-row .roster-issues{color:#be123c}.roster-missing-block{padding:15px;border:1px solid #fde68a;border-radius:14px;background:#fffbeb}.roster-missing-block h4{margin:0 0 5px}.roster-missing-block p{margin:0 0 10px;color:#92400e;font-size:12px}.roster-missing-list{display:flex;flex-wrap:wrap;gap:7px}.roster-missing-list span{padding:5px 9px;border-radius:999px;background:#fef3c7;color:#78350f;font-size:12px}body[data-theme=dark] .roster-detection-note{border-color:#60a5fa47;background:#1e40af24;color:#bfdbfe}body[data-theme=dark] .class-roster-import{border-color:#60a5fa47;background:linear-gradient(135deg,#1e40af26,#0f172a59)}@media(max-width:760px){.binding-current-actions{grid-template-columns:1fr;align-items:stretch}.parent-trend-scope{margin-left:0;white-space:normal}.binding-current-actions .secondary-button,.binding-current-actions .login-button{width:100%}.student-management-filters,.teacher-management-filters,.student-edit-grid{grid-template-columns:1fr}.student-list-actions{width:100%;justify-content:space-between}.placement-toolbar.teacher-roster-toolbar,.teacher-batch-page-toolbar{grid-template-columns:1fr}}body[data-theme=dark] .roster-review-row,body[data-theme=dark] .roster-missing-block{border-color:#f59e0b47;background:#78350f2e}body[data-theme=dark] .roster-error-row{background:#8813372e}body[data-theme=dark] .roster-missing-list span{background:#92400e47;color:#fde68a}.placement-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;margin:14px 0;gap:10px}.placement-table{max-height:470px;overflow:auto}.placement-table table{min-width:720px}.placement-table thead{position:sticky;top:0;z-index:1}.placement-table .select{width:100%;min-width:220px}.wizard-save-row{display:flex;margin-top:14px;align-items:center;justify-content:flex-end;gap:14px}.wizard-save-row span{color:var(--muted);font-size:12px}.wizard-save-row .primary-button{width:auto}.wizard-footer{display:flex;margin-top:22px;padding-top:16px;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line)}.wizard-footer .primary-button{width:auto}.validation-overview{display:grid;grid-template-columns:150px 150px 1fr;margin-bottom:16px;align-items:stretch;gap:10px}.validation-overview>div{display:flex;padding:14px;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:14px}.validation-overview strong{font-size:26px}.validation-overview span{color:var(--muted);font-size:11px;font-weight:800}.validation-overview .danger{border-color:#fecaca;background:#fef2f2}.validation-overview .danger strong{color:var(--danger)}.validation-overview .success{border-color:#a7f3d0;background:#ecfdf5}.validation-overview .success strong{color:#047857}.validation-overview .warning{border-color:#fde68a;background:#fffbeb}.validation-overview .warning strong{color:#b45309}.validation-overview .sms-button{justify-self:end;align-self:center}.year-plan-summary.preview{margin-top:0}.preview-class-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.preview-class-list article{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff}.preview-class-list header{display:flex;padding:14px;align-items:center;justify-content:space-between;gap:12px;background:#f8fafc}.preview-class-list header>div{display:flex;flex-direction:column;gap:2px}.preview-class-list header span{color:var(--muted);font-size:11px}.preview-class-list header b{color:var(--blue);font-size:12px}.preview-class-list article>div{display:flex;padding:12px 14px;flex-wrap:wrap;gap:7px}.preview-class-list article>div>span{padding:5px 8px;border-radius:8px;color:#334155;background:#f1f5f9;font-size:11px}.preview-class-list .muted{color:var(--muted)}.publish-confirm-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;padding:24px;align-items:center;gap:18px;border:1px solid #93c5fd;border-radius:18px;background:linear-gradient(135deg,#eff6ff,#f8fbff)}.publish-icon{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:50%;color:#fff;background:var(--blue);font-size:24px;font-weight:900}.publish-confirm-card>div:nth-child(2){display:flex;flex-direction:column;gap:5px}.publish-confirm-card span,.publish-confirm-card small{color:var(--muted);font-size:12px}.publish-confirm-card .primary-button{width:auto}.publish-success-card{display:flex;padding:22px;align-items:center;gap:16px;border:1px solid #a7f3d0;border-radius:18px;background:#ecfdf5}.publish-success-card>span{display:inline-flex;width:44px;height:44px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:50%;color:#fff;background:#10b981;font-size:22px;font-weight:900}.publish-success-card p{margin:4px 0 0;color:#047857;font-size:12px}body[data-theme=dark] .exam-tabs{background:#0f172a}body[data-theme=dark] .teacher-task-table tbody tr:hover,body[data-theme=dark] .teacher-task-table tbody tr.active-task-row{background:#2b2b2b}body[data-theme=dark] .teaching-identity-switcher,body[data-theme=dark] .active-teaching-scope{border-color:var(--line);background:#242424}body[data-theme=dark] .teaching-identity-switcher .select{background:#2b2b2b}body[data-theme=dark] .trend-mode-button,body[data-theme=dark] .trend-mode-static{background:#2b2b2b;border-color:var(--line);color:#cbd5e1}body[data-theme=dark] .trend-mode-button:hover,body[data-theme=dark] .trend-mode-button.active{background:#172554;color:#bfdbfe;border-color:#3b82f6}body[data-theme=dark] .trend-chart-legend{color:#cbd5e1}body[data-theme=dark] .subject-option{background:#111827}body[data-theme=dark] .subject-option:hover{background:#172033}body[data-theme=dark] .subject-option:has(input:checked){background:#172554}body[data-theme=dark] .impact-notice{color:#fde68a;background:#422006}body[data-theme=dark] .impact-notice.danger{color:#fecaca;background:#450a0a}body[data-theme=dark] .review-score-input{background:#0f172a}body[data-theme=dark] .review-score-input:disabled{background:#1e293b}body[data-theme=dark] .year-plan-summary>div,body[data-theme=dark] .year-plan-step,body[data-theme=dark] .bulk-assignment-bar,body[data-theme=dark] .validation-item{background:#111827}body[data-theme=dark] .year-plan-step.done,body[data-theme=dark] .validation-item.success{color:#a7f3d0;background:#064e3b}body[data-theme=dark] .year-plan-step.current{background:#172554}body[data-theme=dark] .validation-item.error{background:#450a0a}body[data-theme=dark] .validation-item.warning{background:#422006}body[data-theme=dark] .year-plan-archive-box{color:#fecaca;background:#450a0a}body[data-theme=dark] .year-plan-archive-box span{color:#fcd34d}body[data-theme=dark] .archived-year-notice{color:#e2e8f0;background:#1e293b}body[data-theme=dark] .archived-year-notice span{color:#cbd5e1}body[data-theme=dark] .wizard-form-grid,body[data-theme=dark] .wizard-class-card,body[data-theme=dark] .wizard-metrics>div,body[data-theme=dark] .preview-class-list article,body[data-theme=dark] .preview-class-list header{background:#111827}body[data-theme=dark] .wizard-action-row,body[data-theme=dark] .wizard-resume-card,body[data-theme=dark] .publish-confirm-card{border-color:#1d4ed8;background:#172554}body[data-theme=dark] .wizard-action-row span{color:#cbd5e1}body[data-theme=dark] .wizard-metrics .attention,body[data-theme=dark] .validation-overview .warning{background:#422006}body[data-theme=dark] .wizard-metrics .complete,body[data-theme=dark] .validation-overview .success,body[data-theme=dark] .publish-success-card{background:#064e3b}body[data-theme=dark] .validation-overview .danger{background:#450a0a}body[data-theme=dark] .preview-class-list article>div>span{color:#cbd5e1;background:#1e293b}.auth-error{margin:0 0 16px;padding:11px 13px;border:1px solid #fecaca;border-radius:10px;color:#b91c1c;background:#fef2f2;font-size:12px}.binding-success{margin:0 0 16px;padding:11px 13px;border:1px solid #a7f3d0;border-radius:10px;color:#047857;background:#ecfdf5;font-size:12px}.login-button:disabled{cursor:wait;opacity:.65;transform:none}.row-actions{display:flex;gap:8px}.user-accounts-table{font-size:16px}.user-accounts-table th,.user-accounts-table td{text-align:center;vertical-align:middle;font-size:16px}.user-accounts-table th{font-size:14px}.user-accounts-table .row-actions{justify-content:center;flex-wrap:nowrap}.user-accounts-table .row-actions button{font-size:13px}.row-actions button{padding:6px 10px;border:0;border-radius:8px;color:#fff;background:var(--blue);font-size:12px;font-weight:800}.row-actions button.danger{background:var(--danger)}.field-error{display:block;margin-top:-2px;color:var(--danger);font-size:11px}.password-field{position:relative}.password-input{padding-right:52px}.password-toggle{position:absolute;top:50%;right:10px;width:42px;height:42px;padding:0;transform:translateY(-50%);border:0;border-radius:14px;color:var(--blue);background:#eff6ff;font-size:20px;font-weight:900;line-height:1}.password-toggle:hover{background:#dbeafe}.captcha-row,.sms-row{display:grid;grid-template-columns:1fr 150px;gap:10px;align-items:center}.captcha-image,.captcha-loading{height:54px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#eff6ff}.captcha-image img{display:block;width:100%;height:100%;object-fit:cover}.captcha-loading{color:var(--blue);font-size:14px;font-weight:800}.sms-button{min-height:50px;padding:0 14px;border:0;border-radius:16px;color:#fff;background:var(--blue);font-size:14px;font-weight:800}.sms-button:disabled{cursor:not-allowed;color:var(--muted);background:#e2e8f0}@media(max-width:520px){.captcha-row,.sms-row{grid-template-columns:1fr}}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.empty-state{max-width:720px;margin:42px auto;padding:50px;text-align:center}.empty-state .stat-icon{width:54px;height:54px;margin:auto;font-size:22px}.empty-state h2{margin:20px 0 8px}.empty-state p{color:var(--muted);line-height:1.8}.level-positive{color:var(--mint);font-weight:800}.level-negative{color:var(--danger);font-weight:800}.table-wrap{max-width:100%}td small{color:var(--muted)}.badge{white-space:nowrap}.primary-button:disabled,.sms-button:disabled,.row-actions button:disabled{cursor:not-allowed;opacity:.7;transform:none;box-shadow:none}.panel .filters{align-items:center}.panel .filters .input[type=file]{min-width:260px}.compact-select{flex:0 1 240px;min-width:220px;max-width:260px}.analysis-subject-select{flex:0 1 200px;min-width:180px;max-width:240px}.analysis-current-class{display:flex;min-height:56px;padding:10px 16px;align-items:center;justify-content:center;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:var(--panel);line-height:1.25}.analysis-current-class span{color:var(--muted);font-size:12px;font-weight:700}.analysis-current-class strong{overflow:hidden;max-width:100%;color:var(--text);font-size:16px;text-overflow:ellipsis;white-space:nowrap}body[data-theme=dark] .analysis-current-class{background:#2b2b2b;border-color:var(--line)}.panel-title+.panel-subtitle{display:inline-block;margin-top:4px}.rank-change-head{align-items:center;flex-direction:row;justify-content:space-between;gap:12px}.rank-sort-actions{display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.rank-sort-button{min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:var(--panel);font-weight:800}.rank-sort-button.active{border-color:var(--blue);color:#fff;background:var(--blue)}.progress-coefficient-guide{padding:16px 18px;overflow:hidden}.progress-coefficient-guide .panel-head{margin-bottom:10px}.progress-coefficient-guide .panel-subtitle{font-size:13px}.progress-coefficient-summary{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);gap:10px}.progress-formula-card,.progress-benefit-card{padding:11px 13px;border:1px solid #dbe7f6;border-radius:10px;background:#f8fbff}.progress-guide-label{display:block;margin-bottom:5px;color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.04em}.progress-formula{display:block;color:var(--text);font-size:clamp(16px,1.6vw,20px);line-height:1.3}.progress-formula-card p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.progress-formula-card p strong{color:var(--text)}.progress-example{margin-top:7px;padding:7px 9px;border:1px solid #dbeafe;border-radius:7px;color:#334155;background:#fff;font-size:11px;line-height:1.45}.progress-example strong{color:#059669}.progress-benefit-card ul{margin:0;padding-left:18px;color:#334155;font-size:12px}.progress-benefit-card li{padding-left:1px;line-height:1.45}.progress-benefit-card li+li{margin-top:3px}.progress-reference-title{display:flex;margin:11px 0 6px;align-items:baseline;justify-content:space-between;gap:10px}.progress-reference-title strong{color:var(--text);font-size:13px}.progress-reference-title span{color:var(--muted);font-size:11px}.progress-reference-table{border:0;border-radius:8px}.progress-reference-table table{min-width:540px;table-layout:fixed;border:1px solid var(--line)}.progress-reference-table th,.progress-reference-table td{padding:6px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;line-height:1.25}.progress-reference-table th:last-child,.progress-reference-table td:last-child{border-right:0}.progress-reference-table tr:last-child td{border-bottom:0}.progress-reference-table th:first-child{width:30%}.progress-reference-table th:nth-child(2){width:22%}.progress-level{display:inline-flex;min-width:76px;min-height:23px;padding:2px 8px;align-items:center;justify-content:center;border-radius:999px;font-size:11px;font-weight:900;white-space:nowrap}.progress-level.positive{color:#047857;background:#ecfdf5}.progress-level.neutral{color:#475569;background:#f1f5f9}.progress-level.negative{color:#b91c1c;background:#fef2f2}.focus-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.focus-selection-note{display:inline-flex;min-height:28px;padding:4px 10px;align-items:center;border-radius:999px;color:#1d4ed8;background:#eff6ff;font-size:12px;font-weight:800}body[data-theme=dark] .progress-formula-card,body[data-theme=dark] .progress-benefit-card{border-color:#343434;background:#242424}body[data-theme=dark] .progress-example{border-color:#343434;color:#d4d4d4;background:#1b1b1b}body[data-theme=dark] .progress-benefit-card ul{color:#d4d4d4}body[data-theme=dark] .progress-level.positive{color:#6ee7b7;background:#10b98124}body[data-theme=dark] .progress-level.neutral{color:#d4d4d4;background:#ffffff14}body[data-theme=dark] .progress-level.negative{color:#fca5a5;background:#f8717124}body[data-theme=dark] .focus-selection-note{color:#bfdbfe;background:#3b82f629}.teacher-ai-page{min-width:0;display:grid;gap:14px}.ai-entry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.ai-entry-card{min-width:0;min-height:92px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;padding:16px 20px;align-items:center;gap:14px;border:1px solid var(--line);border-radius:15px;color:var(--ink);background:#fff;text-align:left;box-shadow:0 7px 22px #0f172a0b;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.ai-entry-card:hover{border-color:#9fd7df;box-shadow:0 11px 26px #0f766e17;transform:translateY(-2px)}.ai-entry-card.active{border-color:#7dd3c7;background:#f5fffc;box-shadow:inset 0 0 0 1px #0d94880f,0 10px 26px #0f766e14}.ai-entry-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;color:#0f9ba8;background:#e9f9fa}.ai-entry-copy{min-width:0}.ai-entry-copy strong{display:block;font-size:17px;line-height:1.3}.ai-entry-copy small{display:block;margin-top:5px;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.ai-entry-arrow{color:#94a3b8;transition:color .18s ease,transform .18s ease}.ai-entry-card:hover .ai-entry-arrow,.ai-entry-card.active .ai-entry-arrow{color:#0f9ba8;transform:translate(3px)}.ai-workbench{height:calc(100vh - 176px);min-height:780px;display:grid;grid-template-columns:minmax(230px,260px) minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 13px 34px #0f172a0f;transition:grid-template-columns .46s cubic-bezier(.22,.8,.28,1);will-change:grid-template-columns}.ai-workbench.history-collapsed{grid-template-columns:52px minmax(0,1fr)}.ai-history-panel{min-width:0;padding:18px 12px;overflow-y:auto;border-right:1px solid var(--line);background:#f8fafc;transition:padding .46s cubic-bezier(.22,.8,.28,1)}.ai-history-panel.collapsed{padding:18px 8px;overflow:hidden}.ai-history-head{display:flex;padding:0 7px 14px;align-items:center;justify-content:space-between;color:#7b8797;transition:padding .38s ease,justify-content .38s ease}.ai-history-panel.collapsed .ai-history-head{padding:0;justify-content:center}.ai-history-head>div,.ai-history-list{opacity:1;transform:translate(0);transition:opacity .22s ease .12s,transform .36s cubic-bezier(.22,.8,.28,1) .08s}.ai-history-panel.collapsed .ai-history-head>div,.ai-history-panel.collapsed .ai-history-list{opacity:0;transform:translate(-18px);pointer-events:none;transition-delay:0s}.ai-history-toggle{width:32px;height:32px;display:grid;flex:0 0 32px;place-items:center;border:1px solid #d9e3eb;border-radius:8px;color:#64748b;background:#fff;transition:color .18s ease,border-color .18s ease,background .18s ease,transform .38s cubic-bezier(.22,.8,.28,1)}.ai-history-panel.collapsed .ai-history-toggle{transform:rotate(180deg)}.ai-history-head>div:first-child{min-width:0;flex:1 1 auto}.ai-history-actions{display:flex;flex:0 0 auto;align-items:center;gap:6px;margin-left:auto}.ai-history-bulk-button,.ai-history-delete-selected{display:inline-flex;min-height:34px;align-items:center;gap:5px;padding:0 10px;border:1px solid #d7e2ea;border-radius:7px;color:#617286;background:#fff;font-size:13px;font-weight:700;white-space:nowrap}.ai-history-bulk-button:hover,.ai-history-bulk-button.active{border-color:#80c6d1;color:#087f8e;background:#effbfc}.ai-history-delete-selected{border-color:#f1c9c7;color:#c0443d;background:#fff8f7}.ai-history-delete-selected:hover{background:#fff0ef}.ai-history-item{position:relative}.ai-history-item.pinned{box-shadow:inset 3px 0 #e3a44e,0 4px 13px #0f172a09}.ai-history-copy>strong{display:flex;align-items:center;gap:4px}.ai-history-check{width:18px;height:18px;display:grid;flex:0 0 18px;place-items:center;margin-top:4px;border:1px solid #b7c5d0;border-radius:4px;color:#fff;font-size:12px}.ai-history-check.checked{border-color:#2293a2;background:#2293a2}.ai-history-context-menu{position:fixed;z-index:120;width:146px;padding:5px;border:1px solid #d8e2ea;border-radius:8px;background:#fff;box-shadow:0 12px 28px #0f172a2e}.ai-history-context-menu button{width:100%;display:flex;align-items:center;gap:8px;padding:9px 10px;border:0;border-radius:5px;color:#40556a;background:transparent;font-size:13px;text-align:left}.ai-history-context-menu button:hover{background:#eff8fb}.ai-history-context-menu button.danger{color:#c54742}.ai-history-context-menu button.danger:hover{background:#fff1f0}.ai-history-toggle:hover{border-color:#9ed6df;color:#0f9ba8;background:#effbfd}.ai-history-head h2{margin:0;color:var(--ink);font-size:17px}.ai-history-head p{margin:4px 0 0;font-size:11px}.ai-history-list,.ai-history-group{display:grid;gap:8px}.ai-history-group-head{display:flex;padding:4px 7px 0;align-items:center;justify-content:space-between;gap:8px;color:#52657a}.ai-history-group-head strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.ai-history-group-head span{flex:0 0 auto;color:#94a3b8;font-size:12px}.ai-history-group-list{display:grid;gap:8px}.ai-history-error{display:grid;margin:12px 7px 0;gap:10px;color:#b54742;font-size:13px;line-height:1.45}.ai-history-error button{width:fit-content;min-height:32px;padding:0 10px;border:1px solid #9acfd7;border-radius:6px;color:#087f8e;background:#f4fcfd;font:inherit;font-weight:700;cursor:pointer}.ai-history-item{width:100%;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);padding:12px 10px;align-items:flex-start;gap:9px;border:1px solid transparent;border-radius:11px;color:var(--ink);background:#fff;text-align:left;box-shadow:0 4px 13px #0f172a09;transition:border-color .18s ease,background .18s ease}.ai-history-item:hover{border-color:#cfe8ec}.ai-history-item.active{border-color:#a7dfe6;background:#ecfbfd;box-shadow:inset 3px 0 #20a7b5}.ai-history-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:#64748b;background:#edf1f5}.ai-history-item.active .ai-history-icon{color:#fff;background:#24b0bd}.ai-history-copy{min-width:0}.ai-history-copy>strong{display:block;overflow:hidden;font-size:15px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.ai-history-copy>small{display:-webkit-box;margin-top:3px;overflow:hidden;color:var(--muted);font-size:13px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ai-history-copy>span{display:flex;margin-top:8px;align-items:center;justify-content:space-between;gap:7px}.ai-history-copy time{color:#94a3b8;font-size:12px;white-space:nowrap}.ai-kind-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:12px;font-style:normal;font-weight:800}.ai-kind-badge.class{color:#087f72;background:#dff8f2}.ai-kind-badge.student{color:#2563a5;background:#e5f2ff}.ai-conversation-stage{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;background:#f6f8fb}.ai-report-toolbar{min-height:56px;display:flex;padding:0 24px;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);color:#5f6e80;background:#fff;font-size:15px}.ai-report-toolbar span{min-width:0;display:inline-flex;align-items:center;gap:7px}.ai-report-toolbar span:first-child{color:#34495e;font-weight:850}.ai-report-toolbar span:last-child{overflow:hidden;max-width:58%;color:#7c8998;text-overflow:ellipsis;white-space:nowrap}.ai-report-toolbar .ai-toolbar-select{flex:1 1 460px;min-width:340px;height:38px;margin-left:0;padding:0 14px}.ai-report-toolbar .ai-toolbar-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-report-toolbar .ai-toolbar-select{color:#172033!important;-webkit-text-fill-color:#172033;background:#fff!important;line-height:1.25;opacity:1;text-indent:0}.ai-report-toolbar .ai-toolbar-select option{color:#172033;background:#fff}.ai-report-toolbar .primary-button{width:auto;min-width:112px;white-space:nowrap}.ai-conversation-scroll{min-height:0;padding:26px clamp(18px,3.4vw,46px) 34px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#35b8f2 #edf1f5;scrollbar-width:thin}.ai-empty-conversation{width:min(460px,90%);min-height:100%;display:flex;margin:0 auto;align-items:center;justify-content:center;flex-direction:column;color:#8a98a8;text-align:center}.ai-empty-conversation>span{width:64px;height:64px;display:grid;place-items:center;border-radius:20px;color:#18a6b5;background:#e8fafb}.ai-empty-conversation h2{margin:17px 0 7px;color:#34495e;font-size:21px}.ai-empty-conversation p{margin:0;font-size:13px;line-height:1.75}.ai-message-list{width:min(1240px,100%);display:grid;margin:0 auto;gap:34px}.ai-message-row{min-width:0;display:flex;align-items:flex-start;gap:10px}.ai-message-row.teacher-report,.ai-message-row.teacher-follow-up{justify-content:flex-end}.ai-message-avatar{width:36px;height:36px;display:grid;flex:0 0 36px;place-items:center;border:2px solid #fff;border-radius:50%;box-shadow:0 5px 14px #0f172a1a}.ai-message-avatar.teacher{color:#fff;background:#2fc8a2}.ai-message-avatar.assistant{color:#4269f4;background:#fff;box-shadow:0 0 0 2px #ecf2ff,0 5px 14px #2563eb14}.ai-report-message{width:min(1240px,calc(100% - 20px))}.ai-report-page{overflow:hidden;padding:30px 30px 0;border:1px solid #a8ebcf;border-radius:18px;color:#34495e;background:#effcf7;box-shadow:0 9px 24px #10b98114}.ai-report-page>h2{margin:0 0 24px;color:#31475c;font-size:clamp(28px,2.7vw,36px);line-height:1.3}.ai-report-section{padding:0 0 30px}.ai-report-section+.ai-report-section{padding-top:2px}.ai-report-section h3{margin:0 0 16px;color:#35516a;font-size:23px;line-height:1.35}.ai-report-table-wrap{width:100%;overflow-x:auto;border:1px solid #c7cfd8;background:#fff;box-shadow:0 2px 7px #0f172a0f}.ai-report-table{width:100%;min-width:570px;border-collapse:collapse;color:#344054;font-size:15px}.ai-report-table th,.ai-report-table td{padding:14px 15px;border-right:1px solid #cbd3dc;border-bottom:1px solid #cbd3dc;font-size:15px;line-height:1.6;text-align:left}.ai-report-table th{color:#1f2937;background:#fbfcfd;font-weight:850}.ai-report-table th:last-child,.ai-report-table td:last-child{border-right:0}.ai-report-table tr:last-child td{border-bottom:0}.ai-report-table tbody tr:nth-child(2n) td{background:#fafbfc}.ai-overview-table th:first-child,.ai-overview-table td:first-child{width:110px}.ai-overview-table td:last-child{white-space:normal}.ai-student-snapshot{padding:0 0 30px}.ai-student-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ai-student-summary-grid article{padding:15px;border-left:4px solid #2f97b2;background:#f7fffd}.ai-student-summary-grid article:nth-child(2){border-left-color:#dd9c36;background:#fffaf2}.ai-student-summary-grid article:nth-child(3){border-left-color:#4a82c3;background:#f5f9ff}.ai-student-summary-grid span,.ai-student-summary-grid small{display:block;color:#6c7d8e;font-size:13px}.ai-student-summary-grid strong{display:block;margin:7px 0 4px;color:#2d455a;font-size:17px}.ai-student-gap-chart{margin-top:16px;padding:18px;border:1px solid #cde5e2;background:#ffffffb3}.ai-student-gap-chart>div:first-child{display:flex;justify-content:space-between;gap:12px}.ai-student-gap-chart h4{margin:0;color:#36566a;font-size:16px}.ai-student-gap-chart>div:first-child span{color:#758596;font-size:13px}.ai-student-gap-row{display:grid;grid-template-columns:54px minmax(120px,1fr) 54px;align-items:center;gap:10px;margin-top:11px;color:#536578;font-size:13px}.ai-student-gap-track{height:10px;position:relative;overflow:hidden;background:linear-gradient(90deg,#e4edf1 49.5%,#aebdc6 49.5% 50.5%,#e4edf1 50.5%)}.ai-student-gap-track i{height:100%;display:block}.ai-student-gap-track i.positive{background:#38a984}.ai-student-gap-track i.negative{background:#de7b62}.ai-student-gap-row strong{font-size:13px;text-align:right}.ai-score-detail-table{min-width:1180px;table-layout:auto}.ai-score-detail-table th,.ai-score-detail-table td{padding:9px 5px;text-align:center;overflow-wrap:anywhere}.ai-score-detail-table th:first-child,.ai-score-detail-table td:first-child{width:64px;min-width:64px}.ai-score-detail-table th:nth-child(2),.ai-score-detail-table td:nth-child(2){width:112px;min-width:112px;white-space:nowrap}.ai-report-table-note{margin:11px 0 0;color:#718096;font-size:13px}.ai-instruction-section>p{margin:0 0 10px;font-size:15px}.ai-instruction-section ul{margin:0;padding-left:21px}.ai-instruction-section li{padding-left:2px;font-size:15px;line-height:1.9}.ai-instruction-section li::marker{color:#ff4b3e}.ai-instruction-section strong{color:#ff4b3e}.ai-response-card{width:min(1040px,calc(100% - 30px));padding:26px;border:1px solid #b8def8;border-radius:18px;color:#34495e;background:#eef8ff;box-shadow:0 9px 24px #0ea5e912}.ai-response-head>span{color:#0f8098;font-size:13px;font-weight:800}.ai-response-head>strong{display:block;margin-top:5px;color:#29445e;font-size:24px}.ai-response-head>p{margin:5px 0 0;color:#718096;font-size:14px}.ai-response-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.ai-response-summary-grid section{padding:16px;border-left:4px solid #3b8cc7;background:#ffffffad}.ai-response-summary-grid section:nth-child(2){border-left-color:#d89c3b}.ai-response-summary-grid section:nth-child(3){border-left-color:#27a27a}.ai-response-summary-grid span{color:#597189;font-size:13px;font-weight:800}.ai-response-summary-grid p{margin:8px 0 0;color:#3e556c;font-size:15px;line-height:1.7}.ai-response-actions{margin-top:16px;padding:18px;border:1px solid #cfe1ed;background:#ffffff85}.ai-response-actions>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.ai-response-actions h3{margin:0;color:#29475f;font-size:18px}.ai-response-actions>div>span{color:#75889a;font-size:13px}.ai-response-actions ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:15px 0 0;padding:0;list-style:none}.ai-response-actions li{display:flex;min-width:0;gap:9px}.ai-response-actions li>b{width:24px;height:24px;display:grid;flex:0 0 24px;place-items:center;border-radius:50%;color:#fff;background:#2788b3;font-size:13px}.ai-response-actions li div{min-width:0}.ai-response-actions li strong,.ai-response-actions li span,.ai-response-actions li small{display:block}.ai-response-actions li strong{color:#314b62;font-size:14px}.ai-response-actions li span{margin-top:3px;color:#516b81;font-size:13px;line-height:1.55}.ai-response-actions li small{margin-top:4px;color:#147e67;font-size:12px;line-height:1.45}.ai-response-details{margin-top:18px;border-top:1px solid #cce1f0}.ai-response-details>summary{padding:15px 0;color:#196f9e;font-size:15px;font-weight:800;cursor:pointer}.ai-response-details[open]>summary{border-bottom:1px solid #cce1f0}.ai-response-detail-content{padding-top:2px}.ai-response-card p{margin:7px 0 0;font-size:15px;line-height:1.8}.ai-rank-up{color:#1d8a68;font-weight:800}.ai-rank-down{color:#d84b45;font-weight:800}.ai-follow-up-list{display:grid;gap:9px}.ai-follow-up-list p{margin:0;line-height:1.75}.ai-follow-up-lead{color:#244763;font-weight:800}.ai-follow-up-item{position:relative;padding-left:17px}.ai-follow-up-item:before{content:"";position:absolute;left:1px;top:.78em;width:5px;height:5px;border-radius:50%;background:#45a9bf}.ai-response-card>hr{height:1px;margin:20px 0 27px;border:0;background:#d4e2ec}.ai-response-card section+section{margin-top:25px}.ai-response-card h3{margin:0 0 12px;color:#ff4b3e;font-size:21px;line-height:1.4}.ai-response-card h4{margin:0 0 8px;color:#ff4b3e;font-size:16px;line-height:1.6}.ai-response-card b{color:#ff4b3e}.ai-response-evaluation{display:block;margin-top:4px}.binding-current-details{display:grid;gap:10px;margin:18px 0 24px;color:#52677a;font-size:15px;line-height:1.6}.binding-current-details strong{color:#18324d;font-size:22px}.binding-current-actions{display:grid;width:100%;grid-template-columns:248px minmax(0,1fr);gap:12px;align-items:center;margin-top:8px}.binding-current-actions .login-button{width:100%}.secondary-button{min-height:44px;padding:10px 18px;border:1px solid #bfd0e2;border-radius:8px;color:#2f5d86;background:#f3f7fb;font:inherit;font-weight:700;cursor:pointer}.secondary-button:hover{border-color:#7aa6d3;background:#e9f2fb}.binding-status-note{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.5}.ai-response-table-wrap{margin-top:10px;overflow-x:auto;border:1px solid #c8d3df;background:#ffffffc7}.ai-response-table-wrap table{width:100%;min-width:560px;border-collapse:collapse}.ai-response-table-wrap th,.ai-response-table-wrap td{padding:11px 12px;border-right:1px solid #c8d3df;border-bottom:1px solid #c8d3df;font-size:14px;line-height:1.6;text-align:left}.ai-response-table-wrap th{color:#334155;background:#f9fbfd}.ai-response-table-wrap th:last-child,.ai-response-table-wrap td:last-child{border-right:0}.ai-response-table-wrap tr:last-child td{border-bottom:0}.ai-message-row.follow-up{align-items:flex-end}.ai-message-row.follow-up.assistant{align-items:flex-start}.ai-follow-up-bubble{max-width:min(660px,calc(100% - 46px));padding:13px 16px;border-radius:16px;font-size:16px;line-height:1.8;box-shadow:0 7px 18px #0f172a0f}.ai-follow-up-bubble.teacher{border-bottom-right-radius:5px;color:#fff;background:#24a9b6}.ai-follow-up-bubble.assistant{border:1px solid #c6e2f8;border-bottom-left-radius:5px;color:#34495e;background:#eef8ff}.ai-thinking{display:flex;align-items:center;gap:5px;color:#718096}.ai-thinking span{width:6px;height:6px;display:block;border-radius:50%;background:#57a7df;animation:ai-pulse 1s ease-in-out infinite}.ai-thinking span:nth-child(2){animation-delay:.13s}.ai-thinking span:nth-child(3){margin-right:5px;animation-delay:.26s}@keyframes ai-pulse{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.ai-composer{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) max-content 66px;align-items:center;margin:0;padding:16px 18px 18px;border-top:1px solid #e4e8ee;background:#fff}.ai-composer.no-quota{grid-template-columns:minmax(0,1fr) 66px}.ai-composer input{min-width:0;height:54px;padding:0 22px;border:1px solid #cde4f7;border-right:0;border-radius:28px 0 0 28px;outline:0;color:#34495e;background:#fff;font:inherit;font-size:15px;transition:border-color .18s ease,box-shadow .18s ease}.ai-composer input:focus{border-color:#56bfe5;box-shadow:inset 0 0 0 1px #56bfe5}.ai-composer input::placeholder{color:#b2bac4}.ai-composer input:disabled{color:#a6afb9;background:#fafbfc}.ai-composer-quota{height:54px;display:inline-flex;align-items:center;padding:0 15px;border-top:1px solid #cde4f7;border-bottom:1px solid #cde4f7;color:#667085;background:#fff;font-size:13px;white-space:nowrap}.ai-composer button{height:54px;display:grid;place-items:center;border:0;border-radius:0 28px 28px 0;color:#097fa9;background:#20c6e9;transition:filter .18s ease,opacity .18s ease}.ai-composer button:hover:not(:disabled){filter:brightness(.96)}.ai-composer button:disabled{color:#087fa5;background:#20c6e9;opacity:.58;cursor:not-allowed}.ai-message-error{display:flex;padding:0 18px 14px;align-items:center;justify-content:space-between;gap:12px;color:#b54742;background:#fff;font-size:14px}.ai-message-error button{border:0;color:#087f8e;background:transparent;font:inherit;font-weight:700;cursor:pointer}.ai-message-error button:disabled{color:#9aa4af;cursor:not-allowed}.ai-follow-up-bubble.failed{border-color:#efb4ae;color:#8b3e3a;background:#fff7f6}.ai-follow-up-failed{display:block;margin-top:6px;color:#b54742;font-size:12px}.ai-dialog-backdrop{position:fixed;z-index:80;inset:0;display:grid;padding:24px;place-items:center;background:#0f172a75;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.ai-analysis-dialog{width:min(586px,100%);padding:24px 27px 21px;border-radius:10px;color:#273444;background:#fff;box-shadow:0 20px 54px #0f172a42}.ai-dialog-error{padding:10px 12px;border:1px solid #efb4ae;border-radius:7px;color:#8b3e3a;background:#fff7f6;font-size:13px;line-height:1.5}.ai-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.ai-dialog-head h2{margin:0;font-size:19px;line-height:1.4}.ai-dialog-head button{width:34px;height:34px;display:grid;place-items:center;border:0;color:#8a8f98;background:transparent}.ai-dialog-head button:hover:not(:disabled){color:#334155}.ai-analysis-dialog form{display:grid;margin-top:12px;gap:24px}.ai-dialog-field{display:grid;gap:10px;color:#303846;font-size:14px}.ai-dialog-field span em{color:#ff403a;font-style:normal}.ai-dialog-scope{display:grid;gap:5px;padding:14px 16px;border:1px solid #c9e4e8;border-radius:7px;color:#4b6474;background:#f2fcfc}.ai-dialog-scope>span{font-size:13px}.ai-dialog-scope strong{color:#29495a;font-size:16px}.ai-dialog-scope small{color:#728596;font-size:12px}.ai-dialog-field select{width:100%;height:38px;padding:0 12px;border:1px solid #d5d9df;border-radius:7px;outline:0;color:#4b5563;background:#fff;font:inherit;font-size:13px}.ai-dialog-field select:focus{border-color:#27aebb;box-shadow:0 0 0 3px #27aebb1f}.ai-dialog-actions{display:flex;margin-top:3px;justify-content:flex-end;gap:9px}.ai-dialog-actions button{min-height:38px;padding:0 17px;border-radius:7px;font-size:14px}.ai-dialog-cancel{border:1px solid #d5d9df;color:#303846;background:#fff}.ai-dialog-submit{border:1px solid #2aabb7;color:#fff;background:#31aebb}.ai-dialog-submit:disabled{border-color:#31aebb;background:#31aebb;opacity:.58;cursor:not-allowed}body[data-theme=dark] .ai-entry-card,body[data-theme=dark] .ai-workbench,body[data-theme=dark] .ai-history-item{border-color:var(--line);color:var(--text);background:#1b1b1b}body[data-theme=dark] .ai-entry-card.active,body[data-theme=dark] .ai-history-item.active{border-color:#299ba7;background:#17292a}body[data-theme=dark] .ai-entry-icon,body[data-theme=dark] .ai-empty-conversation>span{background:#183437}body[data-theme=dark] .ai-history-panel,body[data-theme=dark] .ai-conversation-stage,body[data-theme=dark] .ai-conversation-scroll{background:#202020}body[data-theme=dark] .ai-history-head h2,body[data-theme=dark] .ai-empty-conversation h2{color:var(--text)}body[data-theme=dark] .ai-report-toolbar,body[data-theme=dark] .ai-composer{border-color:var(--line);color:#b7c1ce;background:#242424}body[data-theme=dark] .ai-report-toolbar span:first-child{color:#edf2f7}body[data-theme=dark] .ai-report-toolbar span:last-child{color:#a7b4c8}body[data-theme=dark] .ai-report-page{border-color:#315e54;color:#d4e4e0;background:#18322d}body[data-theme=dark] .ai-report-page>h2,body[data-theme=dark] .ai-report-section h3{color:#e3f2ef}body[data-theme=dark] .ai-report-table-wrap,body[data-theme=dark] .ai-report-table th,body[data-theme=dark] .ai-report-table td{border-color:#46545f;color:#dce5ed;background:#263b37}body[data-theme=dark] .ai-report-table tbody tr:nth-child(2n) td{background:#223430}body[data-theme=dark] .ai-report-table th{background:#2d413d}body[data-theme=dark] .ai-response-card,body[data-theme=dark] .ai-follow-up-bubble.assistant{border-color:#385976;color:#dce6f0;background:#1c3041}body[data-theme=dark] .ai-response-table-wrap,body[data-theme=dark] .ai-response-table-wrap th,body[data-theme=dark] .ai-response-table-wrap td{border-color:#4b5c6c;color:#dce6f0;background:#24394b}body[data-theme=dark] .ai-response-table-wrap th{background:#2a4052}body[data-theme=dark] .ai-composer input{border-color:#465563;color:#f1f5f9;background:#1d1d1d}body[data-theme=dark] .ai-composer-quota{border-color:#465563;color:#a7b4c8;background:#1d1d1d}body[data-theme=dark] .ai-composer input:disabled{color:#7e8996;background:#202020}body[data-theme=dark] .ai-analysis-dialog{color:#e5edf5;background:#242424}body[data-theme=dark] .ai-dialog-head button{color:#a7b4c8}body[data-theme=dark] .ai-dialog-field{color:#e5edf5}body[data-theme=dark] .ai-dialog-field select,body[data-theme=dark] .ai-dialog-cancel{border-color:#46515f;color:#e5edf5;background:#1b1b1b}@media(max-width:600px){.back-to-top{right:18px;bottom:18%;width:42px;height:42px}.rank-change-head{align-items:flex-start;flex-direction:column}.progress-coefficient-summary{grid-template-columns:1fr}.progress-reference-title{align-items:flex-start;flex-direction:column}}.content .panel{min-width:0}.dashboard-trend-panel{width:100%;margin-top:18px}.class-pk-controls .filters{align-items:end}.class-pk-controls label{min-width:150px}.class-pk-summary{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:18px;padding:14px 16px;border:1px solid var(--glass-border);border-radius:10px;background:#f7fbffb8;color:var(--muted)}.class-pk-summary strong{color:var(--ink)}.class-pk-summary b{margin-left:auto}.class-pk-summary b.up{color:#18794e}.class-pk-summary b.down{color:#b42318}.back-to-top{position:fixed;z-index:40;right:30px;bottom:20%;display:grid;width:46px;height:46px;place-items:center;border:1px solid rgba(37,99,235,.22);border-radius:50%;color:#fff;background:#2563ebeb;box-shadow:0 10px 24px #2563eb3d;cursor:pointer;transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease}.back-to-top:hover{background:var(--blue-dark);box-shadow:0 12px 28px #2563eb52;transform:translateY(-2px)}.back-to-top:focus-visible{outline:3px solid rgba(37,99,235,.3);outline-offset:3px}.parent-analysis-toolbar{margin-bottom:16px}.parent-shell .page-head p{font-size:18px}.parent-shell .stat-top{font-size:16px}.parent-shell .stat-trend{font-size:16px;line-height:1.45}.parent-shell .panel-title{font-size:22px}.parent-shell .panel-subtitle{font-size:17px}.parent-shell .chart-legend{font-size:16px}.parent-trend-scope{margin-left:auto;color:var(--mint);font-size:16px;font-weight:800;white-space:nowrap}.parent-shell .activity-list{gap:22px}.parent-shell .activity p{font-size:18px;line-height:1.55}.parent-shell .activity small{font-size:15px;line-height:1.45}.parent-dashboard-trend-panel{padding-bottom:24px}.parent-dashboard-trend-head{display:grid;grid-template-columns:minmax(280px,1fr) auto;align-items:center;gap:8px 24px}.parent-dashboard-trend-head>div:first-child{grid-row:1 / 3}.parent-dashboard-trend-head .parent-trend-scope{grid-column:2;margin-left:0;justify-self:end}.parent-trend-legend{display:flex;grid-column:2;align-items:center;justify-self:end;gap:18px;color:var(--muted);font-size:15px;font-weight:700;flex-wrap:wrap}.parent-trend-legend span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.parent-trend-legend i{width:11px;height:11px;border-radius:50%;box-shadow:0 0 0 3px #94a3b826}.parent-trend-child{background:#2563eb}.parent-trend-class{background:#10b981}.parent-trend-grade{background:#f59e0b}.parent-shell .trend-chart-axes{width:100%;max-width:1260px;height:460px;margin:8px auto 0;padding:18px 10px 6px;overflow:visible}.parent-shell .trend-chart-axes .chart-svg{inset:12px 10px 8px;width:calc(100% - 20px);height:calc(100% - 20px);overflow:visible}.trend-axis-line{stroke:#8799ad;stroke-width:1.4}.trend-gridline{stroke:#d6e0ea;stroke-width:1;stroke-dasharray:4 5}.trend-axis-label,.trend-axis-title,.trend-x-label{fill:#667b91;font-size:14px}.trend-axis-title{font-weight:800}.trend-value-guide{stroke-width:1.4;stroke-dasharray:3 3;opacity:.75}.trend-value-label-box{fill:#fff;stroke-width:1.5}.trend-value-label-text{font-size:13px;font-weight:900}.trend-benchmark-line{stroke:#f2994a;stroke-width:1.5;stroke-dasharray:7 5;opacity:.85}.trend-benchmark-label{fill:#b96b20;font-size:13px;font-weight:700}body[data-theme=dark] .parent-trend-legend{color:#cbd5e1}body[data-theme=dark] .trend-value-label-box{fill:#1f2937}@media(max-width:900px){.parent-dashboard-trend-head{grid-template-columns:1fr;align-items:flex-start}.parent-dashboard-trend-head>div:first-child{grid-row:auto}.parent-dashboard-trend-head .parent-trend-scope,.parent-trend-legend{grid-column:1;justify-self:start}.parent-trend-legend{gap:10px 16px}.parent-shell .trend-chart-axes{max-width:none;height:370px}}@media(max-width:600px){.parent-shell .trend-chart-axes{height:320px;padding-right:2px;padding-left:2px}.parent-trend-legend{font-size:13px}}.parent-binding-rules .activity-list{gap:18px}.parent-binding-rules .activity p{font-size:17px;line-height:1.55}.parent-binding-rules .activity small{font-size:15px;line-height:1.45}.parent-binding-rules .demo-hint{font-size:15px;line-height:1.6}.parent-analysis-toolbar .filters{margin:0}.parent-analysis-toolbar .panel-subtitle{color:var(--text);font-weight:800}.parent-analysis-toolbar .select{min-width:260px}.parent-rank-change{display:inline-grid;gap:3px;min-width:132px;text-align:center;white-space:nowrap}.parent-score-filters{display:grid;width:100%;min-height:96px;grid-template-columns:28% 9% 12% 10% 11% 9% 9% 12%;align-items:center;column-gap:0;row-gap:10px}.parent-score-filters .select{grid-column:1 / 4;width:100%;min-width:0;min-height:72px;padding-top:18px;padding-bottom:18px;font-size:18px}.parent-score-filters .parent-current-total{grid-column:4 / 9;justify-self:start;margin-right:0;margin-left:40px;padding:12px 0;font-size:18px;line-height:1.6}.parent-score-filters .select{width:100%;min-width:0}.parent-growth-inline{margin:18px 0 22px;padding-top:4px;border-top:1px solid var(--line)}.parent-growth-stats{margin:0 0 18px}.parent-growth-stats .stat-card{padding:14px 16px}.parent-growth-stats .stat-value{margin:10px 0 4px;font-size:24px;line-height:1.2;letter-spacing:0}.parent-growth-stats .stat-trend{font-size:12px}.parent-growth-stats .stat-card:first-child .stat-value{font-size:18px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.parent-growth-subjects{margin-top:24px;margin-left:-16px;margin-bottom:30px;width:calc(100% + 8px)}.parent-growth-subjects>.panel-head{margin-left:16px}.parent-growth-subject-table{width:100%;table-layout:fixed}.parent-growth-subject-table th,.parent-growth-subject-table td{white-space:nowrap}.parent-growth-subject-table th:nth-child(1),.parent-growth-subject-table td:nth-child(1){width:12%}.parent-growth-subject-table th:nth-child(2),.parent-growth-subject-table td:nth-child(2){width:12%}.parent-growth-subject-table th:nth-child(3),.parent-growth-subject-table td:nth-child(3){width:9%}.parent-growth-subject-table th:nth-child(4),.parent-growth-subject-table td:nth-child(4){width:11%}.parent-growth-subject-table th:nth-child(5),.parent-growth-subject-table td:nth-child(5){width:11%}.parent-growth-subject-table th:nth-child(6),.parent-growth-subject-table td:nth-child(6){width:11%}.parent-growth-subject-table th:nth-child(7),.parent-growth-subject-table td:nth-child(7){width:8%}.parent-growth-subject-table th:nth-child(8),.parent-growth-subject-table td:nth-child(8){width:8%}.parent-growth-subject-table th:nth-child(9),.parent-growth-subject-table td:nth-child(9){width:9%}.parent-growth-subject-table th:nth-child(10),.parent-growth-subject-table td:nth-child(10){width:9%}.student-progress-table-wrap{width:calc(100% - 16px)}.student-progress-table{width:100%}.student-progress-table th,.student-progress-table td{font-size:16px}.student-progress-table th:nth-child(9),.student-progress-table td:nth-child(9){padding-right:4px}.student-progress-table th:nth-child(10),.student-progress-table td:nth-child(10){padding-left:4px}.student-progress-table td:nth-child(10) .progress-level{min-width:100px;min-height:30px;font-size:15px}.student-progress-table td:nth-child(6) .progress-level{min-width:100px;min-height:30px;padding:5px 10px;font-size:17px;font-weight:800}.progress-direction-arrow{display:inline-block;font-size:24px;font-weight:900;line-height:1;color:#1f2937}.progress-direction-arrow.level-positive{color:var(--mint)}.progress-direction-arrow.level-negative{color:var(--danger)}.student-focus-table-wrap{width:100%;overflow-x:auto}.student-focus-table{width:100%;min-width:860px;table-layout:fixed}.student-focus-table th,.student-focus-table td{font-size:16px;vertical-align:middle}.student-focus-table th:nth-child(1),.student-focus-table td:nth-child(1){width:15%}.student-focus-table th:nth-child(2),.student-focus-table td:nth-child(2){width:13%;white-space:nowrap}.student-focus-table th:nth-child(3),.student-focus-table td:nth-child(3){width:12%}.student-focus-table th:nth-child(4),.student-focus-table td:nth-child(4){width:7%}.student-focus-table th:nth-child(5),.student-focus-table td:nth-child(5){width:15%}.student-focus-table th:nth-child(6),.student-focus-table td:nth-child(6){width:38%;text-align:left;white-space:nowrap}.student-focus-table td:nth-child(6) strong{font-size:16px}.student-focus-table td:nth-child(5){text-align:center!important}.student-focus-table td:nth-child(5) .progress-level{min-width:94px;min-height:30px;padding:5px 10px;font-size:17px;font-weight:800}.student-focus-table td:nth-child(6){text-align:left!important;padding-left:48px;padding-right:10px}.parent-growth-suggestions{margin-top:30px}.parent-growth-suggestions>.panel-title{font-size:20px}.parent-growth-suggestions .activity p{font-size:16px;line-height:1.45}.parent-growth-suggestions .activity small{font-size:14px;line-height:1.35}.parent-ai-panel{margin-top:22px;padding:20px;border:1px solid #d7e5f0;border-radius:12px;background:#f8fbff}.parent-ai-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.parent-ai-head p{margin:5px 0 0;color:var(--muted);font-size:14px}.parent-ai-head .primary-button,.parent-ai-composer .primary-button{width:auto;white-space:nowrap}.parent-ai-source{display:flex;align-items:center;gap:8px;margin-top:14px;color:var(--muted)}.parent-ai-content{margin-top:12px;padding:16px;border:1px solid #cfe0ec;border-radius:10px;color:#243b53;background:#fff;white-space:pre-wrap;font-size:16px;line-height:1.8}.parent-ai-follow-up{max-width:82%;margin-top:10px;padding:11px 14px;border-radius:10px;white-space:pre-wrap;font-size:15px;line-height:1.65}.parent-ai-follow-up.parent{margin-left:auto;color:#fff;background:#2f80ed}.parent-ai-follow-up.assistant{color:#243b53;background:#fff;border:1px solid #cfe0ec}.parent-ai-composer{display:flex;gap:10px;margin-top:14px}.parent-ai-composer input{flex:1;min-width:0;min-height:44px;padding:9px 12px;border:1px solid #cbd9e6;border-radius:8px;font:inherit}.parent-score-detail-head{margin-top:8px}.parent-score-table{width:100%;min-width:0;table-layout:fixed}.parent-score-table th{font-size:14px}.parent-score-table th,.parent-score-table td{min-width:0;padding:11px 10px;white-space:normal;overflow-wrap:anywhere}.parent-score-table th:nth-child(1),.parent-score-table td:nth-child(1){width:17%}.parent-score-table th:nth-child(2),.parent-score-table td:nth-child(2){width:14%}.parent-score-table th:nth-child(3),.parent-score-table td:nth-child(3){width:14%}.parent-score-table th:nth-child(4),.parent-score-table td:nth-child(4){width:14%}.parent-score-table th:nth-child(5),.parent-score-table td:nth-child(5){width:12%}.parent-score-table th:nth-child(6),.parent-score-table td:nth-child(6){width:12%}.parent-score-table th:nth-child(7),.parent-score-table td:nth-child(7){width:17%}.parent-current-total{color:var(--text);font-size:16px;font-weight:700;white-space:nowrap}.parent-shell .table-wrap table th,.parent-shell .table-wrap table td{text-align:center}.row-link-button{width:auto;padding:7px 11px;border:1px solid #bfdbfe;border-radius:8px;color:#1d4ed8;background:#eff6ff;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.row-link-button:hover{border-color:#60a5fa;background:#dbeafe}body[data-theme=dark] .row-link-button{border-color:#31598e;color:#bfdbfe;background:#172554}body[data-theme=dark] .row-link-button:hover{background:#1e3a8a}body[data-theme=dark] .secondary-button{border-color:#465563;color:#dbeafe;background:#242424}body[data-theme=dark] .secondary-button:hover{background:#303030}.table-wrap table td:last-child{white-space:normal;min-width:180px}.parent-score-table td:last-child{min-width:0}.parent-score-table td:last-child .parent-rank-change{min-width:132px}.table-wrap.progress-reference-table table td:last-child{min-width:0}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.subject-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.subject-card strong{display:block;margin-top:8px;font-size:24px}.subject-card small{color:var(--muted)}body[data-theme=dark] .subject-card{background:#0f172a}@media(max-width:760px){.form-grid,.subject-grid,.progress-filter-grid{grid-template-columns:1fr}.progress-filter-actions .sms-button{width:100%}.exam-progress-command-bar{align-items:stretch;flex-direction:column}.exam-progress-command-bar .row-actions{display:grid;grid-template-columns:1fr}.exam-progress-command-bar .row-actions button{width:100%!important}.filters{display:grid;grid-template-columns:1fr}.filters .select,.filters .input,.panel .filters .input[type=file],.filters .sms-button,.filters .primary-button{width:100%!important;min-width:0}.auth-links{flex-wrap:wrap;row-gap:10px}.exam-tabs{grid-template-columns:1fr}.exam-tabs button{justify-content:flex-start;padding:0 16px}.subject-options,.subject-options.compact{grid-template-columns:1fr}.plan-selector{width:100%;min-width:0}.teacher-year-switcher,.active-teaching-scope{align-items:stretch;flex-direction:column}.teacher-year-switcher .progress-filter{width:100%}.teaching-identity-switcher{grid-template-columns:1fr}.active-teaching-scope>small{margin-left:0}.year-plan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.year-plan-steps{grid-template-columns:1fr 1fr}.year-wizard-context{align-items:stretch;flex-direction:column}.year-wizard-context .progress-filter{width:100%}.wizard-form-grid,.wizard-form-grid.compact,.wizard-form-grid.assignment{grid-template-columns:1fr}.wizard-form-grid .primary-button,.wizard-form-grid .sms-button{width:100%}.wizard-class-grid,.preview-class-list{grid-template-columns:1fr}.wizard-metrics{grid-template-columns:1fr 1fr}.placement-toolbar{grid-template-columns:1fr}.wizard-save-row{align-items:stretch;flex-direction:column}.wizard-save-row .primary-button{width:100%}.validation-overview{grid-template-columns:1fr 1fr}.validation-overview .sms-button{grid-column:1 / -1;width:100%;justify-self:stretch}.publish-confirm-card{grid-template-columns:1fr;text-align:center}.publish-icon{margin:0 auto}.publish-confirm-card .primary-button{width:100%}.year-plan-actions{display:grid;grid-template-columns:1fr}.year-plan-actions .sms-button,.year-plan-actions .primary-button{width:100%!important}.year-plan-archive-box,.teacher-year-switcher,.archived-year-notice{align-items:stretch;flex-direction:column}.year-plan-archive-box .sms-button,.teacher-year-switcher .progress-filter{width:100%}.bulk-assignment-bar{grid-template-columns:1fr}.year-assignment-table{min-width:680px}.empty-state{padding:28px 18px}.panel{padding:16px}.panel-head{align-items:flex-start;flex-direction:column}.table-wrap{border-radius:10px}th,td{padding:11px 12px}}@media(max-width:900px){.ai-workbench{height:auto;min-height:0;grid-template-columns:1fr}.ai-workbench.history-collapsed{grid-template-columns:1fr}.ai-history-panel{max-height:240px;border-right:0;border-bottom:1px solid var(--line)}.ai-history-panel.collapsed{max-height:60px;border-bottom:1px solid var(--line)}.ai-history-panel.collapsed .ai-history-head{justify-content:flex-end}.ai-history-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-conversation-stage{height:720px}}@media(max-width:640px){.ai-entry-grid,.ai-history-list{grid-template-columns:1fr}.ai-report-toolbar .ai-toolbar-select,.ai-report-toolbar .primary-button{width:100%;max-width:none}.ai-entry-card{min-height:94px;padding:14px}.ai-entry-copy small{white-space:normal}.ai-report-toolbar{align-items:flex-start;flex-direction:column;padding:11px 14px}.ai-report-toolbar span:last-child{max-width:100%}.ai-conversation-stage{height:680px}.ai-conversation-scroll{padding:16px 12px 24px}.ai-message-list{gap:25px}.ai-message-row{gap:7px}.ai-message-avatar{width:32px;height:32px;flex-basis:32px}.ai-report-message,.ai-response-card{width:calc(100% - 39px)}.ai-report-page{padding:17px 14px 0;border-radius:14px}.ai-report-page>h2{margin-bottom:17px}.ai-report-section{padding-bottom:20px}.ai-report-section h3{font-size:17px}.ai-student-summary-grid{grid-template-columns:1fr}.ai-report-table th,.ai-report-table td{padding:10px 11px;font-size:13px}.ai-response-card{padding:17px 15px 20px;border-radius:14px}.ai-response-card h3{font-size:19px}.ai-response-head>strong{font-size:21px}.ai-response-summary-grid,.ai-response-actions ol{grid-template-columns:1fr}.ai-response-actions>div{align-items:flex-start;flex-direction:column;gap:3px}.ai-follow-up-bubble{max-width:calc(100% - 39px)}.ai-composer{grid-template-columns:minmax(0,1fr) 54px;padding:12px}.ai-composer.no-quota{grid-template-columns:minmax(0,1fr) 54px}.ai-composer input,.ai-composer button{height:48px}.ai-composer input{padding-left:17px}.ai-composer-quota{grid-column:1 / -1;grid-row:2;justify-self:end;height:auto;padding:7px 2px 0;border:0;font-size:12px}.ai-dialog-backdrop{padding:14px}.ai-analysis-dialog{padding:21px 18px 18px}.ai-dialog-actions{display:grid;grid-template-columns:1fr 1.45fr}}.ai-subject-comparison{display:grid;gap:10px}.ai-subject-comparison-row{display:grid;grid-template-columns:72px minmax(180px,520px) 120px 110px;align-items:center;gap:10px;font-size:15px}.ai-subject-comparison-row>div{height:10px;overflow:hidden;background:#e7edf3;border-radius:3px}.ai-subject-comparison-row i{display:block;height:100%;background:#2576a8}.ai-subject-comparison-row strong{text-align:right;white-space:nowrap}.ai-subject-comparison-row small{color:#667085}.ai-subject-total-row{margin-top:10px;padding-top:12px;border-top:1px solid #d4e2ec}.ai-subject-total-row>strong:first-child{color:#31475c;text-align:left}.ai-subject-total-row{margin-top:4px;padding-top:10px;border-top:1px solid var(--line)}.ai-subject-total-row>span strong{color:var(--text)}.ai-live-response-card .ai-response-live-content{padding:16px 18px;border-bottom:1px solid #e4eaf0;font-size:16px;line-height:1.75}.ai-live-response-card .ai-response-live-content p{margin:0 0 8px}.ai-live-response-card .ai-response-blank-line{height:1.75em}.ai-live-response-card .ai-response-tier-title-spaced{margin-top:1.75em}.ai-live-response-card .ai-response-live-content .ai-response-section-title{margin:24px 0 11px;color:#ff4b3e;font-size:16px;font-weight:800}.ai-live-response-card .ai-response-live-content .ai-response-section-title:first-child{margin-top:0}.ai-live-response-card .ai-response-live-content .ai-response-student-section-title{margin:24px 0 11px;color:#ff4b3e;font-size:18px;font-weight:800}.ai-live-response-card .ai-response-live-content .ai-response-student-section-title:first-child{margin-top:0}.ai-live-response-card .ai-response-live-content .ai-response-bullet{position:relative;display:block;padding-left:20px}.ai-live-response-card .ai-response-live-content .ai-response-bullet-mark{position:absolute;top:0;left:0;color:#58a9c0;font-size:22px;line-height:1.25}.ai-follow-up-formatted .ai-response-live-content{font-size:inherit;line-height:inherit}.ai-follow-up-formatted .ai-response-live-content p{margin:0 0 8px}.ai-follow-up-formatted .ai-response-blank-line{height:1.2em}.ai-follow-up-formatted .ai-response-student-section-title{margin:16px 0 8px;color:#ff4b3e;font-weight:800}.ai-follow-up-formatted .ai-response-student-section-title:first-child{margin-top:0}.ai-follow-up-formatted .ai-response-bullet{position:relative;display:block;padding-left:20px}.ai-follow-up-formatted .ai-response-bullet-mark{position:absolute;top:0;left:0;color:#58a9c0;font-size:22px;line-height:1.25}.ai-follow-up-formatted .ai-subject-emphasis,.ai-live-response-card .ai-response-live-content .ai-subject-emphasis{color:#111;font-weight:800}.ai-response-field-label{color:#253b56;font-weight:800}.ai-response-disclaimer{margin-top:18px;padding-top:18px;border-top:1px dashed #b7c6d6;color:#5e7187;font-size:14px;line-height:1.7}.ai-gift-message{margin-top:22px;padding:16px 18px;border-top:1px dashed #b7c6d6;color:#536b80;background:#ffffff8f;font-size:15px;line-height:1.8}.ai-gift-message strong{color:#cf7b37}.ai-score-rank-cell,.ai-student-scorecard-table th,.ai-student-scorecard-table td,.ai-class-scorecard-table th,.ai-class-scorecard-table td{text-align:center}.ai-subject-teacher-scorecard-table{min-width:780px}.grade-leader-report-row{align-items:flex-start}.grade-leader-ai-report{width:min(980px,calc(100% - 40px));padding:28px 34px 30px;border:1px solid #b9e6f3;border-radius:18px;color:#26384d;background:#eaf8ff;box-shadow:0 10px 24px #378cb21a}.grade-leader-ai-report>section{padding:25px 0;border-top:1px solid #c9dfeb}.grade-leader-ai-report>section:first-of-type{padding-top:22px;border-top:0}.grade-report-lead{margin:0 0 20px;color:#42566b;font-size:15px;line-height:1.8}.grade-leader-ai-report h2,.grade-leader-ai-report h3{margin:0 0 15px;color:#ff4b3e;font-size:21px;line-height:1.45}.grade-leader-ai-report h3{font-size:18px}.grade-report-paragraphs{display:grid;gap:8px;padding:0 18px}.grade-report-paragraphs p,.grade-report-callouts p,.grade-report-conclusion p{margin:0;font-size:15px;line-height:1.8}.grade-report-paragraphs strong,.grade-report-callouts strong{color:#ff4b3e}.grade-report-subject{color:#111827;font-weight:850}.grade-report-paragraphs .grade-report-tier-heading{margin-top:12px;padding:8px 12px;border-left:4px solid #253b56;color:#253b56;background:#f2f6fa;font-size:16px;font-weight:850;line-height:1.55}.grade-report-paragraphs .grade-report-student-group{margin-top:20px;padding-top:16px;border-top:1px dashed #b8d2df;color:#253b56;font-size:16px;font-weight:850}.grade-report-paragraphs .grade-report-student-group:first-child{margin-top:0;padding-top:0;border-top:0}.grade-report-callouts{display:grid;gap:8px;margin:15px 18px 0}.grade-report-leader-highlights{margin-top:16px}.grade-report-leader-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:15px 18px 0}.grade-report-leader-grid details{padding:13px 15px;border:1px solid #d6e1e8;border-radius:8px;background:#fbfdff}.grade-report-leader-grid summary{cursor:pointer;color:#c83d35;font-size:15px;font-weight:800}.grade-report-leader-grid ul,.grade-report-leader-grid ol{margin:10px 0 0;padding-left:20px}.grade-report-leader-grid li,.grade-report-leader-grid p{margin:0 0 6px;color:#344054;font-size:14px;line-height:1.65}.grade-report-improving-group{display:grid;gap:3px;margin-bottom:10px;color:#344054;font-size:14px;line-height:1.65}.grade-report-improving-group strong{color:#344054}.grade-report-improving-group span{padding-left:10px}.grade-tier-teaching-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 18px}.grade-tier-teaching-card{padding:14px 16px;border:1px solid #d6e1e8;border-radius:8px;background:#fbfdff}.grade-tier-teaching-card h3{margin:0 0 10px;color:#253b56;font-size:16px}.grade-tier-teaching-card p,.grade-teaching-suggestions p{margin:0 0 7px;color:#344054;font-size:14px;line-height:1.65}.grade-tier-teaching-card strong{color:#253b56}.grade-teaching-suggestions{display:grid;gap:5px;margin:0 18px}@media(max-width:900px){.grade-tier-teaching-list{grid-template-columns:1fr}}@media(max-width:900px){.grade-report-leader-grid{grid-template-columns:1fr}}.grade-report-table-wrap{margin:17px 0 0;overflow-x:auto;border:1px solid #c8d2dc;background:#fff;box-shadow:0 2px 6px #22415c1a}.grade-report-table-wrap table{width:100%;min-width:650px;border-collapse:collapse}.grade-report-table-wrap th,.grade-report-table-wrap td{padding:11px 13px;border-right:1px solid #ced7e0;border-bottom:1px solid #ced7e0;color:#344054;font-size:14px;line-height:1.55;text-align:left}.grade-report-table-wrap th{color:#1f2937;background:#f8fafc;font-weight:800}.grade-report-table-wrap th:last-child,.grade-report-table-wrap td:last-child{border-right:0}.grade-report-table-wrap tr:last-child td{border-bottom:0}.grade-report-table-wrap tbody tr:nth-child(2n) td{background:#f8fbfd}.grade-report-conclusion{margin-top:0;padding-bottom:0!important}.analysis-subject-statistics-table th,.analysis-subject-statistics-table td,.analysis-details .table-wrap table th,.analysis-details .table-wrap table td{text-align:center}.analysis-subject-statistics-table{min-width:1520px}.analysis-subject-statistics-table th:nth-child(10),.analysis-subject-statistics-table td:nth-child(10){min-width:112px;padding-right:28px}.analysis-subject-statistics-table th:nth-child(11),.analysis-subject-statistics-table td:nth-child(11){min-width:140px;padding-left:28px;border-left:1px solid var(--line)}.table-wrap .analysis-subject-statistics-table td:last-child{min-width:124px}.ai-ranking-progress{display:inline-block;margin-left:22px}@media(max-width:680px){.ai-subject-comparison-row{grid-template-columns:58px minmax(70px,1fr) 100px;gap:7px;font-size:13px}.ai-subject-comparison-row small{grid-column:2 / -1}}:root{--canvas: #eaf1f8;--canvas-deep: #dce8f4;--surface-glass: rgba(255, 255, 255, .76);--surface-glass-strong: rgba(255, 255, 255, .9);--surface-soft: rgba(239, 246, 255, .74);--ink: #172b46;--text: #172b46;--muted: #5f7186;--line: #cbd9e7;--glass-border: rgba(255, 255, 255, .8);--glass-shadow: 0 12px 28px rgba(47, 72, 101, .12);--focus-ring: 0 0 0 3px rgba(47, 111, 191, .24);--blue: #286db5;--blue-dark: #1d568f;--primary: #286db5;--primary-hover: #1d568f;--mint: #16856a;--danger: #c74655;--warning: #b97819}html,body,#root{min-height:100%}body{color:var(--ink);background:linear-gradient(112deg,#dfedf9f0,#f1edfad1 48%,#fceaf1b8),var(--canvas)}body:before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background-image:linear-gradient(180deg,rgba(255,255,255,.42),transparent 42%)}.app-shell.active{position:relative;min-height:100vh;background:transparent}.sidebar{border-right:1px solid var(--glass-border);background:linear-gradient(165deg,#c2ddf49e,#d8d7f48a 54%,#f6d6e57a),#ebf5fd47;box-shadow:8px 0 30px #36506e1a,inset -1px 0 #ffffff6b;backdrop-filter:blur(22px) saturate(132%);-webkit-backdrop-filter:blur(22px) saturate(132%)}.sidebar-header{padding:24px 20px 25px}.sidebar .brand-mark{color:var(--ink)}.sidebar .mark-icon{border-radius:8px;color:#fff;background:#2d70b8;box-shadow:0 6px 14px #2d70b838}.role-chip{border:1px solid #cbdcf0;border-radius:999px;color:#245f9c;background:#e9f2fdd6}.nav{gap:6px;padding:0 12px}.nav-button{border-radius:6px;color:#566b81;transition:color .16s ease,background-color .16s ease,box-shadow .16s ease}.nav-button:hover{color:#245f9c;background:#ffffff7a;box-shadow:inset 0 1px #ffffff7a}.nav-button.active{color:#18568f;border:1px solid rgba(255,255,255,.56);background:linear-gradient(100deg,#c1dbf4a3,#e2e6f96b);box-shadow:inset 3px 0 #3d83c9,inset 0 1px #ffffff9e,0 5px 13px #3e699614}.sidebar-footer{border-top-color:#ffffff94;background:#ffffff2b}.avatar{border-radius:8px;color:#19598f;background:#d9eafb}.user-mini small,.logout{color:var(--muted)}.logout{display:inline-flex;align-items:center;gap:7px}.logout:hover{color:var(--danger)}.main{background:transparent}.topbar{height:74px;border-bottom:1px solid var(--glass-border);background:#ffffff9e;box-shadow:0 4px 18px #2f48650d;backdrop-filter:blur(16px) saturate(115%);-webkit-backdrop-filter:blur(16px) saturate(115%)}.topbar h2{color:var(--ink);letter-spacing:0}.date-label{color:var(--muted)}.icon-button{border-color:#c7d7e7;border-radius:6px;color:#44637d;background:#ffffffc2}.icon-button:hover{border-color:#8fb3d7;color:#1f609b;background:#f6faff}.content{max-width:1500px}.account-menu-wrap{position:relative}.account-trigger{display:inline-flex;width:auto;min-height:36px;align-items:center;gap:4px;padding:0 2px;border:0;border-radius:8px;color:var(--muted);background:transparent;cursor:pointer}.account-trigger:hover{color:var(--blue)}.account-trigger .avatar{flex:0 0 36px}.account-menu{position:absolute;z-index:50;top:calc(100% + 10px);right:0;width:min(288px,calc(100vw - 28px));padding:10px;border:1px solid var(--glass-border);border-radius:8px;color:var(--ink);background:var(--surface-glass-strong);box-shadow:0 18px 40px #2f48652e;backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%)}.account-menu-profile{display:flex;min-width:0;align-items:center;gap:10px;padding:8px 9px 12px}.account-menu-profile>div{min-width:0}.account-menu-profile strong,.account-menu-profile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-profile strong{color:var(--ink);font-size:14px}.account-menu-profile small{margin-top:4px;color:var(--muted);font-size:12px}.account-menu-divider{height:1px;margin:0 0 6px;background:var(--line)}.account-menu>button{display:flex;width:100%;min-height:40px;align-items:center;gap:10px;padding:0 9px;border:0;border-radius:6px;color:var(--ink);background:transparent;font:inherit;font-size:14px;text-align:left;cursor:pointer}.account-menu>button:hover{color:var(--blue-dark);background:var(--surface-soft)}.account-menu>.account-menu-logout{color:var(--danger)}.account-menu>.account-menu-logout:hover{color:#a52d3e;background:#c7465514}.account-dialog-backdrop{position:fixed;z-index:80;inset:0;display:grid;padding:20px;place-items:center;background:#0f172a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.account-dialog{width:min(460px,100%);padding:24px;border:1px solid var(--glass-border);border-radius:8px;color:var(--ink);background:var(--surface-glass-strong);box-shadow:0 22px 60px #0f172a3d}.account-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.account-dialog-head h2{margin:6px 0 0;color:var(--ink);font-size:22px}.account-dialog-intro{margin:12px 0 20px;color:var(--muted);font-size:14px;line-height:1.55}.account-dialog form{display:grid;gap:2px}.account-dialog .field{margin-bottom:14px}.validated-input{position:relative}.validation-mark{position:absolute;z-index:2;top:50%;right:48px;display:grid;width:22px;height:22px;place-items:center;border-radius:50%;color:#fff;font-size:14px;font-weight:900;line-height:1;pointer-events:none;transform:translateY(-50%)}.validation-mark.valid{background:#16856a}.validation-mark.invalid{background:#c74655}.validation-mark.checking{background:#b97819}.account-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:4px}.account-dialog-actions button{width:auto;min-width:96px;min-height:40px;padding:8px 14px}body[data-theme=dark] .account-menu,body[data-theme=dark] .account-dialog{border-color:#ffffff1f;color:var(--text);background:#242424}body[data-theme=dark] .account-menu-profile strong,body[data-theme=dark] .account-dialog-head h2{color:#f3f7ff}body[data-theme=dark] .account-menu>button{color:#e5e7eb}body[data-theme=dark] .account-menu>button:hover{color:#fff;background:#303030}body[data-theme=dark] .account-menu-divider{background:#3a3a3a}body[data-theme=dark] .account-menu>.account-menu-logout{color:#fca5a5}.page-head{margin-bottom:22px}.page-head h1,.page-head h2{color:var(--ink);letter-spacing:0}.page-head p{color:var(--muted)}.eyebrow{color:#2c70b7;letter-spacing:.09em}.panel,.stat-card,.analysis-decision-panel,.analysis-visual-card,.subject-card,.parent-ai-panel,.active-teaching-scope,.teacher-year-switcher,.archived-year-notice,.year-plan-summary,.exam-progress-command-bar{border-color:var(--glass-border);border-radius:8px;background:var(--surface-glass);box-shadow:var(--glass-shadow);backdrop-filter:blur(14px) saturate(115%);-webkit-backdrop-filter:blur(14px) saturate(115%)}.panel{padding:20px}.panel-head{margin-bottom:18px}.panel-title{color:var(--ink);letter-spacing:0}.panel-subtitle,.panel-link{color:var(--muted)}.panel-link:hover{color:#1d609f}.stat-card{padding:19px}.stat-top{color:var(--muted)}.stat-icon{border-radius:6px;color:#2169aa;background:#e6f1fc}.stat-value,.analysis-number{color:var(--ink);letter-spacing:0}.stat-trend{color:#11755d}.stat-trend.down{color:var(--danger)}.input,.select,.password-field .input,.parent-ai-composer input{border-color:#bfcee0;border-radius:6px;color:var(--ink);background:#ffffffe6;box-shadow:inset 0 1px #ffffffb8}.input::placeholder{color:#8191a2}.input:hover,.select:hover,.parent-ai-composer input:hover{border-color:#94b4d3}.input:focus,.select:focus,.input:focus-visible,.select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:none;border-color:#387fbe;box-shadow:var(--focus-ring)}.primary-button,.login-button{border-radius:6px;background:#286db5;box-shadow:0 7px 15px #286db533}.primary-button:hover,.login-button:hover{background:#1d568f;box-shadow:0 8px 17px #1d568f3b}.secondary-button,.sms-button,.row-link-button{border-color:#bed0e2;border-radius:6px;color:#275e94;background:#f6faffdb}.secondary-button:hover,.sms-button:hover,.row-link-button:hover{border-color:#8baed1;color:#194f83;background:#eaf4fd}.primary-button:disabled,.secondary-button:disabled,.sms-button:disabled,.row-actions button:disabled,.login-button:disabled{opacity:.56;filter:saturate(.7)}.filters{gap:10px}.filters .select,.filters .input{min-height:42px;border-radius:6px}.table-wrap{border-color:#bed0e2eb;border-radius:8px;background:#ffffff9e;box-shadow:inset 0 1px #ffffffb8}th{border-bottom-color:#cbd9e7;color:#456179;background:#e7f0f9db}td{border-bottom-color:#ccdae7c2;color:#263d55}tbody tr{transition:background-color .14s ease}tbody tr:hover td{background:#ecf5fdb8}tbody tr:nth-child(2n) td{background:#f9fcff57}.teacher-score-query-table th,.teacher-score-query-table td{text-align:center;vertical-align:middle}.teacher-score-query-table td:first-child{white-space:normal}.teacher-score-query-table td small{display:block;margin-top:3px}.teacher-rank-change{display:inline-flex;min-width:64px;align-items:center;justify-content:center;gap:5px;font-weight:800;white-space:nowrap}.teacher-rank-change b{font-size:18px;line-height:1}.teacher-rank-change.up{color:#16856a}.teacher-rank-change.down{color:#c74655}.teacher-rank-change.neutral{color:#718096;font-weight:700}.badge,.role-chip,.progress-level{border-radius:999px}.badge.success{color:#08765c;background:#d9f4e9}.badge.warning{color:#9a5c08;background:#fff0cf}.badge.neutral{color:#536b81;background:#e9f0f7}.auth-error{border-color:#f3c4ca;border-radius:6px;color:#a93141;background:#ffeff1e6}.binding-success{border-color:#b9e4d3;border-radius:6px;color:#087258;background:#e7f9f2e6}.empty-state{border:1px dashed #bdcfdf;border-radius:8px;color:var(--muted);background:#ffffff7a}.demo-hint{border:1px solid #c8dced;border-radius:6px;color:#48657f;background:#ebf5fecc}.chart,.chart-large{border:1px solid rgba(204,220,235,.86);border-radius:8px;background:#fafdffb3}.chart-grid span{border-top-color:#d5e2ee}.chart-legend,.chart-labels{color:#61768b}.dot,.trend-legend-primary{background:#2d78bd}.dot.mint,.trend-legend-secondary{background:#16917a}.bar{background:#e0ebf4}.bar i{background:#347cbe}.activity-bullet{background:#23856f;box-shadow:0 0 0 4px #dcefe9}.teacher-shell .chart,.teacher-shell .analysis-visual-card,.teacher-shell .analysis-decision-panel{border-color:#c2d6e9f0}.teacher-shell .chart svg polyline,.teacher-shell .chart svg path{stroke:#2c76bb}.teacher-shell .distribution-column.pass,.teacher-shell .distribution-column{background:#4b8fca}.teacher-shell .subject-health-ghost-track i.class-average,.teacher-shell .subject-health-legend i.class-average{background:#347dbe}.teacher-shell .subject-health-ghost-track i.grade-average,.teacher-shell .subject-health-legend i.grade-average{background:#dc8d96}.teacher-shell .trend-mode-button.active{border-color:#7faed7;color:#1f639f;background:#e6f1fb}.admin-shell .panel-head .filters,.admin-shell .filters{align-items:center}.admin-shell .row-actions button.danger,.admin-shell .danger{border-radius:6px}.parent-shell .parent-current-total{color:#1b4f80}.parent-shell .parent-growth-inline,.parent-shell .parent-ai-content{border-color:#c5d8e9eb;border-radius:8px;background:#ffffff9e}.login-shell{grid-template-columns:minmax(280px,.78fr) minmax(520px,1.22fr);background:linear-gradient(122deg,#dfedf9f2,#f2edfae0 52%,#fcebf2d1)}.brand-panel{color:var(--ink);padding:36px clamp(24px,4vw,48px);border-right:1px solid rgba(255,255,255,.68);background:linear-gradient(145deg,#79a9d3ad,#a1a6d38f 52%,#ecbecf94),#ffffff5c;box-shadow:inset -1px 0 #ffffff5c,10px 0 28px #4a5c7c17;backdrop-filter:blur(20px) saturate(120%);-webkit-backdrop-filter:blur(20px) saturate(120%)}.brand-panel:before,.brand-panel:after{display:none}.brand-panel .brand-mark{color:var(--ink)}.brand-panel .mark-icon{color:#fff;background:#2d70b8}.brand-content{max-width:420px}.brand-copy{padding:36px 0}.brand-copy h1{max-width:400px;color:var(--ink);letter-spacing:0;font-size:clamp(32px,3.4vw,48px)}.brand-copy p,.brand-points{color:#536b81}.brand-copy p{max-width:380px;font-size:16px;line-height:1.75}.brand-points{flex-wrap:wrap;gap:12px 18px;font-size:12px}.brand-points span:before{color:#1d9478}.login-panel{padding:36px 40px;background:#ffffff42}.login-card{width:min(100%,600px);padding:36px 36px 28px;border:1px solid var(--glass-border);border-radius:8px;background:var(--surface-glass);box-shadow:var(--glass-shadow);backdrop-filter:blur(16px) saturate(115%);-webkit-backdrop-filter:blur(16px) saturate(115%)}.login-card h2{margin:6px 0 10px;color:var(--ink);letter-spacing:0;font-size:34px}.login-card .intro,.field label{color:#536b81}.login-card .intro{max-width:none;margin:0 0 22px;font-size:16px;line-height:1.65}.login-card .field{gap:10px;margin-bottom:18px;max-width:none}.login-card .field label{font-size:15px}.login-card .input,.login-card .select{padding:14px 16px;font-size:16px}.login-card .login-button{max-width:none;padding:15px 20px;font-size:17px}.login-card .captcha-row,.login-card .sms-row{grid-template-columns:minmax(0,1fr) 148px;gap:10px}.login-card .captcha-image,.login-card .captcha-loading,.login-card .sms-button{height:50px}.auth-mode-login .intro{margin-bottom:22px}.auth-mode-login .field{margin-bottom:18px}.auth-primary-actions{display:grid;gap:8px;margin-top:4px}.auth-footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;margin-top:12px}.auth-sms-link,.auth-policy-link,.auth-inline-link{display:inline-flex;min-height:36px;padding:0;align-items:center;justify-content:center;border:0;color:#2d70b8;background:transparent;font:inherit;font-size:16px;font-weight:700;cursor:pointer}.auth-sms-link:hover,.auth-policy-link:hover,.auth-inline-link:hover{color:#1d568f;text-decoration:underline}.auth-policy-link{color:#687f95}.auth-policy-link:hover{color:#2d70b8}.auth-inline-link{display:inline;min-height:0;margin-left:8px;font-size:15px;font-weight:700}.password-toggle{border-radius:0 6px 6px 0}.captcha-image,.captcha-loading,.sms-button{border-radius:6px}.auth-entry-grid{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.auth-entry-grid button{display:flex;min-width:0;min-height:76px;padding:12px;align-items:center;justify-content:flex-start;gap:10px;border:1px solid #bad0e4;border-radius:8px;color:#245f96;background:#f1f7fdf0;text-align:left;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.auth-entry-grid button:hover{border-color:#4c8bc2;background:#e7f2fc;box-shadow:0 7px 16px #245f9624;transform:translateY(-1px)}.auth-entry-grid button>svg{flex:0 0 auto}.auth-entry-grid button span{display:grid;min-width:0;gap:4px}.auth-entry-grid button strong{color:#1f5e97;font-size:15px;line-height:1.2;white-space:nowrap}.auth-entry-grid button small{overflow:hidden;color:#687f95;font-size:11px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.activation-steps{display:grid;width:100%;max-width:520px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 22px}.activation-steps span{display:flex;min-height:44px;padding:9px 12px;align-items:center;gap:8px;border:1px solid #d1dce7;border-radius:7px;color:#718399;background:#f6f9fcdb;font-size:13px;font-weight:800}.activation-steps b{display:inline-grid;width:24px;height:24px;flex:0 0 24px;place-items:center;border-radius:50%;color:#60758a;background:#e3ebf2;font-size:12px}.activation-steps span.active{border-color:#6da0cc;color:#205f98;background:#eaf4fd}.activation-steps span.active b{color:#fff;background:#286db5}.activation-steps span.complete{border-color:#9ed8c7;color:#17735c;background:#edf9f5}.activation-steps span.complete b{color:#fff;background:#249777}.activation-verified{max-width:520px;margin-bottom:20px;font-size:13px;font-weight:700}.privacy-consent{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:#536b81;font-size:14px}.privacy-consent input{width:16px;height:16px;accent-color:#286db5}.privacy-consent button{min-height:auto;padding:0;color:#1d568f;text-decoration:underline}.privacy-policy-page{min-height:100vh;padding:48px 24px 72px;background:#eef4f8;color:var(--ink)}.privacy-policy-content{width:min(820px,100%);margin:0 auto}.privacy-policy-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:26px;border-bottom:1px solid #bed0e2}.privacy-policy-header h1{margin:6px 0;font-size:32px;letter-spacing:0}.privacy-policy-header p{margin:0;color:#536b81}.privacy-policy-copy{padding-top:20px;line-height:1.75}.privacy-policy-copy>p{color:#536b81;font-size:14px}.privacy-policy-copy section{padding:20px 0;border-bottom:1px solid #d7e2ec}.privacy-policy-copy h2{margin:0 0 8px;font-size:20px;letter-spacing:0}.privacy-policy-copy p{margin:0}@media(max-width:600px){.privacy-policy-page{padding:28px 18px 48px}.privacy-policy-header{align-items:stretch;flex-direction:column}.privacy-policy-header h1{font-size:28px}}body[data-theme=dark]{--canvas: #172536;--canvas-deep: #101d2c;--surface-glass: rgba(28, 45, 64, .86);--surface-glass-strong: rgba(34, 53, 74, .94);--surface-soft: rgba(39, 61, 84, .82);--ink: #e7f0fa;--text: #e7f0fa;--muted: #aebed0;--line: #3d556e;--glass-border: rgba(129, 155, 181, .26);--glass-shadow: 0 12px 30px rgba(0, 8, 18, .26)}body[data-theme=dark]{background:linear-gradient(115deg,#172536,#20283b 53%,#352c41)}body[data-theme=dark] .sidebar,body[data-theme=dark] .topbar,body[data-theme=dark] .panel,body[data-theme=dark] .stat-card,body[data-theme=dark] .login-card{background:var(--surface-glass)}body[data-theme=dark] .auth-entry-grid button{border-color:#48647d;color:#c9e4fb;background:#243b51}body[data-theme=dark] .auth-entry-grid button:hover{border-color:#79a9d2;background:#2a4661}body[data-theme=dark] .auth-entry-grid button strong{color:#e0f1ff}body[data-theme=dark] .auth-entry-grid button small{color:#aebfd0}body[data-theme=dark] .auth-sms-link,body[data-theme=dark] .auth-inline-link{color:#9ec8ee}body[data-theme=dark] .auth-sms-link:hover,body[data-theme=dark] .auth-inline-link:hover{color:#d7ecff}body[data-theme=dark] .auth-policy-link{color:#aebfd0}body[data-theme=dark] .auth-policy-link:hover{color:#d7ecff}body[data-theme=dark] .activation-steps span{border-color:#465b70;color:#aebfd0;background:#223548}body[data-theme=dark] .activation-steps span.active{border-color:#6c9bc3;color:#dcefff;background:#294761}body[data-theme=dark] .activation-steps span.complete{border-color:#4c8f7c;color:#c8f2e4;background:#1e493f}body[data-theme=dark] .sidebar{background:linear-gradient(180deg,#334d67ad,#1e3246b3),var(--surface-glass)}body[data-theme=dark] .nav-button:hover{background:#7d9ebf24}body[data-theme=dark] .nav-button.active{border-color:#98bddf38;color:#d9edff;background:linear-gradient(100deg,#3c6f9e94,#695e8b61)}body[data-theme=dark] .brand-panel{border-right-color:#9db8d347;background:linear-gradient(145deg,#2d577ed1,#464871bd 52%,#754864b8),#162333bd}body[data-theme=dark] .input,body[data-theme=dark] .select,body[data-theme=dark] .parent-ai-composer input{border-color:#526b83;color:var(--ink);background:#142333e0}body[data-theme=dark] th{color:#bed0e3;background:#334a62b8}body[data-theme=dark] td{color:#dce7f3;border-bottom-color:#5c779173}body[data-theme=dark] tbody tr:nth-child(2n) td{background:#2a3e5452}body[data-theme=dark] tbody tr:hover td{background:#35516c9e}body[data-theme=dark] .table-wrap,body[data-theme=dark] .chart,body[data-theme=dark] .chart-large{border-color:#405b74;background:#18293aa3}@supports not (backdrop-filter: blur(1px)){.sidebar,.topbar,.panel,.stat-card,.analysis-decision-panel,.analysis-visual-card,.subject-card,.parent-ai-panel,.login-card{background:#f9fcff}.brand-panel{background:#dbe9f6}body[data-theme=dark] .sidebar,body[data-theme=dark] .topbar,body[data-theme=dark] .panel,body[data-theme=dark] .stat-card,body[data-theme=dark] .login-card{background:#1d3044}body[data-theme=dark] .brand-panel{background:#294c6e}}@media(max-width:980px){.content{padding:24px 22px 38px}.topbar{padding:0 22px}}@media(max-width:1100px){.login-shell{grid-template-columns:minmax(220px,.5fr) minmax(420px,1.5fr)}.brand-panel{min-height:0}.brand-copy h1{font-size:30px}.login-panel{padding:24px}}@media(max-width:860px){.login-shell{width:100%;max-width:100vw;grid-template-columns:minmax(0,1fr);overflow-x:clip}.brand-panel{min-height:0;padding:22px 20px 16px;background:#ffffff29}.brand-content{max-width:none}.brand-copy{margin:12px 0 8px;padding:0}.brand-copy h1{max-width:none;font-size:28px}.brand-copy p{max-width:none}.login-panel{display:block;width:100%;max-width:100vw;padding:16px 16px 24px;overflow-x:clip}.login-card{width:100%;min-width:0;max-width:calc(100vw - 32px);padding:22px 18px}.login-card h2{font-size:26px}.login-card .intro{font-size:14px}.login-card .field,.login-card .input,.login-card .password-field{min-width:0;max-width:100%}.login-card .captcha-row,.login-card .sms-row,.auth-entry-grid{grid-template-columns:1fr}.auth-entry-grid button{min-height:58px}}@media(max-width:760px){.login-shell{width:100%;max-width:100vw;grid-template-columns:minmax(0,1fr);overflow-x:clip}.brand-panel{min-height:0;padding:22px 20px 16px;background:#ffffff29}.brand-copy{margin:12px 0 8px;padding:0}.brand-copy h1{font-size:28px}.login-panel{display:block;width:100%;max-width:100vw;padding:16px 16px 24px;overflow-x:clip}.login-card{width:100%;min-width:0;max-width:calc(100vw - 32px);padding:22px 18px}.login-card h2{font-size:26px}.login-card .intro{font-size:14px}.login-card .field,.login-card .input,.login-card .password-field{min-width:0;max-width:100%}.auth-entry-grid{grid-template-columns:1fr}.auth-entry-grid button{min-height:58px}.sidebar{background:linear-gradient(165deg,#c2ddf494,#d8d7f480 54%,#f6d6e570),#ebf5fd3d}.topbar{height:68px;padding:0 14px}.topbar h2{max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px}.top-actions{gap:8px;min-width:0}.top-actions .select{max-width:122px;min-width:0;padding-right:26px}.content{padding:18px 14px 30px}.page-head{gap:12px;margin-bottom:18px}.page-head h1{font-size:26px}.page-head p{font-size:14px}.panel,.stat-card{padding:15px}.stats-grid,.five-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-value{font-size:27px}.panel-head>.filters,.page-head>.filters{width:100%}.panel-head>.filters>*,.page-head>.filters>*{flex:1 1 100%}.filters{width:100%}.filters .select,.filters .input,.filters button,.filters .sms-button,.filters .primary-button{min-height:42px}.table-wrap{margin-right:-1px}.teacher-overview-table{min-width:720px}.parent-current-total{white-space:normal;line-height:1.55}}@media(max-width:460px){.stats-grid,.five-stats-grid,.year-plan-summary{grid-template-columns:1fr}.sidebar{width:62px;flex-basis:62px}.sidebar-header{padding-right:8px;padding-left:8px}.nav{padding:0 7px}.sidebar-footer{padding-right:6px;padding-left:6px}.account-trigger{padding-right:0}.account-trigger>svg{display:none}}@media(max-width:520px){.account-dialog{padding:20px 16px}.account-dialog-actions{display:grid;grid-template-columns:1fr 1.35fr}.account-dialog-actions button{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.beian-footer{position:fixed;left:16px;bottom:14px;z-index:40;margin:0;padding:8px 12px;width:max-content;max-width:calc(100vw - 32px);display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;text-align:left;font-size:12px;line-height:1.5;color:#2f3e50db;background:#ffffff47;border:1px solid rgba(255,255,255,.42);border-radius:14px;box-shadow:0 10px 28px #0f172a1a;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%)}.beian-footer a{color:inherit;text-decoration:none}.beian-footer a:hover{text-decoration:underline}.login-shell .brand-panel{padding-bottom:72px}body[data-theme=dark] .beian-footer{color:#e2e8f0e0;background:#0f172a47;border-color:#ffffff29}@media(max-width:860px){.beian-footer{left:12px;bottom:12px;font-size:11px;padding:7px 10px}}.campus-login{--ink:#102c51;--line:#d4e1ef;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);grid-template-rows:1fr auto;min-height:100svh;padding:36px max(32px,calc((100vw - 1600px)/2));gap:0 28px;background:radial-gradient(ellipse at 36% 38%,#d9f0ff,transparent 58%),linear-gradient(135deg,#f5fbff,#eaf6ff 65%,#f6fbff);color:#102c51}.campus-login .brand-panel{min-width:0;padding:0;border:0;background:transparent;overflow:visible}.campus-login .brand-content{max-width:none;height:100%;min-height:650px;justify-content:flex-start}.campus-brand{text-decoration:none;color:#102c51;font-size:24px;gap:18px;align-self:flex-start}.campus-brand small{display:block;margin-top:3px;color:#7d94b4;font-size:16px;font-weight:500;letter-spacing:.04em}.campus-login .mark-icon{width:52px;height:52px;border-radius:16px;background:linear-gradient(145deg,#5daae9,#1075ce)}.campus-login .brand-copy{z-index:1;margin:54px 0 0;padding:0 16px}.campus-login .brand-copy h1{max-width:none;margin:0 0 14px;color:#102c51;font-size:clamp(38px,4.5vw,72px);line-height:1.2;font-weight:800;letter-spacing:.01em}.campus-login .brand-copy .campus-motto{max-width:none;color:#173a61;font-family:STXingkai,KaiTi,STKaiti,Kaiti SC,serif;font-size:clamp(21px,2.4vw,38px);line-height:1.6}.campus-photo{display:block;width:calc(100% + 55px);max-width:none;margin:-8px -24px 0;aspect-ratio:1.5;object-fit:cover;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 80%,transparent),linear-gradient(to right,transparent,#000 8%,#000 86%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 80%,transparent),linear-gradient(to right,transparent,#000 8%,#000 86%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}.campus-login .login-panel{min-width:0;padding:36px 0 20px;background:transparent;align-content:center}.campus-login .login-card{width:100%;max-width:540px;padding:42px 40px 24px;border:1px solid #d9eafa;border-radius:22px;background:#fffffff0;box-shadow:0 18px 65px #548bc30b;-webkit-backdrop-filter:none;backdrop-filter:none}.campus-login .login-card h2{margin:0 0 10px;color:#102c51;font-size:40px;line-height:1.25;font-weight:800}.campus-login .login-card .intro{color:#6b809b;font-size:14px;margin-bottom:26px;line-height:1.7}.campus-login .login-card .field{gap:9px;margin-bottom:21px}.campus-login .field label{color:#203e61;font-size:14px}.campus-login .input,.campus-login .select{min-height:50px;padding:12px 15px;border:1px solid #cdddec;border-radius:7px;background:#fff;color:#183b60;font-size:16px}.campus-login .input::placeholder{color:#91a4bc}.campus-login .password-field .input{padding-right:56px}.campus-login .password-toggle{color:#315c88;background:transparent}.campus-login .login-card .captcha-row{grid-template-columns:minmax(0,1fr) 132px;gap:12px}.campus-login .login-card .captcha-image,.campus-login .login-card .captcha-loading{width:100%;height:50px}.campus-login .login-button{border-radius:7px;background:linear-gradient(110deg,#1879d1,#3795dd);box-shadow:0 7px 15px #227fc52b;min-height:50px}.campus-login .login-button:hover{filter:brightness(.96)}.campus-login .auth-entry-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:24px}.campus-login .auth-entry-grid button{min-height:76px;min-width:0;padding:4px;display:flex;flex-direction:column;justify-content:center;gap:10px;border:0;border-right:1px solid #dbe6f2;border-radius:0;background:transparent;box-shadow:none;color:#18558b}.campus-login .auth-entry-grid button:last-child{border-right:0}.campus-login .auth-entry-grid button:hover{background:#eff7ff;border-radius:6px}.campus-login .auth-entry-grid button strong{color:#18558b;font-size:14px}.campus-login .auth-entry-grid button small{display:none}.campus-login .auth-footer-links{justify-content:center;gap:22px;margin-top:18px}.campus-login .auth-footer-links button{color:#6188b4;font-size:13px;font-weight:500;min-height:44px}.campus-login>.beian-footer{position:static;grid-column:1/-1;justify-self:center;justify-content:center;width:auto;max-width:100%;margin-top:18px;padding:10px 0 0;border:0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:transparent;color:#8097b5;font-size:12px;text-align:center}.campus-login button:focus-visible,.campus-login a:focus-visible{outline:3px solid #398dd4;outline-offset:4px}.campus-login .login-card:not(.auth-mode-login){max-width:600px}@media(min-width:1600px){.campus-login .brand-copy{margin-top:64px}.campus-login .brand-content{min-height:760px}}@media(max-width:1100px)and (min-width:761px){.campus-login{padding:28px;gap:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.campus-login .brand-content{min-height:600px}.campus-login .brand-copy{padding:0;margin-top:70px}.campus-login .brand-copy h1{font-size:38px}.campus-login .brand-copy .campus-motto{font-size:24px}.campus-brand{font-size:19px;gap:10px}.campus-login .login-card{padding:30px 24px 20px}.campus-login .login-card h2{font-size:32px}.campus-photo{width:calc(100% + 30px);margin:26px -15px 0}}@media(max-width:760px){.campus-login{width:100%;max-width:100%;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;padding:24px 18px max(16px,env(safe-area-inset-bottom));gap:0;overflow-x:clip}.campus-login .brand-content{min-height:0}.campus-brand{gap:10px;font-size:18px}.campus-brand small{font-size:12px;margin-top:2px}.campus-login .mark-icon{width:42px;height:42px;border-radius:12px}.campus-login .brand-copy{margin:24px 0 0;padding:0 6px}.campus-login .brand-copy h1{margin-bottom:6px;font-size:clamp(28px,7.5vw,40px)}.campus-login .brand-copy .campus-motto{font-size:clamp(17px,4.5vw,24px);line-height:1.5}.campus-photo{width:calc(100% + 36px);height:180px;aspect-ratio:auto;margin:-4px -18px -8px;object-position:center 61%}.campus-login .login-panel{padding:0;align-content:start}.campus-login .login-card{max-width:540px;padding:26px 22px 16px;border-radius:18px}.campus-login .login-card h2{font-size:29px}.campus-login .login-card .intro{font-size:13px;margin-bottom:22px}.campus-login .login-card .field{margin-bottom:18px}.campus-login .login-card .captcha-row{grid-template-columns:minmax(0,1fr) 105px;gap:8px}.campus-login .login-card .sms-row{grid-template-columns:minmax(0,1fr) 126px}.campus-login .form-grid{grid-template-columns:minmax(0,1fr);gap:0}.campus-login .auth-entry-grid{margin-top:20px}.campus-login .auth-entry-grid button{min-height:70px}.campus-login .auth-entry-grid button strong{font-size:13px}.campus-login .auth-footer-links{margin-top:8px}.campus-login>.beian-footer{margin-top:16px;font-size:10px;gap:3px 6px}}@media(max-width:360px){.campus-login{padding-right:12px;padding-left:12px}.campus-login .login-card{padding-right:16px;padding-left:16px}.campus-login>.beian-footer span{display:none}}.campus-activation{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.campus-activation .login-panel{padding-top:8px}.campus-activation .auth-mode-teacher-activation{max-width:620px;padding:32px 36px 24px}.campus-activation .login-card>.eyebrow{margin-bottom:8px;font-size:13px;letter-spacing:.04em}.campus-activation .login-card h2{font-size:34px}.campus-activation .login-card .activation-intro{margin-bottom:20px}.campus-activation .activation-steps{display:flex;align-items:center;justify-content:center;gap:16px;margin:0 0 26px}.campus-activation .activation-steps:after{content:"";order:1;flex:1;max-width:100px;height:1px;background:#c9d9e8}.campus-activation .activation-steps span{display:flex;align-items:center;gap:9px;min-height:36px;padding:0;border:0;border-radius:0;background:transparent;color:#8395ab;font-size:14px;white-space:nowrap}.campus-activation .activation-steps span:last-child{order:2}.campus-activation .activation-steps b{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:#e9f0f7;color:#7d93ac;font-size:14px}.campus-activation .activation-steps span.active{color:#1678c9;background:transparent}.campus-activation .activation-steps span.active b{color:#fff;background:#227fd0}.campus-activation .activation-steps span.complete{color:#17735c;background:transparent}.campus-activation .activation-steps span.complete b{color:#fff;background:#249777}.campus-activation .form-grid{grid-template-columns:minmax(0,1fr);gap:0}.campus-activation .login-card .field{margin-bottom:18px;gap:8px}.campus-activation .login-card .field label{font-size:15px}.campus-activation .activation-field-help{color:#7b8fa8;font-size:12px;line-height:1.5}.campus-activation .field-error{margin-top:0;font-size:12px;line-height:1.5}.campus-activation .login-card .captcha-row{grid-template-columns:minmax(0,1fr) 124px}.campus-activation .login-card .sms-row{grid-template-columns:minmax(0,1fr) 132px;gap:12px}.campus-activation .sms-button{border:1px solid #3795dd;color:#1678c9;background:#fff;border-radius:7px;padding:0 10px;font-size:14px}.campus-activation .sms-button:disabled{color:#7f92a8;background:#f1f5f9;border-color:#d8e2ec}.campus-activation .activation-help{display:flex;align-items:flex-start;gap:9px;padding:12px;margin:2px 0 20px;border-radius:8px;background:#eff6fd;color:#6281a3;font-size:12px;line-height:1.7}.campus-activation .activation-help svg{flex-shrink:0;margin-top:1px}.campus-activation .auth-links{margin-top:18px}.campus-activation .auth-links button{min-height:36px;font-size:14px;font-weight:500}@media(max-width:1100px)and (min-width:761px){.campus-activation{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.campus-activation .auth-mode-teacher-activation{padding:28px 24px 20px}.campus-activation .login-card h2{font-size:30px}}@media(max-width:760px){.campus-activation{grid-template-columns:minmax(0,1fr)}.campus-activation .auth-mode-teacher-activation{padding:26px 22px 20px}.campus-activation .login-card h2{font-size:28px}.campus-activation .activation-steps{gap:10px;margin-bottom:24px}.campus-activation .activation-steps span{font-size:13px;gap:7px}.campus-activation .activation-steps b{width:28px;height:28px;flex-basis:28px}.campus-activation .login-card .captcha-row{grid-template-columns:minmax(0,1fr) 100px;gap:8px}.campus-activation .login-card .sms-row{grid-template-columns:minmax(0,1fr) 112px;gap:8px}.campus-activation .sms-button{font-size:13px}}@media(max-width:360px){.campus-activation .auth-mode-teacher-activation{padding-right:16px;padding-left:16px}}
