:root{--brand:#2350d2;--brand-hover:#1c41b0;--brand-weak:#eef2fd;--brand-ring:#2350d233;--bg:#f5f6f8;--surface:#fff;--surface-2:#f8f9fb;--surface-3:#f1f3f6;--border:#e5e7eb;--border-strong:#d4d8df;--text:#15181e;--text-2:#414753;--text-3:#6b7280;--text-4:#9aa1ad;--success:#137a3a;--success-bg:#ebf8f0;--success-bd:#bfe6cd;--progress:#1f55c8;--progress-bg:#edf2fe;--progress-bd:#c9d7fa;--warning:#a35a00;--warning-bg:#fff6e5;--warning-bd:#f5d9a6;--danger:#c0262d;--danger-bg:#fdeeee;--danger-bd:#f5c6c8;--pending:#4f5663;--pending-bg:#f1f2f4;--pending-bd:#dcdfe4;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--r-sm:6px;--r:8px;--r-lg:12px;--shadow-xs:0 1px 2px #1018280a;--shadow-sm:0 1px 2px #1018280d, 0 1px 3px #1018280a;--shadow-md:0 8px 24px #10182814, 0 2px 6px #1018280a;--shadow-lg:0 24px 56px #1018282e;--control-h:36px;--control-h-sm:30px;--side-w:224px;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-family:var(--font);color:var(--text);font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text)}body.modal-open{overflow:hidden}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-hover);text-underline-offset:2px;text-decoration:underline}h1,h2,h3{letter-spacing:-.01em;color:var(--text);margin:0}h1{font-size:22px;font-weight:650;line-height:1.3}h2{font-size:15px;font-weight:600}h3{font-size:14px;font-weight:600}p{margin:0 0 var(--s2)}.ic{vertical-align:-3px;flex-shrink:0;display:inline-block}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.muted{color:var(--text-3)}.small{font-size:12px}.right{text-align:right}.nowrap{white-space:nowrap}.grow{flex:1}.row{gap:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.stack{gap:var(--s4);flex-direction:column;display:flex}.num-cell,.tnum{font-variant-numeric:tabular-nums}.neg-num{color:var(--danger);font-weight:600}.strong{font-weight:600}.sub{color:var(--text-3);margin-top:1px;font-size:12px;display:block}.code{color:var(--text);font-weight:500}.shell{min-height:100vh;display:flex}.side{width:var(--side-w);background:var(--surface);border-right:1px solid var(--border);z-index:50;flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:18px 18px 14px;display:flex}.brand-mark{background:var(--brand);color:#fff;letter-spacing:-.02em;border-radius:8px;place-items:center;width:32px;height:32px;font-size:15px;font-weight:700;display:grid}.brand-name{font-size:15px;font-weight:650;line-height:1.2}.brand-sub{color:var(--text-3);font-size:12px}.nav{flex:1;padding:4px 10px 12px;overflow-y:auto}.nav-group{margin-top:14px}.nav-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);padding:0 10px 6px;font-size:11px;font-weight:600}.nav a{border-radius:var(--r-sm);height:36px;color:var(--text-2);align-items:center;gap:10px;margin-bottom:2px;padding:0 10px;font-weight:500;display:flex}.nav a .ic{color:var(--text-4)}.nav a:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.nav a:hover .ic{color:var(--text-3)}.nav a.on{background:var(--brand-weak);color:var(--brand)}.nav a.on .ic{color:var(--brand)}.side-user{border-top:1px solid var(--border);padding:10px;position:relative}.user-btn{border-radius:var(--r-sm);text-align:left;width:100%;height:auto;color:var(--text);box-shadow:none;background:0 0;border:0;align-items:center;gap:10px;padding:8px;display:flex}.user-btn:hover{background:var(--surface-3)}.avatar{background:var(--surface-3);width:32px;height:32px;color:var(--text-2);border:1px solid var(--border);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:600;display:grid}.user-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;line-height:1.3;overflow:hidden}.user-role{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.user-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-md);z-index:60;padding:4px;position:absolute;bottom:calc(100% - 4px);left:10px;right:10px}.user-menu a,.user-menu button{border-radius:var(--r-sm);width:100%;color:var(--text-2);height:auto;box-shadow:none;background:0 0;border:0;align-items:center;gap:8px;padding:8px 10px;font-weight:500;text-decoration:none;display:flex}.user-menu a:hover,.user-menu button:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.main{min-width:0;padding:var(--s6) var(--s8) 48px;flex:1}.main-inner{max-width:1480px;margin:0 auto}.topbar,.scrim{display:none}.page-head{margin-bottom:var(--s5)}.back-link{color:var(--text-3);align-items:center;gap:4px;margin-bottom:8px;font-size:13px;font-weight:500;display:inline-flex}.back-link:hover{color:var(--text);text-decoration:none}.page-head-row{justify-content:space-between;align-items:flex-end;gap:var(--s4);flex-wrap:wrap;display:flex}.page-head-text{min-width:0}.page-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.page-desc{color:var(--text-3);margin:4px 0 0}.page-actions{gap:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);margin-bottom:var(--s4);min-width:0}.card-head{justify-content:space-between;align-items:center;gap:var(--s3);padding:14px var(--s5);border-bottom:1px solid var(--border);min-height:52px;display:flex}.card-head h2{align-items:center;gap:8px;display:flex}.card-head .count{color:var(--text-3);background:var(--surface-3);border-radius:99px;padding:0 8px;font-size:12px;font-weight:500;line-height:20px}.card-actions{gap:var(--s2);flex-wrap:wrap;display:flex}.card-body{padding:var(--s5)}.card-flush{padding:0}.card-flush>.empty{padding:28px 16px}.card>.alert:only-child{margin:var(--s3)}.stats{gap:var(--s4);margin-bottom:var(--s4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s4) var(--s5);box-shadow:var(--shadow-xs);color:inherit;min-width:0;transition:border-color .15s,box-shadow .15s;display:block}a.stat:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);color:inherit;text-decoration:none}.stat-label{color:var(--text-3);align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.stat-label .ic{color:var(--text-4)}.stat-go{opacity:0;margin-left:auto;transition:opacity .15s}a.stat:hover .stat-go{opacity:1}.stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:6px;font-size:22px;font-weight:650;line-height:1.25}.stat.lg .stat-value{font-size:28px}.stat-value.danger{color:var(--danger)}.stat-value.success{color:var(--success)}.stat-sub{color:var(--text-3);margin-top:6px;font-size:12px}.stat-sub b{color:var(--text-2);font-variant-numeric:tabular-nums;font-weight:600}.stat-strip{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);margin-bottom:var(--s4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid;overflow:hidden}.stat-strip .stat{box-shadow:none;border:0;border-right:1px solid var(--border);border-radius:0}.stat-strip .stat:last-child{border-right:0}.stat-strip .stat-value{font-size:20px}.info-list{gap:14px;margin:0;display:grid}.info-list div{min-width:0}.info-list dt{color:var(--text-3);margin-bottom:2px;font-size:12px}.info-list dd{word-break:break-word;margin:0}button,.btn{font:inherit;cursor:pointer;border-radius:var(--r-sm);height:var(--control-h);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);white-space:nowrap;box-shadow:var(--shadow-xs);justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500;line-height:1;text-decoration:none;transition:background .12s,border-color .12s,color .12s;display:inline-flex}button:hover,.btn:hover{background:var(--surface-2);color:var(--text);border-color:#c3c8d1;text-decoration:none}button:active,.btn:active{background:var(--surface-3)}button:focus-visible,.btn:focus-visible{box-shadow:0 0 0 3px var(--brand-ring);border-color:var(--brand);outline:none}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 1px 2px #2350d240}button.primary:hover:not(:disabled),.btn.primary:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:#fff}button.ghost,.btn.ghost{box-shadow:none;color:var(--text-2);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled),.btn.ghost:hover{background:var(--surface-3);color:var(--text)}button.danger,.btn.danger{color:var(--danger);box-shadow:none;background:0 0;border-color:#0000}button.danger:hover:not(:disabled){background:var(--danger-bg);color:var(--danger)}button.danger.outline{border-color:var(--danger-bd);background:var(--surface)}button.danger.solid{background:var(--danger);border-color:var(--danger);color:#fff}button.danger.solid:hover:not(:disabled){color:#fff;background:#a51f25}button.sm,.btn.sm{height:var(--control-h-sm);padding:0 10px;font-size:13px}button.link{color:var(--brand);height:auto;box-shadow:none;background:0 0;border:0;padding:0}button.link:hover{background:0 0;text-decoration:underline}.icon-btn{width:32px;height:32px;box-shadow:none;color:var(--text-3);border-radius:var(--r-sm);background:0 0;border:0;padding:0}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.icon-btn.sm{width:24px;height:24px}.row-actions{flex-wrap:nowrap;justify-content:flex-end;gap:4px;display:flex}input,select,textarea{font:inherit;color:var(--text);height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);width:100%;min-width:0;padding:0 10px;font-size:14px;transition:border-color .12s,box-shadow .12s}textarea{resize:vertical;height:auto;min-height:72px;padding:8px 10px;line-height:1.5}select{appearance:none;cursor:pointer;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;padding-right:30px}input::placeholder,textarea::placeholder{color:var(--text-4)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#bcc2cc}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring);outline:none}input:disabled,select:disabled,textarea:disabled{background:var(--surface-3);color:var(--text-3);cursor:not-allowed}input.num{text-align:right;font-variant-numeric:tabular-nums}input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand);cursor:pointer;flex-shrink:0;padding:0}input[type=date]{font-variant-numeric:tabular-nums}input[type=search]::-webkit-search-cancel-button{display:none}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--text-2);font-size:13px;font-weight:500}.req{color:var(--danger);margin-left:2px;font-style:normal}.field-hint{color:var(--text-3);font-size:12px}.field-error{color:var(--danger);font-size:12px}.field.invalid input,.field.invalid select,.field.invalid .picker input{border-color:var(--danger)}.field.invalid input:focus{box-shadow:0 0 0 3px #c0262d26}.form-grid{gap:var(--s4);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.form-grid>*{grid-column:span 12}.form-grid>.c-3{grid-column:span 3}.form-grid>.c-4{grid-column:span 4}.form-grid>.c-6{grid-column:span 6}.form-grid>.c-8{grid-column:span 8}.form-grid+.form-grid{margin-top:var(--s4)}.form-section-title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin:var(--s5) 0 var(--s3);font-size:12px;font-weight:600}.form-section-title:first-child{margin-top:0}.check{cursor:pointer;color:var(--text-2);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:14px;display:inline-flex}.check-grid{flex-wrap:wrap;gap:8px;display:flex}.check-card{border:1px solid var(--border-strong);border-radius:var(--r-sm);height:var(--control-h);cursor:pointer;align-items:center;gap:8px;padding:0 12px;font-weight:500;display:inline-flex}.check-card:has(input:checked){border-color:var(--brand);background:var(--brand-weak);color:var(--brand)}.affix{align-items:center;min-width:0;display:flex;position:relative}.affix input{padding-right:26px}.affix-unit{color:var(--text-4);pointer-events:none;font-size:13px;position:absolute;right:10px}.picker{align-items:center;width:100%;min-width:0;display:flex;position:relative}.picker>.ic{color:var(--text-4);pointer-events:none;position:absolute;left:10px}.picker input{padding-left:32px}.action-bar{z-index:30;justify-content:flex-end;align-items:center;gap:var(--s2);margin:var(--s5) calc(-1 * var(--s8)) -48px;padding:12px var(--s8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);background:#ffffffeb;display:flex;position:sticky;bottom:0}.action-bar .summary{color:var(--text-3);margin-right:auto;font-size:13px}.action-bar .summary b{color:var(--text);font-variant-numeric:tabular-nums;margin-left:6px;font-size:18px}.form-actions{justify-content:flex-end;gap:var(--s2);padding-top:var(--s4);margin-top:var(--s5);border-top:1px solid var(--border);display:flex}.filters{gap:var(--s2);margin-bottom:var(--s3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.filters-main{gap:var(--s2);flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex}.filters-end{gap:var(--s2);align-items:center;display:flex}.search{flex:240px;align-items:center;min-width:200px;max-width:340px;display:flex;position:relative}.search>.ic{color:var(--text-4);pointer-events:none;position:absolute;left:10px}.search input{padding-left:32px;padding-right:30px}.search .icon-btn{position:absolute;right:5px}.fsel{height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);align-items:center;max-width:100%;padding-left:10px;font-size:14px;transition:border-color .12s;display:inline-flex;position:relative}.fsel:hover{border-color:#bcc2cc}.fsel:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.fsel>span{color:var(--text-3);white-space:nowrap}.fsel>span:empty{display:none}.fsel>span:not(:empty):after{content:":"}.fsel select{text-overflow:ellipsis;background:0 0;border:0;width:auto;max-width:220px;height:100%;padding:0 28px 0 5px;font-weight:500;box-shadow:none!important}.fsel>.ic{color:var(--text-3);pointer-events:none;position:absolute;right:9px}.fsel:has(>span:empty){padding-left:5px}.fcheck{height:var(--control-h);border:1px dashed var(--border-strong);border-radius:var(--r-sm);cursor:pointer;color:var(--text-2);-webkit-user-select:none;user-select:none;background:var(--surface);align-items:center;gap:7px;padding:0 12px;font-size:14px;display:inline-flex}.fcheck:hover{border-color:#bcc2cc}.fcheck.on{border-style:solid;border-color:var(--brand);background:var(--brand-weak);color:var(--brand)}.period{gap:var(--s2);flex-wrap:wrap;display:inline-flex}.drange{height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);align-items:center;padding-left:10px;display:inline-flex}.drange:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.drange{padding-left:0}.drange-sep{color:var(--text-4)}.segmented{background:var(--surface-3);border-radius:var(--r);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented button{height:30px;box-shadow:none;color:var(--text-3);border-radius:var(--r-sm);background:0 0;border:0;padding:0 12px;font-size:13px}.segmented button:hover{color:var(--text);background:#fff9}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.toolbar{justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.tabs{border-bottom:1px solid var(--border);margin-bottom:var(--s5);scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{box-shadow:none;height:40px;color:var(--text-3);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex-shrink:0;margin-right:16px;padding:0 4px}.tabs button:hover{color:var(--text);background:0 0}.tabs button.on{color:var(--text);border-bottom-color:var(--brand);font-weight:600}.filters-toggle{display:none}.filters.has-more .filters-toggle{display:inline-flex}.filters-toggle.on{background:var(--surface-3);border-color:var(--border-strong)}.count-dot{background:var(--brand);color:#fff;border-radius:99px;place-items:center;min-width:18px;height:18px;margin-left:2px;padding:0 5px;font-size:11px;font-weight:600;display:inline-grid}.filters-more{gap:var(--s2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-xs);flex-wrap:wrap;flex-basis:100%;align-items:center;padding:10px 12px;animation:.12s ease-out fade;display:flex}.picker .picker-clear{opacity:0;transition:opacity .1s;position:absolute;right:6px}.picker:hover .picker-clear,.picker:focus-within .picker-clear{opacity:1}.picker input{text-overflow:ellipsis;padding-right:30px}.picker.unmatched input{border-color:var(--warning);background:var(--warning-bg)}.cb-list{z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);max-height:280px;box-shadow:var(--shadow-md);max-width:calc(100vw - 16px);padding:4px;animation:.1s ease-out fade;position:fixed;overflow-y:auto}.cb-opt{border-radius:var(--r-sm);cursor:pointer;align-items:baseline;gap:8px;padding:7px 10px;font-size:14px;line-height:1.35;display:flex}.cb-opt[aria-selected=true]{background:var(--brand-weak)}.cb-opt.is-current .cb-code{color:var(--brand)}.cb-code{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.cb-name{min-width:0;color:var(--text-2);flex:1}.cb-extra{color:var(--text-3);white-space:nowrap;font-size:12px}.cb-empty,.cb-more{color:var(--text-3);text-align:center;padding:10px;font-size:13px}.cb-more{border-top:1px solid var(--border);margin-top:4px;font-size:12px}.date-input{align-items:center;width:100%;min-width:0;display:flex;position:relative}.date-input input:not(.date-native){font-variant-numeric:tabular-nums;padding-right:34px}.date-input .date-btn{color:var(--text-3);width:28px;height:28px;position:absolute;right:4px}.date-input .date-native{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:absolute;bottom:0;right:0}.date-input.bad input:not(.date-native){border-color:var(--danger);background:var(--danger-bg)}.date-input.bare{width:132px}.date-input.bare input:not(.date-native){height:calc(var(--control-h) - 2px);background:0 0;border:0;padding-left:10px;box-shadow:none!important}.date-input.bare.bad input:not(.date-native){color:var(--danger)}.menu{display:inline-flex;position:relative}.menu-pop{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);min-width:180px;box-shadow:var(--shadow-md);z-index:70;padding:4px;animation:.1s ease-out fade;position:absolute;top:calc(100% + 4px)}.menu-pop.left{left:0}.menu-pop.right{right:0}.menu-pop a,.menu-pop button{width:100%;height:auto;box-shadow:none;border-radius:var(--r-sm);color:var(--text-2);background:0 0;border:0;justify-content:flex-start;align-items:center;gap:8px;padding:8px 10px;font-weight:500;text-decoration:none;display:flex}.menu-pop a:hover,.menu-pop button:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.menu-pop .danger{color:var(--danger)}.menu-pop .danger:hover{background:var(--danger-bg);color:var(--danger)}.table-card{transition:opacity .15s;overflow:hidden}.table-card.is-refreshing{opacity:.6}.tbl-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:10px 12px}th{background:var(--surface-2);color:var(--text-3);white-space:nowrap;height:40px;padding-top:0;padding-bottom:0;font-size:12px;font-weight:500}td{font-size:14px}tbody tr:last-child td{border-bottom:0}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}th:first-child,td:first-child{padding-left:var(--s4)}th:last-child,td:last-child{padding-right:var(--s4)}tbody tr{transition:background .1s}tbody tr:hover td{background:#fafbfc}tr.click{cursor:pointer}tr.neg td{background:#fff8f8}tr.neg:hover td{background:var(--danger-bg)}tr.cancel td{color:var(--text-4)}tr.cancel td a{color:var(--text-3)}tr.cancel td.n{text-decoration:line-through}tfoot td{background:var(--surface-2);border-top:1px solid var(--border);border-bottom:0;font-weight:600}.dt.sticky-first th:first-child,.dt.sticky-first td:first-child{z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--border);position:sticky;left:0}.dt.sticky-first th:first-child,.dt.sticky-first tfoot td:first-child{background:var(--surface-2)}.line-list{flex-direction:column;gap:2px;display:flex}.line-list .q{color:var(--text-3);font-variant-numeric:tabular-nums}.databar{justify-content:flex-end;align-items:center;gap:12px;display:inline-flex}.databar .track{background:var(--surface-3);border-radius:3px;width:110px;height:6px;overflow:hidden}.databar .track i{background:var(--brand);opacity:.55;border-radius:3px;height:100%;display:block}.databar b{min-width:96px}.dt-foot-note{padding:10px var(--s5);color:var(--text-3);border-top:1px solid var(--border);font-size:12px}.lines td{vertical-align:top;padding-top:8px;padding-bottom:8px}.lines td.n{padding-top:16px}.lines tfoot td{background:var(--surface);font-weight:500}.lines .total-cell{font-size:15px;font-weight:650}.badge{white-space:nowrap;border:1px solid #0000;border-radius:99px;align-items:center;gap:6px;height:22px;padding:0 7px;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge.success{background:var(--success-bg);color:var(--success);border-color:var(--success-bd)}.badge.progress{background:var(--progress-bg);color:var(--progress);border-color:var(--progress-bd)}.badge.warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-bd)}.badge.danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-bd)}.badge.pending{background:var(--surface);color:var(--pending);border-color:var(--pending-bd)}.badge.pending:before{background:0 0;box-shadow:inset 0 0 0 1.5px}.badge.neutral{background:var(--pending-bg);color:var(--text-3);border-color:var(--pending-bg)}.badge.neutral:before{display:none}.alert{border-radius:var(--r);margin-bottom:var(--s4);border:1px solid;align-items:flex-start;gap:10px;padding:10px 14px;font-size:13px;line-height:1.5;display:flex}.alert>.ic{margin-top:2px}.alert .alert-title{margin-bottom:2px;font-weight:600}.alert.info{background:var(--surface-2);color:var(--text-2);border-color:var(--border)}.alert.info>.ic{color:var(--brand)}.alert.warning{background:var(--warning-bg);color:#7a4300;border-color:var(--warning-bd)}.alert.warning>.ic{color:var(--warning)}.alert.danger{background:var(--danger-bg);color:#8f1b20;border-color:var(--danger-bd);align-items:center}.alert.danger>.ic{color:var(--danger);margin-top:0}.alert.danger:has(.alert-title){align-items:flex-start}.alert.danger:has(.alert-title)>.ic{margin-top:2px}.alert.success{background:var(--success-bg);color:#0d5c2b;border-color:var(--success-bd)}.alert.success>.ic{color:var(--success)}.alert table{background:var(--surface);border-radius:var(--r-sm);border:1px solid var(--danger-bd);margin-top:8px;overflow:hidden}.alert table th,.alert table td{padding:6px 10px;font-size:13px}.empty{text-align:center;padding:40px 16px}.empty-icon{background:var(--surface-3);width:44px;height:44px;color:var(--text-4);border-radius:50%;place-items:center;margin-bottom:10px;display:inline-grid}.empty-title{color:var(--text-2);font-weight:600}.empty-hint{color:var(--text-3);margin-top:4px;font-size:13px}.empty-inline{padding:18px var(--s5);color:var(--text-3);font-size:13px}.loading{color:var(--text-3);justify-content:center;align-items:center;gap:10px;padding:48px;display:flex}.loading.full{min-height:100vh}.spinner{border:2px solid var(--border);border-top-color:var(--brand);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{padding:8px var(--s5)}.sk-row{border-bottom:1px solid var(--border);gap:16px;padding:12px 0;display:flex}.sk-row:last-child{border-bottom:0}.sk{background:linear-gradient(90deg, var(--surface-3) 25%, #e9ecf0 50%, var(--surface-3) 75%);background-size:200% 100%;border-radius:4px;height:12px;animation:1.3s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.modal-bg{z-index:100;background:#1116216b;justify-content:center;align-items:flex-start;padding:6vh 16px 24px;animation:.12s ease-out fade;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:640px;box-shadow:var(--shadow-lg);flex-direction:column;max-height:88vh;animation:.14s ease-out pop;display:flex}.modal.wide{max-width:980px}.modal.confirm{max-width:460px}.modal-head{padding:18px var(--s6) 14px;border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.modal-head h2{font-size:16px}.modal-desc{color:var(--text-3);margin:2px 0 0;font-size:13px}.modal-head .icon-btn{margin:-4px -8px 0 0}.modal-body{padding:var(--s5) var(--s6);flex:1;overflow-y:auto}.modal-foot{justify-content:flex-end;gap:var(--s2);padding:14px var(--s6);border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg);display:flex}.modal-body>.form-actions{margin:var(--s5) calc(-1 * var(--s6)) calc(-1 * var(--s5));padding:14px var(--s6);background:var(--surface-2);bottom:calc(-1 * var(--s5));position:sticky}.confirm-body{padding:var(--s6) var(--s6) var(--s5);gap:14px;display:flex}.confirm-body h2{margin-bottom:6px;font-size:16px}.confirm-msg{color:var(--text-2);font-size:14px}.confirm-msg p:last-child{margin-bottom:0}.confirm-icon{background:var(--brand-weak);width:40px;height:40px;color:var(--brand);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.confirm-icon.danger{background:var(--danger-bg);color:var(--danger)}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.99)}}.toast{z-index:200;border-radius:var(--r);background:var(--text);color:#fff;box-shadow:var(--shadow-md);align-items:center;gap:10px;max-width:min(440px,100vw - 32px);padding:12px 14px 12px 16px;font-size:14px;animation:.16s ease-out pop;display:flex;position:fixed;bottom:20px;right:20px}.toast .ic{flex-shrink:0}.toast.ok .ic{color:#6ee7a1}.toast.bad{background:#7f1d1d}.toast.bad .ic{color:#fecaca}.toast .icon-btn{color:#ffffffb3;width:24px;height:24px;margin-left:4px}.toast .icon-btn:hover{color:#fff;background:#ffffff1f}.login-page{background:var(--bg);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow-md);border-radius:16px;padding:32px}.login-card .brand{margin-bottom:24px;padding:0}.login-card h1{font-size:20px}.login-card .page-desc{margin-bottom:20px}.login-card form{gap:var(--s4);flex-direction:column;display:flex}.login-card button.primary{height:40px;margin-top:4px}.login-foot{text-align:center;color:var(--text-4);margin-top:20px;font-size:12px}.split{gap:0 var(--s4);grid-template-columns:minmax(0,1fr) 320px;align-items:start;display:grid}.split-side{position:sticky;top:16px}.subnav-layout{gap:var(--s6);grid-template-columns:200px minmax(0,1fr);align-items:start;display:grid}.subnav{flex-direction:column;gap:2px;display:flex;position:sticky;top:16px}.subnav-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);padding:12px 10px 6px;font-size:11px;font-weight:600}.subnav-label:first-child{padding-top:0}.subnav a{border-radius:var(--r-sm);color:var(--text-2);padding:7px 10px;font-weight:500;display:block}.subnav a:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.subnav a.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:6px 9px}.grid-2{gap:0 var(--s4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-2>:only-child{grid-column:1/-1}.dash-grid{gap:var(--s4);margin-bottom:var(--s4);grid-template-columns:1.3fr 1fr 1fr;display:grid}.mini-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.mini-stats .stat{box-shadow:none;padding:var(--s4) var(--s5);border:0;border-right:1px solid var(--border);border-radius:0}.mini-stats .stat:last-child{border-right:0}.mini-stats .stat-value{font-size:20px}.quick-links{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.quick-link{border:1px solid var(--border);border-radius:var(--r);color:var(--text);background:var(--surface);align-items:center;gap:12px;padding:14px 16px;font-weight:500;transition:border-color .12s,background .12s;display:flex}.quick-link:hover{border-color:var(--border-strong);background:var(--surface-2);color:var(--text);text-decoration:none}.quick-link .ql-icon{border-radius:var(--r-sm);background:var(--surface-3);width:32px;height:32px;color:var(--text-2);place-items:center;display:grid}.quick-link.primary .ql-icon{background:var(--brand-weak);color:var(--brand)}.quick-link>.ic:last-child{color:var(--text-4);margin-left:auto}.summary-list{flex-direction:column;gap:10px;display:flex}.summary-list>div{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;display:flex}.summary-list>div span:first-child{color:var(--text-3)}.summary-list .total{border-top:1px solid var(--border);margin-top:2px;padding-top:12px;font-size:16px;font-weight:650}.summary-list .total span:first-child{color:var(--text)}.type-choice{gap:var(--s3);margin-bottom:var(--s5);grid-template-columns:1fr 1fr;display:grid}.type-choice button{text-align:left;white-space:normal;height:auto;box-shadow:none;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px}.type-choice button span{color:var(--text-3);font-size:12px;font-weight:400;line-height:1.45}.type-choice button.on{border-color:var(--brand);background:var(--brand-weak);box-shadow:0 0 0 1px var(--brand)}.type-choice button.on b{color:var(--brand)}.audit{color:var(--text-3);font-size:12px;line-height:1.7}.print-toolbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;box-shadow:var(--shadow-xs);align-items:center;gap:8px;padding:10px 16px;display:flex;position:sticky;top:0}.print-toolbar .hint{color:var(--text-3);margin-left:8px;font-size:13px}.paper{color:#000;width:210mm;min-height:297mm;box-shadow:var(--shadow-md);font-feature-settings:normal;letter-spacing:normal;background:#fff;margin:20px auto;padding:12mm;font-family:Times New Roman,Times,serif;font-size:13.5px;line-height:normal}.paper .co{font-size:15px;font-weight:700}.paper .title{text-align:center;margin:14px 0 10px;font-size:20px;font-weight:700}.paper table{border-collapse:collapse;border-spacing:0;background:#fff;width:100%}.paper th,.paper td,.paper th:first-child,.paper td:first-child,.paper th:last-child,.paper td:last-child{color:#000;text-align:left;vertical-align:top;background:0 0;border:1px solid #000;height:auto;padding:4px 6px;font-size:13px;position:static}.paper th{white-space:nowrap;font-weight:600}.paper tfoot td{font-weight:700}.paper tbody tr:last-child td{border-bottom:1px solid #000}.paper tbody tr:hover td{background:0 0}.paper table.info td,.paper table.info tbody tr:last-child td{border:0;padding:2px 0}.paper .terms{white-space:pre-wrap;outline:1px dashed #0000;min-height:20px}.paper .terms:hover,.paper .terms:focus{outline-color:#93c5fd}.paper .sign{text-align:center;justify-content:space-around;margin-top:18px;font-weight:700;display:flex}.paper .sign i{font-weight:400;display:block}@media print{@page{size:A4;margin:10mm}body{background:#fff}.no-print,.print-toolbar{display:none!important}.paper{width:auto;min-height:0;box-shadow:none;margin:0;padding:0}.paper .terms{outline:none}}@media (width<=1440px){.main{padding:var(--s5) var(--s6) 48px}.action-bar{margin-left:calc(-1 * var(--s6));margin-right:calc(-1 * var(--s6));padding-left:var(--s6);padding-right:var(--s6)}}@media (width<=1200px){.split{grid-template-columns:minmax(0,1fr) 280px}.dash-grid{grid-template-columns:1fr 1fr}.dash-grid>:first-child{grid-column:span 2}}@media (width<=1440px){.split.detail{grid-template-columns:1fr}.split.detail .split-side{order:-1;position:static}.split.detail .info-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (width<=1024px){.shell{display:block}.side{box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.side.open{transform:none}.scrim{z-index:45;background:#11162159;display:block;position:fixed;inset:0}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:40;align-items:center;gap:10px;height:56px;padding:0 12px;display:flex;position:sticky;top:0}.topbar .brand-mark{width:28px;height:28px;font-size:13px}.topbar-title{font-weight:600}.split{grid-template-columns:1fr}.split-side{order:-1;position:static}.subnav-layout{gap:var(--s4);grid-template-columns:1fr}.subnav{scrollbar-width:none;flex-direction:row;gap:4px;padding-bottom:4px;position:static;overflow-x:auto}.subnav::-webkit-scrollbar{display:none}.subnav-label{display:none}.subnav a{white-space:nowrap;border:1px solid var(--border);background:var(--surface);border-radius:99px;padding:6px 12px}.subnav a.on{background:var(--text);color:#fff;border-color:var(--text);box-shadow:none;padding:6px 12px}.form-grid>.c-3,.form-grid>.c-4{grid-column:span 6}.form-grid>.c-8{grid-column:span 12}}@media (width<=720px){:root{--control-h:40px}h1{font-size:20px}.main{padding:var(--s4) var(--s4) 40px}.page-head{margin-bottom:var(--s4)}.page-head-row{align-items:stretch;gap:var(--s3);flex-direction:column}.page-actions>*{flex:auto}.page-actions>.primary{flex-basis:100%;order:-1}.page-actions>.danger{order:99}.card-head{padding:12px var(--s4)}.card-body{padding:var(--s4)}.stats{gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr))}.stats>:last-child:nth-child(odd),.stat-strip>:last-child:nth-child(odd){grid-column:1/-1}.stat{padding:var(--s3) var(--s4)}.stat-value,.stat.lg .stat-value{font-size:19px}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-strip .stat{border-bottom:1px solid var(--border)}.dash-grid,.grid-2{grid-template-columns:1fr}.dash-grid>:first-child{grid-column:auto}.form-grid{gap:var(--s3)}.form-grid>.c-3,.form-grid>.c-4,.form-grid>.c-6{grid-column:span 12}.filters,.filters-main{flex-direction:column;align-items:stretch}.filters:not(.open) .filters-main>:not(.search){display:none}.filters:not(.open) .filters-main:not(:has(.search)){display:none}button.filters-toggle{border-color:var(--border-strong);background:var(--surface);display:inline-flex}.search{flex:none;min-width:0;max-width:none}.fsel select{flex:1;max-width:none}.period,.drange{width:100%}.drange .date-input.bare{flex:1;width:auto}.page-actions>.menu{flex:auto;order:98}.page-actions>.menu>button{width:100%}.filters-more{flex-direction:column;align-items:stretch}.period .fsel{flex:1}.filters-end{justify-content:space-between}.segmented{scrollbar-width:none;flex-wrap:nowrap;max-width:100%;display:flex;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segmented button{flex:1 0 auto}.type-choice{grid-template-columns:1fr}.action-bar{margin:var(--s4) calc(-1 * var(--s4)) -40px;padding:10px var(--s4)}.action-bar .summary b{margin:0;display:block}.toast{bottom:16px;left:16px;right:16px}.databar .track{display:none}.modal-bg{align-items:flex-end;padding:0}.modal,.modal.wide{border-radius:16px 16px 0 0;max-width:none;max-height:94vh}.modal-foot{border-radius:0}.modal.confirm{margin:0}.modal-head,.modal-body,.modal-foot{padding-left:var(--s4);padding-right:var(--s4)}.modal-body>.form-actions{margin-left:calc(-1 * var(--s4));margin-right:calc(-1 * var(--s4));padding-left:var(--s4);padding-right:var(--s4)}.modal-foot>button,.form-actions>button{flex:1}.dt:not(.keep) thead{display:none}.dt:not(.keep),.dt:not(.keep) tbody,.dt:not(.keep) tfoot{display:block}.dt:not(.keep) tbody tr{padding:12px var(--s4);border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;display:grid}.dt:not(.keep) tbody tr:last-child{border-bottom:0}.dt:not(.keep) tbody tr td,.dt:not(.keep) tbody tr:hover td{background:0 0}.dt:not(.keep) tbody tr.neg{background:#fff8f8}.dt:not(.keep) td{text-align:right;border:0;grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:12px;min-width:0;font-size:14px;display:flex;padding:0!important}.dt:not(.keep) td:before{content:attr(data-label);color:var(--text-3);text-align:left;flex-shrink:0;font-size:13px}.dt:not(.keep) td:not(.m-title){flex-wrap:wrap}.dt:not(.keep) td:not(.m-title)>.sub{text-align:right;flex-basis:100%;margin-top:-2px}.dt:not(.keep) td>.line-list{align-items:flex-end}.dt:not(.keep) td[data-label=""]:before,.dt:not(.keep) td:empty{display:none}.dt:not(.keep) td.m-title{text-align:left;grid-column:1;margin-bottom:2px;font-weight:600;display:block}.dt:not(.keep) td.m-title:before{display:none}.dt:not(.keep) td.m-aside{grid-area:1/2;justify-content:flex-end}.dt:not(.keep) td.m-aside:before,.dt:not(.keep) td.m-hide{display:none}.dt:not(.keep) td.m-actions{justify-content:flex-end;margin-top:6px}.dt:not(.keep) td.m-actions:before{display:none}.dt:not(.keep) tfoot tr{padding:12px var(--s4);background:var(--surface-2);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;display:flex}.dt:not(.keep) tfoot td{background:0 0;border:0;padding:0;display:block}.dt:not(.keep) tfoot td:empty{display:none}.dt:not(.keep) tfoot td:before{content:attr(data-label);color:var(--text-3);font-size:12px;font-weight:400;display:block}.dt:not(.keep) tr.cancel td.n{text-decoration:none}.lines thead{display:none}.lines,.lines tbody,.lines tfoot{display:block;min-width:0!important}.lines tbody tr{border-bottom:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;padding:12px 0;display:grid;position:relative}.lines td{border:0;flex-direction:column;gap:4px;min-width:0;display:flex;padding:0!important}.lines td.n{justify-content:flex-end;align-items:flex-end;padding-top:0!important}.lines td:before{content:attr(data-label);color:var(--text-3);text-align:left;font-size:12px}.lines td[data-label=""]:before{display:none}.lines td.l-full{grid-column:1/-1}.lines td.l-remove{position:absolute;top:8px;right:0}.lines td:empty{display:none}.lines td input,.lines td .affix{width:100%!important}.lines tfoot tr{justify-content:space-between;align-items:center;padding:12px 0 0;display:flex}.lines tfoot td{display:block}.lines tfoot td:before{display:none}}
