@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-regular.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/inter-semibold.woff2) format("woff2")}:root{--c-primary: #0E6B5A;--c-primary-hover: #12856F;--c-primary-active: #0A5346;--c-primary-soft: #E9F3F1;--c-primary-line: #A9D2CA;--c-on-primary: #FFFFFF;--c-bg: #F5F5F7;--c-surface: #FFFFFF;--c-surface-2: #FAFAFB;--c-surface-3: #F2F2F7;--c-line: #EBEBF0;--c-line-2: #D8D8E0;--c-ink: rgba(0, 0, 0, .88);--c-ink-2: rgba(0, 0, 0, .6);--c-ink-3: rgba(0, 0, 0, .42);--c-ink-4: rgba(0, 0, 0, .26);--c-scrim: rgba(0, 0, 0, .4);--c-paper: #FFFFFF;--c-glass: rgba(255, 255, 255, .72);--glass-blur: saturate(180%) blur(20px);--c-success: #389E0D;--c-success-soft: #F6FFED;--c-success-line: #B7EB8F;--c-warning: #AD6800;--c-warning-soft: #FFFBE6;--c-warning-line: #FFE58F;--c-error: #CF1322;--c-error-soft: #FFF1F0;--c-error-line: #FFCCC7;--c-info: #1677FF;--c-info-soft: #E6F4FF;--c-info-line: #91CAFF;--c-purple: #531DAB;--c-purple-soft: #F9F0FF;--c-purple-line: #D3ADF7;--c-cyan: #08979C;--c-cyan-soft: #E6FFFB;--c-cyan-line: #87E8DE;--c-on-error: #FFFFFF;--c-internal: #A46800;--c-internal-soft: #FBF4E8;--c-internal-line: #ECD6A8;--c-chart-1: #0E6B5A;--c-chart-2: #1677FF;--c-chart-3: #AD6800;--c-chart-4: #531DAB;--c-chart-5: #08979C;--c-chart-6: #389E0D;--c-chart-grid: #F0F0F0;--c-chart-axis: rgba(0, 0, 0, .45);--c-skel: #F0F2F2;--c-skel-hi: #FAFAFA;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-xs: 4px;--r-sm: 6px;--r: 10px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--h-sm: 30px;--h: 34px;--h-lg: 44px;--row-h: 44px;--row-h-sm: 36px;--badge-h: 22px;--thead-h: 48px;--thead-grp-h: 32px;--icon-sm: 13px;--icon: 15px;--icon-lg: 17px;--header-h: 56px;--sider-w: 208px;--sider-mini: 56px;--drawer-w: 480px;--modal-w: 520px;--page-max: 1600px;--page-pad-x: var(--sp-8);--f-sans: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--f-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--fs-xs: 12px;--fs-sm: 13px;--fs: 14px;--fs-lg: 16px;--fs-xl: 18px;--fs-2xl: 20px;--fs-3xl: 24px;--lh-tight: 1.35;--lh: 1.5714;--lh-loose: 1.75;--ls-tight: -.01em;--ls-wide: .04em;--sd-1: 0 1px 2px rgba(0,0,0,.04), 0 1px 3px rgba(0,0,0,.03);--sd-2: 0 8px 24px rgba(0,0,0,.08), 0 2px 8px rgba(0,0,0,.04);--sd-3: 0 16px 40px rgba(0,0,0,.12), 0 4px 12px rgba(0,0,0,.06);--ease: cubic-bezier(.4, 0, .2, 1);--dur-1: .15s;--dur-2: .25s;--dur-3: .35s;--focus-ring: 0 0 0 4px rgba(14, 107, 90, .16)}[data-theme=dark]{--c-primary: #2EB894;--c-primary-hover: #45C7A4;--c-primary-active: #1E9678;--c-primary-soft: #14352E;--c-primary-line: #1F5C4D;--c-on-primary: #06231C;--c-bg: #000000;--c-surface: #1C1C1E;--c-surface-2: #2C2C2E;--c-surface-3: #3A3A3C;--c-line: #2C2C2E;--c-line-2: #3A3A3C;--c-ink: rgba(255, 255, 255, .92);--c-ink-2: rgba(255, 255, 255, .68);--c-ink-3: rgba(255, 255, 255, .48);--c-ink-4: rgba(255, 255, 255, .32);--c-scrim: rgba(0, 0, 0, .62);--c-paper: #FFFFFF;--c-glass: rgba(28, 28, 30, .72);--c-success: #73D13D;--c-success-soft: #16281A;--c-success-line: #2A5A2E;--c-warning: #FFC53D;--c-warning-soft: #2B2312;--c-warning-line: #5C4A1E;--c-error: #FF7875;--c-error-soft: #2C1B1B;--c-error-line: #5C2B29;--c-info: #69B1FF;--c-info-soft: #131F33;--c-info-line: #1F3A5C;--c-purple: #B37FEB;--c-purple-soft: #1F1730;--c-purple-line: #3B2A5C;--c-cyan: #36CFC9;--c-cyan-soft: #14292A;--c-cyan-line: #1F4A4A;--c-on-error: #2A1213;--c-internal: #FFC53D;--c-internal-soft: #2B2312;--c-internal-line: #5C4A1E;--c-chart-1: #2EB894;--c-chart-2: #69B1FF;--c-chart-3: #FFC53D;--c-chart-4: #B37FEB;--c-chart-5: #36CFC9;--c-chart-6: #73D13D;--c-chart-grid: #2E3339;--c-chart-axis: rgba(255, 255, 255, .48);--c-skel: #2B3036;--c-skel-hi: #343A41;--sd-1: 0 1px 2px 0 rgba(0, 0, 0, .4);--sd-2: 0 4px 12px rgba(0, 0, 0, .5);--sd-3: 0 6px 16px rgba(0, 0, 0, .55);--focus-ring: 0 0 0 3px rgba(46, 184, 148, .18)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--f-sans);font-size:var(--fs);line-height:var(--lh);color:var(--c-ink);background:var(--c-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,p,figure{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--c-primary);text-decoration:none}a:hover{color:var(--c-primary-hover)}.num,.cell-num,.stat-v,.kpi-v,td.n,th.n{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}::selection{background:var(--c-primary-line);color:var(--c-ink)}*{scrollbar-width:thin;scrollbar-color:var(--c-line-2) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--c-line-2);border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:var(--c-ink-4)}.btn:focus-visible,.iconbtn:focus-visible,.pg-btn:focus-visible,.navitem:focus-visible,.oplink:focus-visible,.seg button:focus-visible,.tagbtn:focus-visible,.ck:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:var(--r-xs)}.skip-link{position:absolute;left:var(--sp-2);top:-100px;z-index:999;padding:var(--sp-2) var(--sp-4);background:var(--c-primary);color:var(--c-on-primary);border-radius:0 0 var(--r) var(--r);font-size:var(--fs-sm);transition:top var(--dur-1) var(--ease)}.skip-link:focus{top:0;color:var(--c-on-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.boot{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);color:var(--c-ink-3);font-size:var(--fs-sm)}.boot-spin{width:28px;height:28px;border-radius:50%;border:2px solid var(--c-primary-line);border-top-color:var(--c-primary);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.boot-err{margin:var(--sp-8);padding:var(--sp-5);background:var(--c-error-soft);border:1px solid var(--c-error-line);border-radius:var(--r);color:var(--c-error);font-family:var(--f-mono);font-size:var(--fs-sm);line-height:1.7;white-space:pre-wrap;text-wrap:pretty}.erp{display:grid;grid-template-columns:var(--sider-w) 1fr;grid-template-rows:var(--header-h) 1fr;grid-template-areas:"brand header" "sider main";height:100%;transition:grid-template-columns var(--dur-2) var(--ease)}.erp.mini{grid-template-columns:var(--sider-mini) 1fr}.brand{grid-area:brand;display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);background:var(--c-surface);border-right:1px solid var(--c-line);border-bottom:1px solid var(--c-line);overflow:hidden}.brand-mark{flex:none;width:26px;height:26px;border-radius:var(--r-sm);background:var(--c-primary);color:var(--c-on-primary);display:grid;place-items:center;font-size:var(--fs-sm);font-weight:700;letter-spacing:-.02em}.brand-text{min-width:0;display:flex;flex-direction:column;line-height:1.25}.brand-name{font-size:var(--fs-sm);font-weight:600;color:var(--c-ink);white-space:nowrap}.brand-sub{font-size:var(--fs-xs);color:var(--c-ink-3);white-space:nowrap}.erp.mini .brand-text{display:none}.erp.mini .brand{justify-content:center;padding:0}.header{grid-area:header;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4) 0 var(--sp-3);background:var(--c-glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--c-line);position:relative;z-index:20}.iconbtn{width:var(--h);height:var(--h);flex:none;display:grid;place-items:center;border:0;background:transparent;border-radius:var(--r-sm);color:var(--c-ink-2);transition:background var(--dur-1),color var(--dur-1)}.iconbtn:hover{background:var(--c-surface-3);color:var(--c-ink)}.crumb{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--c-ink-3);min-width:0}.crumb b{color:var(--c-ink);font-weight:500}.crumb .sep{color:var(--c-ink-4)}.hspacer{flex:1}.grow{flex:1;min-width:0}.ml-auto{margin-left:auto}.hsearch{display:flex;align-items:center;gap:var(--sp-2);height:var(--h);padding:0 var(--sp-3);background:var(--c-surface-3);border:1px solid transparent;border-radius:var(--r);color:var(--c-ink-3);font-size:var(--fs-sm);min-width:220px;transition:border-color var(--dur-1),background var(--dur-1)}.hsearch:focus-within{background:var(--c-surface);border-color:var(--c-primary);box-shadow:var(--focus-ring)}.hsearch input{border:0;background:transparent;outline:none;width:100%;color:var(--c-ink)}.hsearch input::placeholder{color:var(--c-ink-4)}.envchip{display:inline-flex;align-items:center;gap:var(--sp-1);height:var(--badge-h);padding:0 var(--sp-2);border-radius:var(--r-sm);background:var(--c-warning-soft);border:1px solid var(--c-warning-line);color:var(--c-warning);font-size:var(--fs-xs);font-weight:500;white-space:nowrap}.verchip{display:inline-flex;align-items:center;gap:var(--sp-1);height:var(--badge-h);padding:0 var(--sp-2);border-radius:var(--r-sm);background:var(--c-primary-soft);border:1px solid var(--c-primary-line);color:var(--c-primary);font-size:var(--fs-xs);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.user{display:flex;align-items:center;gap:var(--sp-2);height:var(--h);padding:0 var(--sp-2) 0 var(--sp-1);border:1px solid transparent;border-radius:var(--r);background:transparent;transition:background var(--dur-1)}.user:hover{background:var(--c-surface-3)}.avatar{width:26px;height:26px;border-radius:50%;flex:none;background:var(--c-primary-soft);color:var(--c-primary);border:1px solid var(--c-primary-line);display:grid;place-items:center;font-size:var(--fs-xs);font-weight:600}.user-name{font-size:var(--fs-sm);color:var(--c-ink-2);white-space:nowrap}.sider{grid-area:sider;background:var(--c-surface);border-right:1px solid var(--c-line);overflow-y:auto;overflow-x:hidden;padding:var(--sp-3) var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-1)}.nav-group{padding:var(--sp-4) var(--sp-3) var(--sp-2);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-wide);color:var(--c-ink-4);text-transform:uppercase;white-space:nowrap}.erp.mini .nav-group{padding-left:0;text-align:center;font-size:10px}.navitem{display:flex;align-items:center;gap:var(--sp-3);height:var(--h-lg);padding:0 var(--sp-3);border:0;background:transparent;border-radius:var(--r);color:var(--c-ink-2);font-size:var(--fs);font-weight:400;text-align:left;white-space:nowrap;transition:background var(--dur-1),color var(--dur-1)}.navitem:hover{background:var(--c-surface-3);color:var(--c-ink)}.navitem.on{background:var(--c-primary-soft);color:var(--c-primary);font-weight:500}.navitem .ic{flex:none}.navitem .badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--c-surface-3);color:var(--c-ink-3);font-size:11px;font-variant-numeric:tabular-nums;display:grid;place-items:center}.navitem.on .badge{background:var(--c-primary);color:var(--c-on-primary)}.erp.mini .navitem{justify-content:center;padding:0}.erp.mini .navitem .lbl,.erp.mini .navitem .badge{display:none}.sider-foot{margin-top:auto;padding:var(--sp-3) var(--sp-3) var(--sp-1);border-top:1px solid var(--c-line);font-size:var(--fs-xs);color:var(--c-ink-4);line-height:1.7;white-space:nowrap;overflow:hidden}.erp.mini .sider-foot{display:none}.statedemo{display:flex;align-items:center;gap:var(--sp-1);margin-top:var(--sp-2)}.statedemo .lbl{font-size:10px;color:var(--c-ink-4);letter-spacing:var(--ls-wide)}.statedemo button{height:20px;padding:0 6px;border-radius:var(--r-xs);border:1px solid var(--c-line-2);background:var(--c-surface);color:var(--c-ink-3);font-size:10px;line-height:1}.statedemo button.on{background:var(--c-primary-soft);border-color:var(--c-primary-line);color:var(--c-primary)}.sider-scrim{display:none}.main{grid-area:main;overflow-y:auto;background:var(--c-bg)}.page{padding:var(--sp-5) var(--page-pad-x) var(--sp-10);max-width:var(--page-max)}.page-head{display:flex;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap}.page-title{font-size:var(--fs-2xl);font-weight:600;line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--c-ink);display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.page-desc{margin-top:var(--sp-1);font-size:var(--fs-sm);color:var(--c-ink-3);text-wrap:pretty;max-width:76ch}.page-acts{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--sd-1);overflow:hidden}.card+.card{margin-top:var(--sp-4)}.card-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-line);min-height:48px}.card-title{font-size:var(--fs);font-weight:600;color:var(--c-ink)}.card-sub{font-size:var(--fs-xs);color:var(--c-ink-3)}.card-body{padding:var(--sp-4)}.card-body.flush{padding:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);flex:0 0 auto;height:var(--h);padding:0 var(--sp-3);border:1px solid var(--c-line-2);border-radius:var(--r);background:var(--c-surface);color:var(--c-ink);font-size:var(--fs);font-weight:400;white-space:nowrap;transition:all var(--dur-1) var(--ease)}.btn:hover{border-color:var(--c-primary);color:var(--c-primary)}.btn:active{border-color:var(--c-primary-active);color:var(--c-primary-active)}.btn:disabled{border-color:var(--c-line-2);color:var(--c-ink-4);background:var(--c-surface-3);cursor:not-allowed}.btn svg{flex:none}.btn.primary{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary)}.btn.primary:hover{background:var(--c-primary-hover);border-color:var(--c-primary-hover);color:var(--c-on-primary)}.btn.primary:active{background:var(--c-primary-active);border-color:var(--c-primary-active)}.btn.text{border-color:transparent;background:transparent;color:var(--c-primary);padding:0 var(--sp-2)}.btn.text:hover{background:var(--c-primary-soft);border-color:transparent}.btn.danger:hover{border-color:var(--c-error);color:var(--c-error)}.btn.danger.solid{background:var(--c-error);border-color:var(--c-error);color:var(--c-on-error)}.btn.danger.solid:hover{background:var(--c-error);border-color:var(--c-error);color:var(--c-on-error);filter:brightness(1.06)}.btn.sm{height:var(--h-sm);padding:0 var(--sp-2);font-size:var(--fs-sm);border-radius:var(--r-sm)}.btn.block{width:100%}.seg{display:inline-flex;padding:2px;gap:2px;background:var(--c-surface-3);border-radius:var(--r)}.seg button{height:calc(var(--h) - 4px);padding:0 var(--sp-3);border:0;background:transparent;border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--c-ink-2);display:inline-flex;align-items:center;gap:var(--sp-2);transition:all var(--dur-1);white-space:nowrap}.seg button:hover{color:var(--c-ink)}.seg button.on{background:var(--c-surface);color:var(--c-primary);font-weight:500;box-shadow:var(--sd-1)}.tag{display:inline-flex;align-items:center;gap:5px;height:var(--badge-h);padding:0 var(--sp-2);border:1px solid var(--c-line-2);border-radius:var(--r-sm);background:var(--c-surface-2);color:var(--c-ink-2);font-size:var(--fs-xs);white-space:nowrap;font-variant-numeric:tabular-nums}.tag.mono{font-family:var(--f-mono);font-size:11.5px}.tag.primary{background:var(--c-primary-soft);border-color:var(--c-primary-line);color:var(--c-primary)}.tag.success{background:var(--c-success-soft);border-color:var(--c-success-line);color:var(--c-success)}.tag.warning{background:var(--c-warning-soft);border-color:var(--c-warning-line);color:var(--c-warning)}.tag.error{background:var(--c-error-soft);border-color:var(--c-error-line);color:var(--c-error)}.tag.info{background:var(--c-info-soft);border-color:var(--c-info-line);color:var(--c-info)}.tag.purple{background:var(--c-purple-soft);border-color:var(--c-purple-line);color:var(--c-purple)}.tag.internal{background:var(--c-internal-soft);border-color:var(--c-internal-line);color:var(--c-internal)}.tag.solid{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary);font-weight:500}.tagrow{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.tagbtn{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 var(--sp-2);border:1px solid var(--c-line-2);border-radius:var(--r-sm);background:var(--c-surface-2);color:var(--c-ink-2);font-size:var(--fs-xs);white-space:nowrap;transition:all var(--dur-1)}.tagbtn:hover{border-color:var(--c-primary-line);color:var(--c-primary)}.tagbtn[aria-pressed=true]{background:var(--c-primary-soft);border-color:var(--c-primary-line);color:var(--c-primary);font-weight:500}.st{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);white-space:nowrap}.st:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.st.success{color:var(--c-success)}.st.warning{color:var(--c-warning)}.st.error{color:var(--c-error)}.st.info{color:var(--c-info)}.st.muted{color:var(--c-ink-3)}.dt-wrap{overflow-x:auto}.dt{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm)}.dt.wide{min-width:1180px}.dt.mid{min-width:860px}.dt thead th{position:sticky;top:0;z-index:3;height:var(--thead-h);padding:0 var(--sp-3);background:var(--c-surface-2);border-bottom:1px solid var(--c-line);font-size:var(--fs-xs);font-weight:600;color:var(--c-ink-2);text-align:left;white-space:nowrap;-webkit-user-select:none;user-select:none}.dt thead th.n{text-align:right}.dt thead th.c{text-align:center}.dt thead th.sortable{cursor:pointer}.dt thead th.sortable:hover{background:var(--c-surface-3);color:var(--c-ink)}.dt thead th .sorter{display:inline-flex;flex-direction:column;gap:1px;margin-left:5px;vertical-align:-3px;color:var(--c-ink-4)}.dt thead th .sorter .on{color:var(--c-primary)}.dt thead tr.grp th{height:var(--thead-grp-h);font-size:11px;letter-spacing:var(--ls-wide);background:var(--c-surface-3);border-bottom:1px solid var(--c-line)}.dt thead th.grp-int{background:var(--c-internal-soft);color:var(--c-internal)}.dt thead th.grp-int .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:5px;vertical-align:1px}.dt tbody td{height:var(--row-h);padding:0 var(--sp-3);border-bottom:1px solid var(--c-line);color:var(--c-ink);vertical-align:middle;white-space:nowrap}.dt tbody td.n{text-align:right;font-variant-numeric:tabular-nums}.dt tbody td.c{text-align:center}.dt tbody tr:hover td{background:var(--c-surface-2)}.dt tbody tr.sel td,.dt tbody tr.sel:hover td{background:var(--c-primary-soft)}.dt tbody tr:last-child td{border-bottom:0}.dt.zebra tbody tr:nth-child(2n) td{background:var(--c-surface-2)}.dt.zebra tbody tr:hover td{background:var(--c-surface-3)}.dt.zebra tbody tr.sel td,.dt.zebra tbody tr.sel:hover td{background:var(--c-primary-soft)}.dt tbody tr.sect td{height:34px;background:var(--c-surface-3);font-size:var(--fs-xs);color:var(--c-ink-2);letter-spacing:var(--ls-wide)}.dt tbody tr.sect td b{color:var(--c-ink);font-size:var(--fs-sm);letter-spacing:0}.dt tbody tr.sect:hover td{background:var(--c-surface-3)}.dt td.int{background:var(--c-internal-soft)}.dt tbody tr:hover td.int,.dt.zebra tbody tr:nth-child(2n) td.int{background:var(--c-internal-soft)}.dt tbody tr:hover td.int{background:color-mix(in srgb,var(--c-internal-soft) 80%,var(--c-surface-3))}.dt tfoot td{height:var(--thead-h);padding:0 var(--sp-3);border-top:1px solid var(--c-line-2);background:var(--c-surface-2);font-weight:600;font-variant-numeric:tabular-nums}.dt tfoot td.n{text-align:right}.dt .empty{color:var(--c-ink-4)}.dt .ops{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-1);flex-wrap:nowrap;min-width:96px}.oplink{flex:0 0 auto;white-space:nowrap;border:0;background:transparent;padding:0 var(--sp-1);color:var(--c-primary);font-size:var(--fs-sm);border-radius:var(--r-xs);height:24px}.oplink:hover{background:var(--c-primary-soft)}.oplink.danger{color:var(--c-error)}.oplink.danger:hover{background:var(--c-error-soft)}.ci{width:100%;height:30px;padding:0 var(--sp-2);border:1px solid transparent;border-radius:var(--r-sm);background:transparent;outline:none;font-variant-numeric:tabular-nums;transition:border-color var(--dur-1),background var(--dur-1)}.ci:hover{border-color:var(--c-line-2);background:var(--c-surface)}.ci:focus{border-color:var(--c-primary);background:var(--c-surface);box-shadow:var(--focus-ring)}.ci.n{text-align:right}.ci.c{text-align:center}.ci.warn{color:var(--c-warning)}.ck{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;flex:none;border:1px solid var(--c-line-2);border-radius:var(--r-xs);background:var(--c-surface);cursor:pointer;position:relative;transition:all var(--dur-1)}.ck:checked{background:var(--c-primary);border-color:var(--c-primary)}.ck:checked:after{content:"";position:absolute;left:5px;top:1.5px;width:4px;height:8px;border:solid var(--c-on-primary);border-width:0 2px 2px 0;transform:rotate(45deg)}.ck:indeterminate{background:var(--c-primary);border-color:var(--c-primary)}.ck:indeterminate:after{content:"";position:absolute;left:3px;top:6.5px;width:8px;height:2px;background:var(--c-on-primary)}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:var(--fs-xs);color:var(--c-ink-2);font-weight:500}.field .hint{font-size:var(--fs-xs);color:var(--c-ink-4);line-height:1.6}.field[data-invalid=true]>label:after{content:" *";color:var(--c-error);font-weight:400}.inp,.sel,.ta{height:var(--h);padding:0 var(--sp-3);border:1px solid var(--c-line-2);border-radius:var(--r);background:var(--c-surface);color:var(--c-ink);outline:none;width:100%;transition:border-color var(--dur-1),box-shadow var(--dur-1)}.inp:hover,.sel:hover,.ta:hover{border-color:var(--c-primary-line)}.inp:focus,.sel:focus,.ta:focus{border-color:var(--c-primary);box-shadow:var(--focus-ring)}.inp::placeholder,.ta::placeholder{color:var(--c-ink-4)}.inp:disabled,.sel:disabled{background:var(--c-surface-3);color:var(--c-ink-4);cursor:not-allowed}.inp.n{text-align:right;font-variant-numeric:tabular-nums}.inp.c{text-align:center;font-variant-numeric:tabular-nums}.ta{height:auto;min-height:84px;padding:var(--sp-2) var(--sp-3);line-height:var(--lh-loose);resize:vertical}.readonly{display:inline-flex;align-items:center;gap:var(--sp-2);height:var(--h);padding:0 var(--sp-3);border:1px dashed var(--c-line-2);border-radius:var(--r);background:var(--c-surface-2);color:var(--c-ink-2);font-size:var(--fs);font-variant-numeric:tabular-nums}.toolbar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-line);background:var(--c-surface)}.toolbar .grow{flex:1}.srch{display:flex;align-items:center;gap:var(--sp-2);height:var(--h);padding:0 var(--sp-3);border:1px solid var(--c-line-2);border-radius:var(--r);background:var(--c-surface);min-width:260px;flex:1;max-width:420px;transition:border-color var(--dur-1),box-shadow var(--dur-1)}.srch:focus-within{border-color:var(--c-primary);box-shadow:var(--focus-ring)}.srch svg{color:var(--c-ink-3);flex:none}.srch input{border:0;background:transparent;outline:none;width:100%}.srch input::placeholder{color:var(--c-ink-4)}.kpis{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:var(--sp-4)}.kpi{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.kpi-l{font-size:var(--fs-xs);color:var(--c-ink-3);display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;row-gap:2px}.kpi-v{font-size:var(--fs-3xl);font-weight:600;line-height:1.15;letter-spacing:-.02em;color:var(--c-ink)}.kpi-v.sm{font-size:var(--fs-xl)}.kpi-v.pos{color:var(--c-success)}.kpi-v.neg{color:var(--c-error)}.kpi-f{font-size:var(--fs-xs);color:var(--c-ink-4)}.kpi.int{border-color:var(--c-internal-line);background:var(--c-internal-soft)}.kpi.int .kpi-l,.kpi.int .kpi-f,.kpi.int .kpi-v{color:var(--c-internal)}.kv{display:flex;align-items:center;gap:var(--sp-3);height:34px;font-size:var(--fs-sm)}.kv+.kv{border-top:1px dashed var(--c-line)}.kv>.k{color:var(--c-ink-3);flex:1}.kv>.v{color:var(--c-ink);font-variant-numeric:tabular-nums;font-weight:500}.kv.int>.v{color:var(--c-internal)}.alert{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-radius:var(--r);border:1px solid;font-size:var(--fs-sm);line-height:1.65}.alert svg{flex:none;margin-top:2px}.alert b{font-weight:600}.alert .grow{flex:1;min-width:0}.alert.info{background:var(--c-info-soft);border-color:var(--c-info-line);color:var(--c-ink-2)}.alert.info svg{color:var(--c-info)}.alert.warning{background:var(--c-warning-soft);border-color:var(--c-warning-line);color:var(--c-ink-2)}.alert.warning svg{color:var(--c-warning)}.alert.internal{background:var(--c-internal-soft);border-color:var(--c-internal-line);color:var(--c-internal)}.alert.error{background:var(--c-error-soft);border-color:var(--c-error-line);color:var(--c-ink-2)}.alert.error svg{color:var(--c-error)}.alert.success{background:var(--c-success-soft);border-color:var(--c-success-line);color:var(--c-ink-2)}.alert.success svg{color:var(--c-success)}.pager{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--c-line);font-size:var(--fs-sm);color:var(--c-ink-2);flex-wrap:wrap}.pager .grow{flex:1}.pg-btn{min-width:var(--h-sm);height:var(--h-sm);padding:0 var(--sp-2);border:1px solid var(--c-line-2);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-ink-2);display:inline-grid;place-items:center;font-variant-numeric:tabular-nums;transition:all var(--dur-1)}.pg-btn:hover{border-color:var(--c-primary);color:var(--c-primary)}.pg-btn.on{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary)}.pg-btn:disabled{color:var(--c-ink-4);border-color:var(--c-line);cursor:not-allowed}.state{padding:56px var(--sp-6);text-align:center;color:var(--c-ink-3);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}.state .state-ic{color:var(--c-ink-4)}.state .state-t{font-size:var(--fs);color:var(--c-ink-2)}.state .state-s{font-size:var(--fs-xs);color:var(--c-ink-4);max-width:46ch;text-wrap:pretty}.state.error .state-ic,.state.error .state-t{color:var(--c-error)}.state .state-acts{margin-top:var(--sp-3);display:flex;gap:var(--sp-2)}.skl{background:var(--c-skel);border-radius:var(--r-sm);position:relative;overflow:hidden}.skl:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--c-skel-hi);animation:skl 1.2s var(--ease) infinite}@keyframes skl{0%{opacity:0}50%{opacity:.9}to{opacity:0}}.skl-line{height:12px;margin:var(--sp-2) 0}.skl-row{display:flex;gap:var(--sp-3);align-items:center;height:var(--row-h)}.skl-row .skl{flex:1}@media(prefers-reduced-motion:reduce){.skl:after{animation:none}.boot-spin{animation:none}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--c-scrim);animation:fade var(--dur-2) var(--ease)}@keyframes fade{0%{opacity:0}}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:61;width:var(--drawer-w);max-width:92vw;background:var(--c-surface);border-left:1px solid var(--c-line);box-shadow:var(--sd-2);display:flex;flex-direction:column;animation:slide-in var(--dur-2) var(--ease)}@keyframes slide-in{0%{transform:translate(24px);opacity:.6}}.drawer-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--c-line)}.drawer-head h3{font-size:var(--fs-lg);font-weight:600}.drawer-body{padding:var(--sp-4);overflow-y:auto;flex:1}.drawer-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--c-line);display:flex;gap:var(--sp-2);justify-content:flex-end}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:var(--sp-6);background:var(--c-scrim);animation:fade var(--dur-2) var(--ease)}.modal{position:relative;z-index:61;width:var(--modal-w);max-width:100%;max-height:calc(100vh - 96px);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--sd-3);display:flex;flex-direction:column;animation:modal-in var(--dur-2) var(--ease)}@keyframes modal-in{0%{transform:translateY(-10px) scale(.985);opacity:0}}.modal-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--c-line)}.modal-head h3{font-size:var(--fs-lg);font-weight:600}.modal-body{padding:var(--sp-4);overflow-y:auto}.modal-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--c-line);display:flex;gap:var(--sp-2);justify-content:flex-end}.toast-wrap{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:90;display:flex;flex-direction:column;gap:var(--sp-2);align-items:center;pointer-events:none}.toast{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r);box-shadow:var(--sd-2);font-size:var(--fs-sm);color:var(--c-ink);animation:toast-in var(--dur-2) var(--ease)}@keyframes toast-in{0%{transform:translateY(-8px);opacity:0}}.row{display:flex;align-items:center;gap:var(--sp-3)}.row.wrap{flex-wrap:wrap}.row.top{align-items:flex-start}.col{display:flex;flex-direction:column;gap:var(--sp-3)}.mut{color:var(--c-ink-3)}.mut2{color:var(--c-ink-4)}.sm{font-size:var(--fs-sm)}.xs{font-size:var(--fs-xs)}.b{font-weight:600}.mono{font-family:var(--f-mono)}.pos{color:var(--c-success)}.neg{color:var(--c-error)}.nowrap{white-space:nowrap}.trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.split{display:grid;gap:var(--sp-4);grid-template-columns:minmax(0,1fr) 320px;align-items:start}.split>.col.pin{position:sticky;top:var(--sp-4)}.doc{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:40px 44px;max-width:900px;margin:0 auto;font-size:var(--fs-sm);line-height:1.7}.doc-head{display:flex;justify-content:space-between;gap:var(--sp-6);padding-bottom:var(--sp-5);border-bottom:2px solid var(--c-ink)}.doc-title{font-size:var(--fs-3xl);font-weight:600;letter-spacing:var(--ls-wide)}.doc-co{text-align:right;font-size:var(--fs-xs);color:var(--c-ink-2);line-height:1.8}.doc-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2) var(--sp-6);padding:var(--sp-4) 0;border-bottom:1px solid var(--c-line);font-size:var(--fs-xs)}.doc-meta .k{color:var(--c-ink-3);margin-right:var(--sp-2)}.doc-meta .v{color:var(--c-ink);font-variant-numeric:tabular-nums}.doc-sect{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0 var(--sp-2);font-size:var(--fs-sm);font-weight:600}.doc-sect .rule{flex:1;height:1px;background:var(--c-line)}.doc-sum{margin-top:var(--sp-5);margin-left:auto;width:340px;display:flex;flex-direction:column;gap:var(--sp-2)}.doc-sum .r{display:flex;justify-content:space-between;gap:var(--sp-4);font-size:var(--fs-sm)}.doc-sum .r .v{font-variant-numeric:tabular-nums}.doc-sum .r.grand{margin-top:var(--sp-2);padding-top:var(--sp-3);border-top:2px solid var(--c-ink);font-size:var(--fs-lg);font-weight:600}.doc-notes{margin-top:var(--sp-8);padding-top:var(--sp-4);border-top:1px solid var(--c-line)}.doc-notes h4{font-size:var(--fs-sm);font-weight:600;margin-bottom:var(--sp-2)}.doc-notes ol{margin:0;padding-left:1.3em;color:var(--c-ink-2);font-size:var(--fs-xs);line-height:1.9}.doc-sign{margin-top:var(--sp-10);display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--c-ink-3)}.doc-foot{display:none}@media(min-width:1024px)and (max-width:1439px){.erp:not(.expanded){grid-template-columns:var(--sider-mini) 1fr}.erp:not(.expanded) .brand-text{display:none}.erp:not(.expanded) .brand{justify-content:center;padding:0}.erp:not(.expanded) .navitem{justify-content:center;padding:0}.erp:not(.expanded) .navitem .lbl,.erp:not(.expanded) .navitem .badge{display:none}.erp:not(.expanded) .nav-group{padding-left:0;text-align:center;font-size:10px}.erp:not(.expanded) .sider-foot{display:none}.page{--page-pad-x: var(--sp-5)}}@media(max-width:1023px){.erp{grid-template-columns:1fr;grid-template-areas:"header" "main"}.brand{display:none}.sider{position:fixed;top:0;bottom:0;left:0;z-index:61;width:var(--sider-w);max-width:86vw;transform:translate(-100%);transition:transform var(--dur-2) var(--ease);border-right:1px solid var(--c-line);padding-top:var(--sp-4)}.erp.sider-open .sider{transform:none;box-shadow:var(--sd-2)}.erp.sider-open .sider-scrim{display:block;z-index:60}.sider-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--c-scrim);animation:fade var(--dur-2) var(--ease)}.page{--page-pad-x: var(--sp-4)}.page{padding-top:var(--sp-4)}.page-desc{max-width:none}.split{grid-template-columns:minmax(0,1fr)}.split>.col.pin{position:static}.doc-meta{grid-template-columns:1fr}.doc{padding:var(--sp-5) var(--sp-4)}.doc-sum{width:100%}.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.cust-split{grid-template-columns:minmax(0,1fr)!important}.hsearch{min-width:0;width:160px}.user-name{display:none}}@media(max-width:720px){.crumb,.hsearch{display:none}.page-title{font-size:var(--fs-xl)}.btn{padding:0 var(--sp-2)}}.erp,.main,.page,.card,.dt-wrap{min-width:0}@media print{@page{size:A4;margin:12mm 12mm 14mm}html,body{background:var(--c-paper)!important;height:auto}:root,[data-theme=dark]{--c-ink: #000000;--c-ink-2: rgba(0, 0, 0, .72);--c-ink-3: rgba(0, 0, 0, .55);--c-line: #BDBDBD;--c-line-2: #9E9E9E;--c-surface: #FFFFFF;--c-surface-2: #FFFFFF;--c-surface-3: #F5F5F5;--c-bg: #FFFFFF;--c-primary: #0E6B5A}.erp{display:block;height:auto}.brand,.header,.sider,.sider-scrim,.page-head,.toolbar,.card-head,.pager,.toast-wrap,.skip-link,.noprint{display:none!important}.main{overflow:visible}.page{padding:0;max-width:none}.card{border:0;border-radius:0}.card-body,.card-body.flush{padding:0}.doc{border:0;border-radius:0;padding:0;max-width:none}.doc table thead{display:table-header-group}.doc table tfoot{display:table-footer-group}.doc table tr,.doc .doc-sect,.doc .doc-sum,.doc .doc-notes{break-inside:avoid;page-break-inside:avoid}.doc .doc-head{break-after:avoid;page-break-after:avoid}.doc .doc-sum .r.grand{break-before:avoid;page-break-before:avoid}.doc table{font-size:12px}.doc table thead th{position:static;height:30px}.doc tbody td{height:28px}.doc-foot{display:flex;justify-content:space-between;margin-top:var(--sp-5);padding-top:var(--sp-2);border-top:1px solid var(--c-line);font-size:10px;color:var(--c-ink-3)}}.login{height:100%;display:grid;place-items:center;padding:var(--sp-6);background:radial-gradient(1200px 600px at 50% -10%,var(--c-primary-soft),transparent 60%),var(--c-bg)}.login-card{width:100%;max-width:384px;padding:var(--sp-8);background:var(--c-glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--c-line);border-radius:var(--r-xl);box-shadow:var(--sd-2);display:flex;flex-direction:column;gap:var(--sp-4)}.login-brand{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.login-mark{flex:none;width:44px;height:44px;border-radius:var(--r-lg);background:var(--c-primary);color:var(--c-on-primary);display:grid;place-items:center;font-size:var(--fs-xl);font-weight:700;letter-spacing:-.02em}.login-title h1{font-size:var(--fs-2xl);font-weight:600;letter-spacing:var(--ls-tight);color:var(--c-ink)}.login-title p{font-size:var(--fs-sm);color:var(--c-ink-3)}.login-foot{margin:0;text-align:center;font-size:var(--fs-xs);color:var(--c-ink-4)}
