.edupay-grid{--grid-line:#ccd6e2;--grid-head:#eaf0f7;min-width:0;margin-block:.65rem}.edupay-grid-tools{flex-wrap:wrap;align-items:center;gap:.5rem;margin-block:.55rem;display:flex}.edupay-grid-tools details{position:relative}.edupay-grid-tools details[open]{border:1px solid var(--grid-line);background:#f7faff;padding:.5rem}.edupay-grid-tools details label{gap:.4rem;margin-block:.25rem;display:flex}.edupay-grid-filters{margin-block:.4rem}.edupay-grid-filters>div{flex-wrap:wrap;gap:.5rem;padding-block:.45rem;display:flex}.edupay-grid-filters input{width:9rem}.edupay-grid-viewport{border:1px solid var(--grid-line);overscroll-behavior:contain;max-width:100%;position:relative;overflow:auto}.edupay-grid-viewport table{table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:0;margin:0;font-size:14px}.edupay-grid-viewport :is(td,th){border:0;border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);box-sizing:border-box;vertical-align:middle;text-align:left;padding:4px 8px;position:relative}.edupay-grid-viewport th{background:var(--grid-head);white-space:nowrap;height:44px;padding-right:12px}.edupay-grid-viewport td{background:#fff;line-height:20px}.edupay-grid-viewport :is(td,th).right{text-align:right;font-variant-numeric:tabular-nums}.edupay-grid-viewport :is(td,th).center,.edupay-grid-viewport .edupay-grid-select{text-align:center}.edupay-grid-viewport .edupay-grid-sticky{z-index:2;position:sticky}.edupay-grid-viewport.frozen-header th{z-index:3;position:sticky;top:0}.edupay-grid-viewport.frozen-header th.edupay-grid-sticky{z-index:4}.edupay-grid-sort{font:inherit;color:inherit;cursor:pointer;text-overflow:ellipsis;background:0 0;border:0;max-width:100%;padding:0;overflow:hidden}.edupay-grid-row.selected-row td{background:#eff6ff}.edupay-grid-row.difference td{background:#fffbeb}.edupay-grid-row.difference.selected-row td{background:#e9f1ff}.edupay-grid-row.error td,.edupay-grid-row td.error{background:#fef0ef}.edupay-grid-row td.active-cell{outline-offset:-2px;outline:2px solid #276bb1}.edupay-grid-cell-content{overflow-wrap:anywhere;white-space:pre-wrap;overflow:hidden}.edupay-grid-cell-content .button{max-width:100%;min-height:0;padding:1px 5px}.edupay-grid-cell-content input{width:100%}.edupay-grid-viewport tfoot td{background:#e7f0fc;font-weight:700}.edupay-grid-viewport .edupay-grid-spacer td{border:0;padding:0}.edupay-grid-viewport .edupay-grid-empty{color:#526579;padding:.75rem}.edupay-grid-grip{z-index:1;touch-action:none;display:block;position:absolute}.edupay-grid-grip.column{cursor:col-resize;width:10px;top:0;bottom:0;right:-1px}.edupay-grid-grip.row{cursor:row-resize;height:7px;bottom:-1px;left:0;right:0}.edupay-grid-grip:is(:hover,:focus-visible){opacity:.75;background:#5284bb}.edupay-grid-row td.range-cell{background:#e1effd;box-shadow:inset 0 0 0 1px #9bbde2}:root{font-synthesis:none;color:#131b31;--canvas:#edf2fa;--surface:#fff;--border:#d7e0ee;--muted:#52627b;--ink:#131b31;--nav:#111a32;--accent:#3736b3;--accent-hover:#292892;--focus:#6965ea;background:#edf2fa;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}body{min-width:340px;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}h1,h2,p{margin:0}h1{letter-spacing:-.035em;font-size:clamp(1.65rem,3vw,2.2rem);line-height:1.22}h2{letter-spacing:-.012em;font-size:1.13rem;line-height:1.4}label{gap:7px;min-width:0;font-weight:650;display:grid}input,select{background:var(--surface);width:100%;min-width:0;min-height:36px;color:var(--ink);border:1px solid #cdd8e8;border-radius:6px;padding:6px 10px;font-weight:450}input::placeholder{color:#66758d}select{padding-right:7px}.app-shell{grid-template-columns:218px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;background:var(--nav);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.brand{color:#fff;letter-spacing:-.045em;padding:21px 22px 27px;font-size:1.65rem;font-weight:780}.brand:hover{text-decoration:none}.sidebar nav{gap:5px;padding:0 10px;display:grid}.sidebar nav a{color:#e8edfa;border-radius:8px;align-items:center;gap:12px;padding:12px 13px;display:flex}.sidebar nav a:hover{background:#222d4a;text-decoration:none}.sidebar nav a[aria-current]{color:#fff;background:#4542c0;font-weight:700}.sidebar-footer{color:#dbe4fa;border-top:1px solid #28324b;align-items:center;gap:8px;margin-top:auto;padding:17px 16px;font-size:12px;display:flex}.indicator{background:#54d1a2;border-radius:50%;width:8px;height:8px;display:inline-block}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:8px 26px;display:flex}.breadcrumbs,.identity,.school-identity{align-items:center;gap:11px;min-width:0;display:flex}.breadcrumbs{color:var(--muted);white-space:nowrap}.breadcrumbs strong{color:var(--ink)}.breadcrumbs span{color:#7785a2}.school-identity{color:#1b2a48;gap:7px;font-weight:700}.school-identity svg{flex:none}.role{color:var(--muted);border-left:1px solid var(--border);padding-left:10px;font-size:.88rem}.content{max-width:1550px;margin:0 auto;padding:24px 26px 40px}.page-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-heading p{color:var(--muted);margin-top:6px;line-height:1.6}.panel{border:1px solid var(--border);background:var(--surface);border-radius:10px;box-shadow:0 2px 5px #1c3c6910}.filters{grid-template-columns:repeat(5,minmax(80px,1fr)) auto;align-items:end;gap:12px;margin-bottom:18px;padding:16px;display:grid}.filter-actions{align-items:center;gap:5px;display:flex}.button{white-space:nowrap;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:6px 12px;font-weight:650;display:inline-flex}.primary{background:var(--accent);color:#fff}.primary:hover{background:var(--accent-hover)}.neutral{color:#253450;background:#fff;border-color:#ccd8ea}.neutral:hover{background:#f2f5fb}.plain{color:var(--muted);background:0 0}.plain:hover{color:var(--ink);background:#eef2fa}.table-tools{justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.inline-label{color:var(--muted);white-space:nowrap;align-items:center;gap:7px;font-size:.88rem;display:flex}.inline-label select{min-height:32px}.table-scroll{overflow-x:auto}.results{padding:0 9px}table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.94rem}th{color:#273650;text-align:left;background:#edf2fa;font-size:.88rem}th,td{border-bottom:1px solid #e4ebf5;padding:9px 12px}tbody tr:hover{background:#f7f9fd}td a{font-weight:650}.person-name{align-items:center;gap:9px;font-weight:650;display:inline-flex}.avatar{color:#4936a5;background:#eae4fc;border-radius:50%;place-items:center;width:27px;height:27px;font-size:.87rem;display:grid}.identifier{overflow-wrap:anywhere;font:.95em ui-monospace,Consolas,monospace}.status{border-radius:5px;align-items:center;padding:3px 7px;font-size:.82rem;font-weight:700;display:inline-flex}.status.active{color:#145637;background:#e2f5e9}.status.archived{color:#45546b;background:#edf1f6}.pagination{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;padding:13px 10px;display:flex}.pagination>div{align-items:center;gap:6px;display:flex}.pagination select{width:auto;margin-left:5px}.icon-button,.page-number{min-width:36px;min-height:36px;padding:0}.page-number{background:var(--accent);color:#fff;border-radius:6px;place-items:center;display:grid}.notice{color:#455675;background:#f3f6fb;border-radius:7px;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;padding:17px;display:flex}.notice.warning{color:#8b2b1b;background:#fff2ed}.detail{min-width:0;margin-bottom:16px;padding:16px 18px}.detail>h2{margin-bottom:12px}.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin:0;display:grid}.facts>div{border-top:1px solid #e5edf8;padding:10px 0}dt{color:var(--muted);font-size:.88rem}dd{overflow-wrap:anywhere;margin:6px 0 0;font-weight:580}.back-link{align-items:center;gap:5px;margin-bottom:10px;display:inline-flex}.organization{grid-template-columns:minmax(255px,1fr) minmax(0,1.65fr);align-items:start;gap:14px;display:grid}.tree-panel{min-width:0;padding:16px}.tree-panel h2{margin-bottom:12px}.tree,.tree ul{padding-left:14px;list-style:none}.tree{margin:13px 0 0;padding:0}.tree-row{border-radius:5px;align-items:center;gap:4px;display:flex}.tree-row:hover,.tree-row.selected{background:#eeeffe}.tree-row a{color:#263452;flex:1;justify-content:space-between;align-items:center;gap:5px;min-width:0;padding:7px 6px;display:flex}.tree-row a code{color:#566886;font-size:.77rem}.tree-toggle,.tree-spacer{flex:0 0 25px}.tree-toggle{color:#394969;background:0 0;border:0;place-items:center;padding:5px 0;display:grid}.overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:680px;margin-bottom:14px;display:grid}.metric{color:var(--muted);align-items:start;gap:10px;padding:16px;display:flex}.metric svg{color:var(--accent)}.metric strong{color:var(--ink);margin-top:4px;font-size:1.7rem;display:block}.quick-links{max-width:680px}.quick-links a{border-top:1px solid #e5edf8;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px 3px;display:grid}.login-layout{grid-template-columns:minmax(290px,1fr) minmax(360px,1.45fr);min-height:100vh;display:grid}.login-brand{background:var(--nav);color:#fff;flex-direction:column;justify-content:space-between;padding:38px;display:flex}.login-brand>span{letter-spacing:-.045em;font-size:2rem;font-weight:800}.login-brand>div{margin-bottom:18vh}.login-brand p{color:#d5dff6;margin-top:11px}.login-body{place-items:center;padding:24px;display:grid}.login-form{border:1px solid var(--border);background:#fff;border-radius:12px;gap:15px;width:min(100%,440px);padding:30px;display:grid;box-shadow:0 7px 30px #22386114}.login-form h2{font-size:1.7rem}.login-form p{color:var(--muted)}.mode-chip{color:#4b3f99;background:#eee9fd;border-radius:6px;width:fit-content;padding:5px 8px;font-size:.82rem}.startup{max-width:550px;margin:60px auto;padding:20px}@media (width<=1180px){.app-shell{grid-template-columns:180px minmax(0,1fr)}.content,.topbar{padding-left:18px;padding-right:18px}.filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.app-shell{display:block}.sidebar{height:auto;position:static}.brand{padding:10px 12px;font-size:1.35rem}.sidebar nav{flex-wrap:wrap;gap:3px;padding:0 6px 6px;display:flex}.sidebar nav a{gap:4px;padding:7px;font-size:.86rem}.sidebar nav a svg{width:14px}.sidebar-footer{display:none}.topbar{flex-wrap:wrap}.role{display:none}.topbar,.content{padding-left:12px;padding-right:12px}.content{padding-top:16px}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.organization,.login-layout{display:block}.organization>*+*{margin-top:12px}.login-brand{gap:14px;padding:20px}.login-brand>div{margin-bottom:0}}.maintenance-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.maintenance-toolbar,.maintenance-history{margin-block:1rem}.maintenance-dialog{box-sizing:border-box;width:min(42rem,100% - 2rem);max-height:calc(100dvh - 2rem);color:inherit;border:1px solid #dce4ed;border-radius:12px;padding:1.25rem}.maintenance-dialog::backdrop{background:#14233c88}.maintenance-dialog-title{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.maintenance-dialog-title h2{margin:0}.maintenance-form{gap:.75rem;display:grid}.maintenance-form label{font-weight:600;display:block}.maintenance-form input,.maintenance-form select{width:100%;margin-top:.25rem;display:block}.maintenance-form p{margin:0}.maintenance-form .maintenance-actions{justify-content:flex-end}.maintenance-dialog .table-scroll{margin-top:1rem}.maintenance-conflict,.maintenance-form .required{color:#a62622}.maintenance-success{color:#14613b;background:#edf9f1;border-radius:.5rem;padding:.65rem .9rem}.maintenance-history h3{margin-top:1rem}.maintenance-history pre{background:#f4f7fb;padding:.75rem;overflow:auto}.maintenance-history details{padding:.5rem 0}.payroll-nav-label{color:#b8c4df;padding:10px 13px 3px;font-size:.86rem;font-weight:700}.payroll-fields{border:0;gap:.75rem;min-width:0;margin:0;padding:0;display:grid}.payroll-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.payroll-picker{gap:.4rem;min-width:0;display:grid}.payroll-flags{flex-wrap:wrap;gap:.45rem 1rem;display:flex}.payroll-flags label{align-items:center;gap:.35rem;display:flex}.payroll-flags input{width:auto;min-height:0;margin:0}.payroll-fields textarea{width:100%;min-height:4rem;margin-top:.25rem;padding:.5rem;display:block}.payroll-help{color:var(--muted);font-size:.9rem;line-height:1.5}.payroll-parameter{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:.5rem;display:grid}.payroll-preview{white-space:normal;overflow-wrap:anywhere;min-width:14rem}.payroll-preview>div{justify-content:space-between;gap:.6rem;display:flex}.payroll-changes details{border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:.7rem 0}.payroll-warning{color:#963c0a;background:#fff3df}@media (width<=620px){.payroll-grid{grid-template-columns:1fr}.payroll-nav-label{align-self:center;padding:4px 6px}}.rule-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr));align-items:end;gap:12px;display:grid}.rule-grid>*{min-width:0}.rule-grid label,.rule-form>section>label,.rule-fieldset label{gap:5px;display:grid}.rule-grid input:not([type=checkbox]),.rule-grid select,.rule-form textarea{width:100%;min-width:0}.rule-fieldset{border:1px solid #d8e0e8;border-radius:8px;min-width:0;margin:14px 0;padding:12px}.rule-fieldset legend{padding:0 6px;font-weight:600}.rule-grid label.rule-check,.rule-fieldset label.rule-check,.rule-block label.rule-check{align-items:center;gap:7px;min-height:36px;display:flex}.rule-check input[type=checkbox]{width:16px;height:16px}.rule-block{margin:18px 0}.rule-block p{margin:7px 0 12px}.rule-actions{flex-wrap:wrap;align-items:center;gap:8px;margin:9px 0;display:flex}.expr-node{border-left:3px solid #c9d7e8;min-width:0;margin:5px 0;padding:8px 0 8px 9px}.expr-node .expr-node .expr-node .expr-node{padding-left:5px}.rule-json pre{background:#f4f7fa;max-height:24rem;padding:8px;font-size:.82rem;overflow:auto}.rule-json,.rule-result{margin:10px 0}.rule-result{border:1px solid #d8e0e8;border-radius:8px;padding:10px}.rule-result summary{font-weight:600}.rule-hash{overflow-wrap:anywhere;font-size:.82rem}.rule-message{color:#17492d;background:#e8f6ee;border-radius:6px;padding:9px 12px}.rule-form textarea{padding:8px;font-family:monospace}.monthly-section{min-width:0;margin-block:1rem;padding:1rem}.monthly-section h2,.monthly-section h3{margin-block:0 .75rem}.monthly-fields,.monthly-actions{flex-wrap:wrap;align-items:end;gap:.7rem;margin-block:.7rem;display:flex}.monthly-section label{gap:.35rem;font-size:.88rem;display:grid}.monthly-section input:not([type=checkbox]),.monthly-section select{max-width:100%;min-height:2.3rem;color:inherit;background:#fff;border:1px solid #b9c5d3;border-radius:.5rem;padding:.35rem .6rem}.monthly-section .monthly-inline{align-items:center;min-height:2.3rem;display:flex}.monthly-form{margin-block:.75rem}.monthly-scroll{margin-block:.7rem;overflow-x:auto}.monthly-scroll table{min-width:max-content}.monthly-scroll td,.monthly-scroll th{padding:.55rem .7rem}.monthly-section .facts{overflow-wrap:anywhere}.monthly-section pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:min(36rem,70vw)}.monthly-section summary{cursor:pointer}.monthly-slip{border:1px solid #d7e1ec;border-radius:.65rem}@media (width<=500px){.monthly-slip .facts{font-variant-numeric:tabular-nums;grid-template-columns:1fr}}.monthly-section textarea{width:min(52rem,100%);font:inherit;border:1px solid #b9c5d3;border-radius:.5rem;padding:.5rem;display:block}
