:root{--ui-zoom: .96;--bg: #212224;--surface: #2a2c2e;--surface-2: #3c5436;--border: #446f36;--border-soft: #3c5436;--accent: #70ed41;--accent-2: #6bd145;--muted-green: #72ac5c;--muted-green-2: #5eb341;--deep-green: #446f36;--text: #e8efe6;--text-dim: #9bb295;--zebra: #26302440;--radius: 6px;--nest-step: 20px;--tab-width: 168px;--chip-height: 19px;--cell-control: 28px;--filters-per-row: 5;--filter-gap: 10px}html{zoom:var(--ui-zoom)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.4}.app{max-width:1280px;margin:0 auto;padding:24px 20px 48px}.page{display:contents}.page[hidden]{display:none}.filter-panel{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px var(--filter-gap);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:10px 12px;margin-bottom:12px}.filter-panel .field{flex:0 0 calc((100% - (var(--filters-per-row) - 1) * var(--filter-gap)) / var(--filters-per-row));min-width:0;margin-bottom:0}.field{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.field label,.field-label{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field label code{color:var(--muted-green)}.hint{margin:0 0 8px;font-size:11px;color:var(--text-dim);font-style:italic}input[type=text],input[type=number],select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:13px;font-family:inherit;width:100%}.filter-panel input[type=text],.filter-panel .range-trigger{height:var(--cell-control);padding:4px 8px}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:var(--cell-control);background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:4px;cursor:text}.chips:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.filter-panel .chips input[type=text]{flex:1 1 60px;min-width:56px;height:var(--chip-height);width:auto;background:transparent;border:none;padding:0 4px}.filter-panel .chips.has-chips input[type=text]{flex:0 1 auto;min-width:0;padding:0 2px}.filter-panel .chips.has-chips:not(:focus-within) input[type=text]{flex:0 0 0;width:0;height:0;padding:0}.filter-panel .chips input[type=text]:focus{outline:none;box-shadow:none}.chip{display:inline-flex;align-items:center;gap:2px;height:var(--chip-height);max-width:100%;background:var(--surface-2);border-radius:3px;padding:1px 2px 1px 6px;font-size:12px}.chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-remove{flex:none;background:transparent;border:none;color:var(--muted-green);font-size:13px;line-height:1;padding:0 3px;cursor:pointer}.chip-remove:hover{color:var(--accent)}input::placeholder{color:#5e6b58}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.range-field{position:relative}.range-trigger{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:8px;width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:13px;font-family:inherit;text-align:left;cursor:pointer}.range-trigger:hover,.range-trigger.open{border-color:var(--accent)}.range-summary{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.range-caret{flex:none;color:var(--muted-green);font-size:11px}.date-trigger{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:13px;font-family:inherit;text-align:left;cursor:pointer}.date-trigger:hover:not(:disabled){border-color:var(--accent)}.date-trigger:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.date-trigger:disabled{opacity:.55;cursor:not-allowed}.cell-input.date-trigger{text-align:center}.date-empty{color:var(--text-dim)}.range-popover{position:absolute;z-index:40;top:calc(100% + 6px);left:0;display:grid;grid-template-columns:auto auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 32px #0000008c;padding:10px;gap:10px}.combo-popover{position:fixed;top:0;left:0;z-index:120;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 32px #0000008c;padding:4px}.combo-list{display:flex;flex-direction:column;gap:1px;max-height:240px;overflow-y:auto}.combo-option{background:transparent;border:none;border-radius:4px;padding:5px 10px;color:var(--text-dim);font-family:inherit;font-size:13px;text-align:left;white-space:nowrap;cursor:pointer}.combo-option:hover,.combo-option.cursor{background:var(--surface-2);color:var(--text)}.combo-option.active{color:var(--accent);font-weight:600}.combo-empty{padding:6px 10px;color:var(--text-dim);font-size:12px;white-space:nowrap}.date-popover{position:fixed;top:0;left:0;z-index:120}.range-presets{display:flex;flex-direction:column;gap:2px;min-width:132px;border-right:1px solid var(--border-soft);padding-right:10px}.range-preset{background:transparent;border:none;border-radius:4px;padding:6px 10px;color:var(--text-dim);font-family:inherit;font-size:13px;text-align:left;white-space:nowrap;cursor:pointer}.range-preset:hover{background:var(--surface-2);color:var(--text)}.range-preset.active{color:var(--accent);font-weight:600}.range-preset:disabled{opacity:.35;cursor:not-allowed}.range-preset:disabled:hover{background:transparent;color:var(--text-dim)}.range-preset.clear{margin-top:4px;border-top:1px solid var(--border-soft);padding-top:8px}.range-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.range-title{font-size:13px;font-weight:600}.range-step{background:transparent;border:none;color:var(--muted-green);font-size:16px;line-height:1;padding:2px 8px;cursor:pointer}.range-step:hover{color:var(--accent)}.range-grid{display:grid;gap:2px}.range-grid.days{grid-template-columns:repeat(7,32px)}.range-grid.months{grid-template-columns:repeat(4,56px)}.range-weekday{text-align:center;font-size:11px;color:var(--text-dim);padding-bottom:2px}.range-cell{height:28px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text);font-family:inherit;font-size:12px;cursor:pointer}.range-cell:hover:not(:disabled){border-color:var(--accent)}.range-cell:disabled{color:#4c5748;cursor:not-allowed}.range-cell.muted{color:#6b7a66}.range-cell.today{font-weight:700}.range-cell.in-range{background:var(--surface-2)}.range-cell.end{background:var(--accent);color:var(--bg);font-weight:600}.range-cell.end.open{border-radius:4px;box-shadow:inset 0 -2px 0 var(--surface-2)}.range-ends{grid-column:1 / -1;display:flex;align-items:center;gap:8px;border-top:1px solid var(--border-soft);padding-top:8px;font-size:12px}.range-end{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:4px 8px}.range-end.empty{border-style:dashed;color:var(--text-dim)}.range-end-label{color:var(--text-dim)}.range-end-value{font-variant-numeric:tabular-nums}.range-end-clear{background:transparent;border:none;color:var(--muted-green);font-size:14px;line-height:1;padding:0 2px;cursor:pointer}.range-end-clear:hover{color:var(--accent)}.range-arrow{color:var(--text-dim)}.actions{display:flex;gap:10px;margin-top:14px}.filter-panel .actions{flex:1 0 100%;margin-top:5px;gap:8px}.filter-panel .btn{height:var(--cell-control);padding:0 14px}.segmented{display:flex;height:var(--cell-control);border:1px solid var(--border);border-radius:4px;overflow:hidden}.segmented button{flex:1;background:transparent;border:none;color:var(--text-dim);font-family:inherit;font-size:12px;cursor:pointer}.segmented button+button{border-left:1px solid var(--border)}.segmented button:hover:not(.active){background:var(--surface-2);color:var(--text)}.segmented button.active{background:var(--accent);color:var(--bg);font-weight:600}.btn{border:1px solid var(--border);border-radius:4px;padding:7px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .12s,color .12s,border-color .12s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2)}.btn-secondary{background:transparent;color:var(--muted-green)}.btn-secondary:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:var(--muted-green-2)}.status-bar{display:flex;align-items:center;gap:12px;min-height:22px;margin-bottom:8px;font-size:12px}.status{color:var(--text-dim)}.status.loading{color:var(--accent)}.status.error{color:#ff8a7a}.table-wrap{border:1px solid var(--border-soft);border-radius:var(--radius);height:65vh;overflow-y:auto;overflow-x:hidden}.table-wrap.busy{cursor:progress}.table-wrap.busy tbody{opacity:.45;pointer-events:none}.stats-table{border-collapse:collapse;width:100%;font-size:13px;table-layout:fixed}.section-body{margin-left:calc(var(--nest-step) * 2)}.section-body[hidden]{display:none}.rec-report{display:contents}.rec-report[hidden]{display:none}.sections,.subtabs{position:relative}.sections:before,.subtabs:before{content:"";position:absolute;left:-14px;top:-8px;width:10px;height:26px;border-left:2px solid var(--border-soft);border-bottom:2px solid var(--border-soft);border-bottom-left-radius:5px;pointer-events:none}.sections{display:flex;gap:4px;margin-left:var(--nest-step);margin-bottom:14px;border-bottom:1px solid var(--border-soft)}.section-tab{min-width:var(--tab-width);text-align:center;background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:8px 16px;color:var(--text-dim);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer}.section-tab:hover{color:var(--text)}.section-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.stats-table tbody tr.drillable{cursor:pointer}.subtabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--border-soft)}.subtabs-hint{margin-left:auto;align-self:center;padding-right:4px;font-size:11px;font-style:italic;color:var(--text-dim)}.subtab{min-width:var(--tab-width);text-align:center;background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:8px 16px;color:var(--text-dim);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer}.subtab:hover{color:var(--text)}.subtab.active{color:var(--accent);border-bottom-color:var(--accent)}.rec-spend-cols th:nth-child(1),.rec-spend-cols td:nth-child(1){width:18%}.rec-spend-cols th:nth-child(2),.rec-spend-cols td:nth-child(2){width:12%}.rec-spend-cols th:nth-child(3),.rec-spend-cols td:nth-child(3){width:14%}.rec-spend-cols th:nth-child(4),.rec-spend-cols td:nth-child(4){width:14%}.rec-spend-cols th:nth-child(5),.rec-spend-cols td:nth-child(5){width:14%}.rec-spend-cols th:nth-child(6),.rec-spend-cols td:nth-child(6){width:14%}.rec-spend-cols th:nth-child(7),.rec-spend-cols td:nth-child(7){width:14%}.rec-acc-cols th:nth-child(1),.rec-acc-cols td:nth-child(1){width:15%}.rec-acc-cols th:nth-child(2),.rec-acc-cols td:nth-child(2){width:14%}.rec-acc-cols th:nth-child(3),.rec-acc-cols td:nth-child(3){width:11%}.rec-acc-cols th:nth-child(4),.rec-acc-cols td:nth-child(4){width:13%}.rec-acc-cols th:nth-child(5),.rec-acc-cols td:nth-child(5){width:13%}.rec-acc-cols th:nth-child(6),.rec-acc-cols td:nth-child(6){width:13%}.rec-acc-cols th:nth-child(7),.rec-acc-cols td:nth-child(7){width:10%}.rec-acc-cols th:nth-child(8),.rec-acc-cols td:nth-child(8){width:11%}.rec-daily-cols th:nth-child(1),.rec-daily-cols td:nth-child(1){width:20%}.rec-daily-cols th:nth-child(2),.rec-daily-cols td:nth-child(2){width:18%}.rec-daily-cols th:nth-child(3),.rec-daily-cols td:nth-child(3){width:14%}.rec-daily-cols th:nth-child(4),.rec-daily-cols td:nth-child(4){width:16%}.rec-daily-cols th:nth-child(5),.rec-daily-cols td:nth-child(5){width:16%}.rec-daily-cols th:nth-child(6),.rec-daily-cols td:nth-child(6){width:16%}.rec-payments-cols th:nth-child(1),.rec-payments-cols td:nth-child(1){width:24%}.rec-payments-cols th:nth-child(2),.rec-payments-cols td:nth-child(2){width:16%}.rec-payments-cols th:nth-child(3),.rec-payments-cols td:nth-child(3){width:20%}.rec-payments-cols th:nth-child(4),.rec-payments-cols td:nth-child(4){width:20%}.rec-payments-cols th:nth-child(5),.rec-payments-cols td:nth-child(5){width:20%}.vs-head{display:flex;flex-direction:column;align-items:center;line-height:1.25}.vs-head .vs{color:var(--text-dim);font-weight:400}.cell-text{display:block;height:var(--cell-control);line-height:20px;padding:4px 6px;text-align:center;border:1px solid transparent;font-size:13px;overflow:hidden;text-overflow:ellipsis}.cell-text.dim{color:var(--text-dim)}.rec-spend-cols td.num.mismatch .cell-text,.rec-acc-cols td.num.mismatch .cell-text,.rec-daily-cols td.num.mismatch .cell-text,.rec-payments-cols td.num.mismatch .cell-text{color:#e0b64b;font-weight:600}.providers-cols th:nth-child(1),.providers-cols td:nth-child(1){width:18%}.providers-cols th:nth-child(2),.providers-cols td:nth-child(2){width:14%}.providers-cols th:nth-child(3),.providers-cols td:nth-child(3){width:18%}.providers-cols th:nth-child(4),.providers-cols td:nth-child(4){width:18%}.providers-cols th:nth-child(5),.providers-cols td:nth-child(5){width:13%}.providers-cols th:nth-child(6),.providers-cols td:nth-child(6){width:19%}.bindings-cols th:nth-child(1),.bindings-cols td:nth-child(1){width:20%}.bindings-cols th:nth-child(2),.bindings-cols td:nth-child(2){width:16%}.bindings-cols th:nth-child(3),.bindings-cols td:nth-child(3){width:16%}.bindings-cols th:nth-child(4),.bindings-cols td:nth-child(4){width:18%}.bindings-cols th:nth-child(5),.bindings-cols td:nth-child(5){width:20%}.bindings-cols th:nth-child(6),.bindings-cols td:nth-child(6){width:10%}.registry-cols th:nth-child(1),.registry-cols td:nth-child(1){width:34%}.registry-cols th:nth-child(2),.registry-cols td:nth-child(2){width:30%}.registry-cols th:nth-child(3),.registry-cols td:nth-child(3){width:36%}.stats-table thead th{position:sticky;top:0;z-index:1;background:var(--surface-2);color:var(--text);text-align:center;vertical-align:middle;padding:9px 12px;font-weight:600;white-space:normal;border-bottom:2px solid var(--deep-green)}.stats-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.stats-table th.sortable:hover{background:var(--deep-green);color:var(--accent)}.stats-table th.active{color:var(--accent)}.sort-ind{font-size:11px;color:var(--accent)}.sort-note{color:var(--text-dim);font-style:italic}.stats-table td{padding:7px 12px;text-align:center;vertical-align:middle;border-bottom:1px solid var(--border-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.stats-table td.num{font-variant-numeric:tabular-nums}.cell-tip{position:fixed;z-index:50;max-width:min(480px,90vw);padding:7px 10px;background:#15161a;color:var(--text);border:1px solid var(--accent);border-radius:6px;box-shadow:0 6px 22px #000000a6,0 0 0 3px #70ed411f;font-size:13px;line-height:1.35;white-space:normal;word-break:break-word;pointer-events:auto}.cell-tip:before{content:"";position:absolute;top:-6px;left:14px;width:10px;height:10px;background:#15161a;border-left:1px solid var(--accent);border-top:1px solid var(--accent);transform:rotate(45deg)}.stats-table tbody tr:nth-child(2n){background:var(--zebra)}.stats-table tbody tr:hover{background:#33402e}.stats-table td.empty{text-align:center;color:var(--text-dim);padding:24px}.stats-table tbody tr.deleted td{opacity:.4}.stats-table tbody tr.invalid td{background:#ff8a7a42}.stats-table tbody tr.invalid:hover td{background:#ff8a7a57}.stats-table tbody tr.edited td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.stats-table tbody tr.edited.invalid td:first-child{box-shadow:inset 3px 0 #ff8a7a}.readonly-cell{color:var(--text-dim);font-variant-numeric:tabular-nums}.cell-input.invalid,.field input.invalid,.date-trigger.invalid{border-color:#ff8a7a}.cell-input.invalid:focus,.field input.invalid:focus,.date-trigger.invalid:focus{border-color:#ff8a7a;box-shadow:0 0 0 1px #ff8a7a}.actions-cell{text-align:center}.cell-input:disabled,.btn-row:disabled{cursor:not-allowed}.actions-cell .btn-row+.btn-row{margin-left:6px}.btn-row,.btn-row-delete{height:var(--cell-control);background:transparent;color:var(--muted-green);border:1px solid var(--border);border-radius:4px;padding:4px 10px;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.btn-row:hover,.btn-row-delete:hover{background:var(--surface-2);color:var(--text);border-color:var(--muted-green-2)}.btn-row.on,.btn-row-delete.active{color:var(--accent);border-color:var(--accent)}.changes-bar{display:flex;align-items:center;gap:14px;background:var(--surface-2);border:1px solid var(--accent);border-radius:var(--radius);padding:10px 14px}.changes-slot{margin-top:14px;min-height:56px}.changes-count{font-weight:600;color:var(--accent)}.changes-error{color:#ff8a7a;font-size:12px}.changes-actions{display:flex;gap:10px;margin-left:auto}.pagination{display:flex;align-items:center;gap:16px;margin-top:14px}.page-info{font-size:12px;color:var(--text-dim)}.nav{display:flex;align-items:center;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border-soft)}.nav-account{display:flex;align-items:center;gap:10px;margin-left:auto;padding-bottom:6px}.nav-user{font-size:12px;color:var(--text-dim)}.nav-tab{min-width:var(--tab-width);text-align:center;padding:8px 16px;color:var(--text-dim);text-decoration:none;font-weight:600;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px}.nav-tab:hover{color:var(--text)}.nav-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.table-toolbar .status-bar{margin-bottom:0}.add-btn{padding:6px 14px}.toolbar-actions{display:flex;align-items:center;gap:10px}.refresh-btn{padding:6px 14px}.cell-input{width:100%;height:var(--cell-control);text-align:center;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 6px;font-size:13px;font-family:inherit}.cell-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-start;justify-content:center;padding:64px 16px;z-index:100}.modal{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 40px #0009}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-soft)}.modal-header h2{margin:0;font-size:16px;color:var(--accent)}.modal-close{background:transparent;border:none;color:var(--text-dim);font-size:22px;line-height:1;cursor:pointer}.modal-close:hover{color:var(--text)}.modal-body{padding:16px}.modal-error{margin:4px 0 0;color:#ff8a7a;font-size:13px}.conflict-msg{margin:0 0 14px;font-size:13px;line-height:1.45}.step{border:1px solid var(--border-soft);border-radius:var(--radius);padding:12px 14px;margin-bottom:12px}.step.pending{opacity:.55}.step.done{border-color:var(--accent)}.step-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:600}.step-no{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--surface-2);color:var(--accent);font-size:12px}.step.done .step-no{background:var(--accent);color:var(--bg)}.req{color:var(--accent)}.modal-actions{display:flex;gap:10px;margin-top:16px}
