:root{--nav:#294f7d;--nav2:#3f6593;--blue:#2f80ed;--text:#0f2745;--muted:#7f8fa6;--line:#e7edf5;--bg:#f3f6fa;--card:#fff;--soft:#f8fafd;--red:#ef5350;--green:#20a162;--orange:#f59e0b}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}button,input,select{font-family:inherit}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#294f7d,#3f6593)}.login-card{width:380px;background:#fff;border-radius:16px;box-shadow:0 18px 60px rgba(0,0,0,.22);padding:32px}.login-title{text-align:center;font-size:28px;font-weight:800;color:var(--nav);margin-bottom:8px}.login-sub{text-align:center;color:var(--muted);margin-bottom:26px}.login-card input{width:100%;height:42px;border:1px solid var(--line);border-radius:8px;padding:0 12px;margin-bottom:12px}.app{display:none;height:100vh;overflow:hidden}.side{width:250px;flex:0 0 250px;background:var(--nav);color:white;padding:18px 14px;overflow:auto}.logo{text-align:center;font-size:22px;font-weight:800;margin:4px 0 22px;cursor:pointer}.menu-title{height:38px;display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:7px;margin-top:8px;font-weight:700;cursor:pointer;user-select:none}.menu-title.active,.menu-title:hover{background:var(--nav2)}.menu-arrow{width:14px}.sub-wrap{padding:2px 0 4px}.sub{padding-left:42px;line-height:34px;font-weight:600;border-radius:7px;color:#dce8f6;cursor:pointer}.sub:hover,.sub.on{background:rgba(255,255,255,.10);color:#fff}.main{flex:1;min-width:0;display:flex;flex-direction:column}.top{height:52px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.brand{font-size:16px;font-weight:700}.pill{display:inline-block;background:#edf2f8;color:#55708d;border-radius:14px;padding:4px 12px;margin-left:12px;font-size:12px}.user-box{display:flex;align-items:center;gap:12px;color:#18314f;font-weight:700}.tabs{height:42px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:end;padding:0 20px;gap:4px;overflow:hidden}.tab{height:36px;padding:10px 12px;border:1px solid var(--line);border-bottom:none;border-radius:8px 8px 0 0;color:#4f6b89;background:#fff;white-space:nowrap;cursor:pointer;min-width:72px;max-width:168px;display:flex;align-items:center;justify-content:center;gap:6px}.tab.active{color:var(--blue);font-weight:700}.tab-close{color:#8aa0b8;font-weight:700}.tab-close:hover{color:var(--red)}.work{flex:1;min-height:0;padding:18px;overflow:hidden}.module-frame{width:100%;height:100%;border:none;border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(31,53,86,.05);display:none}.module-frame.active{display:block}.page{min-height:100%;background:#fff;border-radius:14px;box-shadow:0 6px 20px rgba(31,53,86,.05);overflow:hidden}.toolbar{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px}.title{font-size:22px;font-weight:800}.hint{color:var(--muted);margin-top:6px}.actions{display:flex;gap:10px;align-items:center}.btn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:9px 16px;color:#18314f;font-weight:600;cursor:pointer}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.btn.text{border:none;background:transparent;color:var(--blue);padding:4px 8px}.btn.full{width:100%}.query{padding:16px 20px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:12px;align-items:center;background:#fbfdff}.query input,.query select{height:38px;border:1px solid var(--line);border-radius:7px;padding:0 12px;outline:none;color:var(--text);background:white}.list{padding:0 20px 20px;overflow:auto}.table{width:100%;border-collapse:collapse}.table th{height:42px;background:#f8fafd;color:#61738a;text-align:left;font-weight:700;border-bottom:1px solid var(--line);padding:0 12px;white-space:nowrap}.table td{height:48px;border-bottom:1px solid var(--line);padding:0 12px;white-space:nowrap}.code{color:#6d7f95}.tag{display:inline-block;border:1px solid #dce8f6;background:#f7fbff;color:#55708d;border-radius:999px;padding:3px 9px;font-size:12px}.tag.ok{color:var(--green);background:#f0fbf6}.tag.warn{color:#b26b00;background:#fff6e8}.tag.danger{color:var(--red);background:#fff2f2}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:18px}.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px}.card-label{color:#61738a}.num{font-size:24px;font-weight:800;margin-top:8px}.trend{font-size:12px;color:var(--green);margin-top:8px}.panel-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;padding:0 18px 18px}.box{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.box-head{padding:12px 14px;background:#f8fafd;border-bottom:1px solid var(--line);font-weight:800}.box-body{padding:14px}.balance{font-weight:800}.debit{color:var(--green)}.credit{color:var(--blue)}.voucher-lines{min-width:980px}.amount{text-align:right;font-variant-numeric:tabular-nums}.report-sheet{padding:18px 20px}.statement{width:100%;border-collapse:collapse;table-layout:fixed}.statement th,.statement td{border:1px solid var(--line);height:38px;padding:0 12px}.statement th{background:#f8fafd;color:#61738a}.statement .section{background:#fbfdff;font-weight:800}.close-period{padding:18px 20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.step{border:1px solid var(--line);border-radius:8px;padding:16px;background:#fff}.step-title{font-weight:800;margin-bottom:8px}.step-status{margin-top:12px}@media(max-width:900px){.side{display:none}.query,.cards,.panel-grid,.close-period{grid-template-columns:1fr}.work{padding:10px}.toolbar{align-items:flex-start;flex-direction:column}.table{min-width:760px}}

.menu-group{margin-top:8px}.menu-title{height:42px;gap:12px;margin-top:0}.menu-title.active,.menu-title:hover{background:rgba(255,255,255,.12)}.menu-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-icon{width:20px;height:20px;flex:0 0 20px;position:relative;display:inline-block;border-radius:5px;color:#eaf3ff}.menu-icon::before,.menu-icon::after{content:"";position:absolute;box-sizing:border-box}.icon-overview::before{left:4px;top:4px;width:5px;height:5px;border:2px solid currentColor;border-radius:2px;box-shadow:7px 0 0 -1px currentColor,0 7px 0 -1px currentColor,7px 7px 0 -1px currentColor}.icon-voucher::before{left:4px;top:3px;width:12px;height:14px;border:2px solid currentColor;border-radius:3px}.icon-voucher::after{left:7px;top:8px;width:7px;height:2px;background:currentColor;box-shadow:0 4px 0 currentColor}.icon-ledger::before{left:3px;top:3px;width:14px;height:14px;border:2px solid currentColor;border-radius:3px}.icon-ledger::after{left:7px;top:4px;width:2px;height:12px;background:currentColor;box-shadow:5px 0 0 currentColor}.icon-report::before{left:4px;bottom:3px;width:3px;height:8px;background:currentColor;box-shadow:5px -4px 0 currentColor,10px -8px 0 currentColor;border-radius:2px}.icon-report::after{left:3px;top:3px;width:14px;height:14px;border-left:2px solid currentColor;border-bottom:2px solid currentColor}.icon-master::before{left:4px;top:4px;width:12px;height:12px;border:2px solid currentColor;border-radius:50%}.icon-master::after{left:9px;top:2px;width:2px;height:16px;background:currentColor;transform:rotate(45deg)}.icon-close::before{left:3px;top:4px;width:14px;height:12px;border:2px solid currentColor;border-radius:7px}.icon-close::after{left:8px;top:1px;width:5px;height:8px;border:2px solid currentColor;border-bottom:none;border-radius:5px 5px 0 0}.sub-wrap{max-height:0;overflow:hidden;padding:0;transition:max-height .18s ease,padding .18s ease}.menu-group.open .sub-wrap{max-height:180px;padding:2px 0 6px}.sub{height:34px;line-height:34px;margin:2px 0 0 32px;padding:0 12px;border-radius:7px}
.icon-system::before{left:3px;top:3px;width:14px;height:14px;border:2px solid currentColor;border-radius:50%}.icon-system::after{left:8px;top:0;width:4px;height:20px;background:currentColor;box-shadow:0 0 0 0 currentColor;transform:rotate(45deg);clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%)}
.voucher-page{background:#eef3f9;padding:14px;box-shadow:none}.voucher-bar{height:48px;border:1px solid var(--line);background:#fff;border-radius:8px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;margin-bottom:14px}.voucher-bar-left{display:flex;gap:8px;align-items:center}.voucher-state{display:flex;gap:8px}.voucher-paper{background:#fff;border:1px solid #dbe5f1;border-radius:8px;padding:18px 22px;box-shadow:0 8px 24px rgba(31,53,86,.06)}.voucher-title{text-align:center;font-size:26px;font-weight:800;letter-spacing:8px;color:#0f2745;margin:2px 0 18px}.voucher-meta{display:grid;grid-template-columns:130px 170px 170px 120px 160px;gap:12px;align-items:end;margin-bottom:12px}.voucher-meta label{display:flex;align-items:center;gap:8px;color:#61738a;font-weight:700;white-space:nowrap}.voucher-meta input,.voucher-meta select{height:34px;min-width:0;flex:1;border:0;border-bottom:1px solid #cfd9e6;padding:0 6px;color:#132d4d;background:#fff;outline:none}.voucher-grid{width:100%;border-collapse:collapse;table-layout:fixed;border:1px solid #cfd9e6}.voucher-grid th{height:38px;background:#f6f9fd;color:#61738a;border:1px solid #dfe8f3;font-weight:800}.voucher-grid td{height:46px;border:1px solid #dfe8f3;padding:0}.voucher-grid input{width:100%;height:45px;border:0;padding:0 10px;outline:none;color:#132d4d;background:transparent}.voucher-grid input:focus{background:#eef5ff}.col-summary{width:24%}.col-account{width:24%}.col-aux{width:24%}.col-amount{width:14%}.amount-input{text-align:right;font-variant-numeric:tabular-nums}.voucher-grid tfoot td{height:44px;background:#fbfdff;font-weight:800;border:1px solid #cfd9e6}.capital{padding-left:12px;color:#18314f}.voucher-total{text-align:right;padding:0 12px!important;color:#0f5fc4;font-variant-numeric:tabular-nums}.voucher-foot{height:42px;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;color:#61738a;font-weight:700}.query-voucher{grid-template-columns:140px minmax(240px,1fr) 150px 150px auto}.settings-form{padding:22px;max-width:620px}.setting-row{display:grid;grid-template-columns:120px 1fr;align-items:center;min-height:52px;border-bottom:1px solid var(--line)}.setting-row span{font-weight:700;color:#61738a}.setting-row input{height:36px;border:1px solid var(--line);border-radius:7px;padding:0 10px}.setting-note{margin-top:16px;border:1px dashed #cfd9e6;background:#fbfdff;border-radius:8px;padding:12px;color:#61738a}.settings-grid{padding:20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.setting-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px;display:flex;flex-direction:column;gap:12px}.setting-title{font-weight:800;font-size:16px}.setting-card label{display:flex;align-items:center;gap:8px;color:#18314f}.setting-card input[type=text],.setting-card label input:not([type]){height:34px;border:1px solid var(--line);border-radius:7px;padding:0 10px;flex:1}@media(max-width:1100px){.voucher-meta{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.query-voucher{grid-template-columns:1fr 1fr}}@media(max-width:700px){.voucher-meta,.query-voucher{grid-template-columns:1fr}.voucher-bar{height:auto;align-items:flex-start;gap:10px;flex-direction:column;padding:12px}.voucher-bar-left{flex-wrap:wrap}.voucher-foot{grid-template-columns:1fr 1fr}.voucher-grid{min-width:900px}.voucher-paper{overflow:auto}}
.account-cell{position:relative}.account-suggest{position:absolute;left:0;right:0;top:45px;background:#fff;border:1px solid #cfd9e6;border-radius:0 0 8px 8px;box-shadow:0 12px 30px rgba(31,53,86,.18);z-index:30;overflow:hidden}.account-option{width:100%;height:40px;border:0;border-bottom:1px solid #eef2f7;background:#fff;display:grid;grid-template-columns:72px 1fr 88px;align-items:center;gap:8px;padding:0 10px;text-align:left;color:#18314f;cursor:pointer}.account-option:hover{background:#eef5ff}.account-option b{color:#0f5fc4}.account-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-option em{font-style:normal;color:#7f8fa6;font-size:12px;text-align:right}.voucher-toast{position:absolute;right:28px;top:72px;z-index:40;min-width:180px;background:#18314f;color:#fff;border-radius:8px;padding:10px 14px;box-shadow:0 12px 30px rgba(31,53,86,.22);opacity:0;transform:translateY(-6px);pointer-events:none;transition:.18s}.voucher-toast.show{opacity:1;transform:translateY(0)}
.top-select{border:1px solid #b9c8dc;border-radius:4px;padding:5px 9px;background:#fff;color:#1f3552;margin-left:12px;min-width:180px}
.voucher-tip{padding:9px 12px;margin-bottom:10px;border:1px solid #dce8f6;border-radius:7px;background:#f7fbff;color:#55708d}.col-balance{width:12%}.row-balance{padding:0 9px!important;text-align:right;color:#55708d;font-variant-numeric:tabular-nums;white-space:nowrap}.balance-negative{color:var(--red);font-weight:700}.voucher-grid .account-input{padding-right:8px}.voucher-grid:focus-within{box-shadow:0 0 0 2px rgba(47,128,237,.08)}
.form-grid{padding:22px;max-width:760px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label{display:flex;flex-direction:column;gap:8px;font-weight:700;color:#61738a}.form-grid input,.form-grid select{height:38px;border:1px solid var(--line);border-radius:7px;padding:0 10px;background:#fff}.voucher-grid select{width:100%;height:45px;border:0;padding:0 8px;background:transparent;outline:none;color:#132d4d}.voucher-grid select:focus{background:#eef5ff}
.dialog-mask[hidden]{display:none}.dialog-mask{position:fixed;inset:0;z-index:1000;background:rgba(15,39,69,.42);display:flex;align-items:center;justify-content:center;padding:24px}.dialog-card{width:min(680px,100%);background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(15,39,69,.28);overflow:hidden}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;border-bottom:1px solid var(--line)}.dialog-title{font-size:21px;font-weight:800}.dialog-close{border:0;background:transparent;color:#7f8fa6;font-size:28px;line-height:24px;cursor:pointer}.dialog-body{padding:22px 24px}.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dialog-grid label{display:flex;flex-direction:column;gap:8px;color:#526981;font-weight:700}.dialog-grid label span b{color:var(--red)}.dialog-grid input,.dialog-grid select{height:40px;border:1px solid #ccd8e6;border-radius:7px;padding:0 11px;outline:none;background:#fff;color:var(--text)}.dialog-grid input:focus,.dialog-grid select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,128,237,.1)}.dialog-wide{grid-column:1/-1}.role-note{margin-top:18px;padding:12px;border-radius:7px;background:#f5f8fc;color:#61738a;line-height:1.7}.form-error{margin-bottom:16px;padding:10px 12px;border:1px solid #ffd3d3;border-radius:7px;background:#fff3f3;color:#d33}.dialog-foot{display:flex;justify-content:flex-end;gap:10px;padding:15px 24px;border-top:1px solid var(--line);background:#fbfcfe}.btn:disabled{opacity:.55;cursor:not-allowed}@media(max-width:700px){.dialog-grid{grid-template-columns:1fr}.dialog-wide{grid-column:auto}}
.voucher-print{display:none}@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff!important}.voucher-page>.voucher-bar,.voucher-page>.voucher-paper,.voucher-toast{display:none!important}.voucher-page{padding:0!important;background:#fff!important}.voucher-print{display:block!important;color:#000;font-family:"SimSun","宋体",serif}.voucher-print .print-company{height:20px;font-size:13px}.voucher-print h1{text-align:center;font-size:26px;letter-spacing:12px;margin:0 0 10px}.voucher-print .print-meta{display:flex;justify-content:space-between;margin-bottom:6px;font-size:14px}.voucher-print table{width:100%;border-collapse:collapse;table-layout:fixed}.voucher-print th,.voucher-print td{border:1px solid #000;padding:6px 8px;height:36px}.voucher-print th:nth-child(1){width:30%}.voucher-print th:nth-child(2){width:38%}.voucher-print th:nth-child(3),.voucher-print th:nth-child(4){width:16%}.voucher-print small{display:block;margin-top:4px;color:#333}.voucher-print .print-money{text-align:right;font-family:Consolas,monospace;font-size:14px}.voucher-print tfoot td{font-weight:bold}.voucher-print .print-foot{display:grid;grid-template-columns:repeat(5,1fr);margin-top:12px;font-size:14px}.page{box-shadow:none!important}}
.accountset-page{padding-bottom:22px}.accountset-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px 20px}.summary-card{position:relative;border:1px solid var(--line);border-radius:10px;padding:16px 18px;background:linear-gradient(145deg,#fff,#f8fbff)}.summary-card span{display:block;color:#6b7e94;font-weight:700}.summary-card strong{display:block;margin:8px 0 4px;font-size:25px;color:#183a64}.summary-card em{font-style:normal;color:#94a3b8;font-size:12px}.accountset-filter{display:flex;justify-content:space-between;gap:12px;padding:0 20px 14px}.search-box{width:360px;height:38px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:#8294aa;background:#fff}.search-box input{flex:1;border:0;outline:0}.accountset-filter select{height:38px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:#fff;color:var(--text)}.accountset-list td{height:62px}.accountset-list td small{display:block;margin-top:5px;color:#8999ad}.set-identity{display:flex;flex-direction:column;gap:5px}.set-identity b{color:#1768c5}.set-identity span{font-weight:700}.period-chip{display:inline-block;border-radius:6px;padding:5px 9px;background:#eff5fc;color:#41668f;font-weight:700}.empty-cell{text-align:center!important;padding:40px!important;color:#94a3b8}.accountset-dialog{width:min(760px,100%)}.form-section-title{display:flex;align-items:center;gap:8px;margin:4px 0 14px;font-size:15px;font-weight:800;color:#294f7d}.form-section-title:not(:first-of-type){margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.form-section-title i{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#eaf3ff;color:#2875d2;font-style:normal}.create-note{margin-top:20px;padding:12px 14px;border-left:3px solid #2f80ed;border-radius:5px;background:#f3f8ff;color:#55708d}@media(max-width:800px){.accountset-summary{grid-template-columns:1fr}.accountset-filter{flex-direction:column}.search-box{width:100%}}
.dialog-card{max-height:calc(100vh - 40px);display:flex;flex-direction:column}.dialog-card>form{min-height:0;display:flex;flex-direction:column}.dialog-card .dialog-body{min-height:0;overflow-y:auto}.dialog-card .dialog-head,.dialog-card .dialog-foot{flex:0 0 auto}.accountset-dialog .dialog-body{scrollbar-width:thin;scrollbar-color:#c4d1e0 transparent}@media(max-height:720px){.dialog-mask{align-items:flex-start;padding:12px}.dialog-card{max-height:calc(100vh - 24px)}.dialog-head{padding-top:14px;padding-bottom:14px}.dialog-body{padding-top:16px;padding-bottom:16px}}
.print-meta-line{display:none}@media print{@page{size:A4 landscape;margin:12mm}.printable-module{background:#fff!important;color:#000}.printable-module .page{box-shadow:none!important;border-radius:0!important;overflow:visible!important}.printable-module .toolbar{display:block!important;padding:0 0 12px!important;border:0!important;text-align:center}.printable-module .toolbar .title{font-family:"SimSun","宋体",serif;font-size:24px!important;color:#000!important;letter-spacing:3px}.printable-module .toolbar .hint,.printable-module .toolbar .actions,.printable-module .query{display:none!important}.printable-module .print-meta-line{display:block!important;margin-top:8px;font-size:13px;color:#000}.printable-module .list,.printable-module .report-sheet{padding:0!important;overflow:visible!important}.printable-module table{width:100%!important;min-width:0!important;border-collapse:collapse!important;color:#000!important}.printable-module table th,.printable-module table td{border:1px solid #000!important;background:#fff!important;color:#000!important;height:30px!important;padding:4px 7px!important;font-size:12px!important}.printable-module table th{font-weight:700!important}.printable-module .tag{border:0!important;padding:0!important;background:none!important;color:#000!important}}
