:root{color:#172017;background:#f3efe6;font-family:Segoe UI,system-ui,sans-serif}*,:before,:after{box-sizing:border-box}body{margin:0;padding-bottom:1.25rem}.app-version{z-index:5;letter-spacing:.02em;color:#9aa094;font-variant-numeric:tabular-nums;pointer-events:none;margin:0;font-size:.7rem;line-height:1;position:fixed;bottom:.4rem;right:.7rem}.signin{max-width:22rem;margin:4rem auto;padding:1.5rem}.signin .brand{font-weight:700}.btn,.btn-primary{font:inherit;cursor:pointer;border-radius:8px;padding:.5rem .9rem}.btn{background:#fffcf7;border:1px solid #d8d2c4}.btn:disabled,.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-primary:disabled[aria-busy=true]{opacity:1;align-items:center;gap:.45rem;display:inline-flex}.btn-primary .spinner{border-color:#fff #ffffff73 #ffffff73;width:.9rem;height:.9rem}.btn-primary{color:#fff;background:#0f5c4c;border:1px solid #0f5c4c}.dev-signin{gap:.5rem;margin-top:1.5rem;display:grid}input,select,textarea{width:100%;max-width:100%;font:inherit;background:#fff;border:1px solid #d8d2c4;border-radius:8px;padding:.5rem .55rem}.alert{color:#9b2c2c}.app-nav{color:#f4f1ea;background:#141914;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.25rem;display:flex}.app-nav .brand{font-weight:700}.nav-links{flex-wrap:wrap;gap:.25rem;display:flex}.nav-links a,.app-nav .linkish{color:#d8d2c4;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.4rem .75rem;text-decoration:none}.nav-links a[data-status=active],.nav-links a:hover,.app-nav .linkish:hover{color:#fff;background:#2a332a}.nav-session{align-items:center;gap:.25rem;display:flex}.who{color:#b7b1a4;padding:.4rem .5rem;font-size:.9rem}.page{max-width:1100px;margin:0 auto;padding:1.25rem}.page-heading{margin:0 0 1rem}.page-heading h1{margin:0}.page-heading p{color:#5c675c;max-width:46rem;margin:.3rem 0 0;font-size:.92rem}.balance-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.dashboard-tools{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.balance{color:inherit;text-decoration:none}.balance .label{text-transform:uppercase;letter-spacing:.08em;color:#5c675c;font-size:.75rem}.balance .figure{letter-spacing:-.03em;font-size:2rem;font-weight:750}.balance .to{color:#0f5c4c;font-weight:600}.month-picker{align-items:center;gap:.4rem;display:flex}.icon-btn{width:2.2rem;height:2.2rem;font:inherit;cursor:pointer;background:#fffcf7;border:1px solid #d8d2c4;border-radius:8px}.columns{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.card{background:#fffcf7;border:1px solid #d8d2c4;border-radius:12px;padding:1rem}.line{grid-template-columns:minmax(0,1fr) 8rem;align-items:center;gap:.5rem;padding:.35rem 0;display:grid}.line.income .name{color:#0f5c4c}.line.deduction .name{color:#9b2c2c}.line.income+.line.deduction{border-top:2px solid #e3c0c0;margin-top:.35rem;padding-top:.55rem}.line>*,.form-row>*{min-width:0}input.amount{text-align:right;font-variant-numeric:tabular-nums}.month-picker select{width:auto;min-width:11rem}.net{border-top:2px solid #172017;justify-content:space-between;margin-top:.75rem;padding-top:.75rem;font-weight:700;display:flex}.banner{background:#e4f2ed;border:1px solid #b7d8cc;border-radius:12px;margin:1rem 0;padding:.9rem 1rem}.banner.zero{background:#eeeae0;border-color:#d8d2c4}.banner.robbie{background:#f8eaea;border-color:#e3c0c0}.form-row{grid-template-columns:8rem minmax(0,1fr) max-content;align-items:stretch;gap:.5rem;margin:.75rem 0;display:grid}.form-row .btn-primary{white-space:nowrap}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;border-bottom:1px solid #d8d2c4;padding:.45rem}th.num,td.num{text-align:right}.ledger-mini td.num{width:8rem}.ledger-table th,.ledger-table td{white-space:nowrap}.ledger-table .comment{white-space:normal;overflow-wrap:break-word}.ledger-table td.month{vertical-align:top}.ledger-table .month-group+.month-group tr:first-child td{border-top-width:2px}.ledger-table tbody.month-group:nth-of-type(2n) td{background:#f3eee3}.ledger-table tbody.month-group tr:hover td,.ledger-table tbody.month-group:nth-of-type(2n) tr:hover td{background:#d5e6df}.save-field{width:100%;min-width:0;display:block;position:relative}.save-field input:disabled{opacity:1;color:inherit}.save-overlay{pointer-events:none;color:#0000;background:#fffcf7c7;border-radius:8px;place-items:center;font-size:0;display:grid;position:absolute;inset:0}.save-saving .save-overlay:before{content:"";border:2px solid #d8d2c4;border-top-color:#0f5c4c;border-radius:50%;width:.9rem;height:.9rem;animation:.65s linear infinite save-spin}.save-ok .save-overlay,.save-error .save-overlay{animation:.9s both save-fade}.save-ok .save-overlay:before{content:"";border-bottom:2.5px solid #0f5c4c;border-right:2.5px solid #0f5c4c;width:.45rem;height:.8rem;transform:rotate(45deg)translateY(-.1rem)}.save-error .save-overlay:before{content:"";background:linear-gradient(#9b2c2c,#9b2c2c) 50%/100% 2px no-repeat,linear-gradient(#9b2c2c,#9b2c2c) 50%/2px 100% no-repeat;width:.85rem;height:.85rem;transform:rotate(45deg)}@keyframes save-spin{to{transform:rotate(360deg)}}@keyframes save-fade{0%{opacity:0}18%{opacity:1}70%{opacity:1}to{opacity:0}}.neg{color:#9b2c2c}.pos{color:#0f5c4c}.sub{color:#5c675c;margin:.25rem 0 0}.settings-grid{gap:1rem;display:grid}.threshold-row{grid-template-columns:minmax(0,10rem) max-content;align-items:end}.add-source-row{grid-template-columns:minmax(0,1fr) 8rem 8rem max-content}.sources td input{min-width:10rem}.page-wide{max-width:1400px}.dashboard-hint{margin:-.5rem 0 1rem}.dashboard-ledger{margin-top:1.25rem}.grid-card{padding:0;overflow:hidden}.grid-wrap{overflow-x:auto}.year-grid{min-width:72rem;font-size:.82rem}.year-grid th,.year-grid td{white-space:nowrap;min-width:5.4rem;padding:.4rem .45rem}.year-grid .rowhead{z-index:1;background:#fffcf7;min-width:9.5rem;font-weight:600;position:sticky;left:0}.year-grid thead .rowhead{z-index:2;background:#ece7db}.year-grid thead th{background:#ece7db;position:sticky;top:0}.year-grid thead a{color:inherit;border-bottom:1px dashed #5c675c;text-decoration:none}.year-grid .section td{letter-spacing:.04em;text-transform:uppercase;background:#e8e3d6;font-size:.7rem;font-weight:700}.year-grid .net-row td{border-top:2px solid #172017;font-weight:700}.year-grid tr.spacer td{background:0 0;border:0;height:1.75rem;padding:0}.year-grid tbody tr.spacer:hover td{background:0 0}.year-grid .accrue-row td{background:#e4f2ed;font-weight:700}.year-grid .empty{color:#c4bdae}.year-grid tr.income .rowhead{color:#0f5c4c}.year-grid tr.deduction td{background:#f8eaea}.year-grid tr.deduction .rowhead{color:#9b2c2c;background:#f8eaea}.year-grid tr.income+tr.deduction td{border-top:2px solid #e3c0c0}.year-grid tbody tr:hover td{background:#ece7db}.year-grid thead th.month-open{background:#efe0b0}.year-grid td.month-open{box-shadow:inset 0 0 0 999px #e8b03229}.year-grid tbody tr:hover td.month-open{box-shadow:inset 0 0 0 999px #e8b03247}.ledger-table tbody.month-group.month-open td{background:#f6edd4}.ledger-table tbody.month-group.month-open tr:hover td{background:#efe0b0}.page.month-open .director-column{background:#fff8e8;border-color:#d4b56a}.finalise-bar{background:#f6edd4;border:1px solid #d4b56a;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.page.month-finalised .finalise-bar{background:#e4f2ed;border-color:#b7d8cc}.finalise-bar .sub{margin:.25rem 0 0}.zoho-fill{margin:0 0 1rem}.dialog.zoho-dialog{grid-template-rows:auto minmax(0,1fr) auto;width:min(54rem,100vw - 2rem);min-width:0;max-width:calc(100vw - 2rem);max-height:calc(100dvh - 2rem)}.zoho-dialog-body{align-content:start;gap:.75rem;min-width:0;min-height:0;display:grid;overflow:auto}.zoho-scroll{min-width:0;overflow-x:auto}.zoho-status{align-items:center;gap:.65rem;margin:0;display:flex}.spinner{border:2px solid #d8d2c4;border-top-color:#0f5c4c;border-radius:50%;flex:none;width:1.1rem;height:1.1rem;animation:.7s linear infinite zoho-spin}@keyframes zoho-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{border-right-color:#0f5c4c;animation:none}}.zoho-dialog caption{caption-side:top;text-align:left;padding:0 0 .35rem;font-weight:700}.zoho-accounts th,.zoho-accounts td,.zoho-lines th,.zoho-lines td{vertical-align:top}.zoho-accounts .num,.zoho-lines .num{white-space:nowrap}.zoho-lines{font-size:.92rem}@media (width<=720px){.dialog.zoho-dialog{padding:.9rem}.zoho-accounts,.zoho-lines{font-size:.82rem}}input:disabled,select:disabled{color:#5c675c;cursor:not-allowed;background:#f3eee3}.cashflow{min-width:0;max-width:100%}.cashflow-lock{border:0;width:100%;min-width:0;max-width:100%;margin:0;padding:0}.cashflow-lock-body{min-width:0;max-width:100%}.dialog-backdrop{z-index:20;background:#1419148c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{background:#fffcf7;border:1px solid #d8d2c4;border-radius:12px;gap:.75rem;width:min(28rem,100%);padding:1.25rem;display:grid}.dialog h2{margin:0}.dialog .dialog-actions{justify-content:flex-end;gap:.5rem;display:flex}.dialog .warn{color:#9b2c2c}.dialog label.check{align-items:flex-start;gap:.55rem;display:flex}.dialog input[type=checkbox]{width:auto;margin-top:.2rem}.icon-btn:disabled{opacity:.45;cursor:not-allowed}@media (width<=720px){.columns,.form-row{grid-template-columns:1fr}.sources td input{min-width:0}.who{display:none}.balance .figure{font-size:1.6rem}}.history-card{margin-top:1rem}.history-day{margin:1rem 0 0}.history-day h3{color:#5c675c;margin:0 0 .4rem;font-size:.85rem;font-weight:650}.history-entry{border-top:1px solid #d8d2c4;padding:.55rem 0}.history-meta{color:#5c675c;flex-wrap:wrap;gap:.5rem 1rem;font-size:.9rem;display:flex}.history-changes{margin:.25rem 0 0;padding-left:1.1rem}.history-changes li{margin:.15rem 0}.cashflow-tools{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.75rem;display:flex}.cashflow-view{align-items:center;gap:.5rem;margin-left:auto;display:inline-flex}.cashflow-horizon{background:#fffcf7;border:1px solid #d8d2c4;border-radius:6px;display:inline-flex;overflow:hidden}.cashflow-horizon .cashflow-tool-btn{color:#5c675c;min-width:2.25rem;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0}.cashflow-horizon .cashflow-tool-btn+.cashflow-tool-btn{box-shadow:inset 1px 0 #d8d2c4}.cashflow-horizon .cashflow-tool-btn[aria-pressed=true]{color:#fff;background:#0f5c4c}.cashflow-horizon .cashflow-tool-btn:focus-visible{outline-offset:-2px;z-index:1;outline:2px solid #0f5c4c}.cashflow-horizon .cashflow-tool-btn:disabled{opacity:.45;cursor:not-allowed}.cashflow-tool-btn{border-radius:6px;padding:.25rem .65rem;font-size:.85rem}.cashflow-refreshed{color:#8a8172;font-size:.75rem;line-height:1.2}.cashflow-tools p{flex-wrap:wrap;gap:.35rem .75rem;margin:0;display:flex}.cashflow-scroll{max-width:100%;overflow-x:auto}.cashflow-grid{font-size:.82rem}.cashflow-grid thead th:not(:first-child){text-align:right}.cashflow-grid th,.cashflow-grid td{white-space:nowrap;background:#fffcf7;padding:.4rem .45rem}.cashflow-grid thead th{background:#ece7db}.cashflow-grid tr.flow-in th,.cashflow-grid tr.flow-in td{background:#e4f2ed}.cashflow-grid tr.flow-out th,.cashflow-grid tr.flow-out td{background:#f8eaea}.cashflow-grid tr.spacer+tr.flow-out th,.cashflow-grid tr.spacer+tr.flow-out td{border-top:2px solid #e3c0c0}.cashflow-grid tr.closing th,.cashflow-grid tr.closing td{border-top:2px solid #172017;font-weight:700}.cashflow-grid tbody tr:hover th,.cashflow-grid tbody tr:hover td{background:#ece7db}.cashflow-grid thead th.col-actual{background:#c4c0b4}.cashflow-grid tbody td.col-actual{background:#e4e1d8}.cashflow-grid tr.flow-in td.col-actual{background:#c5dbd3}.cashflow-grid tr.flow-out td.col-actual{background:#e4d0d0}.cashflow-grid tbody tr:hover td.col-actual{background:#d5d1c6}.cashflow-grid tbody tr.flow-in:hover td.col-actual{background:#b4cfc6}.cashflow-grid tbody tr.flow-out:hover td.col-actual{background:#d4bdbd}.cashflow-grid thead th.col-current{background:#e2b84a}.cashflow-grid tbody td.col-current{background:#ffe9a3}.cashflow-grid tr.flow-in td.col-current{background:#d7e7a8}.cashflow-grid tr.flow-out td.col-current{background:#f6d0ae}.cashflow-grid tbody tr:hover td.col-current{background:#ffd56a}.cashflow-grid tbody tr.flow-in:hover td.col-current{background:#c6db8e}.cashflow-grid tbody tr.flow-out:hover td.col-current{background:#e8bc94}.cashflow-grid tr.spacer td{background:0 0;border:0;height:1.75rem;padding:0}.cashflow-grid tbody tr.spacer:hover td{background:0 0}.cashflow-grid tr.flow-in>th{color:#0f5c4c}.cashflow-grid tr.flow-out>th{color:#9b2c2c}.cashflow-grid .zero{color:#c4bdae}.cashflow-grid .btn{color:#172017}.cashflow-grid th:first-child,.cashflow-grid td:first-child{z-index:1;min-width:12rem;position:sticky;left:0}.cashflow-row-label{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.cashflow-grid tr.flow-in .cashflow-row-label>.cashflow-commit:has(.cashflow-amount){margin-left:auto}.cashflow-commit{align-items:center;gap:.25rem;max-width:100%;display:inline-flex}.cashflow-grid .cashflow-cell-spinner{border-width:1.5px;width:.7rem;height:.7rem}.cashflow-grid tr.flow-in .cashflow-remove{margin-left:0}.cashflow-grid .cashflow-name,.cashflow-grid .cashflow-name-input{width:auto;max-width:100%;color:inherit;font:inherit;line-height:inherit;text-align:left;cursor:text;background:0 0;border:0;border-radius:0;margin:0;padding:0}.cashflow-grid .cashflow-name:hover,.cashflow-grid .cashflow-name:focus-visible,.cashflow-grid .cashflow-name-input:focus{outline:none;box-shadow:inset 0 -1px}.cashflow-grid .cashflow-name:disabled,.cashflow-grid .cashflow-name-input:disabled{color:inherit;cursor:not-allowed;box-shadow:none;background:0 0}.cashflow-name-edit{flex:auto;align-items:center;gap:.35rem;min-width:0;display:flex}.cashflow-name-edit .cashflow-remove{margin-left:auto}.cashflow-remove{color:#9b2c2c;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;width:1.4rem;height:1.4rem;margin-left:auto;padding:0}.cashflow-remove:hover,.cashflow-remove:focus-visible{background:#f8eaea}.cashflow-remove:disabled{opacity:.45;cursor:not-allowed}.cashflow-remove-icon{stroke:currentColor;stroke-width:1.6px;fill:none;width:.75rem;height:.75rem;margin:auto;display:block}.cashflow-clear{color:#9b2c2c;opacity:.55;vertical-align:middle;cursor:pointer;background:0 0;border:0;border-radius:2px;justify-content:center;align-items:center;width:.9rem;height:.9rem;margin:0 0 0 .15rem;padding:0;display:inline-flex}.cashflow-clear:hover,.cashflow-clear:focus-visible{opacity:1}.cashflow-clear:disabled{opacity:.35;cursor:not-allowed}.cashflow-clear-icon{stroke:currentColor;stroke-width:1.4px;fill:none;width:.5rem;height:.5rem;display:block}.cashflow-grid th:not(:first-child),.cashflow-grid td:not(:first-child){min-width:5.4rem}.cashflow-grid .cashflow-amount{width:auto;max-width:100%;box-shadow:none;color:inherit;font:inherit;line-height:inherit;font-variant-numeric:tabular-nums;text-align:right;background:0 0;border:0;border-radius:0;margin:0;padding:0}.cashflow-grid .cashflow-amount:focus{outline:none;box-shadow:inset 0 -1px}.cashflow-grid .cashflow-amount:disabled{color:#5c675c;background:0 0}.cashflow-section{background:#fffcf7;border:1px solid #d8d2c4;border-radius:12px;margin-top:1rem;padding:.85rem 1rem 1rem}.cashflow-section h2{margin:0 0 .55rem;font-size:1.05rem}.cashflow-forms{gap:.35rem;margin-top:0;display:grid}.cashflow-add,.cashflow-hidden li{flex-wrap:wrap;align-items:center;gap:.3rem .5rem;display:flex}.cashflow-add .btn-primary{border-radius:6px;padding:.25rem .65rem;font-size:.85rem}.cashflow-add-note{color:#5c675c;flex:16rem;min-width:min(100%,14rem);margin:0;font-size:.78rem;line-height:1.25}.cashflow-accounts h2{margin-bottom:.35rem}.cashflow-accounts-note{color:#5c675c;max-width:46rem;margin:0;font-size:.92rem}.cashflow-account-group h3{color:#5c675c;margin:.9rem 0 .35rem;font-size:.85rem;font-weight:650}.cashflow-accounts ul{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.cashflow-account{border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(11rem,18rem);align-items:center;column-gap:1rem;padding:.4rem .55rem;display:grid}.cashflow-account:hover,.cashflow-account:focus-within{background:#fff;box-shadow:inset 0 0 0 1px #d8d2c4}.cashflow-account-label{align-items:baseline;gap:.75rem;min-width:0;display:flex}.cashflow-account-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.cashflow-account-label span:not(.cashflow-account-name){color:#5c675c;flex:none}.cashflow-account select{width:100%}.cashflow-field{flex:none;align-items:center;gap:.3rem;min-width:0;display:flex}.cashflow-field span{color:#5c675c;flex:none;font-size:.78rem}.cashflow-add .cashflow-field input,.cashflow-add .cashflow-field select{border-radius:6px;flex:none;width:8rem;padding:.25rem .45rem}.cashflow-add input[inputmode=decimal],.cashflow-add input[aria-label=Dated\ month],.cashflow-add select{width:6.25rem}.vat-tools{flex-wrap:wrap;align-items:end;gap:.75rem;margin-bottom:1rem;display:flex}.vat-tools label{color:#5c675c;gap:.25rem;font-size:.85rem;display:grid}.vat-figures{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem;margin:.75rem 0 1rem;display:grid}.vat-figure .label{text-transform:uppercase;letter-spacing:.06em;color:#5c675c;font-size:.75rem}.vat-figure .figure{letter-spacing:-.03em;font-size:1.7rem;font-weight:750}.vat-payable{background:#e4f2ed;border-color:#0f5c4c}.vat-payable .label{color:#0f5c4c;font-weight:700}.vat-payable .figure{color:#0f5c4c}.vat-refund{background:#f8eaea;border-color:#9b2c2c}.vat-refund .label,.vat-refund .figure{color:#9b2c2c}.hint{color:#5c675c;margin:.2rem 0 0;font-size:.85rem}.vat-totals{gap:.35rem;margin:.75rem 0 0;display:grid}.vat-totals div{justify-content:space-between;gap:.75rem;display:flex}.vat-totals dd{font-variant-numeric:tabular-nums;margin:0}.vat-totals .vat-owing{color:#0f5c4c;font-size:1.35rem;font-weight:750}.vat-totals .vat-owing-refund{color:#9b2c2c}.vat-note{margin:0 0 1rem}.vat-tools .btn-primary{align-items:center;gap:.45rem;display:inline-flex}
