: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-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}.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}input:disabled{color:#5c675c;cursor:not-allowed;background:#f3eee3}.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}}
