:root{font-family:Microsoft YaHei,PingFang SC,Noto Sans CJK SC,system-ui,-apple-system,sans-serif;color:#171a21;background:#f5f7fa;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #171a21;--muted-ink: #667085;--subtle-ink: #667085;--primary: #235fc7;--primary-strong: #174a9f;--primary-soft: #edf4ff;--surface: #ffffff;--surface-subtle: #f8fafc;--canvas: #f5f7fa;--border: #dfe4ea;--border-strong: #ccd3dc;--danger: #c73535;--danger-strong: #982828;--danger-soft: #fff1f0;--warning: #a64f18;--warning-soft: #fff6e6;--success: #277553;--success-soft: #eaf7f0;--shadow-sm: 0 5px 18px rgba(24, 39, 75, .07);--shadow-lg: 0 24px 70px rgba(24, 39, 75, .18);--radius: 14px;--sidebar-width: 232px}*{box-sizing:border-box}html{min-width:320px;background:var(--canvas)}body{margin:0;min-width:320px;min-height:100vh;background:var(--canvas)}body.modal-open{overflow:hidden}button,input,select{font:inherit}button,select{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.5}button,a,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(35,95,199,.22);outline-offset:2px}.app-select{min-width:0;width:100%}.app-select-native{display:none}.app-select-trigger{display:flex;width:100%;min-height:44px;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border-strong);border-radius:9px;color:var(--ink);background:var(--surface);padding:0 12px;text-align:left;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.app-select-trigger:hover{border-color:#a8b2bf;background:#fbfcfe}.app-select-trigger:focus-visible,.app-select.is-open .app-select-trigger{border-color:var(--primary);outline:0;box-shadow:0 0 0 3px #235fc721}.app-select-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-select-trigger>svg{flex:0 0 auto;color:#52647d;transform:rotate(90deg);transition:transform .16s ease}.app-select.is-open .app-select-trigger>svg{transform:rotate(-90deg)}.app-select-menu{position:fixed;z-index:1200;display:grid;max-height:min(280px,calc(100dvh - 24px));overflow-y:auto;gap:2px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);padding:6px;box-shadow:0 16px 40px #18274b2b}.app-select-option{display:flex;width:100%;min-height:40px;align-items:center;justify-content:space-between;gap:10px;border:0;border-radius:7px;color:var(--ink);background:transparent;padding:8px 10px;text-align:left;line-height:1.45}.app-select-option:hover,.app-select-option.is-active{background:var(--surface-subtle)}.app-select-option.is-selected{color:var(--primary-strong);background:var(--primary-soft);font-weight:700}.app-select-option>span{min-width:0;overflow-wrap:anywhere}.app-select-option>svg{flex:0 0 auto;color:var(--primary)}.app-select-option:disabled{opacity:.45}.select-menu-enter-active,.select-menu-leave-active{transition:opacity .14s ease,transform .14s cubic-bezier(.16,1,.3,1);transform-origin:top center}.select-menu-enter-from,.select-menu-leave-to{opacity:0;transform:translateY(-4px) scale(.985)}::selection{color:#fff;background:var(--primary)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:10px;background:#c8d0da;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}h1,h2,h3,p{margin-top:0}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;display:flex;width:var(--sidebar-width);flex-direction:column;border-right:1px solid var(--border);background:#fbfcfd;padding:24px 16px 18px}.brand-block,.mobile-brand{display:flex;align-items:center;gap:11px}.brand-block{padding:0 8px 22px}.brand-mark{display:inline-grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:13px;color:#fff;background:var(--ink);box-shadow:0 8px 20px #171a2129}.brand-block strong{display:block;font-size:18px;letter-spacing:-.02em}.brand-block small{display:block;margin-top:3px;color:var(--subtle-ink);font-size:12px}.side-nav{display:grid;gap:6px}.side-nav button,.sidebar-foot button{position:relative;display:flex;min-height:46px;align-items:center;gap:12px;border:0;border-radius:11px;color:#515968;background:transparent;padding:0 13px;text-align:left;transition:color .18s ease,background-color .18s ease}.side-nav button:hover,.sidebar-foot button:hover{color:var(--ink);background:#f0f3f7}.side-nav button.active,.sidebar-foot button.active{color:#174a9f;background:#eaf2ff;font-weight:700}.nav-count{min-width:22px;margin-left:auto;border-radius:999px;color:#fff;background:var(--danger);padding:2px 6px;font-size:11px;font-style:normal;text-align:center}.sidebar-foot{display:grid;gap:8px;margin-top:auto}.sidebar-foot p{margin:0;padding-left:13px;color:var(--subtle-ink);font-size:11px}.app-main{min-height:100vh;margin-left:var(--sidebar-width)}.app-main>main{width:100%}.page{width:min(100%,1440px);margin:0 auto;padding:38px 42px 80px}.page-heading{display:flex;min-height:64px;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.page-heading h1{margin-bottom:8px;color:var(--ink);font-size:clamp(26px,2.3vw,34px);font-weight:760;letter-spacing:-.035em;line-height:1.2}.page-heading p{margin-bottom:0;color:var(--muted-ink);font-size:14px;line-height:1.7}.heading-date{display:inline-flex;min-height:40px;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;color:#4e5766;background:var(--surface);padding:0 13px;font-size:13px;box-shadow:var(--shadow-sm)}.primary-button,.secondary-button,.text-button,.filter-toggle,.risk-count-button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;border-radius:10px;padding:0 16px;font-weight:650;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .15s ease}.primary-button:active,.secondary-button:active,.status-toggle:active,.filter-toggle:active{transform:scale(.98)}.primary-button{border:1px solid var(--primary);color:#fff;background:var(--primary);box-shadow:0 8px 18px #235fc72b}.primary-button:hover{border-color:var(--primary-strong);background:var(--primary-strong)}.secondary-button{border:1px solid var(--border-strong);color:#3c4553;background:var(--surface)}.secondary-button:hover{border-color:#aab4c1;color:var(--ink);background:#f8fafc}.secondary-button.compact{min-height:34px;border-radius:8px;padding:0 12px;font-size:13px}.text-button{min-height:34px;border:0;color:var(--primary);background:transparent;padding:0 5px;font-size:13px}.text-button:hover{color:var(--primary-strong);background:var(--primary-soft)}.danger-text{color:var(--danger)}.danger-text:hover{color:var(--danger-strong);background:var(--danger-soft)}.danger-button{border-color:#e5b8b4;color:var(--danger)}.danger-confirm-button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;border:1px solid var(--danger);border-radius:10px;color:#fff;background:var(--danger);padding:0 16px;font-weight:700}.danger-confirm-button:hover{border-color:var(--danger-strong);background:var(--danger-strong)}.full-width{width:100%}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;margin:-1px;clip:rect(0,0,0,0);white-space:nowrap}.icon-button{display:inline-grid;width:40px;height:40px;flex:0 0 auto;place-items:center;border:0;border-radius:10px;color:#5b6472;background:transparent;padding:0;transition:color .18s ease,background-color .18s ease}.icon-button:hover{color:var(--ink);background:#eef1f5}.surface-panel,.data-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.attendance-toolbar{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(120px,.48fr) minmax(280px,1.45fr) auto;align-items:end;gap:14px;padding:18px}.compact-field,.field{display:grid;gap:7px}.compact-field>span,.field>span,.calculated-field>span{color:#505968;font-size:13px;font-weight:650}.field>span i{color:var(--subtle-ink);font-size:11px;font-style:normal;font-weight:400}.compact-field input,.compact-field select,.field input,.field select,.filter-bar select,.search-field{min-height:44px;border:1px solid var(--border-strong);border-radius:9px;color:var(--ink);background:#fff}.compact-field input,.compact-field select,.field input,.field select,.filter-bar select{width:100%;padding:0 12px}.compact-field input:hover,.compact-field select:hover,.field input:hover,.field select:hover,.filter-bar select:hover{border-color:#a8b2bf}.compact-field input:focus,.compact-field select:focus,.field input:focus,.field select:focus,.filter-bar select:focus{border-color:var(--primary)}.toolbar-status{display:flex;min-height:44px;align-items:center;gap:8px;color:#7b5d22;padding:0 6px;font-size:13px;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;background:#d69b31;box-shadow:0 0 0 4px #fff3d9}.toolbar-status.is-done{color:var(--success)}.toolbar-status.is-done .status-dot{background:var(--success);box-shadow:0 0 0 4px var(--success-soft)}.attendance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#ffffff8a}.attendance-summary>div{position:relative;display:flex;min-height:88px;align-items:baseline;gap:6px;padding:21px 24px}.attendance-summary>div:not(:last-child):after{position:absolute;top:20px;right:0;width:1px;height:46px;background:var(--border);content:""}.attendance-summary span{align-self:flex-start;margin-right:auto;color:var(--muted-ink);font-size:13px}.attendance-summary strong{color:var(--ink);font-size:29px;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.attendance-summary small{color:var(--muted-ink);font-size:13px}.attendance-summary .primary-metric strong{color:var(--primary)}.attendance-list{overflow:hidden}.list-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding:20px 22px}.list-header h2{margin-bottom:5px;font-size:18px;letter-spacing:-.02em}.list-header p{margin-bottom:0;color:var(--muted-ink);font-size:13px}.inline-alert{display:inline-flex;min-height:32px;align-items:center;gap:6px;border-radius:8px;color:var(--danger);background:var(--danger-soft);padding:0 10px;font-size:12px;font-weight:650}.attendance-row{display:grid;grid-template-columns:1.5fr .8fr 1fr .8fr 1fr;min-height:67px;align-items:center;gap:16px;border-bottom:1px solid #edf0f3;padding:8px 22px;transition:background-color .18s ease}.attendance-row:last-child{border-bottom:0}.attendance-row:not(.table-head):hover{background:#f8fafc}.attendance-row.table-head{min-height:42px;color:var(--muted-ink);background:#fafbfc;font-size:12px;font-weight:650}.attendance-row.is-absent{color:var(--subtle-ink);background:#f8f9fa}.attendance-row.is-balance-warning:not(.is-absent){background:#fffdf9}.student-name-cell,.student-link,.student-card-head{display:flex;align-items:center;gap:11px}.avatar,.large-avatar,.mini-avatar{display:inline-grid;flex:0 0 auto;place-items:center;border-radius:10px;color:#34527a;background:#e9eef5;font-weight:750}.avatar{width:38px;height:38px;font-size:12px}.large-avatar{width:56px;height:56px;border-radius:15px;font-size:16px}.warning-name{color:var(--danger)!important}.muted-text{color:var(--muted-ink);font-size:13px}.deduction-value{color:#323946;font-size:14px;font-variant-numeric:tabular-nums}.attendance-actions,.row-actions,.risk-actions{display:flex;align-items:center;gap:8px}.status-toggle{min-width:78px;min-height:38px;border:1px solid #b9d9c8;border-radius:9px;color:var(--success);background:var(--success-soft);font-size:13px;font-weight:700;transition:transform .15s ease,background-color .18s ease,color .18s ease,border-color .18s ease}.status-toggle.is-absent{border-color:#e3b6b3;color:var(--danger);background:var(--danger-soft)}.balance-badge{display:inline-flex;width:fit-content;min-height:28px;align-items:center;border:1px solid #d6dce4;border-radius:999px;color:#596271;background:#f8fafc;padding:0 9px;font-size:12px;font-weight:650;white-space:nowrap}.balance-badge.is-low{border-color:#efc7a1;color:var(--warning);background:var(--warning-soft)}.balance-badge.is-empty{border-color:#e3b6b3;color:var(--danger);background:var(--danger-soft)}.balance-badge.is-debt{border-color:#d99b95;color:var(--danger-strong);background:#ffe9e7}.filter-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.search-field{display:flex;min-width:260px;flex:1;align-items:center;gap:9px;padding:0 12px;color:var(--subtle-ink)}.search-field:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #235fc71f}.search-field input{width:100%;height:42px;border:0;outline:0;color:var(--ink);background:transparent}.filter-bar select{width:auto;min-width:150px}.data-panel{overflow:auto}.data-table{width:100%;border-collapse:collapse;color:#3a424f;font-size:13px;text-align:left}.data-table th{height:46px;color:var(--muted-ink);background:#fafbfc;padding:0 16px;font-size:12px;font-weight:650;white-space:nowrap}.data-table td{height:70px;border-top:1px solid #edf0f3;padding:10px 16px;vertical-align:middle}.data-table tbody tr{transition:background-color .18s ease}.data-table tbody tr:hover{background:#f8fafc}.data-table .warning-row{background:#fffdf9}.data-table .paused-row{color:#667085;background:#f7f8fa}.data-table .debt-row{background:#fff8f7}.data-table .paused-row .avatar{color:#5d6673;background:#e8ebef}.student-status-badge{display:inline-flex;width:fit-content;min-height:28px;align-items:center;border:1px solid var(--border-strong);border-radius:999px;padding:0 9px;font-size:12px;font-weight:650;white-space:nowrap}.student-status-badge.is-paused{color:#596271;background:#f1f3f5}.student-status-badge.is-normal{border-color:#b9e4d4;color:#17745a;background:#eaf8f3}.student-status-badge.is-low{border-color:#f2d29e;color:#b96200;background:#fff7e9}.student-status-badge.is-empty,.student-status-badge.is-debt{border-color:#efb9bd;color:#b52831;background:#fff0f1}.student-status-stack{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px}.debt-value{color:var(--danger-strong)!important}.reactivate-button{border-color:#aec5e8;color:var(--primary-strong);background:#f6f9ff}.stats-row-actions{justify-content:flex-end;white-space:nowrap}.date-scope-bar{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;padding:16px 18px}.date-scope-bar .compact-field{flex:0 0 170px}.date-preset-field{flex-basis:180px!important}.date-scope-result{display:grid;justify-items:end;gap:2px;min-width:190px;margin-left:auto}.date-scope-result span,.date-scope-result small{color:var(--muted-ink);font-size:11px}.date-scope-result strong{font-size:20px;font-variant-numeric:tabular-nums}.date-scope-result.has-error span{color:var(--danger)}.debt-bar{display:flex;align-items:center;gap:22px;margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:15px 18px;box-shadow:var(--shadow-sm)}.debt-bar.has-debt{border-color:#e2b7b2;background:#fff9f8}.debt-title{display:flex;min-width:230px;align-items:center;gap:11px}.debt-icon{display:inline-grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:10px;color:var(--danger);background:var(--danger-soft)}.debt-title strong{display:block;margin-bottom:3px;font-size:14px}.debt-title p{margin:0;color:var(--muted-ink);font-size:11px}.debt-metrics{display:flex;flex:1;align-items:center;justify-content:center;gap:clamp(18px,3vw,42px)}.debt-metrics span{display:grid;gap:3px;min-width:72px}.debt-metrics small{color:var(--muted-ink);font-size:11px}.debt-metrics strong{color:var(--danger-strong);font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}.debt-list-button{flex:0 0 auto}.numeric{font-variant-numeric:tabular-nums;white-space:nowrap}.align-right{text-align:right!important}.student-link,.plain-link,.student-card-body,.stat-card-main,.attendance-card-main{border:0;color:inherit;background:transparent;padding:0;text-align:left}.student-link span:last-child{display:grid;gap:3px}.student-link strong,.plain-link{color:var(--ink);font-weight:700}.student-link small,.table-secondary{display:block;color:var(--subtle-ink);font-size:11px}.plain-link:hover{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.group-label{display:inline-block;max-width:190px;overflow:hidden;color:#515968;text-overflow:ellipsis;white-space:nowrap}.group-list{display:grid;gap:12px}.group-row{display:grid;grid-template-columns:minmax(260px,1.4fr) 100px minmax(160px,.8fr) auto;min-height:94px;align-items:center;gap:22px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:16px 18px;box-shadow:var(--shadow-sm)}.group-row-main{display:flex;align-items:center;gap:14px}.group-mark,.setting-icon,.risk-icon{display:inline-grid;width:46px;height:46px;flex:0 0 auto;place-items:center;border-radius:12px;color:#35567e;background:#eaf0f7}.group-row h2,.setting-row h2{margin-bottom:5px;font-size:16px;letter-spacing:-.015em}.group-row p,.setting-row p{margin-bottom:0;color:var(--muted-ink);font-size:12px;line-height:1.6}.group-count{display:grid;gap:2px}.group-count strong{font-size:24px;font-variant-numeric:tabular-nums}.group-count span{color:var(--muted-ink);font-size:12px}.group-student-preview{display:flex;align-items:center;padding-left:7px}.mini-avatar{width:31px;height:31px;margin-left:-7px;border:2px solid #fff;border-radius:50%;font-size:11px}.group-student-preview small{margin-left:7px;color:var(--muted-ink);font-size:11px}.group-view-switch{margin-bottom:18px}.group-attendance-toolbar{display:grid;grid-template-columns:210px auto minmax(260px,1fr);align-items:end;gap:12px;margin-bottom:14px;padding:16px 18px}.group-attendance-toolbar .secondary-button{min-width:98px}.group-attendance-date{display:grid;justify-items:end;gap:2px}.group-attendance-date span,.group-attendance-date small{color:var(--muted-ink);font-size:11px}.group-attendance-date strong{font-size:18px;font-variant-numeric:tabular-nums}.group-attendance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px;overflow:hidden}.group-attendance-summary article{display:grid;min-height:92px;align-content:center;gap:7px;padding:16px 20px}.group-attendance-summary article+article{border-left:1px solid var(--border)}.group-attendance-summary span{color:var(--muted-ink);font-size:12px}.group-attendance-summary strong{font-size:25px;font-variant-numeric:tabular-nums}.group-attendance-summary strong small{margin-left:4px;color:var(--muted-ink);font-size:11px;font-weight:500}.group-attendance-summary .present-value{color:var(--success)}.group-attendance-summary .absent-value{color:var(--danger-strong)}.group-attendance-panel{overflow:hidden}.group-attendance-heading{display:flex;min-height:78px;align-items:center;justify-content:space-between;gap:18px;padding:15px 20px}.group-attendance-heading h2{margin-bottom:4px;font-size:17px}.group-attendance-heading p{margin:0;color:var(--muted-ink);font-size:12px}.attendance-legend{display:flex;align-items:center;gap:16px;color:var(--muted-ink);font-size:12px}.attendance-legend span{display:inline-flex;align-items:center;gap:6px}.attendance-legend i{width:12px;height:6px;border-radius:3px}.present-swatch,.attendance-bar-fill.is-present{background:var(--success)}.absent-swatch,.attendance-bar-fill.is-absent{background:var(--danger)}.group-attendance-row{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(360px,1.5fr) 90px;min-height:102px;align-items:center;gap:22px;border-top:1px solid var(--border);padding:16px 20px}.group-attendance-row.has-no-session{background:#fafbfc}.group-attendance-identity h3{margin-bottom:5px;overflow-wrap:anywhere;font-size:14px}.group-attendance-identity p{margin:0;color:var(--muted-ink);font-size:11px}.group-attendance-bars{display:grid;gap:9px}.attendance-bar-line{display:grid;grid-template-columns:38px minmax(80px,1fr) 28px;align-items:center;gap:10px}.attendance-bar-line>span{color:var(--muted-ink);font-size:11px}.attendance-bar-line>strong{text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.attendance-bar-track{height:9px;overflow:hidden;border-radius:5px;background:#edf0f3}.attendance-bar-fill{display:block;height:100%;border-radius:inherit}.group-attendance-rate{display:grid;justify-items:end;gap:5px}.group-attendance-rate span{color:var(--muted-ink);font-size:11px}.group-attendance-rate strong{font-size:20px;font-variant-numeric:tabular-nums}.stats-overview{display:grid;grid-template-columns:minmax(280px,.85fr) 1.6fr;gap:14px;margin-bottom:14px}.overview-primary,.overview-grid article{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.overview-primary{display:flex;min-height:158px;flex-direction:column;justify-content:center;padding:24px 26px}.overview-primary>span,.overview-grid span{color:var(--muted-ink);font-size:13px}.overview-primary>strong{margin:10px 0 8px;color:var(--ink);font-size:clamp(30px,3vw,42px);font-variant-numeric:tabular-nums;letter-spacing:-.04em}.overview-primary p{margin-bottom:0;color:var(--primary);font-size:13px;font-weight:650}.overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.overview-grid article{display:flex;min-height:72px;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px}.overview-grid strong{color:#333b48;font-size:20px;font-variant-numeric:tabular-nums}.overview-grid strong small{margin-left:3px;color:var(--muted-ink);font-size:12px}.overview-grid .risk-stat strong{color:var(--danger)}.risk-bar{display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:13px 16px}.risk-bar>div:first-child{display:flex;align-items:center;gap:12px}.risk-bar h2,.risk-bar strong{display:block;margin-bottom:4px;font-size:14px}.risk-bar p{margin-bottom:0;color:var(--muted-ink);font-size:12px}.risk-bar.has-risk .risk-icon{color:var(--danger);background:var(--danger-soft)}.risk-count-button{min-height:44px;border:1px solid #e5b8b4;color:var(--danger);background:var(--danger-soft);padding:0 11px;font-size:12px}.filter-toggle{min-height:44px;border:1px solid var(--border-strong);color:#4b5564;background:#fff;font-size:13px}.filter-toggle.active{border-color:#e0aaa6;color:var(--danger);background:var(--danger-soft)}.settings-list{display:grid;gap:12px;width:min(880px,100%)}.setting-row{display:grid;grid-template-columns:auto 1fr auto;min-height:92px;align-items:center;gap:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:16px 18px;box-shadow:var(--shadow-sm)}.danger-setting{margin-top:18px;border-color:#ead1ce}.danger-setting .setting-icon{color:var(--danger);background:var(--danger-soft)}.empty-state{display:grid;min-height:310px;place-items:center;align-content:center;border:1px dashed var(--border-strong);border-radius:var(--radius);background:#ffffffa3;padding:36px 20px;text-align:center}.empty-icon{display:grid;width:58px;height:58px;margin-bottom:18px;place-items:center;border-radius:16px;color:#536983;background:#e9eef5}.empty-state h3{margin-bottom:7px;font-size:17px}.empty-state p{max-width:420px;margin-bottom:18px;color:var(--muted-ink);font-size:13px;line-height:1.7}.modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:#141a2285;padding:24px}.modal-panel{display:flex;width:min(var(--modal-width),100%);max-height:min(88vh,900px);flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.42);border-radius:16px;background:#fff;box-shadow:var(--shadow-lg)}.modal-panel-ledger{max-height:min(92vh,960px)}.modal-header,.modal-footer{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:16px;border-color:var(--border);background:#fff}.modal-header{border-bottom:1px solid var(--border);padding:16px 18px 16px 22px}.modal-header h2{margin:0;font-size:18px;letter-spacing:-.02em}.modal-body{overflow:auto;padding:22px}.modal-footer{justify-content:flex-end;border-top:1px solid var(--border);padding:13px 18px}.modal-fade-enter-active,.modal-fade-leave-active{transition:opacity .19s ease}.modal-fade-enter-active .modal-panel,.modal-fade-leave-active .modal-panel{transition:transform .22s cubic-bezier(.16,1,.3,1),opacity .19s ease}.modal-fade-enter-from,.modal-fade-leave-to{opacity:0}.modal-fade-enter-from .modal-panel,.modal-fade-leave-to .modal-panel{opacity:0;transform:translateY(12px) scale(.99)}.form-stack{display:grid;gap:24px}.form-section{display:grid;gap:17px}.form-section+.form-section{border-top:1px solid var(--border);padding-top:23px}.section-heading h3,.detail-section-head h3{margin-bottom:5px;font-size:15px}.section-heading p,.detail-section-head p{margin-bottom:0;color:var(--muted-ink);font-size:12px}.form-grid{display:grid;gap:16px}.form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width: 901px){.student-form .student-name-field,.student-form .student-grade-field,.student-form .payment-amount-field,.student-form .payment-lessons-field,.student-form .payment-method-field,.student-form .payment-date-field{grid-column:auto}}.full-span{grid-column:1 / -1}.field-error{color:var(--danger);font-size:12px}.input-with-prefix,.input-with-suffix{display:flex;min-height:44px;align-items:center;overflow:hidden;border:1px solid var(--border-strong);border-radius:9px;background:#fff}.input-with-prefix:focus-within,.input-with-suffix:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #235fc71f}.input-with-prefix b,.input-with-suffix b{color:var(--muted-ink);font-size:13px;white-space:nowrap}.input-with-prefix b{padding-left:12px}.input-with-suffix b{padding-right:12px}.input-with-prefix input,.input-with-suffix input{min-width:0;border:0!important;outline:0!important;box-shadow:none!important}.calculated-field{display:grid;min-height:94px;align-content:center;gap:5px;border:1px solid #cddbf0;border-radius:11px;background:var(--primary-soft);padding:14px 16px}.calculated-field strong{color:var(--primary-strong);font-size:23px;font-variant-numeric:tabular-nums}.calculated-field strong small{margin-left:4px;font-size:12px}.calculated-field p{margin-bottom:0;color:#52647d;font-size:11px}.renew-context{display:grid;gap:12px;margin-bottom:20px;border:1px solid #cddbf0;border-radius:11px;background:var(--primary-soft);padding:14px 16px}.renew-context-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.renew-context-head>div{display:grid;gap:2px}.renew-context-head span{color:var(--ink);font-size:13px;font-weight:700}.renew-context small{color:var(--muted-ink);font-size:11px}.renew-copy-button{flex:0 0 auto}.renew-balance-flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:9px}.renew-balance-flow>span{display:grid;min-width:0;gap:3px;border-radius:9px;background:#ffffffb8;padding:10px 11px}.renew-balance-flow>i{color:#6b7d96;font-size:16px;font-style:normal;font-weight:700}.renew-balance-flow strong{color:var(--primary-strong);font-size:17px;font-variant-numeric:tabular-nums;white-space:nowrap}.renew-balance-flow .renew-balance-result{background:#fff;box-shadow:inset 0 0 0 1px #235fc729}.renew-calculation-note{margin:0;color:#405675;font-size:12px;line-height:1.6}.threshold-form{display:grid;gap:12px}.threshold-form p{margin-bottom:0;color:var(--muted-ink);font-size:12px;line-height:1.7}.student-detail{display:grid;gap:18px}.detail-identity{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px}.detail-identity h3{margin-bottom:4px;font-size:19px}.detail-identity p,.detail-identity small{margin-bottom:0;color:var(--muted-ink);font-size:12px}.detail-name-line,.detail-identity-actions,.mobile-row-actions{display:flex;align-items:center;gap:8px}.detail-name-line h3{margin-bottom:0}.detail-identity-actions{justify-content:flex-end}.pause-confirm,.delete-student-confirm,.reactivate-context{display:flex;align-items:flex-start;gap:14px}.pause-confirm-icon,.delete-student-confirm-icon,.reactivate-context-icon{display:inline-grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border-radius:12px}.pause-confirm-icon,.delete-student-confirm-icon{color:var(--danger);background:var(--danger-soft)}.reactivate-context-icon{color:var(--primary);background:var(--primary-soft)}.pause-confirm h3,.delete-student-confirm h3{margin-bottom:7px;font-size:16px}.pause-confirm p,.delete-student-confirm p,.reactivate-context p{margin-bottom:0;color:var(--muted-ink);font-size:13px;line-height:1.7}.delete-student-confirm strong{color:var(--ink)}.delete-student-confirm .dialog-danger-note{display:flex;align-items:flex-start;gap:7px;margin-top:12px;border-radius:8px;color:var(--danger-strong);background:var(--danger-soft);padding:9px 10px}.delete-student-confirm .dialog-danger-note>svg{flex:0 0 auto;margin-top:2px}.reactivate-form{display:grid;gap:20px}.reactivate-context strong{display:block;margin-bottom:5px;font-size:15px}.detail-balance{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:24px;border:1px solid #cddbf0;border-radius:14px;background:#f3f7fd;padding:20px}.balance-main{display:grid;gap:5px}.balance-main>span{color:#66758a;font-size:12px}.balance-main>strong{color:var(--ink);font-size:34px;letter-spacing:-.04em}.balance-main>strong small{margin-left:3px;color:var(--muted-ink);font-size:13px}.balance-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px}.balance-pairs span{display:grid;gap:3px}.balance-pairs small,.payment-record small{color:var(--muted-ink);font-size:11px}.balance-pairs strong,.payment-record strong{font-size:13px;font-variant-numeric:tabular-nums}.detail-section{border-top:1px solid var(--border);padding-top:18px}.detail-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.payment-history{display:grid;gap:8px}.payment-record{display:grid;grid-template-columns:1.4fr repeat(3,.8fr) auto;align-items:center;gap:14px;border-radius:10px;background:#f7f9fb;padding:12px 14px}.payment-record>div{display:grid;gap:4px}.payment-record-date span{color:var(--muted-ink);font-size:11px}.lesson-history{overflow:hidden;border:1px solid var(--border);border-radius:11px}.lesson-history-head,.lesson-record{display:grid;grid-template-columns:1.2fr 1.6fr .7fr .7fr .8fr;align-items:center;gap:12px;padding:0 14px}.lesson-history-head{min-height:38px;color:var(--muted-ink);background:#fafbfc;font-size:11px;font-weight:650}.lesson-record{min-height:54px;border-top:1px solid #edf0f3;font-size:12px}.lesson-record span:last-child{display:grid;gap:2px}.lesson-record small{color:var(--danger);font-size:10px}.attendance-label{display:inline-flex;min-height:26px;align-items:center;border-radius:7px;color:var(--success);background:var(--success-soft);padding:0 8px;font-size:11px}.attendance-label.absent{color:var(--danger);background:var(--danger-soft)}.ledger-detail{gap:16px}.ledger-tabs{display:flex;gap:24px;border-bottom:1px solid var(--border)}.ledger-tabs button{position:relative;display:inline-flex;min-height:46px;align-items:center;gap:7px;border:0;color:var(--muted-ink);background:transparent;padding:0 2px;font-size:14px;font-weight:650}.ledger-tabs button:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;background:transparent;content:""}.ledger-tabs button.active{color:var(--primary-strong)}.ledger-tabs button.active:after{background:var(--primary)}.ledger-tabs button span{display:inline-grid;min-width:22px;min-height:22px;place-items:center;border-radius:999px;color:#5e6876;background:#eef1f5;padding:0 6px;font-size:11px}.ledger-section{min-width:0}.payment-batch-list,.ledger-table{overflow:hidden;border:1px solid var(--border);border-radius:10px;background:#fff}.payment-batch-row{position:relative;display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;min-height:68px;align-items:center;gap:8px;border-bottom:1px solid #edf0f3;color:var(--ink);background:#fff;transition:background-color .18s ease}.payment-batch-row:last-child{border-bottom:0}.payment-batch-row:hover{background:#f7f9fc}.payment-batch-main{display:grid;min-width:0;grid-template-columns:1.35fr repeat(4,minmax(86px,.75fr)) minmax(98px,.85fr) auto;min-height:68px;align-items:center;gap:12px;border:0;color:var(--ink);background:transparent;padding:10px 6px 10px 14px;text-align:left}.payment-batch-main>span{display:grid;min-width:0;gap:3px}.payment-batch-row small,.package-metrics small{color:var(--muted-ink);font-size:12px}.payment-batch-row strong,.package-metrics strong{font-size:13px;font-variant-numeric:tabular-nums}.payment-batch-date strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payment-batch-status{align-items:start}.package-share-button{display:inline-flex;min-height:38px;align-items:center;gap:6px;border:1px solid #b8cdec;border-radius:9px;color:var(--primary-strong);background:var(--primary-soft);padding:0 11px;font-size:12px;font-weight:700;white-space:nowrap;margin-right:12px}.package-share-button:hover{border-color:var(--primary);background:#e3efff}.payment-batch-actions{display:flex;align-items:center;gap:8px;margin-right:12px}.package-open-button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;border:1px solid #b8cdec;border-radius:9px;color:var(--primary-strong);background:#fff;padding:0 11px;font-size:12px;font-weight:700;white-space:nowrap}.payment-batch-actions .package-share-button{margin-right:0}.package-status{display:inline-flex;width:fit-content;min-height:26px;align-items:center;border:1px solid #d5dbe3;border-radius:999px;color:#5c6572;background:#f7f9fb;padding:0 9px;font-size:12px;font-weight:700;white-space:nowrap}.package-status.is-active{border-color:#b8cdec;color:var(--primary-strong);background:var(--primary-soft)}.package-status.is-used{color:#69727e;background:#f1f3f5}.package-status.is-unused{border-color:#b9d9c8;color:var(--success);background:var(--success-soft)}.ledger-back-button{display:inline-flex;width:fit-content;min-height:38px;align-items:center;gap:5px;border:0;color:var(--primary-strong);background:transparent;padding:0 4px 0 0;font-size:13px;font-weight:650}.ledger-back-button svg{transform:rotate(180deg)}.package-statement{overflow:hidden;border:1px solid var(--border-strong);border-radius:14px;background:#f7faff}.package-statement-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding:16px 18px}.package-statement-head h3{margin-bottom:4px;font-size:18px}.package-statement-head p{margin:0;color:var(--muted-ink);font-size:12px}.package-statement-actions{display:flex;align-items:center;gap:8px}.package-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));padding:16px 18px}.package-metrics span{display:grid;gap:4px;min-width:0}.package-metrics span+span{border-left:1px solid var(--border);padding-left:18px}.package-metrics strong{font-size:18px}.package-note{display:flex;align-items:flex-start;gap:8px;margin:0 18px 14px;border-radius:9px;color:#536277;background:var(--surface-subtle);padding:10px 12px;font-size:12px;line-height:1.6}.package-note svg{flex:0 0 auto;margin-top:1px}.package-note.debt-note{color:var(--danger-strong);background:var(--warning-soft)}.ledger-reconcile-badge,.parent-ledger-title>span{flex:0 0 auto;border:1px solid #c9dcff;border-radius:999px;background:#eef5ff;padding:5px 10px;color:#155ed4;font-size:12px;font-weight:700}.ledger-type.is-historical{background:#f2f4f7;color:#596579}.parent-ledger-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.parent-ledger-table article.is-historical{background:#f8fafc;color:#596579}.current-debt-panel{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:18px;border:1px solid #c8ded3;border-radius:12px;color:#315f4c;background:var(--success-soft);padding:14px 16px}.current-debt-panel.has-debt{border-color:#efc1bb;color:var(--danger-strong);background:var(--danger-soft)}.current-debt-panel>div{display:flex;min-width:0;align-items:center;gap:11px}.current-debt-panel h3{margin-bottom:2px;color:var(--ink);font-size:14px}.current-debt-panel p{margin:0;color:#667566;font-size:12px;line-height:1.55}.current-debt-panel.has-debt p{color:#8a514c}.current-debt-panel>strong{flex:0 0 auto;font-size:20px;font-variant-numeric:tabular-nums;white-space:nowrap}.current-debt-icon{display:inline-grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:10px;background:#fff}.debt-ledger-section{padding-top:2px}.debt-count-badge{display:inline-flex;min-height:28px;align-items:center;border-radius:999px;color:var(--danger-strong);background:var(--danger-soft);padding:0 9px;font-size:12px;font-weight:700;white-space:nowrap}.ledger-table-head,.ledger-row{display:grid;grid-template-columns:1.35fr 1.45fr 1fr .75fr .85fr;align-items:center;gap:12px;padding:0 14px}.ledger-table-head{min-height:40px;color:var(--muted-ink);background:#fafbfc;font-size:12px;font-weight:650}.ledger-row{min-height:58px;border-top:1px solid #edf0f3;color:#3b4451;font-size:12px}.ledger-row>span{display:grid;min-width:0;gap:2px;overflow-wrap:anywhere}.ledger-row small{color:var(--muted-ink);font-size:10px}.ledger-type{display:inline-flex;width:fit-content;min-height:26px;align-items:center;border-radius:7px;color:#4f5b6a;background:#f0f3f6;padding:0 8px;font-size:12px;font-weight:650;white-space:nowrap}.ledger-type.is-debt-settlement{color:#9a4b20;background:#fff1e8}.ledger-type.is-unsettled{color:var(--danger-strong);background:var(--danger-soft)}.ledger-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:14px}.ledger-pagination span{color:var(--muted-ink);font-size:12px;font-variant-numeric:tabular-nums}.demo-banner{display:flex;min-height:42px;align-items:center;justify-content:center;gap:12px;color:#765420;background:#fff3d9;padding:8px 16px;font-size:12px}.demo-banner button{min-height:28px;border:1px solid #d7b77e;border-radius:7px;color:#765420;background:#fffaf0;padding:0 9px;font-size:11px;font-weight:650}.app-toast{position:fixed;right:24px;bottom:24px;z-index:150;display:flex;min-height:48px;max-width:min(420px,calc(100vw - 32px));align-items:center;gap:10px;border:1px solid #c9dfd3;border-radius:11px;color:#255d43;background:#f2fbf6;padding:10px 16px;box-shadow:0 16px 38px #18274b29;font-size:13px;font-weight:650}.app-toast.error{border-color:#e4bbb7;color:var(--danger);background:#fff6f5}.toast-indicator{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--success)}.app-toast.error .toast-indicator{background:var(--danger)}.toast-slide-enter-active,.toast-slide-leave-active{transition:opacity .18s ease,transform .24s cubic-bezier(.16,1,.3,1)}.toast-slide-enter-from,.toast-slide-leave-to{opacity:0;transform:translateY(10px)}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}.mobile-only{display:none!important}@media (max-width: 1100px){:root{--sidebar-width: 208px}.page{padding-right:26px;padding-left:26px}.group-row{grid-template-columns:minmax(230px,1.4fr) 90px minmax(110px,.7fr) auto;gap:14px}.group-attendance-row{grid-template-columns:minmax(190px,.7fr) minmax(300px,1.4fr) 72px;gap:16px}.attendance-row{grid-template-columns:1.4fr .65fr 1fr .7fr 1fr}}@media (max-width: 900px){.desktop-only{display:none!important}.mobile-only{display:flex!important}.app-main{margin-left:0;padding-bottom:calc(70px + env(safe-area-inset-bottom))}.mobile-topbar{position:sticky;top:0;z-index:30;min-height:60px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:#fafbfcf5;padding:8px 16px}.mobile-brand{gap:9px}.mobile-brand .brand-mark{width:36px;height:36px;border-radius:11px}.mobile-brand strong{font-size:17px;letter-spacing:-.02em}.icon-button{width:44px;height:44px}.text-button,.secondary-button.compact,.demo-banner button,.primary-button,.secondary-button,.filter-toggle{min-height:44px}.page{padding:24px 16px 42px}.page-heading{min-height:0;margin-bottom:18px}.page-heading h1{margin-bottom:6px;font-size:25px}.page-heading p{font-size:13px}.desktop-action{flex:0 0 auto;padding-right:10px;padding-left:10px;font-size:13px;white-space:nowrap}.students-page .mobile-fab,.groups-page .mobile-fab{display:none!important}.heading-date{display:none}.attendance-page{padding-bottom:124px}.attendance-toolbar{grid-template-columns:.9fr 1.3fr;gap:10px;padding:13px}.attendance-toolbar .group-select-field{grid-column:1 / -1}.toolbar-status{grid-column:1 / -1;min-height:30px;padding:0 5px}.attendance-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin:14px 0}.attendance-summary>div{min-height:75px;flex-wrap:wrap;padding:14px 10px}.attendance-summary>div:not(:last-child):after{top:15px;height:43px}.attendance-summary span{width:100%;margin-right:0;font-size:11px}.attendance-summary strong{font-size:25px}.list-header{padding:16px}.list-header h2{font-size:16px}.inline-alert{min-height:30px;white-space:nowrap}.attendance-cards{flex-direction:column}.attendance-card{border-bottom:1px solid #edf0f3;background:#fff}.attendance-card:last-child{border-bottom:0}.attendance-card.is-absent{background:#f8f9fa}.attendance-card.is-balance-warning:not(.is-absent){background:#fffdf9}.attendance-card-main{display:flex;width:100%;min-height:66px;align-items:center;gap:11px;padding:10px 14px 7px}.student-card-copy{display:grid;flex:1;gap:4px;min-width:0}.student-card-copy strong{font-size:15px}.student-card-copy small{overflow:hidden;color:var(--muted-ink);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.mobile-status{display:inline-flex;min-width:58px;min-height:36px;align-items:center;justify-content:center;border:1px solid #b9d9c8;border-radius:9px;color:var(--success);background:var(--success-soft);font-size:12px;font-weight:700}.mobile-status.is-absent{border-color:#e3b6b3;color:var(--danger);background:var(--danger-soft)}.attendance-card-foot{display:flex;min-height:38px;align-items:center;justify-content:space-between;padding:0 14px 9px 63px}.attendance-card-foot>span:last-child{color:var(--subtle-ink);font-size:10px}.filter-bar{display:grid;grid-template-columns:1fr 1fr}.search-field{grid-column:1 / -1;min-width:0}.filter-bar select{width:100%;min-width:0}.filter-toggle{width:100%}.date-scope-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;padding:13px}.date-scope-bar .compact-field{min-width:0}.date-preset-field,.date-scope-result{grid-column:1 / -1}.date-scope-result{grid-template-columns:1fr auto;align-items:baseline;justify-items:start;min-width:0;margin-left:0;border-top:1px solid var(--border);padding-top:10px}.date-scope-result strong{grid-column:2;grid-row:1 / span 2;justify-self:end}.date-scope-result small{grid-column:1}.debt-bar{display:grid;gap:13px;padding:14px}.debt-title{min-width:0}.debt-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.debt-metrics span{min-width:0;border-radius:9px;background:#ffffffb8;padding:9px}.debt-metrics strong{font-size:14px}.debt-list-button{width:100%}.student-cards,.stat-cards{display:flex;flex-direction:column;gap:10px}.student-card,.stat-card{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.student-card.is-warning,.stat-card.is-warning{border-color:#e8c9ae;background:#fffdf9}.student-card.is-paused,.stat-card.is-paused{border-color:#d7dce2;background:#f8f9fa}.student-card.is-debt,.stat-card.is-debt{border-color:#e0aaa5;background:#fff8f7}.student-card-body{display:block;width:100%;padding:14px}.student-card-title{display:grid;flex:1;gap:3px;min-width:0}.student-card-title strong{font-size:15px}.student-card-title small{overflow:hidden;color:var(--muted-ink);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.student-card-metrics,.stat-card-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.student-card-metrics span,.stat-card-values span{display:grid;gap:4px}.student-card-metrics span+span,.stat-card-values span+span{border-left:1px solid var(--border);padding-left:14px}.student-card-metrics small,.stat-card-values small{color:var(--muted-ink);font-size:10px}.student-card-metrics strong,.stat-card-values strong{font-size:15px;font-variant-numeric:tabular-nums}.student-card footer{display:flex;min-height:52px;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding:8px 12px 8px 14px}.mobile-row-actions{margin-left:auto}.mobile-row-actions .text-button,.detail-identity-actions .text-button{min-height:44px;padding-right:10px;padding-left:10px}.mobile-fab{position:fixed;right:18px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:24;width:52px;height:52px;align-items:center;justify-content:center;border:0;border-radius:16px;color:#fff;background:var(--primary);box-shadow:0 12px 28px #235fc747}.group-list{gap:10px}.group-view-switch{display:flex;width:100%}.group-view-switch button{min-width:0;flex:1;justify-content:center}.group-attendance-toolbar{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px}.group-attendance-date{grid-column:1 / -1;justify-items:start;border-top:1px solid var(--border);padding-top:12px}.group-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.group-attendance-summary article{min-height:78px;padding:13px 14px}.group-attendance-summary article:nth-child(3){border-left:0;border-top:1px solid var(--border)}.group-attendance-summary article:nth-child(4){border-top:1px solid var(--border)}.group-attendance-heading{min-height:0;align-items:flex-start;padding:15px 14px}.group-attendance-row{grid-template-columns:minmax(0,1fr) auto;min-height:0;gap:12px;padding:14px}.group-attendance-bars{grid-column:1 / -1}.group-attendance-rate{align-self:start}.group-row{grid-template-columns:1fr auto;gap:12px;padding:14px}.group-mark{width:42px;height:42px}.group-count{text-align:right}.group-count strong{font-size:21px}.group-student-preview{padding-left:7px}.group-row .row-actions{justify-content:flex-end}.stats-overview{grid-template-columns:1fr}.overview-primary{min-height:132px;padding:20px}.overview-grid{gap:10px}.overview-grid article{min-height:70px;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:12px 14px}.risk-bar{align-items:flex-start;padding:14px}.risk-actions{flex-direction:column;align-items:flex-end}.stat-card{padding:14px}.stat-card-main{display:flex;width:100%;align-items:flex-start;justify-content:space-between;gap:12px}.stat-card-main>span:first-child{display:grid;gap:4px}.stat-card-main small{color:var(--muted-ink);font-size:11px}.stat-card .secondary-button{margin-top:14px}.stat-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card-actions>:only-child{grid-column:1 / -1}.settings-list{width:100%}.setting-row{grid-template-columns:auto 1fr;gap:12px;padding:14px}.setting-row>button{grid-column:1 / -1;width:100%}.danger-setting{margin-top:10px}.modal-layer{place-items:end center;padding:0}.modal-panel{width:100%;max-height:92dvh;border:0;border-radius:18px 18px 0 0}.modal-panel-ledger{height:100dvh;max-height:100dvh;border-radius:0}.modal-panel-ledger .modal-header{padding-top:calc(10px + env(safe-area-inset-top))}.modal-panel-ledger .modal-body{padding-bottom:calc(28px + env(safe-area-inset-bottom))}.modal-header{min-height:58px;padding:10px 12px 10px 18px}.modal-body{padding:18px 16px}.modal-footer{padding:11px 12px calc(11px + env(safe-area-inset-bottom))}.modal-footer>*{flex:1;min-height:46px}.modal-fade-enter-from .modal-panel,.modal-fade-leave-to .modal-panel{transform:translateY(24px)}.form-grid.two-columns{grid-template-columns:1fr}.full-span{grid-column:auto}.calculated-field{min-height:86px}.renew-context{padding:13px}.renew-balance-flow{gap:6px}.renew-balance-flow>span{padding:9px 8px}.renew-balance-flow strong{font-size:15px}.detail-identity{grid-template-columns:auto 1fr}.detail-identity-actions{grid-column:1 / -1;width:100%}.detail-identity-actions>*{flex:1}.detail-balance{grid-template-columns:1fr;gap:18px}.balance-pairs{gap:12px}.detail-balance>.primary-button{width:100%}.ledger-detail{gap:14px}.ledger-balance{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:12px;padding:14px}.ledger-balance .balance-main>strong{font-size:29px}.ledger-balance .balance-pairs{gap:10px 12px}.ledger-balance>.primary-button{grid-column:1 / -1}.ledger-tabs{gap:0}.ledger-tabs button{flex:1;justify-content:center;min-height:48px}.payment-batch-row{grid-template-columns:1fr;gap:0;min-height:0;padding:0}.payment-batch-main{position:relative;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 42px 12px 14px}.payment-batch-main>svg{position:absolute;top:50%;right:14px;transform:translateY(-50%)}.payment-batch-date{grid-column:1 / -1;border-bottom:1px solid var(--border);padding-bottom:10px}.payment-batch-status{grid-column:1 / -1;display:flex!important;flex-direction:row;align-items:center;gap:8px!important}.package-share-button{width:calc(100% - 28px);min-height:44px;justify-content:center;margin:0 14px 14px}.package-statement-head{align-items:stretch;flex-direction:column;padding:14px}.package-statement-actions{justify-content:space-between}.package-statement-head h3{font-size:15px}.package-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}.package-metrics span+span{border-left:0;padding-left:0}.package-metrics span:first-child{grid-column:1 / -1;border-bottom:1px solid var(--border);padding-bottom:11px}.package-note{margin:0 14px 12px}.current-debt-panel{align-items:flex-start;flex-direction:column;gap:10px;padding:13px 14px}.current-debt-panel>strong{padding-left:49px;font-size:18px}.ledger-table{overflow:visible;border:0;background:transparent}.ledger-row{position:relative;grid-template-columns:minmax(0,1fr) auto auto;gap:8px 10px;min-height:0;margin-bottom:8px;border:1px solid var(--border);border-radius:10px;background:#fff;padding:12px}.ledger-row>span:nth-child(1),.ledger-row>span:nth-child(2){grid-column:1 / -1}.ledger-row>span:nth-child(1){padding-right:76px}.ledger-row>span:nth-child(2){color:var(--muted-ink)}.ledger-row>span:nth-child(3){grid-column:1}.ledger-row>span:nth-child(4){grid-column:2}.ledger-row>span:nth-child(5){grid-column:3}.ledger-pagination{justify-content:space-between;padding-top:10px}.ledger-pagination button{min-height:44px}.payment-record{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.payment-record-date{grid-column:1 / -1;border-bottom:1px solid var(--border);padding-bottom:9px}.payment-record .text-button{grid-column:1 / -1;justify-content:flex-start}.lesson-record{grid-template-columns:1.2fr .7fr .65fr;gap:8px;padding:10px 12px}.lesson-record>span:nth-child(2){grid-column:1 / -1;grid-row:2;color:var(--muted-ink)}.lesson-record>span:nth-child(3){grid-column:2;grid-row:1}.lesson-record>span:nth-child(4){display:none}.lesson-record>span:nth-child(5){grid-column:3;grid-row:1;text-align:right}.mobile-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:40;min-height:calc(64px + env(safe-area-inset-bottom));align-items:flex-start;justify-content:space-around;border-top:1px solid var(--border);background:#fffffffa;padding:7px 8px env(safe-area-inset-bottom);box-shadow:0 -8px 24px #18274b12}.mobile-bottom-nav button{display:grid;min-width:58px;min-height:50px;place-items:center;align-content:center;gap:3px;border:0;border-radius:10px;color:#5f6875;background:transparent;font-size:10px}.mobile-bottom-nav button.active{color:var(--primary);background:var(--primary-soft);font-weight:700}.bottom-nav-icon{position:relative;display:inline-flex}.bottom-nav-icon i{position:absolute;top:-2px;right:-5px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:var(--danger)}.demo-banner{align-items:flex-start;justify-content:space-between;font-size:11px}.demo-banner span{max-width:240px}.app-toast{right:16px;bottom:calc(82px + env(safe-area-inset-bottom));left:16px;max-width:none}}@media (max-width: 380px){.page{padding-right:12px;padding-left:12px}.attendance-toolbar{grid-template-columns:1fr}.attendance-toolbar .group-select-field{grid-column:auto}.ledger-balance{grid-template-columns:1fr}.ledger-balance>.primary-button{grid-column:auto}.toolbar-status{grid-column:auto}.attendance-summary>div{padding-right:7px;padding-left:7px}.attendance-summary strong{font-size:22px}.list-header{align-items:flex-start;flex-direction:column}.filter-bar{grid-template-columns:1fr}.search-field{grid-column:auto}.risk-bar{flex-direction:column}.risk-actions{width:100%;flex-direction:row;align-items:center;justify-content:space-between}.overview-grid strong{font-size:17px}.detail-section-head{align-items:stretch;flex-direction:column}.detail-section-head .secondary-button{width:100%}.demo-banner span{max-width:185px}}.share-bill-dialog{display:grid;gap:16px}.share-dialog-summary{display:flex;align-items:center;gap:12px;border:1px solid #cbdcf7;border-radius:12px;background:var(--primary-soft);padding:14px}.share-dialog-icon,.share-state-icon{display:inline-grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:11px;color:var(--primary-strong);background:#fff}.share-dialog-summary strong{display:block;margin-bottom:3px;font-size:14px}.share-dialog-summary p,.share-link-field small{margin:0;color:var(--muted-ink);font-size:12px;line-height:1.6}.share-link-field{display:grid;gap:8px}.share-link-field>label{color:#505968;font-size:13px;font-weight:650}.share-link-field>div{display:flex;gap:8px}.share-link-field input{width:100%;min-width:0;min-height:44px;border:1px solid var(--border-strong);border-radius:9px;color:var(--ink);background:#fff;padding:0 12px;font-size:12px}.share-local-warning,.share-live-note{display:flex;align-items:flex-start;gap:8px;margin:0;border-radius:9px;padding:11px 12px;font-size:12px;line-height:1.6}.share-local-warning{color:#875018;background:var(--warning-soft)}.share-live-note{color:#536277;background:var(--surface-subtle)}.share-local-warning svg,.share-live-note svg{flex:0 0 auto;margin-top:1px}.share-bill-page{width:min(1040px,calc(100% - 32px));min-height:100vh;margin:0 auto;padding:28px 0 48px}.share-bill-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.share-bill-brand>div{display:grid;gap:1px}.share-bill-brand strong{font-size:17px}.share-bill-brand small{color:var(--muted-ink);font-size:11px}.share-bill-hero,.share-bill-summary,.share-bill-debt,.share-bill-ledger,.share-bill-state{border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}.share-bill-hero{display:flex;min-height:150px;align-items:center;justify-content:space-between;gap:24px;padding:26px 30px}.share-eyebrow{display:inline-flex;align-items:center;gap:5px;margin-bottom:10px;color:var(--success);font-size:12px;font-weight:700}.share-bill-hero h1{margin-bottom:7px;font-size:clamp(24px,3vw,34px);letter-spacing:-.035em}.share-bill-hero p,.share-bill-summary header p,.share-bill-ledger header p{margin:0;color:var(--muted-ink);font-size:13px}.share-bill-number{display:grid;min-width:190px;justify-items:end;gap:5px;border-left:1px solid var(--border);padding-left:26px}.share-bill-number small{color:var(--muted-ink);font-size:11px}.share-bill-number strong{font-size:15px;font-variant-numeric:tabular-nums}.share-bill-number span{border-radius:999px;color:var(--primary-strong);background:var(--primary-soft);padding:5px 9px;font-size:11px;font-weight:700}.share-bill-summary,.share-bill-debt,.share-bill-ledger{margin-top:16px}.share-bill-summary>header,.share-bill-debt>header,.share-bill-ledger>header{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border);padding:18px 22px}.share-bill-summary h2,.share-bill-debt h2,.share-bill-ledger h2{margin-bottom:4px;font-size:17px}.share-bill-summary>header>strong{font-size:25px;font-variant-numeric:tabular-nums}.share-bill-debt>header>strong{flex:0 0 auto;font-size:22px;font-variant-numeric:tabular-nums;white-space:nowrap}.share-bill-debt>header p{max-width:680px;margin:0;color:var(--muted-ink);font-size:12px;line-height:1.6}.share-bill-debt.has-debt{border-color:#efc1bb}.share-bill-debt.has-debt>header{background:var(--danger-soft)}.share-debt-head,.share-debt-row{display:grid;grid-template-columns:50px 1.35fr 1.2fr 1fr .7fr;align-items:center;gap:12px;padding:0 18px}.share-debt-head{min-height:42px;color:var(--muted-ink);background:#fafbfc;font-size:12px;font-weight:650}.share-debt-row{min-height:64px;border-top:1px solid #edf0f3;font-size:13px}.share-debt-row>span{display:grid;min-width:0;gap:3px;overflow-wrap:anywhere}.share-debt-row small{color:var(--muted-ink);font-size:10px}.share-debt-row b{width:fit-content;border-radius:999px;color:var(--danger-strong);background:var(--danger-soft);padding:4px 8px;font-size:11px}.share-bill-debt .ledger-pagination{padding:14px 18px}.share-bill-ledger>header>span{color:var(--primary-strong);font-size:12px;font-weight:700;white-space:nowrap}.share-bill-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:19px 22px}.share-bill-metrics>span{display:grid;gap:5px}.share-bill-metrics>span+span{border-left:1px solid var(--border);padding-left:20px}.share-bill-metrics small{color:var(--muted-ink);font-size:12px}.share-bill-metrics strong{font-size:19px;font-variant-numeric:tabular-nums}.share-bill-note{display:flex;align-items:flex-start;gap:7px;margin:0 22px 16px;border-radius:9px;color:#536277;background:var(--surface-subtle);padding:10px 12px;font-size:12px}.share-ledger-head,.share-ledger-row{display:grid;grid-template-columns:50px 1.25fr 1.15fr 1fr .62fr .85fr;align-items:center;gap:12px;padding:0 18px}.share-ledger-head{min-height:42px;color:var(--muted-ink);background:#fafbfc;font-size:12px;font-weight:650}.share-ledger-row{min-height:64px;border-top:1px solid #edf0f3;font-size:13px}.share-ledger-row>span{display:grid;min-width:0;gap:3px}.share-ledger-row small{color:var(--muted-ink);font-size:10px}.share-ledger-row b{width:fit-content;border-radius:999px;color:var(--primary-strong);background:var(--primary-soft);padding:4px 8px;font-size:11px}.share-row-index{color:var(--muted-ink);font-variant-numeric:tabular-nums}.share-bill-ledger .ledger-pagination{padding:14px 18px}.share-ledger-empty{display:grid;min-height:190px;place-items:center;align-content:center;gap:7px;color:var(--muted-ink);padding:30px;text-align:center}.share-ledger-empty strong{color:var(--ink);font-size:15px}.share-ledger-empty p{margin:0;font-size:12px}.share-bill-footer{display:grid;gap:4px;padding:18px 8px 0;color:var(--muted-ink);font-size:11px;line-height:1.7;text-align:center}.share-bill-footer p{margin:0}.share-bill-state{display:grid;min-height:360px;place-items:center;align-content:center;gap:10px;padding:30px;text-align:center}.share-bill-state h1{font-size:24px}.share-bill-state p{max-width:460px;margin:0;color:var(--muted-ink)}.share-bill-state.is-error .share-state-icon{color:var(--danger);background:var(--danger-soft)}.share-loading-mark{width:34px;height:34px;border:3px solid #dce7f8;border-top-color:var(--primary);border-radius:50%;animation:share-loading .8s linear infinite}@keyframes share-loading{to{transform:rotate(360deg)}}@media (max-width: 900px){.instant-attendance-page .attendance-list .instant-complete-hint{display:none}.share-link-field>div{display:grid}.share-link-field .secondary-button{width:100%}.share-bill-page{width:min(100% - 24px,620px);padding:18px 0 34px}.share-bill-brand{margin-bottom:16px}.share-bill-hero{min-height:0;align-items:flex-start;flex-direction:column;gap:16px;padding:20px}.share-bill-hero h1{font-size:25px}.share-bill-number{width:100%;grid-template-columns:1fr auto;justify-items:start;border-top:1px solid var(--border);border-left:0;padding-top:14px;padding-left:0}.share-bill-number span{grid-column:2;grid-row:1 / 3;align-self:center}.share-bill-summary>header,.share-bill-debt>header,.share-bill-ledger>header{align-items:flex-start;padding:15px 16px}.share-bill-summary>header>strong{font-size:20px;white-space:nowrap}.share-bill-debt>header{align-items:flex-start;flex-direction:column;gap:8px}.share-bill-debt>header>strong{font-size:20px}.share-bill-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 0;padding:16px}.share-bill-metrics>span:nth-child(odd){border-left:0;padding-left:0}.share-bill-metrics>span:nth-child(2n){border-left:1px solid var(--border);padding-left:16px}.share-bill-note{margin:0 16px 14px}.share-ledger-list{display:grid;gap:10px;background:#f7f9fc;padding:12px}.share-debt-list{display:grid;gap:10px;background:#fff8f7;padding:12px}.share-debt-row{position:relative;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;min-height:0;border:1px solid #efcfca;border-radius:11px;background:#fff;padding:13px}.share-debt-row>span:nth-child(2),.share-debt-row>span:nth-child(3){grid-column:1 / -1;padding-right:28px}.share-debt-row>span:nth-child(4){grid-column:1}.share-debt-row>span:nth-child(5){grid-column:2}.share-ledger-row{position:relative;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;min-height:0;border:1px solid var(--border);border-radius:11px;background:#fff;padding:13px}.share-row-index{position:absolute;top:12px;right:12px;display:inline-grid!important;width:24px;height:24px;place-items:center;border-radius:999px;background:#f1f3f6;font-size:10px}.share-ledger-row>span:nth-child(2),.share-ledger-row>span:nth-child(3){grid-column:1 / -1;padding-right:28px}.share-ledger-row>span:nth-child(4){grid-column:1 / -1}.share-ledger-row>span:nth-child(5){grid-column:1}.share-ledger-row>span:nth-child(6){grid-column:2}.share-bill-footer{padding-right:5px;padding-left:5px}}@media (max-width: 380px){.share-bill-page{width:calc(100% - 20px)}.share-bill-summary>header{display:grid}.share-bill-summary>header>strong{font-size:22px}}@media (max-width: 340px){.instant-attendance-page .attendance-toolbar{grid-template-columns:1fr}.instant-attendance-page .attendance-toolbar .group-select-field,.instant-attendance-page .toolbar-status{grid-column:auto}.share-dialog-back{display:none}.share-dialog-preview,.share-dialog-send{min-width:0;padding-right:8px;padding-left:8px}}@media (min-width: 901px){:root{--sidebar-width: 208px;--radius: 10px;--canvas: #f6f7f9;--border: #e3e6eb;--border-strong: #d4d9e0;--shadow-sm: 0 1px 2px rgba(25, 36, 50, .025)}body{color:#20242c;background:var(--canvas)}.sidebar{width:var(--sidebar-width);border-right-color:#e6e8ec;background:#fff;padding:14px 10px 16px}.brand-block{gap:10px;min-height:44px;padding:0 9px 16px}.brand-mark{width:35px;height:35px;border-radius:9px;background:var(--primary);box-shadow:0 5px 12px #235fc72e}.brand-block strong{font-size:16px;font-weight:750}.brand-block small{margin-top:1px;font-size:10px;letter-spacing:.03em}.side-nav{gap:3px}.side-nav-section-label{display:block;padding:5px 11px 8px;color:#a0a6b0;font-size:10px}.side-nav button,.sidebar-foot button{min-height:43px;gap:11px;border-radius:7px;padding:0 11px;font-size:13px}.side-nav button:hover,.sidebar-foot button:hover{background:#f5f6f8}.side-nav button.active,.sidebar-foot button.active{color:#2459ad;background:#edf3ff}.sidebar-foot{gap:5px}.sidebar-foot p{padding:7px 11px 0;color:#9299a5;font-size:10px;line-height:1.55}.app-main{min-width:0;margin-left:var(--sidebar-width)}.desktop-topbar{position:relative;z-index:18;display:flex;height:58px;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #e8eaee;background:#fff;padding:0 24px}.desktop-breadcrumb{display:flex;min-width:0;align-items:center;gap:9px;color:#9299a5;font-size:12px}.desktop-menu-glyph{display:grid;width:20px;flex:0 0 auto;gap:4px}.desktop-menu-glyph i{display:block;width:14px;height:1px;background:#78808c}.desktop-breadcrumb i{color:#c3c8d0;font-style:normal}.desktop-breadcrumb strong{overflow:hidden;color:#353b46;font-size:13px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.desktop-topbar-actions{display:flex;align-items:center;gap:18px}.desktop-storage-status{display:inline-flex;align-items:center;gap:7px;color:#707784;font-size:11px;white-space:nowrap}.desktop-storage-status i{width:6px;height:6px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.desktop-settings-shortcut{display:inline-flex;min-height:32px;align-items:center;gap:7px;border:0;border-radius:7px;color:#555d69;background:transparent;padding:0 9px;font-size:12px}.desktop-settings-shortcut:hover,.desktop-settings-shortcut.active{color:var(--primary-strong);background:var(--primary-soft)}.desktop-workspace-tabs{display:flex;height:38px;align-items:flex-end;border-bottom:1px solid #e5e8ed;background:#fff;padding:0 24px}.desktop-workspace-tabs span{position:relative;display:inline-flex;height:38px;align-items:center;color:#69717e;padding:0 4px;font-size:12px;font-weight:650}.desktop-workspace-tabs span i{margin-left:28px;color:#a5abb4;font-size:12px;font-style:normal;font-weight:400}.desktop-workspace-tabs span:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;border-radius:2px 2px 0 0;background:var(--primary);content:""}.app-main>main{min-width:0}.page{width:100%;max-width:1600px;padding:20px 24px 64px}.page-heading{min-height:46px;align-items:flex-start;gap:18px;margin-bottom:14px}.page-heading h1{margin-bottom:4px;font-size:23px;font-weight:750;letter-spacing:-.025em;line-height:1.25}.page-heading p{font-size:12px;line-height:1.55}.heading-date{min-height:34px;border-radius:7px;padding:0 11px;font-size:12px;box-shadow:none}.primary-button,.secondary-button,.danger-confirm-button{min-height:38px;border-radius:7px;padding:0 14px;font-size:13px}.primary-button{box-shadow:none}.secondary-button.compact,.text-button{min-height:31px;border-radius:6px;padding-right:10px;padding-left:10px;font-size:12px}.icon-button{width:34px;height:34px;border-radius:7px}.surface-panel,.data-panel{border-radius:10px;box-shadow:var(--shadow-sm)}.compact-field,.field{gap:5px}.compact-field>span,.field>span,.calculated-field>span{font-size:12px}.compact-field input,.compact-field select,.field input,.field select,.filter-bar select,.search-field{min-height:37px;border-radius:7px}.search-field{min-width:220px;gap:8px;padding:0 10px}.search-field input{height:35px;font-size:12px}.filter-bar{gap:8px;margin-bottom:12px}.filter-bar select{min-width:132px;font-size:12px}.data-table{font-size:12px}.data-table th{height:40px;padding:0 13px;font-size:11px}.data-table td{height:56px;padding:7px 13px}.avatar{width:34px;height:34px;border-radius:8px;font-size:11px}.student-status-badge,.balance-badge{min-height:25px;font-size:11px}.attendance-mode-switch{gap:2px;margin-bottom:12px;border-radius:8px;padding:3px}.attendance-mode-switch button{min-height:36px;border-radius:6px;padding:0 13px;font-size:12px}.attendance-mode-switch i{min-width:20px;height:20px;font-size:10px}.ledger-tabs{gap:22px}.ledger-tabs button{min-height:40px;font-size:12px}.ledger-tabs button span{min-width:20px;min-height:20px;font-size:10px}.attendance-workflow-tabs{margin-bottom:12px}.attendance-toolbar{grid-template-columns:minmax(150px,.65fr) minmax(120px,.45fr) minmax(280px,1.45fr) auto;gap:11px;padding:13px 14px}.attendance-summary{margin-bottom:12px}.attendance-summary>div{min-height:74px;padding:11px 14px}.attendance-summary span,.attendance-summary small{font-size:11px}.attendance-summary strong{font-size:23px}.list-header{gap:14px;padding:14px 16px}.list-header h2{margin-bottom:3px;font-size:15px}.list-header p{font-size:11px;line-height:1.5}.attendance-row,.instant-attendance-row{min-height:56px;gap:12px;padding:7px 16px;font-size:12px}.attendance-row.table-head{min-height:38px;font-size:11px}.instant-status-segment{min-width:200px}.status-segment button,.instant-status-segment button{min-height:32px;font-size:11px}.attendance-submit-bar{bottom:12px;margin-top:12px;padding:11px 13px;box-shadow:0 10px 28px #1d365b1f}.attendance-submit-bar .primary-button{min-width:190px;min-height:40px}.quick-deduct-search{width:min(420px,calc(100% - 32px));margin:12px 16px}.quick-deduct-head,.quick-deduct-list article{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(150px,.65fr) 104px;align-items:center;gap:14px}.quick-deduct-head{min-height:38px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--muted-ink);background:#fafbfc;padding:0 16px;font-size:11px;font-weight:650}.quick-deduct-head span:last-child{text-align:right}.quick-deduct-list{padding:0}.quick-deduct-list article{min-height:58px;border-radius:0;padding:7px 16px}.quick-deduct-list article .avatar{display:none}.quick-student-copy{grid-column:1}.quick-deduct-list article .balance-badge{grid-column:2;justify-self:start}.quick-deduct-button{grid-column:3;min-width:82px;justify-self:end}.group-view-switch{margin-bottom:12px}.group-list{gap:0;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:#fff}.group-list-head,.group-row{display:grid;grid-template-columns:minmax(280px,1.35fr) 110px minmax(160px,.75fr) 176px;align-items:center;gap:16px}.group-list-head{min-height:40px;color:var(--muted-ink);background:#fafbfc;padding:0 16px;font-size:11px;font-weight:650}.group-list-head span:last-child{text-align:right}.group-row{min-height:66px;border:0;border-top:1px solid #edf0f3;border-radius:0;padding:8px 16px;box-shadow:none}.group-row-main{gap:11px}.group-mark{width:36px;height:36px;border-radius:8px}.group-row h2{margin-bottom:3px;font-size:14px}.group-row p{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.group-count{display:flex;align-items:baseline;gap:4px}.group-count strong{font-size:17px}.group-count span{font-size:11px}.group-student-preview{min-width:0}.group-row .row-actions{justify-content:flex-end}.group-attendance-toolbar,.date-scope-bar{gap:10px;margin-bottom:12px;padding:12px 14px}.group-attendance-summary{margin-bottom:12px}.group-attendance-summary article{min-height:76px;gap:5px;padding:12px 16px}.group-attendance-summary strong{font-size:21px}.stats-overview{grid-template-columns:minmax(240px,.75fr) 1.6fr;gap:12px;margin-bottom:12px}.overview-primary{min-height:126px;padding:18px 20px}.overview-primary>strong{margin:7px 0 5px;font-size:34px}.overview-grid{gap:10px}.overview-grid article{min-height:58px;padding:11px 14px}.overview-grid strong{font-size:17px}.risk-bar,.debt-bar{min-height:64px;gap:16px;margin-bottom:12px;padding:10px 14px}.risk-icon,.debt-icon{width:34px;height:34px;border-radius:8px}.filter-toggle,.risk-count-button{min-height:37px;border-radius:7px;font-size:12px}.finance-metrics{gap:12px;margin:12px 0}.finance-primary-metric{min-height:118px;border-radius:10px;padding:18px 20px;box-shadow:none}.finance-primary-metric>strong{font-size:32px}.finance-secondary-metrics article{min-height:58px;padding:10px 14px}.finance-secondary-metrics strong{font-size:17px}.finance-tabs{gap:22px;margin-bottom:12px}.finance-tabs button{min-height:40px;font-size:12px}.finance-section>header{padding:14px 16px 12px}.finance-section h2{font-size:15px}.finance-category-list button{min-height:55px;padding:8px 16px}.finance-method-list>div{min-height:43px;font-size:12px}.settings-list{gap:10px;width:min(960px,100%)}.setting-row{min-height:72px;gap:14px;border-radius:10px;padding:12px 15px;box-shadow:none}.setting-icon{width:38px;height:38px;border-radius:9px}.setting-row h2{margin-bottom:3px;font-size:14px}.setting-row p{font-size:11px}.danger-setting{margin-top:10px}.empty-state{min-height:250px;border-radius:10px;padding:28px 18px}.modal-layer{background:#141a226b;padding:18px}.modal-panel{max-height:min(92vh,900px);border-radius:11px}.modal-header{min-height:55px;padding:10px 13px 10px 18px}.modal-header h2{font-size:16px}.modal-body{padding:18px}.modal-footer{padding:10px 14px}.modal-layer:has(.modal-panel-ledger){place-items:stretch end;padding:0}.modal-panel-ledger{width:min(var(--modal-width),calc(100vw - var(--sidebar-width) - 72px));height:100vh;max-height:100vh;border-width:0 0 0 1px;border-radius:0;box-shadow:-18px 0 46px #18274b2e}.modal-fade-enter-from .modal-panel-ledger,.modal-fade-leave-to .modal-panel-ledger{transform:translate(22px)}}@media (min-width: 901px) and (max-width: 1180px){:root{--sidebar-width: 192px}.desktop-topbar,.desktop-workspace-tabs,.page{padding-right:18px;padding-left:18px}.desktop-storage-status{display:none}.attendance-toolbar{grid-template-columns:150px 118px minmax(230px,1fr)}.attendance-toolbar>:last-child{grid-column:1 / -1}.quick-deduct-head,.quick-deduct-list article{grid-template-columns:minmax(220px,1.2fr) minmax(130px,.65fr) 92px;gap:10px}.group-list-head,.group-row{grid-template-columns:minmax(230px,1.25fr) 90px minmax(120px,.65fr) 154px;gap:10px}.group-row .secondary-button.compact{padding-right:8px;padding-left:8px}.finance-metrics,.finance-overview-grid{grid-template-columns:1fr}.modal-panel-ledger{width:calc(100vw - var(--sidebar-width) - 24px)}}.login-page,.password-gate-page,.app-loading-state{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--canvas)}.login-panel,.password-gate-panel{width:min(100%,460px);border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-lg);padding:34px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:30px}.login-brand>div{display:grid;gap:2px}.login-brand strong{color:var(--ink);font-size:17px}.login-brand small{color:var(--muted-ink);font-size:12px}.login-panel header,.password-gate-panel header{margin-bottom:26px}.login-panel h1,.password-gate-panel h1{margin:0 0 8px;color:var(--ink);font-size:28px;line-height:1.25;letter-spacing:-.025em}.login-panel header p,.password-gate-panel header p{max-width:40ch;margin:0;color:var(--muted-ink);font-size:13px;line-height:1.7}.login-form,.password-change-form{display:grid;gap:18px}.password-input-wrap{position:relative}.password-input-wrap input{width:100%;padding-right:64px}.password-input-wrap button{position:absolute;inset:2px 2px 2px auto;min-width:58px;border:0;border-radius:7px;color:var(--primary);background:transparent;font-size:12px;font-weight:700}.password-input-wrap button:hover{background:var(--primary-soft)}.login-error{margin:-4px 0 0;border-radius:9px;color:var(--danger-strong);background:var(--danger-soft);padding:10px 12px;font-size:12px;line-height:1.5}.login-submit,.password-gate-submit{width:100%;min-height:46px}.login-security-note{display:flex;align-items:center;gap:7px;margin:22px 0 0;color:var(--muted-ink);font-size:12px}.login-security-note svg{color:var(--success)}.button-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:button-spin .7s linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}.password-force-note{margin:0;border-radius:9px;color:#70400d;background:var(--warning-soft);padding:11px 12px;font-size:12px;line-height:1.55}.password-change-form .field>small{color:var(--muted-ink)}.app-loading-state{align-content:center;gap:8px;text-align:center}.app-loading-mark{display:grid;place-items:center;width:54px;height:54px;margin-bottom:8px;border-radius:14px;color:#fff;background:var(--primary);box-shadow:0 10px 26px #235fc733}.app-loading-state strong{font-size:18px}.app-loading-state p{margin:0;color:var(--muted-ink);font-size:13px}.share-expiry-section{display:grid;gap:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-subtle);padding:16px}.share-expiry-section>div:first-child{display:grid;gap:4px}.share-expiry-section p{margin:0;color:var(--muted-ink);font-size:12px;line-height:1.6}.share-expiry-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.share-expiry-presets label{min-height:42px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:9px;color:var(--muted-ink);background:var(--surface);font-size:12px;font-weight:700;cursor:pointer}.share-expiry-presets label.active{border-color:var(--primary);color:var(--primary-strong);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.share-expiry-presets input{position:absolute;opacity:0;pointer-events:none}.share-custom-expiry{max-width:320px}.settings-audit-row>strong{color:var(--success);font-size:12px}@media (max-width: 600px){.login-page,.password-gate-page{place-items:stretch;padding:0;background:var(--surface)}.login-panel,.password-gate-panel{width:100%;min-height:100dvh;border:0;border-radius:0;box-shadow:none;padding:max(28px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom))}.login-brand{margin-bottom:48px}.login-panel h1,.password-gate-panel h1{font-size:26px}.share-expiry-presets{grid-template-columns:repeat(2,minmax(0,1fr))}.share-expiry-presets label{min-height:44px}.share-custom-expiry{max-width:none}}@media (prefers-reduced-motion: reduce){.button-spinner{animation-duration:1.4s}}.stats-title-line{display:flex;min-width:0;align-items:center;gap:10px}.stats-title-line h1{min-width:0}.stats-bill-entry,.stats-bill-back{min-height:44px;border:1px solid var(--border-strong);border-radius:9px;color:var(--primary);background:var(--primary-soft);font:inherit;font-weight:700;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,transform .18s ease}.stats-bill-entry:hover,.stats-bill-back:hover{border-color:var(--primary);background:var(--primary-soft)}.stats-bill-entry:active,.stats-bill-back:active{transform:scale(.98)}.stats-bill-entry:focus-visible,.stats-bill-back:focus-visible,.student-bill-list-meta button:focus-visible{outline:3px solid var(--primary-soft);outline-offset:2px}.stats-bill-back{display:inline-flex;padding:0 13px 0 10px;align-items:center;gap:6px;white-space:nowrap}.stats-bill-back svg{transform:rotate(180deg)}.student-bill-list-meta{display:flex;min-height:42px;padding:0 15px;border:1px solid var(--border);border-top:0;background:var(--surface-subtle);color:var(--muted-ink);font-size:12px;align-items:center;gap:14px}.student-bill-list-meta strong{color:var(--primary);font-size:14px;font-variant-numeric:tabular-nums}.student-bill-list-meta button{min-height:32px;margin-left:auto;padding:0 8px;border:0;border-radius:7px;color:var(--primary);background:transparent;font:inherit;font-weight:700;cursor:pointer}.student-bill-list-meta button:hover{background:var(--primary-soft)}@media (min-width: 901px){.stats-page.is-student-bills-view .page-heading{min-height:72px;margin-bottom:16px}.stats-page.is-student-bills-view .stats-heading-copy{display:block}.stats-page.is-student-bills-view .stats-title-line{gap:14px}.stats-page.is-student-bills-view .page-heading p{margin-top:7px}.stats-page.is-student-bills-view .stats-student-filter{border-color:var(--border);background:var(--surface)}.stats-page.is-student-bills-view .student-bill-list-meta+.data-panel{border-radius:0 0 11px 11px}}@media (min-width: 901px){.reference-one-row .quick-deduct-button{grid-column:6;min-width:82px;justify-self:end}.reference-one-records{overflow:hidden;padding:0;border-radius:11px}.reference-one-record-filters{display:flex;align-items:center;gap:10px;min-height:58px;padding:10px 12px;border-bottom:1px solid #edf0f4}.reference-one-record-filters select,.reference-one-record-filters input{height:36px;min-width:104px;padding:0 10px;border:1px solid #e2e7ef;border-radius:7px;background:#fff;color:#59657a;font:inherit;font-size:12px}.reference-one-record-filters>span{margin-left:auto;color:#919bad;font-size:12px}.reference-one-record-row{display:grid;grid-template-columns:1.05fr .7fr .75fr 1fr .55fr .55fr .55fr 1.15fr 1fr;align-items:center;min-height:54px;padding:0 12px;border-bottom:1px solid #eef1f5;color:#697488;font-size:12px}.reference-one-record-row.table-head{min-height:43px;background:#fafbfc;color:#7d8798;font-weight:600}.reference-one-record-row>strong{color:#2f384c}.reference-one-record-row>button{justify-self:end}.reference-record-status{display:inline-flex;align-items:center;justify-self:start;gap:5px;min-height:24px;padding:0 8px;border-radius:6px;color:#28a574;background:#eaf8f2;font-weight:600;white-space:nowrap}.reference-record-status i{width:5px;height:5px;border-radius:50%;background:currentColor}.reference-record-status.is-corrected{color:#c48628;background:#fff7e7}.ledger-detail>.detail-identity,.ledger-legacy-mobile{display:none!important}.reference-ledger-summary{display:grid;grid-template-columns:1.18fr repeat(3,1fr);min-height:100px;margin:0 0 16px;overflow:hidden;border:1px solid #e8ecf2;border-radius:10px;background:#fff}.reference-ledger-summary>span{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:14px 16px;border-left:1px solid #edf0f4}.reference-ledger-summary>span:first-child{border-left:0}.reference-ledger-summary>span.is-primary{background:#f3f6ff}.reference-ledger-summary small{color:#8a95a7;font-size:12px}.reference-ledger-summary strong{margin-top:8px;color:#30394d;font-size:20px;white-space:nowrap}.reference-ledger-summary .is-primary strong{color:#4f76df;font-size:24px}.reference-ledger-summary em{margin-top:6px;color:#8e98aa;font-size:11px;font-style:normal}.ledger-detail>.ledger-tabs{margin:0;border-bottom:1px solid #edf0f4}.ledger-detail>.ledger-section{margin-top:0}.ledger-detail>.ledger-section .detail-section-head{display:none}.payment-batch-list{overflow:hidden;border-radius:0;background:#fff}.payment-batch-row{margin:0;border:0;border-bottom:1px solid #edf0f4;border-radius:0;box-shadow:none}.payment-batch-row:last-child{border-bottom:0}.ledger-footer-stop{margin-right:auto}.ledger-footer-note{margin-left:auto;color:#9aa3b2;font-size:11px}}@media (min-width: 901px){.stats-page .page-heading>div,.finance-page .page-heading>div,.settings-page .page-heading>div{display:flex;align-items:baseline;gap:18px;min-width:0}.stats-page .page-heading h1,.finance-page .page-heading h1,.settings-page .page-heading h1{flex:0 0 auto;margin:0}.stats-page .page-heading p,.finance-page .page-heading p,.settings-page .page-heading p{margin:0;color:#8993a6;font-size:13px}.stats-legacy-mobile,.finance-legacy-mobile{display:none!important}.stats-reference-toolbar,.finance-reference-toolbar{display:flex;min-height:56px;margin-bottom:16px;padding:9px 14px;border:1px solid #edf0f5;border-radius:11px;background:#fff;box-shadow:0 3px 12px #2636560b;align-items:center;gap:14px}.stats-reference-tabs,.finance-reference-tabs{display:inline-flex;align-items:center;gap:4px;padding:3px;border-radius:8px;background:#f5f7fa}.stats-reference-tabs button,.stats-reference-tabs a,.finance-reference-tabs button,.stats-reference-range button,.finance-reference-range button{min-height:32px;padding:0 13px;border:0;border-radius:7px;background:transparent;color:#737e91;font:inherit;font-size:13px;line-height:32px;text-decoration:none;white-space:nowrap;cursor:pointer}.stats-reference-tabs .active,.finance-reference-tabs .active,.stats-reference-range button.active,.finance-reference-range button.active{background:#5d82ed;color:#fff;box-shadow:0 3px 8px #4769d138}.stats-reference-range,.finance-reference-range{display:flex;align-items:center;gap:3px;min-width:0}.stats-reference-range{flex:1;padding-left:14px;border-left:1px solid #edf0f4}.finance-reference-range{flex:1}.stats-reference-range>span,.finance-reference-range>span{margin-right:6px;color:#8d97a9;font-size:12px;white-space:nowrap}.stats-reference-range input,.finance-reference-range input{width:126px;height:32px;padding:0 8px;border:1px solid #e3e7ee;border-radius:7px;color:#566176;font:inherit;font-size:12px}.stats-reference-live,.finance-reference-note{margin-left:auto;color:#9aa3b3;font-size:12px;white-space:nowrap}.stats-reference-live i,.settings-storage-banner small i{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#43be8a}.stats-reference-metrics,.finance-reference-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.stats-reference-metrics article,.finance-reference-metrics article{position:relative;display:flex;align-items:flex-start;min-height:112px;padding:18px 16px;overflow:hidden;border:1px solid #edf0f5;border-radius:11px;background:#fff}.stats-reference-metrics article:after,.finance-reference-metrics article:after{content:"";position:absolute;top:-43px;right:-44px;width:122px;height:122px;border-radius:50%;background:#5c7ee60b}.stats-reference-icon,.finance-reference-icon{position:relative;z-index:1;display:grid;flex:0 0 38px;width:38px;height:38px;margin-right:12px;place-items:center;border-radius:9px;color:#5e80ec;background:#eef3ff}.stats-reference-icon.is-green,.finance-reference-icon.is-green{color:#32a777;background:#eaf8f3}.stats-reference-icon.is-indigo{color:#5e80ec;background:#eef3ff}.stats-reference-icon.is-amber,.finance-reference-icon.is-amber{color:#d49731;background:#fff7e9}.finance-reference-icon.is-red{color:#df6973;background:#fff0f2}.stats-reference-metrics article>div,.finance-reference-metrics article>div{min-width:0}.stats-reference-metrics small,.finance-reference-metrics small{display:block;margin-bottom:3px;color:#8e98aa;font-size:12px}.stats-reference-metrics strong,.finance-reference-metrics strong{display:block;color:#222b3c;font-size:clamp(21px,2vw,28px);line-height:1.2;white-space:nowrap}.stats-reference-metrics strong.is-risk,.finance-reference-metrics strong.is-amber{color:#d18e25}.finance-reference-metrics strong.is-red{color:#df5d69}.stats-reference-metrics em,.finance-reference-metrics em{margin-left:4px;color:inherit;font-size:12px;font-style:normal;font-weight:600}.stats-reference-metrics p,.finance-reference-metrics p{margin:7px 0 0;overflow:hidden;color:#98a1b0;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.stats-page .debt-bar,.stats-page .risk-bar{display:inline-flex;width:calc(50% - 7px);min-height:68px;margin:0 0 16px;padding:13px 15px;vertical-align:top;border-radius:9px}.stats-page .risk-bar{margin-left:10px}.stats-page .debt-title p,.stats-page .risk-bar p{display:none}.stats-page .debt-metrics{gap:14px}.stats-page .debt-metrics span:nth-child(2),.stats-page .debt-metrics span:nth-child(3){display:none}.stats-page .debt-list-button{margin-left:auto}.stats-student-filter{margin-bottom:0;border-bottom:0;border-radius:11px 11px 0 0;box-shadow:none}.stats-student-filter+.data-panel{border-radius:0 0 11px 11px}.finance-heading-actions{display:flex;align-items:center;gap:8px}.finance-reference-toolbar{display:flex}.finance-reference-tabs{flex:0 0 auto}.finance-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:2px;border-top:1px solid #edf0f4}.finance-section.surface-panel{min-height:258px;padding:22px 20px;border:0;border-radius:0;background:transparent;box-shadow:none}.finance-section.surface-panel+.finance-section.surface-panel{border-left:1px solid #edf0f4}.finance-section header h2{font-size:17px}.finance-category-list button,.finance-method-list>div{min-height:46px}.finance-method-list>div{display:grid;grid-template-columns:130px minmax(90px,1fr) 64px 90px;align-items:center;gap:10px}.finance-method-list>div:before{content:"";grid-column:2;height:6px;border-radius:6px;background:linear-gradient(90deg,#7999ef 0,#7999ef 48%,#eef1f6 48%,#eef1f6)}.finance-method-list>div>span{grid-column:1;grid-row:1}.finance-method-list>div>small{grid-column:3;grid-row:1}.finance-method-list>div>strong{grid-column:4;grid-row:1;text-align:right}.settings-storage-banner{display:flex;min-height:66px;margin-bottom:18px;padding:13px 16px;border:1px solid #dfe7fb;border-radius:10px;background:#f4f7ff;align-items:center}.settings-storage-banner .setting-icon{flex:0 0 36px;width:36px;height:36px;margin-right:12px;color:#5e80ec;background:#fff}.settings-storage-banner div{min-width:0}.settings-storage-banner strong{display:block;color:#5772c3;font-size:14px}.settings-storage-banner p{margin:3px 0 0;color:#7f8ca8;font-size:12px}.settings-storage-banner small{margin-left:auto;color:#65758e;white-space:nowrap}.settings-list{max-width:890px;gap:0}.setting-section-heading{margin:0 0 9px;padding-top:3px}.setting-section-heading:not(:first-of-type){margin-top:20px}.setting-section-heading .setting-section-title{margin:0;font-size:16px;font-weight:600}.setting-section-heading p{margin:4px 0 0;color:#9aa3b3;font-size:12px}.settings-list .setting-row{min-height:66px;margin:0;padding:12px 14px;border-radius:0;box-shadow:none}.setting-section-heading+.setting-row{border-radius:10px 10px 0 0}.settings-list .setting-row+.setting-row{border-top:0}.settings-list .setting-row:not(:has(+.setting-row)){border-radius:0 0 10px 10px}.settings-list .danger-setting{border-radius:10px!important}}@media (min-width: 901px) and (max-width: 1050px){.stats-reference-toolbar,.finance-reference-toolbar{flex-wrap:wrap}.stats-reference-tabs,.finance-reference-tabs{order:1}.stats-reference-range,.finance-reference-range{order:2;flex-basis:100%;padding-left:0;border-left:0}.stats-reference-live,.finance-reference-note{display:none}.stats-reference-metrics,.finance-reference-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-page .debt-bar,.stats-page .risk-bar{width:100%;margin-left:0}}@media (min-width: 901px){.one-legacy-mobile{display:none!important}.reference-one-workbench{overflow:hidden;padding:0;border-radius:11px}.reference-one-toolbar{display:flex;align-items:end;gap:10px;min-height:76px;padding:13px 12px;border-bottom:1px solid #edf0f4}.reference-one-toolbar .search-field{flex:0 1 290px;height:38px;margin-right:0}.reference-one-toolbar>label:not(.search-field){display:grid;gap:5px;color:#6f7a8d;font-size:11px}.reference-one-toolbar input[type=date],.reference-one-toolbar input[type=time]{width:120px;height:38px;padding:0 10px;border:1px solid #e2e7ef;border-radius:7px;background:#fff;color:#526077;font:inherit;font-size:12px}.reference-one-toolbar>span{margin:0 0 9px auto;color:#8993a5;font-size:12px;white-space:nowrap}.reference-one-toolbar>span strong{color:#293248}.reference-one-row{display:grid;grid-template-columns:minmax(170px,1.5fr) minmax(70px,.7fr) minmax(125px,1fr) minmax(100px,.8fr) minmax(80px,.7fr) 92px;align-items:center;min-height:56px;padding:0 12px;border-bottom:1px solid #f0f2f6;color:#677287;font-size:12px}.reference-one-row.table-head{min-height:44px;background:#fafbfc;color:#7d8798;font-size:12px;font-weight:600}.reference-one-row:last-of-type{border-bottom:0}.reference-one-row.is-warning{background:#fffdfa}.reference-one-status{display:inline-flex;align-items:center;justify-self:start;gap:5px;min-height:24px;padding:0 8px;border-radius:6px;font-weight:600}.reference-one-status i{width:5px;height:5px;border-radius:50%;background:currentColor}.reference-one-status.is-normal{color:#2aa776;background:#eaf8f2}.reference-one-status.is-warning{color:#cc8c25;background:#fff7e7}.reference-one-status.is-danger{color:#df6570;background:#fff0f2}.reference-one-balance{color:#313b50;font-size:13px}.reference-one-balance.is-warning{color:#d3932b}.reference-one-row .quick-deduct-button{min-height:34px;justify-self:end}.reference-one-footer{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 12px;color:#9aa3b3;font-size:12px}.reference-one-footer .ledger-pagination{margin:0}}@media (min-width: 901px) and (max-width: 1020px){.reference-one-row{grid-template-columns:minmax(145px,1.4fr) 65px minmax(108px,1fr) 90px 72px 80px;gap:6px}.reference-one-toolbar .search-field{flex-basis:220px}}@media (min-width: 901px){.students-page .page-heading{min-height:34px;align-items:center;margin-bottom:10px}.students-page .page-heading>div{display:flex;align-items:baseline;gap:18px}.students-page .page-heading h1{margin:0}.students-page .page-heading p{color:#8a919d;font-size:11px}.students-page .desktop-action{min-height:34px;padding-right:13px;padding-left:13px}.students-page .filter-bar{min-height:55px;margin-bottom:0;border:1px solid var(--border);border-bottom:0;border-radius:9px 9px 0 0;background:#fff;padding:9px 12px}.students-page .filter-bar .search-field{max-width:300px;flex:0 1 300px}.desktop-student-count{margin-left:auto;color:#8b929d;font-size:10px;white-space:nowrap}.students-page .data-panel{border-radius:0 0 9px 9px;box-shadow:var(--shadow-sm)}.students-page .student-table th{height:42px}.students-page .student-table td{height:54px}.desktop-ledger-status{display:inline-flex;min-height:23px;align-items:center;gap:5px;border-radius:5px;padding:0 7px;font-size:10px;font-weight:600;white-space:nowrap}.desktop-ledger-status i{width:5px;height:5px;border-radius:50%;background:currentColor}.desktop-ledger-status.is-normal{color:#2e8966;background:#ebf8f2}.desktop-ledger-status.is-low{color:#b57918;background:#fff7e7}.desktop-ledger-status.is-empty,.desktop-ledger-status.is-debt{color:#c24545;background:#fff0ef}.desktop-ledger-status.is-paused{color:#777f8b;background:#f0f2f4}.students-page .row-actions{gap:5px;flex-wrap:nowrap}.student-view-action{color:#3167bd}}@media (min-width: 901px){.groups-page .page-heading{min-height:34px;align-items:center;margin-bottom:10px}.groups-page .page-heading>div{display:flex;align-items:baseline;gap:18px}.groups-page .page-heading h1{margin:0}.groups-page .page-heading p{color:#8a919d;font-size:11px}.groups-page .page-heading .primary-button{min-height:34px}.groups-page .group-view-switch{display:inline-flex;gap:3px;margin-bottom:10px;border-radius:7px;background:#f1f3f6;padding:3px}.groups-page .group-view-switch button{min-height:32px;border:0;border-radius:6px;color:#727a86;background:transparent;padding:0 13px;font-size:11px}.groups-page .group-view-switch button.active{color:#3165bd;background:#fff;box-shadow:0 1px 4px #18274b17}.groups-page .group-list-head,.groups-page .group-row{grid-template-columns:minmax(180px,1.05fr) minmax(130px,.7fr) minmax(170px,.9fr) minmax(140px,.75fr) 88px 104px;gap:12px}.groups-page .group-list-head{min-height:42px}.groups-page .group-row{min-height:58px;padding-top:7px;padding-bottom:7px}.groups-page .group-row-main{min-width:0}.groups-page .group-row-main p{display:none}.groups-page .group-mark{width:32px;height:32px;color:#4e79c4;background:#edf3ff}.group-course-cell{display:flex!important;align-items:baseline;gap:7px;min-width:0}.group-course-cell strong{color:#4d5561;font-size:11px}.group-course-cell span,.group-note-cell{overflow:hidden;color:#8a919c;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.groups-page .group-created-cell{grid-column:4;min-width:0;overflow:hidden;color:var(--muted-ink);font-size:11px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.groups-page .group-count{grid-column:5;grid-row:1}.groups-page .group-count strong{font-size:14px}.groups-page .group-member-trigger{min-height:36px;justify-self:start;border:0;border-radius:9px;color:var(--ink);background:transparent;padding:4px 8px;font:inherit;text-align:left;cursor:pointer;transition:color .16s ease,background .16s ease}.groups-page .group-member-trigger:hover,.groups-page .group-member-trigger:focus-visible{color:var(--primary-strong);background:var(--primary-soft)}.groups-page .group-row .row-actions{grid-column:6;grid-row:1;gap:2px}.groups-page .group-row .row-actions .secondary-button{border-color:transparent;color:#3470c8;background:transparent;box-shadow:none}.groups-page .group-row .row-actions .secondary-button:hover{background:#eef4ff}.groups-page .group-more-action{min-width:26px;color:#8a919c;letter-spacing:1px}}@media (min-width: 901px) and (max-width: 1100px){.groups-page .group-list-head,.groups-page .group-row{grid-template-columns:minmax(165px,1fr) 120px minmax(130px,.8fr) 105px 72px 94px;gap:8px}}.class-member-manager{display:grid;gap:16px}.class-member-summary{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border);padding-bottom:14px}.class-member-summary>div{min-width:0}.class-member-summary strong{color:var(--ink);font-size:15px}.class-member-summary p,.class-transfer-unavailable p,.class-member-empty p{margin:3px 0 0;color:var(--muted-ink);font-size:12px;line-height:1.6}.class-member-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:end;gap:12px}.class-member-toolbar .search-field,.class-member-toolbar .class-target-field select{min-height:42px}.class-target-field{gap:6px}.class-member-list-head{display:flex;min-height:38px;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-bottom:0;border-radius:10px 10px 0 0;color:var(--muted-ink);background:var(--surface-subtle);padding:0 14px;font-size:12px}.class-member-list-head label{display:inline-flex;align-items:center;gap:8px;color:var(--ink);cursor:pointer}.class-member-list-head input,.class-member-row>input{width:17px;height:17px;accent-color:var(--primary)}.class-member-list{max-height:360px;overflow-y:auto;border:1px solid var(--border);border-radius:0 0 10px 10px}.class-member-row{display:grid;grid-template-columns:auto 38px minmax(0,1fr) auto;min-height:62px;align-items:center;gap:12px;padding:8px 14px;cursor:pointer;transition:background .16s ease}.class-member-row+.class-member-row{border-top:1px solid var(--border)}.class-member-row:hover,.class-member-row.selected{background:var(--primary-soft)}.member-avatar{display:grid;width:36px;height:36px;place-items:center;border-radius:9px;color:var(--primary-strong);background:var(--surface);font-size:12px;font-weight:700}.member-identity,.member-balance{display:grid;min-width:0;gap:2px}.member-identity strong{overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.member-identity small,.member-balance small{color:var(--muted-ink);font-size:11px}.member-balance{justify-items:end}.member-balance strong{color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums}.member-balance.warning strong{color:var(--danger)}.class-member-empty,.class-transfer-unavailable{border:1px dashed var(--border-strong);border-radius:10px;background:var(--surface-subtle);padding:20px}.class-member-empty{text-align:center}.class-transfer-unavailable{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;color:var(--muted-ink)}.class-transfer-unavailable strong{color:var(--ink);font-size:13px}.class-member-footer-summary{margin-right:auto;color:var(--muted-ink);font-size:12px}.class-member-footer-summary strong{color:var(--primary-strong);font-size:14px}.class-transfer-confirmation{display:grid;justify-items:center;gap:12px;padding:10px 6px 2px;text-align:center}.transfer-confirm-icon{display:grid;width:58px;height:58px;place-items:center;border-radius:50%;color:var(--primary);background:var(--primary-soft)}.class-transfer-confirmation h3{margin:2px 0 0;font-size:17px}.class-transfer-confirmation>p{max-width:580px;margin:0;color:var(--muted-ink);font-size:12px;line-height:1.65}.class-transfer-route{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle);padding:14px;text-align:left}.class-transfer-route>span{display:grid;gap:4px}.class-transfer-route>span:last-child{text-align:right}.class-transfer-route small{color:var(--muted-ink);font-size:11px}.class-transfer-route strong{color:var(--ink);font-size:13px}@media (min-width: 901px){.attendance-legacy-mobile{display:none!important}.attendance-page-heading{min-height:32px;align-items:center;margin-bottom:12px}.attendance-page-heading>div:first-child{display:flex;align-items:baseline;gap:18px}.attendance-page-heading .mobile-heading-line{flex:0 0 auto}.attendance-page-heading h1{margin:0}.attendance-page-heading p.desktop-only{color:#8a919d;font-size:11px}.attendance-page-heading .heading-date{display:none}.reference-attendance-controls{display:flex;min-height:52px;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px;border:1px solid var(--border);border-radius:9px;background:#fff;padding:6px 10px;box-shadow:var(--shadow-sm)}.reference-control-tabs,.reference-control-tabs nav,.reference-control-context{display:flex;align-items:center}.reference-control-tabs{min-width:0;gap:16px}.reference-control-tabs nav{gap:3px;border-radius:7px;background:#f4f5f7;padding:3px}.reference-control-tabs button{display:inline-flex;min-height:32px;align-items:center;gap:6px;border:0;border-radius:6px;color:#737b87;background:transparent;padding:0 12px;font-size:11px;font-weight:600;white-space:nowrap}.reference-control-tabs button.active{color:#3165bd;background:#fff;box-shadow:0 1px 4px #18274b1a}.reference-control-context{flex:0 0 auto;gap:6px}.reference-control-context>span{display:inline-flex;min-height:28px;align-items:center;gap:4px;border:1px solid #eceef2;border-radius:6px;color:#7a828e;background:#fbfcfd;padding:0 9px;font-size:10px;white-space:nowrap}.reference-control-context strong{color:#424a57;font-size:12px}.reference-control-context .reference-date{border:0;background:transparent;padding-right:12px}.reference-attendance-workbench{overflow:hidden;border-radius:9px}.reference-workbench-toolbar{display:grid;grid-template-columns:160px 132px minmax(190px,.8fr) minmax(170px,1fr) auto;min-height:58px;align-items:center;gap:10px;border-bottom:1px solid #edf0f3;padding:8px 12px}.reference-workbench-toolbar label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.reference-workbench-toolbar label>span{color:#7b838f;font-size:10px}.reference-workbench-toolbar input,.reference-workbench-toolbar select{width:100%;min-width:0;height:34px;border:1px solid #dfe3e8;border-radius:6px;color:#3d4551;background:#fff;padding:0 9px;font-size:11px}.reference-active-group,.reference-save-status{display:flex;align-items:center;gap:7px}.reference-active-group{color:#4266a2;border-left:1px solid #eceef2;padding-left:12px}.reference-active-group strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.reference-save-status{justify-content:flex-end;color:#9299a4;font-size:10px;white-space:nowrap}.reference-attendance-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #edf0f3}.reference-attendance-empty{display:grid;grid-template-columns:48px minmax(0,1fr) auto;min-height:150px;align-items:center;gap:14px;padding:24px}.reference-attendance-empty-icon{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:12px;color:#55749f;background:#edf3fb}.reference-attendance-empty strong{color:#303743;font-size:14px}.reference-attendance-empty p{margin:6px 0 0;color:#7f8793;font-size:11px}.reference-attendance-metrics>span{display:flex;min-height:66px;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px}.reference-attendance-metrics>span+span{border-left:1px solid #edf0f3}.reference-attendance-metrics small{color:#8b929e;font-size:10px}.reference-attendance-metrics strong{color:#303743;font-size:18px;font-variant-numeric:tabular-nums}.reference-attendance-metrics .primary-metric strong{color:var(--primary)}.reference-attendance-table{overflow:hidden}.reference-attendance-row{display:grid;grid-template-columns:minmax(190px,1.15fr) .55fr .68fr .55fr minmax(190px,1fr) .62fr;min-height:58px;align-items:center;gap:12px;border-bottom:1px solid #edf0f3;padding:7px 14px;color:#505865;font-size:11px}.reference-attendance-row.table-head{min-height:40px;color:#747c88;background:#fafbfc;font-size:10px;font-weight:650}.reference-attendance-row:not(.table-head):hover{background:#fafcff}.reference-attendance-row.is-absent{color:#9299a4;background:#fafafa}.reference-balance,.reference-after-balance{font-variant-numeric:tabular-nums}.reference-balance.is-warning,.reference-after-balance.is-warning{color:#b87918}.reference-after-balance{justify-self:end;color:#303743}.reference-status-segment{display:grid;grid-template-columns:repeat(2,minmax(74px,1fr));gap:3px;border-radius:6px;background:#f2f3f6;padding:3px}.reference-status-segment button{min-height:30px;border:0;border-radius:5px;color:#858c97;background:transparent;padding:0 7px;font-size:10px;white-space:nowrap}.reference-status-segment button.active{color:#3464b4;background:#fff;box-shadow:0 1px 4px #18274b14}.reference-status-segment button:last-child.active{color:var(--danger);background:var(--danger-soft)}.reference-submit-bar{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:16px;background:#fff;padding:8px 12px 8px 15px}.reference-submit-bar>div{display:flex;align-items:center;gap:16px}.reference-submit-bar strong{font-size:12px}.reference-submit-bar span{color:#8b929e;font-size:10px}.reference-submit-bar .primary-button{min-width:132px}}@media (min-width: 901px) and (max-width: 1180px){.reference-control-context>span:not(.reference-date):nth-last-child(n+3),.reference-save-status{display:none}.reference-workbench-toolbar{grid-template-columns:148px 118px minmax(170px,1fr) minmax(140px,.8fr)}.reference-attendance-row{grid-template-columns:minmax(150px,1fr) 68px 78px 70px minmax(160px,1fr) 72px;gap:8px;padding-right:10px;padding-left:10px}}@media (min-width: 901px) and (max-width: 980px){.attendance-row,.instant-attendance-row{grid-template-columns:minmax(128px,1fr) 64px 86px 60px minmax(168px,1fr);gap:6px;padding-right:10px;padding-left:10px}.attendance-row .avatar{width:30px;height:30px}.student-name-cell{gap:7px}.instant-status-segment{min-width:160px;grid-template-columns:repeat(2,minmax(70px,1fr))}.instant-status-segment button{padding-right:5px;padding-left:5px}}@media (min-width: 901px){.demo-banner{display:none}.desktop-topbar{gap:18px;padding-right:18px;padding-left:20px}.desktop-breadcrumb{flex:0 0 auto}.desktop-global-search{display:flex;width:min(280px,26vw);min-height:34px;align-items:center;gap:8px;margin-left:auto;border:1px solid #e2e5ea;border-radius:7px;color:#8a919d;background:#f7f8fa;padding:0 8px 0 11px;text-align:left}.desktop-global-search:hover{border-color:#cdd6e5;color:#596273;background:#fff}.desktop-global-search span{overflow:hidden;flex:1;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.desktop-global-search kbd{border:1px solid #dfe3e8;border-radius:5px;color:#8d949f;background:#fff;padding:3px 6px;font-family:inherit;font-size:10px;font-weight:500;white-space:nowrap}.desktop-topbar-actions{gap:8px}.desktop-demo-pill{display:none;min-height:24px;align-items:center;border:1px solid #f0d397;border-radius:999px;color:#8a6119;background:#fff8e8;padding:0 8px;font-size:10px;white-space:nowrap}.desktop-alert-shortcut{position:relative;display:inline-grid;width:34px;height:34px;place-items:center;border:0;border-radius:7px;color:#69717e;background:transparent;padding:0}.desktop-alert-shortcut:hover{color:var(--primary);background:var(--primary-soft)}.desktop-alert-shortcut i{position:absolute;top:1px;right:0;display:inline-grid;min-width:15px;height:15px;place-items:center;border:2px solid #fff;border-radius:999px;color:#fff;background:var(--danger);padding:0 3px;font-size:8px;font-style:normal;font-weight:700}.desktop-teacher-chip{display:flex;align-items:center;gap:8px;border-left:1px solid #e7e9ed;padding-left:12px}.desktop-teacher-chip>span{display:inline-grid;width:30px;height:30px;place-items:center;border-radius:8px;color:#2459ad;background:#eaf1fd;font-size:12px;font-weight:750}.desktop-teacher-chip div{display:grid;gap:1px}.desktop-teacher-chip strong{font-size:11px;line-height:1.2}.desktop-teacher-chip small{color:#9299a5;font-size:9px;line-height:1.2;white-space:nowrap}.desktop-settings-shortcut{display:none;width:34px;min-height:34px;justify-content:center;padding:0}.page{padding-top:19px}}@media (min-width: 901px) and (max-width: 1080px){.desktop-global-search{width:min(310px,32vw)}.desktop-teacher-chip div,.desktop-demo-pill{display:none}.desktop-teacher-chip{border-left:0;padding-left:0}}.attendance-mode-switch{display:inline-flex;gap:4px;margin-bottom:16px;border:1px solid var(--border);border-radius:11px;background:#eef1f5;padding:4px}.attendance-mode-switch button{display:inline-flex;min-height:44px;align-items:center;gap:8px;border:0;border-radius:8px;color:#596271;background:transparent;padding:0 15px;font-size:13px;font-weight:650}.attendance-mode-switch button.active{color:var(--primary);background:#fff;box-shadow:0 3px 10px #18274b17}.attendance-mode-switch i{display:inline-grid;min-width:22px;height:22px;place-items:center;border-radius:999px;color:var(--primary);background:var(--primary-soft);font-size:11px;font-style:normal}.toolbar-status{gap:7px}.toolbar-status>span:not(.status-dot){min-width:0}.toolbar-status .text-button{min-height:36px;margin-left:auto;white-space:nowrap}.toolbar-status.is-editing{color:#995115;background:#fff8eb}.toolbar-status.is-dirty{color:#995115}.toolbar-status.is-dirty .status-dot,.toolbar-status.is-editing .status-dot{background:#d97706;box-shadow:0 0 0 4px #fff3d9}@media (max-width: 720px){.toolbar-status .text-button{min-height:44px}}.attendance-summary{grid-template-columns:repeat(5,minmax(0,1fr))}.attendance-summary .attendance-state-metric{align-items:center}.attendance-summary .attendance-state-metric strong{color:var(--muted-ink);font-size:17px;letter-spacing:0}.attendance-row{grid-template-columns:1.25fr .65fr .86fr .62fr minmax(250px,1.35fr)}.attendance-actions{justify-content:flex-end}.status-segment{display:inline-grid;grid-template-columns:repeat(2,minmax(92px,1fr));gap:3px;border:1px solid var(--border-strong);border-radius:9px;background:#f2f4f7;padding:3px}.status-segment button{min-height:34px;border:0;border-radius:6px;color:#687180;background:transparent;padding:0 9px;font-size:12px;font-weight:650}.status-segment button.active{color:var(--success);background:#fff;box-shadow:0 2px 7px #18274b1a}.status-segment button.absent.active{color:var(--danger);background:var(--danger-soft)}.choice-segment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.teaching-mode-field{margin:0;border:0;padding:0}.teaching-mode-field legend{margin-bottom:8px;color:#505968;font-size:13px;font-weight:650}.choice-segment label{display:flex;min-height:62px;align-items:center;gap:10px;border:1px solid var(--border-strong);border-radius:10px;background:#fff;padding:10px 12px;cursor:pointer}.choice-segment label.active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px #235fc714}.choice-segment input{width:17px;height:17px;accent-color:var(--primary)}.choice-segment span{display:grid;gap:2px}.choice-segment strong{font-size:13px}.choice-segment small,.one-to-one-form-note span{color:var(--muted-ink);font-size:11px}.one-to-one-form-note{display:grid;align-content:center;gap:4px;min-height:68px;border:1px solid #cbdcf7;border-radius:10px;background:var(--primary-soft);padding:11px 13px}.one-to-one-form-note strong{color:var(--primary-strong);font-size:13px}.group-label.is-one-to-one{color:var(--primary-strong);background:var(--primary-soft)}.one-records,.finance-section{overflow:hidden}.finance-section>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border);padding:18px 19px 15px}.finance-section h2{margin-bottom:4px;font-size:16px}.finance-section header p{margin:0;color:var(--muted-ink);font-size:12px}.inline-empty{color:var(--muted-ink);font-size:11px}.inline-empty{padding:24px 12px;text-align:center}.one-records{margin-top:18px}.one-record-row{display:grid;grid-template-columns:110px minmax(170px,1.2fr) 110px 90px 90px auto;min-height:72px;align-items:center;gap:14px;border-bottom:1px solid #edf0f3;padding:9px 18px}.one-record-row:last-child{border-bottom:0}.one-record-row>span,.one-record-time,.one-record-student>span:last-child{display:grid;gap:3px}.one-record-time strong{font-size:18px;font-variant-numeric:tabular-nums}.one-record-row small{color:var(--muted-ink);font-size:10px}.one-record-student{display:flex!important;align-items:center;gap:9px}.one-record-actions{display:flex;justify-content:flex-end;gap:7px}.instant-attendance-row{grid-template-columns:minmax(200px,1.2fr) minmax(110px,.55fr) minmax(130px,.65fr) minmax(110px,.5fr) minmax(260px,1.1fr)}.attendance-result-heading,.attendance-status-heading,.attendance-row-result{justify-self:center;text-align:center}.attendance-row-result{width:100%}.instant-status-segment{min-width:220px}.instant-status-segment button{min-height:42px;touch-action:manipulation}.instant-status-segment button:disabled{cursor:not-allowed;opacity:.45}.toolbar-edit-actions{display:inline-flex;align-items:center;gap:5px;margin-left:auto}.toolbar-edit-actions .primary-button{min-height:36px}.instant-save-hint{display:inline-flex;min-height:32px;align-items:center;gap:6px;border-radius:999px;color:var(--primary-strong);background:var(--primary-soft);padding:0 10px;font-size:11px;font-weight:650;white-space:nowrap}.instant-complete-hint{display:inline-flex;min-height:34px;align-items:center;gap:6px;border-radius:999px;color:var(--success);background:var(--success-soft);padding:0 11px;font-size:11px;font-weight:700;white-space:nowrap}.attendance-submit-bar{position:sticky;z-index:24;bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:16px;border-color:#bfd2f2;background:#fffffff7;padding:14px 16px;box-shadow:0 14px 36px #1d365b29;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.attendance-submit-bar>div{display:grid;gap:3px}.attendance-submit-bar strong{font-size:14px}.attendance-submit-bar span{color:var(--muted-ink);font-size:12px}.attendance-submit-bar .primary-button{min-width:230px;min-height:46px;flex:0 0 auto}.attendance-submit-bar.is-saved{border-color:var(--border);box-shadow:var(--shadow-sm)}.instant-save-hint .status-dot{background:var(--primary)}.quick-deduct-panel,.quick-records{overflow:hidden}.quick-deduct-search{width:calc(100% - 36px);margin:14px 18px 8px}.quick-deduct-list{display:grid;padding:0 10px 10px}.quick-deduct-list article{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;min-height:72px;align-items:center;gap:12px;border-bottom:1px solid #edf0f3;border-radius:9px;padding:9px 10px}.quick-deduct-list article:last-of-type{border-bottom:0}.quick-deduct-list article.is-warning{background:#fffaf3}.quick-student-copy{display:grid;gap:3px}.quick-student-copy small{color:var(--muted-ink);font-size:11px}.quick-deduct-button{min-width:92px;touch-action:manipulation}.quick-deduct-button:active,.instant-status-segment button:active{filter:brightness(.94)}.quick-record-row{grid-template-columns:110px minmax(180px,1fr) 140px 100px auto}.quick-record-row.is-corrected-off{background:#fafafa}.quick-record-row.is-corrected-off .one-record-time,.quick-record-row.is-corrected-off .one-record-student{opacity:.68}.one-record-filterbar{display:grid;grid-template-columns:minmax(220px,1.35fr) repeat(3,minmax(140px,.65fr)) auto;align-items:end;gap:10px;margin-bottom:14px;border:1px solid var(--border);border-radius:11px;background:#f8fafc;padding:12px}.one-record-filterbar label{display:grid;min-width:0;gap:6px}.one-record-filterbar label>span{color:#505968;font-size:11px;font-weight:650}.one-record-filterbar input,.one-record-filterbar select{width:100%;min-width:0;min-height:42px;border:1px solid var(--border-strong);border-radius:8px;color:var(--ink);background:#fff;padding:0 10px;font-size:13px}.one-record-filterbar select{padding-right:32px}.one-record-filter-reset{min-height:42px;white-space:nowrap}.deduction-result{display:inline-flex;min-width:54px;min-height:42px;flex:0 0 auto;align-items:center;justify-content:center;color:var(--primary);font-size:21px;font-variant-numeric:tabular-nums;font-weight:750;letter-spacing:-.02em}.deduction-result.is-no-deduction{color:var(--muted-ink);font-size:14px;letter-spacing:0}.attendance-workflow-tabs{margin-bottom:16px}.group-attendance-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.group-records-panel{overflow:hidden}.group-records-header{align-items:center}.group-records-heading{min-width:250px}.group-record-filters{display:flex;min-width:0;flex:1;align-items:center;justify-content:flex-end;gap:8px}.group-record-filters label{min-width:0}.group-record-filters select,.group-record-filters input{width:150px;min-height:38px;border:1px solid var(--border-strong);border-radius:8px;color:var(--ink);background:#fff;padding:0 32px 0 10px;font-size:12px}.group-record-filters input{width:142px;padding-right:10px}.compact-filter-reset{flex:0 0 auto;white-space:nowrap}.group-records-panel>.ledger-pagination,.quick-deduct-panel>.ledger-pagination,.one-record-modal-list+.ledger-pagination{padding:14px 18px 18px}.group-session-list{display:grid}.group-session-record{border-bottom:1px solid #edf0f3}.group-session-record:last-child{border-bottom:0}.group-session-record>button{display:grid;width:100%;min-height:78px;grid-template-columns:minmax(128px,.8fr) minmax(180px,1.3fr) minmax(94px,.62fr) minmax(94px,.62fr) minmax(94px,.65fr) minmax(118px,auto);align-items:center;gap:16px;border:0;color:var(--ink);background:#fff;padding:12px 20px;text-align:left;cursor:pointer;transition:background-color .16s ease}.group-session-record>button:hover{background:#f8fafc}.group-session-record>button:active{background:#f2f5f9}.group-session-record>button>span{display:grid;min-width:0;gap:4px}.group-session-record strong{overflow-wrap:anywhere;font-size:13px;font-variant-numeric:tabular-nums}.group-session-record small{color:var(--muted-ink);font-size:11px}.group-session-date strong,.group-session-name strong{font-size:14px}.group-session-group-tag{display:inline-flex;width:fit-content;max-width:100%;align-items:center;border:1px solid #cbdcf7;border-radius:7px;color:var(--primary-strong);background:var(--primary-soft);padding:3px 8px;line-height:1.25}.group-session-deduct strong{color:var(--primary-strong);font-size:15px}.group-session-action{display:inline-flex!important;grid-auto-flow:column;align-items:center;justify-content:end;gap:5px!important;color:var(--primary-strong);font-size:12px;font-weight:650;white-space:nowrap}.group-record-editor{display:grid;gap:14px}.group-record-summary{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(150px,.7fr));overflow:hidden;border:1px solid #cbdcf7;border-radius:11px;background:var(--primary-soft)}.group-record-summary>div,.group-record-summary>span{display:grid;align-content:center;gap:4px;min-height:76px;padding:14px 17px}.group-record-summary>span{border-left:1px solid #cbdcf7}.group-record-summary strong{font-size:15px;font-variant-numeric:tabular-nums}.group-record-summary span,.group-record-summary small{color:var(--muted-ink);font-size:11px}.group-record-meta{display:grid;grid-template-columns:repeat(2,minmax(180px,.55fr)) minmax(280px,1fr);align-items:end;gap:12px}.group-record-meta p{margin:0;border-radius:9px;color:#536276;background:#f4f7fa;padding:10px 12px;font-size:11px;line-height:1.55}.group-record-students,.one-record-modal-list{overflow:hidden;border:1px solid var(--border);border-radius:11px}.record-edit-row{display:grid;grid-template-columns:minmax(190px,1.15fr) minmax(100px,.55fr) minmax(110px,.6fr) minmax(290px,1.3fr);min-height:66px;align-items:center;gap:14px;border-bottom:1px solid #edf0f3;padding:8px 14px}.record-edit-row:last-child{border-bottom:0}.record-edit-row.is-absent{background:#fffbf8}.record-edit-row .instant-status-segment{justify-self:end}.record-status-editor{display:flex;align-items:center;justify-content:flex-end;gap:10px}.attendance-confirmation{display:grid;gap:14px}.confirmation-lead{margin:0;color:#465364;font-size:13px;line-height:1.65}.confirmation-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;margin:0;border:1px solid var(--border);border-radius:11px;background:#fff}.confirmation-facts>div{display:grid;gap:5px;min-height:68px;align-content:center;border-bottom:1px solid var(--border);padding:12px 15px}.confirmation-facts>div:nth-child(odd):not(.is-wide){border-right:1px solid var(--border)}.confirmation-facts>div:nth-last-child(-n+2){border-bottom:0}.confirmation-facts>.is-wide{grid-column:1 / -1}.confirmation-facts dt{color:var(--muted-ink);font-size:11px}.confirmation-facts dd{margin:0;color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums;font-weight:650}.confirmation-facts dd strong{margin-left:5px;color:var(--primary-strong)}.confirmation-impact{display:grid;gap:4px;border:1px solid #cbdcf7;border-radius:11px;background:var(--primary-soft);padding:15px 16px}.confirmation-impact>span,.confirmation-impact>small{color:#536276;font-size:11px}.confirmation-impact>strong{color:var(--primary-strong);font-size:22px;font-variant-numeric:tabular-nums}.confirmation-impact.is-correction>strong{font-size:17px}.confirmation-note{margin:0;border-radius:9px;color:#6a4a1b;background:#fff8eb;padding:10px 12px;font-size:12px;line-height:1.6}@media (min-width: 901px){.group-submit-progress{display:grid;gap:16px}.group-submit-progress .submission-facts{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);overflow:hidden;margin:0;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.group-submit-progress .submission-facts>div{display:grid;grid-template-columns:76px minmax(0,1fr);min-height:58px;align-items:center;gap:12px;border-bottom:1px solid var(--border);padding:10px 14px}.group-submit-progress .submission-facts>div:nth-child(odd){border-right:1px solid var(--border)}.group-submit-progress .submission-facts>div:nth-last-child(-n+2){border-bottom:0}.group-submit-progress .submission-facts dt{color:var(--muted-ink);font-size:11px}.group-submit-progress .submission-facts dd{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.group-submit-progress .submission-facts>div:last-child dd{color:var(--primary-strong)}.group-submit-progress>p{display:flex;min-height:42px;align-items:center;gap:8px;margin:0;border-radius:9px;color:var(--primary-strong);background:var(--primary-soft);padding:10px 12px;font-size:12px}.group-submit-progress>p>svg{flex:0 0 auto}.group-submit-loading-button{gap:9px}.group-submit-loading-button>span{width:16px;height:16px;flex:0 0 auto;border:2px solid rgba(255,255,255,.46);border-top-color:#fff;border-radius:50%;animation:attendance-submit-spin .8s linear infinite}}@keyframes attendance-submit-spin{to{transform:rotate(360deg)}}.one-record-trigger{display:inline-flex;min-height:40px;align-items:center;gap:7px;white-space:nowrap}.one-record-trigger span{display:inline-grid;min-width:21px;min-height:21px;place-items:center;border-radius:999px;color:var(--primary-strong);background:var(--primary-soft);padding:0 6px;font-size:11px}.finance-metrics{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(520px,1.4fr);gap:14px;margin:18px 0}.finance-primary-metric{display:grid;align-content:center;min-height:138px;border-radius:var(--radius);color:#fff;background:#183f82;padding:23px 25px;box-shadow:0 10px 24px #183f822e}.finance-primary-metric>span{color:#dbe8ff;font-size:12px}.finance-primary-metric>strong{margin:7px 0 4px;font-size:clamp(28px,3vw,40px);font-variant-numeric:tabular-nums;letter-spacing:-.035em}.finance-primary-metric p{margin:0;color:#dbe8ff;font-size:12px}.finance-secondary-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}.finance-secondary-metrics article{display:flex;min-height:68px;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px}.finance-secondary-metrics article:nth-child(odd){border-right:1px solid var(--border)}.finance-secondary-metrics article:nth-child(-n+2){border-bottom:1px solid var(--border)}.finance-secondary-metrics span{color:var(--muted-ink);font-size:12px}.finance-secondary-metrics strong{font-size:20px;font-variant-numeric:tabular-nums}.finance-secondary-metrics small{margin-left:3px;color:var(--muted-ink);font-size:11px}.finance-tabs{display:flex;gap:24px;margin-bottom:16px;border-bottom:1px solid var(--border)}.finance-tabs button{position:relative;display:inline-flex;min-height:46px;align-items:center;gap:7px;border:0;color:var(--muted-ink);background:transparent;padding:0 2px;font-size:13px;font-weight:650}.finance-tabs button.active{color:var(--primary)}.finance-tabs button.active:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;border-radius:2px;background:var(--primary);content:""}.finance-tabs span{display:inline-grid;min-width:22px;height:22px;place-items:center;border-radius:999px;background:#eef1f5;font-size:10px}.finance-overview-grid{display:grid;grid-template-columns:minmax(480px,1.35fr) minmax(300px,.65fr);gap:16px}.finance-category-list button{display:grid;grid-template-columns:minmax(0,1fr) auto auto;width:100%;min-height:66px;align-items:center;gap:14px;border:0;border-bottom:1px solid #edf0f3;color:var(--ink);background:#fff;padding:10px 18px;text-align:left}.finance-category-list button:last-child{border-bottom:0}.finance-category-list button:hover{background:#f8fafc}.finance-category-list button>span{display:grid;gap:4px}.finance-category-list small{color:var(--muted-ink);font-size:11px}.finance-category-list button>strong{font-size:15px;font-variant-numeric:tabular-nums}.finance-method-list{display:grid;padding:4px 18px 11px}.finance-method-list>div{display:grid;grid-template-columns:minmax(80px,1fr) auto 48px;min-height:49px;align-items:center;gap:10px;border-bottom:1px solid #edf0f3;font-size:13px}.finance-method-list>div:last-child{border-bottom:0}.finance-method-list strong,.finance-method-list small{font-variant-numeric:tabular-nums;text-align:right}.finance-method-list small{color:var(--muted-ink);font-size:10px}.finance-filter-bar{grid-template-columns:minmax(260px,1fr) 220px 180px}.finance-table th,.finance-table td{white-space:nowrap}.debt-summary-panel{display:grid;grid-template-columns:minmax(260px,1.3fr) repeat(3,minmax(120px,.55fr));align-items:center;gap:16px;margin-bottom:16px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:16px 18px}.debt-summary-panel.has-debt{border-color:#efc1bd;background:#fff8f7}.debt-summary-panel>div{display:flex;align-items:center;gap:11px}.debt-summary-panel>div div,.debt-summary-panel>span{display:grid;gap:3px}.debt-summary-panel p{margin:0;color:var(--muted-ink);font-size:11px}.data-table .withdrawn-row{color:#6f5960;background:#fff8f8}.data-table .withdrawn-row:hover{background:#fff3f3}.student-status-badge.is-withdrawn,.desktop-ledger-status.is-withdrawn{border-color:#e8b7bb;color:#a93c45;background:#fff0f1}.student-refund-action,.refund-value{color:var(--danger-strong)!important}.refund-form{display:grid;gap:16px}.refund-student-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border-bottom:1px solid var(--border);padding-bottom:14px}.refund-student-avatar{display:grid;width:44px;height:44px;place-items:center;border-radius:11px;color:var(--primary-strong);background:var(--primary-soft);font-size:13px;font-weight:750}.refund-student-summary>div,.refund-student-summary>span:last-child{display:grid;gap:3px}.refund-student-summary p,.refund-total-card p{margin:0;color:var(--muted-ink);font-size:12px}.refund-student-summary>span:last-child{justify-items:end}.refund-student-summary>span:last-child small{color:var(--muted-ink);font-size:11px}.refund-student-summary>span:last-child strong{font-size:18px;font-variant-numeric:tabular-nums}.refund-total-card{display:flex;min-height:96px;align-items:center;justify-content:space-between;gap:18px;border:1px solid #efc2c5;border-radius:12px;color:var(--danger-strong);background:#fff5f5;padding:16px 18px}.refund-total-card>div{display:grid;gap:4px}.refund-total-card>div>span{color:#8d555a;font-size:12px;font-weight:650}.refund-total-card strong{font-size:28px;font-variant-numeric:tabular-nums}.refund-total-card>svg{flex:0 0 auto}.refund-mode-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;border:0;padding:0}.refund-mode-choice legend{grid-column:1 / -1;margin-bottom:1px;color:var(--ink);font-size:13px;font-weight:700}.refund-mode-choice label{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);min-height:76px;align-items:start;gap:10px;border:1px solid var(--border);border-radius:11px;background:#fff;padding:13px;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.refund-mode-choice label:hover{border-color:var(--primary-border)}.refund-mode-choice label.is-active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 18%,transparent)}.refund-mode-choice label:focus-within{outline:2px solid color-mix(in srgb,var(--primary) 32%,transparent);outline-offset:2px}.refund-mode-choice input,.refund-package-option>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.refund-mode-radio,.refund-package-radio{display:grid;width:18px;height:18px;place-items:center;border:1px solid #aebbd0;border-radius:50%;background:#fff}.refund-mode-choice label.is-active .refund-mode-radio,.refund-package-option.is-selected .refund-package-radio{border:5px solid var(--primary)}.refund-mode-choice label>span:last-child,.refund-mode-choice label>span:last-child small{display:block}.refund-mode-choice label>span:last-child{display:grid;gap:5px}.refund-mode-choice small{color:var(--muted-ink);font-size:11px;line-height:1.45}.refund-package-list{overflow:hidden;border:1px solid var(--border);border-radius:11px;background:#fff}.refund-package-list header{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:16px;padding:8px 14px;color:var(--muted-ink);background:var(--surface-subtle);font-size:12px}.refund-package-list header>span,.refund-package-main,.refund-package-main>span:first-child,.refund-package-value{display:grid;gap:3px}.refund-package-list header>span{gap:1px}.refund-package-list header strong{color:var(--ink)}.refund-package-list header small,.refund-package-option small{color:var(--muted-ink);font-size:11px}.refund-package-option{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-height:72px;align-items:center;gap:12px;padding:11px 14px;cursor:pointer;transition:background .16s ease,box-shadow .16s ease}.refund-package-option+.refund-package-option{border-top:1px solid var(--border)}.refund-package-option:hover{background:var(--surface-subtle)}.refund-package-option.is-selected{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.refund-package-option.is-locked{cursor:default}.refund-package-option.is-locked .refund-package-radio{border-width:1px;color:#fff;background:var(--primary)}.refund-package-option:focus-within{outline:2px solid color-mix(in srgb,var(--primary) 28%,transparent);outline-offset:-2px}.refund-package-main{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px}.refund-package-usage{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 10px}.refund-package-usage strong{color:var(--primary-strong);font-size:12px}.refund-package-value{min-width:90px;justify-items:end;font-variant-numeric:tabular-nums}.refund-package-value strong{color:var(--danger-strong);font-size:16px}.refund-fields{border-top:1px solid var(--border);padding-top:16px}.refund-confirmation{display:grid;justify-items:center;gap:12px;text-align:center}.refund-confirm-icon{display:grid;width:58px;height:58px;place-items:center;border-radius:50%;color:var(--danger);background:var(--danger-soft)}.refund-confirmation h3{margin:0;font-size:20px}.refund-confirmation>p{max-width:52ch;margin:0;color:var(--muted-ink);line-height:1.7}.refund-confirmation>p b{color:var(--danger-strong)}.refund-confirmation dl{display:grid;width:100%;margin:2px 0 0;border:1px solid var(--border);border-radius:11px;background:#fff;padding:4px 14px;text-align:left}.refund-confirmation dl>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px;border-bottom:1px solid var(--border);padding:11px 0}.refund-confirmation dl>div:last-child{border-bottom:0}.refund-confirmation dt{color:var(--muted-ink)}.refund-confirmation dd{margin:0;color:var(--ink);font-weight:650;text-align:right}.refund-history-list{overflow:hidden;margin-bottom:14px;border:1px solid #efc2c5;border-radius:11px;background:#fff8f8}.refund-history-list article{display:flex;min-height:60px;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px}.refund-history-list article+article{border-top:1px solid #f1d7d9}.refund-history-list article>span{display:grid;gap:3px}.refund-history-list article>span:last-child{justify-items:end;color:var(--danger-strong);font-variant-numeric:tabular-nums}.refund-history-list small{color:var(--muted-ink);font-size:11px}.package-status.is-refunded{border-color:#e8b7bb;color:var(--danger-strong);background:var(--danger-soft)}.package-note.refund-note{color:#8d3b43;background:#fff0f1}.transaction-type{display:inline-flex;min-height:24px;align-items:center;border-radius:6px;color:var(--success);background:var(--success-soft);padding:0 8px;font-size:11px;font-weight:700}.transaction-type.is-refund{color:var(--danger-strong);background:var(--danger-soft)}.refund-transaction-row{background:snow}.refund-transaction-row .refund-value,.finance-payment-cards article.is-refund .finance-payment-amount strong{color:var(--danger-strong)}.debt-summary-panel small{color:var(--muted-ink);font-size:10px}.debt-summary-panel>span strong{color:var(--danger-strong);font-variant-numeric:tabular-nums}@media (max-width: 1100px) and (min-width: 901px){.attendance-row{grid-template-columns:1.1fr .6fr .75fr .55fr minmax(230px,1.4fr);gap:10px;padding-right:14px;padding-left:14px}.attendance-actions .text-button{display:none}.one-record-row{grid-template-columns:90px minmax(150px,1fr) 90px 72px 72px auto;gap:9px}.instant-attendance-row{grid-template-columns:minmax(175px,1fr) 90px 105px 80px minmax(230px,1.15fr)}.quick-record-row{grid-template-columns:90px minmax(150px,1fr) 125px 84px auto}.finance-metrics,.finance-overview-grid{grid-template-columns:1fr}}@media (max-width: 900px){.instant-attendance-page.has-fixed-group-submit{padding-bottom:132px}.instant-attendance-page .page-heading{margin-bottom:12px}.instant-attendance-page .page-heading p{display:none}.instant-attendance-page .attendance-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.instant-attendance-page .attendance-toolbar .group-select-field,.instant-attendance-page .toolbar-status{grid-column:1 / -1}.instant-attendance-page .toolbar-status{align-items:flex-start;white-space:normal}.instant-attendance-page .toolbar-status>span:not(.status-dot){overflow-wrap:anywhere}.instant-attendance-page .attendance-summary{margin-top:10px}.instant-attendance-page .attendance-summary>div{min-height:54px;padding:8px 5px}.instant-attendance-page .attendance-summary>div:not(:last-child):after{top:9px;height:34px}.instant-attendance-page .attendance-summary span{font-size:10px}.instant-attendance-page .attendance-summary strong{font-size:20px}.instant-attendance-page .attendance-summary .attendance-state-metric strong{font-size:12px}.instant-attendance-page .attendance-list .list-header{padding:12px 14px}.instant-attendance-page .attendance-list .list-header p,.instant-attendance-page .attendance-list .instant-save-hint{display:none}.instant-attendance-page .attendance-card-main{min-height:58px;padding-top:7px;padding-bottom:5px}.attendance-submit-bar{position:fixed;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));left:12px;display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:10px;margin:0;padding:11px 12px}.attendance-submit-bar>div{display:none}.attendance-submit-bar .primary-button{width:100%;min-width:0;min-height:48px}.attendance-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.attendance-mode-switch button{justify-content:center;padding:0 10px}.attendance-summary{grid-template-columns:repeat(5,minmax(0,1fr))}.attendance-summary>div{padding-right:7px;padding-left:7px}.attendance-summary strong{font-size:22px}.status-card-foot{min-height:54px;gap:9px;padding:4px 14px 10px}.status-card-foot .status-segment{flex:1}.status-card-foot .deduction-result{min-width:46px}.instant-status-segment{min-width:0}.status-segment button{min-height:44px}.one-record-row{grid-template-columns:78px minmax(0,1fr) auto;gap:8px 12px;padding:12px 14px}.one-record-row>span:nth-child(3){justify-items:end}.one-record-row>span:nth-child(4),.one-record-row>span:nth-child(5){border-radius:8px;background:#f6f8fb;padding:8px 10px}.one-record-row>span:nth-child(4){grid-column:1 / 3;grid-row:2}.one-record-row>span:nth-child(5){grid-column:3;grid-row:2}.one-record-actions{grid-column:1 / -1;grid-row:3;justify-content:stretch}.one-record-actions button{min-height:44px;flex:1}.quick-deduct-list{gap:9px;padding:0 12px 12px}.quick-deduct-list article{grid-template-columns:auto minmax(0,1fr) auto;border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:var(--shadow-sm)}.quick-deduct-list article>.balance-badge{justify-self:end}.quick-deduct-button{grid-column:1 / -1;width:100%;min-height:46px}.quick-record-row{grid-template-columns:78px minmax(0,1fr) auto}.quick-record-row>span:nth-child(4){grid-column:1 / -1;grid-row:2}.quick-record-row .one-record-actions{grid-column:1 / -1;grid-row:3}.attendance-workflow-tabs{margin-bottom:10px}.group-attendance-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.group-records-panel .list-header,.quick-deduct-panel .one-student-header{align-items:stretch}.group-records-panel .list-header{display:grid}.group-records-heading{min-width:0}.group-record-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}.group-record-filters select,.group-record-filters input{width:100%;min-height:44px}.compact-filter-reset{grid-column:1 / -1;justify-self:start}.group-records-panel .list-header .primary-button,.one-student-header .one-record-trigger{min-height:44px}.group-session-list{gap:10px;padding:12px}.group-session-record{overflow:hidden;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm)}.group-session-record>button{min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}.group-session-record>button>span:nth-child(3),.group-session-record>button>span:nth-child(4),.group-session-deduct{border-radius:8px;background:#f5f7fa;padding:9px 10px}.group-session-action{grid-column:1 / -1;min-height:44px;justify-content:center;border-top:1px solid var(--border);padding-top:9px}.group-record-summary{grid-template-columns:1fr 1fr}.group-record-summary>div{grid-column:1 / -1;min-height:62px}.group-record-summary>span{min-height:62px;border-top:1px solid #cbdcf7}.group-record-summary>span:nth-child(2){border-left:0}.group-record-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.group-record-meta p{grid-column:1 / -1}.group-record-students{display:grid;gap:9px;overflow:visible;border:0}.record-edit-row:not(.table-head){grid-template-columns:1fr;gap:10px;border:1px solid var(--border);border-radius:11px;background:#fff;padding:12px}.record-edit-row.is-absent{background:#fffbf8}.record-edit-row .instant-status-segment{width:100%;justify-self:stretch}.record-status-editor{width:100%}.one-record-modal-list{overflow:visible;border:0}.one-record-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}.one-record-name-filter,.one-record-filter-reset{grid-column:1 / -1}.one-record-filter-reset{justify-self:start}.one-record-modal-list .one-record-row{margin-bottom:10px;border:1px solid var(--border);border-radius:11px}.toolbar-edit-actions .primary-button,.toolbar-edit-actions .text-button{min-height:44px}.finance-page{padding-bottom:54px}.finance-metrics,.finance-overview-grid{grid-template-columns:1fr}.finance-primary-metric{min-height:122px}.finance-secondary-metrics article{min-height:64px;padding:11px 12px}.finance-secondary-metrics strong{font-size:16px}.finance-tabs{gap:0;justify-content:space-between}.finance-tabs button{justify-content:center;flex:1;white-space:nowrap}.finance-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-filter-bar .search-field{grid-column:1 / -1}.finance-payment-cards,.debt-finance-cards{display:flex;flex-direction:column;gap:10px}.finance-payment-cards article,.debt-finance-cards article{overflow:hidden;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}.finance-payment-cards article>button,.debt-card-main{display:flex;width:100%;min-height:66px;align-items:center;justify-content:space-between;gap:12px;border:0;color:var(--ink);background:#fff;padding:12px 14px;text-align:left}.finance-payment-cards article>button>span,.debt-card-main>span{display:grid;gap:4px}.finance-payment-cards small,.debt-finance-cards small{color:var(--muted-ink);font-size:10px}.finance-payment-cards article>div{display:flex;justify-content:space-between;border-top:1px solid var(--border);background:#fafbfc;padding:9px 14px;color:var(--muted-ink);font-size:11px}.debt-card-main{display:grid;grid-template-columns:minmax(0,1fr) auto auto}.debt-finance-cards article>.primary-button{margin:0 12px 12px;width:calc(100% - 24px)}.debt-summary-panel{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}.debt-summary-panel>div{grid-column:1 / -1}.debt-summary-panel>span{border-radius:8px;background:#ffffffb8;padding:9px}.mobile-bottom-nav button{min-width:54px}}@media (max-width: 600px){.group-attendance-toolbar{grid-template-columns:minmax(0,1fr) 98px}.group-attendance-toolbar .secondary-button{width:auto;padding-right:10px;padding-left:10px}.group-attendance-date{grid-column:1 / -1}.group-attendance-heading{display:grid}.attendance-legend{justify-content:flex-start}.attendance-bar-line{grid-template-columns:34px minmax(70px,1fr) 24px;gap:8px}.one-student-header{display:grid}.one-student-header .one-record-trigger{width:100%;justify-content:center}.one-record-filterbar{grid-template-columns:1fr}.one-record-name-filter,.one-record-filter-reset{grid-column:auto}.one-record-filterbar input,.one-record-filterbar select{min-height:44px;font-size:16px}.confirmation-facts{grid-template-columns:1fr}.confirmation-facts>.is-wide,.confirmation-facts>div{grid-column:auto;min-height:58px;border-right:0!important;border-bottom:1px solid var(--border)!important}.confirmation-facts>div:last-child{border-bottom:0!important}}@media (max-width: 380px){.attendance-mode-switch button{font-size:12px}.attendance-summary{grid-template-columns:repeat(5,minmax(0,1fr))}.attendance-summary strong{font-size:19px}.choice-segment,.finance-filter-bar{grid-template-columns:1fr}.finance-filter-bar .search-field{grid-column:auto}.one-record-row{grid-template-columns:68px minmax(0,1fr) auto}.one-record-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.finance-secondary-metrics{grid-template-columns:1fr}.finance-secondary-metrics article:nth-child(n){border-right:0;border-bottom:1px solid var(--border)}.finance-secondary-metrics article:last-child{border-bottom:0}.finance-tabs button{font-size:12px}.finance-tabs span{display:none}.debt-card-main{grid-template-columns:1fr 1fr}.debt-card-main>span:first-child{grid-column:1 / -1}.mobile-bottom-nav{padding-right:3px;padding-left:3px}.mobile-bottom-nav button{min-width:49px;font-size:9px}}@media (max-width: 340px){.instant-attendance-page .attendance-toolbar{grid-template-columns:1fr}.instant-attendance-page .attendance-toolbar .group-select-field,.instant-attendance-page .toolbar-status{grid-column:auto}.instant-attendance-page .toolbar-status{align-items:flex-start;white-space:normal}.instant-attendance-page .toolbar-status>span:not(.status-dot){overflow-wrap:anywhere}.group-record-meta{grid-template-columns:1fr}.group-record-meta p{grid-column:auto}}@media (min-width: 901px){.attendance-mode-switch{gap:2px;margin-bottom:12px;border-radius:8px;padding:3px}.attendance-mode-switch button{min-height:36px;border-radius:6px;padding:0 13px;font-size:12px}.attendance-mode-switch i{min-width:20px;height:20px;font-size:10px}.attendance-row,.instant-attendance-row{min-height:56px;gap:12px;padding:7px 16px;font-size:12px}.attendance-row.table-head{min-height:38px;font-size:11px}.instant-status-segment{min-width:200px}.status-segment button,.instant-status-segment button{min-height:32px;font-size:11px}.attendance-submit-bar{bottom:12px;margin-top:12px;padding:11px 13px;box-shadow:0 10px 28px #1d365b1f}.attendance-submit-bar .primary-button{min-width:190px;min-height:40px}.quick-deduct-search{width:min(420px,calc(100% - 32px));margin:12px 16px}.quick-deduct-head,.quick-deduct-list article{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(150px,.65fr) 104px;align-items:center;gap:14px}.quick-deduct-head{min-height:38px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--muted-ink);background:#fafbfc;padding:0 16px;font-size:11px;font-weight:650}.quick-deduct-head span:last-child{text-align:right}.quick-deduct-list{padding:0}.quick-deduct-list article{min-height:58px;border-radius:0;padding:7px 16px}.quick-deduct-list article .avatar{display:none}.quick-student-copy{grid-column:1}.quick-deduct-list article .balance-badge{grid-column:2;justify-self:start}.quick-deduct-button{grid-column:3;min-width:82px;justify-self:end}.group-attendance-toolbar,.date-scope-bar{gap:10px;margin-bottom:12px;padding:12px 14px}.group-attendance-summary{margin-bottom:12px}.group-attendance-summary article{min-height:76px;gap:5px;padding:12px 16px}.group-attendance-summary strong{font-size:21px}.finance-metrics{gap:12px;margin:12px 0}.finance-primary-metric{min-height:118px;border-radius:10px;padding:18px 20px;box-shadow:none}.finance-primary-metric>strong{font-size:32px}.finance-secondary-metrics article{min-height:58px;padding:10px 14px}.finance-secondary-metrics strong{font-size:17px}.finance-tabs{gap:22px;margin-bottom:12px}.finance-tabs button{min-height:40px;font-size:12px}.finance-section>header{padding:14px 16px 12px}.finance-section h2{font-size:15px}.finance-category-list button{min-height:55px;padding:8px 16px}.finance-method-list>div{min-height:43px;font-size:12px}.modal-layer:has(.modal-panel-ledger){place-items:stretch end;padding:0}.modal-panel-ledger{width:min(var(--modal-width),calc(100vw - var(--sidebar-width) - 72px));height:100vh;max-height:100vh;border-width:0 0 0 1px;border-radius:0;box-shadow:-18px 0 46px #18274b2e}.modal-fade-enter-from .modal-panel-ledger,.modal-fade-leave-to .modal-panel-ledger{transform:translate(22px)}}@media (min-width: 901px) and (max-width: 1180px){.attendance-row,.instant-attendance-row{grid-template-columns:minmax(128px,1fr) minmax(64px,90px) minmax(86px,105px) minmax(60px,80px) minmax(200px,1.15fr)}.quick-deduct-head,.quick-deduct-list article{grid-template-columns:minmax(220px,1.2fr) minmax(130px,.65fr) 92px;gap:10px}.finance-metrics,.finance-overview-grid{grid-template-columns:1fr}.modal-panel-ledger{width:calc(100vw - var(--sidebar-width) - 24px)}}@media (max-width: 900px){:root{--primary: #0b63e6;--primary-strong: #0753c8;--primary-soft: #eaf2ff;--ink: #10264d;--muted-ink: #5e6b82;--canvas: #f6f9ff;--border: #d9e1ed;--border-strong: #c7d2e2;--shadow-sm: 0 6px 20px rgba(27, 68, 133, .07)}html,body,#app,.app-shell,.app-main{background:var(--canvas)}body{color:var(--ink);overscroll-behavior-y:contain}.app-main{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.mobile-topbar{min-height:calc(60px + env(safe-area-inset-top));padding:calc(8px + env(safe-area-inset-top)) 16px 8px;border-bottom-color:#dce4ef;background:#fffffff7;box-shadow:none}.mobile-brand .brand-mark{width:36px;height:36px;border:1px solid #1b6bec;border-radius:8px;color:#fff;background:var(--primary);box-shadow:0 5px 14px #0b63e633}.mobile-brand strong{color:#0e2246;font-size:18px;font-weight:760}.mobile-topbar-title{position:absolute;left:50%;color:#183666;font-size:16px;font-weight:650;transform:translate(-50%);white-space:nowrap}.mobile-topbar .icon-button{color:#1e3457;background:transparent}.demo-banner{border-bottom:1px solid #f2d49c;background:#fff8e9}.page{width:100%;padding:22px 16px 44px}.page-heading{gap:12px;align-items:flex-start;margin-bottom:18px}.page-heading>div:first-child{min-width:0}.page-heading h1{margin:0;color:var(--ink);font-size:28px;font-weight:780;line-height:1.2;letter-spacing:-.035em}.page-heading p{margin:7px 0 0;color:var(--muted-ink);font-size:13px;line-height:1.55}.page-eyebrow{margin-bottom:5px;color:var(--primary);font-size:12px;font-weight:700}.mobile-heading-line{display:flex;align-items:center;gap:12px}.mobile-page-badge{min-height:30px;align-items:center;border-radius:8px;color:var(--primary);background:var(--primary-soft);padding:0 10px;font-size:12px;font-weight:650;white-space:nowrap}.surface-panel{border-color:var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.attendance-mode-switch{overflow:hidden;width:100%;min-height:46px;margin-bottom:18px;gap:0;border:1px solid var(--border-strong);border-radius:10px;background:#fff;padding:0;box-shadow:none}.attendance-mode-switch button{flex:1 1 0;min-height:46px;border:0;border-radius:0;color:#142b52;background:#fff;font-size:14px;font-weight:650}.attendance-mode-switch button+button{border-left:1px solid var(--border-strong)}.attendance-mode-switch button.active{color:#fff;background:var(--primary);box-shadow:none}.attendance-mode-switch button>svg{display:none}.attendance-mode-switch i{color:inherit;background:transparent;padding:0;font-size:inherit}.app-select-option{min-height:44px}.app-select-menu{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.ledger-tabs.attendance-workflow-tabs{display:grid;width:100%;min-height:46px;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0 0 14px;border-bottom:1px solid var(--border);background:transparent}.attendance-workflow-tabs button{position:relative;width:100%;min-height:46px;justify-content:center;color:#647087;background:transparent;padding:0 10px;font-size:14px;font-weight:600}.attendance-workflow-tabs button span{min-width:20px;min-height:20px;color:var(--muted-ink);background:var(--surface-subtle)}.attendance-workflow-tabs button.active span{color:var(--primary);background:var(--primary-soft)}.attendance-workflow-tabs button.active{color:var(--primary);background:transparent}.attendance-workflow-tabs button.active:after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:2px;background:var(--primary)}.instant-attendance-page .page-heading p{display:block}.instant-attendance-page:not(.is-group-record-view) .attendance-page-heading p{display:none}.instant-attendance-page .attendance-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}.instant-attendance-page .attendance-toolbar .compact-field{min-width:0}.instant-attendance-page .attendance-toolbar .group-select-field{grid-column:1 / -1;grid-row:1}.instant-attendance-page .attendance-toolbar>.compact-field:not(.group-select-field){grid-row:2}.instant-attendance-page .attendance-toolbar .toolbar-status{grid-column:1 / -1;grid-row:3;min-height:22px;padding:0}.compact-field>span{color:#6a7589;font-size:11px}.instant-attendance-page .attendance-toolbar .compact-field>span{display:none}.instant-attendance-page .attendance-toolbar .compact-field{gap:0}.compact-field input,.compact-field select,.group-record-filters select,.group-record-filters input,.one-record-filterbar input,.one-record-filterbar select,.finance-filter-bar select,.search-field{min-height:46px;border-color:var(--border-strong);border-radius:9px;color:#14284c;background-color:#fff}.toolbar-status .status-dot{margin-top:6px}.instant-attendance-page .attendance-summary{overflow:hidden;grid-template-columns:repeat(4,minmax(0,1fr));margin:14px 0 18px;border:0;border-radius:12px;background:var(--primary-soft);box-shadow:none}.instant-attendance-page .attendance-summary>div{min-height:72px;align-content:center;padding:10px 4px}.instant-attendance-page .attendance-summary>div:not(:last-child):after{top:15px;height:42px;background:#bdd1ee}.instant-attendance-page .attendance-summary span{color:#344c72;font-size:11px}.instant-attendance-page .attendance-summary strong{color:var(--primary);font-size:22px}.instant-attendance-page .attendance-summary small{color:#61718a;font-size:10px}.instant-attendance-page .attendance-list{overflow:hidden;margin-top:0}.instant-attendance-page .attendance-list .list-header{min-height:52px;padding:14px;border-bottom:1px solid var(--border)}.instant-attendance-page .attendance-list .list-header h2{font-size:17px}.instant-attendance-page .attendance-list .instant-save-hint{display:inline-flex;border:0;color:var(--muted-ink);background:transparent;padding:0;font-size:11px}.instant-attendance-page .attendance-list .instant-save-hint .status-dot{display:none}.attendance-card{border-bottom-color:var(--border)}.instant-attendance-page .attendance-card-main{min-height:50px;gap:9px;padding:8px 12px 4px}.instant-attendance-page .attendance-card-main .avatar{width:36px;height:36px;border-radius:50%;color:var(--primary);background:var(--primary-soft);font-size:12px;font-weight:750}.student-card-copy strong,.quick-student-copy strong{color:#111f3e;font-size:15px}.balance-badge{border:0;border-radius:7px;background:var(--primary-soft)}.status-card-foot{min-height:48px;gap:8px;justify-content:flex-end;padding:0 12px 8px 56px}.status-card-foot .deduction-result{min-width:32px;color:var(--primary);font-size:16px;white-space:nowrap}.status-card-foot .status-segment{width:140px;min-width:140px;flex:0 0 140px;height:36px;min-height:36px;grid-template-columns:74px 66px;grid-template-rows:36px;align-items:center}.status-segment{overflow:visible;gap:0;border:0;border-radius:8px;background:#fff;padding:0;box-shadow:inset 0 0 0 1px var(--border-strong)}.status-segment button{position:relative;z-index:0;isolation:isolate;min-height:44px;border:0;border-radius:7px;color:#263957;background:transparent;padding:0 10px;font-size:12px;line-height:1;transition:color .16s ease}.status-segment button:before{position:absolute;z-index:-1;top:4px;right:0;bottom:4px;left:0;border-radius:7px;background:transparent;box-shadow:none;content:"";transition:background-color .16s ease,box-shadow .16s ease}.status-segment button+button{border-left:0}.status-segment button.active.present,.status-segment button.active.absent{color:#fff}.status-segment button.active.present:before{background:var(--primary);box-shadow:0 4px 10px #0b63e638}.status-segment button.active.absent:before{background:var(--danger);box-shadow:0 4px 10px #df35452e}.attendance-submit-bar{right:50%;bottom:calc(76px + env(safe-area-inset-bottom));left:auto;z-index:35;width:min(calc(100% - 32px),260px);border:0;border-radius:12px;background:transparent;padding:0;box-shadow:0 12px 30px #0b63e638;transform:translate(50%)}.attendance-submit-bar .primary-button{min-height:50px;border-radius:10px;background:var(--primary);font-size:15px;font-weight:750}.group-records-panel,.quick-deduct-panel{border:0;background:transparent;box-shadow:none}.group-records-panel .group-records-header,.quick-deduct-panel .one-student-header{gap:12px;border:0;padding:0 0 14px}.group-records-panel .group-records-header{display:grid;width:100%;grid-template-columns:minmax(0,1fr)}.group-records-panel .group-records-heading{display:none}.group-record-filters{position:relative;display:grid;width:100%;min-width:0;grid-template-columns:minmax(0,1fr) minmax(128px,.62fr);gap:10px 8px;border:1px solid var(--wap-line, var(--border));border-radius:10px;background:#fff;padding:12px;box-shadow:var(--wap-shadow, var(--shadow-sm))}.mobile-record-time-tabs{display:grid!important;grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle);padding:4px}.mobile-record-time-tabs button{min-width:0;min-height:44px;border:0;border-radius:7px;color:var(--muted-ink);background:transparent;padding:0 4px;font-size:13px;font-weight:650;white-space:nowrap}.mobile-record-time-tabs button.active{border-color:var(--primary);color:#fff;background:var(--primary)}.mobile-record-time-tabs+label{display:none}.record-specific-date-filter{grid-column:1 / -1}.group-record-class-filter{grid-column:1}.group-record-filters .app-select-trigger,.group-record-filters input{min-height:46px;border-radius:9px;font-size:13px}.group-record-filters .group-record-add-button{display:inline-flex!important;width:100%;min-width:0;height:46px;min-height:46px;grid-column:2;align-items:center;justify-content:center;gap:6px;border-color:var(--primary);color:var(--primary);background:var(--primary-soft);padding:0 10px;white-space:nowrap}.compact-filter-reset{grid-column:1 / -1;justify-self:end;min-height:44px;margin:-4px 0 -8px}.group-records-panel .list-header .primary-button{width:100%;border:1px solid var(--primary);color:var(--primary);background:#fff}.group-session-list{gap:10px;padding:0}.group-session-record{border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.group-session-record>button{grid-template-columns:.95fr 1.25fr auto;gap:8px 12px;padding:14px}.group-session-date,.group-session-name{min-width:0}.group-session-name strong,.group-session-date strong{overflow:hidden;color:#152746;text-overflow:ellipsis;white-space:nowrap}.group-session-record>button>span:nth-child(3),.group-session-record>button>span:nth-child(4),.group-session-deduct{border-radius:0;background:transparent;padding:0}.group-session-record>button>span:nth-child(3),.group-session-record>button>span:nth-child(4){grid-row:2}.group-session-deduct{grid-column:3;grid-row:1 / span 2;align-self:center;color:var(--primary);text-align:right}.group-session-action{grid-column:1 / -1;min-height:36px;justify-content:flex-end;color:var(--primary);border-top:1px solid var(--border);padding-top:8px;font-size:12px}.quick-deduct-panel .one-student-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}.one-student-header h2{color:#10264d;font-size:20px}.one-student-header p{max-width:220px;color:var(--muted-ink);font-size:12px}.one-student-header .one-record-trigger{width:auto;min-height:44px;border-color:var(--primary);color:var(--primary);background:#fff}.quick-deduct-search{margin:0 0 12px;background:#fff}.quick-deduct-list{gap:10px;padding:0}.quick-deduct-list article{grid-template-columns:auto minmax(0,1fr) auto;gap:8px 12px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:14px;box-shadow:var(--shadow-sm)}.quick-deduct-list article>.balance-badge{grid-column:2;justify-self:start}.quick-deduct-button{grid-column:3;grid-row:1 / span 2;width:auto;min-width:78px;align-self:center;color:var(--primary);border:1px solid var(--primary);background:#fff}.modal-panel-mobile-back .modal-header{position:relative;justify-content:center;min-height:70px;padding-right:54px;padding-left:54px;text-align:center}.modal-panel-mobile-back .modal-header .icon-button{position:absolute;left:8px;transform:rotate(180deg)}.modal-heading-copy{min-width:0}.modal-heading-copy h2{margin:0}.modal-heading-copy p{margin:3px 0 0;color:var(--muted-ink);font-size:12px}.modal-panel-mobile-back .modal-body{background:var(--canvas)}.one-record-filterbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:0;border-radius:0;background:transparent;padding:0}.one-record-filterbar label>span:not(.sr-only){display:none}.one-record-name-filter{grid-column:1 / -1}.one-record-filter-reset{display:none}.one-record-filter-summary{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin:10px 0 14px;color:var(--muted-ink);font-size:11px}.one-record-filter-summary button{min-height:44px;border:0;color:var(--primary);background:transparent;padding:0 4px;font-size:11px}.one-record-modal-list .one-record-row{overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:10px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:14px;box-shadow:var(--shadow-sm)}.one-record-modal-list .one-record-time{grid-column:1 / -1;flex-direction:row;align-items:center;gap:6px;border-bottom:1px solid var(--border);padding-bottom:10px}.one-record-modal-list .one-record-time strong{order:2;font-size:13px}.one-record-modal-list .one-record-time small{font-size:13px}.one-record-modal-list .one-record-student{grid-column:1 / -1}.one-record-modal-list .one-record-actions{grid-column:1 / -1;grid-row:auto}.one-record-modal-list .one-record-actions button{border-color:var(--primary);color:var(--primary)}.ledger-pagination{min-height:60px;border:1px solid var(--border);border-radius:10px;background:#ffffffb3;padding:8px 10px}.ledger-pagination button{min-width:86px;color:var(--primary)}.groups-page .page-heading,.finance-page .page-heading{align-items:center}.groups-page .page-heading .desktop-action,.finance-page .page-heading .desktop-action{min-height:44px;border-radius:8px}.groups-page .page-heading .desktop-action{color:#fff;background:var(--primary)}.group-view-switch{margin-bottom:16px}.group-list{gap:10px}.group-row{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:16px 14px;box-shadow:var(--shadow-sm)}.group-mark{width:42px;height:42px;border-radius:50%;color:var(--primary);background:var(--primary-soft)}.group-row-main h2{color:#111f3e;font-size:16px}.group-row-main p{margin-top:4px;color:var(--muted-ink);font-size:11px}.group-student-preview{grid-column:1;padding-left:54px}.mini-avatar{width:28px;height:28px;border:0;color:var(--primary);background:var(--primary-soft)}.group-row .row-actions{grid-column:2;grid-row:2;align-self:center}.group-row .row-actions .secondary-button{border:0;color:var(--primary);background:transparent;padding:0 8px}.group-attendance-toolbar{grid-template-columns:minmax(0,1fr) auto;padding:14px}.attendance-date-control{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;grid-column:1;gap:0}.attendance-date-control>button{min-width:44px;border:1px solid var(--border-strong);color:#21385d;background:#fff}.attendance-date-control>button:first-child{border-radius:9px 0 0 9px}.attendance-date-control>button:first-child svg{transform:rotate(180deg)}.attendance-date-control>button:last-child{border-radius:0 9px 9px 0}.attendance-date-control .compact-field{gap:0}.attendance-date-control .compact-field>span{display:none}.attendance-date-control input{height:44px;border-right:0;border-left:0;border-radius:0;text-align:center}.group-attendance-date{grid-column:1 / -1;grid-template-columns:auto auto auto;justify-content:start;gap:6px}.group-attendance-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin:14px 0 18px;background:var(--primary-soft)}.group-attendance-summary article{min-height:74px;padding:12px 4px;text-align:center}.group-attendance-summary article:nth-child(3),.group-attendance-summary article:nth-child(4){border-top:0}.group-attendance-summary article:nth-child(3){border-left:1px solid var(--border)}.group-attendance-summary strong{color:var(--primary);font-size:22px}.group-attendance-panel{border:0;background:transparent;box-shadow:none}.group-attendance-heading{padding:0 0 12px;border:0}.group-attendance-heading p{display:none}.group-attendance-chart{display:grid;gap:10px}.group-attendance-row{grid-template-columns:minmax(0,1fr) auto;border:1px solid var(--border);border-radius:12px;background:#fff;padding:14px;box-shadow:var(--shadow-sm)}.group-attendance-identity{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:2px 10px}.group-attendance-avatar{display:grid;width:42px;height:42px;grid-row:1 / span 2;place-items:center;border-radius:50%;color:var(--primary);background:var(--primary-soft);font-weight:750}.group-attendance-identity h3,.group-attendance-identity p{grid-column:2}.group-attendance-rate strong{color:var(--primary)}.finance-page{padding-bottom:48px}.finance-page .page-heading p{max-width:260px}.finance-page .page-heading .secondary-button{overflow:hidden;width:52px;min-width:52px;color:var(--primary);border-color:var(--primary);padding:0;font-size:0}.finance-page .page-heading .secondary-button svg{width:20px;height:20px}.finance-date-scope{border:0;background:transparent;padding:0;box-shadow:none}.mobile-date-presets{display:grid!important;grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid var(--border);border-radius:9px;background:#fff}.mobile-date-presets button{min-width:0;min-height:44px;border:0;border-right:1px solid var(--border);color:#33496c;background:#fff;padding:0 5px;font-size:13px}.mobile-date-presets button:last-child{border-right:0}.mobile-date-presets button.active{color:#fff;background:var(--primary)}.finance-date-scope .date-preset-field,.finance-date-scope .date-scope-result{display:none}.finance-date-scope:has(.compact-field input){grid-template-columns:repeat(2,minmax(0,1fr))}.finance-date-scope>.compact-field:not(.date-preset-field){margin-top:2px}.finance-metrics{gap:10px;margin-top:14px}.finance-primary-metric{position:relative;overflow:hidden;min-height:126px;border:0;border-radius:12px;color:#fff;background:var(--primary);padding:20px;box-shadow:0 12px 28px #0b63e633}.finance-primary-metric:after{content:"¥";position:absolute;right:22px;bottom:4px;color:#ffffff21;font-size:82px;font-weight:800}.finance-primary-metric>span,.finance-primary-metric p{color:#ffffffdb}.finance-primary-metric>strong{position:relative;z-index:1;margin-top:5px;color:#fff;font-size:34px}.finance-secondary-metrics{overflow:hidden;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.finance-secondary-metrics article:nth-child(n){min-height:76px;border-right:0;border-bottom:0}.finance-secondary-metrics article:nth-child(odd){border-right:1px solid var(--border)}.finance-secondary-metrics article:nth-child(-n+2){border-bottom:1px solid var(--border)}.finance-secondary-metrics strong{margin-top:3px;font-size:18px}.finance-debt-notice{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto;width:100%;min-height:44px;align-items:center;gap:8px;margin:10px 0;border:1px solid #f0bdb8;border-radius:10px;color:var(--danger);background:var(--danger-soft);padding:8px 12px;text-align:left}.finance-debt-notice span{font-size:12px}.finance-debt-notice strong{overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.finance-tabs{min-height:48px;margin:12px 0 14px;border-bottom:1px solid var(--border);background:transparent}.finance-tabs button{min-height:48px;color:#61708a;background:transparent;font-size:13px}.finance-tabs button.active{color:var(--primary);background:transparent}.finance-section{padding:16px}.finance-section>header{min-height:0;padding:0 0 10px}.finance-section header p{display:none}.finance-category-list button{grid-template-columns:42px minmax(0,1fr) auto 16px;min-height:68px;gap:10px;padding:10px 0}.finance-category-mark,.finance-payment-avatar{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;color:var(--primary);background:var(--primary-soft);font-style:normal;font-size:12px;font-weight:750}.finance-category-list button>strong{font-size:16px}.finance-method-list>div{display:grid;grid-template-columns:52px minmax(0,1fr) 42px auto;min-height:42px;align-items:center;gap:8px}.finance-method-track{overflow:hidden;height:7px;border-radius:999px;background:#e8edf5}.finance-method-track b{display:block;height:100%;border-radius:inherit;background:var(--primary)}.finance-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:12px;box-shadow:var(--shadow-sm)}.finance-payment-cards{gap:0;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.finance-payment-cards article{border:0;border-bottom:1px solid var(--border);border-radius:0;box-shadow:none}.finance-payment-cards article:last-child{border-bottom:0}.finance-payment-cards article>button{display:grid;grid-template-columns:42px minmax(0,1fr) auto 16px;min-height:84px;gap:10px;padding:12px}.finance-payment-cards article>button>span{display:grid;gap:2px}.finance-payment-cards article>button .finance-payment-amount{justify-items:end;color:var(--primary);white-space:nowrap}.finance-payment-cards article>button .finance-payment-amount>strong{font-size:17px}.mobile-bottom-nav{min-height:calc(70px + env(safe-area-inset-bottom));padding:7px 6px env(safe-area-inset-bottom);border-top-color:#dce4ef;background:#fffffffa;box-shadow:0 -8px 24px #19396b0f}.mobile-bottom-nav button{min-width:58px;min-height:56px;gap:4px;border-radius:8px;color:#536179;background:transparent;font-size:10px}.mobile-bottom-nav button.active{color:var(--primary);background:transparent;font-weight:700}.mobile-bottom-nav svg{width:24px;height:24px}.bottom-nav-icon i{width:8px;height:8px;background:#f23b2d}button:active{filter:brightness(.96)}}@media (max-width: 380px){.page{padding-right:12px;padding-left:12px}.page-heading h1{font-size:25px}.mobile-heading-line{gap:8px}.mobile-page-badge{padding:0 8px;font-size:11px}.attendance-workflow-tabs button{padding-right:18px;padding-left:18px}.mobile-record-time-tabs{gap:4px}.mobile-record-time-tabs button{font-size:12px}.attendance-submit-bar{right:50%;left:auto;width:min(calc(100% - 24px),260px)}.quick-deduct-list article{grid-template-columns:36px minmax(0,1fr) auto;gap:7px 9px;padding:12px}.quick-deduct-list .avatar{width:36px;height:36px}.quick-deduct-button{min-width:72px;padding:0 9px}.group-session-record>button{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto}.group-row .row-actions{gap:2px}.group-row .row-actions button{padding-right:6px;padding-left:6px}.group-attendance-summary span{font-size:10px}.group-attendance-summary strong{font-size:19px}.one-record-filter-summary{grid-template-columns:1fr auto}.one-record-filter-summary span{grid-column:1 / -1}.finance-debt-notice{grid-template-columns:auto 1fr auto}.finance-debt-notice strong{display:none}.finance-category-list button{grid-template-columns:38px minmax(0,1fr) auto 14px;gap:8px}.finance-category-mark,.finance-payment-avatar{width:38px;height:38px}.finance-payment-cards article>button{grid-template-columns:38px minmax(0,1fr) auto 14px;gap:8px}.finance-payment-amount small{display:none}}@media (max-width: 340px){.mobile-brand strong{font-size:16px}.mobile-topbar-title{font-size:14px}.instant-attendance-page .attendance-toolbar{grid-template-columns:1fr}.instant-attendance-page .attendance-toolbar>.compact-field:not(.group-select-field),.instant-attendance-page .attendance-toolbar .group-select-field,.instant-attendance-page .attendance-toolbar .toolbar-status{grid-column:1;grid-row:auto}.mobile-record-time-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.group-record-filters{grid-template-columns:1fr}.group-record-class-filter,.group-record-add-button{grid-column:1}.quick-deduct-panel .one-student-header{grid-template-columns:1fr}.one-student-header .one-record-trigger{width:100%}.quick-deduct-list article{grid-template-columns:36px minmax(0,1fr)}.quick-deduct-button{grid-column:1 / -1;grid-row:auto;width:100%}.group-row{grid-template-columns:1fr}.group-count,.group-row .row-actions,.group-student-preview{grid-column:1;grid-row:auto}.group-count{display:none}.group-student-preview{padding-left:0}.finance-secondary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-secondary-metrics article:nth-child(n){border-bottom:0}.finance-secondary-metrics article:nth-child(odd){border-right:1px solid var(--border)}.finance-secondary-metrics article:nth-child(-n+2){border-bottom:1px solid var(--border)}.finance-method-list>div{grid-template-columns:44px minmax(0,1fr) 36px}.finance-method-list strong{display:none}}@media (max-width: 900px){.one-record-modal-list .one-record-row{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;border-radius:12px;padding:14px}.one-record-modal-list .one-record-time{display:flex;min-width:0;min-height:50px;grid-column:1 / -1;grid-row:1;align-items:flex-start;flex-direction:column;gap:4px;border-bottom:1px solid var(--wap-line);padding:0 76px 12px 0}.one-record-modal-list .one-record-time strong{order:2;color:var(--wap-navy);font-size:15px;line-height:1.2}.one-record-modal-list .one-record-time small{order:1;color:var(--wap-muted);font-size:13px;line-height:1.3;white-space:nowrap}.one-record-modal-list .one-record-mobile-edit{position:absolute;top:14px;right:14px;z-index:1;display:flex!important;width:auto;grid-column:auto}.one-record-modal-list .one-record-mobile-edit button{min-width:64px;min-height:44px;flex:0 0 auto;border-color:var(--wap-blue);border-radius:9px;color:var(--wap-blue);background:var(--surface);padding:0 12px;font-size:14px}.one-record-modal-list .one-record-student{min-width:0;grid-column:1 / -1;grid-row:2;justify-self:stretch}.one-record-modal-list .one-record-student>span:last-child{min-width:0}.one-record-modal-list .one-record-student strong,.one-record-modal-list .one-record-student small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.one-record-modal-list .quick-record-row>span.one-record-status-summary{display:grid;min-width:0;grid-column:1;grid-row:3;gap:5px;align-content:end;justify-items:start}.one-record-modal-list .one-record-status-summary small{color:var(--wap-muted);font-size:11px}.one-record-modal-list .quick-record-row>span.one-record-after-balance{display:grid;min-width:66px;grid-column:2;grid-row:3;align-content:end;justify-items:end;gap:3px;border-radius:0;background:transparent;padding:0}.one-record-modal-list .one-record-after-balance small{color:var(--wap-muted);font-size:11px}.one-record-modal-list .one-record-after-balance strong{color:var(--wap-navy);font-size:20px;line-height:1.1}}@media (max-width: 340px){.one-record-modal-list .one-record-row{gap:10px;padding:12px}.one-record-modal-list .one-record-time{padding-right:70px}.one-record-modal-list .one-record-mobile-edit{top:12px;right:12px}.one-record-modal-list .one-record-mobile-edit button{min-width:60px;padding:0 10px}}@media (prefers-reduced-motion: reduce){.share-loading-mark{animation-duration:1ms}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width: 900px){:root{--wap-blue: #0867ed;--wap-blue-dark: #0758d5;--wap-navy: #0c244a;--wap-muted: #566783;--wap-line: #dce4f0;--wap-soft: #edf4ff;--wap-canvas: #f7faff;--wap-green: #0baa83;--wap-orange: #ff7800;--wap-red: #f12b2f;--wap-radius: 8px;--wap-card-radius: 9px;--wap-shadow: 0 5px 18px rgba(28, 65, 122, .065)}html{background:var(--wap-canvas)}body{min-width:320px;color:var(--wap-navy);background:radial-gradient(circle at 86% 4%,rgba(120,173,255,.08),transparent 24rem),var(--wap-canvas);-webkit-tap-highlight-color:transparent}::selection{color:#fff;background:var(--wap-blue)}:focus-visible{outline:2px solid rgba(8,103,237,.48);outline-offset:2px}input,select,textarea,button{font:inherit}input::placeholder,textarea::placeholder{color:#8997b0;opacity:1}textarea{resize:none}.app-main{padding-bottom:calc(78px + env(safe-area-inset-bottom))}.mobile-topbar{height:calc(60px + env(safe-area-inset-top));min-height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0}.mobile-brand{gap:10px}.mobile-brand .brand-mark{width:32px;height:32px;border-radius:6px;box-shadow:0 4px 12px #0867ed38}.mobile-brand .brand-mark svg{width:21px;height:21px}.mobile-brand strong{font-size:18px;letter-spacing:-.025em}.mobile-topbar-title{color:#173567;font-size:15px}.mobile-topbar .icon-button{width:44px;height:44px;margin-right:-8px}.mobile-topbar .icon-button svg{width:24px;height:24px}.demo-banner{padding:8px 14px;font-size:11px}.demo-banner button{min-height:34px}.page{padding:22px 16px 42px}.page-heading{margin-bottom:18px}.page-heading h1{color:var(--wap-navy);font-size:25px;line-height:1.16}.page-heading p{max-width:280px;color:var(--wap-muted);font-size:12px}.page-eyebrow{color:var(--wap-blue);font-size:12px;font-weight:650}.primary-button,.danger-confirm-button,.secondary-button{min-height:44px;border-radius:7px;box-shadow:none}.primary-button{border-color:var(--wap-blue);background:var(--wap-blue)}.primary-button:hover{background:var(--wap-blue-dark)}.secondary-button{border-color:#cbd7e7;color:var(--wap-blue);background:#fff}.danger-confirm-button{color:#fff;background:var(--wap-red)}.danger-confirm-button:disabled{color:#ef8588;background:#ffe5e6}.surface-panel,.data-panel{border:1px solid var(--wap-line);border-radius:var(--wap-card-radius);background:#fff;box-shadow:var(--wap-shadow)}.students-page .page-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.students-page .page-heading .desktop-action{display:inline-flex;min-height:44px;padding:0 15px;color:#fff;border:0;border-radius:7px;background:var(--wap-blue);font-size:13px}.students-page .page-heading .desktop-action svg{width:18px;height:18px}.students-page .filter-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;padding:0;border:0;background:transparent}.students-page .filter-bar .search-field{grid-column:1 / -1}.students-page .filter-bar .search-field,.students-page .filter-bar select{min-height:44px;border:1px solid #cfd9e8;border-radius:7px;background:#fff}.students-page .filter-bar .search-field{padding:0 13px}.students-page .filter-bar input,.students-page .filter-bar select{font-size:13px}.student-filter-summary{display:flex!important;align-items:center;justify-content:space-between;min-height:38px;margin:-3px 0 8px;color:var(--wap-muted);font-size:12px}.student-filter-summary button{min-height:38px;border:0;color:var(--wap-blue);background:transparent}.student-cards{overflow:visible;gap:12px;border:0;border-radius:0;background:transparent;box-shadow:none}.student-card{overflow:hidden;border:1px solid var(--wap-line);border-radius:var(--wap-card-radius);background:#fff;box-shadow:var(--wap-shadow)}.student-card:last-child{border-bottom:1px solid var(--wap-line)}.student-card.is-warning,.student-card.is-paused,.student-card.is-debt{border-color:var(--wap-line);background:#fff}.student-card-body{padding:14px 13px 11px}.student-card-head{align-items:center;gap:11px}.student-card .avatar{width:46px;height:46px;flex:0 0 46px;border:0;border-radius:50%;color:var(--wap-blue);background:#eaf2ff;font-size:17px}.student-card:nth-child(3n+2) .avatar{color:var(--wap-orange);background:#fff1df}.student-card:nth-child(3n) .avatar{color:var(--wap-green);background:#e4f8f3}.student-card-title strong{color:#081a38;font-size:16px}.student-card-title small{color:var(--wap-muted);font-size:11px}.student-card-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:12px 0 0 57px;border-top:1px solid #edf1f6;padding-top:10px}.student-card-metrics span{grid-template-columns:auto 1fr;align-items:baseline;gap:5px}.student-card-metrics small{font-size:11px}.student-card-metrics strong{color:var(--wap-blue);font-size:15px}.student-card footer{display:grid;min-height:56px;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:4px 8px;padding:6px 12px}.student-card footer .balance-badge{font-size:10px}.student-card footer .student-status-stack{align-self:center}.mobile-row-actions{display:flex;width:100%;min-width:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:4px 6px;margin-left:0}.mobile-row-actions .secondary-button{min-height:44px;padding:0 12px}.mobile-row-actions .text-button{min-height:44px;padding-right:8px;padding-left:8px}.student-mobile-edit-action{gap:4px;color:var(--wap-blue)}.student-mobile-edit-action svg{flex:0 0 auto}.students-page .mobile-fab{display:none!important}.students-page .empty-state{min-height:470px;margin-top:8px;border:1px solid var(--wap-line);border-radius:10px;background:#fff;box-shadow:var(--wap-shadow);padding:70px 26px 36px}.students-page .empty-state .empty-icon{width:96px;height:96px;border-radius:50%}.students-page .empty-state .empty-icon svg{width:48px;height:48px}.students-page .empty-state h3{margin-top:18px;color:var(--wap-navy);font-size:21px}.students-page .empty-state p{max-width:290px;font-size:13px}.students-page .empty-state .secondary-button{width:min(100%,220px);margin-top:18px}.students-page .empty-state .text-button{margin-top:8px;color:var(--wap-blue)}.groups-page .page-heading{display:grid;grid-template-columns:minmax(0,1fr) auto}.groups-page .page-heading .desktop-action{padding:0 14px;font-size:13px}.group-view-switch{min-height:42px;border-radius:7px}.group-view-switch button{min-height:42px;font-size:13px}.group-list{gap:8px}.group-row{grid-template-columns:minmax(0,1fr) auto;min-height:112px;padding:14px 13px;border-radius:8px}.group-row-main{align-items:flex-start;gap:11px}.group-row-main h2{font-size:16px}.group-row-main p{font-size:11px}.group-student-preview{padding-left:53px}.group-row .row-actions{align-self:end}.group-row .row-actions button{min-height:36px}.group-attendance-toolbar{padding:14px;border-radius:9px}.attendance-date-control{min-width:0}.group-attendance-summary{overflow:hidden;grid-template-columns:repeat(4,minmax(0,1fr));border-radius:9px}.group-attendance-summary article{min-height:70px;padding:12px 6px;text-align:center}.group-attendance-summary article:nth-child(n){border-top:0;border-left:1px solid var(--wap-line)}.group-attendance-summary article:first-child{border-left:0}.group-attendance-summary strong{font-size:21px}.group-attendance-panel{border:0;background:transparent;box-shadow:none}.group-attendance-heading{padding:12px 2px}.group-attendance-heading p{display:none}.group-attendance-row{margin-bottom:10px;border:1px solid var(--wap-line);border-radius:9px;background:#fff;box-shadow:var(--wap-shadow)}.stats-page .page-heading{display:block}.stats-page .date-scope-bar{display:block;margin-bottom:14px;padding:0;border:0;background:transparent;box-shadow:none}.stats-page .date-preset-field{display:block}.stats-page .date-preset-field>span{display:none}.stats-page .date-preset-field select{min-height:44px;border-radius:7px}.stats-page .date-scope-result{display:none}.stats-overview{gap:0;margin-bottom:10px}.stats-overview .overview-primary{min-height:150px;align-items:center;border:0;border-radius:10px 10px 0 0;color:var(--wap-navy);background:#eef4fd;padding:20px;text-align:center;box-shadow:none}.stats-overview .overview-primary>span{color:var(--wap-muted)}.stats-overview .overview-primary>strong{color:var(--wap-blue);font-size:38px}.stats-overview .overview-primary p{color:var(--wap-navy)}.stats-overview .overview-grid{overflow:hidden;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--wap-line);border-top:0;border-radius:0 0 10px 10px;background:#fff}.stats-overview .overview-grid article{min-height:72px;border:0;border-right:1px solid var(--wap-line);border-top:1px solid var(--wap-line);border-radius:0;background:#fff;padding:11px 16px;box-shadow:none}.stats-overview .overview-grid article:nth-child(2n){border-right:0}.stats-overview .overview-grid strong{color:var(--wap-blue)}.stats-page .debt-bar,.stats-page .risk-bar{min-height:52px;margin:0;border-radius:0;padding:10px 13px;box-shadow:none}.stats-page .debt-bar{border-radius:9px 9px 0 0}.stats-page .risk-bar{border-radius:0 0 9px 9px}.stats-page .debt-title p,.stats-page .risk-bar p,.stats-page .debt-metrics,.stats-page .debt-list-button{display:none}.stats-page .risk-actions{margin-left:auto;flex-direction:row;align-items:center}.stats-page .filter-bar{margin-top:12px}.stat-card{padding:13px;border-radius:8px;background:#fff}.stat-card-main>span:first-child strong{font-size:16px}.stat-card-values{margin-top:12px;padding-top:10px;border-top:1px solid #edf1f6}.stat-card-actions .secondary-button{min-height:38px;margin-top:10px}.settings-page .page-heading:before{content:"服务器数据";color:var(--wap-blue);font-size:12px}.settings-page .page-heading h1{margin-top:4px}.settings-privacy-note{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:12px;margin-bottom:20px;border:1px solid #bfd6fb;border-radius:8px;background:#f4f8ff;padding:14px}.settings-privacy-note h2{color:var(--wap-blue);font-size:14px}.settings-privacy-note p{margin:4px 0 0;color:var(--wap-muted);font-size:11px}.setting-section-title{margin:16px 2px 8px;color:var(--wap-muted);font-size:13px;font-weight:550}.setting-section-title.is-danger{color:var(--wap-red)}.settings-list{display:block}.setting-row{grid-template-columns:auto minmax(0,1fr) auto;min-height:78px;gap:12px;margin:0;border-radius:0;padding:13px;box-shadow:none}.setting-section-title+.setting-row{border-radius:9px 9px 0 0}.setting-row+.setting-row{border-top:0}.storage-setting,.storage-setting+.setting-section-title{margin-top:0}.storage-setting{border-radius:0 0 9px 9px}.setting-row h2{font-size:15px}.setting-row p{margin-top:4px;font-size:11px}.setting-row>button{grid-column:3;width:auto;min-height:38px;padding:0 12px;white-space:nowrap}.setting-row .setting-icon{width:38px;height:38px}.storage-setting>strong{color:var(--wap-blue);font-size:13px}.danger-setting{margin-top:0;border:1px solid #f5c7ca;border-radius:9px;background:#fff9f9}.modal-panel-mobile-full{height:100dvh;max-height:100dvh;border-radius:0;background:var(--wap-canvas)}.modal-panel-mobile-full .modal-header{min-height:calc(64px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--wap-line);background:#fff}.modal-panel-mobile-full .modal-body{padding:12px 16px 110px;background:var(--wap-canvas)}.modal-panel-mobile-full .modal-footer{position:fixed;right:0;bottom:0;left:0;z-index:2;border-top:1px solid var(--wap-line);background:#fffffffa}.modal-panel-mobile-full .form-stack{gap:10px}.form-error-summary{margin:0 0 2px;border:1px solid #f4b7ba;border-radius:7px;color:var(--wap-red);background:#fff1f2;padding:10px 12px;font-size:12px}.form-section{border:1px solid var(--wap-line);border-radius:8px;background:#fff;padding:14px 10px;box-shadow:var(--wap-shadow)}.section-heading{margin-bottom:12px}.section-heading h3{position:relative;padding-left:10px;color:var(--wap-navy);font-size:16px}.section-heading h3:before{content:"";position:absolute;top:2px;bottom:2px;left:0;width:3px;border-radius:3px;background:var(--wap-blue)}.section-heading p{display:none}.form-grid.two-columns{gap:11px}.field{gap:6px}.field>span,.field legend{color:#23395d;font-size:12px}.field>input,.field>select,.field>textarea,.input-with-prefix,.input-with-suffix{min-height:42px;border-radius:6px;font-size:13px}.field>textarea{padding:10px}.field-counter{align-self:end;margin-top:-25px;padding:0 9px 8px;color:#7f8da4;font-size:10px}.choice-segment{min-height:42px;border-radius:6px}.choice-segment label{min-height:42px}.choice-segment label small{display:none}.choice-segment label.active{color:#fff;background:var(--wap-blue)}.student-note-field{grid-column:1 / -1}.field-error{color:var(--wap-red);font-size:10px}[aria-invalid=true]{border-color:var(--wap-red)!important}.modal-layer{background:#07142ab8}.modal-panel-sheet{max-height:88dvh;border-radius:20px 20px 0 0}.modal-panel-sheet:before{content:"";position:absolute;top:8px;left:50%;width:36px;height:4px;border-radius:999px;background:#c8cfdb;transform:translate(-50%)}.modal-panel-sheet .modal-header{padding-top:18px}.modal-panel-danger,.modal-panel-warning{width:calc(100% - 56px);max-height:calc(100dvh - 56px);align-self:center;border-radius:13px;margin-bottom:28px}.modal-panel-danger .modal-header,.modal-panel-warning .modal-header{justify-content:center;padding-left:46px}.modal-panel-danger .modal-header .icon-button,.modal-panel-warning .modal-header .icon-button{display:none}.modal-panel-danger .modal-header h2,.modal-panel-warning .modal-header h2{font-size:18px;text-align:center}.modal-panel-danger .modal-body,.modal-panel-warning .modal-body{padding-top:8px}.modal-header h2{color:var(--wap-navy);font-size:18px}.modal-footer{gap:10px}.renew-context{border-color:#c7dafb;border-radius:8px;background:#f2f7ff;padding:12px;text-align:left}.renew-context-head span{color:var(--wap-navy);font-size:13px}.renew-context-head small{color:var(--wap-muted);font-size:10px}.renew-copy-button{min-height:44px}.renew-balance-flow strong{color:var(--wap-blue)}.renew-calculation-note{color:#4f6482}.threshold-form{text-align:center}.threshold-form .field>span{font-size:14px}.threshold-form .input-with-suffix{width:180px;margin:14px auto;border:0}.threshold-form input{text-align:center;font-size:32px;font-weight:750}.attendance-confirmation .confirmation-lead{color:var(--wap-muted);font-size:12px}.confirmation-facts{border-radius:8px}.confirmation-facts dt{font-size:11px}.confirmation-facts dd{font-size:13px}.confirmation-impact{border-radius:8px}.confirmation-impact strong{color:var(--wap-blue);font-size:23px}.confirmation-note{border-radius:7px;color:var(--wap-red);background:#fff2f2}.group-delete-dialog{text-align:center}.dialog-state-icon{display:grid;width:48px;height:48px;place-items:center;margin:0 auto 10px;border-radius:50%;color:var(--wap-red);background:#ffe9ea}.group-delete-dialog p{margin:10px 0;color:var(--wap-muted);line-height:1.65}.group-delete-dialog p strong{color:var(--wap-navy)}.dialog-name-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}.dialog-name-chips span{border-radius:999px;color:var(--wap-blue);background:var(--wap-soft);padding:5px 10px;font-size:12px}.dialog-info-note,.dialog-danger-note,.dialog-danger-copy{display:flex;align-items:flex-start;gap:7px;border-radius:7px;padding:10px;text-align:left}.dialog-info-note{color:var(--wap-muted);background:#f5f8fc}.dialog-danger-note,.dialog-danger-copy{color:var(--wap-red)!important;background:#fff0f1}.backup-confirm-dialog{display:grid;gap:10px}.backup-file-line{display:flex;align-items:center;gap:10px}.backup-file-line>span{display:grid;width:42px;height:42px;place-items:center;border-radius:7px;color:#fff;background:var(--wap-blue)}.backup-validation{border:1px solid #c7dafb;border-radius:8px;background:#f2f7ff;padding:12px}.backup-validation strong{display:flex;align-items:center;gap:6px;color:var(--wap-blue)}.backup-validation p{margin:6px 0 0 24px;color:var(--wap-muted);font-size:12px;line-height:1.55}.clear-data-dialog{display:grid;gap:10px;text-align:center}.clear-data-dialog>p{margin:0;color:var(--wap-muted);line-height:1.6}.clear-data-dialog>strong{color:var(--wap-red);font-size:12px}.clear-data-dialog .field{text-align:left}.clear-acknowledge{display:flex;min-height:36px;align-items:center;gap:8px;text-align:left;font-size:12px}.clear-acknowledge input{width:18px;height:18px}.modal-panel-ledger .modal-header{min-height:calc(60px + env(safe-area-inset-top));background:#fff}.modal-panel-ledger .modal-body{background:var(--wap-canvas);padding:16px 16px 36px}.detail-identity{grid-template-columns:auto minmax(0,1fr) auto;gap:12px;padding:4px 0 14px;border:0;background:transparent}.large-avatar{width:62px;height:62px;border-radius:50%;font-size:24px}.detail-name-line h3{color:var(--wap-navy);font-size:22px}.detail-identity p{font-size:12px}.detail-identity small{font-size:11px}.detail-identity-actions{grid-column:2 / -1;justify-content:flex-end}.detail-identity-actions button{min-height:36px;border:0;background:transparent;padding:0 8px}.detail-identity-actions:has(>.student-detail-edit-action:only-child){display:none}.detail-balance{display:grid;grid-template-columns:1fr 1fr auto;gap:0;margin-bottom:12px;border:1px solid var(--wap-line);border-radius:9px;background:#fff;padding:12px;box-shadow:var(--wap-shadow)}.balance-main{min-height:62px;align-items:center;justify-content:center}.balance-main strong{color:var(--wap-blue);font-size:25px}.balance-main .balance-badge{display:none}.balance-pairs{display:contents}.balance-pairs span{display:none}.balance-pairs span:first-child{display:flex;min-height:62px;align-items:center;justify-content:center;border-left:1px solid var(--wap-line)}.balance-pairs span:first-child strong{color:var(--wap-blue);font-size:23px}.student-detail .ledger-balance>.primary-button{grid-column:3;grid-row:1;width:auto;align-self:center;min-height:42px;padding:0 14px}.detail-history-summary{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px;border:1px solid var(--wap-line);border-radius:9px;background:#fff;padding:13px 0;box-shadow:var(--wap-shadow)}.detail-history-summary span{display:grid;gap:5px;text-align:center}.detail-history-summary span+span{border-left:1px solid var(--wap-line)}.detail-history-summary small{color:var(--wap-muted);font-size:11px}.detail-history-summary strong{color:var(--wap-blue);font-size:19px}.detail-history-summary i{font-style:normal;font-size:11px;font-weight:500}.ledger-balance+.ledger-tabs,.ledger-tabs{margin:12px 0;border-bottom:1px solid var(--wap-line)}.ledger-tabs button{min-height:48px;font-size:13px}.ledger-tabs button.active{color:var(--wap-blue)}.ledger-section{border:0;background:transparent;padding:0;box-shadow:none}.detail-section-head{display:none}.payment-batch-list{gap:10px}.payment-batch-row{border:1px solid var(--wap-line);border-radius:9px;background:#fff;box-shadow:var(--wap-shadow)}.payment-batch-main{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 6px;padding:14px}.payment-batch-date{grid-column:1 / -1;flex-direction:row;justify-content:space-between;border-bottom:1px solid var(--wap-line);padding-bottom:10px}.payment-batch-main>span:nth-of-type(2){grid-column:1 / -1}.payment-batch-main>span:nth-of-type(2) strong{color:var(--wap-blue);font-size:25px}.payment-batch-main>svg{position:absolute;right:12px;top:17px}.package-share-button{min-height:42px;border-top:1px dashed var(--wap-line);color:var(--wap-blue)}.ledger-table{overflow:hidden;border:1px solid var(--wap-line);border-radius:9px;background:#fff}.ledger-row{grid-template-columns:1.1fr 1.5fr auto;gap:8px;min-height:70px;padding:11px}.ledger-row>span:nth-child(n+4){display:none}.package-statement,.current-debt-panel{border-radius:9px}.share-bill-page{width:100%;max-width:720px;min-height:100dvh;margin:0 auto;padding:0 17px 28px;background:var(--wap-canvas)}.share-bill-brand{display:grid;grid-template-columns:auto 1fr auto;min-height:62px;align-items:center;gap:10px;margin:0 -17px 18px;border-bottom:1px solid var(--wap-line);background:#fff;padding:0 17px}.share-bill-brand .brand-mark{width:35px;height:35px;color:var(--wap-blue);background:transparent}.share-bill-brand>strong{font-size:18px}.share-bill-brand>small{color:var(--wap-blue);font-size:12px}.parent-bill-title{display:flex;align-items:center;justify-content:space-between;margin:6px 2px 16px}.parent-bill-title h1{margin:0;font-size:24px}.parent-bill-title p{margin:5px 0 0;color:var(--wap-muted);font-size:11px}.parent-bill-title>span{border:1px solid #f1b94c;border-radius:6px;color:#e79000;padding:7px 10px;font-size:12px}.parent-bill-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--wap-line);border-radius:9px;background:#fff;box-shadow:var(--wap-shadow)}.parent-bill-facts>span{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:3px 10px;min-height:74px;align-content:center;padding:12px}.parent-bill-facts>span:nth-child(2n){border-left:1px solid var(--wap-line)}.parent-bill-facts>span:nth-child(n+3){border-top:1px solid var(--wap-line)}.parent-bill-facts i{grid-row:1 / 3;display:grid;width:34px;height:34px;place-items:center;border-radius:50%;color:var(--wap-blue);background:var(--wap-soft)}.parent-bill-facts small{color:var(--wap-muted);font-size:10px}.parent-bill-facts strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.parent-payment-card{margin-top:12px;border:1px solid #a9c9fb;border-radius:9px;background:#f4f8ff;padding:14px}.parent-payment-card>span{color:var(--wap-muted);font-size:11px}.parent-payment-card>strong{display:block;margin:5px 0 12px;color:var(--wap-blue);font-size:32px}.parent-payment-card>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #d7e4f6;border-bottom:1px solid #d7e4f6;padding:12px 0}.parent-payment-card>div span{display:grid;gap:3px}.parent-payment-card>div span+span{border-left:1px solid #d7e4f6;padding-left:14px}.parent-payment-card small{color:var(--wap-muted);font-size:10px}.parent-payment-card footer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}.parent-payment-card footer span{text-align:center;font-size:10px}.parent-payment-card footer span+span{border-left:1px solid #d7e4f6}.parent-payment-card footer b{color:var(--wap-blue);font-size:14px}.parent-refund-card{overflow:hidden;margin-top:12px;border:1px solid #f0bfc2;border-radius:9px;background:#fff;box-shadow:var(--wap-shadow)}.parent-refund-card>header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #f3dadd;background:#fff7f7;padding:13px}.parent-refund-card h2{margin:0;font-size:15px}.parent-refund-card header p{margin:5px 0 0;color:#8f6f74;font-size:10px;line-height:1.5}.parent-refund-card header>span{display:grid;flex:0 0 auto;justify-items:end;gap:2px}.parent-refund-card header small,.parent-refund-list small{color:#9a7d82;font-size:10px}.parent-refund-card header strong,.parent-refund-list .refund-negative{color:var(--wap-red);font-variant-numeric:tabular-nums}.parent-refund-card header strong{font-size:18px}.parent-refund-list article{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;border-top:1px solid #f2e2e4;padding:13px}.parent-refund-list article:first-child{border-top:0}.parent-refund-list article>div{display:grid;min-width:0;gap:3px}.parent-refund-list article>div>strong{color:var(--wap-navy);font-size:12px;overflow-wrap:anywhere}.parent-refund-list article>div>span{color:#8a96a8;font-size:9px;overflow-wrap:anywhere}.parent-refund-list article>p{display:flex;grid-column:1 / -1;align-items:flex-start;gap:6px;margin:0;border-radius:7px;color:#7f6267;background:#fff7f7;padding:8px 9px;font-size:10px;line-height:1.55;overflow-wrap:anywhere}.parent-refund-list article>p svg{flex:0 0 auto;margin-top:1px;color:var(--wap-red)}.parent-refund-legacy{display:flex;align-items:flex-start;gap:7px;margin:0;color:#7f6267;padding:13px;font-size:11px;line-height:1.55}.parent-refund-legacy svg{flex:0 0 auto;margin-top:1px;color:var(--wap-red)}.parent-refund-card>footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #f3dadd;background:snow;padding:11px 13px;color:#816d72;font-size:10px}.parent-refund-card>footer span+span{border-left:1px solid #f0d8dc;padding-left:12px}.parent-refund-card>footer strong{display:block;margin-top:3px;color:var(--wap-navy);font-size:13px;font-variant-numeric:tabular-nums}.parent-bill-debt,.parent-ledger-card{margin-top:12px;border:1px solid var(--wap-line);border-radius:9px;background:#fff;padding:13px;box-shadow:var(--wap-shadow)}.parent-bill-debt h2,.parent-ledger-card h2{margin:0 0 10px;font-size:15px}.parent-bill-debt p{display:flex;align-items:center;gap:7px;margin:0;color:var(--wap-muted);font-size:12px}.parent-bill-debt p svg{color:var(--wap-green)}.parent-bill-debt.has-debt{border-color:#f0bfc2;background:#fff7f7}.parent-ledger-head,.parent-ledger-table article{display:grid;grid-template-columns:1.3fr 1.4fr 1.2fr .8fr;gap:6px}.parent-ledger-head{border-top:1px solid var(--wap-line);border-bottom:1px solid var(--wap-line);color:var(--wap-muted);padding:9px 0;font-size:10px}.parent-ledger-table article{align-items:center;min-height:52px;border-bottom:1px solid #edf1f6;font-size:10px}.parent-ledger-table article:last-child{border-bottom:0}.parent-ledger-table article strong{color:var(--wap-blue);text-align:right;font-size:13px}.parent-ledger-title{align-items:flex-start;gap:8px}.parent-ledger-title h2{margin:0}.parent-ledger-title>span,.ledger-reconcile-badge{padding:4px 8px;font-size:10px;white-space:nowrap}.parent-bill-footer{padding:14px 1px 0}.parent-bill-footer p{color:#74829a;font-size:10px;line-height:1.6}.parent-bill-loading{display:grid;gap:14px}.skeleton{display:block;background:linear-gradient(90deg,#eef2f9 25%,#f7f9fd,#eef2f9 75%);background-size:200% 100%;animation:skeleton-shift 1.25s infinite}.skeleton-title{width:58%;height:22px;border-radius:5px}.skeleton-card{border:1px solid var(--wap-line);border-radius:9px;background:#fff;padding:18px}.skeleton-profile{display:flex;align-items:center;gap:14px}.skeleton-profile>i{width:54px;height:54px;border-radius:50%;background:#edf2fb}.skeleton-profile span{display:grid;flex:1;gap:10px}.skeleton-profile b,.skeleton-metrics b,.skeleton-metrics i,.skeleton-list i,.skeleton-list b{display:block;height:12px;border-radius:5px;background:#edf2fb}.skeleton-profile b:last-child{width:70%}.skeleton-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.skeleton-metrics span{display:grid;gap:10px}.skeleton-metrics i{height:28px}.loading-message{display:flex;align-items:center;justify-content:center;gap:14px;padding:18px}.loading-message h1{margin:0;color:var(--wap-blue);font-size:17px}.loading-message p{margin:4px 0 0;color:var(--wap-muted);font-size:11px}.skeleton-list{display:grid;gap:14px}.skeleton-list span{display:grid;grid-template-columns:52px 1fr 62px;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f6}.skeleton-list span:last-child{border-bottom:0}.parent-privacy-note{display:flex;justify-content:center;gap:6px;color:#74829a;font-size:10px}.parent-bill-error{min-height:calc(100dvh - 110px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.parent-bill-error .share-state-icon{display:grid;width:84px;height:84px;place-items:center;border-radius:50%;color:var(--wap-red);background:#ffecee}.parent-bill-error h1{margin:22px 0 8px;font-size:23px}.parent-bill-error p{max-width:290px;margin:0;color:var(--wap-muted);line-height:1.65}.parent-bill-error>div{display:grid;width:min(100%,300px);gap:10px;margin-top:24px}.parent-bill-error small{margin-top:18px;color:#8390a5}.attendance-page>.empty-state,.instant-attendance-page>.empty-state{min-height:470px;border:1px solid var(--wap-line);border-radius:10px;background:#fff;box-shadow:var(--wap-shadow);padding:70px 24px 34px}.attendance-page>.empty-state .empty-icon{width:104px;height:104px;border-radius:50%}.attendance-page>.empty-state .empty-icon svg{width:52px;height:52px}.attendance-page>.empty-state h3{margin-top:20px;font-size:21px}.attendance-page>.empty-state p{max-width:290px;font-size:13px;line-height:1.7}.attendance-page>.empty-state .primary-button{width:min(100%,250px);margin-top:18px}@keyframes skeleton-shift{to{background-position:-200% 0}}}@media (max-width: 380px){.students-page .page-heading .desktop-action,.groups-page .page-heading .desktop-action{padding:0 10px}.student-card footer{padding-left:13px}.student-card-metrics{margin-left:0}.group-attendance-summary strong{font-size:18px}.modal-panel-danger,.modal-panel-warning{width:calc(100% - 32px)}.parent-payment-card footer{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 0}.parent-payment-card footer span:nth-child(3){border-left:0}.parent-ledger-head,.parent-ledger-table article{grid-template-columns:1.25fr 1.3fr .9fr .7fr}}@media (max-width: 340px){.students-page .page-heading,.groups-page .page-heading{grid-template-columns:1fr}.students-page .page-heading .desktop-action,.groups-page .page-heading .desktop-action{width:100%;margin-top:10px}.setting-row{grid-template-columns:auto minmax(0,1fr)}.setting-row>button,.storage-setting>strong{grid-column:1 / -1;width:100%}.parent-bill-facts{grid-template-columns:1fr}.parent-bill-facts>span:nth-child(n){border-left:0;border-top:1px solid var(--wap-line)}.parent-bill-facts>span:first-child{border-top:0}.parent-refund-card>header{align-items:flex-start;flex-direction:column}.parent-refund-card header>span{justify-items:start}.parent-refund-list article{grid-template-columns:1fr}.parent-refund-list article>p{grid-column:1}}@media (max-width: 900px){.desktop-demo-banner{display:none!important}.modal-panel-mobile-inline-actions>.modal-footer,.modal-panel-mobile-inline-actions .modal-heading-copy>p{display:none!important}.stats-page .date-preset-field{display:none!important}.stats-page .mobile-date-presets{display:grid!important;grid-template-columns:1.2fr .85fr .85fr 1fr;width:100%;overflow:hidden;border:1px solid var(--wap-line);border-radius:7px;background:#fff}.stats-page .mobile-date-presets button{min-width:0;min-height:42px;border:0;border-right:1px solid var(--wap-line);border-radius:0;color:#273d63;background:#fff;padding:0 6px;font-size:12px;font-weight:600;white-space:nowrap}.stats-page .mobile-date-presets button:last-child{border-right:0}.stats-page .mobile-date-presets button.active{color:#fff;background:var(--wap-blue)}.stats-page .date-scope-bar>.compact-field:not(.date-preset-field){display:inline-grid;width:calc(50% - 5px);margin-top:10px}.stats-page .date-scope-bar>.compact-field:not(.date-preset-field)+.compact-field{margin-left:6px}.stats-page .stats-overview{overflow:hidden;border:1px solid #d8e4f7;border-radius:9px;background:#fff}.stats-page .stats-overview .overview-primary{min-height:122px;border-radius:0;background:#eef5ff;padding:17px 16px 14px}.stats-page .stats-overview .overview-primary>strong{margin:4px 0 2px;font-size:37px;line-height:1.1}.stats-page .stats-overview .overview-primary p{margin:0;font-size:11px}.stats-page .stats-overview .overview-grid{border:0;border-radius:0}.stats-page .stats-overview .overview-grid article{min-height:68px;align-content:center;padding:9px 14px}.stats-page .stats-overview .overview-grid article>span{font-size:10px}.stats-page .stats-overview .overview-grid strong{font-size:19px}.stats-page .stats-alert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.stats-page .stats-alert-grid .debt-bar,.stats-page .stats-alert-grid .risk-bar{width:100%;min-width:0;min-height:110px;margin:0;border:1px solid var(--wap-line);border-radius:8px;background:#fff;padding:10px;box-shadow:none}.stats-page .stats-alert-grid .debt-bar{justify-content:center;border-color:#f5c9cc;background:#fff7f7}.stats-page .stats-alert-grid .risk-bar{flex-direction:column;align-items:stretch;justify-content:center;gap:7px;border-color:#f1dcc0;background:#fffaf2}.stats-page .stats-alert-grid .debt-title,.stats-page .stats-alert-grid .risk-bar>div:first-child{min-width:0;gap:8px}.stats-page .stats-alert-grid .debt-title strong,.stats-page .stats-alert-grid .risk-bar strong{margin:0;font-size:13px;white-space:nowrap}.stats-page .stats-alert-grid .debt-icon,.stats-page .stats-alert-grid .risk-icon{width:36px;height:36px;border-radius:9px}.stats-page .stats-alert-grid .risk-actions{width:100%;margin-left:0}.stats-page .stats-alert-grid .risk-count-button{width:100%;min-height:44px;padding:0 8px;white-space:nowrap}.stats-page .risk-actions .text-button{display:none}.stats-page .filter-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:0;border:0;background:transparent}.stats-page .filter-bar .search-field{grid-column:1 / -1;min-height:42px;border:1px solid var(--wap-line);border-radius:7px;background:#fff}.stats-page .filter-bar select,.stats-page .filter-toggle{min-height:42px;border:1px solid var(--wap-line);border-radius:7px;background:#fff}.stats-page .filter-toggle{padding:0 10px;color:var(--wap-muted);font-size:11px}.stats-page .filter-toggle.active{border-color:#a9c8fb;color:var(--wap-blue);background:var(--wap-soft)}.stats-page .stat-cards{gap:9px}.stats-page .stat-card{border:1px solid var(--wap-line);box-shadow:var(--wap-shadow)}.stats-page .stat-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stats-page .stat-card-actions .secondary-button{min-width:0;padding:0 8px;font-size:11px}.finance-secondary-metrics article{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;column-gap:9px;padding:10px 12px}.finance-secondary-metrics article>i{grid-row:1 / 3;display:grid;width:36px;height:36px;place-items:center;align-self:center;border-radius:50%;color:var(--wap-blue);background:var(--wap-soft)}.finance-secondary-metrics article>span,.finance-secondary-metrics article>strong{min-width:0}.finance-secondary-metrics article>span{font-size:10px}.finance-secondary-metrics article>strong{overflow:hidden;color:var(--wap-navy);font-size:16px;text-overflow:ellipsis;white-space:nowrap}.group-attendance-toolbar{grid-template-columns:minmax(0,1fr) 90px;gap:8px}.attendance-date-control{width:100%;min-width:0;overflow:hidden}.attendance-date-control .compact-field,.attendance-date-control input{width:100%;min-width:0}.group-attendance-toolbar>.secondary-button{min-width:0;width:90px;padding:0 8px}.quick-deduct-button,.quick-deduct-button:hover{border:1px solid var(--wap-blue)!important;color:var(--wap-blue)!important;background:#fff!important}.quick-deduct-button:disabled{border-color:#b9cff2!important;color:#8caee0!important;background:#f4f8ff!important}.detail-name-line{display:flex;align-items:center;gap:8px}.detail-name-line .student-status-badge{min-height:24px;padding:0 7px;font-size:10px}.detail-balance{grid-template-columns:minmax(74px,1fr) minmax(112px,1.35fr) auto;padding:10px}.balance-main,.balance-pairs span:first-child{min-width:0;min-height:62px}.balance-pairs span:first-child{display:grid;align-content:center;justify-items:center;gap:3px;padding:0 8px}.balance-pairs span:first-child small,.balance-pairs span:first-child strong{white-space:nowrap}.balance-pairs span:first-child small{font-size:10px}.balance-pairs span:first-child strong{font-size:20px}.student-detail .ledger-balance>.primary-button{min-width:78px;padding:0 10px;white-space:nowrap}.payment-batch-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column:1 / -1;gap:10px;margin:0;border-top:1px solid var(--wap-line);padding:10px 13px 12px}.payment-batch-actions .package-open-button,.payment-batch-actions .package-share-button{width:100%;min-height:38px;justify-content:center;margin:0;border:1px solid #a9c7f5;border-radius:6px;color:var(--wap-blue);background:#fff}.modal-panel-ledger .modal-body:has(.package-statement-mobile-actions){padding-bottom:calc(88px + env(safe-area-inset-bottom))}.package-statement-mobile-actions{position:fixed;right:0;bottom:0;left:0;z-index:4;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-top:1px solid var(--wap-line);background:#fffffffa;padding:10px 16px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -8px 22px #15356414}.package-statement-mobile-actions>button{min-width:0}.student-form{gap:12px}.student-form .form-section{padding:14px 12px}.student-form .section-heading{margin-bottom:13px}.student-form .section-heading h3{font-size:15px}.student-form .form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}.student-form .full-span,.student-form .calculated-field,.student-form .teaching-mode-field,.student-form .student-group-field{grid-column:1 / -1}.student-form .field{gap:6px}.student-form .field>span,.student-form .field legend{font-size:12px}.student-form .field>input,.student-form .field>select,.student-form .input-with-prefix,.student-form .input-with-suffix{min-height:44px;height:44px}.student-form .choice-segment{grid-template-columns:repeat(2,minmax(0,1fr));min-height:50px;height:50px;gap:3px;border:1px solid var(--wap-line);border-radius:9px;background:#f2f6fc;padding:3px}.student-form .choice-segment label{position:relative;min-width:0;min-height:42px;height:42px;justify-content:center;gap:0;border:0;border-radius:7px;background:transparent;padding:0 12px}.student-form .choice-segment label>input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.student-form .choice-segment label span{display:flex;min-width:0;align-items:center;justify-content:center}.student-form .choice-segment label strong{font-size:14px;white-space:nowrap}.student-form .choice-segment label.active{color:#fff;background:var(--wap-blue);box-shadow:0 3px 10px #0b63e62e}.student-form .choice-segment label:focus-within{outline:2px solid rgba(11,99,230,.32);outline-offset:2px}.student-form .one-to-one-form-note{min-height:58px;align-content:center;gap:3px;border-color:#c8daf6;border-radius:8px;background:var(--wap-soft);padding:10px 12px}.student-form .one-to-one-form-note strong{color:var(--wap-navy);font-size:13px}.student-form .one-to-one-form-note span{color:var(--wap-muted);font-size:11px;line-height:1.5}.student-form .student-note-field textarea{min-height:76px;height:76px}.student-form .payment-section textarea{min-height:60px;height:60px}.student-form .calculated-field{min-height:48px;padding:8px 10px}.student-form .calculated-field p{display:none}.group-submit-progress{display:grid;gap:12px}.submission-facts{display:grid;gap:0;margin:0}.submission-facts>div{display:grid;grid-template-columns:92px minmax(0,1fr);min-height:36px;align-items:center;gap:10px;border-bottom:1px solid #edf1f6}.submission-facts>div:last-child{border-bottom:0}.submission-facts dt{color:var(--wap-muted);font-size:11px}.submission-facts dd{margin:0;color:var(--wap-navy);font-size:12px;font-weight:650;text-align:right}.group-submit-progress>p{display:flex;align-items:center;gap:7px;margin:0;border-radius:7px;color:var(--wap-blue);background:var(--wap-soft);padding:10px;font-size:11px}.group-submit-loading-button>span{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:wap-spin .8s linear infinite}@keyframes wap-spin{to{transform:rotate(360deg)}}.share-generation-error{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;border:1px solid #f2c4c7;border-radius:8px;background:#fff2f2;padding:14px}.share-generation-error>span{display:grid;width:46px;height:46px;place-items:center;border-radius:50%;color:var(--wap-red);background:#ffe5e7}.share-generation-error h3{margin:0;color:var(--wap-red);font-size:15px}.share-generation-error p{margin:5px 0;color:#8f3940;font-size:12px;line-height:1.55}.share-generation-error small{color:#9d676b;font-size:10px}.modal-panel-share-error{max-height:88dvh;border-radius:20px 20px 0 0}.modal-panel-share-error .modal-footer{display:grid;grid-template-columns:1fr}.modal-panel-share-error .modal-footer .primary-button{grid-row:1}.parent-bill-error{min-height:calc(100dvh - 82px);justify-content:space-between;padding:70px 0 10px}.parent-error-card{display:flex;width:min(100%,330px);flex-direction:column;align-items:center;border:1px solid var(--wap-line);border-radius:10px;background:#fff;padding:28px 20px 20px;box-shadow:var(--wap-shadow)}.parent-error-card h1{margin:18px 0 7px;color:var(--wap-navy);font-size:20px}.parent-error-card>p{margin:0;color:var(--wap-muted);font-size:12px;line-height:1.65}.parent-error-card .parent-error-privacy{display:flex;align-items:flex-start;gap:7px;width:100%;margin-top:18px;border-radius:7px;color:#5c7190;background:#eff5ff;padding:10px;text-align:left}.parent-error-card>div{display:grid;width:100%;gap:8px;margin-top:16px}.parent-error-card>small{margin-top:15px;border-top:1px solid #edf1f6;color:#8a96a8;padding-top:13px;font-size:9px;line-height:1.6}.parent-bill-error>footer{display:flex;align-items:center;gap:6px;color:#71829a;font-size:10px}.one-confirm-student{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;border-bottom:1px solid var(--wap-line);padding:0 4px 14px}.one-confirm-student .large-avatar{width:62px;height:62px}.one-confirm-student div{display:grid;gap:6px}.one-confirm-student strong{color:var(--wap-navy);font-size:17px}.one-confirm-student small{width:max-content;border-radius:5px;color:var(--wap-red);background:#fff0f1;padding:4px 8px;font-size:10px}.one-deduct-confirmation>.confirmation-lead{display:none}.one-deduct-confirmation .confirmation-facts>div:first-child,.one-deduct-confirmation .confirmation-facts>div:nth-child(n+4){display:none}.one-deduct-confirmation .confirmation-facts{grid-template-columns:1fr}.one-deduct-confirmation .confirmation-facts>div{min-height:50px}.one-deduct-confirmation>.confirmation-impact{display:none}.one-balance-preview{display:grid!important;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;border:1px solid var(--wap-line);border-radius:8px;background:#fff;padding:14px 12px}.one-balance-preview>span{display:grid;justify-items:center;gap:4px}.one-balance-preview small,.one-balance-preview em{color:var(--wap-muted);font-size:10px;font-style:normal}.one-balance-preview>span strong{color:var(--wap-navy);font-size:27px}.one-balance-preview>span strong.debt-value{color:var(--wap-red)}.one-balance-preview>span strong i{margin-left:2px;font-size:11px;font-style:normal}.one-balance-preview>b{color:#68a3ff;font-size:26px;font-weight:400}.one-balance-preview>div{display:flex;grid-column:1 / -1;min-height:50px;align-items:center;justify-content:center;gap:18px;border:1px solid #a8c8fb;border-radius:7px}.one-balance-preview>div span{color:var(--wap-navy);font-size:13px}.one-balance-preview>div strong{color:var(--wap-blue);font-size:24px}.one-correction-student{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}.one-correction-student .avatar{grid-row:1 / 3}.one-correction-student strong{color:var(--wap-navy);font-size:15px}.one-correction-student small{color:var(--wap-muted);font-size:10px}.one-correction-confirmation>.confirmation-lead,.one-correction-confirmation>.confirmation-facts{display:none}.one-correction-preview{display:grid!important;gap:0;border:1px solid var(--wap-line);border-radius:8px;background:#fff;padding:12px}.one-correction-preview h3{margin:0 0 8px;color:var(--wap-navy);font-size:13px}.one-correction-preview>div{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:58px;border-top:1px solid #edf1f6;text-align:center}.one-correction-preview span{display:grid;gap:4px}.one-correction-preview small{color:var(--wap-muted);font-size:10px}.one-correction-preview strong{color:var(--wap-red);font-size:17px}.one-correction-preview .success-text{color:#0e9f7b}.one-correction-preview b{color:var(--wap-blue);font-size:22px;font-weight:400}.one-correction-confirmation>.confirmation-impact{border:0;color:#2d69c5;background:#eff5ff}}@media (max-width: 340px){.mobile-topbar-title{display:none}.mobile-brand strong{font-size:16px}.stats-page .mobile-date-presets{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-page .mobile-date-presets button:nth-child(2){border-right:0}.stats-page .mobile-date-presets button:nth-child(n+3){border-top:1px solid var(--wap-line)}.stats-page .date-scope-bar>.compact-field:not(.date-preset-field){width:100%}.stats-page .date-scope-bar>.compact-field:not(.date-preset-field)+.compact-field{margin-left:0}.student-form .form-grid.two-columns{grid-template-columns:1fr}.student-form .field{grid-column:1 / -1}}@media (max-width: 900px){.student-card.is-withdrawn,.stat-card.is-withdrawn{border-color:#efc4c7;background:snow}.refund-form{gap:12px}.refund-student-summary{grid-template-columns:auto minmax(0,1fr);gap:10px;padding-bottom:11px}.refund-student-summary>span:last-child{grid-column:1 / -1;grid-template-columns:1fr auto;justify-items:stretch;border-radius:7px;background:var(--wap-soft);padding:9px 11px}.refund-student-summary>span:last-child strong{justify-self:end}.refund-total-card{min-height:82px;border-radius:8px;padding:13px}.refund-total-card strong{font-size:25px}.refund-mode-choice{grid-template-columns:1fr;gap:8px}.refund-mode-choice label{min-height:64px;border-radius:8px;padding:11px}.refund-package-list{border-radius:8px}.refund-package-list header,.refund-package-option{padding-inline:11px}.refund-package-option{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px}.refund-package-main{grid-template-columns:1fr;gap:7px}.refund-package-usage{justify-content:flex-start}.refund-package-value{grid-column:2;grid-row:2;min-width:0;justify-items:start}.refund-fields{grid-template-columns:1fr;gap:10px;padding-top:12px}.refund-fields>*{grid-column:1 / -1}.refund-confirmation{gap:10px}.refund-confirmation h3{font-size:18px}.refund-confirmation dl>div{grid-template-columns:82px minmax(0,1fr);gap:10px}.refund-history-list article{min-height:56px;padding:9px 11px}.finance-payment-cards article.is-refund{border-color:#efc4c7;background:snow}.groups-page .group-list{gap:8px}.groups-page .group-row{grid-template-columns:minmax(0,1fr) auto;min-height:0;align-items:start;gap:6px 10px;border-radius:10px;padding:12px}.groups-page .group-row-main{grid-column:1;grid-row:1;min-width:0;align-items:center;gap:10px}.groups-page .group-mark{width:40px;height:40px}.groups-page .group-row-main>div{min-width:0}.groups-page .group-row-main h2{margin:0 0 2px;overflow-wrap:anywhere;line-height:1.35}.groups-page .group-row-main p{margin:0;line-height:1.5}.groups-page .group-created-mobile{display:block;margin-top:3px;color:var(--wap-muted);font-size:10px;line-height:1.4}.groups-page .group-count{display:inline-flex;grid-column:2;grid-row:1;min-width:112px;min-height:44px;align-items:center;align-self:center;justify-content:center;gap:5px;border:1px solid #bcd6fa;border-radius:10px;color:var(--wap-blue);background:#f7fbff;box-shadow:0 4px 12px #1a68dc14;padding:0 9px;font:inherit;text-align:center;white-space:nowrap;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .12s ease}.groups-page .group-count:active{border-color:var(--wap-blue);background:var(--wap-soft);box-shadow:0 2px 7px #1a68dc1a;transform:scale(.98)}.groups-page .group-count strong{color:inherit;font-size:15px;line-height:1}.groups-page .group-count span{color:inherit;font-size:11px;font-weight:650}.groups-page .group-count-arrow{flex:0 0 auto;margin-left:1px}.groups-page .group-student-preview{display:flex;grid-column:1;grid-row:2;min-width:0;min-height:44px;align-items:center;gap:4px;padding-left:50px}.groups-page .mini-avatar{margin-left:0}.groups-page .group-student-preview small{margin-left:2px}.groups-page .group-row.is-empty .group-student-preview small{margin-left:0;border-radius:999px;color:var(--wap-muted);background:#f3f6fa;padding:5px 9px}.groups-page .group-row .row-actions{display:flex;grid-column:2;grid-row:2;min-height:44px;align-items:center;align-self:start;justify-content:flex-end;gap:8px}.groups-page .group-row .row-actions button,.groups-page .group-row .row-actions .secondary-button{min-width:44px;min-height:44px;padding:0 7px;white-space:nowrap}.class-member-manager{gap:12px}.class-member-summary{align-items:flex-start;padding-bottom:12px}.class-member-toolbar{grid-template-columns:1fr;gap:10px}.class-member-toolbar .search-field,.class-member-toolbar .class-target-field select{min-height:44px}.class-member-list{max-height:none}.class-member-row{grid-template-columns:auto 36px minmax(0,1fr);min-height:66px;gap:9px;padding:9px 10px}.class-member-row .member-balance{grid-column:3;justify-items:start}.class-member-row .member-balance small,.class-member-row .member-balance strong{display:inline}.class-member-row .member-balance small:after{content:"："}.class-transfer-unavailable{grid-template-columns:auto minmax(0,1fr)}.class-transfer-unavailable .secondary-button{grid-column:1 / -1;width:100%}.class-member-empty{padding:24px 14px}.class-transfer-route{gap:8px;padding:12px 10px}.class-transfer-route strong{overflow-wrap:anywhere}.modal-footer:has(.class-member-footer-summary){flex-wrap:wrap}.modal-footer .class-member-footer-summary{flex:0 0 100%;min-height:0;margin:0;text-align:center}}@media (max-width: 340px){.groups-page .group-row{gap:5px 6px;padding:11px 10px}.groups-page .group-mark{width:36px;height:36px}.groups-page .group-row-main{gap:8px}.groups-page .group-student-preview{gap:2px;padding-left:44px}.groups-page .group-count{min-width:104px;padding:0 7px}.groups-page .group-row .row-actions button,.groups-page .group-row .row-actions .secondary-button{padding-right:5px;padding-left:5px}}@media (max-width: 900px){.stats-page .stats-heading-copy{min-width:0}.stats-page .stats-title-line{gap:7px}.stats-page .stats-title-line h1{flex:0 0 auto}.stats-page .stats-bill-entry{display:inline-flex!important;min-width:0;min-height:44px;padding:0 9px;align-items:center;gap:5px;color:var(--wap-blue);font-size:12px;line-height:1;white-space:nowrap}.stats-page .stats-bill-entry small{display:grid;min-width:18px;height:18px;padding:0 4px;border-radius:999px;color:var(--surface);background:var(--wap-blue);font-size:10px;font-weight:750;line-height:18px;place-items:center}.stats-page.is-student-bills-view .page-heading{display:block;margin-bottom:14px}.stats-page.is-student-bills-view .stats-title-line{align-items:center}.stats-page.is-student-bills-view .stats-bill-back{display:inline-grid;flex:0 0 44px;width:44px;min-width:44px;min-height:44px;padding:0;border-color:var(--wap-line);color:var(--wap-navy);background:var(--surface);place-items:center}.stats-page.is-student-bills-view .stats-bill-back span{display:none}.stats-page.is-student-bills-view .page-heading p{max-width:330px;margin-top:7px}.stats-page.is-student-bills-view .stats-student-filter{margin-top:0}.stats-page .student-bill-list-meta{min-height:38px;margin-bottom:9px;padding:0 2px;border:0;background:transparent;gap:8px}.stats-page .student-bill-list-meta button{min-height:44px;padding:0 8px}.stats-page.is-student-bills-view .stat-card-actions .secondary-button{min-height:44px}}@media (max-width: 360px){.renew-context-head{align-items:stretch;flex-direction:column}.renew-copy-button{width:100%}.renew-balance-flow{grid-template-columns:1fr;gap:5px}.renew-balance-flow>i{display:none}.renew-balance-flow>span{grid-template-columns:1fr auto;align-items:center}.renew-balance-flow>span small{font-size:10px}.stats-page .stats-bill-entry{padding:0 7px}.stats-page .stats-bill-entry svg{display:none}.stats-page .student-bill-attention{display:none}.finance-mobile-renew{flex:0 0 auto;min-width:92px;min-height:44px;justify-content:center;gap:5px;margin-top:10px;padding:0 12px;border-radius:8px;font-size:13px;white-space:nowrap}}@media (max-width: 900px){.quick-deduct-panel.surface-panel{width:100%;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.quick-deduct-panel .one-student-header{display:grid;width:100%;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:8px;border:0;padding:0 0 12px}.one-student-title-row{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px}.quick-deduct-panel .one-student-title-row h2{min-width:0;margin:0;color:var(--wap-navy);font-size:20px;line-height:1.35}.quick-deduct-panel .one-student-header p{max-width:none;margin:0;color:var(--wap-muted);font-size:12px;line-height:1.55}.quick-deduct-panel .one-student-title-row .one-record-trigger{width:auto;min-width:0;min-height:44px;flex:0 0 auto;justify-content:center;border-radius:9px;padding:0 12px}.quick-deduct-panel .quick-deduct-search{width:100%;min-width:0;min-height:48px;margin:0 0 12px;border-radius:10px;background:var(--surface)}.quick-deduct-panel .quick-deduct-search input{min-width:0;height:46px;font-size:14px}.quick-deduct-panel .quick-deduct-list{width:100%;gap:10px;padding:0}.quick-deduct-panel .quick-deduct-list article{width:100%;min-width:0;min-height:100px;grid-template-columns:44px minmax(0,1fr) 92px;gap:8px 12px;border-radius:12px;padding:14px 12px}.quick-deduct-panel .quick-deduct-list .avatar{width:44px;height:44px}.quick-deduct-panel .quick-student-copy{min-width:0}.quick-deduct-panel .quick-student-copy strong,.quick-deduct-panel .quick-student-copy small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-deduct-panel .quick-deduct-list article>.balance-badge{grid-column:2;justify-self:start}.quick-deduct-panel .quick-deduct-list .quick-deduct-button{width:92px;min-width:92px;min-height:48px;grid-column:3;grid-row:1 / span 2;align-self:center;justify-self:end;padding:0 10px}}@media (max-width: 340px){.one-student-title-row{gap:8px}.quick-deduct-panel .one-student-title-row h2{font-size:18px}.quick-deduct-panel .one-student-title-row .one-record-trigger{width:auto;padding:0 9px}.quick-deduct-panel .quick-deduct-list article{grid-template-columns:36px minmax(0,1fr) 76px;gap:7px 9px;padding:12px 10px}.quick-deduct-panel .quick-deduct-list .avatar{width:36px;height:36px}.quick-deduct-panel .quick-deduct-list .quick-deduct-button{width:76px;min-width:76px;grid-column:3;grid-row:1 / span 2;padding:0 7px}}@media (max-width: 900px){.groups-page .group-attendance-heading{display:grid;justify-content:stretch;gap:8px;padding:12px 2px 14px}.groups-page .group-attendance-heading h2{margin:0;color:var(--wap-navy);font-size:18px;line-height:1.35}.groups-page .attendance-legend{justify-content:flex-start;gap:18px;color:var(--wap-muted)}.groups-page .group-attendance-chart{display:grid!important;grid-template-columns:minmax(0,1fr);gap:12px}.groups-page .group-attendance-row{width:100%;min-width:0;min-height:112px;grid-template-columns:minmax(0,1.15fr) minmax(108px,1.25fr) 62px;align-items:center;gap:10px;margin:0;border:1px solid var(--wap-line);border-radius:12px;background:#fff;padding:14px 12px;box-shadow:var(--wap-shadow)}.groups-page .group-attendance-row.has-no-session{background:#fff}.groups-page .group-attendance-identity{min-width:0;grid-template-columns:40px minmax(0,1fr);gap:4px 9px}.groups-page .group-attendance-avatar{display:grid!important;width:40px;height:40px;color:var(--wap-blue);background:#edf4ff;font-size:16px}.groups-page .group-attendance-row.has-no-session .group-attendance-avatar{color:#6684b5;background:#f0f4fa}.groups-page .group-attendance-identity h3{min-width:0;margin:0;color:var(--wap-navy);font-size:15px;line-height:1.35}.groups-page .group-attendance-identity p{min-width:0;color:var(--wap-muted);font-size:11px;line-height:1.4}.groups-page .group-attendance-bars{min-width:0;grid-column:auto;gap:10px}.groups-page .attendance-bar-line{min-width:0;grid-template-columns:28px minmax(0,1fr) 18px;gap:6px}.groups-page .attendance-bar-line>span{color:var(--wap-muted);font-size:11px;white-space:nowrap}.groups-page .attendance-bar-line>strong{color:var(--wap-navy);font-size:12px}.groups-page .attendance-bar-track{height:8px;background:#edf1f6}.groups-page .group-attendance-rate{min-width:0;min-height:72px;grid-column:auto;grid-row:auto;align-self:center;align-content:center;justify-items:center;gap:7px;border-left:1px solid var(--wap-line);padding-left:10px;text-align:center}.groups-page .group-attendance-rate span{color:var(--wap-muted);font-size:11px;white-space:nowrap}.groups-page .group-attendance-rate strong{color:var(--wap-blue);font-size:21px;line-height:1}.groups-page .group-attendance-row.has-no-session .attendance-bar-fill{width:0!important}}@media (max-width: 340px){.groups-page .group-attendance-row{min-height:106px;grid-template-columns:minmax(0,.95fr) minmax(92px,1.1fr) 50px;gap:8px;padding:12px 10px}.groups-page .group-attendance-identity{grid-template-columns:36px minmax(0,1fr);gap:3px 7px}.groups-page .group-attendance-avatar{width:36px;height:36px;font-size:15px}.groups-page .group-attendance-identity h3{font-size:14px}.groups-page .group-attendance-identity p,.groups-page .attendance-bar-line>span,.groups-page .group-attendance-rate span{font-size:10px}.groups-page .attendance-bar-line{grid-template-columns:25px minmax(0,1fr) 14px;gap:4px}.groups-page .group-attendance-rate{padding-left:7px}.groups-page .group-attendance-rate strong{font-size:18px}}@media (min-width: 371px) and (max-width: 900px){.instant-attendance-page .attendance-card{display:grid;min-height:78px;grid-template-columns:36px minmax(44px,1fr) 30px 140px auto;align-items:center;gap:4px;padding:10px 12px}.instant-attendance-page .attendance-card-main,.instant-attendance-page .status-card-foot{display:contents}.instant-attendance-page .attendance-card-main .avatar{grid-column:1;grid-row:1}.instant-attendance-page .student-card-copy{grid-column:2;grid-row:1;gap:2px}.instant-attendance-page .status-card-foot .deduction-result{min-width:30px;grid-column:3;grid-row:1;font-size:14px}.instant-attendance-page .status-card-foot .status-segment{width:140px;min-width:140px;grid-column:4;grid-row:1;grid-template-columns:74px 66px}.instant-attendance-page .attendance-card-main .balance-badge{max-width:50px;grid-column:5;grid-row:1;padding-right:6px;padding-left:6px;font-size:10px;white-space:nowrap}.instant-attendance-page .status-segment button{min-width:0;padding-right:5px;padding-left:5px}}@media (min-width: 901px){.modal-panel:has(.student-form){max-height:min(92vh,960px)}.modal-panel:has(.student-form) .modal-body{padding:20px 22px}.student-form{gap:20px}.student-form .form-section{gap:14px}.student-form .form-section+.form-section{padding-top:20px}.student-form .section-heading{display:flex;align-items:baseline;gap:10px}.student-form .section-heading h3,.student-form .section-heading p{margin:0}.student-form .form-grid.two-columns{column-gap:16px;row-gap:14px}.student-form .student-name-field,.student-form .student-grade-field,.student-form .payment-amount-field,.student-form .payment-lessons-field,.student-form .payment-method-field,.student-form .payment-date-field{grid-column:auto}.student-form .student-note-field textarea{min-height:72px;height:72px}.student-form .payment-note-field textarea{min-height:60px;height:60px}.student-form textarea{width:100%;max-height:144px;resize:vertical;border:1px solid var(--border-strong);border-radius:9px;color:var(--ink);background:#fff;padding:9px 12px;font:inherit;line-height:1.55;transition:border-color .16s ease,box-shadow .16s ease}.student-form textarea::placeholder{color:var(--muted-ink)}.student-form textarea:focus{border-color:var(--primary);outline:0;box-shadow:0 0 0 3px #235fc71f}.student-form .student-unit-price{grid-template-columns:auto auto minmax(0,1fr);min-height:58px;align-items:center;align-content:center;column-gap:12px;padding:10px 14px}.student-form .student-unit-price strong{font-size:18px}.student-form .student-unit-price p{justify-self:end;text-align:right}.modal-panel-ledger{width:min(var(--modal-width),calc(100vw - var(--sidebar-width) - 40px))}.modal-panel-ledger .modal-header{min-height:70px;padding:14px 18px}.modal-panel-ledger .modal-heading-copy h2{margin:0;font-size:18px}.modal-panel-ledger .modal-heading-copy p{margin:4px 0 0;color:#8e98aa;font-size:12px}.modal-panel-ledger .modal-body{padding:16px 18px}.ledger-detail>.detail-identity,.ledger-legacy-mobile{display:none!important}.reference-ledger-summary{display:grid!important;grid-template-columns:1.18fr repeat(3,1fr);min-height:100px;margin:0 0 16px;overflow:hidden;border:1px solid #e8ecf2;border-radius:10px;background:#fff}.reference-ledger-summary>span{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:14px 16px;border-left:1px solid #edf0f4}.reference-ledger-summary>span:first-child{border-left:0}.reference-ledger-summary>span.is-primary{background:#f3f6ff}.reference-ledger-summary small{color:#8a95a7;font-size:12px}.reference-ledger-summary strong{margin-top:8px;color:#30394d;font-size:20px;white-space:nowrap}.reference-ledger-summary .is-primary strong{color:#4f76df;font-size:24px}.reference-ledger-summary em{margin-top:6px;color:#8e98aa;font-size:11px;font-style:normal}.ledger-detail>.ledger-tabs{margin:0;border-bottom:1px solid #edf0f4}.ledger-detail>.ledger-section{margin-top:0}.ledger-detail>.ledger-section .detail-section-head{display:none}.payment-batch-list{overflow:hidden;border-radius:0;background:#fff}.payment-batch-row{grid-template-columns:minmax(0,1fr) 136px;min-height:76px;margin:0;border:0;border-bottom:1px solid #edf0f4;border-radius:0;box-shadow:none}.payment-batch-main{grid-template-columns:minmax(122px,1.25fr) minmax(92px,.95fr) repeat(3,minmax(66px,.68fr)) minmax(78px,.72fr) 18px;min-height:76px;gap:8px;padding:10px 8px 10px 14px}.payment-batch-main>span{min-width:0}.payment-batch-date strong{overflow:visible;text-overflow:clip;white-space:nowrap}.payment-batch-date time{font-variant-numeric:tabular-nums}.payment-batch-actions{display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:6px;margin:0;padding-right:12px}.payment-batch-actions .package-open-button,.payment-batch-actions .package-share-button{min-width:0;min-height:36px;justify-content:center;margin:0;padding:0 7px;font-size:11px}.payment-batch-actions .package-share-button{gap:4px}.payment-batch-row:last-child{border-bottom:0}.ledger-footer-stop{margin-right:auto}.ledger-footer-note{margin-left:auto;color:#9aa3b2;font-size:11px}.reference-one-row .quick-deduct-button{grid-column:6}.reference-one-confirm .confirmation-lead{margin:0 0 12px;color:#8e98aa;font-size:12px}.reference-one-confirm .confirmation-facts{display:block;overflow:hidden;margin:0;border:1px solid #e8ecf2;border-radius:8px}.reference-one-confirm .confirmation-facts>div,.reference-one-confirm .confirmation-facts>div.is-wide{display:grid;grid-template-columns:100px 1fr;min-height:43px;padding:0 12px;border:0;border-bottom:1px solid #edf0f4;border-radius:0;align-items:center}.reference-one-confirm .confirmation-facts>div:last-child{border-bottom:0}.reference-one-confirm .confirmation-facts dt{color:#8c96a8;font-size:12px}.reference-one-confirm .confirmation-facts dd{margin:0;color:#30394d;font-size:13px;font-weight:600}.reference-one-confirm .confirmation-impact{display:none}.reference-one-confirm .confirmation-note{margin:10px 0 0;border-radius:7px}.group-attendance-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;overflow:hidden;padding:0}.group-attendance-summary article{min-height:66px;padding:14px 16px;border-left:1px solid #edf0f4}.group-attendance-summary article:first-child{border-left:0}.group-attendance-panel{overflow:hidden;padding:0}.group-attendance-heading{min-height:70px;padding:15px 16px;border-bottom:1px solid #edf0f4}.reference-group-attendance-row{display:grid;grid-template-columns:minmax(210px,1.4fr) repeat(5,minmax(80px,.7fr));align-items:center;min-height:55px;padding:0 16px;border-bottom:1px solid #edf0f4;color:#687387;font-size:12px}.reference-group-attendance-row:last-child{border-bottom:0}.reference-group-attendance-row.table-head{min-height:43px;background:#fafbfc;color:#7d8798;font-weight:600}.reference-group-attendance-row>strong{color:#30394d}.reference-group-attendance-row.has-no-session{color:#a1a9b7}}@media (min-width: 901px){.finance-page{padding-top:24px}.finance-page .page-heading{min-height:42px;margin-bottom:14px;align-items:center}.finance-page .page-heading>div:first-child{gap:16px}.finance-page .page-heading h1{font-size:26px;line-height:1.25}.finance-page .page-heading p{max-width:56ch;line-height:1.55}.finance-heading-actions .primary-button{min-height:40px;padding-right:17px;padding-left:17px;box-shadow:0 5px 14px #235fc729}.finance-reference-toolbar{min-height:52px;margin-bottom:14px;padding:8px 10px;gap:10px;border-color:var(--border);border-radius:12px;box-shadow:var(--shadow-sm)}.finance-reference-range{gap:4px}.finance-reference-range>span{margin-right:8px;color:var(--muted-ink);font-weight:600}.finance-reference-tabs{gap:2px;padding:3px;background:var(--surface-subtle)}.finance-reference-tabs button,.finance-reference-range button{min-height:32px;padding-right:12px;padding-left:12px}.finance-reference-note{padding-left:10px;border-left:1px solid var(--border);color:var(--muted-ink)}.finance-reference-metrics{gap:12px;margin-bottom:16px}.finance-reference-metrics article{min-height:104px;padding:16px;border-color:var(--border);border-radius:12px;box-shadow:0 4px 14px #18274b0b}.finance-reference-metrics article:after{top:-38px;right:-38px;width:100px;height:100px}.finance-reference-icon{flex-basis:36px;width:36px;height:36px;margin-right:11px}.finance-reference-metrics strong{font-size:clamp(21px,1.8vw,27px);font-variant-numeric:tabular-nums;letter-spacing:-.025em}.finance-reference-metrics p{margin-top:6px}.finance-overview-grid{grid-template-columns:minmax(0,1.65fr) minmax(330px,.8fr);gap:0;margin-top:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.finance-section.surface-panel{min-height:0;padding:20px 22px 18px;overflow:hidden;background:var(--surface)}.finance-section.surface-panel+.finance-section.surface-panel{border-left-color:var(--border)}.finance-section>header{margin:0;padding:0 0 14px;border-bottom-color:var(--border)}.finance-section header h2{margin-bottom:5px;font-size:17px;line-height:1.35}.finance-section header p{line-height:1.55}.finance-category-list button{min-height:56px;padding:9px 2px;gap:12px;border-bottom-color:var(--border)}.finance-category-list button:hover{background:var(--surface-subtle)}.finance-method-list{padding:0}.finance-method-list>div{grid-template-columns:74px minmax(76px,1fr) 54px 94px;min-height:56px;gap:9px;border-bottom-color:var(--border)}.finance-method-list>div:before{display:none}.finance-method-track{display:block!important;grid-column:2;grid-row:1;width:100%;height:6px;overflow:hidden;border-radius:999px;background:var(--primary-soft)}.finance-method-track b{display:block;height:100%;border-radius:inherit;background:var(--primary)}.finance-method-list>div>span{grid-column:1;grid-row:1}.finance-method-list>div>small{grid-column:3;grid-row:1}.finance-method-list>div>strong{grid-column:4;grid-row:1;text-align:right}}@media (min-width: 901px) and (max-width: 1180px){.finance-reference-note{display:none}.finance-overview-grid{grid-template-columns:1fr}.finance-section.surface-panel+.finance-section.surface-panel{border-top:1px solid var(--border);border-left:0}}@media (min-width: 901px){:root{--pc-workspace-gutter: 24px}.desktop-topbar,.desktop-workspace-tabs{padding-right:var(--pc-workspace-gutter);padding-left:var(--pc-workspace-gutter)}.app-main .page{margin-right:auto;margin-left:0;padding-right:var(--pc-workspace-gutter);padding-left:var(--pc-workspace-gutter)}.share-bill-page{width:min(1120px,calc(100% - 48px));min-height:100vh;margin:0 auto;padding:30px 0 54px}.share-bill-brand{display:grid;grid-template-columns:auto 1fr auto;min-height:48px;align-items:center;gap:11px;margin-bottom:24px;border-bottom:1px solid #e6eaf0;padding-bottom:16px}.share-bill-brand .brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:9px;color:#fff;background:var(--primary)}.share-bill-brand>strong{color:#30394d;font-size:18px}.share-bill-brand>small{border-radius:999px;color:var(--primary-strong);background:var(--primary-soft);padding:5px 9px;font-size:11px;font-weight:650}.parent-bill-title{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}.parent-bill-title h1{margin:0;color:#293247;font-size:26px;letter-spacing:-.025em}.parent-bill-title p{margin:7px 0 0;color:#7c8799;font-size:13px}.parent-bill-title>span{border:1px solid #efcf8c;border-radius:7px;color:#9a6510;background:#fff9e9;padding:7px 11px;font-size:12px;font-weight:650}.parent-bill-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid #e4e8ef;border-radius:10px;background:#fff;box-shadow:0 1px 2px #1f2d440a}.parent-bill-facts>span{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;min-height:82px;align-content:center;gap:4px 11px;padding:15px 17px}.parent-bill-facts>span+span{border-left:1px solid #e9edf3}.parent-bill-facts i{display:grid;width:36px;height:36px;grid-row:1 / 3;place-items:center;border-radius:9px;color:var(--primary);background:var(--primary-soft)}.parent-bill-facts small,.parent-payment-card small{color:#8893a5;font-size:11px}.parent-bill-facts strong{min-width:0;overflow:hidden;color:#30394d;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.parent-payment-card{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(360px,1.15fr);column-gap:36px;margin-top:16px;border:1px solid #bfd3f5;border-radius:10px;background:#f5f8ff;padding:22px 24px 18px}.parent-payment-card>span{align-self:end;color:#72819a;font-size:12px}.parent-payment-card>strong{color:var(--primary-strong);font-size:32px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.parent-payment-card>div{display:grid;grid-row:1 / 3;grid-column:2;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;border-left:1px solid #d5e1f3;padding-left:28px}.parent-payment-card>div span{display:grid;min-width:0;gap:6px}.parent-payment-card>div span+span{border-left:1px solid #d5e1f3;padding-left:24px}.parent-payment-card>div b{min-width:0;color:#344057;font-size:14px;overflow-wrap:anywhere}.parent-payment-card footer{display:grid;grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px;border-top:1px solid #d5e1f3;padding-top:15px}.parent-payment-card footer span{color:#738097;font-size:12px;text-align:center}.parent-payment-card footer span+span{border-left:1px solid #d5e1f3}.parent-payment-card footer b{margin-left:4px;color:var(--primary-strong);font-size:14px}.parent-refund-card{overflow:hidden;margin-top:16px;border:1px solid #efc6c3;border-radius:10px;background:#fff;box-shadow:0 1px 2px #1f2d440a}.parent-refund-card>header{display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #f0d8d6;background:#fff8f7;padding:16px 20px}.parent-refund-card h2{margin:0;color:#30394d;font-size:15px}.parent-refund-card header p{max-width:660px;margin:5px 0 0;color:#7d6d70;font-size:12px;line-height:1.55}.parent-refund-card header>span{display:grid;flex:0 0 auto;justify-items:end;gap:3px}.parent-refund-card header small,.parent-refund-list small{color:#917d80;font-size:11px}.parent-refund-card header strong,.parent-refund-list .refund-negative{color:var(--danger-strong);font-variant-numeric:tabular-nums}.parent-refund-card header strong{font-size:22px}.parent-refund-list article{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(100px,.7fr) minmax(120px,.85fr);align-items:center;gap:16px;min-height:72px;border-top:1px solid #f1e2e1;padding:13px 20px}.parent-refund-list article:first-child{border-top:0}.parent-refund-list article>div{display:grid;min-width:0;gap:4px}.parent-refund-list article>div>strong{color:#3c465a;font-size:13px;overflow-wrap:anywhere}.parent-refund-list article>div>span{color:#8b929f;font-size:10px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.parent-refund-list article>p{display:flex;grid-column:1 / -1;align-items:flex-start;gap:6px;margin:-2px 0 2px;border-radius:8px;color:#75656a;background:#fff8f7;padding:8px 10px;font-size:11px;line-height:1.55;overflow-wrap:anywhere}.parent-refund-list article>p svg{flex:0 0 auto;margin-top:1px;color:var(--danger-strong)}.parent-refund-legacy{display:flex;align-items:center;gap:8px;margin:0;color:#75656a;padding:18px 20px;font-size:12px}.parent-refund-legacy svg{flex:0 0 auto;color:var(--danger-strong)}.parent-refund-card>footer{display:flex;justify-content:flex-end;gap:30px;border-top:1px solid #f0d8d6;background:snow;padding:13px 20px;color:#766a6d;font-size:12px}.parent-refund-card>footer strong{margin-left:5px;color:#3c465a;font-size:14px;font-variant-numeric:tabular-nums}.parent-bill-debt,.parent-ledger-card{margin-top:16px;border:1px solid #e4e8ef;border-radius:10px;background:#fff;box-shadow:0 1px 2px #1f2d440a}.parent-bill-debt{display:flex;min-height:70px;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px}.parent-bill-debt h2,.parent-ledger-card h2{margin:0;color:#30394d;font-size:15px}.parent-bill-debt p{display:flex;align-items:center;gap:7px;margin:0;color:#6f7b8e;font-size:12px}.parent-bill-debt p svg{color:var(--success)}.parent-bill-debt.has-debt{border-color:#efc6c3;background:#fff8f7}.parent-bill-debt.has-debt p strong{color:var(--danger-strong)}.parent-ledger-card{overflow:hidden}.parent-ledger-card>h2,.parent-ledger-card>.parent-ledger-title{min-height:54px;border-bottom:1px solid #e7ebf1;padding:18px 20px}.parent-ledger-head,.parent-ledger-table article{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.35fr) minmax(0,1.1fr) minmax(0,.7fr);align-items:center;gap:16px;padding-right:20px;padding-left:20px}.parent-ledger-head>*,.parent-ledger-table article>*{min-width:0;overflow-wrap:anywhere}.parent-ledger-head{min-height:40px;color:#7f8999;background:#fafbfc;font-size:11px;font-weight:650}.parent-ledger-table article{min-height:56px;border-top:1px solid #edf0f4;color:#465066;font-size:12px}.parent-ledger-table article strong{color:var(--primary-strong);font-size:13px;text-align:right}.parent-ledger-card .share-ledger-empty{min-height:210px;border:0;padding:42px 24px}.parent-bill-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 2px 0}.parent-bill-footer p{margin:0;color:#7d8798;font-size:11px;line-height:1.7}}@media (min-width: 901px) and (max-width: 1180px){:root{--pc-workspace-gutter: 18px}.parent-bill-facts>span{padding-right:13px;padding-left:13px}}@media (min-width: 901px){.parent-bill-loading{display:grid;gap:16px}.parent-bill-loading .skeleton{display:block;background:linear-gradient(90deg,#eef2f8 25%,#f8f9fc,#eef2f8 75%);background-size:200% 100%;animation:parent-bill-skeleton 1.25s infinite}.parent-bill-loading .skeleton-title{width:34%;height:26px;border-radius:6px}.parent-bill-loading .skeleton-card{border:1px solid #e4e8ef;border-radius:10px;background:#fff;padding:20px}.parent-bill-loading .skeleton-profile{display:flex;align-items:center;gap:16px}.parent-bill-loading .skeleton-profile>i{width:56px;height:56px;border-radius:50%;background:#edf2fa}.parent-bill-loading .skeleton-profile span,.parent-bill-loading .skeleton-list{display:grid;flex:1;gap:12px}.parent-bill-loading .skeleton-profile b,.parent-bill-loading .skeleton-metrics b,.parent-bill-loading .skeleton-metrics i,.parent-bill-loading .skeleton-list i,.parent-bill-loading .skeleton-list b{display:block;height:12px;border-radius:5px;background:#edf2fa}.parent-bill-loading .skeleton-profile b:last-child{width:56%}.parent-bill-loading .skeleton-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.parent-bill-loading .skeleton-metrics span{display:grid;gap:10px}.parent-bill-loading .skeleton-metrics i{height:28px}.parent-bill-loading .loading-message{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px}.parent-bill-loading .loading-message h1{margin:0;color:var(--primary-strong);font-size:17px}.parent-bill-loading .loading-message p{margin:4px 0 0;color:#7d8798;font-size:11px}.parent-bill-loading .skeleton-list span{display:grid;grid-template-columns:120px 1fr 90px;gap:18px;padding:11px 0;border-bottom:1px solid #edf0f4}.parent-privacy-note{display:flex;justify-content:center;gap:6px;color:#7d8798;font-size:11px}.parent-bill-error{display:flex;min-height:610px;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}.parent-error-card{display:flex;width:min(100%,440px);flex-direction:column;align-items:center;border:1px solid #e4e8ef;border-radius:12px;background:#fff;padding:34px 30px 26px;box-shadow:0 8px 24px #1f2d4414}.parent-error-card .share-state-icon{display:grid;width:72px;height:72px;place-items:center;border-radius:50%;color:var(--danger);background:var(--danger-soft)}.parent-error-card h1{margin:20px 0 8px;color:#30394d;font-size:22px}.parent-error-card>p{margin:0;color:#738097;font-size:13px;line-height:1.65}.parent-error-card .parent-error-privacy{display:flex;align-items:flex-start;gap:8px;width:100%;margin-top:18px;border-radius:8px;color:#5c7190;background:#f0f5fd;padding:11px 12px;text-align:left}.parent-error-card>div{display:flex;width:100%;justify-content:center;gap:10px;margin-top:18px}.parent-error-card>small{margin-top:18px;border-top:1px solid #edf0f4;color:#8a95a6;padding-top:14px;font-size:10px;line-height:1.6}.parent-bill-error>footer{display:flex;align-items:center;gap:6px;color:#7d8798;font-size:11px}}@keyframes parent-bill-skeleton{to{background-position:-200% 0}}@media (min-width: 901px){:root{--sidebar-width: 228px;--pc-primary: #1267e8;--pc-primary-strong: #0758d1;--pc-primary-soft: #edf5ff;--pc-primary-faint: #f6f9ff;--pc-ink: #0f2343;--pc-ink-soft: #41516c;--pc-muted: #687895;--pc-subtle: #91a0b8;--pc-canvas: #f4f8ff;--pc-surface: rgba(255, 255, 255, .92);--pc-surface-solid: #fff;--pc-border: #dce6f4;--pc-border-strong: #c9d8eb;--pc-success: #159c70;--pc-success-soft: #eaf9f3;--pc-warning: #d97706;--pc-warning-soft: #fff6e8;--pc-danger: #df3545;--pc-danger-soft: #fff0f2;--pc-purple: #6b5ce7;--pc-shadow-panel: 0 10px 30px rgba(45, 85, 145, .08);--pc-shadow-float: 0 20px 54px rgba(38, 72, 124, .18);--pc-radius-control: 9px;--pc-radius-card: 14px;--pc-radius-modal: 16px;--primary: var(--pc-primary);--primary-strong: var(--pc-primary-strong);--primary-soft: var(--pc-primary-soft);--ink: var(--pc-ink);--muted-ink: var(--pc-muted);--canvas: var(--pc-canvas);--surface: #fff;--surface-subtle: #f7faff;--border: var(--pc-border);--border-strong: var(--pc-border-strong);--success: var(--pc-success);--success-soft: var(--pc-success-soft);--warning: var(--pc-warning);--warning-soft: var(--pc-warning-soft);--danger: var(--pc-danger);--danger-soft: var(--pc-danger-soft);--radius: var(--pc-radius-card);--shadow-sm: var(--pc-shadow-panel);--shadow-lg: var(--pc-shadow-float)}html{color-scheme:light;background:var(--pc-canvas);scrollbar-color:#b9cbe3 #edf3fb;scrollbar-width:thin}body{min-width:901px;color:var(--pc-ink);background:radial-gradient(circle at 78% 3%,rgba(191,219,255,.34),transparent 34%),radial-gradient(circle at 48% 100%,rgba(210,229,255,.44),transparent 38%),linear-gradient(135deg,#f9fbff,#f2f7ff 58%,#edf5ff);font-family:Microsoft YaHei,PingFang SC,Noto Sans CJK SC,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.55}body::selection,body *::selection{color:#fff;background:#1267e8c7}*{scrollbar-color:#bfd0e6 #f1f5fb;scrollbar-width:thin}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:#f1f5fb}*::-webkit-scrollbar-thumb{border:2px solid #f1f5fb;border-radius:999px;background:#bfd0e6}button,input,select,textarea{font:inherit}button,[role=button]{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(18,103,232,.2);outline-offset:2px}.app-shell{min-height:100vh;background:radial-gradient(ellipse at 82% 2%,#fffffff2,#fff0 42%),radial-gradient(ellipse at 68% 108%,#b4d7ff47,#b4d7ff00 45%)}.app-shell:after{position:fixed;z-index:0;right:-8vw;bottom:-24vh;width:78vw;height:44vh;border:2px solid rgba(255,255,255,.58);border-radius:50%;box-shadow:0 -28px 74px #9ecaff1a,inset 0 18px 64px #ffffff61;content:"";pointer-events:none;transform:rotate(-7deg)}.sidebar{z-index:40;width:var(--sidebar-width);border-right:1px solid rgba(198,215,237,.76);background:linear-gradient(180deg,#fafdfffa,#eef6fff0),#f5f9ff;padding:20px 14px 18px;box-shadow:12px 0 34px #46689a0b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-block{min-height:56px;gap:12px;margin:0 4px 20px;padding:0 4px}.brand-mark{width:44px;height:44px;border-radius:12px;color:#fff;background:linear-gradient(145deg,#2a7cf4,#0a5ee2 72%);box-shadow:0 9px 20px #1267e847}.brand-block strong{color:#0c1f3e;font-size:18px;font-weight:780;letter-spacing:-.025em}.brand-block small{margin-top:2px;color:#6c7a90;font-size:10px;font-weight:600;letter-spacing:.045em}.side-nav-section-label{padding:0 12px 9px;color:#8796ad;font-size:12px}.side-nav{gap:6px}.side-nav button,.sidebar-foot button{position:relative;min-height:50px;gap:13px;overflow:hidden;border:1px solid transparent;border-radius:12px;color:#52627e;padding:0 14px;font-size:14px;font-weight:560;transition:color .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.side-nav button svg,.sidebar-foot button svg{width:20px;height:20px;stroke-width:1.9}.side-nav button:hover,.sidebar-foot button:hover{color:var(--pc-primary-strong);background:#ffffffb8;border-color:#c7d8eecc;transform:translate(2px)}.side-nav button.active,.sidebar-foot button.active{color:var(--pc-primary);border-color:#b9d2f59e;background:linear-gradient(90deg,#e8f2ff,#fffffff0);box-shadow:0 8px 22px #3f6fb417;font-weight:700}.side-nav button.active:before,.sidebar-foot button.active:before{position:absolute;top:8px;bottom:8px;left:0;width:3px;border-radius:0 4px 4px 0;background:var(--pc-primary);content:""}.nav-count{min-width:22px;height:22px;border:2px solid rgba(255,255,255,.95);background:#cf3440;box-shadow:0 4px 10px #cf34402e;font-size:10px}.sidebar-foot{gap:9px;padding-top:14px;border-top:1px solid rgba(203,218,238,.72)}.sidebar-foot p{position:relative;padding:9px 10px 0 24px;color:#8090a8;font-size:10px}.sidebar-foot p:before{position:absolute;top:15px;left:10px;width:7px;height:7px;border-radius:50%;background:#21bd86;box-shadow:0 0 0 4px #21bd861a;content:""}.app-main{position:relative;z-index:1;min-height:100vh;margin-left:var(--sidebar-width)}.desktop-topbar{position:sticky;top:0;z-index:32;height:78px;gap:20px;border-bottom:1px solid rgba(205,219,237,.78);background:#ffffffd1;padding:0 32px;box-shadow:0 8px 26px #3c5f9109;-webkit-backdrop-filter:blur(18px) saturate(135%);backdrop-filter:blur(18px) saturate(135%)}.desktop-breadcrumb{gap:12px;color:#8492a9;font-size:13px}.desktop-breadcrumb i{color:#aebbcf}.desktop-breadcrumb strong{color:#182a48;font-size:14px;font-weight:700}.desktop-global-search{width:min(330px,27vw);min-height:42px;gap:10px;border:1px solid var(--pc-border);border-radius:10px;color:#75859e;background:#f8fbffd1;padding:0 10px 0 14px;box-shadow:inset 0 1px #ffffffe6;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.desktop-global-search:hover{color:#435572;border-color:#b8cce6;background:#fff;box-shadow:0 7px 18px #345d9712}.desktop-global-search span{font-size:13px}.desktop-global-search kbd{border:1px solid #d7e2f1;border-radius:7px;color:#6b7c95;background:#fff;padding:4px 8px;font-size:10px}.desktop-topbar-actions{gap:12px}.desktop-alert-shortcut,.desktop-settings-shortcut{width:40px;height:40px;min-height:40px;border-radius:10px;color:#62728d}.desktop-alert-shortcut:hover,.desktop-settings-shortcut:hover,.desktop-settings-shortcut.active{color:var(--pc-primary);background:var(--pc-primary-soft)}.desktop-alert-shortcut i{top:-2px;right:-2px;min-width:18px;height:18px;border-width:2px;background:#d13a43;font-size:9px}.desktop-teacher-chip{gap:10px;border-left:1px solid #dfe7f2;padding-left:14px}.desktop-teacher-chip>span{width:38px;height:38px;border-radius:11px;color:var(--pc-primary-strong);background:linear-gradient(145deg,#e8f2ff,#f7faff);font-size:14px}.desktop-teacher-chip strong{color:#182a47;font-size:13px}.desktop-teacher-chip small{color:#7d8ca4;font-size:10px}.desktop-settings-shortcut{display:inline-flex}.desktop-workspace-tabs{display:none}.app-main>main{position:relative;z-index:2}.page{width:100%;max-width:1600px;margin:0;padding:32px 36px 76px}.page-heading,.attendance-page-heading{min-height:72px;align-items:flex-start;gap:24px;margin:0 0 26px}.page-heading>div,.attendance-page-heading>div:first-child{min-width:0}.page-heading h1,.attendance-page-heading h1,.stats-page .page-heading h1,.finance-page .page-heading h1,.settings-page .page-heading h1,.students-page .page-heading h1,.groups-page .page-heading h1{margin:0;color:#0d203e;font-size:clamp(26px,2vw,31px);font-weight:800;line-height:1.2;letter-spacing:-.035em}.page-heading p,.attendance-page-heading p,.stats-page .page-heading p,.finance-page .page-heading p,.settings-page .page-heading p,.students-page .page-heading p,.groups-page .page-heading p{max-width:760px;margin:8px 0 0;color:#6d7c94;font-size:14px;line-height:1.65}.page-eyebrow{display:none!important}.primary-button,.secondary-button{min-height:42px;gap:8px;border-radius:var(--pc-radius-control);padding:0 17px;font-size:13px;font-weight:680;transition:transform .16s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.primary-button{border-color:transparent;color:#fff;background:linear-gradient(135deg,#2c7af1,#0a5fe0 76%);box-shadow:0 9px 20px #1267e838}.primary-button:hover:not(:disabled){background:linear-gradient(135deg,#1e70ed,#0755cc 78%);box-shadow:0 12px 25px #1267e845;transform:translateY(-1px)}.secondary-button{border:1px solid #cbd9ea;color:#2d405f;background:#ffffffe6;box-shadow:0 3px 9px #385a8a0a}.secondary-button:hover:not(:disabled){color:var(--pc-primary-strong);border-color:#9fc0e9;background:#f8fbff;box-shadow:0 7px 16px #365b9114}.primary-button.compact,.secondary-button.compact{min-height:34px;border-radius:8px;padding:0 12px;font-size:12px;min-width:120px}.primary-button:disabled,.secondary-button:disabled{opacity:.55;box-shadow:none;cursor:not-allowed}.text-button,.plain-link{color:var(--pc-primary);font-weight:650;text-underline-offset:3px}.danger-text{color:var(--pc-danger)!important}.surface-panel,.data-panel,.filter-bar,.stats-reference-toolbar,.finance-reference-toolbar,.reference-attendance-controls,.reference-attendance-workbench,.reference-one-workbench,.reference-one-records,.group-records-panel,.settings-storage-banner,.settings-list{border:1px solid rgba(210,224,242,.92);border-radius:var(--pc-radius-card);background:var(--pc-surface);box-shadow:var(--pc-shadow-panel);-webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%)}.filter-bar{min-height:78px;gap:16px;margin:0 0 22px;padding:16px 18px}.students-page .filter-bar{display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(190px,.95fr) minmax(190px,.95fr) auto;align-items:center;margin-bottom:22px}.students-page .data-panel{overflow-x:auto;overflow-y:hidden}.students-pagination{justify-content:flex-end;margin:14px 0 0}.stats-student-filter{display:grid;grid-template-columns:minmax(230px,.42fr) minmax(260px,1fr) auto;align-items:center;margin-bottom:0}.stats-student-filter .search-field{width:100%}.filter-bar .search-field,.filter-bar .app-select,.filter-bar>select{min-width:0}.search-field,.filter-bar select,.filter-bar input,.compact-field input,.compact-field select,.app-select-trigger,.field input,.field select,.field textarea{border:1px solid #ccdaeb;border-radius:var(--pc-radius-control);color:#203451;background:#fffffff5;box-shadow:inset 0 1px 2px #1f3e6906;transition:border-color .17s ease,box-shadow .17s ease,background .17s ease}.search-field,.filter-bar select,.filter-bar input,.compact-field input,.compact-field select,.app-select-trigger,.field input,.field select{min-height:44px}.search-field{gap:10px;padding:0 13px}.search-field input{min-height:40px;border:0;box-shadow:none;padding:0}.search-field:focus-within,.field input:focus,.field select:focus,.field textarea:focus,.compact-field input:focus,.filter-bar select:focus,.app-select.is-open .app-select-trigger{border-color:#73a8ea;background:#fff;box-shadow:0 0 0 3px #1267e81f;outline:0}input::placeholder,textarea::placeholder{color:#96a3b7;opacity:1}.desktop-student-count{color:#6f7e95;padding:0 8px;font-size:13px;white-space:nowrap}.desktop-student-count:first-letter{color:var(--pc-primary)}.data-panel{overflow:auto;background:#fffffff0}.data-table{width:100%;min-width:980px;border-collapse:separate;border-spacing:0;color:#31435f;font-size:13px}.data-table th{height:52px;border-bottom:1px solid #dce6f3;color:#60708a;background:#f7faffeb;padding:0 18px;font-size:12px;font-weight:680;white-space:nowrap}.data-table td{height:74px;border-bottom:1px solid #e5ecf5;padding:12px 18px;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr{background:#ffffffe0;transition:background .16s ease,box-shadow .16s ease}.data-table tbody tr:hover{background:#f7faff}.data-table .warning-row{background:#fffdf8}.data-table .debt-row{background:#fff9fa}.data-table .paused-row{background:#fafbfd}.data-table .withdrawn-row{background:#fffafb}.data-table .numeric{font-variant-numeric:tabular-nums}.student-link{gap:12px}.avatar,.large-avatar{display:inline-grid;place-items:center;color:#175fc3;background:linear-gradient(145deg,#e3efff,#f8fbff);border:1px solid #d7e6fa;font-weight:760;box-shadow:0 5px 14px #3567aa14}.student-link .avatar{width:42px;height:42px;border-radius:50%;font-size:12px}.student-link strong{color:#152946;font-size:14px}.student-link small{margin-top:3px;color:#7b8aa1;font-size:11px}.group-label,.desktop-ledger-status,.student-status-badge,.attendance-label,.package-status,.transaction-type,.ledger-type,.balance-badge{border-radius:7px;font-weight:650}.desktop-ledger-status{min-height:28px;gap:7px;padding:0 10px}.row-actions{gap:9px}.student-pause-action,.student-reactivate-action,.student-edit-action{white-space:nowrap}.attendance-mode-switch,.group-view-switch{min-height:56px;gap:4px;margin:0 0 20px;border:1px solid rgba(211,224,241,.95);border-radius:13px;background:#ffffffe6;padding:6px;box-shadow:0 8px 24px #2d52880f}.attendance-mode-switch button,.group-view-switch button{min-height:42px;border-radius:9px;color:#50617c;padding:0 17px;font-size:13px;font-weight:650}.attendance-mode-switch button.active,.group-view-switch button.active{color:var(--pc-primary);background:linear-gradient(135deg,#edf5ff,#fff);box-shadow:0 5px 14px #2e61a81a}.attendance-mode-switch button.active:after,.group-view-switch button.active:after{background:var(--pc-primary)}.group-list{overflow:hidden;border:1px solid rgba(211,224,241,.95);border-radius:var(--pc-radius-card);background:#ffffffe6;box-shadow:var(--pc-shadow-panel)}.group-list-head{min-height:54px;border-bottom:1px solid #dfe8f4;color:#60718b;background:#f7faff;padding:0 20px;font-size:12px;font-weight:680}.group-row{min-height:96px;margin:0;border:0;border-bottom:1px solid #e3ebf5;border-radius:0;background:#ffffffdb;padding:14px 20px;box-shadow:none;transition:background .16s ease,transform .16s ease}.group-row:last-child{border-bottom:0}.group-row:hover{background:#f8fbff}.groups-page .group-list-head,.groups-page .group-row{grid-template-columns:minmax(180px,1.05fr) minmax(130px,.7fr) minmax(170px,.9fr) minmax(140px,.75fr) 116px 116px}.groups-page .group-row .row-actions{flex-wrap:nowrap;justify-content:flex-end}.groups-page .group-row .row-actions .secondary-button{min-width:66px;padding-inline:8px;white-space:nowrap}.group-mark{width:48px;height:48px;border:1px solid #d8e7fa;border-radius:14px;color:var(--pc-primary);background:linear-gradient(145deg,#e9f3ff,#f9fbff);box-shadow:0 7px 17px #2d65b114}.group-row h2{color:#122744;font-size:15px}.group-row p,.group-course-cell,.group-note-cell,.group-created-cell{color:#73839b;font-size:12px}.group-course-cell strong{color:#384c69}.group-count{min-width:98px;min-height:34px;border:1px solid #dce8f7;border-radius:999px;color:var(--pc-primary);background:#eff6ff}.group-count strong{font-size:17px}.groups-page .group-member-trigger{display:inline-flex;min-width:108px;min-height:38px;align-items:center;justify-content:center;gap:5px;border:1px solid #bfd6f5;border-radius:9px;color:var(--pc-primary-strong);background:#f7fbff;padding:0 10px;box-shadow:0 4px 12px #2564b812;text-align:center;white-space:nowrap;transition:border-color .16s ease,color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.groups-page .group-member-trigger:hover,.groups-page .group-member-trigger:focus-visible{border-color:#82b1ef;color:var(--pc-primary-strong);background:#edf5ff;box-shadow:0 7px 16px #2564b81c;transform:translateY(-1px)}.groups-page .group-member-trigger .group-count-arrow{flex:0 0 auto;transition:transform .16s ease}.groups-page .group-member-trigger:hover .group-count-arrow{transform:translate(2px)}.reference-attendance-controls{min-height:62px;margin-bottom:22px;padding:8px 14px}.reference-control-tabs button{min-height:44px;border-radius:9px;padding:0 16px;font-size:13px}.reference-control-tabs button.active{color:var(--pc-primary);background:#edf5ff;box-shadow:0 5px 14px #3064ab14}.reference-control-context{color:#6c7c94;font-size:12px}.reference-attendance-workbench,.reference-one-workbench,.reference-one-records{overflow:hidden}.reference-workbench-toolbar,.reference-one-toolbar,.reference-one-record-filters{min-height:78px;gap:14px;border-bottom:1px solid #dfe8f4;background:#fafcffc7;padding:14px 18px}.reference-workbench-toolbar input,.reference-workbench-toolbar .app-select-trigger,.reference-one-toolbar input,.reference-one-toolbar .app-select-trigger,.reference-one-record-filters input,.reference-one-record-filters .app-select-trigger{min-height:44px;border-radius:9px}.reference-active-group{min-height:36px;border-radius:8px;color:var(--pc-primary);background:#edf5ff;padding:0 11px}.reference-save-status{color:#77869d}.reference-attendance-metrics,.stats-reference-metrics,.finance-reference-metrics{gap:16px}.reference-attendance-metrics{padding:20px}.reference-attendance-metrics>span,.stats-reference-metrics>article,.finance-reference-metrics>article{position:relative;min-height:126px;overflow:hidden;border:1px solid rgba(209,223,241,.9);border-radius:var(--pc-radius-card);background:#ffffffe0;box-shadow:0 9px 26px #2c538c12}.reference-attendance-metrics>span:after,.stats-reference-metrics>article:after,.finance-reference-metrics>article:after{position:absolute;right:-24px;bottom:-34px;width:104px;height:104px;border:18px solid rgba(200,223,253,.19);border-radius:50%;content:"";pointer-events:none}.reference-attendance-metrics small,.stats-reference-metrics small,.finance-reference-metrics small{color:#667791;font-size:12px}.reference-attendance-metrics strong,.stats-reference-metrics strong,.finance-reference-metrics strong{color:#142845;font-variant-numeric:tabular-nums;letter-spacing:-.025em}.stats-reference-metrics,.finance-reference-metrics{margin:22px 0}.stats-reference-metrics>article,.finance-reference-metrics>article{min-height:146px;padding:22px}.stats-reference-metrics strong,.finance-reference-metrics strong{font-size:clamp(24px,2.1vw,34px)}.stats-reference-icon,.finance-reference-icon{width:48px;height:48px;border-radius:14px;box-shadow:0 7px 16px #325f9d1a}.stats-reference-toolbar,.finance-reference-toolbar{min-height:62px;gap:16px;margin-bottom:0;padding:8px 14px}.stats-reference-tabs,.finance-reference-tabs,.stats-reference-range,.finance-reference-range{gap:4px}.stats-reference-tabs button,.finance-reference-tabs button,.stats-reference-range button,.finance-reference-range button{min-height:40px;border-radius:8px;padding:0 14px;color:#52627c;font-size:12px;font-weight:650}.stats-reference-tabs button.active,.finance-reference-tabs button.active,.stats-reference-range button.active,.finance-reference-range button.active{color:#fff;background:linear-gradient(135deg,#367ff0,#0e62e1);box-shadow:0 7px 16px #1267e838}.risk-bar,.debt-summary-panel{min-height:70px;border:1px solid #dce7f4;border-radius:12px;background:#ffffffe6;box-shadow:0 7px 20px #2e51840e}.finance-overview-grid{gap:18px}.finance-section{overflow:hidden;border-radius:var(--pc-radius-card)}.finance-section>header{min-height:76px;border-bottom:1px solid #e0e9f4;padding:18px 20px 15px}.finance-section h2{color:#152946;font-size:16px}.finance-section header p{margin-top:4px;color:#7a899f;font-size:11px}.finance-category-list button{min-height:68px;border-bottom-color:#e4ebf4;padding:10px 20px}.finance-category-list button:hover{background:#f7faff}.finance-category-list strong{color:#172a47}.finance-method-list{padding:6px 20px 14px}.finance-method-list>div{min-height:54px;border-bottom-color:#e5ecf5;font-size:12px}.finance-method-track{background:#e7effa}.finance-method-track b{background:linear-gradient(90deg,#5d9df5,#176ae8)}.group-attendance-toolbar,.date-scope-bar{gap:14px;margin-bottom:18px;padding:16px 18px}.group-attendance-summary{margin-bottom:18px}.group-attendance-summary article{min-height:108px;border-color:#e0e9f4;padding:18px 20px}.group-attendance-summary strong{font-size:28px}.reference-attendance-table,.reference-one-table,.reference-one-record-table,.reference-group-attendance-table{overflow:auto}.reference-attendance-row,.reference-one-row,.reference-one-record-row,.reference-group-attendance-row{min-height:70px;border-bottom-color:#e3ebf5;color:#344762;padding:11px 18px;font-size:13px}.reference-attendance-row.table-head,.reference-one-row.table-head,.reference-one-record-row.table-head,.reference-group-attendance-row.table-head{min-height:48px;color:#62728c;background:#f7faff;font-size:12px;font-weight:680}.reference-status-segment,.status-segment{min-height:42px;border-radius:9px;background:#edf2f9;padding:3px}.reference-status-segment button,.status-segment button{min-height:36px;border-radius:7px;font-size:12px}.reference-status-segment button.active,.status-segment button.active{color:var(--pc-primary);background:#fff;box-shadow:0 3px 9px #254c811c}.reference-submit-bar,.attendance-submit-bar{border-top:1px solid #dde7f3;background:#ffffffeb;padding:16px 18px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.reference-submit-bar .primary-button,.attendance-submit-bar .primary-button{min-width:200px;min-height:46px}.settings-storage-banner{min-height:88px;margin-bottom:22px;padding:18px 20px}.settings-storage-banner .setting-icon,.setting-icon{width:44px;height:44px;border-radius:13px;color:var(--pc-primary);background:#edf5ff}.settings-storage-banner strong{color:#18385f;font-size:15px}.settings-storage-banner p{color:#74849d;font-size:12px}.settings-list{overflow:hidden;padding:0}.setting-section-heading{min-height:54px;margin:0;border-top:1px solid #e1e9f3;border-bottom:1px solid #e1e9f3;background:#f7faff;padding:0 20px}.setting-section-heading:first-child{border-top:0}.setting-section-title{color:#243a59;font-size:13px}.setting-section-heading p{color:#7d8ca3;font-size:11px}.settings-list .setting-row{min-height:86px;margin:0;border:0;border-bottom:1px solid #e3ebf5;border-radius:0!important;background:#ffffffe0;padding:15px 20px;box-shadow:none}.settings-list .setting-row:last-child{border-bottom:0}.settings-list .setting-row h2{color:#162b48;font-size:14px}.settings-list .setting-row p{margin-top:4px;color:#74849b;font-size:12px}.settings-audit-row>strong{color:var(--pc-success);background:var(--pc-success-soft);border-radius:8px;padding:7px 11px}.empty-state{min-height:300px;border:1px dashed #c9d9ed;border-radius:var(--pc-radius-card);color:#6f7f96;background:#ffffffa8}.empty-state h2{color:#1c3352;font-size:18px}.modal-layer{z-index:120;place-items:center;padding:28px;background:#14253f61;-webkit-backdrop-filter:blur(6px) saturate(88%);backdrop-filter:blur(6px) saturate(88%)}.modal-panel,.modal-panel-ledger{display:flex;width:min(var(--modal-width),calc(100vw - 64px));height:auto;max-height:calc(100vh - 56px);flex-direction:column;overflow:hidden;border:1px solid rgba(214,226,241,.96);border-radius:var(--pc-radius-modal);background:#fffffffa;box-shadow:0 28px 76px #1c355b3d;transform:translateY(0)}.modal-layer:has(.modal-panel-ledger){place-items:center;padding:28px}.modal-panel-ledger{width:min(var(--modal-width),calc(100vw - 72px));height:auto;max-height:calc(100vh - 56px);border-width:1px;border-radius:var(--pc-radius-modal);box-shadow:0 30px 82px #1d375e45}.modal-header,.modal-panel-ledger .modal-header{min-height:72px;flex:0 0 auto;border-bottom:1px solid #dde7f3;background:#fffffff0;padding:15px 20px 14px 24px}.modal-heading-copy h2,.modal-panel-ledger .modal-heading-copy h2{color:#10233f;font-size:20px;font-weight:780;letter-spacing:-.025em}.modal-heading-copy p,.modal-panel-ledger .modal-heading-copy p{margin-top:4px;color:#78879d;font-size:12px}.modal-header .icon-button{width:40px;height:40px;border-radius:10px;color:#5f6f87}.modal-header .icon-button:hover{color:var(--pc-primary);background:var(--pc-primary-soft)}.modal-body,.modal-panel-ledger .modal-body{min-height:0;flex:1 1 auto;overflow:auto;padding:22px 24px}.modal-footer{min-height:72px;flex:0 0 auto;gap:12px;border-top:1px solid #dce6f2;background:#fbfdfff5;padding:14px 24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modal-footer .primary-button,.modal-footer .secondary-button{min-width:118px}.modal-fade-enter-active .modal-panel,.modal-fade-leave-active .modal-panel{transition:opacity .18s ease,transform .22s cubic-bezier(.16,1,.3,1)}.modal-fade-enter-from .modal-panel,.modal-fade-leave-to .modal-panel,.modal-fade-enter-from .modal-panel-ledger,.modal-fade-leave-to .modal-panel-ledger{opacity:0;transform:translateY(12px) scale(.985)}.form-stack{gap:22px}.form-section{gap:16px}.form-section+.form-section{border-top:1px solid #dfe8f3;padding-top:22px}.section-heading{position:relative;gap:8px;padding-left:13px}.section-heading:before{position:absolute;top:3px;bottom:3px;left:0;width:3px;border-radius:3px;background:var(--pc-primary);content:""}.section-heading h3{color:#19304e;font-size:15px}.section-heading p{color:#7b8aa0;font-size:11px}.form-grid.two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}.field{gap:7px}.field>span,.field legend{color:#31435f;font-size:12px;font-weight:680}.field>span i{color:#8391a5;font-size:10px;font-style:normal;font-weight:500}.field input,.field select{padding:0 12px}.field textarea{min-height:76px;padding:10px 12px;line-height:1.55;resize:vertical}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#ed6c75;background:#fffafb;box-shadow:0 0 0 3px #df354514}.field-error{color:var(--pc-danger);font-size:11px}.field-counter{color:#8a98ac}.form-error-summary{border:1px solid #f0c8ce;border-radius:9px;color:#b62d3b;background:#fff4f5;padding:10px 12px}.student-form .student-name-field,.student-form .student-grade-field,.student-form .student-parent-phone-field,.student-form .teaching-mode-field,.student-form .student-group-field,.student-form .student-parent-name-field{grid-column:auto}.student-form .student-note-field{grid-column:1 / -1}.teaching-mode-field{min-width:0;margin:0;padding:0;border:0}.choice-segment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:44px;border:1px solid #ccdaeb;border-radius:9px;background:#f5f8fc;padding:3px}.choice-segment label{min-height:36px;border:0;border-radius:7px;background:transparent;padding:4px 8px}.choice-segment label.active{color:var(--pc-primary);background:#fff;box-shadow:0 3px 10px #2b52861a}.choice-segment label span{gap:0}.choice-segment label strong{font-size:12px}.choice-segment label small{color:#8a98ac;font-size:9px}.one-to-one-form-note{min-height:70px;border:1px solid #cfe0f5;border-radius:9px;background:#f1f7ff;padding:10px 12px}.student-form .payment-section .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-form .payment-amount-field,.student-form .payment-lessons-field,.student-form .payment-method-field,.student-form .payment-date-field{grid-column:auto}.student-form .student-unit-price,.student-form .payment-note-field{grid-column:1 / -1}.calculated-field,.student-unit-price{min-height:70px;border:1px solid #d3e1f2;border-radius:9px;background:linear-gradient(135deg,#f1f7ff,#fbfdff);padding:10px 12px}.student-unit-price strong{color:var(--pc-primary);font-size:18px}.student-unit-price p{color:#7b8aa0;font-size:9px}.input-with-prefix,.input-with-suffix{border:1px solid #ccdaeb;border-radius:9px;overflow:hidden;background:#fff}.input-with-prefix input,.input-with-suffix input{border:0;border-radius:0;box-shadow:none}.input-with-prefix b,.input-with-suffix b{color:#586a84;background:#f6f9fd}.reference-ledger-summary{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));min-height:104px;gap:10px;margin:0 0 18px;overflow:visible;border:0;background:transparent}.reference-ledger-summary>span{min-width:0;border:1px solid #dce6f3!important;border-radius:12px;background:#fff;padding:14px 15px;box-shadow:0 6px 18px #2b51850f}.reference-ledger-summary>span.is-primary{background:linear-gradient(145deg,#edf5ff,#fff)}.reference-ledger-summary>span.is-danger{border-color:#f2cfd4!important;background:#fff8f9}.reference-ledger-summary small{color:#71819a;font-size:11px}.reference-ledger-summary strong{margin-top:6px;color:#162b49;font-size:19px}.reference-ledger-summary .is-primary strong{color:var(--pc-primary);font-size:22px}.reference-ledger-summary em{margin-top:5px;overflow:hidden;color:#8a98ab;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.ledger-tabs{min-height:48px;gap:8px;border-bottom:1px solid #dfe8f3}.ledger-tabs button{min-height:46px;color:#51617b;padding:0 16px;font-size:13px;font-weight:680}.ledger-tabs button.active{color:var(--pc-primary)}.ledger-tabs button.active:after{height:3px;background:var(--pc-primary)}.payment-batch-list,.ledger-table{overflow:hidden;border:1px solid #dfe8f3;border-radius:11px;background:#fff}.payment-batch-row{min-height:78px;border-bottom:1px solid #e3ebf5;background:#fff}.payment-batch-row:last-child{border-bottom:0}.payment-batch-row:hover{background:#f8fbff}.payment-batch-main{min-height:78px}.payment-batch-main strong{color:#253a57}.payment-batch-main small{color:#7a899f}.payment-batch-actions{gap:8px}.ledger-table-head{min-height:46px;color:#60708a;background:#f7faff;font-size:11px;font-weight:680}.ledger-row{min-height:62px;border-bottom-color:#e3ebf5}.package-statement,.current-debt-panel,.refund-history-list{border-color:#dce7f3;border-radius:12px;box-shadow:0 6px 18px #2b52860d}.package-metrics{background:#f7faff}.package-note,.dialog-danger-note,.dialog-info-note{border-radius:9px}.attendance-confirmation,.confirmation-panel,.confirm-summary,.group-record-editor{color:#334761}.dialog-danger-note{border:1px solid #f0c7cd;color:#b82d3d;background:#fff3f5}.ledger-pagination{margin-top:16px}.ledger-pagination button{width:36px;height:36px;border-radius:8px;border-color:#cfdded;background:#fff}.ledger-pagination button.active{color:#fff;border-color:var(--pc-primary);background:var(--pc-primary)}.login-page,.password-gate-page,.app-loading-state{background:radial-gradient(circle at 72% 14%,rgba(184,216,255,.42),transparent 34%),linear-gradient(135deg,#f8fbff,#edf5ff)}.login-panel,.password-gate-panel{border:1px solid rgba(203,219,239,.92);border-radius:18px;background:#fffffff0;box-shadow:0 28px 70px #2648792b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.toast{border:1px solid rgba(207,222,240,.95);border-radius:12px;background:#fffffff2;box-shadow:0 18px 42px #203d672b;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}}@media (min-width: 901px) and (max-width: 1280px){:root{--sidebar-width: 204px}.sidebar{padding-right:11px;padding-left:11px}.brand-block{margin-left:1px}.side-nav button,.sidebar-foot button{min-height:47px;padding:0 11px}.desktop-topbar{height:70px;padding:0 22px}.desktop-global-search{width:min(270px,29vw)}.desktop-teacher-chip small{display:none}.page{padding:26px 24px 68px}.page-heading,.attendance-page-heading{margin-bottom:22px}.page-heading h1,.attendance-page-heading h1{font-size:26px}.stats-reference-metrics,.finance-reference-metrics,.reference-attendance-metrics{gap:12px}.stats-reference-metrics>article,.finance-reference-metrics>article{min-height:130px;padding:17px}.stats-reference-metrics strong,.finance-reference-metrics strong{font-size:25px}.stats-reference-icon,.finance-reference-icon{width:42px;height:42px}.reference-ledger-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.students-page .filter-bar{grid-template-columns:minmax(220px,1.1fr) minmax(160px,.9fr) minmax(160px,.9fr) auto}.finance-reference-toolbar,.stats-reference-toolbar{align-items:center;flex-wrap:wrap}}@media (min-width: 901px) and (max-width: 1080px){:root{--sidebar-width: 190px}.brand-block strong{font-size:16px}.brand-mark{width:40px;height:40px}.desktop-topbar{padding:0 18px}.desktop-global-search{width:min(240px,28vw)}.desktop-global-search kbd,.desktop-settings-shortcut{display:none}.page{padding:24px 18px 62px}.students-page .filter-bar{grid-template-columns:minmax(210px,1fr) minmax(150px,.8fr) minmax(150px,.8fr)}.desktop-student-count{grid-column:1 / -1;justify-self:end}.stats-reference-metrics,.finance-reference-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-overview-grid{grid-template-columns:1fr}.modal-panel-ledger{width:calc(100vw - var(--sidebar-width) - 36px)}.student-form .payment-note-field{grid-column:1 / -1}}@media (prefers-reduced-motion: reduce) and (min-width: 901px){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width: 900px){.student-form .teaching-mode-field{order:1}.student-form .student-name-field{order:2}.student-form .student-grade-field{order:3}.student-form .student-group-field{order:4}.student-form .student-parent-name-field{order:5}.student-form .student-parent-phone-field{order:6}.student-form .student-note-field{order:7}}
