html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}:root{--color-primary: #1677ff;--color-primary-hover: #4096ff;--color-primary-active: #0958d9;--color-primary-soft: #e6f4ff;--color-success: #52c41a;--color-warning: #faad14;--color-error: #ff4d4f;--bg: #f5f5f5;--surface: #ffffff;--surface-2: #fafafa;--ink: #1f1f1f;--muted: #8c8c8c;--line: #d9d9d9;--line-soft: #f0f0f0;--green: #389e0d;--green-2: #f6ffed;--blue: #1677ff;--blue-2: #e6f4ff;--rose: #cf1322;--rose-2: #fff1f0;--amber: #d48806;--amber-2: #fffbe6;--radius-control: 6px;--radius-card: 8px;--shadow: 0 1px 2px rgba(0, 0, 0, .04);--shadow-elevated: 0 6px 16px rgba(0, 0, 0, .08);color:var(--ink);font-family:Segoe UI,Apple SD Gothic Neo,Noto Sans KR,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:13px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:23px}h2{font-size:18px}h3{font-size:15px}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);height:100vh;min-height:0;overflow:hidden}.sidebar{position:sticky;top:0;height:100vh;padding:22px 18px;background:#151819;color:#f5f7f8;display:flex;flex-direction:column;gap:20px;border-right:1px solid #23282c}.brand{display:flex;align-items:center;gap:12px}.brand{padding:0 0 16px;border-bottom:1px solid #23282c}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;background:#f0b75e;color:#121c18;font-weight:800}.brand strong,.brand span{display:block}.brand strong{font-size:13px;letter-spacing:0}.brand span{color:#7d8790;font-size:11px;margin-top:4px}.nav{display:grid;gap:7px}.nav-item{width:100%;min-height:42px;border:0;border-radius:8px;padding:11px 13px;background:transparent;color:#87919b;text-align:left;display:flex;align-items:center;gap:10px;font-weight:700}.nav-item svg,.settings-card svg{color:#8f99a3;flex-shrink:0}.nav-item:hover{color:#f7fafc;background:#1b2024}.nav-item:hover svg,.nav-item.active svg,.settings-card:hover svg,.settings-card.active svg{color:#f7fafc}.nav-item.active{color:#fff;background:#1d2d44}.nav-group{display:grid;gap:4px}.nav-group-trigger svg:last-child{margin-left:auto;transition:transform .18s ease}.nav-group-trigger svg.is-open{transform:rotate(180deg)}.nav-submenu{display:grid;gap:3px;margin-left:30px;padding-left:11px;border-left:1px solid #2a3035}.nav-submenu-item{border:0;border-radius:6px;padding:8px 10px;background:transparent;color:#626c75;font-size:13px;text-align:left}.nav-submenu-item:hover{background:#1b2024;color:#dce5ee;font-weight:700}.nav-submenu-item.active{background:#1d2d44;color:#e7f0ff;font-weight:700}.settings-card{margin-top:auto;width:100%;min-height:58px;border:1px solid #2b3136;border-radius:8px;padding:12px 13px;background:#24282e;color:#f5f7f8;display:flex;align-items:center;gap:10px;text-align:left}.settings-card:hover{background:#2b3037;border-color:#39414a}.settings-card.active{background:#1d2d44;border-color:#345477}.settings-card strong,.settings-card span{display:block}.settings-card strong{font-size:13px}.settings-card span{margin-top:3px;color:#87919b;font-size:11px}.main{min-width:0;height:100vh;overflow-y:auto;padding:26px 30px 18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.page-stack,.grid{display:grid;gap:16px}.calendar-page-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}.payment-month-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:32px}.payment-month-selector{display:flex;align-items:center;height:32px;overflow:hidden;border:1px solid #d9d9d9;border-radius:6px;background:#fff}.payment-month-selector .ant-btn{display:grid;width:32px;height:30px;min-height:30px;padding:0;place-items:center;color:#94a3b8;border-radius:0}.payment-month-selector .ant-btn:hover{color:#475569;background:#f8fafc}.payment-month-picker.ant-picker{width:136px;height:30px;padding:0 6px;border:0;border-radius:0!important;box-shadow:none}.payment-month-picker .ant-picker-input{flex-direction:row}.payment-month-picker .ant-picker-input>input{order:2;color:#475569;font-size:14px;font-weight:700;cursor:pointer}.payment-month-picker .ant-picker-suffix{order:1;margin-inline:4px 7px;color:#94a3b8}.payment-list-filter-bar{display:flex;justify-content:flex-end;margin:0}.payment-period-context{display:flex;align-items:center;min-height:48px;padding:2px 0}.payment-period-selector{flex:0 0 auto;width:248px;height:44px;border-color:#d9d9d9;border-radius:var(--radius-card);box-shadow:var(--shadow)}.payment-period-selector .ant-btn{width:44px;height:42px;min-height:42px;color:#64748b}.payment-period-selector .payment-month-picker.ant-picker{flex:1;width:auto;height:42px}.payment-period-selector .payment-month-picker .ant-picker-input>input{text-align:center;font-size:15px;font-weight:700}.payment-period-selector .payment-month-picker .ant-picker-suffix{color:#64748b}.payment-search-card .student-filter-inline{flex-wrap:wrap;min-width:0}.payments-page .student-filter-search{width:220px}.payment-batch-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-batch-toolbar>span{color:#64748b;font-size:13px}.payment-batch-toolbar>span strong{color:#1677ff}.payment-batch-send-trigger{min-width:190px;font-weight:700;white-space:nowrap}button.payment-batch-send-trigger.ant-btn-primary:not(:disabled),button.payment-batch-send-trigger.ant-btn-primary:not(:disabled):hover,button.payment-batch-send-trigger.ant-btn-primary:not(:disabled):focus-visible{border-color:#1677ff!important;background:#1677ff!important;color:#fff!important}button.payment-batch-send-trigger.ant-btn-primary:not(:disabled)>span{color:#fff!important}.payment-onsite-button{min-width:86px;height:32px;white-space:nowrap}.payment-history-resend-button{height:32px;white-space:nowrap}.payment-batch-confirm-modal .ant-modal-content{overflow:hidden;border:1px solid #dfe5ec;border-radius:7px;box-shadow:0 14px 36px #0f172a2e}.payment-batch-confirm-modal .ant-modal-header{min-height:50px;margin-bottom:0;padding:16px 20px;border-bottom:1px solid #e7ebf0}.payment-batch-confirm-modal .ant-modal-title{color:#26323f;font-size:14px;font-weight:700}.payment-batch-confirm-modal .ant-modal-body{padding:18px 20px 0}.payment-batch-confirm-modal .ant-modal-footer{margin-top:0;padding:16px 20px;border-top:0}.payment-batch-confirm-body{display:grid;gap:20px}.payment-batch-period-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.payment-batch-period-grid .ant-form-item,.payment-batch-message.ant-form-item{margin-bottom:0}.payment-batch-period-grid .ant-form-item-label,.payment-batch-message .ant-form-item-label{padding-bottom:4px}.payment-batch-period-grid .ant-form-item-label>label,.payment-batch-message .ant-form-item-label>label{height:auto;color:#4b5563;font-size:11px;font-weight:700}.payment-batch-period-grid .ant-picker{width:100%;height:30px;border-color:#dfe5ec;background:#fbfcfd}.payment-batch-message .ant-input{min-height:68px;border-color:#dfe5ec;background:#fbfcfd;font-size:12px;resize:none}.payment-batch-confirm-modal .ant-modal-body{max-height:min(72vh,760px);overflow-y:auto}.payment-batch-product.ant-form-item{margin-bottom:0}.payment-batch-product .ant-form-item-label{padding-bottom:4px}.payment-batch-product .ant-form-item-label>label{height:auto;color:#4b5563;font-size:11px;font-weight:700}.payment-batch-product .ant-input{height:32px;border-color:#dfe5ec;background:#fbfcfd}.payment-message-token-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.payment-message-token-buttons .ant-btn{height:24px;padding-inline:8px;border-color:#cfe0f7;background:#f5f9ff;color:#2563eb;font-size:11px}.payment-batch-preview{display:grid;gap:10px;padding-top:2px}.payment-batch-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-batch-preview-head>strong{color:#334155;font-size:13px}.payment-batch-preview-card{display:grid;gap:14px;width:min(100%,430px);margin:0 auto;padding:22px;border:1px solid #e1e7ee;border-radius:12px;background:#f8fafc;box-shadow:0 8px 18px #0f172a0d}.payment-batch-preview-card h3{margin:0;color:#1f2937;font-size:20px;line-height:1.15}.payment-batch-preview-card section{display:grid;gap:8px;padding:14px;border-radius:10px;background:#fff;box-shadow:0 2px 7px #0f172a0f}.payment-batch-preview-card section>strong{color:#334155;font-size:14px}.payment-batch-preview-card section>div{display:flex;justify-content:space-between;gap:16px;padding-top:8px;border-top:1px solid #edf0f3;color:#64748b;font-size:12px}.payment-batch-preview-card section>div b{color:#1f2937;text-align:right}.payment-batch-preview-card section>div:last-child b{font-size:19px}.payment-batch-preview-card p{margin:0;color:#475569;font-size:13px;line-height:1.65;white-space:pre-wrap}.payment-batch-preview-card>small{color:#94a3b8;font-size:11px}.payment-batch-bill-table .ant-table{overflow:hidden;border-radius:4px}.payment-batch-bill-table .ant-table-thead>tr>th{padding:7px 10px;background:#f5f7f9;color:#596675;font-size:11px;font-weight:700}.payment-batch-bill-table .ant-table-tbody>tr>td{padding:8px 10px;color:#4b5563;font-size:12px}.payment-batch-bill-table .ant-input,.payment-batch-bill-table .ant-input-number{border-color:#dfe5ec;background:#fbfcfd;font-size:12px}.payment-batch-bill-table .ant-input-number-input{text-align:right;font-weight:700}.payment-batch-send-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-batch-footer-actions{display:flex;align-items:center;gap:8px}.payment-batch-send-count{display:grid;justify-items:start;gap:2px}.payment-batch-send-count>span{color:#64748b;font-size:12px}.payment-batch-send-count>strong{color:#1f2937;font-size:16px}.payment-batch-schedule{padding:11px 12px;border:1px solid #dfe5ec;border-radius:4px;background:#fbfcfd}.payment-batch-schedule-content{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:12px 24px;width:100%}.payment-batch-schedule-content .ant-radio-wrapper{margin:0;white-space:nowrap}.payment-batch-schedule-option{display:grid;gap:10px}.payment-batch-schedule-fields{display:grid;gap:8px;padding-left:24px;color:#64748b;font-size:12px}.payment-batch-schedule-inputs{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.payment-batch-schedule-inputs>span{color:#64748b}.payment-batch-schedule-fields .ant-picker{width:142px}.payment-batch-schedule-fields .ant-picker-time{width:100px}.payment-batch-schedule-fields .is-invalid{color:#dc2626}@media(max-width:640px){.payment-period-selector{width:min(100%,248px)}.payment-batch-confirm-modal{max-width:calc(100vw - 24px)}.payment-batch-period-grid{grid-template-columns:1fr}.payment-batch-confirm-modal .ant-modal-body,.payment-batch-confirm-modal .ant-modal-footer{padding-inline:14px}.payment-batch-bill-table{overflow-x:auto}}.payment-main-table .payment-amount-column{color:#1f2937;font-variant-numeric:tabular-nums;white-space:nowrap}.payment-main-table .payment-onsite-button,.payment-main-table .payment-history-resend-button{min-width:86px}.archive-file-names{display:block;overflow:hidden;color:#4b5b70;text-overflow:ellipsis;white-space:nowrap}.archive-list-table .archive-row-actions .ant-btn{color:#52606d}.archive-list-table .archive-row-actions .ant-btn:hover{color:#1677ff}.payment-history-card .ant-card-body{gap:0}.payment-list-section{display:grid;gap:12px}.payment-list-section .section-toolbar{margin-bottom:0}.payment-list-count{color:#8c8c8c;font-size:13px}.payment-history-card .ant-tabs-nav{margin-bottom:0}.payment-method-status-filters{display:flex;align-items:center;gap:6px;padding:12px 16px;border-bottom:1px solid #edf0f3}.payment-method-status-filters .ant-btn{height:32px;padding-inline:13px;border-color:#d9dfe6;background:#fff;color:#52606d}.payment-method-status-filters .ant-btn.is-active{border-color:#93c5fd;background:#eff6ff;color:#2563eb;font-weight:700}.payment-filter-inline .student-filter-control .ant-select{width:145px}.payment-overview-card .ant-card-body{padding:0;overflow:hidden}.payment-overview-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px}.payment-overview-header h3{margin:0;color:#253247;font-size:15px;font-weight:700}.payment-overview-header span{color:#8a96a5;font-size:12px}.payment-overview-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border-block:1px solid #e5eaf0;background:#e5eaf0}.payment-overview-metric{display:grid;min-width:0;gap:5px;padding:16px 20px;background:#fff}.payment-overview-metric>span{color:#667085;font-size:12px;font-weight:700}.payment-overview-metric>strong{overflow:hidden;color:#253247;font-size:20px;line-height:26px;text-overflow:ellipsis;white-space:nowrap}.payment-overview-metric>small{color:#8a96a5;font-size:11px}.payment-overview-metric.is-paid>strong{color:#16a34a}.payment-overview-metric.is-unpaid>strong{color:#dc2626}.payment-overview-metric.is-closed{background:#f7f8fa}.payment-overview-metric.is-closed>span,.payment-overview-metric.is-closed>strong,.payment-overview-metric.is-closed>small{color:#7a8491}.payment-overview-progress{display:grid;gap:9px;padding:16px 20px 18px}.payment-overview-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-overview-progress-heading span{color:#52606d;font-size:12px;font-weight:700}.payment-overview-progress-heading strong{color:#253247;font-size:14px}.payment-collection-bar{display:flex;height:10px;overflow:hidden;border-radius:999px;background:#edf0f3}.payment-collection-bar>span{display:block;min-width:0;transition:width .2s ease}.payment-collection-bar>.is-paid{background:#52c41a}.payment-collection-bar>.is-unpaid{background:#ff7875}.payment-overview-legend{display:flex;align-items:center;flex-wrap:wrap;gap:7px 18px;color:#667085;font-size:11px}.payment-overview-legend>span{display:inline-flex;align-items:center;gap:6px}.payment-overview-legend i{width:8px;height:8px;border-radius:50%;background:#aab2bd}.payment-overview-legend i.is-paid{background:#52c41a}.payment-overview-legend i.is-unpaid{background:#ff7875}.payment-overview-legend .is-closed{color:#8a96a5}.payments-page .payment-student-cell,.payments-page .payment-status-trigger{cursor:pointer}.payments-page .payment-student-school{font-size:11px}.payment-refund-form{margin-top:14px}.payment-send-confirm-text{margin:0;color:#334155}.paid-payment-detail-modal{max-width:min(560px,calc(100vw - 24px))}.paid-payment-detail-modal .ant-modal-body{max-height:min(66vh,560px);overflow-y:auto}.paid-payment-detail{display:grid;gap:20px}.paid-payment-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.paid-payment-detail-heading>div{display:grid;gap:2px}.paid-payment-detail-heading strong{color:#172033;font-size:18px;line-height:26px}.paid-payment-detail-heading span{color:#7a8797;font-size:12px}.paid-payment-detail-heading .ant-tag{margin-inline-end:0}.paid-payment-detail-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;overflow:hidden;border:1px solid #dfe4ea;border-radius:8px}.paid-payment-detail-info-item{display:grid;grid-template-columns:88px minmax(0,1fr);min-height:46px;border-top:1px solid #e8ebef}.paid-payment-detail-info-item:nth-child(2){border-right:1px solid #e8ebef}.paid-payment-detail-info-item.is-amount{grid-column:1 / -1;border-top:0}.paid-payment-detail-info dt,.paid-payment-detail-info dd{display:flex;align-items:center;margin:0;padding:10px 12px}.paid-payment-detail-info dt{background:#f7f8fa;color:#596675;font-size:12px;font-weight:700}.paid-payment-detail-info dd{min-width:0;color:#253247;font-size:13px;font-weight:600}.paid-payment-detail-info .is-amount dd{justify-content:flex-end;color:#1677ff;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.paid-payment-detail-items{display:grid;gap:10px}.paid-payment-detail-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.paid-payment-detail-section-heading h3{margin:0;color:#253247;font-size:15px;font-weight:700}.paid-payment-detail-section-heading span{color:#7a8797;font-size:12px}.paid-payment-detail-item-list{overflow:hidden;border:1px solid #dfe4ea;border-radius:8px}.paid-payment-detail-item-list>div{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:44px;padding:10px 12px}.paid-payment-detail-item-list>div+div{border-top:1px solid #e8ebef}.paid-payment-detail-item-list span{min-width:0;color:#52606d;font-size:13px}.paid-payment-detail-item-list strong{flex:0 0 auto;color:#253247;font-size:13px;font-variant-numeric:tabular-nums}@media(max-width:576px){.paid-payment-detail-info{grid-template-columns:1fr}.paid-payment-detail-info-item,.paid-payment-detail-info-item.is-amount{grid-column:auto;grid-template-columns:84px minmax(0,1fr);border-top:1px solid #e8ebef;border-right:0}.paid-payment-detail-info-item.is-amount{border-top:0}.paid-payment-detail-info .is-amount dd{justify-content:flex-start;font-size:16px}.paid-payment-detail-modal .ant-modal-footer .ant-btn{width:100%;min-height:38px}}.payment-invoice-composer .ant-modal-body{max-height:min(66vh,620px);overflow-y:auto}.payment-invoice-composer .ant-modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:0;padding-top:16px}.invoice-composer-body{display:grid;gap:22px;padding-right:2px}.invoice-composer-recipient{display:grid;gap:4px}.invoice-composer-recipient>strong{color:#172033;font-size:18px}.invoice-composer-recipient>span{color:#64748b;font-size:13px}.invoice-composer-recipient .ant-alert{margin-top:6px}.invoice-composer-section{display:grid;gap:10px}.invoice-composer-section h3{margin:0;color:#334155;font-size:14px}.invoice-composer-items{display:grid;gap:8px}.invoice-composer-item{display:grid;grid-template-columns:minmax(0,1fr) 150px 30px;align-items:start;gap:8px}.invoice-composer-item .ant-form-item{margin-bottom:0}.invoice-composer-item .ant-input-number{width:100%}.invoice-composer-item .ant-btn{margin-top:2px}.invoice-composer-error{color:#d14343;font-size:12px}.invoice-composer-total{display:flex;align-items:baseline;justify-content:space-between;padding-top:12px;border-top:1px solid #e5e7eb;color:#475569;font-size:14px}.invoice-composer-total strong{color:#172033;font-size:18px}.payment-invoice-composer .ant-collapse{margin-top:-6px}.payment-invoice-composer .ant-collapse-header{padding-inline:0!important;color:#475569!important;font-weight:700}.payment-invoice-composer .ant-collapse-content-box{padding:12px 0 0!important}.invoice-composer-confirm{display:grid;gap:18px}.invoice-composer-confirm>p{margin:0;color:#334155;font-size:15px}.invoice-composer-confirm section{display:grid;gap:8px}.invoice-composer-confirm h3{margin:0;color:#475569;font-size:13px}.invoice-composer-confirm section>span{color:#172033;font-size:15px}.invoice-composer-confirm-row{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:8px 0;color:#475569}.invoice-composer-confirm-row strong{flex:0 0 auto;color:#172033}.invoice-composer-confirm-total{display:flex;align-items:baseline;justify-content:space-between;padding:14px 0;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;color:#334155}.invoice-composer-confirm-total strong{color:#172033;font-size:19px}.invoice-composer-result{display:grid;justify-items:center;gap:12px;min-height:220px;padding:48px 20px;text-align:center;color:#64748b}.invoice-composer-result strong{color:#172033;font-size:18px}.invoice-composer-result p{margin:6px 0 0;color:#64748b}.invoice-composer-result.is-success svg{color:#16a34a}.invoice-composer-result.is-error svg{color:#dc2626}.invoice-composer-spinner{width:32px;height:32px;border:3px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;animation:invoice-composer-spin .8s linear infinite}@keyframes invoice-composer-spin{to{transform:rotate(360deg)}}@media(max-width:576px){.payment-invoice-composer{max-width:calc(100vw - 24px)}.invoice-composer-item{grid-template-columns:minmax(0,1fr) 122px 30px}.payment-invoice-composer .ant-modal-footer .ant-btn{flex:1;min-height:38px}}.message-page{width:100%;display:grid;gap:16px}.message-surface-card,.panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.message-surface-card{border-radius:14px}.management-list-count{color:#6b7788;font-size:13px;font-weight:500;white-space:nowrap}.management-list-table{min-width:0}.management-list-table .ant-table{overflow:hidden;border-radius:8px 8px 0 0}.management-list-table .ant-table-thead>tr>th{height:38px;background:#f7f8fa;color:#52606d;font-size:12px;font-weight:700}.management-list-table .ant-table-tbody>tr>td{height:42px;color:#364152;vertical-align:middle}.management-list-table .ant-table-tbody>tr.ant-table-row:hover>td{background:#f5f9ff!important}.management-list-table .ant-pagination{margin:16px 0 0}.management-list-table .ant-empty{margin-block:40px}.message-history-content{color:#364152;line-height:20px}.message-history-detail-actions{display:flex;align-items:center;justify-content:flex-start}.message-history-detail-bar{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border:1px solid #b9d7ff;border-radius:10px;background:#f5faff;color:#40516a;font-size:13px}.message-history-detail-bar strong{color:#1677ff}.message-history-detail-bar-actions{display:flex;align-items:center;gap:8px}.message-history-detail-bar.is-scheduled{border-color:#ffd591;background:#fff7e6}.message-history-detail-bar.is-scheduled strong{color:#d46b08}.message-history-detail-bar.is-complete{border-color:#b7eb8f;background:#f6ffed}.message-history-detail-bar.is-complete strong{color:#389e0d}.message-history-detail-bar.is-cancelled{border-color:#d9d9d9;background:#fafafa}.message-history-detail-bar.is-cancelled strong{color:#8c8c8c}.message-history-recipient-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:8px;background:#f5f8fc}.message-history-recipient-summary span{color:#1677ff;font-weight:700}.message-history-description{margin:4px 0 0;color:var(--muted);font-size:12px;font-weight:400}.message-history-filter-panel{overflow-x:auto}.message-history-status-filters{display:flex;min-width:max-content;align-items:center;gap:8px;padding-bottom:2px}.message-history-filter-panel .ant-picker{height:32px}.message-history-status-filters .ant-btn{height:32px;border-color:#d9d9d9;background:#fff;color:#475569}.message-history-status-filters .ant-btn.is-active{border-color:#93c5fd;background:#eff6ff;color:#2563eb;font-weight:700}.message-history-row{cursor:pointer}.message-history-row:hover>td{background:#f5faff!important}.message-template-toolbar{display:flex;min-width:max-content;align-items:center;gap:8px;padding-bottom:2px}.message-template-toolbar .ant-input-affix-wrapper{width:300px;height:32px}.message-template-toolbar .student-filter-control .ant-select{width:130px}.timetable-filter-toolbar{grid-template-columns:130px 130px auto;align-items:center}.timetable-filter-toolbar .ant-btn{justify-self:start}.message-list-section{display:grid;gap:12px}.message-list-section .section-toolbar{margin-bottom:0}.message-list-count{color:var(--muted);font-size:13px}.instructor-reference-control>span{color:#52606d;font-size:13px;font-weight:600;white-space:nowrap}.management-subtable .ant-table{overflow:hidden;border:1px solid #e8ecf1;border-radius:7px}.management-subtable .ant-table-thead>tr>th{background:#f7f9fb;color:#596675;font-weight:700}.message-template-content{color:#4b5b70;line-height:20px}.message-template-row{cursor:pointer}.message-template-row:hover>td{background:#f5faff!important}.message-template-form{display:grid;gap:18px}.message-template-form label{color:#52606d;font-size:13px;font-weight:700}.message-template-form .ant-select{width:100%}.overlay-footer-actions{display:flex;width:100%;justify-content:flex-end;gap:8px}.message-template-drawer .ant-form-item-label>label,.message-template-drawer .message-template-form label{height:auto;color:#52606d;font-size:13px;font-weight:700}.message-send-layout{width:100%;display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1fr);grid-template-areas:"preview form";gap:22px;align-items:start}.message-send-form{grid-area:form;display:grid;gap:16px}.message-step-card{padding:18px 24px 24px}.sender-step{min-height:82px;display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:20px}.sender-step .ant-input{width:100%}.recipient-step-content{display:grid;gap:14px;margin-top:18px}.recipient-target-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:8px;background:#f5f8fc}.recipient-target-summary strong{color:var(--ink)}.recipient-target-summary span{color:#1677ff;font-weight:800}.recipient-selection-title{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.recipient-selection-title strong{font-size:13px}.recipient-selection-title span{color:#1677ff;font-size:18px;font-weight:800}.recipient-empty-box{min-height:150px;display:grid;place-content:center;justify-items:center;gap:6px;border:1px dashed #b9c8dd;border-radius:10px;background:#fafcff;text-align:center}.recipient-empty-add.ant-btn{width:48px;min-width:48px;height:48px;margin-bottom:4px;box-shadow:0 6px 16px #1677ff38}.recipient-empty-box strong{color:#596474;font-size:13px}.recipient-empty-box p{margin:0;color:#9aa5b4;font-size:12px}.recipient-step-content>.ant-btn{justify-self:end;width:min(240px,100%)}.recipient-picker-modal .ant-modal-body{display:grid;gap:14px}.recipient-picker-table .ant-table-body{overflow-x:hidden!important}.recipient-picker-table .ant-table-container table{width:100%!important;table-layout:fixed!important}.recipient-picker-table .ant-table-cell{overflow-wrap:anywhere}.recipient-contact-target{display:flex;align-items:center;gap:24px;padding:12px 16px;border:1px solid #d8e0ea;border-radius:10px;background:#f8fbff}.recipient-contact-target strong{color:var(--ink)}.recipient-contact-target .ant-picker{width:180px;height:32px}.recipient-filter-panel{display:grid;gap:12px;padding:16px;border:1px solid #d8e0ea;border-radius:10px;background:#fff}.recipient-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.recipient-checklist-filter{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:6px;min-width:0;color:#4c5868;font-weight:700}.recipient-checklist-filter>.ant-input-affix-wrapper{height:28px;font-weight:400}.recipient-checklist-scroll{height:86px;overflow-y:auto;padding:7px 9px;border:1px solid #d8e0ea;border-radius:7px;background:#fff}.recipient-checklist-scroll .ant-checkbox-group{display:grid;gap:6px}.recipient-checklist-scroll .ant-checkbox-wrapper{margin:0;color:var(--ink);font-weight:400;line-height:20px}.recipient-checklist-empty{display:block;padding:3px 0;color:#9aa5b4;font-size:12px;font-weight:400}.recipient-filter-grid .recipient-status-filter{grid-column:1 / -1}.recipient-status-filter>span{color:#4c5868;font-size:13px;font-weight:700;line-height:20px}.recipient-status-filter .ant-checkbox-group{min-height:32px;display:flex;flex-wrap:wrap;align-items:center;gap:18px}.recipient-status-filter .ant-checkbox-wrapper{margin:0;color:var(--ink);font-weight:400}.recipient-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.recipient-search-row .ant-input-affix-wrapper,.recipient-search-row .ant-btn{height:32px}.recipient-result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid #dce3eb;border-radius:8px;background:#f5f7f9}.recipient-result-toolbar strong{color:#1677ff}.recipient-contact-notice{margin:0;color:#d85656;font-size:12px}.message-step-title{display:flex;align-items:center;gap:10px;min-width:max-content}.message-step-title span{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:#1677ff;color:#fff;font-size:12px;font-weight:800}.message-step-title strong{font-size:15px}.message-step-topline{display:flex;align-items:center}.message-step-body{min-width:0}.message-content-area{display:grid;gap:12px;margin-top:18px}.schedule-step{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:start;gap:20px}.message-schedule-content{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:10px 24px}.message-schedule-content .ant-radio-group{display:contents}.message-schedule-content .ant-radio-wrapper{margin:0;color:var(--ink)}.message-schedule-fields{grid-column:2;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.message-schedule-fields .ant-picker{width:142px;height:32px}.message-schedule-fields .ant-picker+.ant-picker{width:104px}.message-schedule-fields span{color:#617084;font-size:12px}.message-schedule-fields span.is-invalid{color:#d14343;font-weight:700}.message-send-action{display:flex;justify-content:flex-end;gap:8px}.message-send-action .ant-btn{min-width:150px;height:36px}.payssam-message-notice{margin-bottom:16px}.message-image-row{display:flex;gap:10px}.coupon-thumb,.phone-coupon{position:relative;overflow:hidden;display:grid;align-content:center;justify-items:center;border-radius:10px;background:linear-gradient(135deg,#397a59,#70ae83);color:#fff}.coupon-thumb{width:92px;height:78px}.coupon-thumb .ant-btn{position:absolute;z-index:1;right:5px;top:5px;display:grid;place-items:center;width:18px;min-width:18px;height:18px;padding:0;border:0;border-radius:50%;background:#26392d;color:#fff}.coupon-thumb span,.phone-coupon span{font-weight:800;font-size:11px;letter-spacing:.5px}.coupon-thumb strong,.phone-coupon strong{font-size:22px;line-height:1}.coupon-thumb i,.phone-coupon i{position:absolute;right:14px;bottom:9px;font-size:17px;font-style:normal;color:#e4f3bb}.image-upload-control{display:block}.image-add-box.ant-btn{width:82px;height:78px;border-color:#91caff;border-radius:10px;background:#fff;color:#1677ff;display:grid;place-content:center;justify-items:center;gap:4px}.image-add-box small{color:var(--muted);font-size:10px}.coupon-thumb img,.phone-coupon img{width:100%;height:100%;object-fit:cover}.message-textarea-wrap{position:relative}.message-content-area .ant-input-textarea textarea{border-radius:10px;background:#f5f7f5;border-color:transparent;line-height:1.7;padding-bottom:34px}.special-character-trigger.ant-btn{position:absolute;z-index:1;left:7px;bottom:6px;display:grid;place-items:center;width:24px;min-width:24px;height:24px;padding:0;border-radius:6px;color:#7b8794}.special-character-trigger.ant-btn:hover{background:#e8edf2;color:#1677ff}.special-character-grid{display:grid;grid-template-columns:repeat(8,28px);gap:3px}.special-character-grid .ant-btn{width:28px;min-width:28px;height:28px;padding:0;color:#334155;font-size:16px;line-height:1}.special-character-grid .ant-btn:hover{background:#eaf3ff;color:#1677ff}.message-preview-card{grid-area:preview;padding:18px 24px 24px;text-align:center}.message-preview-card h2{margin:0;font-size:15px}.message-preview-card>p{margin:7px 0 14px;color:var(--muted);font-size:11px;line-height:1.5}.phone-preview{position:relative;width:210px;height:390px;margin:0 auto 10px;overflow:hidden;display:flex;flex-direction:column;border:6px solid #303536;border-radius:28px;background:#fff;text-align:left;box-shadow:0 12px 28px #1c231f1f}.phone-notch{position:absolute;z-index:2;top:0;left:50%;width:92px;height:18px;transform:translate(-50%);border-radius:0 0 13px 13px;background:#303536}.phone-status{min-height:50px;display:flex;align-items:flex-end;justify-content:space-between;padding:0 14px 9px;color:#161b1d;font-size:8px}.phone-status strong{font-size:9px}.phone-status span{letter-spacing:.2px}.phone-screen{flex:1;min-height:0;overflow-y:auto;padding:12px;border-top:1px solid #dce2e4;border-bottom:1px solid #dce2e4;background:#eef1f2}.phone-coupon{width:100%;height:auto;aspect-ratio:1 / 1;margin-bottom:10px}.phone-coupon strong{font-size:28px}.phone-message{padding:13px;border:1px solid #d9dfe1;border-radius:0 0 12px 12px;background:#fff;box-shadow:0 2px 5px #1f292614;color:#58646a;font-size:10px;line-height:1.5}.phone-message p{margin:0;white-space:pre-wrap;word-break:break-word}.message-preview-type{margin:0 0 12px;color:var(--muted);font-size:11px}.two-col{grid-template-columns:minmax(300px,420px) minmax(0,1fr);align-items:start}.archive-page{gap:16px}.archive-page-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:32px}.archive-page-intro p{margin:0;color:var(--muted)}.archive-filter-card .ant-card-body{padding:16px}.archive-simple-toolbar{display:flex;min-width:max-content;align-items:center;gap:8px;padding-bottom:2px}.archive-simple-toolbar .student-filter-control .ant-select{width:112px;min-width:0}.archive-simple-toolbar .student-filter-control:nth-child(4) .ant-select{width:140px}.archive-simple-toolbar .ant-select-selector{height:32px!important}.archive-simple-toolbar .student-filter-reset{height:32px}.archive-results-card .ant-card-body{padding:16px}.archive-list-section{display:grid;gap:12px}.archive-list-section .section-toolbar{margin-bottom:0}.archive-list-description{margin:4px 0 0;color:var(--muted);font-size:12px}.archive-list-actions{display:flex;align-items:center;gap:10px}.archive-results-card .ant-table-wrapper{overflow:hidden;border-top:1px solid #edf0f3}.archive-results-card .ant-table-thead>tr>th{background:#f7f8fa;color:#596675}.archive-file-link{width:100%;min-width:150px;padding:0;border:0;background:transparent;color:#334155;display:flex;align-items:center;gap:7px;text-align:left}.archive-file-link:hover{color:#1677ff}.archive-file-link .ant-typography{min-width:0;margin:0}.archive-row-actions{display:flex;justify-content:center;gap:1px}.archive-upload-drawer .ant-drawer-header-title{flex-direction:row-reverse;justify-content:space-between}.archive-upload-drawer .ant-drawer-close{margin-inline-end:0}.archive-upload-drawer .ant-drawer-body{padding:18px 20px}.archive-form-section+.archive-form-section{margin-top:20px;padding-top:18px;border-top:1px solid #edf0f3}.archive-form-section h3{margin:0 0 14px;color:#253247;font-size:15px;font-weight:700;line-height:22px}.archive-upload-drawer .ant-form-item-label>label{height:auto;color:#52606d;font-size:13px;font-weight:700}.archive-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}.archive-form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.archive-wide-field{grid-column:1 / -1}.archive-upload-drawer .ant-upload-wrapper .ant-upload-drag{min-height:126px;padding:20px;background:#fafcff;border-color:#d9e6f2}.archive-upload-drawer .ant-upload-wrapper .ant-upload-drag-icon{margin-bottom:6px;color:#1677ff}.archive-upload-drawer .ant-upload-wrapper .ant-upload-text{margin-bottom:3px;color:#334155;font-size:13px;font-weight:700}.archive-upload-drawer .ant-upload-wrapper .ant-upload-hint{color:#94a3b8;font-size:11px}.archive-detail-view{display:grid;gap:22px}.archive-detail-section{display:grid;gap:12px}.archive-detail-section+.archive-detail-section{padding-top:20px;border-top:1px solid #edf0f3}.archive-detail-section>h3,.archive-detail-section-heading h3{margin:0;color:#253247;font-size:15px;font-weight:700;line-height:22px}.archive-detail-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.archive-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;overflow:hidden;border:1px solid #dfe4ea;border-radius:8px}.archive-detail-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.archive-detail-grid>div{min-width:0;border-right:1px solid #e8ebef}.archive-detail-grid>div:nth-child(2n),.archive-detail-grid.three>div:nth-child(3n){border-right:0}.archive-detail-grid.three>div:nth-child(2n){border-right:1px solid #e8ebef}.archive-detail-grid dt{padding:8px 11px;background:#f7f8fa;color:#596675;font-size:12px;font-weight:700}.archive-detail-grid dd{min-height:40px;margin:0;padding:10px 11px;color:#253247;font-size:13px;font-weight:600;line-height:20px}.archive-detail-wide{grid-column:1 / -1;border-top:1px solid #e8ebef;border-right:0!important}.archive-detail-wide dd{min-height:64px;color:#52606d;font-weight:400;white-space:pre-wrap}.archive-detail-files{overflow:hidden;border:1px solid #dfe4ea;border-radius:8px}.archive-detail-file{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:8px 10px 8px 12px}.archive-detail-file+.archive-detail-file{border-top:1px solid #e8ebef}.archive-detail-file>div{display:grid;min-width:0;gap:2px}.archive-detail-file span{overflow:hidden;color:#253247;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.archive-detail-file small{overflow:hidden;color:#8a96a5;font-size:11px;text-overflow:ellipsis;white-space:nowrap}@media(max-width:576px){.archive-detail-grid,.archive-detail-grid.three{grid-template-columns:1fr}.archive-detail-grid>div,.archive-detail-grid.three>div:nth-child(2n){border-top:1px solid #e8ebef;border-right:0}.archive-detail-grid>div:first-child{border-top:0}}.wide-panel{grid-column:1 / -1}.panel{border-radius:8px}.panel-header{padding:18px 18px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.panel-body{padding:18px}.panel-section{padding:18px 0}.muted,.meta,.empty-state{color:var(--muted)}.meta{font-size:13px}.actions,.top-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.student-filter-form{overflow-x:auto}.student-filter-inline{display:flex;min-width:max-content;align-items:center;gap:8px;padding-bottom:2px}.student-filter-search,.student-filter-reset,.student-list-action-button{height:32px}.student-filter-search{width:145px;max-width:100%}.student-filter-control{display:flex;align-items:center;height:32px;padding-left:10px;border:1px solid #d9d9d9;border-radius:4px;background:#fff}.student-filter-control>span{color:#52606d;font-size:13px;font-weight:600;white-space:nowrap}.student-filter-control.is-active{border-color:#93c5fd;background:#eff6ff}.student-filter-control.is-active>span{color:#2563eb}.student-filter-control .ant-select{width:112px}.student-filter-control .ant-select,.student-filter-control .ant-select-selector{height:32px!important}.student-filter-control:first-child .ant-select{width:145px}.student-filter-control:nth-child(4) .ant-select{width:132px}.student-filter-control .ant-select-selector{border:0!important;background:transparent!important;box-shadow:none!important}.student-filter-control .ant-select-selection-item{color:#475569!important;font-size:13px}.student-filter-control .ant-select-selection-placeholder{color:#94a3b8!important;font-size:13px}.student-filter-control.is-active .ant-select-selection-item{color:#2563eb!important}.student-filter-reset{color:#2563eb;border-color:#93c5fd;background:#fff}.student-filter-reset:hover,.student-filter-reset:focus{color:#1d4ed8!important;border-color:#60a5fa!important;background:#eff6ff!important}.upcoming-enrollment-badge .ant-badge-count{animation:upcoming-enrollment-pulse 1.8s ease-in-out infinite}@keyframes upcoming-enrollment-pulse{0%,to{transform:scale(1);box-shadow:0 0 #1677ff59}50%{transform:scale(1.12);box-shadow:0 0 0 6px #1677ff00}}@media(prefers-reduced-motion:reduce){.upcoming-enrollment-badge .ant-badge-count{animation:none}}.promotion-year-select{width:132px;height:42px}.promotion-year-select .ant-select-selector{height:42px!important}.promotion-year-select .ant-select-selection-item{line-height:40px!important;color:#475569;font-size:14px;font-weight:700}.promotion-tabs .ant-tabs-nav{margin:0 0 12px}.academy-management-card .ant-card-body{display:grid;gap:14px}.academy-management-card .ant-card-head{min-height:44px;padding-inline:16px}.course-list-card .ant-card-head{border-bottom:0}.academy-management-card .ant-card-head-title{padding-block:11px;font-size:15px}.academy-management-card .ant-card-body{padding:16px}.ant-btn:not(.ant-btn-sm):not(.ant-btn-lg){min-height:30px;padding-inline:11px;font-size:13px}.ant-btn.ant-btn-sm{font-size:12px}.ant-input,.ant-select-selection-item,.ant-picker-input>input{font-size:13px}.ant-form-item .ant-form-item-label>label{font-size:12px}.ant-table-wrapper .ant-table-thead>tr>th{padding:8px 10px;font-size:12px}.ant-table-wrapper .ant-table-tbody>tr>td{padding:9px 10px;font-size:12px}.ant-tag{font-size:11px;line-height:18px}.academy-tabs{margin-top:4px}.academy-tab-panel{display:grid;min-width:0;gap:14px}.academy-tab-panel .ant-table-wrapper{min-width:0;overflow-x:auto}.course-detail-table-wrap{overflow-x:auto}.course-detail-table{width:100%;min-width:620px;border-collapse:collapse;color:#334155;font-size:13px;table-layout:fixed}.student-enrollment-detail-table{border-top:1px solid #e5e7eb}.course-detail-table col:nth-child(odd){width:18%}.course-detail-table col:nth-child(2n){width:32%}.course-detail-table th,.course-detail-table td{border-bottom:1px solid #e5e7eb;padding:10px 12px;text-align:left;vertical-align:middle;word-break:break-word}.course-detail-table th[scope=row]{background:#f7f8fa;color:#52606d;font-size:12px;font-weight:700}.course-detail-table td{color:#243447;font-weight:600}.course-detail-table .course-detail-section-row th{background:#fff;color:#1f2937;font-size:14px;font-weight:700;padding:16px 0 8px}.course-detail-table .course-detail-section-row:first-child th{padding-top:0}.academy-info-table .course-detail-section-row th{padding-inline:12px}.course-detail-table .ant-tag,.course-edit-table .course-table-form-item{margin:0}.course-edit-table{border-top:1px solid #e5e7eb}.course-edit-table td{font-weight:400}.course-edit-table .ant-select,.course-edit-table .ant-input-number,.course-edit-table .ant-picker{width:100%}.course-edit-table .ant-checkbox-group,.course-edit-table .ant-radio-group{line-height:1.8}.course-list-meta-column{color:#7b8798}.course-row-actions{cursor:default}.course-row-actions .ant-btn{width:30px;height:30px;padding:0;color:#667085}.course-row-actions .ant-btn:hover{background:#f1f5f9;color:#1677ff}.course-row-actions .course-row-delete-button:hover{background:#fff1f0;color:#ff4d4f}.course-delete-modal-content{display:grid;gap:8px;color:#52606d;font-size:13px;line-height:21px}.course-delete-modal-content p{margin:0}.course-delete-modal-content strong{color:#1677ff;font-weight:700}label{display:grid;gap:6px;color:var(--muted);font-size:13px}.form-grid input,.form-grid select,.form-grid textarea,.day-plan-fields input,.day-plan-fields select,.day-plan-fields textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 11px;min-height:42px}.form-grid textarea,.day-plan-fields textarea{min-height:100px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wide{grid-column:1 / -1}.student-editor-form{display:grid;gap:16px}.student-editor-required-note{margin:0;color:#7b8798;font-size:12px}.student-editor-required-note span{color:#ff4d4f;font-weight:700}.student-editor-section{padding:18px;border:1px solid #e5eaf0;border-radius:9px;background:#fafbfc}.student-editor-section h3{margin:0 0 16px;color:#253247;font-size:15px;font-weight:700;line-height:22px}.student-editor-section .ant-form-item{margin-bottom:0}.student-editor-section .ant-form-item-label>label{height:auto;color:#52606d;font-size:13px;font-weight:700}.student-editor-actions{margin-top:0;padding-top:16px;border-top:1px solid #e5eaf0}.student-tuition-summary .ant-descriptions-view{overflow:hidden;border-color:#e5eaf0;border-radius:8px}.student-tuition-summary .ant-descriptions-item-label{background:#f7f8fa!important;color:#52606d!important;font-size:13px;font-weight:700!important}.student-tuition-summary .ant-descriptions-item-content{color:#253247;font-size:13px;font-weight:500}.message-history-detail-page .message-history-detail-actions{margin-bottom:0}.message-history-detail-page .message-history-detail-bar{min-height:58px;padding:14px 18px;border-radius:9px;box-shadow:0 2px 7px #0f172a0a}.message-history-detail-page .message-step-card{border-radius:10px;box-shadow:0 2px 8px #0f172a0a}.message-history-detail-page .ant-input-disabled,.message-history-detail-page .ant-input-affix-wrapper-disabled,.message-history-detail-page .ant-picker-disabled,.message-history-detail-page .ant-select-disabled .ant-select-selector{border-color:#e1e6ec!important;background:#fff!important;color:#253247!important;cursor:default}.message-history-detail-page .ant-input-disabled,.message-history-detail-page textarea.ant-input-disabled,.message-history-detail-page .ant-picker-disabled input,.message-history-detail-page .ant-select-disabled .ant-select-selection-item{color:#253247!important;-webkit-text-fill-color:#253247}.message-history-detail-page .ant-radio-wrapper-disabled,.message-history-detail-page .ant-radio-wrapper-disabled span{color:#52606d!important;cursor:default}@media(max-width:640px){.student-editor-section{padding:15px}}.primary-button,button.primary-button{border:0;border-radius:8px;background:var(--green);color:#fff;padding:10px 13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px}.ghost-button,.danger-button,.small-button,.tab-button,.icon-button{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:9px 12px;display:inline-flex;align-items:center;gap:7px}.danger-button{color:#9f3148;border-color:#eccbd2;background:#fff8fa}.small-button{padding:6px 9px;font-size:12px}.icon-button{padding:8px}.link-button{border:0;background:transparent;padding:0;color:var(--green);font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.link-button:hover{color:#225f3e}.stat-card{padding:18px}.stat-card span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.stat-card strong{display:block;font-size:30px}.list{display:grid;gap:10px}.list.spaced{margin-top:12px}.list-item{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;text-align:left}.list-item.active{border-color:var(--green);background:var(--green-2)}.badge{display:inline-flex;min-height:24px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700;background:var(--surface-2);color:#365047}.badge.재원{background:var(--green-2);color:var(--green)}.badge.휴원{background:var(--amber-2);color:var(--amber)}.badge.퇴원{background:var(--rose-2);color:var(--rose)}.badge.졸업{background:#eaf3ff;color:#2c6fad}.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-toolbar h3{margin:0}.score-chart{width:100%;min-height:250px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb}.empty-chart{display:grid;place-items:center}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.table-wrap table{width:100%;border-collapse:collapse;min-width:620px;background:#fff}.table-wrap th,.table-wrap td{border-bottom:1px solid var(--line);padding:11px;text-align:left;vertical-align:top}.table-wrap th{color:var(--muted);font-size:12px;background:#f8faf8}.table-wrap tr:last-child td{border-bottom:0}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:10px}.file-tile{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;display:grid;gap:8px}.file-tile img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:6px;background:#edf1ee}.file-preview{min-height:92px;display:grid;place-items:center;border-radius:6px;background:#edf1ee}.timetable-schedule{display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}.timetable-schedule-head{min-width:0;padding:7px 6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8faf8;color:var(--muted);font-size:11px;font-weight:800;text-align:center}.timetable-time-head{min-width:56px}.timetable-time-rows{position:relative;min-width:56px;height:calc(var(--slot-count) * var(--slot-height));background:#f8faf8;border-right:1px solid var(--line)}.timetable-time-row{height:var(--slot-height);padding:5px 6px;border-bottom:1px solid var(--line)}.timetable-time-row .ant-typography{font-size:11px}.timetable-day-column{position:relative;min-width:0;height:calc(var(--slot-count) * var(--slot-height));border-right:1px solid var(--line)}.timetable-day-slot{height:var(--slot-height);border-bottom:1px solid var(--line)}.timetable-course-block{position:absolute;z-index:1;overflow:hidden;border-color:var(--course-border, var(--line));border-left:4px solid var(--course-accent, var(--green));background:var(--course-bg, var(--green-2))}.timetable-course-block .ant-card-body{height:100%;padding:5px 6px}.timetable-course-block .ant-tag{margin-inline-end:0}.timetable-teacher-tag{font-size:10px;font-weight:700;line-height:16px;padding-inline:4px}.timetable-course-block-content{display:grid;grid-template-rows:auto auto;align-content:start;width:100%;height:100%;overflow:hidden;gap:2px}.timetable-course-block-title-row{display:flex;align-items:center;min-width:0;gap:3px}.timetable-course-block-content .ant-typography{max-width:100%;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.25}.timetable-course-block-title-row .ant-typography{flex:1;min-width:0}.timetable-course-subject{font-size:10px!important}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(96px,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.dow,.day-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.dow{padding:10px;background:#f8faf8;color:var(--muted);font-size:12px;font-weight:700}.day-cell{min-height:118px;padding:8px}.day-cell.muted-day{background:#f6f7f4}.day-cell.selected{outline:2px solid var(--green);outline-offset:-2px}.date-number{font-weight:800;margin-bottom:6px}.event-pill,.period-pill{display:block;width:100%;border-radius:6px;padding:4px 6px;margin-bottom:4px;font-size:12px;background:var(--green-2);color:var(--green)}.event-pill.휴원{background:var(--rose-2);color:var(--rose)}.event-pill.행사{background:var(--green-2);color:var(--green)}.event-pill.휴무{background:var(--rose-2);color:var(--rose)}.event-pill.시험대비,.period-pill{background:var(--blue-2);color:var(--blue)}.event-pill.상담주간{background:var(--amber-2);color:var(--amber)}.drag-actions{margin-top:12px}.exam-folder-home{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}.exam-folder-create-card .ant-form-item:last-child{margin-bottom:0}.exam-folder-list-card .ant-card-body{padding:16px}.exam-folder-list-card .ant-list-item{padding:0;border-block-end:0}.exam-folder-button{width:100%;min-height:76px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid #e4ebf2;border-radius:8px;background:#fbfdff;color:var(--ink);padding:14px 16px;text-align:left;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.exam-folder-button:hover{border-color:#b8d3ea;background:#f5faff;box-shadow:0 8px 22px #356d9d14}.exam-folder-icon{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:8px;background:var(--blue-2);color:var(--blue);font-size:21px}.exam-folder-text{display:grid;gap:4px;min-width:0}.exam-folder-text .ant-typography{margin:0}.exam-folder-open{display:inline-flex;align-items:center;gap:6px;color:var(--blue);font-size:13px;font-weight:700;white-space:nowrap}.detail-heading{display:flex;justify-content:flex-start}.subject-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));border:1px solid var(--line);border-radius:8px;padding:12px}.exam-period-calendar.ant-picker-calendar.ant-picker-calendar-full .ant-picker-panel{border-top:1px solid var(--line)}.exam-period-calendar .ant-picker-content thead th{padding:10px 8px;color:var(--muted);font-size:12px;text-align:left}.exam-period-calendar .ant-picker-calendar-date{margin:0;padding:0;border-radius:0}.exam-period-calendar .ant-picker-calendar-date-content{height:auto;min-height:116px}.exam-calendar-cell{min-height:116px;padding:8px;border-radius:8px}.exam-calendar-cell.is-selected{background:#eef7ff;outline:2px solid #91caff;outline-offset:-2px}.exam-calendar-date{margin-bottom:6px;color:var(--ink);font-weight:800}.exam-calendar-items{display:grid;gap:4px}.exam-calendar-tag{width:100%;margin-inline-end:0;overflow:hidden;text-overflow:ellipsis}.exam-period-table th,.exam-period-table td{min-width:84px;text-align:center}.exam-period-table .ant-table-cell{vertical-align:middle}.calendar-month-title{margin:0;color:var(--ink);font-size:16px;font-weight:600}.wide-control{width:100%}.day-plan-fields{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.day-plan-fields strong{font-size:13px;color:var(--text)}.exam-cell-plan{display:grid;gap:3px;justify-items:center;min-height:38px;margin:-8px;padding:8px;border-radius:6px}.exam-subject{color:#111827;font-weight:700}.exam-direct{color:#dc2626;font-weight:800}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#17211c73;display:grid;place-items:center;padding:20px;z-index:10}.modal{width:min(760px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:8px;box-shadow:var(--shadow);padding:18px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detail-list>div{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfb}.detail-list span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.detail-list strong{color:var(--ink)}.detail-list p{margin:0;white-space:pre-wrap}.download-list{display:flex;flex-wrap:wrap;gap:8px}@media(max-width:980px){.app-shell,.two-col,.calendar-page-grid,.exam-folder-home,.message-send-layout{grid-template-columns:1fr}.message-send-layout{grid-template-areas:"form" "preview"}.app-shell{height:auto;min-height:100vh;overflow:visible}.main{height:auto;overflow:visible}.student-search-row,.filter-search-row,.course-add-row{grid-template-columns:1fr}.sidebar{position:static;height:auto}.nav,.recipient-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.main{padding:18px 14px 32px}.archive-page-intro{align-items:flex-start;flex-direction:column}.archive-page-intro .ant-btn,.archive-list-actions .ant-btn{width:100%}.archive-list-actions{align-items:stretch;flex-direction:column-reverse}.archive-form-grid,.archive-form-grid.three{grid-template-columns:1fr}.topbar,.list-item{display:grid}.form-grid,.detail-list{grid-template-columns:1fr}.section-toolbar{align-items:stretch;flex-direction:column}.sender-step,.schedule-step{grid-template-columns:1fr;gap:12px}.recipient-step-content>.ant-btn{justify-self:stretch;width:100%}.recipient-filter-grid,.recipient-search-row{grid-template-columns:1fr}.recipient-filter-grid .recipient-date-filter .ant-picker{width:100%}.recipient-filter-grid .recipient-status-filter{grid-column:1}.recipient-contact-target,.recipient-target-summary{align-items:flex-start;flex-direction:column}.recipient-contact-target .ant-picker{width:100%}.recipient-result-toolbar{align-items:flex-start;flex-direction:column}.month-grid{grid-template-columns:repeat(7,minmax(64px,1fr))}.day-cell{min-height:96px}}.payment-batch-confirm-active>:not(.payment-batch-confirm-page-shell){display:none}.payment-batch-confirm-page-shell{width:min(100%,1240px);margin:0 auto}.payment-batch-confirm-page-header{display:flex;align-items:center;gap:8px;min-height:44px}.payment-batch-confirm-page-header .ant-btn{padding-inline:0;color:#4b5563}.payment-batch-confirm-page-header .ant-typography{margin:0;color:#26323f;font-size:20px}.payment-batch-confirm-page-card{overflow:visible;border:0;background:transparent;box-shadow:none}.payment-batch-confirm-page-card .ant-card-body{padding:0}.payment-batch-confirm-page-card .payment-batch-confirm-body{position:relative;display:grid;grid-template-columns:minmax(330px,380px) minmax(0,1fr);grid-template-areas:"preview product" "preview period" "preview message" "preview table" "preview schedule";align-items:start;column-gap:30px;row-gap:20px}.payment-batch-confirm-page-card .payment-batch-confirm-body:before{content:"";grid-column:2;grid-row:1 / -1;z-index:0;margin:0;border:1px solid #e2e8f0;border-radius:10px 10px 0 0;background:#fff;box-shadow:0 4px 14px #0f172a0d}.payment-batch-confirm-page-card .payment-batch-product,.payment-batch-confirm-page-card .payment-batch-period-grid,.payment-batch-confirm-page-card .payment-batch-message,.payment-batch-confirm-page-card .payment-batch-bill-table,.payment-batch-confirm-page-card .payment-batch-schedule{position:relative;z-index:1}.payment-batch-confirm-page-card .payment-batch-product{grid-area:product;margin-top:2px}.payment-batch-confirm-page-card .payment-batch-period-grid{grid-area:period}.payment-batch-confirm-page-card .payment-batch-message{grid-area:message}.payment-batch-confirm-page-card .payment-batch-bill-table{grid-area:table}.payment-batch-confirm-page-card .payment-batch-schedule{grid-area:schedule;margin-bottom:2px}.payment-batch-confirm-page-card .payment-batch-preview{grid-area:preview;position:sticky;top:16px;align-self:start;margin:0;padding:16px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;box-shadow:0 4px 14px #0f172a0d}.payment-batch-confirm-page-card .payment-batch-preview-head{margin-bottom:14px}.payment-batch-confirm-page-card .payment-batch-preview-card{width:100%;max-width:none}.payment-batch-confirm-page-card .payment-batch-send-footer{width:calc(100% - 410px);margin:0 0 0 auto;padding:16px 22px;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 10px 10px;background:#fff;box-shadow:0 8px 14px #0f172a0d}@media(max-width:820px){.payment-batch-confirm-page-card .ant-card-body{padding:0}.payment-batch-confirm-page-card .payment-batch-confirm-body{display:grid;grid-template-columns:1fr;grid-template-areas:"product" "period" "message" "table" "schedule" "preview";gap:16px}.payment-batch-confirm-page-card .payment-batch-confirm-body:before{display:none}.payment-batch-confirm-page-card .payment-batch-preview{position:static}.payment-batch-confirm-page-card .payment-batch-send-footer{width:auto;margin:0;padding:14px;border-top:1px solid #e2e8f0;border-radius:10px;background:#fff}.payment-batch-confirm-page-header .ant-typography{font-size:17px}}.payment-batch-confirm-page-card .payment-batch-product{margin:22px 22px 2px}.payment-batch-confirm-page-card .payment-batch-period-grid,.payment-batch-confirm-page-card .payment-batch-message,.payment-batch-confirm-page-card .payment-batch-bill-table{margin-inline:22px}.payment-batch-confirm-page-card .payment-batch-schedule{margin:0 22px 22px}@media(max-width:820px){.payment-batch-confirm-page-card .payment-batch-product{margin:0}.payment-batch-confirm-page-card .payment-batch-period-grid,.payment-batch-confirm-page-card .payment-batch-message,.payment-batch-confirm-page-card .payment-batch-bill-table,.payment-batch-confirm-page-card .payment-batch-schedule{margin-inline:0}.payment-batch-confirm-page-card .payment-batch-schedule{margin-block:0}}.payment-batch-confirm-page-card .payment-batch-confirm-body{display:grid;grid-template-columns:minmax(330px,380px) minmax(0,1fr);grid-template-areas:"preview editor";align-items:start;gap:30px}.payment-batch-confirm-page-card .payment-batch-confirm-body:before{display:none}.payment-batch-confirm-page-card .payment-batch-preview{grid-area:preview}.payment-batch-confirm-page-card .payment-batch-editor-card{grid-area:editor;min-width:0;padding:22px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;box-shadow:0 4px 14px #0f172a0d}.payment-batch-editor-card .payment-batch-product,.payment-batch-editor-card .payment-batch-period-grid,.payment-batch-editor-card .payment-batch-message,.payment-batch-editor-card .payment-batch-bill-table{margin:0 0 20px}.payment-batch-editor-card .payment-batch-schedule{margin:0}.payment-batch-editor-card .payment-batch-send-footer{width:auto;margin:22px -22px -22px;padding:16px 22px;border:0;border-top:1px solid #e2e8f0;border-radius:0 0 10px 10px;background:#fff;box-shadow:none}@media(max-width:820px){.payment-batch-confirm-page-card .payment-batch-confirm-body{display:block}.payment-batch-confirm-page-card .payment-batch-preview{margin-bottom:16px}.payment-batch-confirm-page-card .payment-batch-editor-card{padding:14px}.payment-batch-editor-card .payment-batch-send-footer{margin:16px -14px -14px;padding:14px}}.archive-results-card .ant-table-tbody>tr.archive-row-clickable>td{cursor:pointer}.archive-results-card .ant-table-tbody>tr.archive-row-clickable:hover>td{background:#f5faff!important}.archive-results-card .ant-table-tbody>tr.archive-row-clickable .archive-row-actions{cursor:default}.main{padding:24px 28px 18px;background:var(--bg)}.topbar{margin-bottom:20px}.topbar h1{color:var(--ink);font-size:20px;font-weight:600;line-height:1.4}.sidebar{border-right-color:#e5e7eb;background:#fff;color:var(--ink)}.brand{border-bottom-color:var(--line-soft)}.brand-mark{border-radius:var(--radius-control);background:var(--color-primary);color:#fff;font-weight:700}.brand strong{color:#1f2937}.brand span{color:#94a3b8}.nav-item,.settings-card{border-radius:var(--radius-control)}.nav-item{color:#64748b}.nav-item svg,.settings-card svg{color:#64748b}.nav-item:hover{color:#334155;background:#f8fafc}.nav-item:hover svg{color:#334155}.nav-item.active{color:var(--color-primary);background:#eaf2ff;box-shadow:inset -3px 0 0 var(--color-primary)}.nav-item.active svg{color:var(--color-primary)}.nav-submenu{border-left-color:#e5e7eb}.nav-submenu-item{color:#64748b}.nav-submenu-item:hover{color:#334155;background:#f8fafc}.nav-submenu-item.active{color:var(--color-primary);background:#eaf2ff}.settings-card{border-color:#e5e7eb;background:#f8fafc;color:#334155}.settings-card:hover{border-color:#cbd5e1;background:#f1f5f9}.settings-card strong{color:#334155}.settings-card span{color:#94a3b8}.settings-card.active{border-color:#91caff;background:#eaf2ff}.settings-card.active svg{color:var(--color-primary)}.panel,.message-surface-card,.ant-card{border-color:var(--line-soft);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow)}.message-surface-card{border-radius:var(--radius-card)}.payment-surface-shadow{box-shadow:var(--shadow)}.ant-card .ant-card-head{border-bottom-color:var(--line-soft)}.ant-card .ant-card-head-title{color:var(--ink);font-weight:600}.ant-btn:not(.ant-btn-sm):not(.ant-btn-lg){min-height:32px;border-radius:var(--radius-control);padding-inline:12px}.ant-btn-primary{font-weight:500}.ant-input,.ant-input-affix-wrapper,.ant-input-number,.ant-picker,.ant-select-selector{border-radius:var(--radius-control)!important}.ant-form-item .ant-form-item-label>label{color:#000000a6;font-weight:500}.ant-table-wrapper .ant-table-thead>tr>th{background:var(--surface-2);color:#000000a6;font-weight:600}.ant-table-wrapper .ant-table-tbody>tr>td{border-bottom-color:var(--line-soft)}.ant-modal .ant-modal-content,.ant-drawer .ant-drawer-content{border-radius:var(--radius-card);box-shadow:var(--shadow-elevated)}.ant-modal-root .ant-modal{max-width:calc(100vw - 32px)}.ant-modal .ant-modal-content{overflow:hidden;padding:0;border:1px solid var(--line-soft);background:var(--surface)}.ant-modal .ant-modal-header{min-height:54px;margin:0;padding:17px 52px 15px 20px;border-bottom:1px solid var(--line-soft);background:var(--surface)}.ant-modal .ant-modal-title{color:var(--ink);font-size:15px;font-weight:600;line-height:22px}.ant-modal .ant-modal-close{top:11px;inset-inline-end:12px;display:grid;width:32px;height:32px;place-items:center;border-radius:var(--radius-control);color:var(--muted)}.ant-modal .ant-modal-close:hover{background:var(--surface-2);color:var(--ink)}.ant-modal .ant-modal-body{max-height:min(72vh,720px);overflow-y:auto;padding:18px 20px}.ant-modal .ant-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:60px;margin:0;padding:14px 20px;border-top:1px solid var(--line-soft);background:var(--surface-2)}.ant-modal .ant-modal-footer>.ant-btn+.ant-btn{margin-inline-start:0}.ant-modal .ant-modal-footer .ant-btn-primary{min-width:88px}.ant-modal .ant-form-item:last-child{margin-bottom:0}.ant-modal-confirm .ant-modal-content{padding:0}.ant-modal-confirm .ant-modal-body{max-height:none;padding:20px}.ant-modal-confirm .ant-modal-confirm-title{color:var(--ink);font-size:15px;font-weight:600}.ant-modal-confirm .ant-modal-confirm-content{margin-top:8px;color:#000000a6;line-height:1.6}.ant-modal-confirm .ant-modal-confirm-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line-soft)}.ant-modal-confirm .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-inline-start:0}.ant-drawer .ant-drawer-content{overflow:hidden;border:1px solid var(--line-soft);background:var(--surface)}.ant-drawer .ant-drawer-header{min-height:54px;padding:15px 20px;border-bottom:1px solid var(--line-soft);background:var(--surface)}.ant-drawer .ant-drawer-header-title{flex-direction:row-reverse;justify-content:space-between;gap:12px}.ant-drawer .ant-drawer-title{color:var(--ink);font-size:15px;font-weight:600}.ant-drawer .ant-drawer-close{display:grid;flex:0 0 32px;width:32px;height:32px;margin-inline-end:0;place-items:center;border-radius:var(--radius-control);color:var(--muted)}.ant-drawer .ant-drawer-close:hover{background:var(--surface-2);color:var(--ink)}.ant-drawer .ant-drawer-body{padding:18px 20px}.ant-drawer .ant-drawer-footer{padding:14px 20px;border-top:1px solid var(--line-soft);background:var(--surface-2)}.ant-popover .ant-popover-inner{padding:14px;border:1px solid var(--line-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-elevated)}.ant-popover .ant-popover-title,.ant-popconfirm .ant-popconfirm-title{color:var(--ink);font-weight:600}.ant-popconfirm .ant-popconfirm-description{color:var(--muted)}.ant-popconfirm .ant-popconfirm-buttons{display:flex;justify-content:flex-end;gap:6px;margin-top:12px}.ant-popconfirm .ant-popconfirm-buttons .ant-btn{min-height:28px;margin-inline-start:0}.ant-empty-normal{margin-block:34px}.ant-empty .ant-empty-image{height:46px;margin-bottom:10px;opacity:.72}.ant-empty .ant-empty-description{color:#7a8797;font-size:12px;line-height:20px}.ant-empty .ant-btn{margin-top:4px}.ant-alert{border-radius:var(--radius-card)}.ant-alert .ant-alert-message{color:#334155;font-size:13px;font-weight:600}.ant-alert .ant-alert-description{color:#64748b;font-size:12px;line-height:19px}.ant-message .ant-message-notice-content{border:1px solid var(--line-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-elevated);color:#334155;font-size:13px}.ant-message .ant-message-custom-content{align-items:center}@media(max-width:640px){.ant-modal-root .ant-modal{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px);margin-inline:auto;padding-bottom:12px}.ant-modal .ant-modal-header{padding-inline:14px 46px}.ant-modal .ant-modal-body{max-height:min(68vh,620px);padding:16px 14px}.ant-modal .ant-modal-footer{align-items:stretch;padding:12px 14px}.ant-modal .ant-modal-footer .ant-btn{flex:1;min-width:0;min-height:38px}.ant-modal-confirm .ant-modal-body{padding:18px 16px}.ant-modal-confirm .ant-modal-confirm-btns .ant-btn{flex:1}.ant-drawer .ant-drawer-header,.ant-drawer .ant-drawer-body,.ant-drawer .ant-drawer-footer{padding-inline:14px}}.primary-button,button.primary-button{min-height:32px;border-radius:var(--radius-control);background:var(--color-primary);padding:5px 12px;font-weight:500}.primary-button:hover,button.primary-button:hover{background:var(--color-primary-hover)}.ghost-button,.danger-button,.small-button,.tab-button,.icon-button{min-height:32px;border-radius:var(--radius-control);padding:5px 12px}.icon-button{min-width:32px;padding:5px;justify-content:center}.link-button{color:var(--color-primary);font-weight:600;text-decoration:none}.link-button:hover{color:var(--color-primary-hover)}.list-item.active{border-color:var(--color-primary);background:var(--color-primary-soft)}.student-filter-control{border-radius:var(--radius-control)}.student-filter-control.is-active{border-color:#91caff;background:var(--color-primary-soft)}.student-filter-control.is-active>span,.student-filter-control.is-active .ant-select-selection-item{color:var(--color-primary)!important}.student-filter-reset{border-color:#91caff;color:var(--color-primary)}.form-grid input,.form-grid select,.form-grid textarea,.day-plan-fields input,.day-plan-fields select,.day-plan-fields textarea{min-height:32px;border-radius:var(--radius-control);padding:5px 11px}.table-wrap,.score-chart,.file-tile,.timetable-schedule,.month-grid,.subject-grid{border-radius:var(--radius-card)}.table-wrap th,.timetable-schedule-head,.dow{background:var(--surface-2)}.day-cell.selected{outline-color:var(--color-primary)}.modal{border-radius:var(--radius-card);box-shadow:var(--shadow-elevated)}.detail-list>div{border-radius:var(--radius-control);background:var(--surface-2)}@media(max-width:640px){.main{padding:18px 14px 32px}.topbar{margin-bottom:16px}}.academy-calendar-period-selector{margin:0}.academy-calendar-scroll{min-width:0;overflow-x:auto;border-radius:8px}.academy-calendar-scroll>div{min-width:720px}.calendar-agenda-list .ant-list-item{align-items:flex-start;padding:14px 0}.calendar-agenda-list .ant-list-item-meta-title{margin-bottom:5px;color:#253247;font-size:14px}.calendar-agenda-color{flex:0 0 9px;width:9px;height:9px;border:1px solid rgba(15,23,42,.08);border-radius:50%}.calendar-agenda-list .ant-empty{margin-block:38px}.calendar-agenda-list .ant-empty .ant-btn{margin-top:12px}.calendar-event-form{display:grid;gap:18px}.calendar-event-form .ant-form-item{margin-bottom:0}.calendar-event-form .ant-form-item-label>label{height:auto;color:#52606d;font-size:13px;font-weight:700}.payment-invoice-composer .invoice-composer-confirm{gap:14px}.payment-invoice-composer .invoice-composer-confirm>p{margin:0;padding:12px 14px;border:1px solid #d8e0ea;border-radius:8px;background:#fff;color:#344054}.payment-invoice-composer .invoice-composer-confirm section{padding:14px;border:1px solid #d8e0ea;border-radius:8px;background:#fff}.payment-invoice-composer .invoice-composer-confirm-total{padding:12px 14px;border:1px solid #b9d7ff;border-radius:8px;background:#f5faff}.payment-invoice-composer .invoice-composer-confirm>.invoice-composer-confirm-row{padding:10px 14px;border:1px solid #d8e0ea;border-radius:8px;background:#fff}@media(max-width:575px){.calendar-event-drawer .overlay-footer-actions .ant-btn{flex:1}}.academy-course-table-sections{display:grid;gap:16px}.academy-course-table-section{overflow:hidden;border:1px solid #e3e8ef;border-radius:9px;background:#fff}.academy-course-table-section h3{margin:0;padding:12px 14px;border-bottom:1px solid #e3e8ef;background:#f7f9fc;color:#253247;font-size:14px;font-weight:700;line-height:20px}.academy-course-table-section .course-detail-table-wrap{overflow-x:auto}.academy-course-table-section .course-detail-table{border-top:0}.academy-course-table-section .course-detail-table th,.academy-course-table-section .course-detail-table td{padding:11px 12px}.academy-course-table-section .course-detail-table tbody tr:last-child>*{border-bottom:0}.academy-course-table-section .course-detail-table th[scope=row]{background:#fafbfc;color:#4f5f73;font-size:13px}.academy-course-table-section .course-detail-table td{color:#1f2d3d;font-size:13px}.academy-course-table-section .course-edit-table .ant-checkbox-group{display:flex;flex-wrap:wrap;gap:2px 10px}.academy-course-table-section .course-edit-table .ant-form-item-explain-error{margin-top:4px;font-size:12px}@media(max-width:640px){.academy-course-table-section .course-detail-table{min-width:620px}}.postcode-search-modal .ant-modal-body{padding:0}.postcode-search-modal .ant-modal-body>div{min-height:480px}.instructor-student-modal .ant-table-wrapper{overflow:hidden;border:1px solid #e5e9ef;border-radius:8px}.instructor-student-modal .ant-table-thead>tr>th{background:#f7f8fa;color:#52606d;font-size:13px;font-weight:700}.academy-management-card .ant-card-head-title,.section-toolbar h3{margin:0;color:var(--ink);font-size:15px;font-weight:600;line-height:22px}.student-record-form .ant-form-item{margin-bottom:0}.student-record-modal .ant-form-item-label>label{height:auto;color:#52606d;font-size:13px;font-weight:700}.student-record-detail>div{border-color:#e5eaf0;background:#fff}.student-record-detail>div.wide{background:#fafafa}@media(max-width:640px){.student-record-modal .ant-modal-footer>.ant-flex{width:100%}}.academy-modal-form{display:grid;gap:16px}.academy-modal-form .ant-form-item{margin-bottom:0}.academy-form-modal .ant-form-item-label>label{height:auto;color:#52606d;font-size:13px;font-weight:700}.course-management-modal .ant-modal-footer>.ant-flex{width:100%}.timetable-schedule-scroll{min-width:0;overflow-x:auto;border-radius:var(--radius-card);overscroll-behavior-inline:contain}.timetable-schedule-scroll .timetable-schedule{min-width:720px}.ant-drawer .ant-drawer-content-wrapper{max-width:100vw!important}.ant-drawer .ant-drawer-body{min-width:0;overflow-x:hidden}.management-list-table .ant-table-cell{overflow-wrap:anywhere}@media(max-width:980px){.sidebar{padding:16px 14px;gap:14px}.brand{padding-bottom:12px}.main{padding:22px 20px 36px}}@media(max-width:640px){.main{padding:16px 12px 28px}.sidebar{padding:12px;gap:12px}.brand-mark{width:36px;height:36px}.nav{gap:5px}.nav-item{min-height:38px;padding:9px 10px}.nav-submenu{margin-left:20px}.settings-card{min-height:50px}.topbar{display:flex;align-items:stretch;flex-direction:column;gap:12px}.top-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.top-actions>button{min-width:0;justify-content:center}.page-stack,.grid{gap:12px}.academy-management-card .ant-card-head{padding-inline:14px}.academy-management-card .ant-card-body,.archive-results-card .ant-card-body{padding:14px}.student-filter-form,.message-history-filter-panel{overflow-x:visible}.student-filter-inline,.archive-simple-toolbar,.message-history-status-filters,.message-template-toolbar{width:100%;min-width:0;flex-wrap:wrap}.student-filter-search,.message-template-toolbar .ant-input-affix-wrapper{width:100%}.student-filter-control{flex:1 1 150px;min-width:0}.student-filter-control .ant-select,.student-filter-control:first-child .ant-select,.student-filter-control:nth-child(4) .ant-select,.archive-simple-toolbar .student-filter-control .ant-select,.archive-simple-toolbar .student-filter-control:nth-child(4) .ant-select{width:100%}.student-filter-reset{flex:1 1 150px}.message-history-status-filters .ant-btn{flex:1 1 auto}.payment-month-bar,.payment-batch-toolbar{align-items:stretch;flex-direction:column}.payment-period-context,.payment-period-selector{width:100%}.payment-list-filter-bar{justify-content:stretch}.payment-list-filter-bar>*{width:100%}.payment-batch-send-trigger{width:100%;min-width:0}.payment-batch-send-footer{align-items:stretch;flex-direction:column}.payment-batch-send-footer .ant-btn{width:100%}.payment-batch-schedule-content{grid-template-columns:1fr}.message-step-card,.message-preview-card{padding:16px}.message-history-detail-bar{align-items:stretch;flex-direction:column}.message-history-detail-bar .ant-btn{width:100%}.message-schedule-content{grid-template-columns:1fr}.message-schedule-fields{grid-column:1;padding-left:24px}.message-schedule-fields .ant-picker,.message-schedule-fields .ant-picker+.ant-picker{flex:1 1 120px;width:auto}.message-send-action{width:100%}.message-send-action .ant-btn{flex:1;min-width:0}.message-image-row{flex-wrap:wrap}.special-character-grid{grid-template-columns:repeat(6,28px)}.ant-drawer .ant-drawer-content-wrapper{width:100vw!important}.ant-drawer .ant-drawer-footer .overlay-footer-actions{align-items:stretch}.ant-drawer .ant-drawer-footer .overlay-footer-actions .ant-btn{flex:1}.postcode-search-modal .ant-modal-body>div{min-height:min(480px,68vh)}}@media(max-width:640px){.course-management-modal .ant-modal-footer>.ant-flex{align-items:stretch;flex-direction:column-reverse;gap:8px}.course-management-modal .ant-modal-footer>.ant-flex>.ant-space,.course-management-modal .ant-modal-footer>.ant-flex>div{width:100%}}.onsite-payment-modal .ant-modal-body{max-height:min(68vh,620px);overflow-y:auto}.onsite-payment-body{display:grid;gap:20px}.onsite-payment-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.onsite-payment-heading>div{display:grid;gap:2px}.onsite-payment-heading strong{color:#172033;font-size:18px;line-height:26px}.onsite-payment-heading span{color:#7a8797;font-size:12px}.onsite-payment-heading .ant-tag{margin-inline-end:0}.onsite-payment-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;overflow:hidden;border:1px solid #dfe4ea;border-radius:8px}.onsite-payment-summary>div{display:grid;grid-template-columns:84px minmax(0,1fr);min-height:44px}.onsite-payment-summary>div+div{border-left:1px solid #e8ebef}.onsite-payment-summary dt,.onsite-payment-summary dd{display:flex;align-items:center;margin:0;padding:10px 11px}.onsite-payment-summary dt{background:#f7f8fa;color:#596675;font-size:12px;font-weight:700}.onsite-payment-summary dd{min-width:0;color:#253247;font-size:13px;font-weight:600}.onsite-payment-section{display:grid;gap:12px}.onsite-payment-section h3{margin:0;color:#253247;font-size:15px;font-weight:700}.onsite-payment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.onsite-payment-form .ant-form-item{margin-bottom:0}.onsite-payment-form .ant-form-item-label>label{height:auto;color:#52606d;font-size:13px;font-weight:700}.onsite-payment-wide{grid-column:1 / -1}.payment-invoice-composer .invoice-composer-confirm{gap:16px}.invoice-composer-confirm-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.invoice-composer-confirm-heading>div{display:grid;gap:2px}.invoice-composer-confirm-heading strong{color:#172033;font-size:18px;line-height:26px}.invoice-composer-confirm-heading span{color:#7a8797;font-size:12px}.invoice-composer-confirm-heading .ant-tag{margin-inline-end:0}.invoice-composer-confirm-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;overflow:hidden;border:1px solid #dfe4ea;border-radius:8px}.invoice-composer-confirm-info>div{min-width:0}.invoice-composer-confirm-info>div+div{border-left:1px solid #e8ebef}.invoice-composer-confirm-info dt{padding:8px 11px;background:#f7f8fa;color:#596675;font-size:12px;font-weight:700}.invoice-composer-confirm-info dd{min-height:40px;margin:0;padding:10px 11px;color:#253247;font-size:13px;font-weight:600;overflow-wrap:anywhere}.payment-invoice-composer .invoice-composer-confirm-items{display:grid;gap:10px;padding:0;border:0}.invoice-composer-confirm-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.invoice-composer-confirm-section-heading h3{margin:0;color:#253247;font-size:15px;font-weight:700}.invoice-composer-confirm-section-heading span{color:#7a8797;font-size:12px}.invoice-composer-confirm-items>div:last-child{overflow:hidden;border:1px solid #dfe4ea;border-radius:8px}.invoice-composer-confirm-items .invoice-composer-confirm-row{min-height:42px;padding:9px 12px}.invoice-composer-confirm-items .invoice-composer-confirm-row+.invoice-composer-confirm-row{border-top:1px solid #e8ebef}.payment-invoice-composer .invoice-composer-confirm-total{padding:13px 14px;border:1px solid #b9d7ff;border-radius:8px;background:#f5faff}.payment-invoice-composer .invoice-composer-confirm-total strong{color:#1677ff;font-size:18px;font-variant-numeric:tabular-nums}@media(max-width:640px){.onsite-payment-summary,.invoice-composer-confirm-info{grid-template-columns:1fr}.onsite-payment-summary>div+div,.invoice-composer-confirm-info>div+div{border-top:1px solid #e8ebef;border-left:0}.onsite-payment-form{grid-template-columns:1fr}.onsite-payment-wide{grid-column:auto}}.academy-info-card .ant-card-body{padding:0 16px 16px}.academy-info-table-wrap{overflow-x:auto;border:1px solid #dfe4ea;border-radius:8px}.academy-info-table{min-width:680px;border-top:0}.academy-info-table .course-detail-section-row th,.academy-info-table .course-detail-section-row:first-child th{padding:10px 12px;border-bottom:1px solid #dfe4ea;background:#f7f8fa;color:#253247;font-size:13px}.academy-info-table tbody tr:last-child>*{border-bottom:0}.academy-info-table th[scope=row]{background:#fafbfc}.academy-info-table td{background:#fff}.academy-settings-card .ant-card-body{display:block;padding:0}.academy-settings-card .academy-tabs{margin:0}.academy-settings-card .academy-tabs>.ant-tabs-nav{margin:0;padding:0 16px}.academy-settings-card .academy-tabs>.ant-tabs-nav:before{border-bottom-color:#edf0f3}.academy-settings-card .academy-tabs .ant-tabs-tab{padding-block:13px;color:#64748b;font-size:13px;font-weight:600}.academy-settings-card .academy-tabs .ant-tabs-tab-active .ant-tabs-tab-btn{font-weight:700}.academy-settings-card .academy-tabs>.ant-tabs-content-holder{padding:16px}.academy-settings-card .academy-tab-panel{gap:12px}.academy-settings-card .section-toolbar{margin-bottom:0}@media(max-width:640px){.academy-info-card .ant-card-body{padding:0 14px 14px}.academy-settings-card .academy-tabs>.ant-tabs-nav{padding-inline:14px}.academy-settings-card .academy-tabs>.ant-tabs-content-holder{padding:14px}}.exam-period-context-card .ant-card-body{padding:12px 16px}.exam-period-context-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px}.exam-period-context-bar>.ant-btn{padding-inline:4px 10px;color:#52606d}.exam-period-context-title{display:grid;min-width:0;gap:2px}.exam-period-context-title strong{overflow:hidden;color:#253247;font-size:16px;line-height:24px;text-overflow:ellipsis;white-space:nowrap}.exam-period-context-title span{color:#8a96a5;font-size:12px}.exam-period-context-actions{display:flex;align-items:center;gap:8px}.exam-period-month-selector{width:248px}.exam-calendar-card .ant-card-body{gap:10px;padding-top:14px}.exam-period-description{margin:0;color:#7a8797;font-size:12px}.exam-period-calendar-scroll{min-width:0;overflow-x:auto;border:1px solid #e5e9ef;border-radius:8px;overscroll-behavior-inline:contain}.exam-period-calendar-scroll>.ant-picker-calendar{min-width:760px}.exam-period-calendar.ant-picker-calendar.ant-picker-calendar-full .ant-picker-panel{border-top:0}.exam-period-calendar .ant-picker-body{padding:0 8px 8px}.exam-calendar-cell{border-radius:6px}.exam-calendar-tag{border-radius:4px}.exam-period-list-table .ant-btn{white-space:nowrap}.exam-period-form{display:grid;gap:22px}.exam-period-form-section{display:grid;gap:12px}.exam-period-form-section+.exam-period-form-section{padding-top:20px;border-top:1px solid #edf0f3}.exam-period-form-section>h3,.exam-period-form-section-heading h3{margin:0;color:#253247;font-size:15px;font-weight:700}.exam-period-form-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.exam-period-form-section-heading span{color:#8a96a5;font-size:12px}.exam-period-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 128px;column-gap:12px}.exam-period-form-grid .ant-form-item{margin-bottom:0}.exam-period-form-wide{grid-column:1 / -1}.exam-period-drawer .ant-form-item-label>label{height:auto;color:#52606d;font-size:13px;font-weight:700}.exam-day-plan-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.exam-day-plan-row{display:grid;align-content:start;gap:10px;padding:13px;border:1px solid #dfe4ea;border-radius:8px;background:#fff}.exam-day-plan-date{padding-bottom:9px;border-bottom:1px solid #edf0f3;color:#253247;font-size:13px;line-height:20px}.exam-day-plan-field{display:grid;grid-template-columns:66px minmax(0,1fr);align-items:center;gap:7px;margin:0}.exam-day-plan-field>span{color:#52606d;font-size:11px;font-weight:700;line-height:18px;white-space:nowrap}.exam-day-plan-field .ant-input{min-width:0}@media(max-width:640px){.exam-day-plan-list{grid-template-columns:1fr}}@media(max-width:720px){.exam-period-context-bar{grid-template-columns:1fr;align-items:stretch}.exam-period-context-bar>.ant-btn{justify-self:start}.exam-period-context-actions{align-items:stretch;flex-direction:column}.exam-period-month-selector{width:100%}.exam-period-context-actions>.ant-btn{width:100%}}@media(max-width:520px){.exam-period-form-grid{grid-template-columns:1fr;gap:12px}.exam-period-form-wide{grid-column:auto}.exam-day-plan-row{padding:12px}}.exam-period-calendar-scroll>.ant-picker-calendar{min-width:720px}.exam-period-calendar .ant-picker-content{border-collapse:separate;border-spacing:0}.exam-period-calendar .ant-picker-content thead th{height:38px;padding:8px 12px;border-right:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;background:#fafafa;color:#8c8c8c;font-size:12px;font-weight:700;text-align:left}.exam-period-calendar .ant-picker-content thead th:first-child,.exam-period-calendar .ant-picker-content thead th:last-child{color:#ff4d4f}.exam-period-calendar .ant-picker-content thead th:last-child{border-right:0}.exam-period-calendar .ant-picker-cell{padding:0!important;border-right:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;vertical-align:top}.exam-period-calendar .ant-picker-cell:nth-child(7n){border-right:0}.exam-period-calendar .ant-picker-content tbody tr:last-child .ant-picker-cell{border-bottom:0}.exam-period-calendar .ant-picker-calendar-date{border-top:0!important;background:#fff}.exam-calendar-cell{min-height:118px;padding:8px 12px 12px;border-radius:0;background:#fff}.exam-calendar-cell.is-selected{background:#e6f4ff;outline:2px solid #1677ff;outline-offset:-2px}.exam-calendar-cell.is-today .exam-calendar-date{display:inline-grid;width:24px;height:24px;margin-bottom:6px;place-items:center;border-radius:50%;background:#1677ff;color:#fff;font-weight:700}.exam-period-calendar .ant-picker-cell:nth-child(7n+1) .exam-calendar-date,.exam-period-calendar .ant-picker-cell:nth-child(7n) .exam-calendar-date{color:#ff4d4f}.exam-calendar-tag{display:block;width:100%;height:20px;margin:0;padding-inline:6px;overflow:hidden;border:0;border-radius:999px;font-size:12px;font-weight:600;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.exam-period-support-grid .section-toolbar{margin-bottom:0}.payment-action-modal .ant-modal-body{max-height:min(68vh,620px);overflow-y:auto}.payment-action-body,.payment-refund-body{display:grid;gap:20px}.payment-action-context{display:grid;gap:12px}.payment-action-context-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-action-context-heading>div{display:grid;gap:2px}.payment-action-context-heading strong{color:#172033;font-size:18px;line-height:26px}.payment-action-context-heading span{color:#7a8797;font-size:12px}.payment-action-context-heading .ant-tag{margin-inline-end:0}.payment-action-context-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;overflow:hidden;border:1px solid #dfe4ea;border-radius:8px}.payment-action-context-info>div{min-width:0}.payment-action-context-info>div+div{border-left:1px solid #e8ebef}.payment-action-context-info dt{padding:8px 11px;background:#f7f8fa;color:#596675;font-size:12px;font-weight:700}.payment-action-context-info dd{min-height:40px;margin:0;padding:10px 11px;color:#253247;font-size:13px;font-weight:600}.payment-action-section{display:grid;gap:12px}.payment-action-section h3,.payment-refund-section h3{margin:0;color:#253247;font-size:15px;font-weight:700}.payment-action-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.payment-action-form .ant-form-item,.payment-extension-form .ant-form-item{margin-bottom:0}.payment-action-form .ant-form-item-label>label,.payment-extension-form .ant-form-item-label>label,.payment-refund-drawer .ant-form-item-label>label{height:auto;color:#52606d;font-size:13px;font-weight:700}.payment-action-wide{grid-column:1 / -1}.payment-due-date-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid #dfe4ea;border-radius:8px}.payment-due-date-comparison>div{display:grid;gap:6px;padding:11px 12px}.payment-due-date-comparison>div+div{border-left:1px solid #e8ebef}.payment-due-date-comparison span{color:#7a8797;font-size:12px;font-weight:700}.payment-due-date-comparison strong{display:flex;align-items:center;min-height:32px;color:#253247;font-size:14px}.payment-extension-form{margin-top:2px}.payment-refund-form{display:grid;gap:22px;margin-top:0}.payment-refund-section{display:grid;gap:12px}.payment-refund-section+.payment-refund-section{padding-top:20px;border-top:1px solid #edf0f3}.payment-refund-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.payment-refund-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-refund-grid .ant-form-item{margin-bottom:0}.payment-refund-wide{grid-column:1 / -1}.payment-refund-suggestion-action{display:flex;align-items:end}.payment-refund-suggestion-action .ant-btn{width:100%}.payment-refund-suggestion{margin:0;padding:10px 12px;border:1px solid #d8e0ea;border-radius:8px;background:#fafcff;color:#64748b;font-size:12px;line-height:19px}@media(max-width:640px){.payment-action-context-info,.payment-action-form,.payment-due-date-comparison,.payment-refund-grid,.payment-refund-grid.three{grid-template-columns:1fr}.payment-action-context-info>div+div,.payment-due-date-comparison>div+div{border-top:1px solid #e8ebef;border-left:0}.payment-action-wide,.payment-refund-wide{grid-column:auto}}.app-status-tag.ant-tag{min-width:44px;margin-inline-end:0;padding-inline:7px;border-radius:999px;font-size:11px;font-weight:600;line-height:20px;text-align:center;white-space:nowrap}.app-status-tag.is-neutral{color:#64748b;border-color:#d8dee7;background:#f7f8fa}.app-empty-state.ant-empty{margin-block:30px}.app-empty-state.is-compact.ant-empty{margin-block:18px}.app-empty-state .ant-empty-image{height:40px;margin-bottom:9px;opacity:.62}.app-empty-state .ant-empty-description{color:#7b8797;font-size:12px;line-height:20px}.app-empty-state .ant-empty-footer{margin-top:10px}.app-content-loading{min-height:150px;display:grid;place-content:center;justify-items:center;gap:10px;color:#7b8797;font-size:12px}.ant-alert{border-width:1px;box-shadow:none}.ant-alert-info{border-color:#cfe1f7;background:#f5f9ff}.ant-alert-warning{border-color:#f1d9a7;background:#fffaf0}.ant-alert-error{border-color:#efc5c8;background:#fff7f7}.ant-alert-success{border-color:#bfe1cd;background:#f4fbf7}.section-toolbar{min-height:32px;margin-bottom:0}.academy-tab-panel>.section-toolbar{margin-bottom:0}.section-toolbar>h3{flex:0 1 auto}.section-toolbar-actions,.archive-list-actions,.modal-footer-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.section-toolbar-actions .ant-space-item,.modal-footer-actions .ant-space-item{display:flex}.section-toolbar-actions .ant-btn,.section-toolbar-primary,.archive-list-actions .ant-btn{min-height:32px}.section-toolbar .management-list-count{margin-inline-end:2px}.modal-footer-actions{width:100%}.ant-modal-footer>.modal-footer-actions{justify-content:flex-end}.overlay-footer-actions>.ant-btn-dangerous,.modal-footer-actions>.ant-btn-dangerous{margin-inline-start:2px}.academy-management-card .ant-card-body>.academy-tab-panel{gap:12px}@media(max-width:640px){.section-toolbar{min-height:0;align-items:flex-start;flex-wrap:wrap;gap:8px 10px}.section-toolbar>.section-toolbar-actions,.section-toolbar>.archive-list-actions{width:100%;justify-content:flex-end}.section-toolbar>.section-toolbar-primary,.section-toolbar>.ant-btn{margin-inline-start:auto}.calendar-section-toolbar>.section-toolbar-actions{width:100%}.calendar-toolbar-actions .ant-space-item{flex:1}.calendar-toolbar-actions .ant-btn{width:100%}.exam-period-context-actions{width:100%;align-items:stretch;flex-wrap:wrap}.exam-period-context-actions .payment-period-selector{flex:1 1 100%}.exam-period-context-actions>.ant-btn{flex:1 1 auto}.modal-footer-actions{align-items:stretch}.modal-footer-actions .ant-space-item,.modal-footer-actions .ant-btn{flex:1;min-width:0}}.payment-list-heading-toolbar{align-items:center}.payment-list-filter-bar{display:flex;align-items:center;justify-content:flex-end;gap:8px}.payment-list-search.ant-input-affix-wrapper{width:220px;height:32px}.payment-history-navigation.ant-segmented{padding:4px;border:1px solid #dfe5ec;border-radius:10px;background:#f4f6f8}.payment-history-navigation .ant-segmented-group{gap:4px}.payment-history-navigation .ant-segmented-item{min-height:40px;border-radius:7px;color:#64748b;font-size:13px}.payment-history-navigation .ant-segmented-item-label{display:flex;min-height:40px;align-items:center;justify-content:center;gap:7px;padding:0 16px}.payment-history-navigation .ant-segmented-item-label strong{min-width:22px;padding:1px 7px;border-radius:999px;background:#e8edf3;color:#64748b;font-size:11px;line-height:20px}.payment-history-navigation .ant-segmented-item-selected{color:#1f5fbf;font-weight:700;box-shadow:0 1px 4px #0f172a14}.payment-history-navigation .ant-segmented-item-selected .ant-segmented-item-label strong{background:#e7f1ff;color:#1677ff}.payment-method-filter-toolbar{display:flex;min-height:44px;align-items:center;justify-content:flex-start;gap:12px;padding:8px 12px;border:1px solid #e5eaf0;border-radius:8px;background:#fafbfc}.payment-method-filter-toolbar>span{color:#596675;font-size:12px;font-weight:700;white-space:nowrap}.payment-method-filter-toolbar .ant-segmented{background:#edf1f5}.payment-selection-toolbar{display:flex;min-height:54px;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #e1e7ee;border-radius:8px;background:#fafbfc}.payment-selection-toolbar.has-selection{border-color:#b9d5fb;background:#f4f8ff}.payment-selection-toolbar>div{display:flex;align-items:baseline;gap:7px}.payment-selection-toolbar span{color:#64748b;font-size:12px;font-weight:600}.payment-selection-toolbar strong{color:#1677ff;font-size:15px}.payment-batch-confirm-page-card .payment-batch-confirm-body{display:grid;grid-template-columns:minmax(330px,380px) minmax(0,1fr);grid-template-areas:"preview editor";align-items:stretch;gap:0;overflow:hidden;border:1px solid #dfe5ec;border-radius:12px;background:#fff;box-shadow:0 6px 18px #0f172a0f}.payment-batch-confirm-page-card .payment-batch-preview{grid-area:preview;position:relative;top:auto;align-self:stretch;margin:0;padding:24px;border:0;border-right:1px solid #dfe5ec;border-radius:0;background:#f4f6f9;box-shadow:none}.payment-batch-confirm-page-card .payment-batch-editor-card{grid-area:editor;min-width:0;padding:24px;border:0;border-radius:0;background:#fff;box-shadow:none}.payment-batch-confirm-page-card .payment-batch-preview-card{border-color:#dce3eb;background:#fff;box-shadow:0 4px 12px #0f172a0f}.payment-batch-editor-card .payment-batch-send-footer{margin:22px -24px -24px;padding:16px 24px;background:#f8fafc}@media(max-width:820px){.payment-overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-list-heading-toolbar{align-items:stretch;flex-direction:column}.payment-list-filter-bar{width:100%;justify-content:stretch}.payment-list-search.ant-input-affix-wrapper{flex:1;width:auto}.payment-history-navigation .ant-segmented-item-label{padding-inline:8px}.payment-batch-confirm-page-card .payment-batch-confirm-body{display:grid;grid-template-columns:1fr;grid-template-areas:"editor" "preview"}.payment-batch-confirm-page-card .payment-batch-preview{border-top:1px solid #dfe5ec;border-right:0}.payment-batch-confirm-page-card .payment-batch-editor-card{padding:18px}.payment-batch-editor-card .payment-batch-send-footer{margin:18px -18px -18px;padding:14px 18px}}@media(max-width:540px){.payment-overview-metrics{grid-template-columns:1fr}.payment-overview-legend{align-items:flex-start;flex-direction:column;gap:6px}.payment-list-filter-bar{align-items:stretch;flex-direction:column}.payment-list-search.ant-input-affix-wrapper,.payment-list-filter-bar .ant-btn{width:100%}.payment-history-navigation .ant-segmented-item-label{gap:4px;padding-inline:4px;font-size:12px}.payment-history-navigation .ant-segmented-item-label strong{min-width:18px;padding-inline:5px}.payment-method-filter-toolbar{align-items:stretch;flex-direction:column}.payment-method-filter-toolbar .ant-segmented,.payment-method-filter-toolbar .ant-segmented-group{width:100%}.payment-method-filter-toolbar .ant-segmented-item{flex:1}.payment-selection-toolbar{align-items:stretch;flex-direction:column}.payment-selection-toolbar .ant-btn{width:100%}}.exam-period-context-card .ant-card-body{padding:14px 16px}.exam-period-context-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px}.exam-period-context-identity{display:flex;min-width:0;align-items:center;gap:12px}.exam-period-context-identity>.ant-btn{flex:0 0 auto;padding-inline:4px 10px;color:#52606d}.exam-period-context-identity>.ant-btn:after{content:"";width:1px;height:28px;margin-left:10px;background:#e2e7ed}.exam-period-context-title strong{font-size:17px;font-weight:700}.exam-period-context-actions{justify-content:flex-end}.exam-period-context-actions>.ant-btn-primary{min-width:132px}.exam-calendar-card .ant-card-body{gap:14px;padding:16px}.exam-calendar-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.exam-calendar-heading>div{display:grid;gap:3px}.exam-calendar-heading h3{margin:0;color:var(--ink);font-size:15px;font-weight:600;line-height:22px}.exam-calendar-drag-hint{padding:5px 9px;border-radius:6px;background:#f3f6f9;color:#64748b;font-size:11px;white-space:nowrap}.exam-period-calendar-scroll{border-color:#d9d9d9;background:#fff}.exam-period-calendar .ant-picker-content thead th{background:#fafafa}.exam-period-calendar .ant-picker-cell:hover .exam-calendar-cell{background:#f7faff}.exam-calendar-cell{min-height:118px;padding:8px 12px 12px}.exam-calendar-date{display:block;min-height:24px;margin-bottom:6px;font-size:12px;font-weight:500;line-height:24px}.exam-calendar-items{gap:3px}.exam-calendar-tag{height:22px;padding-inline:7px;line-height:22px}.exam-period-support-grid{display:grid;grid-template-columns:minmax(320px,2fr) minmax(0,3fr);align-items:start;gap:16px}.exam-period-support-grid>.ant-card{min-width:0}.exam-period-support-grid .ant-card-body{padding:16px}.exam-support-heading{display:grid;gap:2px}.exam-support-heading h3{margin:0}.exam-support-heading span{color:#8a96a5;font-size:11px}.exam-period-list-card .ant-table,.exam-period-table-card .ant-table{border:1px solid #e5e9ef;border-radius:8px}.exam-period-school-name{color:#263547;font-size:12px}.exam-period-date-range{display:inline-flex;align-items:center;gap:5px;color:#52606d;font-size:11px;white-space:nowrap}.exam-period-date-range i{color:#a1aab7;font-style:normal}.exam-period-list-table .ant-table-tbody>tr:hover>td,.exam-period-table .ant-table-tbody>tr:hover>td{background:#f5f9ff!important}.exam-period-table .ant-table-thead>tr>th:first-child,.exam-period-table .ant-table-tbody>tr>td:first-child{background:#fafbfc}.exam-cell-plan{min-height:34px;display:grid;align-content:center;gap:1px;padding:5px 7px;border-radius:6px}@media(max-width:960px){.exam-period-support-grid{grid-template-columns:1fr}}@media(max-width:720px){.exam-period-context-bar{grid-template-columns:1fr;gap:14px}.exam-period-context-identity{align-items:flex-start}.exam-period-context-identity>.ant-btn:after{display:none}.exam-period-context-actions{width:100%}.exam-calendar-heading{flex-direction:column}.exam-calendar-drag-hint{white-space:normal}}.promotion-back-row{display:flex;align-items:center}.promotion-back-row .ant-btn{height:34px;padding-inline:11px 13px;border-color:#d8dee7;color:#52606d;font-size:12px;font-weight:600}.promotion-period-context{display:flex;min-height:82px;align-items:center;justify-content:flex-start;gap:20px;padding:16px 20px;border:1px solid #e1e6ec;border-radius:var(--radius-card);background:#fff;box-shadow:var(--shadow)}.promotion-context-identity{display:grid;min-width:0;gap:2px;padding-right:20px;border-right:1px solid #e2e7ed}.promotion-context-identity strong{color:#253247;font-size:17px;line-height:24px}.promotion-context-identity span{color:#7b8797;font-size:12px}.promotion-year-context{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-start}.promotion-overview-card .ant-card-body{padding:0;overflow:hidden}.promotion-overview-header{padding:16px 20px}.promotion-overview-header>div{display:grid;gap:2px}.promotion-overview-header h3{margin:0;color:#253247;font-size:15px;font-weight:700}.promotion-overview-header span{color:#8a96a5;font-size:12px}.promotion-overview-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border-top:1px solid #e5eaf0;background:#e5eaf0}.promotion-overview-metric{display:grid;min-width:0;gap:5px;padding:16px 20px;background:#fff}.promotion-overview-metric>span{color:#667085;font-size:12px;font-weight:700}.promotion-overview-metric>strong{color:#253247;font-size:20px;line-height:26px}.promotion-overview-metric.is-auto>strong{color:#1677ff}.promotion-overview-metric.is-pending>strong{color:#d48806}.promotion-overview-metric.is-reserved>strong{color:#389e0d}.promotion-workspace-card .ant-card-body{padding:16px}.promotion-workspace-card .promotion-tabs>.ant-tabs-nav{margin-bottom:16px}.promotion-target-workspace{display:grid;min-width:0;gap:14px}.promotion-target-segmented{justify-self:start;max-width:100%}.promotion-target-segmented .ant-segmented-item-label{min-height:30px;padding-inline:12px;line-height:30px}.promotion-target-segmented .ant-segmented-item-label span{display:inline-flex;align-items:center;gap:6px}.promotion-target-segmented .ant-segmented-item-label strong{color:#1677ff;font-size:11px}.promotion-target-heading{display:flex;min-width:0;align-items:flex-end;justify-content:space-between;gap:16px;padding-top:2px}.promotion-target-heading>div{display:grid;min-width:0;gap:2px}.promotion-target-heading h3{margin:0;color:#253247;font-size:15px}.promotion-target-heading span{color:#8a96a5;font-size:11px}.promotion-target-heading>strong{flex:0 0 auto;color:#667085;font-size:12px;font-weight:600}@media(max-width:820px){.promotion-overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.promotion-period-context{align-items:stretch;flex-direction:column;gap:14px;padding:16px}.promotion-context-identity{padding-right:0;padding-bottom:14px;border-right:0;border-bottom:1px solid #e2e7ed}.promotion-year-context{width:100%;justify-content:flex-start}.promotion-year-select{flex:1;width:auto}.promotion-target-segmented{width:100%;overflow-x:auto}.promotion-target-segmented .ant-segmented-group{min-width:max-content}}@media(max-width:520px){.promotion-overview-metrics{grid-template-columns:1fr}.promotion-target-heading{align-items:flex-start;flex-direction:column;gap:6px}}.student-editor-card-title{display:grid;gap:2px}.student-editor-card-title strong{color:#253247;font-size:15px;font-weight:600}.student-editor-card-title span{color:#8a96a5;font-size:11px;font-weight:400}.student-editor-card .ant-card-body{padding:18px 20px}.student-editor-form{gap:0}.student-editor-required-note{margin-bottom:18px;padding:8px 10px;border-radius:6px;background:#f7f9fb}.student-editor-section{padding:0 0 22px;border:0;border-bottom:1px solid #e5eaf0;border-radius:0;background:transparent}.student-editor-section+.student-editor-section{padding-top:22px}.student-editor-section:last-of-type{border-bottom:0}.student-editor-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.student-editor-section-heading>div{display:grid;gap:2px}.student-editor-section-heading h3{margin:0}.student-editor-section-heading p{margin:0;color:#8a96a5;font-size:11px;line-height:18px}.student-editor-section-heading>span{padding:3px 7px;border-radius:999px;background:#eef4fb;color:#3971aa;font-size:10px;font-weight:700;white-space:nowrap}.student-editor-actions{margin-top:22px}@media(max-width:720px){.student-editor-card .ant-card-body{padding:16px}.student-editor-section{padding-bottom:18px}.student-editor-section+.student-editor-section{padding-top:18px}}.academy-calendar-navigation{display:flex;align-items:center;gap:8px}.academy-calendar-today.ant-btn{min-width:54px;height:42px;border-color:#d8dee7;background:#fff;color:#52606d;font-weight:600}.academy-calendar-today.ant-btn:hover{border-color:#91caff;background:#f5f9ff;color:#1677ff}.academy-calendar-create.ant-btn{min-width:112px;height:38px;font-weight:700}@media(max-width:640px){.academy-calendar-navigation{width:100%;align-items:stretch}.academy-calendar-navigation .academy-calendar-period-selector{flex:1;width:auto}.academy-calendar-today.ant-btn{height:42px}.academy-calendar-create.ant-btn{width:100%;height:38px;margin-inline-start:0}}.timetable-workspace{display:grid;min-width:0;gap:10px}.timetable-teacher-legend{display:flex;min-height:36px;align-items:center;gap:12px;padding:7px 10px;border:1px solid #e2e7ed;border-radius:8px;background:#fafbfc}.timetable-legend-label{flex:0 0 auto;color:#596675;font-size:11px;font-weight:700}.timetable-legend-items{display:flex;min-width:0;flex-wrap:wrap;gap:6px 14px}.timetable-legend-item{display:inline-flex;align-items:center;gap:5px;color:#52606d;font-size:11px;white-space:nowrap}.timetable-legend-item i{width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 2px #fff}.timetable-course-block{border-width:1px;border-left-width:5px;box-shadow:0 2px 5px #0f172a14;transition:box-shadow .15s ease,transform .15s ease}.timetable-course-block:hover{z-index:3;box-shadow:0 5px 12px #0f172a29;transform:translateY(-1px)}.timetable-course-block .ant-card-body{padding:5px 7px}.timetable-course-block-content{grid-template-rows:minmax(0,auto) minmax(0,auto);gap:3px}.timetable-course-block-title-row,.timetable-course-block-meta-row{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:4px}.timetable-course-subject.ant-typography{color:#1f2d3d;font-size:11px!important;font-weight:800}.timetable-course-time{flex:0 0 auto;color:#52606d;font-size:9px;font-weight:700}.timetable-course-class.ant-typography{flex:1;min-width:0;color:#52606d;font-size:10px}.timetable-teacher-tag{flex:0 0 auto;max-width:54px;overflow:hidden;border-radius:999px;font-size:9px;line-height:15px;text-overflow:ellipsis;white-space:nowrap}.timetable-course-block.is-overlap .timetable-course-time{display:none}.timetable-course-block.is-overlap .timetable-teacher-tag{max-width:40px;padding-inline:3px}@media(max-width:640px){.timetable-teacher-legend{align-items:flex-start;flex-direction:column;gap:6px}.timetable-legend-items{gap:5px 12px}}@media(prefers-reduced-motion:reduce){.timetable-course-block{transition:none}.timetable-course-block:hover{transform:none}}.section-heading-meta{display:grid;gap:2px;min-width:0}.section-heading-meta h3,.section-heading-meta p{margin:0}.section-heading-meta>span{color:#8c96a5;font-size:12px;font-weight:400;line-height:18px}.exam-period-calendar .ant-picker-content thead th:first-child{color:#d84a4a}.exam-period-calendar .ant-picker-content thead th:last-child{color:#3f6fa6}.exam-period-calendar .ant-picker-cell:nth-child(7n+1) .exam-calendar-date{color:#d84a4a}.exam-period-calendar .ant-picker-cell:nth-child(7n) .exam-calendar-date{color:#3f6fa6}.exam-period-calendar .ant-picker-cell .is-today .exam-calendar-date{color:#fff}.exam-period-calendar .ant-picker-cell:hover .exam-calendar-cell{background:#f5f8fc}.exam-calendar-cell{transition:background-color .16s ease,box-shadow .16s ease}.exam-calendar-cell.is-selected{background:#eaf4ff;outline:0;box-shadow:inset 0 0 0 1px #1677ff}.exam-calendar-cell.is-outside{background:#fafafa;color:#00000040}.exam-calendar-date{font-weight:500}.exam-calendar-items{display:flex;flex-direction:column;gap:4px}.exam-calendar-period{display:block;position:relative;z-index:1;box-sizing:border-box;width:100%;height:22px;padding-inline:7px;overflow:hidden;border-radius:0;background:color-mix(in srgb,var(--period-color) 18%,#fff);color:#344054;font-size:12px;font-weight:600;line-height:22px;text-overflow:ellipsis;white-space:nowrap}.exam-calendar-period.is-start{width:calc(100% + 12px);border-radius:4px 0 0 4px;box-shadow:inset 3px 0 0 var(--period-color)}.exam-calendar-period.is-middle{width:calc(100% + 24px);transform:translate(-12px)}.exam-calendar-period.is-end{width:calc(100% + 12px);transform:translate(-12px);border-radius:0 4px 4px 0}.exam-calendar-period.is-single{border-radius:4px;box-shadow:inset 3px 0 0 var(--period-color)}.monthly-calendar-scroll{min-width:0;overflow-x:auto;border-radius:8px;overscroll-behavior-inline:contain}.monthly-calendar-grid{display:grid;min-width:720px;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;border:1px solid #d9d9d9;border-radius:8px;background:#fff}.monthly-calendar-weekday{min-width:0;padding:8px 12px;border-right:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;background:#fafafa;color:#8c8c8c;font-size:12px;font-weight:700;text-align:left}.monthly-calendar-weekday:last-child{border-right:0}.monthly-calendar-weekday.is-sunday{color:#d84a4a}.monthly-calendar-weekday.is-saturday{color:#3f6fa6}.monthly-calendar-cell{position:relative;min-width:0;min-height:118px;padding:8px 12px 12px;border:0;border-right:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;background:#fff;color:#253247;font:inherit;text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .16s ease,box-shadow .16s ease}.monthly-calendar-cell:hover{background:#f5f8fc}.monthly-calendar-cell:focus-visible{z-index:3;outline:2px solid #91caff;outline-offset:-2px}.monthly-calendar-cell.is-outside{background:#fafafa;color:#00000040}.monthly-calendar-cell.is-selected{background:#eaf4ff;box-shadow:inset 0 0 0 1px #1677ff}.monthly-calendar-cell.is-sunday .monthly-calendar-date{color:#d84a4a}.monthly-calendar-cell.is-saturday .monthly-calendar-date{color:#3f6fa6}.monthly-calendar-cell.is-last-column{border-right:0}.monthly-calendar-cell.is-last-row{border-bottom:0}.monthly-calendar-date{display:block;min-height:24px;margin-bottom:6px;font-size:12px;font-weight:500;line-height:24px}.monthly-calendar-cell.is-today .monthly-calendar-date{display:inline-grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#1677ff;color:#fff;font-weight:700}.monthly-calendar-cell-content{display:block;min-height:76px}.monthly-calendar-ranges{display:flex;flex-direction:column;gap:4px;margin-top:4px}.monthly-calendar-range{display:block;position:relative;z-index:1;box-sizing:border-box;width:100%;height:22px;padding-inline:7px;overflow:hidden;background:color-mix(in srgb,var(--calendar-range-color) 28%,#fff);color:#344054;font-size:12px;font-weight:600;line-height:22px;pointer-events:none;text-overflow:ellipsis;white-space:nowrap}.monthly-calendar-range.is-start{width:calc(100% + 12px);border-radius:4px 0 0 4px;box-shadow:inset 3px 0 0 var(--calendar-range-color)}.monthly-calendar-range.is-middle{width:calc(100% + 24px);transform:translate(-12px)}.monthly-calendar-range.is-end{width:calc(100% + 12px);transform:translate(-12px);border-radius:0 4px 4px 0}.monthly-calendar-range.is-single{border-radius:4px;box-shadow:inset 3px 0 0 var(--calendar-range-color)}@media(prefers-reduced-motion:reduce){.monthly-calendar-cell{transition:none}}.exam-calendar-workspace{grid-template-columns:minmax(0,1fr) 360px}.exam-calendar-workspace>.ant-card{min-width:0}.exam-period-side-list{max-height:748px;overflow-y:auto}.exam-period-side-list .ant-list-item{padding:12px 0}.exam-period-side-list .ant-list-item:first-child{padding-top:4px}.exam-period-side-row{display:flex;width:100%;min-width:0;align-items:center;justify-content:space-between;gap:10px}.exam-period-side-info{display:grid;min-width:0;gap:4px}.exam-period-side-info strong{display:flex;min-width:0;align-items:center;gap:7px;overflow:hidden;color:#263547;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.exam-period-side-info strong i{width:8px;height:8px;flex:0 0 auto;border-radius:50%}.exam-period-side-info>span{color:#7b8797;font-size:11px;white-space:nowrap}.exam-period-side-info>span em{margin-inline:5px;color:#a1aab7;font-style:normal}.exam-period-side-row>.ant-space{flex:0 0 auto}@media(max-width:1100px){.exam-calendar-workspace{grid-template-columns:1fr}.exam-period-side-list{max-height:none}}@media(max-width:520px){.exam-period-side-row{align-items:flex-start;flex-direction:column}}.exam-period-side-table{overflow:hidden;border:1px solid #e5e9ef;border-radius:8px}.exam-period-side-table .ant-table{font-size:11px}.exam-period-side-table .ant-table-thead>tr>th{padding:8px;background:#fafafa;color:#6f7b8a;font-size:11px}.exam-period-side-table .ant-table-tbody>tr>td{padding:9px 8px;vertical-align:middle}.exam-period-side-table .ant-table-tbody>tr:hover>td{background:#f5f9ff!important}.exam-period-side-school{display:flex;min-width:0;align-items:center;gap:6px}.exam-period-side-school>i{width:7px;height:7px;flex:0 0 auto;border-radius:50%}.exam-period-side-school>strong{min-width:0;overflow:hidden;color:#263547;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.exam-period-side-dates{display:block;overflow:hidden;color:#697586;font-size:10px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.exam-period-side-table .ant-btn-sm{width:28px;height:28px;padding-inline:0}.exam-period-context-identity>.exam-period-back-button.ant-btn{height:34px;padding-inline:11px 13px;border-color:#d8dee7;border-radius:7px;background:#fff;color:#52606d;font-size:12px;font-weight:600;box-shadow:0 1px 2px #0f172a0a}.exam-period-context-identity>.exam-period-back-button.ant-btn:hover{border-color:#91caff;background:#f7faff;color:#1677ff}.exam-period-context-identity>.exam-period-back-button.ant-btn:after{display:none}.exam-period-back-row{display:flex;align-items:center}.exam-period-back-row .exam-period-back-button.ant-btn{height:34px;padding-inline:11px 13px;border-color:#d8dee7;border-radius:7px;background:#fff;color:#52606d;font-size:12px;font-weight:600;box-shadow:0 1px 2px #0f172a0a}.exam-period-back-row .exam-period-back-button.ant-btn:hover{border-color:#91caff;background:#f7faff;color:#1677ff}.exam-calendar-heading-controls{display:grid;flex:0 0 auto;justify-items:end;gap:6px}.exam-calendar-heading-controls .exam-period-month-selector{margin:0}@media(max-width:720px){.exam-calendar-heading-controls{width:100%;justify-items:stretch}.exam-calendar-heading-controls .exam-period-month-selector{width:100%}}.exam-calendar-navigation-row{display:flex;align-items:center;justify-content:flex-start}.exam-calendar-navigation-row .exam-period-month-selector{margin:0}@media(max-width:720px){.exam-calendar-navigation-row .exam-period-month-selector{width:100%}}.payment-resend-notice{margin-bottom:20px;border-color:#ffadd2;background:#fff0f6;box-shadow:0 3px 10px #c41d7f14}.payment-resend-notice .ant-alert-icon{color:#eb2f96}.payment-resend-notice .ant-alert-message{color:#c41d7f;font-weight:700}.payment-resend-notice .ant-alert-description{color:#8c3a62}.payment-resend-footer-note{color:#64748b;font-size:12px}.payment-batch-confirm-page-card .payment-batch-preview{grid-template-rows:auto auto;align-content:start}.payment-batch-confirm-page-card .payment-batch-preview-head,.payment-batch-confirm-page-card .payment-batch-preview-card{width:100%}.payment-batch-confirm-page-card .payment-batch-preview-head>strong{line-height:32px}.payment-batch-confirm-page-card .payment-batch-preview-card section>div{align-items:baseline}.payment-batch-confirm-page-card .payment-batch-preview-card section>div>span{flex:0 0 56px}.payment-batch-confirm-page-card .payment-batch-preview-card section>div>b{min-width:0;flex:1;overflow-wrap:anywhere}.payment-batch-bill-details{display:grid;gap:3px;margin:0;padding:0;list-style:none;color:#475569;line-height:1.45}.payment-batch-bill-details li:before{content:"- ";color:#94a3b8}.payment-batch-editor-card{display:flex;flex-direction:column}.payment-batch-editor-card .payment-batch-send-footer{margin:auto -24px -24px}@media(max-width:820px){.payment-batch-editor-card .payment-batch-send-footer{margin:18px -18px -18px}}.payment-batch-recipient-list{display:grid;gap:10px}.payment-batch-recipient-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-batch-recipient-list-heading>div{display:grid;gap:2px}.payment-batch-recipient-list-heading strong{color:#334155;font-size:13px}.payment-batch-recipient-list-heading span{color:#94a3b8;font-size:11px}.payment-batch-recipient-collapse{border:1px solid #e1e7ee;border-radius:8px;overflow:hidden}.payment-batch-recipient-collapse>.ant-collapse-item{border-bottom-color:#e8edf2}.payment-batch-recipient-collapse>.ant-collapse-item:last-child{border-bottom:0}.payment-batch-recipient-collapse>.ant-collapse-item>.ant-collapse-header{padding:11px 12px;align-items:center}.payment-batch-recipient-collapse .ant-collapse-content-box{padding:0 12px 12px}.payment-batch-recipient-summary{display:flex;min-width:0;flex:1;align-items:center;justify-content:space-between;gap:16px;padding-right:8px}.payment-batch-recipient-summary>div{display:grid;min-width:0;gap:2px}.payment-batch-recipient-summary>div:last-child{justify-items:end;flex:0 0 auto}.payment-batch-recipient-summary strong{color:#334155;font-size:13px}.payment-batch-recipient-summary span{overflow:hidden;color:#7b8794;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.payment-batch-recipient-summary>div:last-child strong{color:#1f5fbf}.payment-batch-item-list{display:grid;gap:6px;padding:10px 12px;border-radius:6px;background:#f8fafc}.payment-batch-item-list .ant-checkbox-wrapper{display:flex;min-width:0;align-items:center;gap:8px;color:#475569;font-size:12px}.payment-batch-item-list .ant-checkbox+span{display:flex;flex:1;min-width:0;align-items:center;justify-content:space-between;gap:12px}.payment-batch-item-list .ant-checkbox+span>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payment-batch-item-list .ant-checkbox+span>strong{flex:0 0 auto;color:#334155}.payment-batch-item-list p{margin:4px 0 0 24px;color:#94a3b8;font-size:11px}@media(max-width:540px){.payment-batch-recipient-summary{align-items:flex-start;flex-direction:column;gap:5px}.payment-batch-recipient-summary>div:last-child{justify-items:start}.payment-batch-recipient-list-heading{align-items:flex-start;flex-direction:column}}.payment-batch-editor-card .payment-batch-recipient-list{margin-bottom:20px}.payment-batch-editor-card .payment-batch-schedule{margin-bottom:2px}.payment-batch-editor-card .payment-batch-send-footer{margin-top:24px}@media(max-width:820px){.payment-batch-editor-card .payment-batch-recipient-list{margin-bottom:16px}.payment-batch-editor-card .payment-batch-send-footer{margin-top:18px}}.payment-batch-recipient-fields{display:grid;grid-template-columns:minmax(90px,1fr) minmax(110px,1.2fr) minmax(135px,1.4fr);min-width:0;gap:18px;margin:0}.payment-batch-recipient-fields>div{display:grid;min-width:0;gap:2px}.payment-batch-recipient-fields dt{color:#94a3b8;font-size:10px;line-height:1.25}.payment-batch-recipient-fields dd{overflow:hidden;margin:0;color:#334155;font-size:12px;font-weight:600;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.payment-batch-recipient-amount{display:grid;flex:0 0 auto;justify-items:center;gap:2px;text-align:center}.payment-batch-recipient-amount span{color:#7b8794;font-size:11px}.payment-batch-recipient-amount strong{color:#1f5fbf;font-size:13px}@media(max-width:700px){.payment-batch-recipient-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 16px}.payment-batch-recipient-fields>div:last-child{grid-column:1 / -1}}@media(max-width:540px){.payment-batch-recipient-fields{grid-template-columns:1fr}.payment-batch-recipient-fields>div:last-child{grid-column:auto}.payment-batch-recipient-amount{justify-items:start}}.payment-batch-recipient-identity{display:grid;min-width:0;gap:6px}.payment-batch-arrears{width:fit-content;padding:3px 7px;border:1px solid #ffd591;border-radius:999px;background:#fff7e6;color:#ad6800;font-size:11px;font-weight:700;line-height:1.25}.payment-batch-recipient-amount .payment-batch-arrears{margin-top:2px}.payments-page .payment-student-name-row{display:inline-flex;align-items:center;gap:6px}.payments-page .payment-student-name-row .ant-tag{margin-inline-end:0}.direct-payment-page{display:grid;gap:16px}.direct-payment-workspace{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);overflow:hidden;border:1px solid #dfe5ec;border-radius:var(--radius-card);background:#fff;box-shadow:var(--shadow)}.direct-payment-preview{padding:24px;border-right:1px solid #dfe5ec;background:#f4f6f9}.direct-payment-preview-head,.direct-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.direct-payment-preview-head{margin-bottom:14px}.direct-payment-preview-head>strong,.direct-section-heading strong{color:#334155;font-size:13px}.direct-payment-preview-card{display:grid;gap:14px;padding:22px;border:1px solid #dce3eb;border-radius:var(--radius-card);background:#fff;box-shadow:var(--shadow)}.direct-payment-preview-card h3{margin:0;color:#1f2937;font-size:20px}.direct-payment-preview-card section{display:grid;gap:8px;padding:14px;border-radius:10px;background:#fff;box-shadow:0 2px 7px #0f172a0f}.direct-payment-preview-card section>strong{color:#334155;font-size:14px}.direct-payment-preview-card section>div{display:flex;justify-content:space-between;gap:16px;padding-top:8px;border-top:1px solid #edf0f3;color:#64748b;font-size:12px}.direct-payment-preview-card section>div b{color:#1f2937;text-align:right}.direct-payment-preview-card p{margin:0;color:#475569;font-size:13px;line-height:1.65;white-space:pre-wrap}.direct-payment-preview-card>small{color:#94a3b8;font-size:11px}.direct-payment-editor{display:flex;flex-direction:column;padding:24px}.direct-recipient-section{display:grid;gap:10px;margin-bottom:20px}.direct-section-heading>div{display:grid;gap:3px}.direct-section-heading span{color:#94a3b8;font-size:11px}.direct-recipient-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.direct-recipient-summary>div,.direct-recipient-empty{display:grid;gap:3px;padding:10px 12px;border:1px solid #e1e7ee;border-radius:7px;background:#fafcff}.direct-recipient-summary strong{color:#334155;font-size:12px}.direct-recipient-summary span,.direct-recipient-empty{color:#718096;font-size:11px}.direct-payment-editor .ant-form-item{margin-bottom:16px}.direct-payment-editor .ant-form-item-label{padding-bottom:4px}.direct-payment-editor .ant-form-item-label>label{color:#4b5563;font-size:12px;font-weight:700}.direct-payment-editor .ant-picker{width:100%}.direct-payment-period-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.direct-payment-schedule{display:grid;gap:10px;padding:12px;border:1px solid #dfe5ec;border-radius:7px;background:#fbfcfd}.direct-payment-schedule>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#64748b;font-size:12px}.direct-payment-schedule>div .ant-picker{width:142px}.direct-payment-schedule>div .ant-picker-time{width:100px}.direct-payment-schedule .is-invalid{color:#dc2626}.direct-payment-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px -24px -24px;padding:16px 24px;border-top:1px solid #dfe5ec;background:#f8fafc}.direct-payment-footer>div{display:grid;gap:2px}.direct-payment-footer span{color:#64748b;font-size:12px}.direct-payment-footer strong{color:#1f2937;font-size:16px}.scheduled-bill-footer-actions{display:flex;align-items:center;gap:8px}.direct-payment-footer>.ant-btn,.direct-payment-footer .scheduled-bill-footer-actions .ant-btn{min-width:120px;height:36px}.direct-recipient-table{margin-top:14px}@media(max-width:820px){.direct-payment-workspace{grid-template-columns:1fr}.direct-payment-preview{border-right:0;border-bottom:1px solid #dfe5ec}.direct-payment-editor{padding:18px}.direct-payment-footer{margin:18px -18px -18px;padding:14px 18px}}@media(max-width:540px){.direct-recipient-summary,.direct-payment-period-grid{grid-template-columns:1fr}.direct-section-heading{align-items:flex-start;flex-direction:column}.direct-payment-footer{align-items:stretch;flex-direction:column}.direct-payment-footer .ant-btn{width:100%}}.scheduled-bills-filter-panel{display:flex;flex-wrap:wrap;gap:8px}.scheduled-bills-filter-panel .ant-input-affix-wrapper{width:min(100%,290px)}.scheduled-bills-list-section{display:grid;gap:14px}.scheduled-bills-list-section .section-toolbar p{margin:4px 0 0;color:#718096;font-size:12px}@media(max-width:640px){.scheduled-bills-filter-panel>*{width:100%}}.scheduled-bill-item-editor{margin-bottom:18px}.scheduled-bill-item-editor>strong{display:block;margin-bottom:10px;color:#24364f}.scheduled-bill-item-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px}@media(max-width:640px){.scheduled-bill-item-row{grid-template-columns:1fr;gap:0}}.point-management-page{width:100%;min-height:calc(100vh - 132px);align-content:center}.point-management-page>.point-balance-card,.point-management-page>.point-management-notice{width:min(100%,560px);justify-self:center}.point-balance-card .ant-card-body{display:grid;gap:18px;padding:22px}.point-balance-card-header{display:flex;align-items:center;gap:8px;color:#253247;font-size:15px}.point-balance-icon{display:inline-grid;width:30px;height:30px;place-items:center;border-radius:9px;background:#eaf3ff;color:#1677ff}.point-balance-value{display:grid;gap:5px;padding:18px;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff}.point-balance-value>span,.point-balance-checked>span{color:#718096;font-size:12px;font-weight:700}.point-balance-value>strong{color:#1677ff;font-size:30px;line-height:1.1}.point-balance-checked{display:flex;align-items:center;gap:8px}.point-balance-checked time{flex:1;color:#475569;font-size:13px}.point-charge-button{min-height:40px!important}.point-management-notice .ant-card-body{gap:7px}.point-management-notice p{margin:0;color:#667085;font-size:13px;line-height:1.6}@media(max-width:640px){.point-management-page{min-height:auto}.point-balance-checked{align-items:flex-start;flex-wrap:wrap}.point-balance-checked time{flex-basis:calc(100% - 86px)}}.direct-payment-footer>.bill-dispatch-footer-actions{display:flex;align-items:center;gap:8px}.direct-payment-footer .bill-dispatch-footer-actions .ant-btn{min-width:120px;height:36px}.direct-payment-footer .bill-dispatch-footer-actions .ant-btn-primary:not(:disabled),.direct-payment-footer .bill-dispatch-footer-actions .ant-btn-primary:not(:disabled)>span,.direct-payment-footer .bill-dispatch-footer-actions .ant-btn-primary:not(:disabled) svg{color:#fff!important}.payment-management-card .payment-list-heading-toolbar>div:first-child{display:grid;gap:2px}.payment-management-card .payment-list-heading-toolbar h3{margin:0}.payment-management-navigation.ant-segmented{overflow-x:auto}.payment-management-navigation .ant-segmented-group{min-width:650px}.payment-status-detail-button.ant-btn{display:inline-flex;width:auto;height:auto;align-items:center;gap:3px;padding:0;color:#64748b}.payment-status-detail-button.ant-btn:hover{background:transparent;color:#1677ff}.payment-status-detail-button .app-status-tag{margin-inline-end:0}.payment-overdue-trigger.ant-btn{display:inline-flex;height:28px;align-items:center;gap:3px;padding-inline:7px;color:#1f5fbf;font-weight:700}.payment-overdue-trigger.ant-btn:hover{background:#edf4ff}.payment-overdue-popover{width:220px}.payment-overdue-popover>strong{display:block;margin-bottom:8px;color:#334155;font-size:12px}.payment-overdue-popover-list{display:grid;gap:7px}.payment-overdue-popover-list>div,.payment-overdue-popover-total{display:flex;align-items:center;justify-content:space-between;gap:14px;color:#64748b;font-size:12px}.payment-overdue-popover-list b,.payment-overdue-popover-total b{color:#334155;font-weight:700}.payment-overdue-popover-total{margin-top:9px;padding-top:9px;border-top:1px solid #e5eaf0}.payment-management-table .ant-table-cell-row-hover{background:#fafcff!important}@media(max-width:700px){.payment-management-navigation.ant-segmented{display:block;width:100%}.payment-management-navigation .ant-segmented-group{min-width:590px}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#f6f8fb}.workspace-fieldset{border:0;margin:0;padding:0;min-width:0}.workspace-fieldset:disabled{pointer-events:none}
