:root{--paper: #f4f7f5;--sheet: #ffffff;--ink: #17231d;--muted: #5b6b62;--rule: #d6dfd9;--ledger: #1d6a49;--ledger-dark: #15523a;--ledger-soft: #e2efe8;--danger: #a3302a;--danger-soft: #fbe9e7;--warn: #8a5a00;--warn-soft: #fbefd3;--goal: #f6c400;--goal-soft: #fff6cc;--goal-ink: #3b2d00;--rule-light: #c9d5ce;--reserve-soft: #d6e6fb;--reserve-soft-hover: #c5dbf8;--reserve-ink: #1f4f99;--skip-soft: #fbeceb;--skip-soft-hover: #f6dfdd;--income-soft: #e6f5ec;--income-soft-hover: #d9efe2;--radius: 6px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.45}h1{font-size:24px;margin:0}h2{font-size:16px;margin:0}p{margin:0}.muted{color:var(--muted)}.pad{padding:20px}.nowrap{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;padding:10px 24px;background:var(--sheet);border-bottom:1px solid var(--rule)}.brand{font-weight:700;font-size:18px;color:var(--ledger);letter-spacing:-.01em}.nav{display:flex;gap:4px;flex:1}.nav a{padding:6px 12px;border-radius:var(--radius);color:var(--muted);text-decoration:none;font-weight:500}.nav a:hover{color:var(--ink);background:var(--paper)}.nav a.active{color:var(--ledger-dark);background:var(--ledger-soft)}.company-switcher{display:flex;align-items:center;gap:8px}.company-switcher>label{font-size:13px;color:var(--muted)}.main{max-width:1180px;margin:0 auto;padding:24px}.main>section{display:flex;flex-direction:column;gap:6px}.main>section>.panel,.main>section>.toolbar{margin-top:10px}.panel{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius)}.editor{display:flex;flex-direction:column;gap:14px;padding:16px 18px}.editor-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px 16px;align-items:start}.field.align-end{align-self:end;align-items:flex-start}.small{font-size:13px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:13px;font-weight:600}input,select,button{font:inherit;color:inherit}input,select{width:100%;padding:7px 9px;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius)}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--ledger);outline-offset:1px}.company-switcher select{width:auto;max-width:320px}input.money{text-align:right;font-variant-numeric:tabular-nums}.field.invalid input,.field.invalid select{border-color:var(--danger)}.field-error{font-size:13px;color:var(--danger)}.hint{font-size:13px;color:var(--muted)}.inline-row{display:flex;align-items:center;gap:8px}.inline-row>*{min-width:0}.inline-row>span{flex:none;white-space:nowrap}.inline-row>select{padding-left:6px;padding-right:2px}input.count{flex:0 0 76px;font-variant-numeric:tabular-nums}.actions{display:flex;justify-content:flex-end;gap:8px}.button{padding:7px 14px;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);font-weight:600;cursor:pointer}.button:hover{background:var(--paper)}.button.primary{background:var(--ledger);border-color:var(--ledger);color:#fff}.button.primary:hover{background:var(--ledger-dark)}.button:disabled{opacity:.55;cursor:default}.link{padding:0;background:none;border:0;color:var(--ledger);font-weight:600;cursor:pointer}.link:hover{text-decoration:underline}.link.danger{color:var(--danger)}.banner{padding:10px 12px;border-radius:var(--radius)}.banner.error{background:var(--danger-soft);color:var(--danger)}.list>.banner{margin:12px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:9px 14px;text-align:left;border-bottom:1px solid var(--rule)}th{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--paper)}tbody tr.editing{background:var(--ledger-soft)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.row-actions{text-align:right;white-space:nowrap}.row-actions>*+*{margin-left:12px}.dialog{width:min(380px,calc(100vw - 32px));padding:20px;border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);background:var(--sheet)}.dialog::backdrop{background:#17231d66}.dialog form{display:flex;flex-direction:column;gap:14px}.segmented{display:inline-flex;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}.segmented button{padding:6px 14px;background:var(--sheet);border:0;border-left:1px solid var(--rule);font-weight:600;color:var(--muted);cursor:pointer}.segmented button:first-child{border-left:0}.segmented button:hover{color:var(--ink);background:var(--paper)}.segmented button.active{background:var(--ledger);color:#fff}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px}.inline-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;white-space:nowrap}.inline-label select,.inline-label input[type=date]{width:auto}.inline-label.check{font-weight:500;cursor:pointer}.inline-label.check input{width:auto}.banner.warn{background:var(--warn-soft);color:var(--warn)}.banner.notice{background:var(--goal-soft);color:var(--goal-ink);font-weight:600}.lines{display:flex;flex-direction:column;gap:8px}.lines-table th,.lines-table td{padding:5px 8px 5px 0;border-bottom:0}.lines-table tbody tr:hover{background:none}.lines-table th:nth-child(3),.lines-table td:nth-child(3){width:170px}.lines-table tfoot td{padding-top:8px;border-top:1px solid var(--rule)}.lines-table .total{font-weight:700;padding-right:17px}input.bad{border-color:var(--danger)}.disclosure{display:inline-flex;align-items:baseline;gap:6px;padding:0;background:none;border:0;font-weight:600;text-align:left;cursor:pointer}.disclosure:hover{color:var(--ledger)}.caret{display:inline-block;width:12px;color:var(--muted)}.count{margin-left:8px;font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap}tbody tr.sub-row{background:var(--paper)}.sub-row td{padding-top:6px;padding-bottom:6px;font-size:14px}.sub-row .indent{padding-left:44px}.tag{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:3px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.tag.danger{background:var(--danger-soft);color:var(--danger)}.tag.goal{background:var(--goal);color:var(--goal-ink)}.forecast .opening td{font-weight:700;background:var(--paper)}.forecast.by-item tbody td{border-bottom:0;border-top:1px dashed var(--rule-light)}.forecast.by-item tbody tr.day-start td{border-top:2px solid var(--rule)}.forecast.by-item tbody tr.opening td{border-top:0}.forecast tr.is-cleared td{color:var(--muted)}.forecast tr.is-skip td{background:var(--skip-soft)}.forecast tr.is-skip:hover td{background:var(--skip-soft-hover)}.forecast tr.holds-goal td{background:var(--goal-soft)}.negative{color:var(--danger);font-weight:700}select.status{width:auto;padding:3px 6px;font-size:13px;font-weight:600}select.status-paid{border-color:var(--ledger);color:var(--ledger-dark);background:var(--ledger-soft)}select.status-cleared{color:var(--muted)}select.status-skip,select.status-mixed{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}.forecast tr.goal-line td,.forecast.by-item tbody tr.goal-line td{padding:0;border:0}.forecast tr.goal-line:hover{background:none}.goal-bar{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;padding:6px 14px;background:var(--goal);color:var(--goal-ink);font-size:13px;font-weight:700;box-shadow:0 0 16px 3px #f6c400bf;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.goal-bar.dragging{cursor:grabbing;box-shadow:0 0 26px 7px #f6c400e6}.goal-bar .grip{font-size:16px;line-height:1}.dragging-goal{-webkit-user-select:none;user-select:none;cursor:grabbing}.dragging-goal select,.dragging-goal button{pointer-events:none}.amount-button{padding:2px 6px;margin:-2px -6px;background:none;border:1px dashed transparent;border-radius:4px;font-variant-numeric:tabular-nums;cursor:text}.amount-button:hover{border-color:var(--muted);background:var(--sheet)}input.amount-edit{width:120px;padding:2px 6px;margin:-3px -7px}.adjusted{margin-top:2px;font-size:12px;color:var(--muted);white-space:nowrap}.adjusted .link{margin-left:8px;font-size:12px}.combo{position:relative}.combo-list{position:absolute;z-index:20;top:calc(100% + 2px);left:0;min-width:100%;max-width:340px;margin:0;padding:4px;list-style:none;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:0 6px 18px #17231d29}.combo-list li{padding:5px 8px;border-radius:4px;white-space:nowrap;cursor:pointer}.combo-list li.active{background:var(--ledger);color:#fff}.lines-table{table-layout:fixed}.lines-table th:last-child,.lines-table td:last-child{width:90px}.push-right{margin-left:auto}.tag.income{background:var(--ledger-soft);color:var(--ledger-dark)}.forecast tr.is-income td{background:var(--income-soft)}.forecast tr.is-income:hover td{background:var(--income-soft-hover)}.forecast tr.is-income td:nth-child(4){color:var(--ledger-dark);font-weight:600}.income-date{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;font-size:13px}.income-date input[type=date]{width:auto;padding:2px 6px;font-size:13px}.income-date .adjusted{margin-top:0}.one-time-buttons{display:flex;flex-wrap:wrap;gap:8px}.one-time-buttons .button{padding:5px 12px;font-size:14px}.align-right{text-align:right}.tag.plain{background:var(--paper);color:var(--muted);border:1px solid var(--rule)}.row-tools{margin-left:12px;font-size:13px;white-space:nowrap}.row-tools>*+*{margin-left:10px}dialog.dialog{overflow:visible}.submission{margin-left:8px;font-weight:600;white-space:nowrap}.date-button{padding:2px 6px;margin:-2px -6px;background:none;border:1px dashed transparent;border-radius:4px;cursor:text}.date-button:hover{border-color:var(--muted);background:var(--sheet)}input.date-edit{width:auto;padding:2px 6px;margin:-3px -7px}.forecast tr.is-reserve td{background:var(--reserve-soft)}.forecast tr.is-reserve:hover td{background:var(--reserve-soft-hover)}.tag.reserve{background:var(--reserve-ink);color:#fff}.reserve-option{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}.reserve-option input:not([type=checkbox]){width:240px;max-width:100%}.dialog.wide{width:min(720px,calc(100vw - 32px))}.actions .push-left{margin-right:auto}input.check-number{width:84px;padding:3px 6px;font-size:13px;font-variant-numeric:tabular-nums}.forecast.by-item th:nth-child(3){width:112px}.forecast.by-item th:nth-child(4){width:100px}.list-title{padding:12px 14px 4px;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.button.small{padding:3px 12px;font-size:13px}.print-report{position:absolute;left:-10000px;top:0;width:7.5in;visibility:hidden;color:#000;background:#fff;font-size:10pt;line-height:1.35}.print-report h1{font-size:16pt;margin:0}.print-report .print-subtitle{font-size:11pt;margin:2pt 0 10pt}.print-report table{width:100%;border-collapse:collapse}.print-report th,.print-report td{padding:3.5pt 6pt;border-bottom:.5pt solid #c9d5ce;text-align:left;vertical-align:top}.print-report th{font-size:8pt;letter-spacing:.05em;text-transform:uppercase;color:#444;border-bottom:1pt solid #666}.print-report .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.print-report .opening td{font-weight:700}.print-report tr.is-income td{background:var(--income-soft)}.print-report tr.is-reserve td{background:var(--reserve-soft)}.print-report tr.is-skip td{background:var(--skip-soft)}.print-report tr.print-goal td{background:var(--goal);color:var(--goal-ink);font-weight:700;border-bottom:0}.print-report .tag{font-size:6.5pt;padding:.5pt 4pt}.print-report .submission{font-weight:600}.print-estimate{font-size:16px}@page{size:letter portrait;margin:.5in}@media print{body{background:#fff}.topbar,.main>section>:not(.print-report),dialog{display:none!important}.main{max-width:none;margin:0;padding:0}.print-report{position:static;visibility:visible;width:auto}.print-report,.print-report *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-report tr{break-inside:avoid}.print-report thead{display:table-header-group}}.seasonal-table{max-width:520px}.seasonal-table th:nth-child(2),.seasonal-table td:nth-child(2){width:170px}.seasonal-date{display:inline-block;padding:7px 0}.link.spaced{margin-left:18px}.reserve-option input.percent{width:70px;text-align:right}.reserve-option .combo input{width:200px}.forecast tr.is-disbursement td:nth-child(2){padding-left:34px}.chart-panel{padding-bottom:6px}.chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 8px;border-bottom:1px solid var(--rule)}.chart-head h2{font-size:17px}.chart-list{list-style:none;margin:0;padding:0}.chart-row{display:flex;align-items:center;gap:12px;min-height:34px;padding:2px 14px;border-radius:4px}.chart-row:hover{background:var(--paper)}.depth-1>.chart-row{padding-left:38px}.depth-2>.chart-row{padding-left:62px}.depth-0>.chart-row{margin-top:6px}.depth-0>.chart-row .chart-name{font-weight:700}.depth-2>.chart-row .chart-name{color:var(--muted)}.chart-name{padding:2px 6px;margin-left:-6px;background:none;border:1px dashed transparent;border-radius:4px;text-align:left;cursor:text}.chart-name:hover{border-color:var(--muted);background:var(--sheet)}input.chart-input{width:min(340px,100%);padding:3px 6px;margin-left:-7px}.chart-tools{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:13px;white-space:nowrap;opacity:0}.chart-row:hover .chart-tools,.chart-row:focus-within .chart-tools{opacity:1}.arrow{padding:0 3px;background:none;border:0;color:var(--ledger);font-size:11px;cursor:pointer}.arrow:disabled{color:var(--rule);cursor:default}select.chart-move{width:auto;max-width:340px;padding:3px 6px;font-size:13px}.chart-unmatched{margin:10px 14px 8px;padding:8px 10px;background:var(--warn-soft);color:var(--warn);border-radius:4px;font-size:13px}.sign-in{display:grid;place-items:center;min-height:100vh;padding:24px}.sign-in form{width:min(360px,100%)}.who{display:flex;align-items:center;gap:10px;font-size:13px}.who span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
