:root{font-family:Source Han Sans CN,Noto Sans CJK SC,PingFang SC,Microsoft YaHei,sans-serif;color:#1d2924;background:#f6f5f0;font-synthesis:none;--p4: #238865;--p4-dark: #146247;--p5: #45b95f;--p6: #59c26c;--bg: #f6f5f0;--paper: #fffefa;--soft: #ecf5ef;--soft-2: #f3f8f4;--ink: #1d2924;--muted: #727b76;--line: #dce3de;--line-dark: #c7d3cc;--amber: #a97524;--amber-bg: #fbf2df;--radius: 11px;--shadow: 0 18px 50px rgba(29, 63, 49, .07)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%}body{margin:0;min-height:100vh;background:var(--bg);-webkit-font-smoothing:antialiased}.site-filing-footer{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;margin-top:28px;padding:14px 0;color:#626e67;font-size:12px;line-height:1.7;text-align:center}.site-filing-footer a{color:inherit;text-decoration:none}.site-filing-footer a:hover{color:var(--p4-dark);text-decoration:underline}.site-filing-footer a:focus-visible{outline:2px solid var(--p4);outline-offset:4px}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(69,185,95,.2);outline-offset:2px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}h1,h2,h3,p{margin-top:0}.admin-app{min-height:100vh;display:grid;grid-template-columns:226px minmax(0,1fr);background:var(--bg)}.sidebar{position:sticky;top:0;height:100vh;padding:26px 18px 20px;background:#fffefaf0;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:5}.brand-lockup{padding:2px 12px 22px}.brand-lockup img{display:block;width:134px;height:auto}.brand-beat{width:34px;height:2px;margin:0 12px 22px;background:var(--p5);box-shadow:42px 0 0 var(--p6),68px 0 0 var(--p4)}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav button{width:100%;height:48px;padding:0 13px;border:0;border-radius:8px;background:transparent;display:flex;align-items:center;gap:12px;color:#48534e;font-size:14px;text-align:left;transition:.18s ease}.sidebar nav button:hover{background:#f1f6f2;color:var(--p4)}.sidebar nav button.active{color:#fff;background:var(--p4)}.sidebar nav button:disabled{cursor:progress;opacity:.55}.sidebar nav button span{flex:1}.sidebar nav button i{min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:var(--p5);color:#fff;font-size:10px;font-style:normal}.sidebar-permission-retry{margin:8px 5px 0;padding:8px;border:1px solid #d7b973;border-radius:7px;background:var(--amber-bg);color:#765e2f;display:flex;align-items:center;gap:6px;font-size:9px;text-align:left}.sidebar-spacer{flex:1}.sidebar-note{margin:12px 4px;padding:13px 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.pulse-dot{width:9px;height:9px;border-radius:50%;background:var(--p5);box-shadow:0 0 0 5px #45b95f1f}.sidebar-note strong,.sidebar-note small,.account-row strong,.account-row small{display:block}.sidebar-note strong{font-size:12px}.sidebar-note small{margin-top:3px;color:var(--muted);font-size:10px}.account-row{width:100%;padding:10px;border:0;background:transparent;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;text-align:left}.account-row img{width:34px;height:34px;border-radius:50%;object-fit:cover}.account-row strong{font-size:12px}.account-row small{color:var(--muted);font-size:10px;margin-top:2px}.admin-main{min-width:0}.wechat-binding-card{margin-top:20px;padding:22px;min-width:0}.wechat-binding-card h2{margin:0 0 10px;font-size:16px}.wechat-binding-card p{color:var(--muted);line-height:1.7;font-size:12px}.wechat-binding-confirm{display:flex;align-items:flex-start;gap:8px;margin:16px 0;font-size:13px}.wechat-binding-confirm input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--p4)}.wechat-binding-result{margin-top:16px;min-width:0}.wechat-binding-result label{display:grid;gap:8px;font-size:12px}.wechat-binding-result input{width:100%;min-width:0;padding:12px;border:1px solid var(--line-dark);border-radius:6px;background:var(--paper)}.admin-topbar{height:72px;padding:0 32px;border-bottom:1px solid var(--line);background:#f6f5f0eb;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.eyebrow{color:var(--p4);font-size:10px;font-weight:750;letter-spacing:.15em;text-transform:uppercase}.topbar-date{margin-top:5px;color:var(--muted);font-size:12px}.topbar-actions,.header-button-group{display:flex;align-items:center;gap:9px}.icon-button{width:38px;height:38px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;display:inline-grid;place-items:center;position:relative}.icon-button:hover{background:var(--soft);color:var(--p4)}.notification-dot{position:absolute;top:8px;right:8px;width:6px;height:6px;border-radius:50%;background:#d96655;border:1px solid var(--bg)}.topbar-account{height:38px;border:0;background:transparent;display:flex;align-items:center;gap:8px}.topbar-account>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--p4);font-size:12px;font-weight:800}.topbar-account-wrap,.mobile-account-wrap{position:relative}.account-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:15;width:210px;padding:7px;border:1px solid var(--line-dark);border-radius:10px;background:var(--paper);box-shadow:0 18px 48px #143e2f26}.account-menu button{width:100%;min-height:42px;padding:0 10px;border:0;border-radius:7px;background:transparent;display:flex;align-items:center;gap:9px;color:#405048;font-size:11px;text-align:left}.account-menu button:hover{color:var(--p4);background:var(--soft)}.account-menu.mobile{top:44px;right:-4px}.admin-content{max-width:1500px;margin:0 auto;padding:30px 32px 60px}.admin-content-error{min-height:180px;padding:26px;display:flex;align-items:flex-start;gap:14px;color:#6f342e}.admin-content-error>div{flex:1}.admin-content-error strong,.admin-content-error small{display:block}.admin-content-error p{margin:7px 0;color:var(--muted)}.page-header{margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.page-header h1{margin-bottom:6px;font-size:30px;line-height:1.15;letter-spacing:-.04em}.page-header p{margin:0;color:var(--muted);font-size:13px}.button{min-height:40px;padding:0 17px;border:1px solid transparent;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:650;transition:.16s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button-primary{color:#fff;background:var(--p4);border-color:var(--p4);box-shadow:0 8px 20px #2388651f}.button-primary:hover:not(:disabled){background:var(--p4-dark)}.button-secondary{color:var(--p4);background:var(--soft);border-color:#cce3d4}.button-ghost{color:#34433d;background:transparent;border-color:var(--line-dark)}.button-ghost:hover:not(:disabled){color:var(--p4);background:var(--paper);border-color:var(--p4)}.button-danger{color:#fff;background:#a44d43;border-color:#a44d43}.button-danger:hover:not(:disabled){background:#8d3d35;border-color:#8d3d35}.surface{background:#fffefaf0;border:1px solid var(--line-dark);border-radius:var(--radius);box-shadow:0 1px #23886505}.section-heading{min-height:43px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.section-heading h2{margin:6px 0 0;font-size:18px;line-height:1.25;letter-spacing:-.02em}.text-link{padding:0;border:0;background:transparent;color:var(--p4);display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:650}.text-link:hover{color:var(--p4-dark)}.badge{min-height:22px;padding:3px 8px;border-radius:999px;display:inline-flex;align-items:center;color:var(--p4);background:#e8f4ec;font-size:10px;font-weight:700;line-height:1.35}.badge-mint{color:#397c4e;background:#edf7ee}.badge-amber{color:var(--amber);background:var(--amber-bg)}.badge-gray{color:#68716d;background:#eef0ee}.badge-red{color:#9a453d;background:#f8e7e4}.workbench-issue-board{margin-bottom:18px;padding:18px 20px 20px;border:1px solid #d7ded9;border-radius:var(--radius);background:linear-gradient(135deg,#fffefafa,#f6f9f6f5)}.workbench-issue-board>header{margin-bottom:13px;display:flex;align-items:baseline;gap:10px}.workbench-issue-board>header span{color:#a45b4e;font-size:8px;font-weight:850;letter-spacing:.12em}.workbench-issue-board>header h2{margin:0;font-size:16px}.workbench-issue-board>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:9px}.workbench-issue-card{min-width:0;min-height:78px;padding:12px 13px;border:1px solid var(--line);border-radius:9px;background:#fff;display:grid;grid-template-columns:34px minmax(0,1fr) auto 16px;gap:9px;align-items:center;text-align:left;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.workbench-issue-card:hover{transform:translateY(-1px);border-color:#bfcfc4;box-shadow:0 7px 18px #1c3f3112}.workbench-issue-icon{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--p4);background:var(--soft)}.workbench-issue-card.attendance .workbench-issue-icon,.workbench-issue-card.leave .workbench-issue-icon{color:#a44b40;background:#fae9e6}.workbench-issue-card.package .workbench-issue-icon{color:#9a6a18;background:#fff3da}.workbench-issue-card>span:nth-child(2){min-width:0}.workbench-issue-card strong,.workbench-issue-card small{display:block}.workbench-issue-card strong{font-size:12px}.workbench-issue-card small{margin-top:4px;overflow:hidden;color:var(--muted);font-size:9px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.workbench-issue-card b{color:var(--p4);font-size:12px;white-space:nowrap}.workbench-issue-card.attendance b,.workbench-issue-card.leave b{color:#a44b40}.workbench-issue-card>svg{color:var(--muted)}.pending-attendance-detail>p{margin:0 0 14px;color:var(--muted);font-size:10px;line-height:1.6}.pending-attendance-summary{margin:0 0 13px;display:flex;flex-wrap:wrap;gap:7px}.pending-attendance-summary span{min-height:28px;padding:0 10px;border:1px solid #ead3ce;border-radius:999px;background:#fff9f7;color:#755a55;display:inline-flex;align-items:center;gap:5px;font-size:9px}.pending-attendance-summary b{color:#a44b40;font-size:12px}.pending-attendance-list{max-height:430px;border-top:1px solid #ead8d4;overflow-y:auto;overscroll-behavior:contain}.pending-attendance-list>button{width:100%;min-height:67px;padding:11px 3px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:145px minmax(180px,1fr) 72px 82px;gap:13px;align-items:center;text-align:left}.pending-attendance-list>button:hover{background:#fff9f7}.pending-attendance-list time strong,.pending-attendance-list time small,.pending-attendance-list>button>span:nth-child(2) strong,.pending-attendance-list>button>span:nth-child(2) small{display:block}.pending-attendance-list time strong{font-size:11px}.pending-attendance-list time small,.pending-attendance-list>button>span:nth-child(2) small{margin-top:4px;color:var(--muted);font-size:9px}.pending-attendance-list>button>span:nth-child(2) strong{font-size:12px}.pending-attendance-list em{color:#a44b40;font-size:10px;font-style:normal;font-weight:750}.pending-attendance-action{color:var(--p4);display:inline-flex;justify-content:flex-end;align-items:center;gap:3px;font-size:10px;font-weight:750}.weekly-priority{padding:23px}.completion{color:var(--muted);font-size:12px}.completion b{color:var(--p4);font-size:22px}.course-day-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0;border-top:1px solid var(--line)}.course-day{min-width:0;padding:17px}.course-day+.course-day{border-left:1px solid var(--line)}.course-day-head{margin-bottom:12px;display:grid;grid-template-columns:23px auto 1fr;align-items:center;gap:7px}.course-day-head>span{color:var(--p5);font-size:9px;font-weight:800}.course-day-head strong{font-size:15px}.course-day-head small{color:var(--muted);font-size:10px}.course-day .schedule-course-card+.schedule-course-card{margin-top:12px}.inline-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px;color:var(--muted);font-size:10px}.metric-row{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line-dark);background:var(--paper);border-radius:var(--radius)}.metric-row>div{min-height:82px;padding:17px;display:flex;align-items:baseline;gap:5px}.metric-row>div+div{border-left:1px solid var(--line)}.metric-row span{flex:1;color:var(--muted);font-size:11px}.metric-row strong{color:var(--p4);font-size:25px}.metric-row small{color:var(--muted);font-size:10px}.student-filter-metrics>button{min-height:94px;padding:16px 18px;border:0;background:transparent;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;gap:5px 10px;align-items:center;text-align:left;transition:background .16s ease,box-shadow .16s ease}.student-filter-metrics>button+button{border-left:1px solid var(--line)}.student-filter-metrics>button:hover{background:var(--soft-2)}.student-filter-metrics>button.active{position:relative;background:linear-gradient(135deg,var(--soft),#fbfdfb);box-shadow:inset 0 -3px 0 var(--p4)}.student-filter-metrics>button>span{align-self:end;color:var(--muted);font-size:11px}.student-filter-metrics>button>div{grid-row:1 / 3;grid-column:2;display:flex;align-items:baseline;gap:5px}.student-filter-metrics>button>div strong{color:var(--p4);font-size:25px}.student-filter-metrics>button>div small{color:var(--muted);font-size:10px}.student-filter-metrics>button>em{align-self:start;color:var(--p4);display:inline-flex;align-items:center;gap:3px;font-size:9px;font-style:normal}.student-filter-metrics>button.active>span{color:var(--p4);font-weight:700}.student-filter-metrics.five{grid-template-columns:repeat(5,minmax(0,1fr))}.roster-panel{padding:0;overflow:hidden}.roster-panel-title{padding:20px 22px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.roster-panel-title h2{margin:0 0 6px}.roster-panel-title p{margin:0;color:var(--muted);font-size:10px}.registration-list,.former-roster-list{border-top:1px solid var(--line)}.registration-list .upgrade-list-row,.former-roster-list .upgrade-list-row{padding-inline:20px}.registration-list .upgrade-list-row>button{flex:1;padding:0;border:0;background:transparent;text-align:left}.registration-list .upgrade-list-row>button strong,.registration-list .upgrade-list-row>button small{display:block}.registration-list .upgrade-list-row>button small{margin-top:5px;color:var(--muted)}.registration-contact{margin-top:20px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--soft-2);display:flex;align-items:center;justify-content:space-between;gap:14px;color:#405149;font-size:10px}.recycle-note{padding:13px 15px;border:1px solid var(--line);border-radius:8px;background:var(--soft-2);display:flex;gap:10px;align-items:center}.recycle-note strong,.recycle-note small{display:block}.recycle-note small{margin-top:4px;color:var(--muted)}.recycle-list{margin-top:14px;border-top:1px solid var(--line)}.recycle-list>div{min-height:72px;padding:12px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.recycle-list strong,.recycle-list small{display:block}.recycle-list small{margin-top:4px;color:var(--muted);font-size:9px}.recycle-list>div>div{display:flex;gap:7px}.danger-confirm-panel{margin-top:18px;padding:16px;border:1px solid #dfc4bc;border-radius:8px;background:#fff8f5}.danger-confirm-panel h3{margin:0 0 10px;color:#7b332d;font-size:16px}.danger-confirm-panel p{margin:9px 0;color:#713a34;font-size:10px}.danger-confirm-panel input{width:100%;min-height:40px;margin:8px 0;padding:0 10px;border:1px solid var(--line-dark);border-radius:7px}.danger-target-card{padding:10px;border:1px solid #ebd2cc;border-radius:7px;background:#fff;display:grid;grid-template-columns:minmax(90px,.7fr) minmax(90px,.7fr) minmax(180px,1.6fr);gap:8px}.danger-target-card span{min-width:0}.danger-target-card small,.danger-target-card strong{display:block}.danger-target-card small{color:var(--muted);font-size:9px}.danger-target-card strong{margin-top:3px;overflow-wrap:anywhere;font-size:11px}.table-surface{margin-top:18px;overflow:hidden}.table-toolbar{padding:15px 17px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.search-box{min-width:300px;height:40px;padding:0 12px;display:flex;align-items:center;gap:8px;border:1px solid var(--line-dark);border-radius:8px;background:#fff}.search-box svg{color:var(--muted)}.search-box input{flex:1;border:0;outline:0;background:transparent;font-size:12px}.toolbar-spacer{flex:1}.result-count{color:var(--muted);font-size:11px}.data-table{min-width:900px}.table-row{width:100%;min-height:66px;padding:0 18px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;align-items:center;column-gap:15px;text-align:left}button.table-row:hover{background:var(--soft-2)}.student-table .table-row{grid-template-columns:1.2fr .65fr 1.35fr .65fr .75fr .85fr 24px}.student-table.managing .table-row{grid-template-columns:34px 1.2fr .65fr 1.35fr .65fr .75fr .85fr 24px}.former-table-surface{margin-top:18px}.former-table-toolbar .search-box{min-width:220px;max-width:360px;flex:1 1 250px}.former-student-table .table-row{grid-template-columns:1.15fr .5fr .9fr 1.2fr .75fr 20px}.former-student-table.managing .table-row{grid-template-columns:34px 1.15fr .5fr .9fr 1.2fr .75fr 20px}.former-category-cell{display:flex;align-items:center}.former-category-cell .badge{font-style:normal}.former-cell-label{display:none!important}.former-row-caret{display:grid;place-items:center;color:var(--muted)}.former-table-empty{min-height:90px;margin:0;display:grid;place-items:center;color:var(--muted);font-size:11px}.former-table-pagination{min-height:58px;padding:9px 17px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:12px}.former-table-pagination span{color:var(--muted);font-size:10px}.student-manage-bar{min-height:66px;padding:11px 17px;border-bottom:1px solid #d9c698;background:var(--amber-bg);display:flex;align-items:center;gap:12px}.student-manage-bar>span{flex:1}.student-manage-bar strong,.student-manage-bar small{display:block}.student-manage-bar strong{font-size:12px}.student-manage-bar small{margin-top:3px;color:#7a6746;font-size:9px}.student-manage-bar>button:not(.button){padding:0;border:0;background:transparent;color:var(--p4);font-size:11px;font-weight:700}@media(max-width:1100px){.student-filter-metrics.five{grid-template-columns:repeat(3,minmax(0,1fr))}.student-filter-metrics.five>button:nth-child(4){border-left:0}.student-filter-metrics.five>button:nth-child(n+4){border-top:1px solid var(--line)}.student-manage-bar{flex-wrap:wrap}.student-manage-bar>span{min-width:min(100%,260px)}}.archive-retention-note{min-height:62px;padding:12px 17px;border-bottom:1px solid #d2e2d7;background:linear-gradient(90deg,var(--soft),#fbfdfb);color:var(--p4);display:flex;align-items:flex-start;gap:10px}.archive-retention-note>span{flex:1}.archive-retention-note strong,.archive-retention-note small{display:block}.archive-retention-note strong{font-size:11px}.archive-retention-note small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.55}.student-select-row{cursor:pointer}.student-select-row:hover{background:var(--soft-2)}.select-cell{display:grid;place-items:center}.select-cell input{width:17px;height:17px;accent-color:var(--p4)}.package-table .table-row{grid-template-columns:.8fr 1.25fr .7fr .9fr 1.1fr .7fr}.table-row span{min-width:0;color:#405048;font-size:11px}.table-row span small{display:block;margin-top:4px;color:var(--muted);font-size:9px}.table-row.table-head{min-height:45px;background:#f5f7f4}.table-head span{color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.05em}.student-cell{display:flex;align-items:center;gap:10px}.student-cell i,.student-title>span{flex:0 0 auto;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--p4);font-size:11px;font-style:normal;font-weight:750}.student-cell b{font-size:12px}.back-link{margin-bottom:18px;padding:0;border:0;background:transparent;color:var(--p4);display:flex;align-items:center;gap:6px;font-size:12px}.student-detail-header{align-items:center}.student-title{display:flex;align-items:center;gap:13px}.student-title>span{width:52px;height:52px;font-size:18px}.student-title h1{display:flex;align-items:center;gap:8px}.student-title p{display:flex;align-items:center;gap:5px}.student-summary-strip{display:grid;grid-template-columns:1.1fr 1fr 1.25fr .75fr;border:1px solid var(--line-dark);background:var(--paper);border-radius:var(--radius)}.student-summary-strip>div{min-height:105px;padding:21px;display:flex;flex-direction:column;gap:7px}.student-summary-strip>div+div{border-left:1px solid var(--line)}.student-summary-strip span{color:var(--muted);font-size:10px}.student-summary-strip strong{font-size:13px;line-height:1.4}.student-summary-strip small{color:var(--muted);font-size:9px}.student-summary-strip button{width:fit-content;padding:0;border:0;background:transparent;color:var(--p4);font-size:10px}.page-tabs{margin-top:20px;display:flex;align-items:center;gap:25px;border-bottom:1px solid var(--line-dark)}.page-tabs button{min-height:47px;padding:0 4px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:12px;font-weight:650}.page-tabs button.active{color:var(--p4);border-bottom-color:var(--p4)}.page-tabs button span{margin-left:5px;padding:2px 6px;border-radius:999px;background:var(--soft);color:var(--p4);font-size:9px}.detail-grid{margin-top:18px;display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.info-panel,.record-panel,.simple-records,.learning-card,.mastery-card{padding:22px}.info-panel dl{margin:0;display:grid;gap:13px}.info-panel dl>div{display:grid;grid-template-columns:105px 1fr;gap:12px}.info-panel dt{color:var(--muted);font-size:11px}.info-panel dd{margin:0;font-size:12px}.soft-divider{height:1px;margin:22px 0;background:var(--line)}.record-panel>button,.simple-records>div{width:100%;min-height:53px;padding:0;border:0;border-top:1px solid var(--line);background:transparent;display:flex;justify-content:space-between;align-items:center;font-size:11px;text-align:left}.simple-records{margin-top:18px}.learning-card p{color:var(--muted);font-size:12px;line-height:1.7}.learning-card small{display:block;margin-top:10px;color:var(--muted);font-size:10px}.mastery-card>div{min-height:46px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:11px}.schedule-surface{margin-top:18px;padding:20px}.schedule-controls{height:48px;display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line)}.schedule-controls button{padding:0;border:0;background:transparent;color:var(--p4);display:flex;align-items:center;gap:4px;font-size:11px}.schedule-controls strong{font-size:13px}.schedule-controls span{margin-left:auto;color:var(--muted);font-size:10px}.week-columns{display:grid;grid-template-columns:repeat(var(--visible-days, 3),minmax(230px,1fr));border-left:1px solid var(--line)}.week-column{min-height:560px;border-right:1px solid var(--line)}.week-column>header{height:58px;padding:0 17px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}.week-column>header b{color:var(--p4);font-size:14px}.week-column>header span{color:var(--muted);font-size:10px}.week-column .schedule-course-card{margin:14px}.schedule-course-card{position:relative;min-height:180px;padding:15px 15px 13px 22px;border:1px solid var(--line);background:#fff;border-radius:9px;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.schedule-course-card:hover{transform:translateY(-1px);box-shadow:0 8px 22px #1c3f3114}.schedule-course-card:focus-visible{outline:2px solid var(--p5);outline-offset:2px}.schedule-course-card:before{content:"";position:absolute;left:9px;top:18px;bottom:15px;width:2px;background:var(--p5)}.schedule-course-card.course-state-pending-prep{background:#fffaf0;border-color:#ead5aa}.schedule-course-card.course-state-pending-prep:before{background:#d49a32}.schedule-course-card.course-state-pending-class{background:#f7fbf8;border-color:#cfe2d6}.schedule-course-card.course-state-pending-attendance{background:#fff8f6;border-color:#e8c3bc}.schedule-course-card.course-state-pending-attendance:before{background:#b85b4e}.schedule-course-card.course-state-completed{background:#f5f6f4;border-color:#dde1de}.schedule-course-card.course-state-completed:before{background:#929b96}.schedule-course-card time{display:block;color:var(--p4);font-size:10px;font-weight:750}.schedule-course-card.course-state-completed time{color:#747d78}.schedule-course-card h3{margin:10px 0 0;color:var(--ink);font-size:15px;line-height:1.35}.schedule-course-card .schedule-card-preparation{min-height:32px;margin:7px 0 0;color:#56635d;font-size:10px;line-height:1.6;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.schedule-course-card.course-state-completed h3,.schedule-course-card.course-state-completed .schedule-card-preparation,.schedule-course-card.course-state-completed .schedule-card-count{color:#747d78}.schedule-course-card .schedule-card-count{margin:10px 0 0;color:var(--p4);display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:9px;font-weight:700}.schedule-course-card footer{margin-top:12px;padding-top:9px;border-top:1px solid var(--line);display:flex;justify-content:flex-end}.schedule-course-card footer .schedule-card-state{color:var(--p4);font-size:10px;font-weight:750}.schedule-course-card.course-state-pending-prep .schedule-card-state{color:#a66f17}.schedule-course-card.course-state-pending-attendance .schedule-card-state{color:#a44b40}.schedule-course-card.course-state-completed .schedule-card-state{color:#747d78}.schedule-empty{min-height:310px;padding:70px 20px;color:var(--muted);display:grid;place-items:center;align-content:center;text-align:center}.schedule-empty svg{color:var(--p5)}.schedule-empty strong{margin-top:11px;color:var(--ink);font-size:14px}.schedule-empty p{margin:7px 0 0;font-size:10px}.schedule-closure-banner{margin:12px 0;padding:13px 15px;border:1px solid #ead5aa;border-left:4px solid #cc9130;border-radius:8px;background:#fff9ed;color:#704d1c;display:flex;align-items:flex-start;gap:10px}.schedule-closure-banner.partial{border-color:#d8e0d8;border-left-color:var(--p5);background:#f4f8f4;color:var(--ink)}.schedule-closure-banner>svg{flex:0 0 auto;margin-top:1px}.schedule-closure-banner>span{min-width:0}.schedule-closure-banner strong,.schedule-closure-banner small{display:block}.schedule-closure-banner strong{font-size:12px}.schedule-closure-banner small{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.6}.split-layout{margin-top:18px;display:grid;grid-template-columns:260px 1fr;gap:18px}.term-list,.class-list{padding:21px}.term-list .section-heading{min-height:52px}.term-view-toggle{padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--soft-2);display:flex;gap:2px}.term-view-toggle button{min-height:28px;padding:0 8px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-size:9px;font-weight:700;white-space:nowrap}.term-view-toggle button.active{color:var(--p4);background:#fff;box-shadow:0 1px 4px #19372b14}.term-list>button{width:100%;min-height:62px;padding:0 10px;border:0;border-top:1px solid var(--line);background:transparent;display:flex;align-items:center;justify-content:space-between;text-align:left}.term-list>button.active{margin-inline:-8px;padding-inline:18px;color:var(--p4);background:var(--soft);border-left:3px solid var(--p4)}.term-list strong,.term-list small{display:block}.term-list strong{font-size:12px}.term-list small{margin-top:4px;color:var(--muted);font-size:9px}.class-list>article{min-height:150px;padding:20px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1.2fr 1fr auto;gap:20px;align-items:center}.class-list h3{margin:9px 0 6px;font-size:15px}.class-list p{margin:0;color:var(--muted);font-size:10px}.class-students{display:flex;gap:7px;flex-wrap:wrap}.class-students span{padding:6px 9px;background:var(--soft);color:var(--p4);border-radius:6px;font-size:10px}.class-list footer{display:flex;flex-direction:column;gap:7px}.class-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.class-list>article.class-ended{min-height:126px;padding-inline:14px;border:1px solid var(--line);border-radius:9px;background:var(--soft-2);opacity:.9}.class-list>article.class-ended+article{margin-top:10px}.class-ended .class-students>small{color:var(--muted);font-size:9px;line-height:1.55}.record-text-action{padding:3px 0;border:0;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:10px}.record-text-action:hover{color:var(--p4)}.record-text-action.danger{color:#9b4c43}.term-pending-board{margin:14px 0 4px;padding:15px;border:1px solid #ead7b4;border-radius:9px;background:linear-gradient(135deg,#fffaf0,#fffdf8)}.term-pending-board>div:first-child{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center}.term-pending-board>div:first-child>span{width:34px;height:34px;border-radius:50%;color:var(--amber);background:#fff3d7;display:grid;place-items:center}.term-pending-board strong,.term-pending-board small{display:block}.term-pending-board strong{font-size:11px}.term-pending-board small{margin-top:3px;color:var(--muted);font-size:8px}.term-pending-board>p,.class-empty-state p,.new-class-student-picker>p{margin:12px 0 0;color:var(--muted);font-size:9px}.term-pending-students{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.term-pending-students>span{padding:9px 10px;border:1px solid rgba(169,117,36,.16);border-radius:7px;background:#ffffffc7}.term-pending-students b,.term-pending-students small{display:block}.term-pending-students b{font-size:10px}.placement-workbench{margin-top:18px;padding:21px}.placement-head{border-bottom:1px solid var(--line);padding-bottom:14px}.placement-head>p{max-width:760px;margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.7}.placement-controls{margin-top:16px;display:grid;grid-template-columns:minmax(240px,.8fr) minmax(220px,1fr) minmax(200px,.8fr);gap:12px;align-items:end}.placement-controls>label span{display:block;margin-bottom:6px;color:var(--muted);font-size:9px}.placement-controls input,.placement-controls select{width:100%;height:40px;padding:0 10px;border:1px solid var(--line-dark);border-radius:8px;background:#fff;color:#405048;font-size:11px}.placement-time-summary{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}.placement-time-summary button{min-height:38px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);text-align:left;font-size:10px}.placement-time-summary button.active{color:var(--p4);border-color:var(--p5);background:var(--soft)}.placement-time-summary small{display:block;margin-top:2px;font-size:8px}.placement-layout{margin-top:16px;display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start}.placement-students,.placement-preview{min-width:0;padding:16px;border:1px solid var(--line);border-radius:9px;background:#fff}.placement-section-head{min-height:43px;display:flex;justify-content:space-between;gap:12px;align-items:center}.placement-section-head strong,.placement-section-head small{display:block}.placement-section-head strong{font-size:13px}.placement-section-head small{margin-top:4px;color:var(--muted);font-size:9px}.placement-section-head button{min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:var(--soft-2);color:var(--p4);font-size:10px;font-weight:700}.placement-student-list{margin-top:10px;display:grid;gap:8px}.placement-student-list label{min-height:58px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}.placement-student-list label:has(input:checked){border-color:var(--p5);background:var(--soft)}.placement-student-list b,.placement-student-list small{display:block}.placement-student-list b{font-size:12px}.placement-student-list small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.5}.placement-preview dl{margin:2px 0 12px;display:grid;gap:9px}.placement-preview dl div{padding-bottom:9px;border-bottom:1px solid var(--line)}.placement-preview dt{color:var(--muted);font-size:8px}.placement-preview dd{margin:4px 0 0;font-size:12px;font-weight:700}.placement-preview .selected-student-chips{align-items:stretch}.placement-preview .selected-student-chips p{margin:0;color:var(--muted);font-size:10px}.embedded-evaluations-head{margin-top:18px;padding:18px 20px}.embedded-evaluations-head p{margin:8px 0 0;color:var(--muted);font-size:10px;line-height:1.65}.class-empty-state{margin-top:16px;padding:28px;border:1px dashed var(--line-dark);border-radius:9px;background:var(--soft-2);text-align:center}.class-empty-state strong{font-size:12px}.term-empty-state{margin-top:12px;padding:22px 14px;border:1px dashed var(--line-dark);border-radius:8px;background:var(--soft-2);text-align:center}.term-empty-state strong{font-size:11px}.term-empty-state p{margin:6px 0 0;color:var(--muted);font-size:9px;line-height:1.6}.class-edit-combined{display:grid;grid-template-columns:.8fr 1.2fr;gap:22px}.class-edit-combined>section{min-width:0;padding:16px;border:1px solid var(--line);border-radius:9px;background:#fff}.combined-section-title{min-height:47px;margin-bottom:13px;padding-bottom:11px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.combined-section-title strong,.combined-section-title small{display:block}.combined-section-title strong{font-size:13px}.combined-section-title small{margin-top:4px;color:var(--muted);font-size:9px}.compact-roster{max-height:255px;overflow-y:auto}.compact-roster>div{grid-template-columns:90px 65px 1fr 44px}.combined-empty{margin:0;padding:25px 12px;color:var(--muted);text-align:center;font-size:9px}.combined-candidate-list{margin-top:14px}.combined-candidate-list>strong{display:block;margin-bottom:8px;color:var(--muted);font-size:9px}.combined-candidate-list>.combined-candidate-grid{max-height:160px;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.combined-candidate-list>.combined-candidate-grid>button{min-height:48px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--soft-2);color:var(--p4);display:flex;align-items:center;gap:8px;text-align:left}.combined-candidate-list>.combined-candidate-grid>button span,.combined-candidate-list>.combined-candidate-grid>button small{display:block}.combined-candidate-list>.combined-candidate-grid>button span{color:var(--ink);font-size:10px;font-weight:700}.combined-candidate-list>.combined-candidate-grid>button small{margin-top:3px;color:var(--muted);font-size:8px;font-weight:400}.combined-candidate-list>p{margin:0;padding:14px;color:var(--muted);background:var(--soft-2);font-size:9px;text-align:center}.roster-summary{margin-bottom:13px;padding:12px 14px;background:var(--soft-2);border-left:3px solid var(--p5);display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px}.roster-summary strong{margin:0 2px;color:var(--p4);font-size:18px}.roster-list{border:1px solid var(--line)}.roster-list>div{min-height:55px;padding:0 13px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:90px 1.1fr 1fr 75px;gap:10px;align-items:center;font-size:10px}.roster-list>div:last-child{border-bottom:0}.roster-list .roster-head{min-height:37px;color:var(--muted);background:#f5f7f4;font-size:9px}.roster-list button{padding:0;border:0;background:transparent;color:#a05e49;font-size:9px}.add-roster-row{margin-top:14px;padding:13px;border:1px solid var(--line);background:var(--soft-2);display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.add-roster-row>div>span{display:block;margin-bottom:6px;color:var(--muted);font-size:9px;font-weight:700}.add-roster-row select,.slot-editor input,.unassigned-row select{width:100%;min-height:39px;padding:0 10px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;color:var(--ink);font-size:10px}.slot-editor-head>span small{margin-left:8px;color:var(--muted);font-size:8px;font-weight:400}.group-summary{margin-top:18px;display:grid;grid-template-columns:repeat(3,1fr) auto;border:1px solid var(--line-dark);background:var(--paper);border-radius:var(--radius)}.group-summary>div{min-height:75px;padding:16px;border-right:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.group-summary strong{color:var(--muted);font-size:10px}.group-summary b{color:var(--p4);font-size:22px}.group-summary>.button{align-self:center;margin:0 16px}.group-course-card{position:relative;margin-top:18px;padding:24px;overflow:hidden}.group-course-accent{position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--p5)}.group-course-main{display:grid;grid-template-columns:1fr 240px;gap:30px}.group-course-main h2{margin:12px 0 7px;font-size:22px}.group-course-main p{color:var(--muted);font-size:11px}.selection-progress strong,.selection-progress span{display:block}.selection-progress strong{color:var(--p4);font-size:25px}.selection-progress span{margin:3px 0 11px;color:var(--muted);font-size:9px}.progress{height:7px;overflow:hidden;background:#e6ebe7;border-radius:99px}.progress>span{display:block;height:100%;background:var(--p5);border-radius:inherit}.group-slots{margin-top:22px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.group-slots>div{padding:15px;border:1px solid var(--line);background:var(--soft-2);display:flex;align-items:center;gap:12px;border-radius:8px}.group-slots svg{color:var(--p4)}.group-slots strong,.group-slots small{display:block}.group-slots strong{font-size:11px}.group-slots small{margin-top:4px;color:var(--muted);font-size:9px}.group-course-card>footer{margin-top:22px;display:flex;justify-content:flex-end;gap:8px}.select-like.multiline{min-height:52px}.slot-editor{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.slot-editor-head{margin-bottom:9px;display:flex;align-items:center;justify-content:space-between}.slot-editor-head>span{font-size:10px;font-weight:750}.slot-editor-head .button{min-height:32px;font-size:10px}.slot-editor>div:not(.slot-editor-head){min-height:50px;padding:6px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1.3fr .7fr .6fr 34px;gap:8px;align-items:center}.slot-editor>div>button{width:32px;height:32px;border:0;background:transparent;color:var(--muted);display:grid;place-items:center}.stats-strip{margin-bottom:15px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--p4);border-bottom:1px solid var(--line)}.stats-strip>div{min-height:64px;padding:13px}.stats-strip>div+div{border-left:1px solid var(--line)}.stats-strip span,.stats-strip strong{display:block}.stats-strip span{color:var(--muted);font-size:9px}.stats-strip strong{margin-top:4px;color:var(--p4);font-size:17px}.stats-strip .needs strong{color:var(--amber)}.group-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.group-stats-grid>section{min-height:130px;padding:14px;border:1px solid var(--line);background:#fff}.group-stats-grid h3{margin-bottom:5px;font-size:12px}.group-stats-grid p{color:var(--muted);font-size:9px}.name-chips{display:flex;flex-wrap:wrap;gap:5px}.name-chips span{padding:4px 7px;border-radius:999px;color:var(--p4);background:var(--soft);font-size:8px}.name-chips span small{margin-left:5px;color:var(--muted);font-size:7px}.unassigned-panel{margin-top:14px;padding:14px;border:1px solid #ead7b4;background:var(--amber-bg)}.unassigned-panel>div:first-child{margin-bottom:9px;display:flex;align-items:center;gap:9px;color:var(--amber)}.unassigned-panel strong,.unassigned-panel small{display:block}.unassigned-panel strong{font-size:10px}.unassigned-panel small{margin-top:3px;color:var(--muted);font-size:8px}.unassigned-row{min-height:48px;border-top:1px solid rgba(169,117,36,.16);display:grid;grid-template-columns:70px 1fr 130px;gap:10px;align-items:center;font-size:9px}.unassigned-panel>.button{width:100%;margin-top:10px}.form-surface{margin-top:18px;padding:25px}.section-intro{color:var(--muted);font-size:11px}.form-grid{display:grid;gap:16px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-grid .full{grid-column:1 / -1}.form-grid label>span,.field-label,.review-editor label>span,.stage-editor label>span{display:block;margin-bottom:7px;color:#48534e;font-size:10px;font-weight:700}.form-grid input,.form-grid textarea,.form-grid select,.review-editor input,.review-editor textarea,.stage-editor textarea{width:100%;min-height:43px;padding:11px 12px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;color:var(--ink);font-size:12px;outline:0}.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus,.review-editor input:focus,.review-editor textarea:focus,.stage-editor textarea:focus{border-color:var(--p4);box-shadow:0 0 0 3px #23886517}.form-grid textarea{min-height:100px;resize:vertical}.form-grid .delete-confirm-check{min-height:44px;padding:10px 12px;border:1px solid #e8c5bf;border-radius:7px;background:#fff8f6;display:flex;align-items:center;gap:9px;cursor:pointer}.form-grid .delete-confirm-check input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:0;padding:0;accent-color:#a44d43}.form-grid .delete-confirm-check>span{margin:0;color:#713a34;font-size:10px;font-weight:600;line-height:1.5}.form-required-guide{margin-bottom:16px;padding:13px 15px;border:1px solid rgba(35,136,101,.16);border-radius:8px;background:var(--soft);display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center}.form-required-guide strong{color:var(--p4);font-size:11px}.form-required-guide span{font-size:11px;font-weight:700}.form-required-guide small{grid-column:1/-1;color:var(--muted);font-size:8px}.field-required,.field-optional,.field-default{margin-left:5px;padding:2px 5px;border-radius:999px;font-size:7px;font-style:normal;font-weight:700;vertical-align:1px}.field-required{color:#9d4137;background:#fff0ed}.field-optional{color:var(--muted);background:#eef1ef}.field-default{color:var(--p4);background:var(--soft)}.field-help,.field-error{display:block;margin-top:5px;font-size:8px;line-height:1.45}.field-help{color:var(--muted)}.field-error{color:#a53f36;font-weight:700}.form-grid label.has-error input,.form-grid label.has-error select,.form-grid [aria-invalid=true]{border-color:#c95d52;background:snow;box-shadow:0 0 0 3px #c95d5214}.form-error-summary{margin-bottom:16px;padding:12px 14px;border:1px solid #edc4bf;border-left:3px solid #c95d52;border-radius:7px;color:#8d352d;background:#fff7f5;display:flex;align-items:flex-start;gap:9px}.form-error-summary strong,.form-error-summary small{display:block}.form-error-summary strong{font-size:10px}.form-error-summary small{margin-top:3px;font-size:9px;line-height:1.45}.archive-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.archive-options.single{grid-template-columns:1fr}.archive-options>section{padding:18px;border:1px solid var(--line);border-radius:9px;background:var(--soft-2)}.archive-options>section>div:first-child{margin-bottom:16px;display:flex;align-items:flex-start;gap:10px;color:var(--p4)}.archive-options>section>div:first-child span{flex:1}.archive-options strong,.archive-options small{display:block}.archive-options strong{font-size:12px}.archive-options small{margin-top:5px;color:var(--muted);font-size:9px;line-height:1.55}.archive-options label{display:block;margin-bottom:12px}.archive-options label>span{display:block;margin-bottom:6px;color:#48534e;font-size:9px;font-weight:700}.archive-options input,.archive-options textarea,.archive-options select{width:100%;min-height:42px;padding:10px 11px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;font-size:11px;outline:0}.archive-options textarea{min-height:80px;resize:vertical}.archive-options .button{width:100%}.archive-options .danger-zone{border-color:#e8c5bf;background:#fff8f6}.archive-options .danger-zone>div:first-child{color:#a44d43}.archive-options .delete-confirm-check{padding:11px;border:1px solid #e8c5bf;border-radius:7px;background:#fff;display:flex;align-items:flex-start;gap:9px;cursor:pointer}.archive-options .delete-confirm-check input{flex:0 0 auto;width:17px;min-height:17px;margin-top:1px;accent-color:#a44d43}.archive-options .delete-confirm-check>span{margin:0;color:#713a34;font-size:10px;line-height:1.5}.archive-explain{padding:15px;border:1px solid #cce3d4;border-left:3px solid var(--p5);border-radius:8px;background:var(--soft);display:grid;grid-template-columns:28px 1fr;gap:11px;color:var(--p4)}.archive-explain strong{display:block;font-size:12px}.archive-explain p{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.record-action-explain{padding:17px;border:1px solid #cce3d4;border-left:3px solid var(--p5);border-radius:9px;background:var(--soft);display:grid;grid-template-columns:28px 1fr;gap:11px;color:var(--p4)}.record-action-explain strong,.record-action-explain small{display:block}.record-action-explain strong{font-size:12px}.record-action-explain p{margin:6px 0;color:#44534c;font-size:10px;line-height:1.65}.record-action-explain small{color:var(--muted);font-size:9px;line-height:1.55}.record-action-reason{display:block;margin-top:16px}.record-action-reason>span{display:block;margin-bottom:6px;color:#48534e;font-size:10px;font-weight:700}.record-action-reason input{width:100%;min-height:42px;padding:0 11px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;font-size:11px;outline:0}.record-action-reason input:focus{border-color:var(--p4);box-shadow:0 0 0 3px #23886514}.record-delete-zone{padding:17px;border:1px solid #e8c5bf;border-radius:9px;background:#fff8f6}.record-delete-zone>div{display:grid;grid-template-columns:28px 1fr;gap:11px;color:#9b4c43}.record-delete-zone strong{display:block;font-size:12px}.record-delete-zone p{margin:6px 0 0;color:#6f514c;font-size:10px;line-height:1.6}.record-delete-zone>label{margin:16px 0 9px;padding:11px;border:1px solid #e8c5bf;border-radius:7px;background:#fff;display:flex;align-items:flex-start;gap:9px;cursor:pointer}.record-delete-zone>label input{width:17px;height:17px;margin:0;accent-color:#a44d43}.record-delete-zone>label span{color:#713a34;font-size:10px;line-height:1.5}.record-delete-zone>small{color:var(--muted);font-size:9px;line-height:1.55}.selected-student-chips{margin:15px 0 4px;display:flex;flex-wrap:wrap;gap:7px}.selected-student-chips span{padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#405048;font-size:10px}.new-class-student-picker{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:9px;background:var(--soft-2)}.new-class-student-picker>div:first-child{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.new-class-student-picker>div:first-child strong,.new-class-student-picker>div:first-child small{display:block}.new-class-student-picker>div:first-child strong{font-size:11px}.new-class-student-picker>div:first-child small{margin-top:3px;color:var(--muted);font-size:8px}.new-class-student-picker>div:nth-child(2){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.new-class-student-picker button{min-height:54px;padding:8px 10px;border:1px solid var(--line-dark);border-radius:8px;background:#fff;display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:center;text-align:left}.new-class-student-picker button.active{border-color:var(--p4);color:var(--p4);background:var(--soft);box-shadow:0 0 0 2px #23886514}.picker-check{width:20px;height:20px;border:1px solid var(--line-dark);border-radius:50%;display:grid;place-items:center}.new-class-student-picker button.active .picker-check{color:#fff;border-color:var(--p4);background:var(--p4)}.new-class-student-picker button strong,.new-class-student-picker button small{display:block}.new-class-student-picker button strong{font-size:10px}.new-class-student-picker button small{margin-top:3px;color:var(--muted);font-size:8px}.select-like{min-height:43px;padding:0 12px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;display:flex;align-items:center;justify-content:space-between;font-size:12px}.segmented{display:flex;border:1px solid var(--line-dark);border-radius:7px;overflow:hidden;width:fit-content}.segmented button{min-height:40px;padding:0 18px;border:0;border-right:1px solid var(--line);background:#fff;color:var(--muted);font-size:11px}.segmented button:last-child{border-right:0}.segmented button.active{color:#fff;background:var(--p4)}.segmented.four,.segmented.five{width:100%}.segmented.four button,.segmented.five button{flex:1}.course-mode-switch{width:100%;margin-bottom:16px}.course-mode-switch button{flex:1}.temporary-course-picker{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--soft-2)}.temporary-course-picker>div:first-child{margin-bottom:11px;display:flex;align-items:center;justify-content:space-between;gap:12px}.temporary-course-picker>div:first-child strong,.temporary-course-picker>div:first-child small{display:block}.temporary-course-picker>div:first-child strong{font-size:11px}.temporary-course-picker>div:first-child small{margin-top:3px;color:var(--muted);font-size:8px}.temporary-course-picker .student-search-field>span{display:block;margin-bottom:6px;color:var(--muted);font-size:9px;font-weight:700}.student-search-field,.student-search-dropdown{position:relative}.student-search-trigger{width:100%;min-height:42px;padding:0 11px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;text-align:left}.student-search-trigger:disabled{color:var(--muted);background:#f6f3ec;cursor:not-allowed}.student-search-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-search-menu{position:absolute;z-index:60;top:calc(100% + 6px);left:0;right:0;padding:8px;border:1px solid var(--line-dark);border-radius:8px;background:#fff;box-shadow:0 18px 34px #35281d29}.student-search-input{min-height:38px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:var(--soft-2);display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:7px;color:var(--muted)}.student-search-input input{width:100%;min-height:36px;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.student-search-options{max-height:250px;margin-top:7px;overflow:auto;display:grid;gap:6px}.student-search-options button{min-height:52px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:center;text-align:left}.student-search-options button:hover{border-color:var(--p4);background:var(--soft)}.student-search-options button.active{border-color:var(--p4);color:var(--p4);background:var(--soft);box-shadow:0 0 0 2px #23886514}.student-search-options button.active .picker-check{color:#fff;border-color:var(--p4);background:var(--p4)}.student-search-options button strong,.student-search-options button small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-search-options button strong{font-size:10px}.student-search-options button small{margin-top:3px;color:var(--muted);font-size:8px}.student-search-empty{margin:7px 0 0;padding:18px 10px;border:1px dashed var(--line);border-radius:7px;color:var(--muted);background:var(--soft-2);text-align:center;font-size:10px}.rule-note{margin-top:20px;padding:16px;display:flex;gap:13px;color:var(--p4);background:var(--soft);border-left:3px solid var(--p5)}.rule-note strong{font-size:11px}.rule-note p{margin:4px 0 0;color:#54655d;font-size:10px;line-height:1.7}.rule-note.compact{margin-top:15px;padding:12px 14px}.form-actions{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}.check-list{margin:0;padding:12px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;display:grid;gap:9px}.check-list legend{padding:0 4px;color:var(--muted);font-size:10px;font-weight:700}.check-list label{min-height:30px;display:flex;align-items:center;gap:8px;color:var(--ink);font-size:11px}.check-list input[type=checkbox]{width:15px;height:15px;accent-color:var(--p4)}.check-list small{color:var(--muted);font-size:9px;line-height:1.6}.v2-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.v2-table-wrap table{width:100%;min-width:560px;border-collapse:collapse;font-size:10px}.v2-table-wrap th,.v2-table-wrap td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}.v2-table-wrap th{color:var(--muted);background:var(--soft-2);font-size:9px}.v2-table-wrap tr:last-child td{border-bottom:0}.parallel-match-panel{margin-top:18px;padding:15px;border:1px solid var(--line);background:var(--soft-2)}.parallel-match-panel>span{display:block;margin-bottom:9px;color:var(--muted);font-size:10px;font-weight:700}.parallel-match-panel>button{width:100%;min-height:58px;padding:10px 13px;border:1px solid var(--line-dark);border-radius:8px;background:#fff;display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:center;text-align:left}.parallel-match-panel>button.active{color:var(--p4);border-color:var(--p4);box-shadow:inset 3px 0 0 var(--p5)}.parallel-match-panel strong,.parallel-match-panel small{display:block}.parallel-match-panel strong{font-size:11px}.parallel-match-panel small{margin-top:4px;color:var(--muted);font-size:9px}.parallel-match-panel p{margin:9px 0 0;color:var(--muted);font-size:9px}.leave-review-head{padding-bottom:16px;display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line)}.student-avatar{width:46px;height:46px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--p4);font-size:16px;font-weight:750}.leave-review-head h3{margin:8px 0 4px;font-size:17px}.leave-review-head p{margin:0;color:var(--muted);font-size:10px}.leave-reason{margin:14px 0 0;padding:12px 14px;border-left:3px solid #d6a052;background:var(--amber-bg)}.leave-reason span,.leave-reason strong{display:block}.leave-reason span{color:var(--muted);font-size:9px}.leave-reason strong{margin-top:5px;font-size:12px;line-height:1.55}.leave-auto-result{margin:15px 0;padding:14px;border:1px solid #cce3d4;border-left:3px solid var(--p5);background:var(--soft);color:var(--p4);display:grid;grid-template-columns:26px 1fr;gap:10px}.leave-auto-result strong{display:block;font-size:11px}.leave-auto-result p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.6}.decision-cards.horizontal{grid-template-columns:repeat(2,1fr)}.standalone-field{display:block;margin-top:14px}.standalone-field>span{display:block;margin-bottom:7px;font-size:10px;font-weight:700}.standalone-field textarea{width:100%;min-height:80px;padding:11px;border:1px solid var(--line-dark);border-radius:7px;resize:vertical;font-size:11px}.standalone-field select{width:100%;min-height:42px;padding:0 11px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;color:var(--ink);font-size:11px}.notification-summary{margin-bottom:15px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--p4);border-bottom:1px solid var(--line)}.notification-summary>div{min-height:67px;padding:13px}.notification-summary>div+div{border-left:1px solid var(--line)}.notification-summary span,.notification-summary strong{display:block}.notification-summary span{color:var(--muted);font-size:9px}.notification-summary strong{margin-top:5px;color:var(--p4);font-size:14px}.send-check-list{border:1px solid var(--line)}.send-check-list>div{min-height:49px;padding:0 13px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:90px 1fr 90px;align-items:center;gap:12px;font-size:10px}.send-check-list>div:last-child{border-bottom:0}.send-check-list .send-check-head{min-height:36px;color:var(--muted);background:#f5f7f4;font-size:9px}.notification-center-summary{margin-bottom:18px;display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--p4);border-bottom:1px solid var(--line)}.notification-center-summary>div{padding:13px}.notification-center-summary>div+div{border-left:1px solid var(--line)}.notification-center-summary span,.notification-center-summary strong{display:block}.notification-center-summary span{color:var(--muted);font-size:9px}.notification-center-summary strong{margin-top:5px;color:var(--p4);font-size:18px}.notification-center-list+.notification-center-list{margin-top:19px}.notification-center-list h3{margin:0 0 7px;font-size:13px}.notification-center-list>button{width:100%;min-height:61px;padding:10px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:28px 1fr auto 18px;gap:9px;align-items:center;text-align:left}.notification-center-list>button>svg:first-child{color:var(--p4)}.notification-center-list strong,.notification-center-list small{display:block}.notification-center-list strong{font-size:11px}.notification-center-list small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.5}.notification-center-empty,.table-empty{padding:20px;color:var(--muted);text-align:center;font-size:10px}.pause-split-note{margin-bottom:18px;padding:14px;color:var(--p4);background:var(--soft-2);border-left:3px solid var(--p5);display:grid;grid-template-columns:28px 1fr;gap:10px}.pause-split-note strong{display:block;font-size:11px}.pause-split-note p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.6}.attendance-panel{margin-top:18px;overflow:hidden}.attendance-header{padding:22px;display:flex;align-items:center;justify-content:space-between;background:var(--soft-2);border-bottom:1px solid var(--line)}.attendance-header h2{margin:8px 0 6px;font-size:20px}.attendance-header p{margin:0;color:var(--muted);font-size:11px}.attendance-header>div:last-child{text-align:right}.attendance-header strong,.attendance-header small{display:block}.attendance-header strong{color:var(--p4);font-size:16px}.attendance-header small{margin-top:4px;color:var(--muted);font-size:9px}.attendance-row{min-height:73px;padding:0 18px;display:grid;grid-template-columns:100px 1fr 180px 120px;align-items:center;gap:14px;border-bottom:1px solid var(--line);font-size:11px}.attendance-student{display:grid;gap:4px}.attendance-points-tag{display:inline-block!important;width:fit-content;margin:0 0 0 7px!important;padding:2px 6px;border-radius:999px;background:#e3efe8;color:var(--p4)!important;font-size:8px!important;font-style:normal;font-weight:800;vertical-align:middle}.attendance-row.head{min-height:44px;background:#f5f7f4;color:var(--muted);font-size:9px}.attendance-options{width:fit-content;display:flex;border:1px solid var(--line-dark);border-radius:7px;overflow:hidden}.attendance-options button{min-height:35px;padding:0 12px;border:0;border-right:1px solid var(--line);background:#fff;font-size:10px}.attendance-options button:last-child{border-right:0}.attendance-options button.active{color:#fff;background:var(--p4)}.attendance-footer{padding:18px 22px;display:flex;align-items:center;justify-content:space-between}.attendance-footer>span{color:var(--muted);font-size:11px}.attendance-footer>div{display:flex;gap:8px}.filter-chips{padding:15px;display:flex;gap:7px;border-bottom:1px solid var(--line)}.filter-chips button{min-height:32px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:10px}.filter-chips button.active{color:#fff;background:var(--p4);border-color:var(--p4)}.payment-form{max-width:960px}.payment-summary{margin-top:22px;padding:16px;display:grid;grid-template-columns:.8fr 1.4fr .8fr;background:var(--soft-2);border-left:3px solid var(--p5)}.payment-summary>div{padding:0 14px}.payment-summary>div+div{border-left:1px solid var(--line)}.payment-summary span,.payment-summary strong{display:block}.payment-summary span{color:var(--muted);font-size:9px}.payment-summary strong{margin-top:5px;font-size:11px;line-height:1.5}.current-package{margin-bottom:20px;padding:17px;display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:15px;background:var(--soft-2);border-left:3px solid var(--p5)}.current-package>span{color:var(--p4);font-size:18px;font-weight:750}.current-package strong,.current-package small{display:block}.current-package strong{font-size:12px}.current-package small{margin-top:4px;color:var(--muted);font-size:9px}.action-segment{margin-bottom:22px}.month-switch{display:flex;align-items:center;gap:12px}.month-switch button{width:30px;height:30px;border:1px solid var(--line);background:var(--paper);display:grid;place-items:center;border-radius:6px}.month-switch strong{font-size:12px}.review-layout{margin-top:18px;display:grid;grid-template-columns:250px 1fr 270px;gap:18px}.review-list,.review-editor{padding:20px}.review-filter{display:flex;gap:5px;padding-bottom:12px;border-bottom:1px solid var(--line)}.review-filter button{min-height:28px;padding:0 8px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:9px}.review-filter button.active{color:var(--p4);background:var(--soft)}.review-list>button{width:100%;min-height:62px;padding:0 5px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:30px 1fr 16px;align-items:center;gap:9px;text-align:left}.review-list>button.active{margin-inline:-8px;padding-inline:13px;color:var(--p4);background:var(--soft);border-left:3px solid var(--p4)}.review-list>button>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--p4);font-size:10px}.review-list strong,.review-list small{display:block}.review-list strong{font-size:11px}.review-list small{margin-top:3px;color:var(--muted);font-size:8px}.auto-summary{margin-bottom:17px;padding:13px;background:var(--soft-2);border-left:3px solid var(--p5)}.auto-summary span{color:var(--p4);font-size:9px;font-weight:750}.auto-summary p{margin:5px 0 0;color:var(--muted);font-size:10px}.review-editor label,.stage-editor label{display:block;margin-bottom:14px}.review-editor textarea,.stage-editor textarea{min-height:110px;resize:vertical}.review-preview{padding-top:4px}.preview-label{margin-bottom:10px;color:var(--p4);display:flex;align-items:center;gap:6px;font-size:10px}.mini-phone{min-height:490px;padding:27px 20px;border:1px solid var(--line-dark);border-radius:24px;background:#fff;box-shadow:var(--shadow)}.mini-phone>img{width:95px}.mini-phone>small{display:block;margin:33px 0 8px;color:var(--muted)}.mini-phone h3{font-size:18px}.mini-phone p{color:#4d5c55;font-size:11px;line-height:1.8}.mini-phone>div{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.mini-phone span,.mini-phone strong{display:block}.mini-phone span{color:var(--muted);font-size:9px}.mini-phone strong{margin-top:5px;font-size:11px}.stage-layout{margin-top:18px;display:grid;grid-template-columns:.85fr 1.15fr;gap:18px}.stage-student,.stage-editor{padding:23px}.stage-student h2{margin:13px 0 7px;font-size:20px}.stage-student>p{color:var(--muted);font-size:10px}.stage-student>.progress{margin-bottom:22px}.knowledge-row{min-height:62px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.knowledge-row>span{font-size:11px}.segmented.tiny button{min-height:30px;padding:0 9px;font-size:9px}.decision-cards{display:grid;gap:9px}.decision-cards button{min-height:57px;padding:10px 13px;border:1px solid var(--line);border-radius:8px;background:#fff;display:flex;align-items:center;gap:11px;text-align:left}.decision-cards button.active{color:var(--p4);background:var(--soft);border-color:var(--p4)}.decision-cards strong,.decision-cards small{display:block}.decision-cards strong{font-size:11px}.decision-cards small{margin-top:3px;color:var(--muted);font-size:9px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;padding:24px;background:#10211a52;display:grid;place-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(620px,100%);max-height:calc(100vh - 48px);overflow:hidden;background:var(--paper);border-radius:13px;border:1px solid rgba(255,255,255,.7);box-shadow:0 30px 90px #12302438;display:flex;flex-direction:column}.modal.modal-wide{width:min(760px,100%)}.modal.modal-xwide{width:min(940px,100%)}.modal>header{padding:21px 23px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.modal h2{margin:5px 0 0;font-size:20px}.modal-content{padding:23px;overflow-y:auto}.modal>footer{padding:15px 23px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.checkbox-line{display:flex!important;align-items:center;gap:8px}.checkbox-line input{width:16px;min-height:auto}.checkbox-line span{margin:0!important}.weekly-parallel-picker{padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--soft-2)}.weekly-parallel-head{margin-bottom:10px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.weekly-parallel-head span,.weekly-parallel-head small{display:block}.weekly-parallel-head span{color:var(--ink);font-size:11px;font-weight:750}.weekly-parallel-head small{color:var(--muted);font-size:9px}.weekly-parallel-options{display:grid;gap:8px}.weekly-parallel-options label{min-height:58px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;cursor:pointer}.weekly-parallel-options label.selected{border-color:var(--p5);background:var(--soft);box-shadow:inset 3px 0 0 var(--p5)}.weekly-parallel-options label:has(input:disabled){cursor:not-allowed;opacity:.62}.weekly-parallel-options input{width:16px;height:16px;min-height:auto;accent-color:var(--p4)}.weekly-parallel-options strong,.weekly-parallel-options small{display:block}.weekly-parallel-options strong{font-size:11px}.weekly-parallel-options small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.5}.weekly-parallel-options em{color:var(--p4);font-size:9px;font-style:normal;font-weight:700;white-space:nowrap}.weekly-parallel-picker>p{margin:10px 0 0;color:var(--muted);font-size:9px;line-height:1.65}.toast{position:fixed;right:28px;bottom:28px;z-index:50;min-height:48px;padding:0 16px;border-radius:9px;background:var(--p4-dark);color:#fff;display:flex;align-items:center;gap:9px;box-shadow:0 16px 40px #14483438;font-size:12px}.student-stage{min-height:100vh;padding:28px;position:relative;background:var(--bg);display:grid;place-items:center;overflow:hidden}.student-stage:before{content:"";position:fixed;left:8vw;top:12vh;width:2px;height:36vh;background:var(--p5);box-shadow:11px 90px 0 var(--p6),22px 35px 0 var(--p4);opacity:.8}.student-stage:after{content:"";position:fixed;right:7vw;bottom:10vh;width:170px;height:170px;background:url(/assets/37-watermark.png) center/contain no-repeat}.prototype-switcher{position:fixed;top:24px;right:26px;display:flex;gap:8px;z-index:4}.student-phone-shell{width:393px;height:min(852px,calc(100vh - 56px));min-height:680px;border:1px solid #bfcac3;border-radius:32px;background:#fff;overflow:hidden;box-shadow:0 32px 80px #1c403124;position:relative}.student-statusbar{height:28px;padding:0 19px;display:flex;align-items:center;justify-content:space-between;color:#4c5a54;font-size:9px}.student-statusbar span:first-child{font-weight:750}.student-screen{height:calc(100% - 28px);display:flex;flex-direction:column;background:#fcfdfa}.student-header{height:57px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fffffff5}.student-header img{width:91px}.student-header .icon-button{width:34px;height:34px}.student-notification-dot{position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:50%;background:#d96655;border:1px solid #fff}.student-scroll{flex:1;padding:19px 16px 100px;overflow-y:auto;scrollbar-width:none}.student-scroll::-webkit-scrollbar{display:none}.student-greeting{position:relative;min-height:118px;padding:14px 17px;background:var(--paper);color:var(--ink);border-left:3px solid var(--p5);overflow:hidden}.student-greeting .eyebrow{color:var(--p4)}.student-greeting h1{margin:16px 0 6px;font-size:25px}.student-greeting p{margin:0;color:var(--muted);font-size:11px}.student-greeting img{position:absolute;width:115px;right:-10px;bottom:-20px;opacity:.85}.student-alert{width:100%;min-height:66px;margin:12px 0;padding:11px 12px;border:1px solid #cfe6d6;border-radius:9px;background:var(--soft);display:grid;grid-template-columns:36px 1fr 18px;gap:9px;align-items:center;text-align:left}.student-alert>span{width:34px;height:34px;border-radius:50%;background:var(--p4);color:#fff;display:grid;place-items:center}.student-alert strong,.student-alert small{display:block}.student-alert strong{color:var(--p4);font-size:11px}.student-alert small{margin-top:4px;color:var(--muted);font-size:8px}.student-alert.completed{border-color:#bcd9c6;background:#f3f8f4}.student-alert.completed>span{background:var(--p5)}.student-section{margin-top:19px}.student-section .section-heading,.student-card .section-heading{min-height:auto;margin-bottom:10px}.student-section .section-heading h2,.student-card .section-heading h2{font-size:15px}.next-course{min-height:132px;padding:13px;border:1px solid var(--line-dark);border-left:4px solid var(--p5);border-radius:9px;background:#fff;display:grid;grid-template-columns:74px 1fr auto;gap:12px;align-items:center}.date-block{text-align:center;border-right:1px solid var(--line)}.date-block strong,.date-block small{display:block}.date-block strong{color:var(--p4);font-size:18px;line-height:1.2}.date-block small{margin-top:5px;color:var(--muted);font-size:7px;line-height:1.35}.next-course h3{margin:9px 0 5px;font-size:13px}.next-course p,.next-course div>span{margin:0;color:var(--muted);font-size:8px}.next-course div>span{margin-top:7px;display:flex;align-items:center;gap:3px}.next-course>button{align-self:start;padding:0;border:0;background:transparent;color:var(--p4);font-size:9px}.student-mini-grid{margin:12px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.student-mini-grid button{min-height:95px;padding:13px;border:1px solid var(--line);border-radius:9px;background:#fff;text-align:left}.student-mini-grid span{color:var(--muted);font-size:9px}.student-mini-grid strong{display:block;margin:7px 0 2px;color:var(--p4);font-size:24px}.student-mini-grid strong small{font-size:10px}.student-mini-grid p{margin:0;color:var(--muted);font-size:8px}.student-card{margin-top:11px;padding:15px;border:1px solid var(--line);border-radius:9px;background:#fff}.student-card>h3{margin-bottom:14px;font-size:14px}.card-button{width:100%;color:inherit;text-align:left}.card-button:hover{border-color:#bed4c5;background:#fdfefa}.student-review-card>p,.review-copy{margin:0;color:#45564e;font-size:10px;line-height:1.8}.student-review-card footer{margin-top:12px;display:flex;align-items:center;justify-content:space-between}.student-review-card footer span{color:var(--muted);font-size:8px}.mastery .section-heading strong{color:var(--p4);font-size:15px}.mastery-tags{margin-top:12px;display:flex;gap:5px;flex-wrap:wrap}.mastery-tags .badge{font-size:7px}.student-nav{height:68px;padding:6px 10px 8px;border-top:1px solid var(--line);background:#fffffff7;display:grid;grid-template-columns:repeat(4,1fr)}.student-nav button{border:0;background:transparent;color:#8a938f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:8px}.student-nav button.active{color:var(--p4)}.stage-caption{position:fixed;left:calc(50% + 245px);top:28%;width:190px;display:grid;grid-template-columns:3px 1fr;column-gap:13px}.vertical-beat{grid-row:1 / 3;width:3px;height:73px;background:var(--p5);box-shadow:9px 18px 0 var(--p6)}.stage-caption strong,.stage-caption small{display:block}.stage-caption strong{color:var(--p4);font-size:15px}.stage-caption small{margin-top:7px;color:var(--muted);font-size:10px;line-height:1.5}.student-page-title{margin-bottom:19px}.student-page-title h1{margin:6px 0;font-size:24px}.student-page-title p{margin:0;color:var(--muted);font-size:9px}.student-course-row{min-height:66px;padding:12px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.student-course-row strong,.student-course-row small{display:block}.student-course-row strong{font-size:11px}.student-course-row small{margin-top:5px;color:var(--muted);font-size:8px}.student-course-row>button{padding:6px 9px;border:1px solid #cfe5d6;border-radius:999px;color:var(--p4);background:var(--soft);font-size:8px}.upcoming-course-card{padding:18px;border-top:2px solid var(--p4)}.card-kicker{margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}.card-kicker>span{color:var(--p4);font-size:8px;font-weight:750;letter-spacing:.14em}.upcoming-course-card h2{margin:0 0 15px;font-size:20px}.course-facts{padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;gap:9px}.course-facts p{margin:0;color:#4c5b54;display:flex;align-items:center;gap:8px;font-size:10px}.course-facts svg{color:var(--p4)}.course-action-row{margin-top:14px;display:flex;align-items:center;justify-content:space-between}.course-action-row button{min-height:34px;padding:0 11px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;color:var(--p4);display:inline-flex;align-items:center;gap:3px;font-size:9px}.course-action-row button:last-child{border:0;padding-right:0}.parallel-entry{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.parallel-entry h3{margin:12px 0 5px;font-size:13px}.parallel-entry p{margin:0;color:var(--muted);font-size:9px}.parallel-entry .button{min-height:35px;padding-inline:11px;font-size:9px}.full-text-link{width:100%;min-height:42px;margin-top:4px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--p4);display:flex;align-items:center;justify-content:center;gap:4px;font-size:9px}.week-course-list .student-course-row{border-top:1px solid var(--line)}.student-level-card{position:relative;padding:20px;border-radius:10px;background:var(--p4);color:#fff;overflow:hidden}.student-level-card>img{position:absolute;right:-28px;bottom:-25px;width:160px;filter:brightness(0) invert(1);opacity:.12}.student-level-card h2{margin:13px 0 5px;font-size:23px}.student-level-card p{color:#ffffffb8;font-size:9px}.student-level-card .progress{background:#fff3}.student-level-card .progress>span{background:var(--p6)}.student-level-card>small{display:block;margin-top:9px;color:#ffffffad;font-size:8px}.mastery-list>div{min-height:47px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:10px}.practice-focus{margin-top:14px;padding:12px;background:var(--soft-2);border-left:3px solid var(--p5)}.practice-focus span,.practice-focus strong{display:block}.practice-focus span{color:var(--muted);font-size:8px}.practice-focus strong{margin-top:5px;font-size:10px}.learning-record-card{min-height:104px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:14px}.learning-record-card>div{min-width:0}.learning-record-card>div>span{color:var(--p4);font-size:7px;font-weight:750;letter-spacing:.1em}.learning-record-card h3{margin:8px 0 5px;font-size:14px}.learning-record-card p{margin:0;color:var(--muted);font-size:9px;line-height:1.55}.learning-record-card>svg{flex:0 0 auto;color:var(--p4)}.student-profile{padding:8px 4px 20px;display:flex;align-items:center;gap:13px}.student-profile>div{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--p4);font-size:18px}.student-profile h1{margin:0 0 4px;font-size:22px}.student-profile p{margin:0;color:var(--muted);font-size:9px}.package-hero>span{color:var(--muted);font-size:9px}.package-hero>strong{display:block;margin:9px 0 3px;color:var(--p4);font-size:30px}.package-hero>strong small{font-size:10px}.package-hero p{color:var(--muted);font-size:8px}.package-card-button{padding:17px;display:flex;align-items:center;justify-content:space-between;gap:16px}.package-card-button .package-hero{flex:1}.package-card-button>svg{color:var(--p4)}.menu-card{padding-top:3px;padding-bottom:3px}.menu-card button{width:100%;min-height:59px;padding:0;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:27px 1fr 16px;align-items:center;text-align:left}.menu-card button:last-child{border-bottom:0}.menu-card button>svg{color:var(--p4)}.menu-card strong,.menu-card small{display:block}.menu-card strong{font-size:10px}.menu-card small{margin-top:4px;color:var(--muted);font-size:8px}.account-note{border-left:3px solid var(--p5);background:var(--soft-2)}.account-note strong{font-size:10px}.account-note p{margin:6px 0 0;color:var(--muted);font-size:8px;line-height:1.6}.pending-package-card{border-left:3px solid #d6a052;background:var(--amber-bg)}.pending-package-card>div{display:flex;align-items:center;justify-content:space-between}.pending-package-card>div>span{color:var(--muted);font-size:8px}.pending-package-card h3{margin:13px 0 5px;font-size:13px}.pending-package-card p{margin:0;color:#6e552c;font-size:9px}.pending-package-card>small{display:block;margin-top:8px;color:var(--muted);font-size:8px;line-height:1.55}.student-subheader{height:56px;padding:0 14px;border-bottom:1px solid var(--line);background:#fff;display:grid;grid-template-columns:38px 1fr 38px;align-items:center;text-align:center}.student-subheader strong{font-size:13px}.student-detail-scroll{padding-top:16px;padding-bottom:30px}.student-detail-scroll.has-fixed-footer{padding-bottom:120px}.student-detail-eyebrow{margin:0 1px 15px;color:var(--p4);font-size:8px;font-weight:750;letter-spacing:.15em}.notice-date{margin:18px 2px 9px;color:var(--muted);font-size:9px}.notice-card{width:100%;min-height:91px;margin-bottom:8px;padding:13px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;display:grid;grid-template-columns:34px 1fr 18px;gap:10px;align-items:start;text-align:left}.notice-card.unread{border-left:3px solid var(--p5);background:#fdfefa}.notice-card>span{width:32px;height:32px;border-radius:50%;background:var(--soft);color:var(--p4);display:grid;place-items:center}.notice-card strong,.notice-card small{display:block}.notice-card strong{font-size:11px}.notice-card p{margin:5px 0;color:var(--muted);font-size:9px;line-height:1.5}.notice-card small{color:#919995;font-size:7px}.notice-card>svg{align-self:center;color:var(--p4)}.detail-hero{padding:20px;border:1px solid var(--line-dark);border-left:4px solid var(--p5);border-radius:10px;background:var(--p4);color:#fff}.detail-hero.light{background:var(--paper);color:var(--ink)}.detail-hero h1{margin:16px 0 6px;font-size:24px}.detail-hero p{margin:0;color:var(--muted);font-size:9px}.detail-list{padding-block:4px}.info-row{min-height:61px;padding:11px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px}.info-row:last-child{border-bottom:0}.info-row>span{width:32px;height:32px;border-radius:7px;background:var(--soft);color:var(--p4);display:grid;place-items:center}.info-row small,.info-row strong{display:block}.info-row small{color:var(--muted);font-size:8px}.info-row strong{margin-top:4px;font-size:10px}.info-row div{min-width:0}.info-row strong{overflow-wrap:anywhere;white-space:normal;line-height:1.55}.info-row a{color:var(--p4);text-decoration:none}.lesson-topic>span{color:var(--p4);font-size:8px;font-weight:750}.lesson-topic h3{margin:8px 0 6px;font-size:17px}.lesson-topic p{margin:0;color:var(--muted);font-size:9px;line-height:1.65}.student-rule-card{margin-top:12px;padding:13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#405149;display:grid;grid-template-columns:24px 1fr;gap:10px}.student-rule-card>svg{color:var(--p4)}.student-rule-card strong{display:block;font-size:10px}.student-rule-card p{margin:5px 0 0;color:var(--muted);font-size:8px;line-height:1.65}.collective-scroll{padding-bottom:130px}.collective-hero{padding:19px;border:1px solid var(--line-dark);border-left:4px solid var(--p5);border-radius:10px;background:#fff}.collective-hero h1{margin:14px 0 17px;font-size:23px}.collective-hero p{margin:10px 0 0;color:#58645e;display:flex;align-items:center;gap:8px;font-size:10px}.collective-note{margin:17px 0;color:#56635d;font-size:10px;line-height:1.7}.slot-section h2{margin:6px 0 12px;font-size:18px}.slot-card{width:100%;min-height:82px;margin-bottom:9px;padding:13px;border:1px solid var(--line-dark);border-radius:9px;background:#fff;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;text-align:left}.slot-card.active{border-color:var(--p4);background:var(--soft-2);box-shadow:inset 3px 0 0 var(--p5)}.slot-card .radio{width:25px;height:25px;border:1px solid var(--line-dark);border-radius:50%;display:grid;place-items:center;color:#fff;background:#fff}.slot-card.active .radio{border-color:var(--p4);background:var(--p4)}.slot-card strong,.slot-card small{display:block}.slot-card strong{font-size:11px}.slot-card small{margin-top:4px;color:var(--muted);font-size:9px}.slot-card em{color:var(--muted);font-size:9px;font-style:normal}.student-fixed-footer{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:10px 16px 16px;border-top:1px solid var(--line);background:#fffffff7}.student-fixed-footer p{margin:0 0 8px;color:var(--muted);text-align:center;font-size:9px}.student-fixed-footer .button{width:100%}.student-fixed-footer.two-actions{display:grid;grid-template-columns:.8fr 1.2fr;gap:8px}.student-fixed-footer.two-actions .button{width:auto;padding-inline:10px;font-size:11px}.leave-course{padding:18px;border-left:3px solid var(--p5)}.leave-course h2{margin:13px 0 6px;font-size:20px}.leave-course p{margin:0;color:var(--muted);font-size:9px}.leave-result{margin-top:10px;padding:13px;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:25px 1fr;gap:9px}.leave-result.positive{color:var(--p4);background:var(--soft);border-color:#cce3d4}.leave-result strong{display:block;font-size:10px}.leave-result p{margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.5}.submitted-summary{margin-top:15px;padding:14px;border:1px solid var(--line);background:#fff;display:grid;grid-template-columns:80px 1fr;row-gap:10px;align-items:center}.submitted-summary span{color:var(--muted);font-size:8px}.submitted-summary strong{font-size:9px}.student-form-section{margin-top:17px}.student-form-section>label{display:block;margin:14px 0 8px;color:#405149;font-size:9px;font-weight:750}.student-choice-chips{display:flex;gap:7px;flex-wrap:wrap}.student-choice-chips button{min-height:34px;padding:0 12px;border:1px solid var(--line-dark);border-radius:999px;background:#fff;color:var(--muted);font-size:9px}.student-choice-chips button.active{color:var(--p4);background:var(--soft);border-color:var(--p4)}.student-form-section textarea{width:100%;min-height:88px;padding:11px;border:1px solid var(--line-dark);border-radius:8px;resize:none;color:var(--ink);font-size:10px}.parallel-topic{padding:18px 2px 17px;border-bottom:1px solid var(--line)}.parallel-topic>span{color:var(--p4);font-size:8px;font-weight:750}.parallel-topic h2{margin:8px 0 5px;font-size:23px}.parallel-topic p{margin:0;color:var(--muted);font-size:9px}.slot-group-label{margin:16px 1px 8px;color:var(--muted);font-size:8px;font-weight:700}.package-detail-hero{position:relative;padding:22px;border-radius:10px;background:var(--p4);color:#fff;overflow:hidden}.package-detail-hero>img{position:absolute;width:170px;right:-36px;bottom:-40px;filter:brightness(0) invert(1);opacity:.09}.package-detail-hero>.badge{position:relative;width:auto;margin:0;display:inline-flex;color:var(--p4)}.package-detail-hero>span:not(.badge){position:relative;display:block;margin-top:19px;color:#ffffffc2;font-size:9px}.package-detail-hero>strong{display:block;margin:5px 0 12px;font-size:37px}.package-detail-hero>strong small{margin-left:5px;font-size:10px}.package-detail-hero .progress{background:#ffffff2e}.package-detail-hero .progress>span{background:var(--p6)}.package-detail-hero p{margin:8px 0 0;color:#ffffffb3;font-size:8px}.compact-menu{margin-top:11px}.queued-package{border-left:3px solid #d6a052;background:#fffdfa}.queued-package>div{display:flex;gap:5px}.queued-package h3{margin:13px 0 6px;font-size:14px}.queued-package p{margin:0;color:var(--muted);font-size:9px}.queued-package small{display:block;margin-top:8px;color:#7b6848;font-size:8px;line-height:1.6}.records-summary{padding:18px 2px 20px;border-bottom:1px solid var(--line)}.records-summary>span{color:var(--muted);font-size:8px}.records-summary strong{display:block;margin:5px 0;color:var(--p4);font-size:32px}.records-summary strong small{margin-left:4px;font-size:10px}.records-summary p{margin:0;color:var(--muted);font-size:8px}.student-timeline{padding:8px 0 10px}.student-timeline article{min-height:90px;display:grid;grid-template-columns:48px 12px 1fr auto;gap:8px;align-items:start}.student-timeline time{padding-top:13px;color:var(--muted);font-size:8px}.student-timeline article>span{position:relative;align-self:stretch;border-left:1px solid var(--line-dark)}.student-timeline article>span:before{content:"";position:absolute;width:7px;height:7px;top:16px;left:-4px;border-radius:50%;background:var(--p5)}.student-timeline article>div{padding:11px 0;border-bottom:1px solid var(--line)}.student-timeline strong,.student-timeline small{display:block}.student-timeline strong{font-size:10px}.student-timeline p{margin:4px 0;color:var(--muted);font-size:8px}.student-timeline small{color:#8a938f;font-size:7px}.student-timeline b{padding-top:13px;color:#a94f45;font-size:9px}.student-timeline b.neutral{color:var(--muted)}.student-timeline b.plus{color:var(--p4)}.payment-record-card{margin-bottom:11px;padding:18px;border:1px solid var(--line-dark);border-top:3px solid var(--p5);border-radius:10px;background:#fff}.payment-record-card>div{display:flex;justify-content:space-between;align-items:center}.payment-record-card time{color:var(--muted);font-size:8px}.payment-record-card h2{margin:18px 0 5px;font-size:16px}.payment-record-card>strong{color:var(--p4);font-size:27px}.payment-record-card>p{margin:5px 0 14px;color:var(--muted);font-size:8px}.payment-record-card footer{padding-top:12px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:7px}.payment-record-card.muted{border-top-color:var(--line-dark);opacity:.76}.payment-record-card.pending{border-top-color:#d6a052;background:#fffdfa}.payment-record-card.pending>strong{color:var(--amber)}.rights-hero{padding:23px 2px 20px;border-bottom:1px solid var(--line)}.rights-hero>svg{display:block;margin-bottom:13px;color:var(--p4)}.rights-hero h1{margin:15px 0 7px;font-size:22px}.rights-hero p{margin:0;color:var(--muted);font-size:9px;line-height:1.6}.rights-rules>div{padding:13px 0;border-top:1px solid var(--line)}.rights-rules span{color:var(--p4);font-size:10px;font-weight:750}.rights-rules p{margin:5px 0 0;color:var(--muted);font-size:8px;line-height:1.65}.review-detail-head{padding:18px 2px 19px;border-bottom:1px solid var(--line)}.review-detail-head>span{color:var(--p4);font-size:8px;font-weight:750}.review-detail-head h1{margin:9px 0 5px;font-size:24px}.review-detail-head p{margin:0;color:var(--muted);font-size:9px}.review-detail-body{padding:18px}.teacher-sign{margin-bottom:16px;display:flex;align-items:center;gap:10px}.teacher-sign img{width:38px;height:38px;border-radius:50%;object-fit:cover}.teacher-sign strong,.teacher-sign small{display:block}.teacher-sign strong{font-size:10px}.teacher-sign small{margin-top:3px;color:var(--muted);font-size:7px}.review-detail-body>p{margin:0;font-size:11px;line-height:1.85}.review-focus-grid{margin-top:11px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.review-focus-grid>div{min-height:112px;padding:14px;border:1px solid var(--line);background:#fff}.review-focus-grid span,.review-focus-grid strong{display:block}.review-focus-grid span{color:var(--p4);font-size:8px}.review-focus-grid strong{margin-top:10px;font-size:10px;line-height:1.6}.stage-decision{padding:22px;border-left:4px solid var(--p5);background:var(--soft-2)}.stage-decision h1{margin:16px 0 7px;color:var(--p4);font-size:25px}.stage-decision p{margin:0;color:var(--muted);font-size:9px;line-height:1.65}.contact-brand{padding:27px 6px 22px;border-bottom:1px solid var(--line)}.contact-brand img{width:125px}.contact-brand p{margin:18px 0 0;color:var(--muted);font-size:9px;line-height:1.7}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(520px,1.05fr) minmax(500px,.95fr);background:var(--bg)}.login-brand-panel{position:relative;min-height:100vh;padding:58px 7vw;overflow:hidden;border-right:1px solid var(--line)}.login-watermark{position:absolute;width:min(620px,75%);left:7%;top:22%;opacity:.75}.login-brand-top{position:relative;z-index:1;display:flex;align-items:flex-end;gap:20px}.login-brand-top img{width:210px}.login-brand-top>span{padding-left:20px;border-left:1px solid var(--p5);color:var(--p4);font-size:13px;letter-spacing:.18em}.login-copy{position:relative;z-index:1;margin-top:22vh}.login-copy h1{margin:9px 0;font-size:clamp(35px,4vw,60px);letter-spacing:-.05em}.login-copy h1 span{color:var(--p4);font-size:.4em;letter-spacing:.04em}.login-copy p{color:var(--muted);font-size:14px}.login-beats{display:flex;align-items:flex-end;gap:7px;margin-top:34px}.login-beats i{display:block;width:3px;background:var(--p4)}.login-beats i:nth-child(1){height:24px}.login-beats i:nth-child(2){height:45px;background:var(--p5)}.login-beats i:nth-child(3){height:31px;background:var(--p6)}.piano-keys{position:absolute;left:0;bottom:0;width:min(460px,65%);height:auto;display:block}.login-form-panel{min-height:100vh;padding:40px 7vw;display:grid;grid-template-rows:1fr auto;place-items:center;position:relative}.login-card{width:min(470px,100%);padding:34px 38px 38px;border:1px solid var(--line-dark);border-radius:13px;background:#fffefaeb;box-shadow:var(--shadow)}.login-card>img{width:142px;display:block;margin:0 auto 22px}.demo-entry-panel{margin:0 0 27px;padding:17px;border:1px solid #bdd6c5;border-top:4px solid var(--p5);border-radius:10px;background:linear-gradient(145deg,#f0f7f2,#fbf8ef)}.demo-entry-panel>div:first-child>span{color:var(--p4);font-size:8px;font-weight:800;letter-spacing:.13em}.demo-entry-panel h3{margin:5px 0 4px;color:#263c30;font-family:Songti SC,serif;font-size:17px}.demo-entry-panel p{margin:0;color:var(--muted);font-size:9px;line-height:1.55}.demo-entry-actions{display:grid;gap:8px;margin-top:13px}.demo-entry-actions>button{width:100%;min-height:51px;padding:8px 11px;display:grid;grid-template-columns:24px 1fr 18px;align-items:center;gap:6px;border:1px solid #c8d9cd;border-radius:8px;background:#ffffffeb;color:var(--p4);text-align:left;cursor:pointer}.demo-entry-actions>button:first-child{border-color:var(--p4);background:var(--p4);color:#fff}.demo-entry-actions>button:hover{transform:translateY(-1px);box-shadow:0 6px 16px #214b341c}.demo-entry-actions>button:disabled{opacity:.55;cursor:wait;transform:none}.demo-entry-actions span,.demo-entry-actions strong,.demo-entry-actions small{display:block}.demo-entry-actions strong{font-size:11px}.demo-entry-actions small{margin-top:2px;color:currentColor;font-size:8px;opacity:.72}.demo-direct-paths{display:block;margin-top:10px;color:#69766f;font-family:ui-monospace,monospace;font-size:7px;text-align:center}.login-card>.eyebrow,.login-card>h2,.login-card>p{text-align:center}.login-card h2{margin:7px 0 6px;font-size:25px}.login-card>p{margin-bottom:28px;color:var(--muted);font-size:11px}.login-card>label{display:block;margin-bottom:17px}.login-card>label>span{display:block;margin-bottom:7px;font-size:10px;font-weight:700}.input-with-icon{height:45px;padding:0 10px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;display:flex;align-items:center;gap:8px}.input-with-icon>svg{color:var(--muted)}.input-with-icon input{flex:1;min-width:0;border:0;outline:0;font-size:11px}.input-with-icon .icon-button{width:30px;height:30px}.login-options{margin:2px 0 20px;display:flex;justify-content:space-between;align-items:center}.check-label{display:flex;align-items:center;gap:6px;color:#4c5953;font-size:10px}.check-label input{position:absolute;opacity:0}.check-label>span{width:15px;height:15px;border:1px solid var(--line-dark);border-radius:4px;display:grid;place-items:center;color:#fff;background:#fff}.check-label input:checked+span{border-color:var(--p4);background:var(--p4)}.login-options>button,.student-login-link{padding:0;border:0;background:transparent;color:var(--p4);font-size:10px}.login-submit{width:100%}.login-admin-note{display:block;margin-top:12px;color:var(--muted);text-align:center;font-size:9px}.login-error{margin-top:12px;padding:10px 12px;border:1px solid #e7c4bc;border-left:3px solid #a05e49;background:#fff6f3;color:#8f4938;font-size:11px;line-height:1.5}.login-divider{margin:24px 0 17px;border-top:1px solid var(--line);text-align:center}.login-divider span{position:relative;top:-8px;padding:0 9px;background:var(--paper);color:var(--muted);font-size:9px}.student-login-link{width:100%;display:flex;justify-content:center;align-items:center;gap:4px}.student-login-link.disabled{color:var(--muted);line-height:1.6;text-align:center;cursor:default}@media(max-width:1120px){.admin-app{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding-inline:12px}.admin-content{padding-inline:24px}.review-layout{grid-template-columns:220px 1fr}.review-preview,.stage-caption{display:none}.class-edit-combined{grid-template-columns:1fr}}@media(max-width:1020px){.login-page{grid-template-columns:minmax(0,1fr)}.login-brand-panel{display:none}}@media(max-width:760px){.student-stage{padding:0;display:block}.student-stage:before,.student-stage:after,.prototype-switcher,.stage-caption{display:none}.student-phone-shell{width:100%;height:100dvh;min-height:0;border:0;border-radius:0;box-shadow:none}.login-page{grid-template-columns:1fr}.login-brand-panel{display:none}.login-form-panel{min-height:100vh;padding:24px}.login-card{padding:28px 22px 32px}}.person-avatar{flex:0 0 auto;width:42px;height:42px;border-radius:50%;object-fit:cover;display:inline-grid;place-items:center;overflow:hidden;background:#dfeee5;color:var(--p4)}.person-avatar.default{position:relative;border:1px solid #cfe1d5}.person-avatar.default img{position:absolute;width:70%;opacity:.12}.person-avatar.default b{position:relative;font-size:13px}.person-avatar.small{width:34px;height:34px}.person-avatar.tiny{width:26px;height:26px}.person-avatar.large{width:64px;height:64px}.person-avatar.xlarge{width:112px;height:112px}.student-title>.person-avatar{width:52px;height:52px}.table-toolbar>select,.time-filter-input{height:40px;padding:0 10px;border:1px solid var(--line-dark);border-radius:8px;background:#fff;color:#405048;font-size:11px}.time-filter-input{width:145px}.student-table.pending-class-table .table-row{grid-template-columns:1.1fr 1.45fr .45fr 1fr 1fr 1.1fr 24px}.student-table.pending-class-table.managing .table-row{grid-template-columns:34px 1.1fr 1.45fr .45fr 1fr 1fr 1.1fr 24px}.step-indicator{margin-bottom:20px;display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.step-indicator span{padding:12px;color:var(--muted);font-size:11px;text-align:center}.step-indicator .done{color:var(--p4)}.step-indicator .active{color:#fff;background:var(--p4)}.course-detail-summary{margin-bottom:18px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--p4);border-bottom:1px solid var(--line)}.course-detail-summary>div{min-height:62px;padding:12px 14px}.course-detail-summary>div+div{border-left:1px solid var(--line)}.course-detail-summary span,.course-detail-summary strong{display:block}.course-detail-summary span{color:var(--muted);font-size:9px}.course-detail-summary strong{margin-top:5px;color:var(--p4);font-size:13px}.course-detail-roster{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.course-roster-title{min-height:47px;padding-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.course-roster-title>span{min-width:0}.course-roster-title b,.course-roster-title small{display:block}.course-roster-title b{font-size:12px}.course-roster-title small{margin-top:4px;color:var(--muted);font-size:9px}.course-roster-row{min-height:61px;padding:8px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:36px minmax(0,1fr) 140px 82px;gap:10px;align-items:center}.course-detail-roster strong,.course-detail-roster small{display:block}.course-detail-roster strong{font-size:12px}.course-detail-roster small{margin-top:3px;color:var(--muted);font-size:9px}.course-detail-roster select{height:36px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;font-size:11px}.remove-course-student{height:34px;border:0;background:transparent;color:#a05e49;font-size:9px}.course-roster-empty{padding:26px 12px;border:1px dashed var(--line-dark);color:var(--muted);background:var(--soft-2);text-align:center;font-size:10px}.add-course-student{margin-top:12px;padding:12px;border:1px solid var(--line);background:var(--soft-2)}.add-course-student .student-search-field>span,.completed-course-content>span{display:block;margin-bottom:6px;color:var(--muted);font-size:9px;font-weight:700}.completed-course-content{display:block;margin-top:15px}.course-detail-roster textarea{width:100%;min-height:75px;padding:10px;border:1px solid var(--line-dark);border-radius:7px;resize:vertical}.course-score-decision{padding:13px;border:1px solid var(--line);border-radius:8px;background:var(--soft-2)}.course-score-decision>span{display:block;margin-bottom:9px;color:var(--muted);font-size:9px;font-weight:700}.course-score-decision>div{display:flex;gap:9px;flex-wrap:wrap}.course-score-decision label{min-height:38px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:#fff;display:inline-flex;align-items:center;gap:7px}.course-score-decision label:has(input:checked){color:var(--p4);border-color:var(--p5);background:var(--soft)}.course-score-decision b{font-size:10px}.course-score-decision>small{display:block;margin-top:9px;color:var(--muted);font-size:8px;line-height:1.6}.attendance-correction-panel{margin-top:16px;padding:14px;border:1px solid #e5c2bb;border-radius:9px;background:#fff8f6}.attendance-correction-panel>strong{display:block;margin-bottom:8px;color:#91483e;font-size:12px}.attendance-correction-panel>p{margin:5px 0;color:#665b57;font-size:9px;line-height:1.6}.attendance-correction-panel>label{display:block;margin-top:11px}.attendance-correction-panel>label>span{display:block;margin-bottom:6px;color:#91483e;font-size:9px;font-weight:700}.attendance-correction-panel textarea{background:#fff}.v2-score-none{min-height:68px;padding:13px 14px;border:1px solid #cfe2d6;border-radius:9px;background:#f3faf5;color:var(--p4);display:flex;align-items:center;gap:10px}.v2-score-none span{min-width:0}.v2-score-none strong,.v2-score-none small{display:block}.v2-score-none strong{font-size:11px}.v2-score-none small{margin-top:4px;color:var(--muted);font-size:8px;line-height:1.5}.week-columns{min-width:calc(var(--visible-days, 1) * 230px);grid-template-columns:repeat(var(--visible-days, 1),minmax(230px,1fr))}.schedule-surface{overflow-x:auto}.week-column{min-height:420px}.course-day-grid{overflow-x:auto;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.weekly-priority{overflow:hidden}.slot-editor input{min-width:0}.collective-picker-head{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.collective-picker-head p{margin:4px 0 0;color:var(--muted);font-size:9px}.collective-picker-head>div:last-child{display:flex;gap:10px}.collective-picker-head button{padding:0;border:0;background:transparent;color:var(--p4);font-size:10px}.collective-selection-summary{min-height:52px;margin:11px 0;padding:0 13px;border:1px solid var(--line);border-left:3px solid var(--p5);background:var(--soft-2);display:flex;align-items:center;gap:17px}.collective-selection-summary strong{color:var(--p4);font-size:13px}.collective-selection-summary span{color:var(--muted);font-size:9px}.collective-student-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.collective-student-groups section{border:1px solid var(--line);border-radius:9px;overflow:hidden}.collective-group-title{width:100%;min-height:58px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:var(--soft-2);display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left}.collective-group-title strong,.collective-group-title small{display:block}.collective-group-title strong{font-size:11px}.collective-group-title small{margin-top:4px;color:var(--muted);font-size:8px}.collective-student-groups section>div{max-height:205px;overflow-y:auto}.collective-student-groups section>div>label{min-height:49px;padding:7px 10px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:17px minmax(0,1fr) auto;gap:9px;align-items:center}.collective-student-groups label strong,.collective-student-groups label small{display:block}.collective-student-groups label strong{font-size:10px}.collective-student-groups label small{margin-top:3px;color:var(--muted);font-size:8px}.collective-replace{margin-top:14px;padding:12px 13px;border:1px solid var(--line);background:#fff}.closure-select-head{display:flex;align-items:center;justify-content:space-between}.closure-select-head button{margin-left:8px;border:0;background:transparent;color:var(--p4);font-size:11px}.closure-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.closure-groups section{border:1px solid var(--line);border-radius:9px;overflow:hidden}.closure-group-title{width:100%;min-height:58px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:var(--soft-2);display:flex;justify-content:space-between;align-items:center;text-align:left}.closure-group-title strong,.closure-group-title small{display:block}.closure-group-title strong{font-size:12px}.closure-group-title small{margin-top:3px;color:var(--muted);font-size:9px}.closure-groups section>div{max-height:190px;overflow-y:auto}.closure-groups section>div>label{min-height:43px;padding:7px 10px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:17px minmax(0,1fr);gap:9px;align-items:center}.closure-groups label span,.closure-groups label strong,.closure-groups label small{display:block}.closure-groups label strong{font-size:11px;font-weight:700}.closure-groups label small{margin-top:2px;color:var(--muted);font-size:8px}.teaching-closure-list{margin-top:16px}.teaching-closure-list-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.teaching-closure-list-header .section-title{margin-bottom:5px}.teaching-closure-list-header p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.teaching-closure-cards{display:grid;gap:9px}.teaching-closure-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 15px;border:1px solid #ead5aa;border-left:4px solid #cc9130;border-radius:9px;background:#fffdf7}.teaching-closure-card strong,.teaching-closure-card small{display:block}.teaching-closure-card strong{color:#5d4218;font-size:13px}.teaching-closure-card small{margin-top:4px;color:var(--muted);font-size:10px}.teaching-closure-card p{margin:7px 0 0;color:#6f5a36;font-size:10px;line-height:1.5}.teaching-closure-actions{flex:0 0 auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.teaching-closure-actions .button{white-space:nowrap}.teaching-closure-empty{display:flex;align-items:center;gap:9px;min-height:54px;padding:13px;color:var(--muted);border:1px dashed var(--line);border-radius:8px;font-size:11px}.empty-state{margin-top:18px;padding:70px 20px;text-align:center}.empty-state svg{color:var(--p4)}.empty-state h2{margin:14px 0 7px;font-size:19px}.empty-state p{color:var(--muted);font-size:12px}.evaluation-test-guide{margin-top:18px;padding:14px 16px;border:1px solid #c8e3d2;border-left:4px solid var(--p5);border-radius:9px;background:var(--soft);display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center}.evaluation-test-guide>span{padding:6px 9px;border-radius:999px;color:#fff;background:var(--p4);font-size:9px;font-weight:750}.evaluation-test-guide strong{font-size:12px}.evaluation-test-guide p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.55}.evaluation-layout{margin-top:18px;display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px}.evaluation-batches,.evaluation-editor{padding:20px}.evaluation-batches>button{width:100%;min-height:72px;padding:10px 4px;border:0;border-top:1px solid var(--line);background:transparent;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;text-align:left}.evaluation-batches>button.active{margin-inline:-8px;width:calc(100% + 16px);padding-inline:12px;background:var(--soft);color:var(--p4)}.evaluation-batches strong,.evaluation-batches small{display:block}.evaluation-batches strong{font-size:12px}.evaluation-batches small{margin-top:4px;color:var(--muted);font-size:9px}.evaluation-student{margin-top:13px;padding:18px;border:1px solid var(--line);border-left:3px solid var(--p5);border-radius:9px}.evaluation-student-head{display:grid;grid-template-columns:44px 1fr 130px;gap:10px;align-items:center}.evaluation-student-head h3{margin:0;font-size:15px}.evaluation-student-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.evaluation-student label>span{display:block;margin-bottom:6px;color:var(--muted);font-size:9px}.evaluation-student select,.evaluation-student textarea{border:1px solid var(--line-dark);border-radius:7px;background:#fff}.evaluation-student select{width:100%;height:36px;padding:0 8px;font-size:11px}.evaluation-student>label{display:block;margin-top:14px}.evaluation-student textarea{width:100%;min-height:80px;padding:10px;resize:vertical;font-size:11px}.evaluation-mastery{margin-top:13px;padding-top:12px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.evaluation-mastery>span{grid-column:1/-1;color:var(--muted);font-size:9px}.evaluation-mastery>div{padding:8px;background:var(--soft-2)}.evaluation-mastery b{display:block;margin-bottom:5px;font-size:10px}.student-mine-hero{position:relative;margin:-12px -14px 12px;padding:28px 22px 24px;min-height:188px;overflow:hidden;background:#0e6549;color:#fff;display:flex;align-items:center;gap:16px}.mine-watermark{position:absolute;right:-45px;bottom:-55px;width:205px;opacity:.08;filter:brightness(0) invert(1)}.mine-avatar{position:relative;padding:0;border:0;background:transparent;color:#fff;text-align:center}.mine-avatar>span{display:block;margin-top:6px;color:#ffffffb8;font-size:8px}.student-mine-hero>div:last-child{position:relative;min-width:0}.student-mine-hero .eyebrow{color:#82dc91}.student-mine-hero h1{margin:8px 0 5px;font-size:27px}.student-mine-hero p{margin-bottom:10px;color:#ffffffbf;font-size:9px;line-height:1.6}.student-mine-hero .badge{color:#0e6549;background:#dff5e5}.current-rights-card{border-top:3px solid var(--p5)}.current-rights-card h3{margin:14px 0 6px;font-size:14px}.current-rights-card p,.last-recap-card p,.learning-summary-card p{margin:0;color:var(--muted);font-size:9px;line-height:1.75}.last-recap-card small{display:block;margin-top:8px;color:var(--p4);font-size:8px}.purchased-packages h3,.identity-history-card h3{font-size:13px}.purchased-packages>div{min-height:48px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.purchased-packages strong,.purchased-packages small{display:block}.purchased-packages strong{font-size:10px}.purchased-packages small{margin-top:3px;color:var(--muted);font-size:8px}.purchased-packages b{color:var(--p4);font-size:10px}.identity-history-card>div{min-height:44px;border-top:1px solid var(--line);display:grid;grid-template-columns:75px 1fr;align-items:center;gap:8px}.identity-history-card span,.identity-history-card small{color:var(--muted);font-size:8px}.identity-history-card strong{font-size:9px}.identity-history-card small{grid-column:2;margin-top:-10px}.learning-summary-card h3{margin:14px 0 8px;font-size:13px}.learning-summary-card footer{margin-top:13px;padding-top:10px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:9px}.avatar-settings{padding:34px 12px;text-align:center}.avatar-settings h2{margin:18px 0 7px;font-size:19px}.avatar-settings p{color:var(--muted);font-size:9px}.avatar-upload-button{width:fit-content;min-height:42px;margin:20px auto 0;padding:0 17px;border:1px solid var(--p4);border-radius:8px;color:var(--p4);background:var(--soft);display:flex;align-items:center;gap:7px;font-size:10px;font-weight:700;cursor:pointer}.avatar-upload-button input{display:none}.admin-mobile-app{min-height:100dvh;background:#f8f8f4;color:#1a2822}.admin-mobile-header{position:sticky;top:0;z-index:6;height:67px;padding:0 18px;border-bottom:1px solid #e2e6e2;background:#fffffcf5;display:grid;grid-template-columns:92px 1fr 38px 38px;align-items:center}.admin-mobile-header>img{width:86px}.admin-mobile-header>div{text-align:center}.admin-mobile-header strong,.admin-mobile-header small{display:block}.admin-mobile-header strong{font-size:12px}.admin-mobile-header small{margin-top:2px;color:var(--muted);font-size:8px}.admin-mobile-main{padding:24px 18px 105px}.mobile-page-title{display:flex;justify-content:space-between;align-items:flex-end}.mobile-page-title span{color:var(--p4);font-size:9px;font-weight:750;letter-spacing:.12em}.mobile-page-title h1{margin:6px 0 0;font-size:27px;letter-spacing:-.04em}.mobile-date-strip{margin:22px -18px 16px;padding:0 12px 13px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(7,1fr)}.mobile-date-strip button{position:relative;height:63px;padding:8px 2px;border:0;border-radius:8px;background:transparent}.mobile-date-strip button.active{color:#fff;background:var(--p4)}.mobile-date-strip span,.mobile-date-strip strong{display:block}.mobile-date-strip span{font-size:8px}.mobile-date-strip strong{margin-top:6px;font-size:15px}.mobile-date-strip i{position:absolute;bottom:6px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--p5)}.mobile-date-strip button.active i{background:#fff}.mobile-course-card{width:100%;min-height:136px;margin-bottom:10px;padding:17px 13px;border:1px solid #dfe5df;border-left:4px solid var(--p5);border-radius:10px;background:#fff;display:grid;grid-template-columns:57px 1fr 18px;gap:11px;align-items:start;text-align:left;box-shadow:0 7px 22px #1446330a}.mobile-course-card time{color:var(--p4);font-size:16px;font-weight:800}.mobile-course-card h2{margin:10px 0 6px;font-size:16px}.mobile-course-card p{margin:0;color:#53615b;font-size:10px;line-height:1.5}.mobile-course-card small{margin-top:10px;color:var(--muted);display:flex;align-items:center;gap:4px;font-size:9px}.mobile-course-card>svg{align-self:center;color:var(--p4)}.mobile-course-card.course-state-pending-prep{border-left-color:#d49a32;background:#fffaf0}.mobile-course-card.course-state-pending-class{border-color:#cfe2d6;border-left-color:var(--p5);background:#f7fbf8}.mobile-course-card.course-state-pending-attendance{border-left-color:#b85b4e;background:#fff8f6}.mobile-course-card.course-state-completed{border-left-color:#929b96;background:#f5f6f4}.mobile-course-card.course-state-completed time,.mobile-course-card.course-state-completed h2,.mobile-course-card.course-state-completed p,.mobile-course-card.course-state-completed small{color:#747d78}.mobile-course-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.mobile-empty{padding:75px 15px;color:var(--muted);text-align:center}.mobile-empty svg{color:#75ac8f}.mobile-empty strong,.mobile-empty p{display:block}.mobile-empty strong{margin-top:12px;font-size:13px}.mobile-empty p{margin-top:6px;font-size:10px}.admin-mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:7;height:78px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid #dfe4df;background:#fffffcf7;display:grid;grid-template-columns:repeat(5,1fr)}.admin-mobile-nav button{position:relative;border:0;background:transparent;color:#7a847f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:9px}.admin-mobile-nav button.active{color:var(--p4)}.admin-mobile-nav button.active:before{content:"";position:absolute;top:0;width:30px;height:2px;background:var(--p5)}.admin-mobile-nav i{position:absolute;top:9px;margin-left:24px;min-width:15px;height:15px;padding:0 4px;border-radius:9px;background:#c1574c;color:#fff;font-size:8px;font-style:normal;line-height:15px}.mobile-search{height:43px;margin-top:18px;padding:0 12px;border:1px solid var(--line-dark);border-radius:9px;background:#fff;display:flex;align-items:center;gap:8px}.mobile-search input{flex:1;border:0;outline:0;background:transparent;font-size:11px}.mobile-student-list>button{width:100%;min-height:90px;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:48px 1fr 18px;gap:11px;align-items:center;text-align:left}.mobile-student-list>button>div>span{display:flex;align-items:center;gap:7px}.mobile-student-list strong{font-size:13px}.mobile-student-list p,.mobile-student-list small{display:block;margin:4px 0 0;color:var(--muted);font-size:9px}.admin-mobile-detail{min-height:100dvh;background:#f8f8f4}.admin-mobile-detail>header{position:sticky;top:0;z-index:6;height:58px;padding:0 10px;border-bottom:1px solid var(--line);background:#fffffcfa;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;text-align:center}.admin-mobile-detail>header strong{font-size:13px}.admin-mobile-detail>main{padding:21px 18px 110px}.admin-mobile-detail>footer{position:fixed;left:0;right:0;bottom:0;z-index:6;padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}.admin-mobile-detail>footer .button{width:100%;min-height:46px}.mobile-course-detail-head{padding:8px 2px 17px}.mobile-course-detail-head h1{margin:13px 0 6px;font-size:23px}.mobile-course-detail-head p{margin:0;color:var(--muted);font-size:10px}.mobile-edit-card,.mobile-detail-section{margin-top:11px;padding:15px;border:1px solid var(--line);border-radius:10px;background:#fff}.mobile-edit-card{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mobile-edit-card label span,.mobile-completed-content span{display:block;margin-bottom:6px;color:var(--muted);font-size:8px}.mobile-edit-card input,.mobile-edit-card textarea,.mobile-completed-content textarea{width:100%;border:1px solid var(--line-dark);border-radius:7px;background:#fff;font-size:10px}.mobile-edit-card input{height:38px;padding:0 8px}.mobile-edit-card textarea,.mobile-completed-content textarea{min-height:72px;padding:9px;resize:vertical}.mobile-edit-card .full,.mobile-edit-card .button{grid-column:1/-1}.mobile-score-decision>div{display:grid;grid-template-columns:1fr 1fr}.mobile-score-decision label{padding:8px}.mobile-correction-panel{margin-top:16px}.mobile-correction-panel textarea{width:100%;min-height:72px;padding:9px;border:1px solid var(--line-dark);border-radius:7px;resize:vertical}.mobile-section-title{margin:22px 0 8px;display:flex;justify-content:space-between;align-items:center}.mobile-section-title span{font-size:12px;font-weight:750}.mobile-section-title small{color:var(--muted);font-size:8px}.mobile-roster>div:not(.mobile-section-title){min-height:66px;padding:9px 2px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:38px 1fr 102px;gap:9px;align-items:center}.mobile-roster strong,.mobile-roster small{display:block}.mobile-roster strong{font-size:11px}.mobile-roster small{margin-top:3px;color:var(--muted);font-size:8px}.mobile-roster select,.mobile-identity-edit select{height:37px;padding:0 7px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;font-size:9px}.mobile-completed-content{display:block;margin-top:18px}.mobile-student-hero{padding:8px 0 21px;display:grid;grid-template-columns:66px 1fr auto;gap:12px;align-items:center}.mobile-student-hero h1{margin:0;font-size:23px}.mobile-student-hero p{margin:4px 0 8px;color:var(--muted);font-size:10px}.mobile-student-hero>div>span{display:flex;gap:5px}.mobile-detail-section h2{margin:0 0 8px;font-size:14px}.mobile-detail-section .info-row{min-height:54px}.mobile-learning-edit{margin-bottom:5px;padding-bottom:13px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:9px}.mobile-learning-edit label span{display:block;margin-bottom:5px;color:var(--muted);font-size:8px}.mobile-learning-edit select,.mobile-renewal select{width:100%;height:38px;padding:0 8px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;color:var(--ink);font-size:9px}.mobile-learning-edit .button{grid-column:1/-1}.mobile-class-note{grid-column:1/-1;color:var(--muted);font-size:8px;line-height:1.5}.pending-payment-action{padding-top:12px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.pending-payment-action strong,.pending-payment-action small{display:block}.pending-payment-action strong{font-size:10px}.pending-payment-action small{margin-top:3px;color:var(--muted);font-size:8px}.mobile-renewal{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.mobile-identity-edit{display:grid;grid-template-columns:1fr auto;gap:8px}.identity-history-row{margin:9px 0 0;padding-top:8px;border-top:1px solid var(--line);color:var(--muted);font-size:8px}.mobile-detail-section>p{margin:0;padding:10px 0;border-top:1px solid var(--line);color:var(--muted);font-size:9px;line-height:1.5}.mobile-detail-section>p strong{display:block;margin-bottom:4px;color:var(--ink)}.login-brand-panel{padding-bottom:180px}.piano-keys{left:7vw;bottom:30px;width:min(460px,calc(100% - 14vw));max-height:145px;object-fit:contain;object-position:left bottom;border:1px solid rgba(35,136,101,.14);border-radius:9px;box-shadow:0 10px 24px #16473414;overflow:hidden}@media(max-width:720px){.modal-backdrop{padding:0;align-items:flex-end}.modal{width:100%;max-height:94dvh;border-radius:16px 16px 0 0}.modal>header,.modal-content,.modal>footer{padding-inline:18px}.form-grid.two{grid-template-columns:1fr}.form-grid.two .full{grid-column:auto}.term-pending-students,.new-class-student-picker>div:nth-child(2){grid-template-columns:1fr}.form-required-guide{grid-template-columns:1fr}.form-required-guide small{grid-column:auto}.class-edit-combined,.combined-candidate-list>.combined-candidate-grid{grid-template-columns:1fr}.placement-controls,.placement-layout{grid-template-columns:1fr}.placement-section-head{align-items:flex-start;flex-direction:column}.placement-student-list label{grid-template-columns:auto minmax(0,1fr)}.placement-student-list .badge{justify-self:start;grid-column:2}.class-heading-actions{justify-content:flex-start}.class-list>article,.class-list>article.class-ended{grid-template-columns:1fr;gap:12px}.class-list footer{align-items:stretch}.compact-roster>div{grid-template-columns:1fr 52px 45px}.compact-roster>div>span:nth-of-type(2){display:none}.closure-groups,.collective-student-groups{grid-template-columns:1fr}.teaching-closure-list-header,.teaching-closure-card{align-items:flex-start;flex-direction:column}.teaching-closure-actions{justify-content:flex-start}.collective-selection-summary{align-items:flex-start;flex-wrap:wrap;padding-block:11px;gap:8px 13px}.evaluation-test-guide{grid-template-columns:1fr}}.sidebar nav{min-height:0;overflow-y:auto;scrollbar-width:thin}.sidebar nav button{flex:0 0 40px;height:40px;font-size:12px}.sidebar nav button svg{flex:0 0 auto}.v2-admin-page{min-width:0}.v2-page-head{margin-bottom:22px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.v2-page-head>div>span,.v2-section-head>div>span,.v2-student-title>span,.v2-home-section>header span,.v2-student-greeting>span,.v2-mine-hero>span,.v2-modal header span,.v2-notes-panel>header span{color:var(--p4);font-size:10px;font-weight:800;letter-spacing:.16em}.v2-page-head h1{margin:7px 0 6px;font-family:Songti SC,STSong,serif;font-size:32px;letter-spacing:-.04em}.v2-page-head p,.v2-section-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}.v2-page-head>input,.v2-section-head select{min-height:40px;padding:0 12px;border:1px solid var(--line-dark);border-radius:7px;background:#fff}.v2-action{min-height:40px;padding:0 16px;border:1px solid var(--p4);border-radius:7px;color:#fff;background:var(--p4);display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:750}.v2-action.secondary{color:var(--p4);background:#fff}.v2-action.danger{color:#9b493f;border-color:#d7a8a2;background:#fff8f7}.v2-action:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #2388651a}.v2-tone{min-height:23px;padding:3px 8px;border-radius:999px;color:#176a4d;background:#e8f4ec;display:inline-flex;align-items:center;width:fit-content;font-size:9px;font-weight:800;white-space:nowrap}.v2-tone-amber{color:#91641f;background:#faf0d9}.v2-tone-gray{color:#68716d;background:#eef0ee}.v2-tone-red{color:#9a453d;background:#f8e7e4}.v2-loading{min-height:150px;padding:54px;color:var(--muted);text-align:center;font-size:12px}.v2-empty{min-height:150px;padding:38px 20px;color:var(--muted);display:grid;place-items:center;align-content:center;gap:9px;text-align:center}.v2-empty svg{color:#77ad92}.v2-empty strong{color:var(--ink);font-size:13px}.v2-empty p{max-width:430px;margin:0;font-size:10px;line-height:1.6}.v2-error{margin-bottom:16px;padding:13px 15px;border:1px solid #e2b9b4;border-left:4px solid #b85c50;border-radius:8px;background:#fff8f7;display:flex;align-items:center;gap:10px}.v2-error>span{flex:1}.v2-error strong,.v2-error small{display:block}.v2-error strong{font-size:11px}.v2-error small{margin-top:3px;color:#875e58;font-size:9px}.v2-error button,.v2-back{border:0;color:var(--p4);background:transparent;font-size:10px;font-weight:700}.v2-back{margin-bottom:15px;padding:0;display:inline-flex;align-items:center;gap:5px}.v2-tabs{min-height:49px;margin-bottom:17px;padding:0 15px;border:1px solid var(--line);background:#fffefae6;display:flex;align-items:stretch;gap:25px;overflow-x:auto}.v2-tabs button{flex:0 0 auto;padding:0 2px;border:0;border-bottom:2px solid transparent;color:var(--muted);background:transparent;font-size:11px}.v2-tabs button.active{color:var(--p4);border-bottom-color:var(--p4);font-weight:800}.v2-surface{margin-bottom:18px;padding:20px;border:1px solid var(--line-dark);background:#fffefaf5}.v2-section-head{margin-bottom:15px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.v2-section-head h2{margin:6px 0 0;font-family:Songti SC,STSong,serif;font-size:21px}.v2-section-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.v2-course-context{min-height:72px;padding:14px;border:1px solid var(--line);border-left:3px solid var(--p5);background:var(--soft-2);display:flex;align-items:center;justify-content:space-between;gap:14px}.v2-course-context>div{display:flex;align-items:center;gap:11px}.v2-course-context strong,.v2-course-context small{display:block}.v2-course-context strong{font-size:13px}.v2-course-context small{margin-top:4px;color:var(--muted);font-size:10px}.v2-score-rows>article{min-height:80px;padding:12px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:50px minmax(170px,1fr) auto auto;gap:12px;align-items:center}.v2-score-cover,.v2-library-cover{color:var(--p4);background:#f1f5f1;display:grid;place-items:center}.v2-score-cover{width:48px;height:58px;border:1px solid var(--line)}.v2-score-rows strong,.v2-score-rows small{display:block}.v2-score-rows strong{font-size:12px}.v2-score-rows small{margin-top:5px;color:var(--muted);font-size:9px}.v2-inline-add{padding-top:14px;display:flex;justify-content:flex-end;gap:9px}.v2-inline-add select{min-width:260px;min-height:40px;padding:0 10px;border:1px solid var(--line-dark);background:#fff}.v2-score-library{border:1px solid var(--line-dark);background:var(--paper)}.v2-score-library>button{width:100%;min-height:104px;padding:15px 18px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:62px 1fr 88px 18px;gap:14px;align-items:center;text-align:left}.v2-score-library>button:hover{background:var(--soft-2)}.v2-library-cover{width:60px;height:74px;border:1px solid var(--line)}.v2-score-library span>strong,.v2-score-library span>small,.v2-score-library b small{display:block}.v2-score-library span>strong{margin-top:9px;font-family:Songti SC,serif;font-size:17px}.v2-score-library span>small,.v2-score-library b small{margin-top:4px;color:var(--muted);font-size:9px;font-weight:500}.v2-score-library b{color:var(--p4);text-align:center;font-size:18px}.v2-note-moderation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.v2-score-detail-notes{margin-top:16px}.v2-score-detail-notes>.v2-section-head{grid-column:1 / -1;margin-bottom:0}.v2-note-moderation article{padding:18px;border:1px solid var(--line);background:var(--paper);display:grid;grid-template-columns:1fr auto;gap:10px 14px}.v2-note-moderation h3{margin:10px 0 4px;font-size:13px}.v2-note-moderation small{color:var(--muted);font-size:9px}.v2-note-moderation article>p,.v2-note-moderation blockquote{grid-column:1/-1;margin:0;font-size:11px;line-height:1.7}.v2-note-moderation blockquote{padding:8px 10px;color:#8a6028;background:var(--amber-bg)}.v2-score-preview{margin-bottom:18px;padding:15px;background:#e7eae5;display:flex;gap:10px;overflow-x:auto}.v2-score-preview img{width:190px;aspect-ratio:210/297;object-fit:contain;background:#fff;box-shadow:0 8px 20px #00000014}.v2-access-list>div{min-height:58px;padding:9px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 90px 75px;gap:10px;align-items:center}.v2-access-student{min-width:0;display:flex;align-items:center;gap:9px}.v2-access-student input{width:18px;height:18px;flex:0 0 18px}.v2-access-filter{margin:0 0 10px;min-height:40px;padding:0 11px;border:1px solid var(--line-dark);border-radius:6px;background:#fff;display:flex;align-items:center;gap:8px}.v2-access-filter svg{color:var(--muted)}.v2-access-filter input{min-width:0;width:100%;border:0;outline:0;background:transparent;font-size:11px}.v2-owner-bulk-bar{margin:0 0 10px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--soft-2);display:flex;flex-wrap:wrap;align-items:center;gap:8px}.v2-owner-bulk-bar>span{margin-right:auto;color:#43554b;font-size:10px;font-weight:700}.v2-owner-bulk-bar>button{min-height:30px;padding:0 9px;border:1px solid var(--line-dark);border-radius:6px;background:#fff;color:#34483e;font-size:10px}.v2-access-list strong,.v2-access-list small{display:block}.v2-access-list strong{font-size:11px}.v2-access-list small{margin-top:4px;color:var(--muted);font-size:9px}.v2-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;padding:22px;background:#13231d70;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center}.v2-modal{width:min(640px,100%);max-height:calc(100dvh - 44px);border-radius:12px;background:var(--paper);box-shadow:0 32px 90px #0d281d40;overflow:auto}.v2-modal-wide{width:min(900px,100%)}.v2-modal>header{min-height:82px;padding:20px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.v2-modal header h2{margin:7px 0 0;font-family:Songti SC,serif;font-size:23px}.v2-modal header>button{width:34px;height:34px;border:0;background:transparent}.v2-modal>footer{position:sticky;bottom:0;padding:14px 24px;border-top:1px solid var(--line);background:#fffefaf7;display:flex;justify-content:flex-end;gap:9px}.v2-issue-confirm{padding:24px}.v2-issue-course{min-height:76px;padding:14px 16px;border:1px solid #cce1d3;background:var(--soft);display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center}.v2-issue-course>svg{color:var(--p4)}.v2-issue-course strong,.v2-issue-course small{display:block}.v2-issue-course strong{font-family:Songti SC,serif;font-size:18px}.v2-issue-course small{margin-top:6px;color:var(--muted);font-size:10px}.v2-issue-count{padding:21px 0 11px;display:flex;align-items:baseline;gap:9px}.v2-issue-count strong{color:var(--p4);font-family:Songti SC,serif;font-size:34px}.v2-issue-count span{color:var(--muted);font-size:10px}.v2-issue-students{display:flex;flex-wrap:wrap;gap:7px}.v2-issue-students>span{padding:7px 11px;border:1px solid var(--line-dark);border-radius:999px;background:#fff;font-size:10px;font-weight:700}.v2-issue-students.skipped{margin-top:10px;padding:10px;border-radius:8px;background:var(--soft-2);align-items:center}.v2-issue-students.skipped strong{margin-right:2px;color:var(--muted);font-size:10px}.v2-issue-students.skipped>span{color:var(--muted);border-color:var(--line)}.v2-issue-confirm>p{margin:20px 0 0;padding-top:14px;border-top:1px solid var(--line);color:#80591d;display:flex;gap:8px;align-items:center;font-size:9px;line-height:1.5}.v2-form{padding:22px 24px;display:grid;gap:14px}.v2-form.two{grid-template-columns:repeat(2,minmax(0,1fr))}.v2-form .full{grid-column:1/-1}.v2-form label>span{display:block;margin-bottom:6px;color:#4f5a55;font-size:10px;font-weight:700}.v2-form input,.v2-form select,.v2-form textarea{width:100%;min-height:42px;padding:0 11px;border:1px solid var(--line-dark);border-radius:6px;background:#fff}.v2-form input[type=file]{padding:9px}.v2-form label small{display:block;margin-top:7px;color:var(--muted);font-size:9px}.v2-form-error{margin:0;color:#a64c43;font-size:10px}.v2-permission-matrix{border:1px solid var(--line)}.v2-permission-matrix>label{min-height:54px;padding:8px 12px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 150px;align-items:center;gap:15px}.v2-permission-matrix strong,.v2-permission-matrix small{display:block}.v2-permission-matrix strong{font-size:11px}.v2-permission-matrix small{margin-top:2px;color:var(--muted);font-size:8px}.v2-metric-grid{margin-bottom:18px;border:1px solid var(--line-dark);background:var(--paper);display:grid;grid-template-columns:repeat(3,1fr)}.v2-metric-grid>div{min-height:92px;padding:17px;display:flex;align-items:center;gap:12px}.v2-metric-grid>div+div{border-left:1px solid var(--line)}.v2-metric-grid svg{color:var(--p4)}.v2-metric-grid small,.v2-metric-grid strong{display:block}.v2-metric-grid small{color:var(--muted);font-size:9px}.v2-metric-grid strong{margin-top:6px;font-size:18px}.v2-notice,.v2-token-card{margin-bottom:18px;padding:15px 17px;border:1px solid #cfe3d6;border-left:4px solid var(--p5);background:var(--soft);display:flex;align-items:center;gap:12px}.v2-notice>span{flex:1}.v2-notice strong,.v2-notice small{display:block}.v2-notice strong{font-size:11px}.v2-notice small{margin-top:4px;color:var(--muted);font-size:9px}.v2-token-card{display:block}.v2-token-card>span{color:#9a671d;font-size:9px;font-weight:800}.v2-token-card strong{display:block;margin-top:8px;color:var(--p4);font-family:ui-monospace,monospace;font-size:13px;word-break:break-all}.v2-token-card p{margin:7px 0 0;color:var(--muted);font-size:9px}.v2-practice-list article{min-height:67px;padding:10px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 85px 110px 80px;gap:10px;align-items:center}.v2-practice-list strong,.v2-practice-list small{display:block}.v2-practice-list strong{font-size:11px}.v2-practice-list small{margin-top:4px;color:var(--muted);font-size:9px}.v2-practice-list b{color:var(--p4);font-size:11px}.v2-practice-list button{border:0;color:var(--p4);background:transparent;font-size:9px}.v2-segmented{width:fit-content;padding:3px;border:1px solid var(--line);border-radius:7px;background:#f4f5f2;display:flex}.v2-segmented button{min-height:30px;padding:0 13px;border:0;border-radius:5px;color:var(--muted);background:transparent;font-size:9px}.v2-segmented button.active{color:#fff;background:var(--p4)}.v2-ranking-table>div{min-height:52px;padding:8px 4px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:36px 1fr auto;gap:8px;align-items:center}.v2-ranking-table>div>b{color:var(--p4);font-family:Songti SC,serif;font-size:17px;text-align:center}.v2-ranking-table strong,.v2-ranking-table small{display:block}.v2-ranking-table strong{font-size:11px}.v2-ranking-table small{margin-top:3px;color:var(--muted);font-size:8px}.v2-ranking-table em{color:var(--p4);font-size:11px;font-style:normal}.v2-entitlement-form{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr auto;gap:10px}.v2-entitlement-form select,.v2-entitlement-form input{min-height:40px;padding:0 9px;border:1px solid var(--line-dark);background:#fff}.v2-entitlement-list article,.v2-account-list article{min-height:67px;padding:10px 0;border-bottom:1px solid var(--line);display:grid;align-items:center;gap:10px}.v2-entitlement-list article{grid-template-columns:1fr 180px 120px 70px}.v2-entitlement-list strong,.v2-entitlement-list small,.v2-account-list strong,.v2-account-list small{display:block}.v2-entitlement-list strong,.v2-account-list strong{font-size:11px}.v2-entitlement-list small,.v2-account-list small{margin-top:4px;color:var(--muted);font-size:9px}.v2-entitlement-list em,.v2-account-list em{color:var(--muted);font-size:10px;font-style:normal}.v2-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.v2-message-row{min-height:66px;padding:10px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:70px 1fr;gap:9px;align-items:center}.v2-message-row strong,.v2-message-row small{display:block}.v2-message-row strong{font-size:11px}.v2-message-row small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.5}.v2-account-list article{grid-template-columns:38px 1fr 75px 90px 90px}.v2-account-avatar{width:34px;height:34px;border-radius:50%;color:#fff;background:var(--p4);display:grid;place-items:center;font-size:11px;font-weight:800}.account-system-head{margin-bottom:16px}.account-system-functions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.account-system-card{min-height:190px;margin:0}.account-system-card>p{margin:10px 0 0;color:var(--muted);font-size:11px}.account-system-card .upgrade-actions{margin-bottom:0}.account-system-card-heading{display:flex;align-items:center;gap:12px}.account-system-card-heading>div>span{color:var(--p4);font-size:10px;font-weight:800;letter-spacing:.16em}.account-system-card-heading h2{margin:5px 0 0;font-family:Songti SC,STSong,serif;font-size:21px}.account-system-icon{width:42px;height:42px;border-radius:50%;color:var(--p4);background:var(--soft);display:grid;place-items:center}.account-system-card>.v2-action{margin-top:24px}.account-admin-card{min-height:0;grid-column:1/-1}.account-admin-card .v2-section-head{align-items:center}.account-admin-card .v2-account-list article:last-child{border-bottom:0}.admin-account-details>span{display:block;margin-top:2px}.current-admin-label{display:inline-flex!important;margin:0 0 0 7px!important;padding:2px 6px;border-radius:999px;color:var(--p4)!important;background:var(--soft);font-size:8px!important;vertical-align:middle}.account-system-empty{margin:12px 0 0;color:var(--muted);font-size:11px}.mobile-account-button{width:auto;min-width:36px;padding:0 6px;border-radius:999px;color:#fff;background:var(--p4)}.mobile-account-button>span{max-width:54px;overflow:hidden;font-size:9px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.v2-mobile-module-grid{display:grid;gap:8px}.v2-mobile-module-grid>button{min-height:68px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;display:grid;grid-template-columns:32px 1fr 17px;gap:9px;align-items:center;text-align:left}.v2-mobile-module-grid>button>svg:first-child{color:var(--p4)}.v2-mobile-module-grid strong,.v2-mobile-module-grid small{display:block}.v2-mobile-module-grid strong{font-size:11px}.v2-mobile-module-grid small{margin-top:3px;color:var(--muted);font-size:8px}.admin-mobile-module{min-height:100dvh;background:var(--bg)}.admin-mobile-module>header{position:sticky;top:0;z-index:20;height:58px;padding:0 10px;border-bottom:1px solid var(--line);background:#fffffcfa;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;text-align:center}.admin-mobile-module>main{padding:18px 14px 45px;overflow-x:hidden}.v2-student-screen{height:calc(100% - 28px);color:var(--ink);background:#fbfcf8;display:flex;flex-direction:column}.v2-student-header{flex:0 0 58px;padding:0 16px;border-bottom:1px solid var(--line);background:#fffffcf5;display:grid;grid-template-columns:105px 1fr 34px;align-items:center;z-index:5}.v2-student-header img{width:92px}.v2-student-header nav{display:none}.v2-student-bell{position:relative;width:34px;height:34px;padding:0;border:0;background:transparent;display:grid;place-items:center}.v2-student-bell i{position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:50%;background:#c5584b}.v2-student-main{flex:1;padding:18px 14px 96px;overflow-y:auto}.v2-student-greeting{position:relative;padding:13px 0 18px 17px;border-left:3px solid var(--p5)}.v2-student-greeting h1{margin:10px 0 5px;font-family:Songti SC,serif;font-size:28px;font-weight:600}.v2-student-greeting p{margin:0;color:var(--muted);font-size:10px;line-height:1.6}.v2-identity-card{min-height:128px;margin:12px 0;padding:18px;border-radius:11px;color:#fff;background:linear-gradient(130deg,#0d674a,#238865);display:grid;grid-template-columns:1fr 90px;align-items:center;box-shadow:0 14px 32px #0e533b29}.v2-identity-card>div:first-child>span{color:#8ce09a;font-size:8px;letter-spacing:.14em}.v2-identity-card h2{margin:9px 0 6px;font-family:Songti SC,serif;font-size:20px}.v2-identity-card p{margin:0;color:#ffffffb8;font-size:9px}.v2-identity-card>div:last-child{padding-left:16px;border-left:1px solid rgba(255,255,255,.2);text-align:center}.v2-identity-card>div:last-child small,.v2-identity-card>div:last-child strong{display:block}.v2-identity-card>div:last-child small{color:#ffffffa6;font-size:8px}.v2-identity-card>div:last-child strong{margin-top:6px;font-size:32px}.v2-identity-card em{margin-left:3px;font-size:10px;font-style:normal}.v2-home-section{margin:12px 0;padding:15px;border:1px solid var(--line);border-radius:10px;background:#fffefa}.v2-home-section>header{margin-bottom:11px;display:flex;justify-content:space-between;align-items:flex-end}.v2-home-section>header h2{margin:5px 0 0;font-family:Songti SC,serif;font-size:17px}.v2-home-section>header button{padding:0;border:0;color:var(--p4);background:transparent;display:flex;align-items:center;gap:3px;font-size:9px}.v2-home-course{width:100%;min-height:96px;padding:10px 0;border:0;border-top:1px solid var(--line);background:transparent;display:grid;grid-template-columns:70px 1fr 17px;gap:10px;align-items:center;text-align:left}.v2-home-course time{min-height:62px;border-right:1px solid var(--line);display:grid;place-items:center;align-content:center}.v2-home-course time b{color:var(--p4);font-family:Songti SC,serif;font-size:18px;line-height:1.2}.v2-home-course time small{margin-top:4px;color:var(--muted);font-size:7px;line-height:1.35}.v2-home-course span>strong,.v2-home-course span>small{display:block}.v2-home-course span>strong{margin:7px 0 4px;font-size:11px}.v2-home-course span>small{color:var(--muted);font-size:8px;line-height:1.45}.v2-practice-summary{min-height:126px;margin:12px 0;padding:17px;border:1px solid #c9e0d1;border-radius:10px;background:var(--soft);display:flex;justify-content:space-between;align-items:center;gap:13px}.v2-practice-summary span{color:var(--p4);font-size:8px;font-weight:800;letter-spacing:.13em}.v2-practice-summary h2{margin:8px 0 5px;font-family:Songti SC,serif;font-size:18px}.v2-practice-summary p{margin:0;color:var(--muted);font-size:8px;line-height:1.5}.v2-my-rank{min-height:40px;margin-top:8px;padding:0 9px;color:var(--p4);background:var(--soft);display:flex;justify-content:space-between;align-items:center;font-size:9px}.v2-home-score{width:100%;min-height:62px;padding:9px 2px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);display:grid;grid-template-columns:32px 1fr 16px;gap:9px;align-items:center;text-align:left}.v2-home-score>svg:first-child{color:var(--p4)}.v2-home-score strong,.v2-home-score small{display:block}.v2-home-score strong{font-size:11px}.v2-home-score small{margin-top:3px;color:var(--muted);font-size:8px}.v2-student-title{padding:8px 0 15px}.v2-student-title h1{margin:8px 0 5px;font-family:Songti SC,serif;font-size:28px}.v2-student-title p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}.v2-course-legacy-actions{margin-top:12px;display:flex;gap:9px}.v2-growth-compat{margin-bottom:12px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff;display:grid;grid-template-columns:74px 1fr;gap:11px;align-items:center}.v2-growth-compat .student-level-card{min-height:58px;padding:0;border:0;color:#fff;background:var(--p4);display:grid;place-items:center}.v2-growth-compat .student-level-card strong{font-size:20px}.v2-growth-compat .learning-summary-card{min-width:0}.v2-growth-compat .learning-summary-card p{margin:0;color:var(--muted);font-size:9px;line-height:1.6}.v2-student-list{border:1px solid var(--line);border-radius:10px;background:#fffefa;overflow:hidden}.v2-leave-status{grid-column:1/-1;padding:10px 13px 0}.v2-student-list>button{width:100%;min-height:93px;padding:13px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:34px 1fr 17px;gap:9px;align-items:center;text-align:left}.v2-student-list>button>svg:first-child{color:var(--p4)}.v2-student-list strong,.v2-student-list small,.v2-student-list em{display:block}.v2-student-list strong{font-size:12px}.v2-student-list small{margin-top:4px;color:var(--muted);font-size:8px}.v2-student-list em{margin-top:7px;color:var(--p4);font-size:9px;font-style:normal}.v2-search{height:42px;margin-bottom:12px;padding:0 11px;border:1px solid var(--line-dark);border-radius:8px;background:#fff;display:flex;align-items:center;gap:8px}.v2-search input{flex:1;border:0;outline:0;background:transparent;font-size:10px}.v2-student-score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.v2-student-score-grid>button{min-height:190px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fffefa;text-align:left}.v2-student-score-grid>button>div{height:92px;margin-bottom:10px;color:var(--p4);background:#edf2ed;display:grid;place-items:center}.v2-student-score-grid strong,.v2-student-score-grid small{display:block}.v2-student-score-grid strong{margin-top:9px;font-family:Songti SC,serif;font-size:15px}.v2-student-score-grid small{margin-top:4px;color:var(--muted);font-size:8px}.v2-growth-card{min-height:260px;padding:30px 22px;border:1px solid var(--line);border-top:4px solid var(--p5);border-radius:10px;background:#fffefa}.v2-growth-card>svg{color:var(--p4)}.v2-growth-card h2{margin:18px 0 9px;font-family:Songti SC,serif;font-size:22px}.v2-growth-card p{color:#394640;font-size:11px;line-height:1.8}.v2-growth-card small{color:var(--muted);font-size:9px}.v2-mine-hero{position:relative;min-height:184px;margin:-18px -14px 13px;padding:38px 23px;overflow:hidden;color:#fff;background:#0d674a;display:block}.v2-mine-hero img{position:absolute;right:-35px;bottom:-60px;width:210px;opacity:.08;filter:brightness(0) invert(1)}.v2-mine-hero h1{position:relative;margin:12px 0 7px;font-family:Songti SC,serif;font-size:29px}.v2-mine-hero p{position:relative;margin:0;color:#ffffffbd;font-size:9px}.v2-avatar-button{position:relative;z-index:2;float:left;width:72px;margin:-7px 16px 0 0;padding:0;border:0;color:#fff;background:transparent;text-align:center;cursor:pointer}.v2-avatar-button .person-avatar,.v2-avatar-fallback{width:58px;height:58px;margin:0 auto;border:2px solid rgba(255,255,255,.72);border-radius:50%;object-fit:cover;display:grid;place-items:center;background:#ffffff2e;font-size:20px;font-weight:800}.v2-avatar-button small{display:block;margin-top:6px;color:#ffffffb8;font-size:8px}.account-note{margin:12px 2px 0;color:var(--muted);font-size:8px;line-height:1.6}.v2-mine-menu{border:1px solid var(--line);border-radius:10px;background:#fffefa;overflow:hidden}.v2-mine-menu>button{width:100%;min-height:72px;padding:11px 14px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:center;text-align:left}.v2-mine-menu>button>svg:first-child{color:var(--p4)}.v2-mine-menu strong,.v2-mine-menu small{display:block}.v2-mine-menu strong{font-size:11px}.v2-mine-menu small{margin-top:4px;color:var(--muted);font-size:8px}.v2-student-bottom{position:absolute;left:0;right:0;bottom:0;z-index:9;height:72px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:#fffffcf7;display:grid;grid-template-columns:repeat(4,1fr)}.v2-student-bottom button{border:0;color:#84908a;background:transparent;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:8px}.v2-student-bottom button.active{color:var(--p4)}.v2-student-layer{height:calc(100% - 28px);background:#fbfcf8;overflow:hidden;display:flex;flex-direction:column}.v2-student-layer>header{flex:0 0 58px;padding:0 9px;border-bottom:1px solid var(--line);background:#fffffcfa;display:grid;grid-template-columns:42px 1fr minmax(42px,auto);align-items:center;text-align:center;z-index:5}.v2-student-layer>header>button{width:38px;height:38px;border:0;background:transparent}.v2-student-layer>header>strong{font-family:Songti SC,serif;font-size:15px}.v2-student-layer>header>span>button{min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:6px;color:var(--p4);background:#fff;display:inline-flex;align-items:center;gap:4px;font-size:9px}.v2-student-layer>main{flex:1;padding:18px 14px 46px;overflow-y:auto}.v2-course-hero{min-height:188px;margin-bottom:13px;padding:25px 20px;color:#fff;background:linear-gradient(135deg,#0d674a,#238865)}.v2-course-hero .v2-tone{color:#0d674a;background:#dcf2e2}.v2-course-hero h1{margin:18px 0 8px;font-family:Songti SC,serif;font-size:26px}.v2-course-hero p{color:#ffffffb3;font-size:9px}.v2-course-hero>strong{font-size:12px}.v2-reader-layer{position:relative}.v2-reader-layer>main{padding:0;overflow:hidden}.v2-reader-layer:has(>main:first-child){height:100%}.v2-reader-notes-toggle{position:absolute;right:12px;top:70px;z-index:8;min-height:42px;padding:0 12px;border:1px solid rgba(255,255,255,.28);border-radius:22px;color:#fff;background:#142d24e0;box-shadow:0 6px 20px #00000038;display:flex;align-items:center;gap:6px;font-size:10px}.v2-score-reader{height:100%;background:#e9ece7;display:grid;grid-template-columns:1fr}.v2-score-reader.notes-open{grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr)}.v2-reader-mobile-pager{display:none}.v2-score-pages{height:100%;padding:22px;overflow:auto}.v2-score-pages img{display:block;width:min(100%,880px);height:auto;margin:0 auto 18px;background:#fff;box-shadow:0 10px 32px #1b342a1c}.v2-notes-panel{min-width:0;padding:20px;border-left:1px solid var(--line-dark);background:#fffefa;overflow-y:auto}.v2-notes-panel>header h2{margin:7px 0 5px;font-family:Songti SC,serif;font-size:22px}.v2-notes-panel>header p{color:var(--muted);font-size:9px}.v2-own-notes article,.v2-public-notes blockquote{margin:12px 0;padding:12px;border:1px solid var(--line);background:#fff}.v2-own-notes article>div{display:flex;justify-content:space-between;align-items:center}.v2-own-notes article p,.v2-public-notes blockquote p{margin:9px 0;font-size:10px;line-height:1.7}.v2-own-notes article small{display:block;margin-bottom:9px;color:#9a671d;font-size:8px;line-height:1.5}.v2-own-notes select,.v2-new-note select,.v2-new-note textarea{width:100%;min-height:38px;padding:0 9px;border:1px solid var(--line-dark);background:#fff;font-size:9px}.v2-new-note{margin:16px 0;padding:13px;border:1px solid #cce1d3;background:var(--soft);display:grid;gap:8px}.v2-new-note textarea{min-height:95px;padding:9px;resize:vertical}.v2-new-note .v2-note-course-picker{display:grid;gap:6px;color:var(--muted);font-size:11px}.v2-public-notes h3{font-family:Songti SC,serif;font-size:15px}.v2-public-notes blockquote strong{color:var(--p4);font-size:10px}.v2-scan-card{min-height:330px;padding:34px 22px;border:1px solid #c9e0d1;border-top:4px solid var(--p5);border-radius:12px;background:var(--soft);text-align:center}.v2-scan-card>svg{margin-bottom:13px;color:var(--p4)}.v2-scan-card h1{margin:15px 0 8px;font-family:Songti SC,serif;font-size:24px}.v2-scan-card p{color:var(--muted);font-size:9px;line-height:1.6}.v2-scan-card label{display:block;margin:20px auto 10px;max-width:470px;text-align:left}.v2-scan-card label span{display:block;margin-bottom:6px;color:var(--muted);font-size:8px}.v2-scan-card input{width:100%;height:42px;padding:0 10px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;font-family:ui-monospace,monospace;font-size:10px}.v2-practice-history{min-height:56px;padding:8px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.v2-practice-history strong,.v2-practice-history small{display:block}.v2-practice-history strong{font-size:10px}.v2-practice-history small{margin-top:3px;color:var(--muted);font-size:8px}.v2-practice-flow>main{display:flex;align-items:center;justify-content:center;padding:32px 24px max(32px,env(safe-area-inset-bottom))}.v2-practice-flow .v2-practice-step{width:100%;max-width:420px!important;margin:0 auto;padding-bottom:42px;text-align:center}.v2-practice-step-icon{display:inline-flex;align-items:center;justify-content:center;width:88px;height:88px;margin-bottom:26px;border-radius:24px;color:var(--p4);background:var(--soft)}.v2-practice-step.has-error .v2-practice-step-icon{color:#896119;background:var(--amber-bg)}.v2-practice-flow .v2-practice-step h2{margin:0;color:var(--ink);font-size:27px;line-height:1.4;font-weight:700;letter-spacing:-.03em}.v2-practice-step-copy>p{max-width:330px;margin:12px auto 0;color:#5b6a62;font-size:15px;line-height:1.8;overflow-wrap:anywhere}.v2-practice-flow .v2-practice-primary{width:100%;min-height:56px;margin-top:36px;padding:13px 18px;border:1px solid var(--p4);border-radius:12px;background:var(--p4);color:#fff;font-size:17px;line-height:1.5;font-weight:650;cursor:pointer}.v2-practice-primary:hover:not(:disabled){background:var(--p4-dark);border-color:var(--p4-dark)}.v2-practice-primary:disabled{opacity:.7;cursor:progress}.v2-practice-primary:focus-visible,.v2-practice-flow>header>button:focus-visible{outline:3px solid #146247;outline-offset:4px}.v2-practice-step .v2-practice-cancel{margin:14px 0 0;color:#5b6a62;font-size:13px;line-height:1.6}.v2-practice-result{margin:28px 0 0;padding:18px 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr);gap:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.v2-practice-result dt{color:#5b6a62;font-size:13px}.v2-practice-result dd{margin:8px 0 0;color:var(--p4-dark);font-size:22px;font-weight:700;overflow-wrap:anywhere}.v2-practice-timer{margin:4px auto 0!important;color:var(--p4-dark)!important;font-family:Songti SC,serif;font-size:44px!important;line-height:1.3!important;font-weight:700;letter-spacing:.02em;font-variant-numeric:tabular-nums}.v2-practice-secondary{width:100%;min-height:52px;margin-top:12px;padding:12px 18px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--p4-dark);font-size:16px;line-height:1.5;font-weight:600;cursor:pointer}.v2-practice-secondary:hover:not(:disabled){border-color:var(--p4)}.v2-practice-secondary:disabled{opacity:.7;cursor:progress}.v2-practice-banner{width:100%;min-height:52px;padding:8px 16px;border:1px solid #c9e0d1;border-radius:12px;background:var(--soft);display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left}.v2-practice-banner svg{flex:0 0 auto;color:var(--p4)}.v2-practice-banner span{min-width:0;flex:1 1 auto;color:var(--p4-dark);font-size:15px;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.v2-practice-banner small{flex:0 0 auto;color:#5b6a62;font-size:12px}.v2-practice-banner.timing{border-color:var(--p4);background:#eef7f0}.v2-practice-banner.timing span{color:var(--p4)}.v2-practice-banner>svg:last-child{color:#5b6a62}.v2-practice-records .v2-rank-hero{margin-bottom:22px}.v2-practice-records .v2-practice-history{gap:16px;padding:16px 0}.v2-practice-records .v2-practice-history strong{font-size:15px}.v2-practice-records .v2-practice-history small{font-size:13px;line-height:1.6}.v2-practice-records .v2-practice-history .v2-tone{font-size:12px;white-space:nowrap}.v2-rank-hero{min-height:105px;margin-bottom:12px;border:1px solid var(--line);border-radius:10px;background:#fff;display:grid;grid-template-columns:repeat(2,1fr)}.v2-rank-hero>div{padding:20px;text-align:center}.v2-rank-hero>div+div{border-left:1px solid var(--line)}.v2-rank-hero small,.v2-rank-hero strong{display:block}.v2-rank-hero small{color:var(--muted);font-size:8px}.v2-rank-hero strong{margin-top:7px;color:var(--p4);font-family:Songti SC,serif;font-size:20px}.v2-lucky-card{width:100%;min-height:86px;padding:15px;border:1px solid #c9e0d1;border-radius:10px;background:var(--soft);display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer}.v2-lucky-card svg{color:var(--p4)}.v2-lucky-card>svg:last-child{margin-left:auto}.v2-lucky-card strong,.v2-lucky-card small{display:block}.v2-lucky-card strong{font-family:Songti SC,serif;font-size:17px}.v2-lucky-card small{margin-top:5px;color:var(--muted);font-size:8px}.v2-message-list{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.v2-message-list>button{width:100%;min-height:82px;padding:16px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;gap:9px;align-items:start;text-align:left}.v2-message-list>button>span:first-child{position:relative;width:30px;height:30px;border-radius:50%;color:#fff;background:var(--p4);display:grid;place-items:center}.v2-message-list>button>span:first-child.read{color:var(--muted);background:#edf0ed}.v2-message-list>button>span:nth-child(2){min-width:0}.v2-message-list strong,.v2-message-list small,.v2-message-list em{display:block;overflow-wrap:anywhere}.v2-message-list strong{font-size:16px;line-height:1.4}.v2-message-list small{margin-top:7px;color:#41534a;font-size:15px;line-height:1.65;white-space:pre-wrap}.v2-message-list em{margin-top:10px;color:#59685f;font-size:12px;line-height:1.5;font-style:normal}@media(min-width:900px){.student-stage{min-height:100vh;padding:0;display:block;overflow:visible}.student-stage:before,.student-stage:after,.student-statusbar,.stage-caption{display:none}.student-phone-shell{width:100%;height:100vh;min-height:720px;border:0;border-radius:0;box-shadow:none}.v2-student-screen,.v2-student-layer{height:100%}.v2-student-header{height:72px;padding:0 6vw;grid-template-columns:125px 1fr 40px}.v2-student-header img{width:112px}.v2-student-header nav{height:100%;display:flex;align-items:stretch;gap:28px}.v2-student-header nav button{padding:0 4px;border:0;border-bottom:2px solid transparent;background:transparent;font-size:12px}.v2-student-header nav button.active{color:var(--p4);border-bottom-color:var(--p4);font-weight:800}.v2-student-main{padding:36px max(6vw,60px) 70px}.v2-student-main>*{max-width:1180px;margin-left:auto;margin-right:auto}.v2-student-home{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;align-items:start}.v2-student-greeting,.v2-identity-card{grid-column:1/-1}.v2-identity-card{min-height:154px;grid-template-columns:1fr 150px}.v2-student-greeting h1{font-size:35px}.v2-home-section{margin:0;border-radius:0}.v2-student-home>.student-alert{grid-column:1/-1}.v2-home-week{grid-column:1}.v2-practice-summary{grid-column:2;margin:0;min-height:150px;align-items:flex-start;flex-direction:column}.v2-home-ranking{grid-column:1}.v2-home-scores{grid-column:2}.v2-home-recap{grid-column:1/-1}.v2-student-title{max-width:1180px}.v2-student-list,.v2-growth-card,.v2-mine-menu{max-width:1180px;margin:0 auto}.v2-student-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-radius:0}.v2-student-list>button:nth-child(odd){border-right:1px solid var(--line)}.v2-student-score-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.v2-student-score-grid>button{min-height:250px}.v2-student-score-grid>button>div{height:145px}.v2-mine-hero{max-width:1180px;min-height:230px;margin:0 auto 18px;padding:55px 48px}.v2-mine-menu{display:grid;grid-template-columns:repeat(2,1fr)}.v2-mine-menu>button:nth-child(odd){border-right:1px solid var(--line)}.v2-student-bottom{display:none}.v2-student-layer>header{height:68px;padding:0 5vw}.v2-student-layer>main{padding:30px 5vw 60px}.v2-student-layer:not(.v2-reader-layer)>main>*{max-width:1050px;margin-left:auto;margin-right:auto}.v2-score-reader.notes-open{grid-template-columns:minmax(0,1.35fr) minmax(390px,.65fr)}.v2-score-pages{padding:35px}.v2-scan-card{max-width:720px!important}.prototype-switcher{top:17px;right:6vw;transform:translate(-45px)}}@media(max-width:720px){.admin-mobile-nav{grid-template-columns:repeat(5,1fr)}.admin-mobile-main{padding-bottom:112px}.admin-mobile-module>main .page-header h1,.admin-mobile-module>main .v2-page-head h1{font-size:25px}.admin-mobile-module>main .page-tabs{overflow-x:auto}.admin-mobile-module>main .schedule-grid,.admin-mobile-module>main .split-layout,.admin-mobile-module>main .evaluation-layout,.admin-mobile-module>main .package-layout{grid-template-columns:1fr}.admin-mobile-module>main .schedule-grid{min-width:700px}.admin-mobile-module>main{overflow-x:auto}.v2-page-head{align-items:flex-start;flex-direction:column}.v2-page-head>.v2-action{width:100%}.v2-page-head>input,.v2-section-head select{width:100%}.v2-section-head{align-items:flex-start;flex-direction:column}.v2-surface{padding:14px}.v2-score-rows>article{grid-template-columns:44px 1fr auto}.v2-score-rows>article .v2-action{grid-column:2/-1}.v2-inline-add{align-items:stretch;flex-direction:column}.v2-inline-add select{min-width:0;width:100%}.v2-score-library>button{grid-template-columns:52px 1fr 54px 15px;padding-inline:10px}.v2-library-cover{width:50px;height:65px}.v2-note-moderation,.v2-two-column,.v2-metric-grid{grid-template-columns:1fr}.v2-metric-grid>div{min-height:70px}.v2-metric-grid>div+div{border-left:0;border-top:1px solid var(--line)}.v2-practice-list article{grid-template-columns:1fr auto}.v2-practice-list article>b{grid-column:1}.v2-entitlement-form{grid-template-columns:1fr}.v2-entitlement-list article{grid-template-columns:1fr auto}.v2-entitlement-list article>em{grid-column:1}.v2-account-list article{grid-template-columns:38px 1fr auto}.v2-account-list article>em,.v2-account-list article>.v2-action{grid-column:2/-1}.account-system-functions{grid-template-columns:1fr}.account-system-card{min-height:0}.account-admin-card{grid-column:auto}.account-admin-card .v2-section-head{align-items:stretch}.account-admin-card .v2-section-head>.v2-action{width:100%}.v2-modal-backdrop{padding:0;align-items:end}.v2-modal{max-height:94dvh;border-radius:15px 15px 0 0}.v2-form.two{grid-template-columns:1fr}.v2-form .full{grid-column:auto}.v2-permission-matrix>label{grid-template-columns:1fr 115px}.v2-issue-confirm{padding:17px}.v2-score-reader{position:relative;overflow:hidden}.v2-score-reader.notes-open{display:flex;grid-template-columns:none;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.v2-score-reader.notes-open>.v2-score-pages,.v2-score-reader.notes-open>.v2-page-viewer,.v2-score-reader.notes-open>.v2-notes-panel{flex:0 0 100%;width:100%;min-width:100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always}.v2-score-pages{padding:10px}.v2-score-pages img{width:100%;max-width:none}.v2-notes-panel{padding:16px 14px 90px;border-left:0}.v2-reader-notes-toggle{top:66px}.v2-reader-mobile-pager{position:absolute;left:50%;bottom:12px;z-index:8;width:min(270px,calc(100% - 36px));min-height:44px;padding:4px;border:1px solid rgba(19,65,48,.16);border-radius:999px;background:#fffffcf0;box-shadow:0 10px 25px #0c302229;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transform:translate(-50%);display:grid;grid-template-columns:1fr 1fr;gap:3px}.v2-reader-mobile-pager button{border:0;border-radius:999px;color:var(--muted);background:transparent;display:flex;justify-content:center;align-items:center;gap:5px;font-size:10px;font-weight:700}.v2-reader-mobile-pager button.active{color:#fff;background:var(--p4)}}@media(min-width:721px)and (max-width:899px){.admin-app{grid-template-columns:168px minmax(0,1fr)}.sidebar{padding-inline:9px}.brand-lockup img{width:118px}.sidebar nav button{padding-inline:10px;font-size:12px}.admin-topbar{padding-inline:20px}.admin-content{padding:24px 20px 52px}.dashboard-grid,.detail-grid{grid-template-columns:1fr}.pending-attendance-list>button{grid-template-columns:120px minmax(140px,1fr) 58px}.pending-attendance-action{display:none}.page-tabs{overflow-x:auto}.page-tabs button{flex:0 0 auto}.student-summary-strip{grid-template-columns:repeat(2,1fr)}.student-summary-strip>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.student-summary-strip>div:nth-child(4){border-top:1px solid var(--line)}.student-table-wrap,.schedule-grid{overflow-x:auto}.student-table{min-width:920px}.schedule-grid{min-width:760px}.modal-card.modal-wide,.v2-modal{width:calc(100vw - 38px)}.v2-library-metrics{grid-template-columns:repeat(3,1fr)}.v2-qr-card{grid-template-columns:1fr 220px}.student-stage{padding:0;display:block}.student-stage:before,.student-stage:after,.stage-caption,.student-statusbar{display:none}.student-phone-shell{width:100%;height:100dvh;min-height:0;border:0;border-radius:0;box-shadow:none}.v2-student-screen,.v2-student-layer{height:100%}.v2-student-main{padding-inline:34px}.v2-student-score-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.prototype-switcher{top:12px;right:55px}}.v2-points-tabs{margin-bottom:16px;overflow-x:auto}.v2-point-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.v2-point-quick{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px}.v2-point-quick button{min-width:62px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--p4);font-weight:800}.v2-ledger-warning{display:flex;align-items:center;gap:7px;margin:4px 0 0;padding:10px;border-radius:7px;background:#f5f0e5;color:var(--muted);font-size:12px}.v2-point-account-list{display:grid}.v2-point-filters{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(2,minmax(120px,.8fr)) repeat(2,minmax(145px,1fr)) auto}.v2-point-date-filter{display:flex!important;align-items:center;gap:5px;padding:0 9px;border:1px solid var(--line);border-radius:7px}.v2-point-date-filter>span{flex:0 0 auto;color:var(--muted);font-size:10px}.v2-point-date-filter input{min-width:0;border:0;padding-inline:0}.v2-point-account-list>button{display:grid;grid-template-columns:42px minmax(180px,1fr) 82px 82px 82px 18px;align-items:center;gap:12px;width:100%;padding:14px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.v2-point-account-list>button:last-child{border-bottom:0}.v2-point-account-list>button:hover{color:var(--p4)}.v2-point-account-list span{display:grid;gap:4px}.v2-point-account-list span small{color:var(--muted)}.v2-point-avatar{width:38px;height:38px;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:50%;background:var(--soft-2);color:var(--p4);font-family:Songti SC,serif;font-weight:800}.v2-point-avatar img{width:100%;height:100%;object-fit:cover}.v2-point-account-main strong{display:flex;align-items:center;gap:7px}.v2-point-account-main .v2-tone{font-family:inherit;font-size:9px}.v2-point-account-list em{display:grid;color:var(--muted);font-size:11px;font-style:normal}.v2-point-account-list em b{color:var(--ink);font-family:Songti SC,serif;font-size:22px}.v2-point-confirm{display:grid;justify-items:center;gap:10px;padding:28px 20px;text-align:center}.v2-point-confirm>svg{color:var(--p4)}.v2-point-confirm>span{color:var(--muted);font-size:11px}.v2-point-confirm h3{margin:0;color:var(--p4);font-family:Songti SC,serif;font-size:21px}.v2-point-confirm p{margin:0;font-size:12px}.v2-point-confirm small{color:var(--muted)}.v2-point-confirm .v2-ledger-warning{justify-self:stretch;text-align:left}.v2-point-detail{margin-top:14px}.v2-point-ledger{display:grid}.v2-point-ledger article{display:grid;grid-template-columns:115px minmax(180px,1fr) 70px 70px;align-items:center;gap:10px;min-height:64px;padding:9px 0;border-bottom:1px solid var(--line)}.v2-point-ledger article:last-child{border-bottom:0}.v2-point-ledger article>span{display:grid;gap:4px}.v2-point-ledger article>span small{color:var(--muted);line-height:1.45}.v2-point-ledger article>b{font-size:17px;text-align:right}.v2-point-ledger article>b.plus{color:var(--p4)}.v2-point-ledger article>b.minus{color:#a44d43}.v2-point-ledger article>em{color:var(--muted);font-size:11px;font-style:normal;text-align:right}.v2-ranking-period{width:fit-content;margin:0 0 12px auto}.v2-redemption-list{display:grid}.v2-redemption-list article{display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 0;border-bottom:1px solid var(--line)}.v2-redemption-list article:last-child{border-bottom:0}.v2-redemption-list article>span:nth-child(2){display:grid;flex:1;gap:4px}.v2-redemption-list article>span:nth-child(2) small{color:var(--muted);line-height:1.45}.v2-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 20px}.v2-rule-grid article{min-height:150px;padding:15px;border:1px solid var(--line);border-radius:9px;background:#fcfbf7}.v2-rule-grid strong,.v2-rule-grid b{display:block}.v2-rule-grid b{margin:8px 0;color:var(--p4);font-family:Songti SC,serif;font-size:20px}.v2-rule-grid p{color:var(--muted);font-size:12px;line-height:1.65}.v2-rule-grid small{color:var(--p4);font-weight:800}.v2-point-rules>h3{margin:18px 0 6px;font-family:Songti SC,serif}.v2-point-rules>ul{display:grid;gap:6px;margin:14px 0 0;padding-left:20px;color:var(--muted);font-size:12px}.v2-note-restore-actions{display:flex;flex-wrap:wrap;gap:7px}.v2-note-course-empty{margin:0;padding:9px;border-radius:7px;background:#f5f0e5;color:var(--muted);font-size:11px;line-height:1.5}.v2-new-note label{display:grid;gap:6px;color:var(--muted);font-size:11px}.v2-new-note label small{line-height:1.45}.v2-home-points-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;min-height:105px;margin:12px 0;padding:15px;border:1px solid #d2c5a7;border-radius:10px;background:linear-gradient(135deg,#f8f2e4,#fffdf8);color:var(--ink);text-align:left}.v2-home-points-card>svg{color:#9b7434}.v2-home-points-card>span{display:grid;gap:4px}.v2-home-points-card small{color:#8a6b36;font-size:8px;font-weight:800;letter-spacing:.12em}.v2-home-points-card strong{font-family:Songti SC,serif;font-size:26px}.v2-home-points-card strong em{margin-left:6px;color:var(--muted);font-family:inherit;font-size:11px;font-style:normal}.v2-home-points-card p,.v2-home-points-card i{margin:0;color:var(--muted);font-size:10px;font-style:normal}.v2-home-point-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:180px}.v2-home-point-actions button{min-height:30px;padding:0 8px;border:1px solid #d2c5a7;border-radius:6px;background:#ffffff9e;color:#765a2d;font-size:10px;font-weight:800}.v2-points-hero{padding:22px;border-radius:13px;background:linear-gradient(135deg,#163d31,#285848);color:#fff}.v2-points-hero>span{font-size:9px;font-weight:800;letter-spacing:.14em;opacity:.72}.v2-points-hero>div{display:flex;align-items:baseline;justify-content:space-between;margin:12px 0 5px}.v2-points-hero>div small{opacity:.76}.v2-points-hero>div strong{font-family:Songti SC,serif;font-size:44px}.v2-points-hero p{margin:0 0 7px}.v2-points-hero>small{opacity:.7}.v2-student-points-tabs{margin:12px 0;overflow-x:auto}.v2-student-points-tabs button{flex:0 0 auto}.v2-point-recent{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.v2-point-recent>span{display:grid;gap:4px}.v2-point-recent>span small{color:var(--muted)}.v2-point-recent>b{color:var(--p4);font-size:20px}.v2-point-exchange-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.v2-point-exchange-grid article{display:flex;flex-direction:column;align-items:flex-start;min-height:250px;padding:17px;border:1px solid var(--line);border-radius:11px;background:var(--paper)}.v2-point-exchange-grid article>svg{margin-bottom:9px;color:#9b7434}.v2-point-exchange-grid h2{margin:11px 0 6px;font-family:Songti SC,serif;font-size:17px}.v2-point-exchange-grid p{flex:1;color:var(--muted);font-size:11px;line-height:1.65}.v2-redeem-confirm{padding:13px;border-radius:8px;background:#f5f0e5}.v2-redeem-confirm p{margin:5px 0 0;color:var(--muted);font-size:12px}.student-points-detail{grid-column:1 / -1;padding:22px}.student-points-heading{margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.student-points-heading h2{margin:0;font-family:inherit;font-size:19px;line-height:1.3;letter-spacing:-.02em}.student-points-heading p{margin:5px 0 0;color:var(--muted);font-size:10px}.student-points-heading .button{min-height:36px;padding-inline:13px;font-size:11px}.student-points-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:22px}.student-points-summary>div{min-height:88px;padding:15px 16px;border:1px solid #dce6de;border-radius:9px;background:linear-gradient(145deg,#fafcf8,#f5f8f3);display:flex;flex-direction:column;justify-content:space-between;gap:9px}.student-points-summary small{color:var(--muted);font-size:10px}.student-points-summary strong{color:var(--p4);font-family:inherit;font-size:24px;font-weight:720;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.025em}.student-points-ledger-head{min-height:48px;padding-bottom:10px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.student-points-ledger-head h3{margin:0 0 5px;font-family:inherit;font-size:14px}.student-points-ledger-head small{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px}.student-points-empty{min-height:92px;padding:18px 4px;display:flex;align-items:center;justify-content:center;gap:11px;color:#75a68c}.student-points-empty span{display:grid;gap:4px}.student-points-empty strong{color:var(--ink);font-size:11px}.student-points-empty small{color:var(--muted);font-size:9px}.student-points-detail .v2-point-ledger article{min-height:58px}@media(max-width:720px){.v2-points-tabs{margin-inline:-14px;padding-inline:14px}.v2-point-metrics{grid-template-columns:1fr 1fr}.v2-point-account-list>button{grid-template-columns:34px minmax(0,1fr) 68px 18px;gap:8px}.v2-point-avatar{width:32px;height:32px}.v2-point-filters{display:flex}.v2-point-account-list>button em:nth-of-type(2),.v2-point-account-list>button em:nth-of-type(3){display:none}.v2-point-ledger article{grid-template-columns:auto minmax(0,1fr) 52px}.v2-point-ledger article>em{display:none}.v2-rule-grid{grid-template-columns:1fr}.v2-rule-grid article{min-height:auto}.v2-point-exchange-grid{grid-template-columns:1fr}.v2-point-exchange-grid article{min-height:205px}.v2-home-points-card{grid-template-columns:30px minmax(0,1fr)}.v2-home-point-actions{grid-column:1 / -1;justify-content:stretch;max-width:none}.v2-home-point-actions button{flex:1}.student-points-summary{grid-template-columns:1fr 1fr}.student-points-summary>div{min-height:82px;padding:13px}.student-points-heading{align-items:flex-start}.student-points-heading p{max-width:210px}}@media(min-width:721px)and (max-width:1100px){.v2-point-metrics{grid-template-columns:1fr 1fr}.v2-point-account-list>button{grid-template-columns:38px minmax(150px,1fr) 76px 76px 18px}.v2-point-account-list>button em:nth-of-type(3){display:none}.v2-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.notification-message-entry{width:100%;min-height:66px;margin:3px 0 12px;padding:11px 12px;border:1px solid #cfe2d5;border-radius:9px;color:var(--p4);background:var(--soft);display:grid;grid-template-columns:28px 1fr 18px;gap:8px;align-items:center;text-align:left}.notification-message-entry strong,.notification-message-entry small{display:block}.notification-message-entry strong{font-size:11px}.notification-message-entry small{margin-top:3px;color:var(--muted);font-size:9px}.term-choice-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;align-items:end}.term-choice-field>label{min-width:0}.term-choice-field>.field-error,.term-choice-field>.field-help{grid-column:1/-1}.student-finance-card,.student-rights-card,.student-ledger-detail,.student-growth-detail,.student-score-grants{padding:20px}.student-finance-state{grid-column:1 / -1}.student-finance-card article,.student-rights-card>article,.student-ledger-detail article,.student-growth-detail article,.student-score-grants article{min-height:62px;padding:11px 2px;border-top:1px solid var(--line);display:flex;align-items:center;gap:11px}.student-finance-card article>span,.student-rights-card article>span,.student-ledger-detail article>span,.student-growth-detail article>span,.student-score-grants article>span{min-width:0;flex:1}.student-finance-card strong,.student-finance-card small,.student-rights-card strong,.student-rights-card small,.student-ledger-detail strong,.student-ledger-detail small,.student-growth-detail strong,.student-growth-detail small,.student-score-grants strong,.student-score-grants small{display:block}.student-finance-card strong,.student-rights-card strong,.student-ledger-detail strong,.student-growth-detail strong,.student-score-grants strong{font-size:11px}.student-finance-card small,.student-rights-card small,.student-ledger-detail small,.student-growth-detail small,.student-score-grants small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.55}.student-finance-card b,.student-ledger-detail b{color:var(--p4);font-size:10px;white-space:nowrap}.student-ledger-detail time{width:86px;color:var(--p4);font-size:10px;font-weight:750}.student-growth-detail article{align-items:flex-start}.student-growth-detail p{margin:6px 0;font-size:10px;line-height:1.65}.legacy-light-rule{margin-top:12px;padding:13px;border:1px solid #e4cf9e;border-radius:8px;background:var(--amber-bg);display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:9px;align-items:center}.legacy-light-rule>svg{color:var(--amber)}.legacy-light-rule strong,.legacy-light-rule small{display:block}.legacy-light-rule strong{font-size:10px}.legacy-light-rule small{margin-top:4px;font-size:9px;line-height:1.55}.v2-course-score-panel{margin-top:20px;padding:18px;border:1px solid #c9dfd1;border-radius:10px;background:var(--soft-2)}.v2-course-score-panel .v2-section-head{margin-bottom:12px}.v2-library-metrics{margin-bottom:16px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);background:var(--paper)}.v2-library-metrics>div,.v2-library-metrics>button{min-height:74px;padding:14px;border:0;border-left:1px solid var(--line);background:transparent;text-align:left}.v2-library-metrics>:first-child{border-left:0}.v2-library-metrics small,.v2-library-metrics strong{display:block}.v2-library-metrics small{color:var(--muted);font-size:9px}.v2-library-metrics strong{margin-top:6px;color:var(--p4);font-size:20px}.v2-library-toolbar{margin-bottom:12px;display:flex;gap:9px}.v2-library-toolbar label{min-width:0;flex:1;height:40px;padding:0 11px;border:1px solid var(--line-dark);border-radius:8px;background:#fff;display:flex;align-items:center;gap:8px}.v2-library-toolbar input{min-width:0;flex:1;border:0;outline:0;background:transparent}.v2-library-toolbar select{min-width:150px;padding:0 9px;border:1px solid var(--line-dark);border-radius:8px;background:#fff}.v2-score-books{padding:18px;border:1px solid var(--line);background:var(--paper);display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.v2-score-books>.v2-section-head,.v2-score-books>.v2-empty{grid-column:1/-1}.v2-score-book-card{min-width:0;min-height:116px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:inherit;display:grid;grid-template-columns:70px minmax(0,1fr) 20px;align-items:center;gap:12px;text-align:left}.v2-score-book-card:hover{border-color:#9bb4a5;box-shadow:0 8px 24px #1b362914}.v2-score-book-card>span{min-width:0}.v2-score-book-card strong,.v2-score-book-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2-score-book-card strong{font-size:14px}.v2-score-book-card small{margin-top:5px;color:var(--muted);font-size:10px}.v2-book-cover{width:70px;aspect-ratio:3/4;border:1px solid var(--line);border-radius:7px;background:linear-gradient(145deg,#edf4ef,#dce8df);color:var(--p4);overflow:hidden;display:grid;place-items:center}.v2-book-cover.large{width:100%;max-width:210px;margin:auto}.v2-book-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}.v2-book-cover>span{padding:8px;display:grid;place-items:center;gap:5px;text-align:center}.v2-book-cover small{color:var(--muted);font-size:9px;line-height:1.35}.v2-book-cover.broken{color:#9a4d46;background:#fff1ee}.v2-book-modal{width:min(760px,100%)}.v2-book-create-body{max-height:calc(100dvh - 190px);overflow:auto}.v2-book-create-body .v2-form{padding-bottom:8px}.v2-book-add-panel{margin:0 24px 22px;padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--soft-2)}.v2-book-add-panel h3,.v2-book-items h3,.v2-book-danger h3{margin:0 0 10px;font-size:14px}.v2-book-search{min-width:0;min-height:42px;padding:0 10px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;display:flex;align-items:center;gap:8px}.v2-book-search input{min-width:0;flex:1;border:0;outline:0;background:transparent}.v2-book-search-results{max-height:210px;margin-top:9px;overflow:auto;display:grid;gap:4px}.v2-book-search-results>label{min-width:0;min-height:44px;padding:7px 8px;border-radius:6px;background:#fff;display:flex;align-items:center;gap:9px}.v2-book-search-results>label>span{min-width:0;flex:1}.v2-book-search-results strong,.v2-book-search-results small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2-book-search-results strong{font-size:11px}.v2-book-search-results small,.v2-book-add-panel p{color:var(--muted);font-size:9px;line-height:1.55}.v2-student-book-create-body{max-height:calc(100dvh - 190px);overflow:auto}.v2-create-book-picker{padding:13px;border:1px solid #cadfd1;border-radius:9px;background:var(--soft-2)}.v2-create-book-picker>div:first-child strong,.v2-create-book-picker>div:first-child small{display:block}.v2-create-book-picker>div:first-child strong{font-size:12px}.v2-create-book-picker>div:first-child small{margin-top:3px;color:var(--muted);font-size:9px}.v2-create-book-picker .v2-book-search{margin-top:10px}.v2-create-book-score-list{max-height:230px;margin-top:8px;overflow:auto;display:grid;gap:5px}.v2-create-book-score-list>label{position:relative;min-width:0;min-height:50px;padding:7px 9px;border:1px solid transparent;border-radius:7px;background:#fff;display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:9px;cursor:pointer}.v2-create-book-score-list>label.selected{border-color:#84aa91;background:#f3faf5}.v2-create-book-score-list input{position:absolute;z-index:2;left:9px;top:50%;margin-top:-9px;opacity:0;cursor:pointer}.v2-create-book-score-list i{width:18px;height:18px;border:1px solid #a7b7ad;border-radius:4px;background:#fff;color:transparent;display:grid;place-items:center}.v2-create-book-score-list input:checked+i{border-color:var(--p4);background:var(--p4);color:#fff}.v2-create-book-score-list span,.v2-create-book-score-list strong,.v2-create-book-score-list small{min-width:0;display:block}.v2-create-book-score-list strong,.v2-create-book-score-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2-create-book-score-list strong{font-size:11px}.v2-create-book-score-list small{margin-top:3px;color:var(--muted);font-size:9px}.v2-create-book-empty{margin:10px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.v2-create-book-count{margin-right:auto;align-self:center;color:var(--p4);font-size:10px;font-weight:750}.v2-book-manager{width:min(1080px,100%)}.v2-book-manager-body{min-height:0;display:grid;grid-template-columns:240px minmax(0,1fr)}.v2-book-manager-body>aside{padding:20px;border-right:1px solid var(--line)}.v2-book-manager-body>aside>small,.v2-book-manager-body>aside>p{display:block;margin-top:9px;color:var(--muted);font-size:9px;line-height:1.55;text-align:center}.v2-book-cover-actions{margin-top:12px;display:grid;gap:7px}.v2-book-cover-actions .v2-action{width:100%;min-height:40px}.v2-book-cover-actions label{cursor:pointer}.v2-book-cover-actions input{position:absolute;width:1px!important;height:1px!important;opacity:0;pointer-events:none}.v2-book-manager-body>main{min-width:0;max-height:calc(100dvh - 128px);padding:20px;overflow:auto}.v2-book-meta{padding-bottom:16px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(180px,.7fr) minmax(240px,1fr) auto;align-items:end;gap:10px}.v2-book-meta label>span{display:block;margin-bottom:6px;color:#4f5a55;font-size:10px;font-weight:700}.v2-book-meta input,.v2-book-meta textarea,.v2-book-danger input{width:100%;min-height:42px;padding:8px 10px;border:1px solid var(--line-dark);border-radius:6px;background:#fff}.v2-book-meta textarea{height:64px;resize:vertical}.v2-book-description{margin:0 0 14px;color:var(--muted)}.v2-book-items{padding:18px 0}.v2-book-items article{min-width:0;min-height:58px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px}.v2-book-items article[draggable=true]{cursor:grab}.v2-book-score-main{min-width:0;flex:1;min-height:56px;padding:7px 2px;border:0;background:transparent;color:inherit;display:grid;grid-template-columns:30px minmax(0,1fr) 18px;align-items:center;gap:9px;text-align:left}.v2-book-score-main>b{width:27px;height:27px;border-radius:50%;background:var(--soft-2);color:var(--p4);display:grid;place-items:center;font-size:10px}.v2-book-score-main>span{min-width:0}.v2-book-score-main strong,.v2-book-score-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2-book-score-main strong{font-size:12px}.v2-book-score-main small{margin-top:3px;color:var(--muted);font-size:9px}.v2-book-item-actions{display:flex;gap:4px}.v2-book-item-actions button{width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--p4);display:grid;place-items:center}.v2-book-item-actions button.danger{color:#a64c43}.v2-book-item-actions button:disabled{opacity:.35}.v2-book-manager .v2-book-add-panel{margin:0 0 18px}.v2-book-manager .v2-book-add-panel>.v2-action{margin-top:10px}.v2-book-danger{padding:16px;border:1px solid #e1b8b2;border-radius:9px;background:#fff5f2}.v2-book-danger p{margin:0 0 10px;color:#7b4d48;font-size:10px;line-height:1.6}.v2-book-danger label{margin:10px 0;display:flex;align-items:flex-start;gap:9px;font-size:10px}.v2-book-danger>div>div{display:flex;justify-content:flex-end;gap:8px}.birthday-field{min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff}.birthday-field legend{padding:0 6px;color:#4f5a55;font-size:12px;font-weight:650}.birthday-field legend em{color:var(--muted);font-size:10px;font-style:normal;font-weight:400}.birthday-selects{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px}.birthday-selects label{min-width:0}.birthday-selects label>span{display:block;margin-bottom:5px;color:var(--muted);font-size:10px}.birthday-selects select{width:100%;min-width:0;min-height:44px;padding:0 8px;border:1px solid var(--line-dark);border-radius:7px;background:#fff}.birthday-field>small{display:block;margin-top:7px;color:var(--muted);font-size:10px}.availability-field{min-width:0;margin:0;padding:13px;border:1px solid var(--line);border-radius:9px;background:#fff}.availability-field legend{padding:0 6px;color:#4f5a55;font-size:12px;font-weight:650}.availability-field legend em{color:var(--muted);font-size:10px;font-style:normal;font-weight:400}.availability-simple-list{display:grid;gap:7px}.availability-simple-row{min-width:0;padding:8px;border:1px solid transparent;border-radius:8px;background:var(--soft-2);display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:6px 9px}.availability-simple-row.active{border-color:#c2d9c9;background:#f3f8f4}.availability-day-toggle{position:relative;min-width:0;display:flex;align-items:center;gap:8px;cursor:pointer}.availability-day-toggle input{position:absolute;z-index:2;left:0;opacity:0;cursor:pointer}.availability-day-toggle i{width:18px;height:18px;flex:0 0 18px;border:1px solid #a7b7ad;border-radius:4px;background:#fff;color:#fff;display:grid;place-items:center}.availability-day-toggle i:after{content:"✓";opacity:0;font-size:12px;font-weight:800}.availability-day-toggle input:checked+i{border-color:var(--p4);background:var(--p4)}.availability-day-toggle input:checked+i:after{opacity:1}.availability-day-toggle strong{color:#48564f;font-size:11px;white-space:nowrap}.availability-simple-row>input{width:100%;min-width:0;min-height:42px;padding:0 10px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;font-size:12px}.availability-simple-row>input:disabled{color:#8c9690;background:#eef1ee;opacity:.72}.availability-simple-row>small{grid-column:2;color:var(--p4);font-size:9px;line-height:1.4}.availability-other{margin-top:9px;display:block}.availability-other>span{display:block;margin-bottom:5px;color:#4f5a55;font-size:10px;font-weight:700}.availability-other em{color:var(--muted);font-style:normal;font-weight:400}.availability-other>input{width:100%;min-width:0;min-height:42px;padding:0 10px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;font-size:12px}.v2-detail-edit{margin-top:10px;display:flex;justify-content:flex-end}.v2-qr-card{margin-bottom:16px;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:center}.v2-qr-card>img{width:100%;max-width:260px;aspect-ratio:1;padding:10px;border:1px solid var(--line);background:#fff}.v2-qr-card h2{margin:6px 0}.v2-qr-card p{color:var(--muted);font-size:10px;line-height:1.65}.v2-qr-actions{margin:16px 0;display:flex;flex-wrap:wrap;gap:8px}.v2-qr-card details{max-width:550px;color:var(--muted);font-size:9px}.v2-qr-card code{display:block;margin-top:8px;overflow-wrap:anywhere}.admin-mobile-main .workbench-issue-board{margin:12px 0 18px;padding:13px}.admin-mobile-main .workbench-issue-board>header{margin-bottom:10px;align-items:flex-start;flex-direction:column;gap:3px}.admin-mobile-main .workbench-issue-board>header h2{font-size:14px}.admin-mobile-main .workbench-issue-board>div{grid-template-columns:1fr;gap:7px}.admin-mobile-main .workbench-issue-card{min-height:68px;padding:10px}.mobile-identity-filter{min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px}.mobile-identity-filter span{color:var(--muted);font-size:9px}.mobile-identity-filter select{min-width:130px;border:0;background:transparent;font-size:10px}.student-mobile-detail.integrated .back-link{display:none}@media(max-width:720px){.pending-attendance-modal .pending-attendance-list>button{grid-template-columns:82px minmax(0,1fr) 54px;gap:8px}.pending-attendance-modal .pending-attendance-action{display:none}.admin-mobile-header{padding-inline:12px;grid-template-columns:88px 1fr 36px 36px}.admin-mobile-header>div:not(.mobile-account-wrap){text-align:left}.admin-mobile-nav button{gap:4px;font-size:8px}.admin-mobile-nav button svg{width:19px;height:19px}.student-mobile-detail.integrated>main{padding:16px 12px 40px}.student-mobile-detail.integrated .page-header{align-items:flex-start;flex-direction:column}.student-mobile-detail.integrated .header-button-group{width:100%;overflow-x:auto}.student-mobile-detail.integrated .header-button-group .button{flex:0 0 auto}.student-mobile-detail.integrated .student-summary-strip{grid-template-columns:1fr 1fr}.student-mobile-detail.integrated .student-summary-strip>div{min-height:88px;border-top:1px solid var(--line)}.student-mobile-detail.integrated .student-summary-strip>div:nth-child(odd){border-left:0}.student-mobile-detail.integrated .page-tabs{overflow-x:auto}.student-mobile-detail.integrated .page-tabs button{flex:0 0 auto}.student-ledger-detail article{align-items:flex-start;flex-wrap:wrap}.student-ledger-detail time{width:72px}.student-ledger-detail article>span{min-width:calc(100% - 90px)}.legacy-light-rule{grid-template-columns:22px 1fr}.legacy-light-rule .button,.legacy-light-rule .badge{grid-column:2;justify-self:start}.term-choice-field{grid-template-columns:1fr}.term-choice-field>.button,.term-choice-field>.field-error,.term-choice-field>.field-help{grid-column:1}.v2-course-score-panel{padding:13px}.v2-library-metrics{grid-template-columns:repeat(2,1fr)}.v2-library-metrics>:nth-child(odd){border-left:0}.v2-library-metrics>:nth-child(n+3){border-top:1px solid var(--line)}.v2-library-toolbar{align-items:stretch;flex-direction:column}.v2-library-toolbar select{min-height:40px}.v2-qr-card{grid-template-columns:1fr}.v2-qr-card>img{grid-row:1;justify-self:center;max-width:min(74vw,270px)}.v2-qr-actions{align-items:stretch;flex-direction:column}.v2-qr-actions>*{width:100%}}@media print{body>*{visibility:hidden}.v2-qr-card,.v2-qr-card *{visibility:visible}.v2-qr-card{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;min-height:100vh;border:0;box-shadow:none;display:grid;place-items:center;text-align:center}.v2-qr-card>img{max-width:110mm}.v2-qr-actions,.v2-qr-card details{display:none}}@media(min-width:721px)and (max-width:899px){.v2-library-metrics{grid-template-columns:repeat(3,1fr)}.v2-library-metrics>:nth-child(4){border-left:0;border-top:1px solid var(--line)}.v2-library-metrics>:nth-child(5){border-top:1px solid var(--line)}.v2-qr-card{grid-template-columns:1fr 220px}}.upgrade-card{padding:24px;margin:18px 0;min-width:0}.upgrade-card p{line-height:1.75;color:var(--text-muted,#69766e);overflow-wrap:anywhere}.upgrade-card h1,.upgrade-card h2{line-height:1.35;margin-top:0}.upgrade-dialog{width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto}.upgrade-dialog .modal-content{overflow:visible}.upgrade-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0}.upgrade-actions a{text-decoration:none}.account-system-functions>.account-system-card:not(.account-admin-card){width:100%;height:230px;min-height:230px;margin:0;padding:22px;display:flex;flex-direction:column}.account-system-functions>.account-system-card:not(.account-admin-card)>.upgrade-actions,.account-system-functions>.account-system-card:not(.account-admin-card)>.v2-action{margin-top:auto}.account-system-functions>.account-system-card:not(.account-admin-card)>.v2-action{align-self:flex-start}.upgrade-field,.upgrade-filter-grid label{display:flex;flex-direction:column;gap:8px;min-width:0;margin:12px 0;font-size:13px}.upgrade-field input,.upgrade-field select,.upgrade-field textarea,.upgrade-filter-grid input,.upgrade-filter-grid select{width:100%;min-width:0;padding:12px;border:1px solid #d7dfd7;border-radius:10px;background:#fffefa;color:#203c31;font:inherit}.upgrade-field textarea{min-height:96px;resize:vertical}.upgrade-check{display:flex;align-items:flex-start;gap:10px;line-height:1.7;padding:12px 0}.upgrade-check input{width:18px!important;height:18px;flex:0 0 18px;margin:4px 0 0}.upgrade-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.upgrade-notice{padding:15px;border:1px solid #d9e4da;background:#f2f6ef;border-radius:12px;margin:14px 0;line-height:1.7;overflow-wrap:anywhere}.upgrade-membership{border:1px solid #d8e3da;border-radius:12px;padding:16px;min-width:0}.upgrade-membership legend{font-weight:700;padding:0 8px}.upgrade-qr{display:block;width:min(260px,100%);height:auto;margin:20px auto}.upgrade-list-row{display:flex;gap:14px;align-items:center;width:100%;border:0;border-bottom:1px solid #e4e9e1;padding:16px 0;background:transparent;text-align:left;color:inherit}.upgrade-list-row span,.upgrade-student-open{min-width:0;flex:1}.upgrade-list-row small{display:block;color:#718075;line-height:1.7;overflow-wrap:anywhere;margin-top:5px}.upgrade-list-row input[type=checkbox]{width:18px;height:18px;flex:0 0 18px}.upgrade-student-open{border:0;background:transparent;text-align:left;color:inherit;cursor:pointer}.upgrade-details div{display:grid;grid-template-columns:minmax(90px,1fr) 3fr;gap:14px;padding:12px 0;border-bottom:1px solid #e5e9e3}.upgrade-details dt{color:#738174;font-size:13px}.upgrade-details dd{margin:0;overflow-wrap:anywhere}.registration-page{min-height:100dvh;background:#f6f5f0;padding:32px max(16px,calc((100vw - 760px)/2))}.registration-page>header{display:flex;align-items:center;gap:16px;color:#72836f;font-size:12px;letter-spacing:1px}.registration-page>header img{width:116px}.registration-page .upgrade-card{background:#fffefa;border-radius:20px}.upgrade-form{display:grid;gap:4px}@media(max-width:720px){.admin-mobile-main .student-filter-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-mobile-main .student-filter-metrics>button{min-width:0}.admin-mobile-main .student-filter-metrics>button:nth-child(3){border-left:0}.admin-mobile-main .student-filter-metrics>button:nth-child(n+3){border-top:1px solid var(--line)}.admin-mobile-main .detail-grid{grid-template-columns:minmax(0,1fr)}.admin-mobile-main .student-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-mobile-main .student-summary-strip>div{min-width:0;padding:16px}.admin-mobile-main .student-summary-strip>div:nth-child(3){border-left:0}.admin-mobile-main .student-summary-strip>div:nth-child(n+3){border-top:1px solid var(--line)}.admin-mobile-main .page-tabs button{flex:0 0 auto;white-space:nowrap}.upgrade-card{padding:18px}.upgrade-filter-grid{grid-template-columns:1fr;gap:0}.upgrade-dialog input,.upgrade-dialog select,.upgrade-dialog textarea,.registration-page input,.registration-page textarea{font-size:16px}.upgrade-list-row{flex-wrap:wrap}.upgrade-details div{grid-template-columns:1fr;gap:4px}.admin-mobile-main .student-table{min-width:0}.admin-mobile-main .student-table>.table-row.table-head{display:none!important}.admin-mobile-main .student-table .table-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:0;padding:16px}.admin-mobile-main .student-table .student-cell{grid-column:1/-1}.admin-mobile-main .former-student-table{min-width:0}.admin-mobile-main .former-student-table>.table-row.table-head{display:none!important}.admin-mobile-main .former-student-table .table-row{position:relative;min-width:0;min-height:0;padding:15px 42px 15px 16px;display:grid;grid-template-columns:1fr 1fr;gap:12px 15px}.admin-mobile-main .former-student-table .student-cell,.admin-mobile-main .former-student-table .former-history-cell{grid-column:1/-1}.admin-mobile-main .former-student-table .former-cell-label{display:block!important;margin:0 0 5px;color:var(--muted);font-size:8px}.admin-mobile-main .former-student-table .former-meta-cell{font-size:11px}.admin-mobile-main .former-student-table .former-row-caret{position:absolute;right:14px;top:19px}.admin-mobile-main .former-student-table.managing .table-row{grid-template-columns:28px 1fr 1fr;padding-left:12px}.admin-mobile-main .former-student-table.managing .student-cell,.admin-mobile-main .former-student-table.managing .former-history-cell{grid-column:2/-1}.admin-mobile-main .former-student-table.managing .select-cell{grid-column:1;grid-row:1;align-self:center}.admin-mobile-main .former-table-pagination{justify-content:center;flex-wrap:wrap}.admin-mobile-main .table-toolbar{flex-wrap:wrap}.admin-mobile-main .page-header{flex-wrap:wrap;gap:12px}.admin-mobile-main .page-header h1{font-size:25px}.admin-mobile-main .header-button-group{flex-wrap:wrap}.admin-mobile-main .table-toolbar select,.admin-mobile-main .table-toolbar .search-box{max-width:100%;min-width:0}.admin-mobile-main .page-tabs{overflow-x:auto}.upgrade-dialog .button{white-space:normal;line-height:1.5}.registration-page{padding:18px 12px calc(28px + env(safe-area-inset-bottom))}}@media(min-width:721px)and (max-width:1150px){.student-table{min-width:0}.student-table .table-row{grid-template-columns:minmax(0,1.25fr) minmax(0,.58fr) minmax(0,1.1fr) minmax(0,.48fr) minmax(0,.58fr) minmax(0,.78fr) 16px;column-gap:8px;padding-inline:12px}.student-table.managing .table-row{grid-template-columns:30px minmax(0,1.25fr) minmax(0,.58fr) minmax(0,1.1fr) minmax(0,.48fr) minmax(0,.58fr) minmax(0,.78fr) 16px}.student-table .student-cell b{min-width:0;overflow-wrap:anywhere}.student-table .table-row span{font-size:10px}.former-student-table{min-width:0}.former-student-table .table-row{grid-template-columns:minmax(0,1.15fr) minmax(0,.48fr) minmax(0,.9fr) minmax(0,1.05fr) minmax(0,.72fr) 16px;column-gap:8px;padding-inline:12px}.former-student-table.managing .table-row{grid-template-columns:30px minmax(0,1.15fr) minmax(0,.48fr) minmax(0,.9fr) minmax(0,1.05fr) minmax(0,.72fr) 16px}.former-student-table .student-cell b{min-width:0;overflow-wrap:anywhere}.former-student-table .table-row span{font-size:10px}}@media(min-width:721px)and (max-width:899px){.former-table-toolbar{flex-wrap:wrap}.former-table-toolbar .search-box{max-width:none}}.student-detail-header.compact{position:relative;gap:20px}.student-detail-header.compact .student-title h1{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.student-action-menu{position:relative}.student-action-menu>[role=menu]{position:absolute;z-index:24;right:0;top:calc(100% + 8px);width:210px;padding:7px;border:1px solid var(--line-dark);border-radius:9px;background:var(--paper);box-shadow:0 16px 34px #18201929}.student-action-menu>[role=menu] button{width:100%;min-height:44px;padding:9px 10px;border:0;border-radius:6px;display:flex;align-items:center;gap:9px;background:transparent;color:var(--ink);text-align:left}.student-action-menu>[role=menu] button:hover{background:var(--p1);color:var(--p5)}.student-summary-strip.compact>div{min-height:88px}.student-basic-profile{padding:22px}.student-basic-profile dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:9px;overflow:hidden}.student-basic-profile dl>div{min-height:82px;padding:15px 17px;border-bottom:1px solid var(--line);display:grid;align-content:center;gap:6px}.student-basic-profile dl>div:nth-child(2n){border-left:1px solid var(--line)}.student-basic-profile dl>div:nth-last-child(-n+2){border-bottom:0}.student-basic-profile dl>.wide{grid-column:1 / -1;border-left:0}.student-basic-profile dt{color:var(--muted);font-size:10px}.student-basic-profile dd{margin:0;font-size:13px;line-height:1.65;white-space:pre-wrap}.student-history-timeline,.student-comment-history{display:grid}.student-history-timeline article,.student-comment-history article{min-height:72px;padding:12px 2px;border-top:1px solid var(--line);display:grid;grid-template-columns:112px minmax(0,1fr) auto;align-items:start;gap:14px}.student-history-timeline article:first-child,.student-comment-history article:first-child{border-top:0}.student-history-timeline time,.student-comment-history time{font-size:11px;font-weight:700}.student-history-timeline time small,.student-comment-history time small{display:block;margin-top:4px;color:var(--muted);font-weight:400}.student-history-timeline article>span,.student-comment-history article>span{min-width:0;display:grid;justify-items:start;gap:5px}.student-history-timeline article>span strong{font-size:12px}.student-history-timeline article>span small,.student-comment-history article>span small{color:var(--muted);font-size:10px;line-height:1.55}.student-growth-focus{min-height:390px;padding:26px}.student-growth-actions{display:flex;flex-wrap:wrap;gap:8px}.student-current-comment{min-height:270px;padding:clamp(26px,5vw,54px);border:1px solid var(--line-dark);border-radius:10px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#f7faf4,#fffefa 62%,#f1f5ed)}.student-current-comment>span{color:var(--p4);font-size:10px;font-weight:800;letter-spacing:.15em}.student-current-comment h3{max-width:760px;margin:16px 0;font-family:Songti SC,serif;font-size:clamp(24px,3vw,38px);font-weight:500;line-height:1.65;white-space:pre-wrap}.student-current-comment.empty h3{color:var(--muted)}.student-current-comment small,.student-current-comment p{color:var(--muted);font-size:11px;line-height:1.65}.student-comment-editor{display:grid;gap:8px}.student-comment-editor textarea{min-height:220px;resize:vertical}.student-comment-history article{grid-template-columns:112px minmax(0,1fr)}.student-comment-history p{margin:2px 0;line-height:1.65;white-space:pre-wrap}.student-score-permissions{padding:22px}.student-score-help{margin:-6px 0 14px;color:var(--muted);font-size:10px}.student-score-list{display:grid}.student-score-list article{min-height:70px;padding:10px 2px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px}.student-score-list article>span{min-width:0;flex:1}.student-score-list article strong,.student-score-list article small{display:block}.student-score-list article strong{font-size:12px}.student-score-list article small{margin-top:5px;color:var(--muted);font-size:9px;line-height:1.5}.score-permission-action{min-width:44px;min-height:44px;border:1px solid var(--line-dark);border-radius:50%;display:grid;place-items:center;background:var(--paper);color:var(--ink);font-size:24px;line-height:1}.score-permission-action.remove:hover{border-color:#a64a42;background:#fff4f1;color:#8f332c}.score-revoke-confirm{margin-bottom:16px;padding:14px;border:1px solid #d8b7af;border-radius:8px;display:flex;align-items:flex-start;gap:11px;background:#fff8f5}.score-revoke-confirm p{margin:0;line-height:1.65}@media(max-width:720px){.student-basic-profile dl{grid-template-columns:1fr}.student-basic-profile dl>div,.student-basic-profile dl>div:nth-child(2n),.student-basic-profile dl>div:nth-last-child(-n+2){border-left:0;border-bottom:1px solid var(--line)}.student-basic-profile dl>div:last-child{border-bottom:0}.student-basic-profile dl>.wide{grid-column:auto}.student-history-timeline article{grid-template-columns:86px minmax(0,1fr)}.student-history-timeline article>.button{grid-column:2;width:fit-content}.student-comment-history article{grid-template-columns:86px minmax(0,1fr)}.student-growth-focus{padding:18px}.student-current-comment{min-height:230px}}.v2-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.v2-score-library{border:0;background:transparent;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:14px}.v2-score-library>article{position:relative;min-width:0;border:1px solid var(--line-dark);border-radius:10px;background:var(--paper);overflow:hidden;transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}.v2-score-library>article:hover{border-color:#a8bbae;box-shadow:0 12px 30px #1b36291a;transform:translateY(-2px)}.v2-score-library>article.selected{border-color:var(--p4);box-shadow:0 0 0 2px #2a654b21}.v2-score-library>article>button{width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.v2-score-library>article>button>div:last-child{min-height:116px;padding:12px;display:grid;align-content:start;gap:5px}.v2-score-library>article>button strong,.v2-score-library>article>button small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2-score-library>article>button strong{margin-top:3px;font-family:Songti SC,serif;font-size:16px}.v2-score-library>article>button small{color:var(--muted);font-size:9px}.v2-library-cover{width:100%;height:auto;aspect-ratio:210/297;border:0;border-bottom:1px solid var(--line);overflow:hidden}.v2-library-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;-webkit-user-select:none;user-select:none}.v2-score-select{position:absolute;z-index:2;top:9px;right:9px;width:30px;height:30px;border-radius:50%;background:#ffffffeb;box-shadow:0 2px 10px #14281e29;display:grid;place-items:center;cursor:pointer}.v2-score-select input{position:absolute;opacity:0;pointer-events:none}.v2-score-select span{width:20px;height:20px;border:1px solid #9eb0a4;border-radius:50%;display:grid;place-items:center;color:transparent}.v2-score-select input:checked+span{border-color:var(--p4);background:var(--p4);color:#fff}.v2-check-grid{min-width:0;max-height:210px;margin:0;padding:10px;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;overflow-y:auto}.v2-check-grid legend{padding:0 7px;color:var(--muted);font-size:10px}.v2-check-grid label{min-width:0;min-height:38px;padding:7px 8px;border-radius:6px;display:flex;align-items:center;gap:8px;background:var(--soft-2)}.v2-check-grid label.muted{opacity:.56}.v2-check-grid .v2-check-search,.v2-book-picker .v2-check-search{grid-column:1/-1;background:#fff}.v2-check-grid label span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.v2-check-grid input,.v2-confirm-check input{width:18px!important;min-height:18px!important;height:18px;flex:0 0 18px}.v2-check-grid .v2-check-search input,.v2-book-picker .v2-check-search input{width:100%!important;min-height:28px!important;height:28px;flex:1 1 auto;border:0;outline:0;background:transparent}.v2-confirm-check{min-height:44px;display:flex!important;align-items:flex-start;gap:10px;line-height:1.55}.v2-source-switch{display:flex;align-items:center;justify-content:space-between;gap:12px}.v2-source-switch>span{font-size:10px;font-weight:700}.v2-batch-impact{padding:10px;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;background:#f7faf7}.v2-batch-impact>div{min-width:0;text-align:center}.v2-batch-impact small,.v2-batch-impact strong,.v2-batch-impact span{display:block}.v2-batch-impact small{color:var(--muted);font-size:9px}.v2-batch-impact strong{margin-top:2px;color:var(--p4);font-size:20px;line-height:1.2}.v2-batch-impact span{color:var(--muted);font-size:9px}.v2-source-note{margin:0;padding:9px 11px;border-left:3px solid #8eb6a1;color:#4f6559;background:var(--soft-2);font-size:10px;line-height:1.55}.v2-upload-results{margin:0;padding:0;list-style:none;display:grid;gap:5px}.v2-upload-results li{padding:8px 10px;border-radius:6px;background:var(--soft-2);font-size:10px;line-height:1.5}.v2-upload-results li.failed{color:#8f443d;background:#fff1ee}.v2-score-preview-cover{width:min(210px,100%);margin:0 auto 16px;padding:0;border:1px solid var(--line);background:#fff;color:var(--p4);overflow:hidden}.v2-score-preview-cover img{display:block;width:100%;aspect-ratio:210/297;object-fit:cover;object-position:top}.v2-score-preview-cover span{display:block;padding:10px;font-size:10px;font-weight:700}.v2-page-viewer{min-width:0;min-height:0;background:#27312c;color:#fff;display:flex;flex-direction:column}.v2-page-viewer.fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.v2-page-viewer.compact{min-height:clamp(480px,72vh,820px);border-radius:9px;overflow:hidden}.v2-viewer-toolbar{flex:0 0 58px;min-width:0;padding:6px 10px 6px max(10px,env(safe-area-inset-left));border-bottom:1px solid rgba(255,255,255,.13);display:flex;align-items:center;gap:9px;overflow:hidden}.v2-viewer-meta{min-width:0;flex:1;display:flex;align-items:baseline;gap:8px;overflow:hidden}.v2-viewer-meta strong,.v2-viewer-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2-viewer-meta strong{flex:0 1 auto;font-size:13px}.v2-viewer-meta span{flex:0 2 auto;color:#ffffffad;font-size:9px}.v2-viewer-controls{flex:0 0 auto;display:flex;align-items:center;gap:5px}.v2-viewer-toolbar button{width:38px;min-width:38px;height:42px;padding:0;border:1px solid rgba(255,255,255,.24);border-radius:7px;background:#ffffff14;color:#fff;display:grid;place-items:center;font-size:10px}.v2-viewer-toolbar button:disabled{opacity:.38}.v2-view-mode{padding:2px;border:1px solid rgba(255,255,255,.18);border-radius:8px;display:flex;gap:2px}.v2-view-mode button{width:30px;min-width:30px;height:36px;border:0;background:transparent}.v2-view-mode button.active{color:#19382e;background:#fff}.v2-viewer-page-count{min-width:48px;text-align:center;white-space:nowrap;font-size:9px}.v2-viewer-close{margin-left:2px;border-color:transparent!important;background:transparent!important}.v2-viewer-canvas{min-height:0;flex:1;padding:18px;display:flex;justify-content:center;align-items:flex-start;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y}.v2-viewer-spread{flex:0 0 auto;margin:0 auto;display:grid;align-items:start;gap:10px;transition:width .16s ease,max-width .16s ease}.v2-viewer-spread.single{grid-template-columns:minmax(0,1fr)}.v2-viewer-spread.double{grid-template-columns:repeat(2,minmax(0,1fr))}.v2-viewer-spread img{display:block;width:100%;height:auto;background:#fff;box-shadow:0 8px 30px #00000040;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.v2-viewer-hint{margin:0;padding:8px 14px 12px;color:#ffffffad;text-align:center;font-size:9px}@media(min-width:721px){.v2-score-reader.notes-open>.v2-page-viewer{min-width:0}}.v2-point-account-row{min-width:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center}.v2-point-account-row:last-child{border-bottom:0}.v2-point-account-row>label{min-height:44px;display:grid;place-items:center}.v2-point-account-row>label input{width:18px;height:18px}.v2-point-account-row>button{width:100%;min-height:72px;padding:10px 2px;border:0;background:transparent;color:inherit;display:grid;grid-template-columns:42px minmax(170px,1fr) 76px 76px 18px;align-items:center;gap:12px;text-align:left}.v2-point-account-row>button:hover{color:var(--p4)}.v2-point-account-row>button em{display:grid;color:var(--muted);font-size:9px;font-style:normal}.v2-point-account-row>button em b{color:var(--ink);font-family:Songti SC,serif;font-size:20px}.v2-product-grid,.v2-point-exchange-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.v2-product-grid article,.v2-point-exchange-grid article{min-width:0;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--paper);display:grid;gap:10px;align-content:start}.v2-product-grid article.inactive{opacity:.62}.v2-product-grid article>img,.v2-point-exchange-grid article>img,.v2-product-placeholder{display:block;width:100%;aspect-ratio:4/3;border-radius:7px;object-fit:cover;background:var(--soft-2)}.v2-product-placeholder{display:grid;place-items:center;color:var(--p4)}.v2-product-grid h3,.v2-point-exchange-grid h3{margin:8px 0 4px;font-size:14px}.v2-product-grid strong,.v2-product-grid small,.v2-point-exchange-grid strong,.v2-point-exchange-grid small{display:block}.v2-product-grid small,.v2-point-exchange-grid small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.55}.mobile-cell-label{display:none}@media(max-width:430px){.admin-mobile-header{height:54px;padding-inline:8px;grid-template-columns:76px minmax(0,1fr) 44px 44px}.admin-mobile-header>img{width:72px}.admin-mobile-header strong{font-size:10px}.admin-mobile-header small{font-size:7px}.admin-mobile-header .icon-button{width:44px;height:44px}.admin-mobile-main{padding:13px 11px calc(68px + env(safe-area-inset-bottom));overflow-x:hidden}.admin-mobile-nav{height:62px;padding-bottom:env(safe-area-inset-bottom)}.admin-mobile-nav button{min-width:44px;gap:3px;font-size:8px}.admin-mobile-nav button svg{width:18px;height:18px}.admin-mobile-nav button.active:before{width:26px}.admin-mobile-main .page-header,.admin-mobile-main .v2-page-head{margin-bottom:11px;align-items:flex-start;gap:9px}.admin-mobile-main .page-header h1,.admin-mobile-main .v2-page-head h1{margin-block:3px;font-size:21px!important;line-height:1.25}.admin-mobile-main .page-header p,.admin-mobile-main .v2-page-head p{font-size:9px;line-height:1.5}.admin-mobile-main .v2-page-head>div>span{font-size:8px}.admin-mobile-main .v2-back{min-height:44px}.admin-mobile-main .header-button-group,.admin-mobile-main .v2-head-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.admin-mobile-main .header-button-group .button,.admin-mobile-main .v2-head-actions .v2-action{min-width:0;min-height:44px;padding-inline:8px;justify-content:center;font-size:9px;white-space:normal}.admin-mobile-main .header-button-group>:last-child:nth-child(odd){grid-column:1/-1}.admin-mobile-main .student-filter-metrics{margin-bottom:10px}.admin-mobile-main .student-filter-metrics>button{min-height:66px;padding:9px 10px}.admin-mobile-main .student-filter-metrics>button>span{font-size:8px}.admin-mobile-main .student-filter-metrics>button strong{font-size:20px}.admin-mobile-main .student-filter-metrics>button em{margin-top:2px;font-size:7px}.admin-mobile-main .student-filter-metrics>button:last-child:nth-child(odd){grid-column:1/-1}.admin-mobile-main .page-tabs,.admin-mobile-main .v2-tabs{min-height:44px;height:44px;margin:8px 0 10px;padding-inline:8px;gap:17px;overflow-x:auto}.admin-mobile-main .page-tabs button,.admin-mobile-main .v2-tabs button{min-height:44px;padding-inline:1px;font-size:9px;flex:0 0 auto;white-space:nowrap}.admin-mobile-main .table-surface,.admin-mobile-main .v2-surface{margin-bottom:11px;padding:12px}.admin-mobile-main .table-toolbar{padding:0 0 11px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-mobile-main .table-toolbar .search-box{grid-column:1/-1;width:100%;min-height:44px}.admin-mobile-main .table-toolbar select{width:100%;min-height:44px;font-size:10px}.admin-mobile-main .table-toolbar .toolbar-spacer{display:none}.admin-mobile-main .table-toolbar .result-count{grid-column:1/-1;text-align:right;font-size:9px}.admin-mobile-main .student-table-wrap{overflow:visible}.admin-mobile-main .student-table .table-row{position:relative;min-height:0;margin-top:9px;padding:13px 38px 13px 12px;border:1px solid var(--line);border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 12px;background:var(--paper)}.admin-mobile-main .student-table .student-cell{grid-column:1/-1}.admin-mobile-main .student-table .student-cell b{font-size:12px}.admin-mobile-main .student-table .student-cell small{margin-top:3px;font-size:8px}.admin-mobile-main .student-table .table-row>span:not(.student-cell):not(.student-row-caret){min-width:0;display:block;font-size:10px;line-height:1.45}.admin-mobile-main .student-table .mobile-cell-label{display:block!important;margin:0 0 4px;color:var(--muted);font-size:7px!important}.admin-mobile-main .student-table .student-row-caret{position:absolute;top:18px;right:11px}.admin-mobile-main .student-table.managing .table-row{grid-template-columns:28px repeat(2,minmax(0,1fr));padding-left:9px}.admin-mobile-main .student-table.managing .select-cell{grid-column:1;grid-row:1;align-self:center}.admin-mobile-main .student-table.managing .student-cell{grid-column:2/-1}.admin-mobile-main .student-table.managing .student-category-cell,.admin-mobile-main .student-table.managing .student-level-cell,.admin-mobile-main .student-table.managing .student-identity-cell{grid-column:2}.admin-mobile-main .student-table.managing .student-class-cell,.admin-mobile-main .student-table.managing .student-package-cell{grid-column:3}.admin-mobile-main .former-student-table .table-row{margin-top:9px;padding:13px 38px 13px 12px;border:1px solid var(--line);border-radius:9px;gap:10px 12px;background:var(--paper)}.admin-mobile-main .roster-panel{padding:0}.admin-mobile-main .roster-panel-title{min-height:44px;padding:7px 10px;justify-content:flex-end;align-items:center}.admin-mobile-main .roster-panel-title>div{display:none}.admin-mobile-main .registration-review-list .upgrade-list-row{padding:11px 3px;gap:9px}.admin-mobile-main .schedule-surface{padding:10px;overflow:hidden}.admin-mobile-main .schedule-controls{height:auto;min-height:66px;padding-bottom:9px;display:grid;grid-template-columns:74px minmax(0,1fr) 74px;gap:7px;text-align:center}.admin-mobile-main .schedule-controls button{min-height:44px;justify-content:center}.admin-mobile-main .schedule-controls strong{font-size:11px}.admin-mobile-main .schedule-controls span{grid-column:1/-1;margin:0;font-size:8px}.admin-mobile-main .week-columns{width:100%;min-width:0;display:flex;border-left:0;gap:9px;overflow-x:auto;scroll-snap-type:x mandatory}.admin-mobile-main .week-columns>*{min-width:calc(100vw - 44px);flex:0 0 calc(100vw - 44px);border:1px solid var(--line);scroll-snap-align:start}.admin-mobile-main .schedule-surface .empty-state{min-height:118px;padding:20px 10px}.admin-mobile-main .v2-library-metrics{margin-bottom:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-mobile-main .v2-library-metrics>div,.admin-mobile-main .v2-library-metrics>button{min-height:62px;padding:9px}.admin-mobile-main .v2-library-metrics>:nth-child(odd){border-left:0}.admin-mobile-main .v2-library-metrics>:nth-child(n+3){border-top:1px solid var(--line)}.admin-mobile-main .v2-library-metrics>:last-child:nth-child(odd){grid-column:1/-1}.admin-mobile-main .v2-library-toolbar{margin-bottom:9px;display:grid;grid-template-columns:minmax(0,1fr) 116px;gap:7px}.admin-mobile-main .v2-library-toolbar label{grid-column:1/-1;min-height:44px}.admin-mobile-main .v2-library-toolbar select,.admin-mobile-main .v2-library-toolbar .v2-action{min-width:0;min-height:44px}.admin-mobile-main .v2-score-library{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.admin-mobile-main .v2-score-library>article>button>div:last-child{min-height:99px;padding:9px}.admin-mobile-main .v2-score-library>article>button strong{font-size:13px}.admin-mobile-main .v2-score-select{top:7px;right:7px;width:32px;height:32px}.admin-mobile-main .v2-metric-grid{margin-bottom:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-mobile-main .v2-metric-grid>div{min-height:66px;padding:10px}.admin-mobile-main .v2-metric-grid>div:last-child:nth-child(odd){grid-column:1/-1}.admin-mobile-main .v2-section-head{margin-bottom:10px;align-items:flex-start;flex-wrap:wrap}.admin-mobile-main .v2-section-head h2{font-size:17px}.admin-mobile-main .v2-practice-head input{width:100%;min-height:44px}.admin-mobile-main .v2-practice-list article{min-height:60px;padding:9px 0}.admin-mobile-main .v2-point-account-row{grid-template-columns:30px minmax(0,1fr)}.admin-mobile-main .v2-point-account-row>button{min-height:67px;grid-template-columns:36px minmax(0,1fr) 56px 15px;gap:7px}.admin-mobile-main .v2-point-account-row>button em:nth-of-type(2){display:none}.admin-mobile-main .v2-point-account-row>button em b{font-size:16px}.admin-mobile-main .v2-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-mobile-main .v2-product-grid article{padding:9px}.admin-mobile-main .v2-redemption-list article{grid-template-columns:1fr;gap:8px}.admin-mobile-main .v2-redemption-list .v2-action{min-height:44px}.v2-modal-backdrop{padding:8px}.v2-modal{max-height:calc(100dvh - 16px);border-radius:10px}.v2-modal>header{min-height:65px;padding:12px 14px}.v2-modal header h2{font-size:19px}.v2-modal>footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.v2-form,.v2-form.two{padding:13px;grid-template-columns:1fr;gap:11px}.v2-form input,.v2-form select,.v2-form textarea{min-height:44px;font-size:16px}.v2-check-grid{grid-template-columns:1fr}.v2-page-viewer.compact{min-height:68vh;border-radius:0}.v2-viewer-toolbar{justify-content:flex-start}.v2-viewer-canvas{padding:10px}.v2-viewer-hint{font-size:8px}}:root{--font-ui: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-display: var(--font-ui);--text-title: 30px;--text-section: 18px;--text-body: 13px;--text-label: 12px;--text-help: 10px}html,body,#root,button,input,select,textarea,#root *{font-family:var(--font-ui)}body{font-size:var(--text-body);line-height:1.6;font-weight:400}button,input,select,textarea{letter-spacing:0}button,.button,.v2-action{font-weight:650}h1,h2,h3,strong{font-weight:700}.page-header h1,.v2-page-head h1,.mobile-page-title h1,.student-greeting h1,.student-mine-hero h1{font-size:var(--text-title);line-height:1.22}.section-heading h2,.v2-section-head h2,.upgrade-card h2{font-size:var(--text-section);line-height:1.35}.form-grid label>span,.upgrade-field,.field-label{font-size:var(--text-label);font-weight:650}.field-help,.field-optional,.field-default,.upgrade-card small,.v2-form small{font-size:var(--text-help);line-height:1.55}.metric-row strong,.student-filter-metrics strong,.v2-metric-grid strong,.v2-point-account-row b,.v2-home-points-card strong{font-variant-numeric:tabular-nums}.student-current-comment h3,.v2-score-library>article>button strong{font-family:var(--font-display)}.student-filter-metrics.four{grid-template-columns:repeat(4,minmax(0,1fr))}.review-action-switch,.compact-choice,.package-mode-switch{padding:4px;border:1px solid var(--line-dark);border-radius:9px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;background:var(--soft-2)}.review-action-switch{margin-bottom:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.review-action-switch button,.compact-choice button,.package-mode-switch button{min-height:44px;padding:7px 11px;border:0;border-radius:6px;background:transparent;color:#4e5d55;font-size:12px;font-weight:650}.review-action-switch button.active,.compact-choice button.active,.package-mode-switch button.active{color:#fff;background:var(--p4);box-shadow:0 4px 12px #23886529}.registration-create-form{display:grid;gap:14px}.registration-create-form fieldset,.upgrade-membership{min-width:0;margin:0;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fffefa}.registration-create-form legend,.upgrade-membership legend{padding:0 7px;color:var(--p4-dark);font-size:12px;font-weight:750}.registration-create-form .upgrade-filter-grid{margin-bottom:12px}.registration-create-form .upgrade-field{margin-top:10px}.registration-source-summary{margin-bottom:14px}.registration-empty{padding:22px;color:var(--muted);text-align:center}.registration-link-search-box{min-height:46px;padding:0 12px;border:1px solid var(--line-dark);border-radius:10px;background:#fffefa;display:flex;align-items:center;gap:9px;color:var(--muted)}.upgrade-field .registration-link-search-box input{min-height:44px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.upgrade-field .registration-link-search-box input:focus{outline:0}.registration-link-search-box:focus-within{border-color:var(--p4);box-shadow:0 0 0 3px #2388651f}.registration-link-search>small{color:var(--muted);font-weight:500}.registration-search-empty{margin:-4px 0 10px;padding:10px 12px;border-radius:8px;background:var(--soft-2);color:var(--muted);font-size:12px}.registration-student-picker>label{color:#203c31;font-weight:650}.registration-student-combobox{position:relative}.registration-student-combobox.open .registration-link-search-box{border-color:var(--p4);border-radius:10px 10px 0 0;box-shadow:0 0 0 3px #2388651a}.registration-student-results{position:absolute;z-index:5;top:100%;left:0;right:0;max-height:260px;overflow-y:auto;border:1px solid var(--p4);border-top:0;border-radius:0 0 10px 10px;background:#fff;box-shadow:0 14px 28px #1d3d2d29}.registration-student-results>button{width:100%;min-height:62px;padding:10px 12px;border:0;border-top:1px solid var(--line);background:#fff;color:inherit;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left}.registration-student-results>button:first-child{border-top:0}.registration-student-results>button:hover,.registration-student-results>button.active,.registration-student-results>button[aria-selected=true]{background:#eef6f0}.registration-student-results strong,.registration-student-results small{display:block}.registration-student-results strong{font-size:14px}.registration-student-results small{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.45}.registration-student-results>button>small{margin:0;max-width:250px;text-align:right;overflow-wrap:anywhere}.registration-student-results .registration-search-empty{margin:0;border-radius:0 0 9px 9px}.registration-search-count{color:var(--muted);font-weight:500;line-height:1.5}.registration-selected-student{min-height:64px;padding:10px 12px;border:1px solid #b9d3c1;border-radius:10px;background:#f1f8f3;display:flex;justify-content:space-between;align-items:center;gap:12px}.registration-selected-student span{min-width:0;display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:baseline}.registration-selected-student span>small{grid-column:1/-1;color:var(--p4);font-size:11px;font-weight:750}.registration-selected-student strong{font-size:15px}.registration-selected-student b{color:var(--muted);font-size:12px;font-weight:550}.registration-selected-student button{min-height:40px;padding:0 12px;border:1px solid #a9c5b1;border-radius:8px;background:#fff;color:var(--p4);font:inherit;font-size:12px;font-weight:700;white-space:nowrap}.upgrade-check input,.delete-confirm-check input{accent-color:var(--p4)}.upgrade-membership .package-mode-switch{margin:12px 0}.v2-student-score-grid>button{padding:0 0 11px;overflow:hidden}.v2-student-score-grid>button>.v2-library-cover{width:100%;height:auto;margin:0 0 10px;aspect-ratio:210/297}.v2-student-score-grid>button>.v2-tone,.v2-student-score-grid>button>strong,.v2-student-score-grid>button>small{margin-inline:10px}.v2-student-library-switch{width:min(360px,100%);margin:0 0 14px;padding:4px;border:1px solid var(--line-dark);border-radius:9px;background:var(--soft-2);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.v2-student-library-switch button{min-height:42px;border:0;border-radius:6px;background:transparent;color:#4f5a55}.v2-student-library-switch button.active{background:var(--p4);color:#fff}.v2-student-book-head{margin:0 0 12px;display:flex;justify-content:space-between;align-items:center;gap:10px}.v2-student-book-head strong,.v2-student-book-head small{display:block}.v2-student-book-head small{margin-top:3px;color:var(--muted);font-size:10px}.v2-student-book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.v2-student-book-grid>button{min-width:0;min-height:112px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:inherit;display:grid;grid-template-columns:66px minmax(0,1fr) 18px;align-items:center;gap:10px;text-align:left}.v2-student-book-grid .v2-book-cover{width:66px}.v2-student-book-grid>button>span{min-width:0}.v2-student-book-grid strong,.v2-student-book-grid small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2-student-book-grid strong{margin-top:7px;font-size:13px}.v2-student-book-grid small{margin-top:3px;color:var(--muted);font-size:9px}.v2-student-book-grid>.v2-empty{grid-column:1/-1}.v2-student-book-manager{width:min(780px,100%)}.v2-student-book-body{padding:18px}.v2-student-book-summary{padding-bottom:16px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px}.v2-student-book-summary .v2-book-cover.large{width:150px}.v2-student-book-summary>div:last-child{display:grid;align-content:start;gap:8px}.v2-student-book-summary label>span{display:block;margin-bottom:4px;color:var(--muted);font-size:9px}.v2-student-book-summary input{width:100%;min-height:42px;padding:0 9px;border:1px solid var(--line-dark);border-radius:6px}.v2-student-book-summary label.v2-action{cursor:pointer}.v2-student-book-summary label.v2-action input{position:absolute;width:1px!important;height:1px!important;opacity:0;pointer-events:none}.v2-private-book-section-head{min-height:44px;margin-bottom:8px;align-items:center;flex-direction:row}.v2-private-book-section-head>div{min-width:0}.v2-private-book-section-head h3{margin:0 0 4px}.v2-private-book-section-head small{color:var(--muted);font-size:9px}.v2-private-book-section-head>.v2-action{min-height:38px;padding-inline:13px;flex:0 0 auto}.v2-book-item-actions .v2-book-remove-score{width:auto;padding:0 9px;display:flex;gap:4px}.v2-book-remove-score span{font-size:10px;font-weight:700}.v2-book-remove-help{margin:10px 0 0;color:var(--muted);font-size:9px}.v2-private-book-empty{padding:20px 12px;border:1px dashed #bdd2c4;border-radius:9px;background:var(--soft-2);display:grid;justify-items:center;gap:12px}.v2-private-book-empty>.v2-empty{padding:4px}.v2-student-book-delete{margin-top:6px;padding:16px;border:1px solid #e4c2bd;border-radius:9px;background:#fff8f6;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px}.v2-student-book-delete>div strong,.v2-student-book-delete>div small{display:block}.v2-student-book-delete>div strong{color:#7d403a;font-size:11px}.v2-student-book-delete small{margin-top:4px;color:#856b68;font-size:9px;line-height:1.55}.v2-student-book-delete>small{grid-column:1/-1;margin:0;padding-top:9px;border-top:1px solid #ecd5d1}.v2-book-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;padding:18px;background:#0f1f1894;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:grid;place-items:center}.v2-book-picker-dialog{width:min(560px,100%);max-height:calc(100dvh - 36px);border:1px solid rgba(255,255,255,.48);border-radius:14px;background:var(--paper);box-shadow:0 34px 110px #081b1257;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.v2-book-picker-dialog>header{min-height:86px;padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.v2-book-picker-dialog>header>div{min-width:0}.v2-book-picker-dialog>header span{color:var(--p4);font-size:9px;font-weight:800;letter-spacing:.16em}.v2-book-picker-dialog>header h2{margin:6px 0 3px;font-family:Songti SC,STSong,serif;font-size:22px}.v2-book-picker-dialog>header small{display:block;color:var(--muted);font-size:9px;line-height:1.45}.v2-book-picker-dialog>header>button{width:38px;height:38px;padding:0;border:0;border-radius:50%;background:var(--soft-2);color:var(--ink);display:grid;place-items:center;flex:0 0 auto}.v2-book-picker-body{min-height:0;padding:16px 20px;overflow:auto}.v2-book-picker-body>.v2-book-search{margin-bottom:10px}.v2-book-picker-dialog .v2-book-search-results{max-height:none;margin:0;gap:6px}.v2-book-picker-dialog .v2-book-search-results>label{position:relative;min-height:54px;padding:8px 10px;border:1px solid transparent;border-radius:8px;cursor:pointer;display:grid;grid-template-columns:20px minmax(0,1fr)}.v2-book-picker-dialog .v2-book-search-results>label.selected{border-color:#86ad94;background:#f0f8f2}.v2-book-picker-dialog .v2-book-search-results input{position:absolute;z-index:2;left:10px;top:50%;margin-top:-9px;opacity:0;cursor:pointer}.v2-book-picker-dialog .v2-book-search-results i{width:18px;height:18px;border:1px solid #a7b7ad;border-radius:4px;background:#fff;color:transparent;display:grid;place-items:center}.v2-book-picker-dialog .v2-book-search-results input:checked+i{border-color:var(--p4);background:var(--p4);color:#fff}.v2-book-picker-dialog .v2-book-search-results small{margin-top:3px}.v2-book-picker-empty{margin:18px 0;padding:22px 12px;border:1px dashed var(--line-dark);border-radius:8px;color:var(--muted);background:var(--soft-2);font-size:10px;line-height:1.6;text-align:center}.v2-book-picker-dialog>footer{padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffefafa;display:flex;justify-content:flex-end;gap:9px}.v2-wechat-scan-actions{display:grid;justify-items:center;gap:7px}.v2-wechat-scan-actions p,.v2-wechat-scan-actions small{margin:0;color:var(--muted);font-size:10px}.v2-practice-network-card{padding:17px}.v2-practice-network-card>.v2-section-head{margin-bottom:10px;align-items:center}.v2-practice-network-list{display:grid;gap:7px}.v2-practice-network-list>article{min-height:52px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:9px}.v2-practice-network-list>article>svg{color:var(--p4)}.v2-practice-network-list strong,.v2-practice-network-list small{display:block}.v2-practice-network-list strong{font-size:11px}.v2-practice-network-list small{margin-top:3px;color:var(--muted);font-size:9px}.v2-practice-network-list>article>div{display:flex;gap:5px}.v2-practice-network-list button{min-height:34px;padding:0 10px;border:1px solid var(--line-dark);border-radius:6px;background:#fff;color:var(--p4);font-size:10px}.v2-practice-network-list button.danger{color:#9b493f;border-color:#dfbbb6}.v2-practice-network-list>p{margin:0;padding:13px;border-radius:8px;color:#725f42;background:var(--amber-bg);font-size:10px;line-height:1.6}.v2-practice-network-add{margin-top:10px;display:flex;gap:8px}.v2-practice-network-add input{min-width:0;min-height:42px;padding:0 10px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;flex:1}.v2-book-items article.unavailable{background:#f6f4f1}.v2-book-items article.unavailable .v2-book-score-main{opacity:.68}@media(max-width:430px){:root{--text-title:22px;--text-section:17px;--text-body:13px;--text-label:12px;--text-help:10px}html,body,#root{max-width:100%;overflow-x:hidden}.admin-mobile-header strong{font-size:12px}.admin-mobile-header small{font-size:9px}.admin-mobile-nav button{font-size:10px;line-height:1.2}.admin-mobile-main .page-header p,.admin-mobile-main .v2-page-head p{font-size:11px;line-height:1.55}.admin-mobile-main .v2-page-head>div>span,.eyebrow{font-size:9px}.admin-mobile-main .header-button-group .button,.admin-mobile-main .v2-head-actions .v2-action{font-size:11px}.admin-mobile-main .student-filter-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-mobile-main .student-filter-metrics>button:last-child:nth-child(odd){grid-column:auto}.admin-mobile-main .student-filter-metrics>button>span{font-size:10px}.admin-mobile-main .student-filter-metrics>button em{font-size:9px}.admin-mobile-main .page-tabs button,.admin-mobile-main .v2-tabs button{font-size:11px}.admin-mobile-main .table-toolbar select,.admin-mobile-main .table-toolbar input{font-size:12px}.admin-mobile-main .student-table .student-cell small{font-size:10px}.admin-mobile-main .student-table .mobile-cell-label,.admin-mobile-main .former-student-table .former-cell-label{font-size:9px!important}.admin-mobile-main .student-table .table-row>span:not(.student-cell):not(.student-row-caret),.admin-mobile-main .former-student-table .former-meta-cell{font-size:11px}.danger-target-card{grid-template-columns:repeat(2,minmax(0,1fr))}.danger-target-card span:last-child{grid-column:1/-1}.admin-mobile-main .roster-panel-title{min-height:60px;padding:10px 12px;justify-content:space-between}.admin-mobile-main .roster-panel-title>div{display:block;min-width:0}.admin-mobile-main .roster-panel-title h2{margin:0;font-size:15px}.admin-mobile-main .roster-panel-title p{margin:3px 0 0;font-size:10px;line-height:1.45}.modal-backdrop{padding:8px;align-items:flex-end}.modal{width:100%;max-width:100%;max-height:calc(100dvh - 16px);border-radius:12px 12px 8px 8px}.modal>header{min-height:64px;padding:11px 13px}.modal>header h2{font-size:18px}.modal-content{padding:13px}.modal>footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.modal>footer .button{min-height:44px}.upgrade-dialog input,.upgrade-dialog select,.upgrade-dialog textarea,.form-grid input,.form-grid select,.form-grid textarea{min-height:44px;font-size:16px}.upgrade-filter-grid,.form-grid.two{grid-template-columns:1fr}.review-action-switch{position:sticky;top:0;z-index:2;margin:-2px 0 12px;background:var(--paper)}.review-action-switch button,.compact-choice button,.package-mode-switch button{min-height:44px;font-size:11px}.registration-create-form fieldset,.upgrade-membership{padding:12px}.registration-student-results{position:static;max-height:38dvh;box-shadow:none}.registration-student-results>button{min-height:68px;grid-template-columns:1fr;gap:3px}.registration-student-results>button>small{max-width:none;text-align:left}.registration-selected-student{align-items:stretch;flex-direction:column}.registration-selected-student button{width:100%;min-height:44px}.student-phone-shell,.student-stage,.v2-student-screen{font-size:13px}.student-phone-shell h1,.v2-student-screen h1{font-size:22px;line-height:1.25}.student-phone-shell h2,.v2-student-screen h2{font-size:17px;line-height:1.35}.student-phone-shell p,.v2-student-screen p{line-height:1.6}.student-phone-shell button,.v2-student-screen button{min-height:44px}.student-bottom-nav button{font-size:10px}}#root input[type=checkbox],#root input[type=radio]{width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important;padding:0!important;flex:0 0 18px!important;vertical-align:middle}#root input[type=radio]{width:17px!important;height:17px!important;min-width:17px!important;min-height:17px!important;max-width:17px!important;max-height:17px!important;flex-basis:17px!important}@media(max-width:720px){.v2-score-books{padding:12px;grid-template-columns:1fr}.v2-score-book-card{min-height:104px;grid-template-columns:62px minmax(0,1fr) 18px}.v2-book-cover{width:62px}.v2-book-manager{width:calc(100vw - 16px)}.v2-book-manager-body{grid-template-columns:1fr}.v2-book-manager-body>aside{padding:14px;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px 12px;align-items:start}.v2-book-manager-body>aside .v2-book-cover.large{width:96px;grid-row:1/5}.v2-book-manager-body>aside>small,.v2-book-manager-body>aside>p{margin:0;text-align:left}.v2-book-cover-actions{margin:0}.v2-book-manager-body>main{max-height:none;padding:13px;overflow:visible}.v2-book-meta{grid-template-columns:1fr;align-items:stretch}.v2-book-meta input,.v2-book-meta textarea,.v2-book-danger input,.v2-book-search input{font-size:16px}.v2-book-item-actions button{width:40px;height:44px}.v2-book-item-actions .v2-book-remove-score{width:auto;padding-inline:8px}.v2-book-score-main{min-height:64px}.v2-book-items article{align-items:stretch}.v2-book-item-actions{align-items:center}.v2-student-book-head{align-items:flex-start}.v2-student-book-head .v2-action{flex:0 0 auto}.v2-student-book-grid{grid-template-columns:1fr}.v2-student-book-manager{width:calc(100vw - 16px)}.v2-student-book-body{padding:13px}.v2-student-book-summary{grid-template-columns:96px minmax(0,1fr);gap:11px}.v2-student-book-summary .v2-book-cover.large{width:96px}.v2-student-book-summary input{font-size:16px}.v2-private-book-section-head{align-items:center;flex-direction:row;gap:8px}.v2-private-book-section-head small{display:block;max-width:190px}.v2-private-book-section-head>.v2-action{min-height:40px;padding-inline:11px}.v2-student-book-delete{grid-template-columns:1fr;align-items:stretch}.v2-student-book-delete>.v2-action{width:100%}.v2-student-book-delete>small{grid-column:auto}.v2-book-picker-backdrop{padding:8px;place-items:end center}.v2-book-picker-dialog{width:100%;max-height:calc(100dvh - 16px);border-radius:15px 15px 10px 10px}.v2-book-picker-dialog>header{min-height:76px;padding:13px 14px}.v2-book-picker-dialog>header h2{font-size:19px}.v2-book-picker-body{padding:12px 13px}.v2-book-picker-body .v2-book-search input{font-size:16px}.v2-book-picker-dialog .v2-book-search-results>label{min-height:56px}.v2-book-picker-dialog>footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.v2-book-picker-dialog>footer>.v2-action{min-height:44px;flex:1;padding-inline:9px}.v2-practice-network-card>.v2-section-head{flex-direction:row}.v2-practice-network-list>article{grid-template-columns:22px minmax(0,1fr)}.v2-practice-network-list>article>div{grid-column:2}.v2-practice-network-list button{min-height:40px;flex:1}.v2-practice-network-add{align-items:stretch;flex-direction:column}.v2-practice-network-add input{min-height:44px;font-size:16px}.v2-practice-network-add>.v2-action{width:100%}.v2-book-create-body{max-height:calc(100dvh - 166px)}.v2-book-add-panel{margin:0 13px 14px;padding:11px}.birthday-selects{grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,1fr));gap:6px}.birthday-selects select{padding-inline:5px;font-size:16px}.availability-simple-row{grid-template-columns:75px minmax(0,1fr);padding:7px;gap:5px 7px}.availability-simple-row>input,.availability-other>input{font-size:16px}.availability-simple-row>small{grid-column:1/-1;padding-left:25px}.v2-student-book-create{width:calc(100vw - 16px)}.v2-student-book-create-body{max-height:calc(100dvh - 150px);padding:12px}.v2-create-book-score-list{max-height:36dvh}.v2-student-book-create>footer{flex-wrap:wrap}.v2-create-book-count{flex:1 0 100%}.v2-viewer-toolbar{flex-basis:54px;padding:5px 6px;gap:5px}.v2-viewer-meta{gap:5px}.v2-viewer-meta strong{font-size:11px}.v2-viewer-meta span{display:none}.v2-viewer-controls{gap:3px}.v2-viewer-toolbar button{width:34px;min-width:34px;height:40px}.v2-view-mode button{width:29px;min-width:29px}.v2-viewer-page-count{min-width:43px;font-size:8px}}@media(max-width:390px){.v2-viewer-toolbar{padding-inline:4px}.v2-viewer-meta strong{max-width:72px}.v2-viewer-toolbar button{width:32px;min-width:32px}.v2-view-mode button{width:27px;min-width:27px}.v2-viewer-page-count{min-width:39px}.v2-book-manager-body>aside{grid-template-columns:82px minmax(0,1fr)}.v2-book-manager-body>aside .v2-book-cover.large{width:82px}.v2-book-item-actions{gap:2px}.v2-book-item-actions button{width:36px}.v2-book-score-main{grid-template-columns:26px minmax(0,1fr) 14px;gap:6px}}.wn-card{margin:16px 0;padding:22px;border:1px solid #e4e8e5;border-radius:16px;background:#fff;min-width:0;overflow-wrap:anywhere}.wn-card h2,.wn-card h3{margin:0 0 10px}.wn-card p{line-height:1.7}.wn-card small{display:block;color:#64756e;line-height:1.6}.wn-disclosure{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;background:none;border:0;padding:10px 0}.wn-disclosure h2{margin:0}.wn-form{display:grid;gap:16px;margin-top:16px}.wn-field{display:grid;gap:7px}.wn-field input,.wn-field select,.wn-field textarea,.wn-field-row input,.wn-field-row select,.wn-filters select{width:100%;min-width:0;padding:11px;border:1px solid #cdd9d2;border-radius:8px;background:#fff}.wn-field textarea{min-height:85px}.wn-check{display:flex;align-items:center;gap:10px;line-height:1.7;padding:6px 0}.wn-check input{width:18px;height:18px;flex-shrink:0}.wn-rules{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin:16px 0}.wn-card fieldset{border:1px solid #e2e9e5;border-radius:10px;padding:15px;margin:12px 0}.wn-field-row{display:grid;grid-template-columns:1.4fr 1.4fr 70px auto;gap:8px;margin:10px 0}.wn-template{border-top:1px solid #e6ece8;padding:8px 0}.wn-error{color:#a43030;background:#fff2ef;padding:12px;border-radius:8px}.wn-status-grid,.wn-filters,.wn-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:15px 0}.wn-status-grid span,.wn-counts span{background:#f0f5f2;border-radius:6px;padding:6px 9px;font-size:13px}.wn-event{display:block;width:100%;text-align:left;background:#fff;border:1px solid #e0e7e2;border-radius:10px;padding:16px;margin:12px 0}.wn-event strong{font-size:16px}.wn-counts{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.wn-detail{background:#f7f9f7;border:1px solid #d8e3dc;border-radius:12px;padding:16px;margin:18px 0}.wn-recipient{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;padding:14px 0;border-bottom:1px solid #e0e7e2}.wn-recipient small{grid-column:1/-1}.wn-card button:not(.wn-event):not(.wn-disclosure),.wn-course button{min-height:40px}.wn-course{border:1px solid #d9e5de;border-radius:12px;padding:12px;margin:16px 0}.wn-course>button{border:0;background:#edf5ef;color:#265b3e;padding:8px 14px;border-radius:8px}.wn-readiness a,.wn-readiness small{display:block;margin-top:8px}.wn-landing{max-width:720px;margin:0 auto;padding:28px 18px}.wn-landing header{display:flex;align-items:center;gap:12px}.wn-landing header img{width:48px;height:48px;object-fit:contain}.wn-landing dl{display:grid;grid-template-columns:90px 1fr;gap:12px;line-height:1.7}.wn-landing dt{color:#627168}.wn-landing dd{margin:0}.wn-home{display:block;margin-top:22px}.wn-notice{background:#fff3dc;padding:12px;border-radius:8px}.wn-empty{color:#69796f;padding:24px 0}.wn-landing h1{font-size:26px}.wn-actions button{border:1px solid #ccd8d0;background:#fff;border-radius:8px;padding:8px 12px}@media(max-width:600px){.wn-card{padding:16px}.wn-rules{grid-template-columns:1fr}.wn-disclosure{align-items:flex-start}.wn-disclosure span{font-size:12px;max-width:45%}.wn-field-row,.wn-recipient{grid-template-columns:1fr 1fr}.wn-recipient>span:last-of-type{grid-column:1/-1}.wn-landing{padding:18px 12px}.wn-filters{align-items:stretch;flex-direction:column}.wn-status-grid{gap:6px}.wn-card button{white-space:normal}}.wn-card button:not(.button):not(.wn-disclosure):not(.wn-event),.wn-course .wn-form>button{border:1px solid #c8d9ce;background:#f6faf7;color:#225d43;border-radius:8px;padding:9px 13px;margin:4px 6px 4px 0;cursor:pointer}.wn-card button:disabled,.wn-course button:disabled{opacity:.5;cursor:not-allowed}.wn-check input{accent-color:#208965}.wn-card a{color:#208965;text-underline-offset:3px}.wn-card>h3{margin-top:22px}.wn-card button:focus-visible,.wn-course button:focus-visible,.wn-card input:focus-visible,.wn-card select:focus-visible{outline:3px solid #9dcbb4;outline-offset:2px}.wn-payment-actions{display:flex;flex-wrap:wrap;gap:8px;max-width:100%;align-items:center}.wn-payment-actions button{border:1px solid #c8d9ce;background:#f6faf7;color:#225d43;border-radius:8px;min-height:40px;padding:8px 10px}.wn-payment-actions small,.wn-payment-actions .wn-error{flex-basis:100%}.wn-trial-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:4px 16px;max-height:280px;overflow:auto;padding:8px}.wn-course-rows{display:grid;gap:14px}.wn-course-row{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(170px,1fr) minmax(170px,1fr);gap:12px 18px;border:1px solid #dbe6df;border-radius:10px;padding:14px;background:#fbfdfb}.wn-course-row>.wn-check,.wn-course-row>strong,.wn-course-row>small{grid-column:1/-1}.wn-evidence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:18px}.wn-evidence span{padding:10px;border-radius:8px;background:#f0f5f2}.wn-change-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.wn-arrangement{border:1px solid #dce7e0;border-radius:12px;padding:14px}.wn-arrangement h2{font-size:18px}.wn-arrangement dl{grid-template-columns:78px 1fr}@media(max-width:720px){.wn-course-row,.wn-evidence,.wn-change-detail{grid-template-columns:1fr}.wn-course-row>.wn-check,.wn-course-row>strong,.wn-course-row>small{grid-column:1}.wn-trial-list{grid-template-columns:1fr}}.v2-practice-summary>.v2-action{flex-shrink:0;white-space:nowrap}.v2-student-library-switch{width:min(440px,100%);grid-template-columns:repeat(3,minmax(0,1fr))}.v2-student-library-switch button{display:flex;justify-content:center;align-items:center;gap:5px;white-space:nowrap}.student-score-card{min-width:0;position:relative;border:1px solid var(--line);border-radius:9px;background:#fffefa;overflow:hidden}.student-score-open{display:block;width:100%;height:100%;border:0;padding:0 0 14px;background:transparent;color:inherit;text-align:left}.student-score-open>.v2-library-cover{width:100%;height:auto;margin:0 0 10px;aspect-ratio:210/297}.student-score-open>.v2-tone,.student-score-open>strong,.student-score-open>small{margin-inline:10px}.student-score-open>strong{overflow-wrap:anywhere}.student-score-open>small{font-size:10px;line-height:1.6}.student-score-card.unavailable .student-score-open{opacity:.6}.score-favorite-button{flex:0 0 auto;width:44px;height:44px;border:1px solid #dbded5;border-radius:50%;background:#fffefa;color:#696f62;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:background .15s,color .15s}.score-favorite-button.saved{background:#fff0ec;color:#a4423c;border-color:#efd1c7}.score-favorite-button:hover{border-color:#ac6b58}.score-favorite-button:focus-visible,.teacher-favorite-count:focus-visible{outline:3px solid #bc7a61;outline-offset:2px}.score-favorite-button:disabled{opacity:.5;cursor:wait}.score-favorite-button.with-label{width:auto;border-radius:22px;padding-inline:12px}.student-score-card>.score-favorite-button{position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #24382a18}.v2-viewer-controls>.score-favorite-button{width:40px;height:40px;color:#fff4e6;border-color:#ffffff40;background:transparent}.v2-viewer-controls>.score-favorite-button.saved{color:#ffa79c;background:#ffffff12}.student-favorites-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0 16px;padding:18px;border:1px solid #e7dacf;border-radius:10px;background:#f8f0e7;color:#984b3b}.student-favorites-heading h2{margin:0 0 7px;color:#394636;font-size:18px;font-family:Songti SC,serif}.student-favorites-heading p,.favorites-hint{margin:5px 0;color:var(--muted);font-size:11px;line-height:1.7}.favorites-empty{padding:38px 16px;text-align:center;color:#837669}.favorites-empty>svg{color:#bb8f7a}.favorites-empty p{font-size:13px;line-height:1.8}.favorites-empty .v2-action{margin:16px auto 0}.favorites-error{margin:10px 0;padding:12px;border:1px solid #e8bbae;border-radius:8px;display:flex;align-items:center;gap:10px;color:#994234;background:#fff5ef;font-size:12px}.favorites-error button{flex-shrink:0;min-height:40px;padding:0 12px}.v2-student-book-manager .v2-book-score-main{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px}.v2-student-book-manager .v2-book-score-main strong,.v2-student-book-manager .v2-book-score-main small{max-width:100%}.v2-book-order{width:24px;flex-shrink:0;color:var(--muted);text-align:center;font-size:12px}.official-score-read{flex-shrink:0;width:36px;border:0;background:transparent;color:var(--p4)}.v2-score-library>article>button.teacher-favorite-count{min-height:44px;padding:8px 12px;border-top:1px solid var(--line);color:#8c5144;display:flex;align-items:center;gap:6px;font-size:11px}.teacher-favorite-count>svg:last-child{margin-left:auto}.teacher-favorite-detail{display:flex;align-items:center;gap:9px;width:100%;min-height:48px;margin:14px 0;padding:10px 14px;border:1px solid #e3d8cb;border-radius:8px;color:#8c5144;background:#fbf5ee;text-align:left}.teacher-favorite-detail>svg:last-child{margin-left:auto}.favorite-students-modal{width:min(520px,calc(100vw - 24px))}.favorite-students-modal header h2{overflow-wrap:anywhere;font-size:19px}.favorite-students-modal header p{margin:6px 0 0;color:var(--muted);font-size:12px}.favorite-report-body{padding:18px;overflow-y:auto;max-height:65dvh}.favorites-search{display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid var(--line-dark);border-radius:8px;background:#fffefa;color:var(--muted)}.favorites-search input{min-width:0;width:100%;min-height:44px;padding:8px 0;border:0;background:transparent;outline:0;font-size:14px}.favorites-search:focus-within{outline:2px solid #799879;outline-offset:2px}.favorite-report-status{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;color:var(--muted);font-size:11px}.favorite-report-status button{display:flex;align-items:center;gap:4px;min-height:40px;padding:0 8px;border:0;background:transparent;color:var(--p4)}.favorite-report-status [role=alert]{color:#994234}.favorite-report-list{margin:0;padding:0;list-style:none}.favorite-report-list li{display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 0;border-bottom:1px solid var(--line)}.favorite-report-list li>div{flex:1;min-width:0}.favorite-report-list strong{display:block;font-size:14px;overflow-wrap:anywhere}.favorite-report-list small{display:block;color:var(--muted);font-size:11px;margin-top:6px;line-height:1.6}.favorite-report-list svg{flex-shrink:0;color:#b97660}.favorite-avatar{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#e9ede3;color:#526948;font-size:12px}.favorite-unavailable{font-size:10px;color:var(--muted);flex-shrink:0}.student-favorite-profile{padding:22px}.favorite-profile-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.favorite-profile-heading>svg{color:#a75c45;flex-shrink:0}.favorite-profile-heading h2{margin:0;font-size:18px}.favorite-profile-heading p{margin:7px 0 0;font-size:12px;color:var(--muted);line-height:1.7}@media(max-width:720px){.v2-student-library-switch button{font-size:12px;gap:4px;padding-inline:3px}.student-favorites-heading{padding:14px}.student-favorites-heading h2{font-size:16px}.student-favorite-profile{padding:15px}.favorite-profile-heading h2{font-size:16px}.favorite-report-body{padding:14px}.favorites-search input{font-size:16px}}.v2-student-score-grid.favorite-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.favorite-grid .student-score-open{display:grid;grid-template-columns:60px minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:12px;align-items:start;min-height:112px;padding:12px 54px 12px 12px}.favorite-grid .student-score-open>.v2-library-cover{grid-column:1;grid-row:1/4;width:60px;height:85px;margin:0;border-radius:4px}.favorite-grid .student-score-open>.v2-tone{grid-column:2;justify-self:start;margin:0}.favorite-grid .student-score-open>strong{grid-column:2;margin:7px 0 0;font-size:15px}.favorite-grid .student-score-open>small{grid-column:2;margin:5px 0 0;font-size:10px}.favorite-grid .student-score-card>.score-favorite-button{top:50%;right:8px;transform:translateY(-50%);box-shadow:none}@media(max-width:720px){.v2-student-score-grid.favorite-grid{grid-template-columns:1fr}}.session-gate{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:12px;padding:32px;color:#173d35;background:#f4f7f4;text-align:center}.session-gate strong{font-size:20px}.session-gate small{color:#6c7d78}.session-gate.session-error{color:#8a3028}.page-loading{min-height:46vh;display:grid;place-items:center;color:#6c7d78;font-weight:700}.page-load-error{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:14px 16px;border:1px solid #e7b7ac;border-radius:14px;color:#8a3028;background:#fff5f2}.page-load-error span{display:grid;gap:3px;flex:1}.page-load-error small{color:#9b5d55}
