:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5f2;--surface:#fff;--surface-2:#eceeea;--surface-3:#e0e4de;--line:#dde1db;--line-strong:#c2c9c1;--control:#848e86;--ink:#17201b;--ink-2:#48554d;--ink-3:#5f6b62;--primary:#1c5f46;--primary-hover:#164e39;--primary-active:#113d2d;--primary-soft:#e4f0ea;--primary-line:#b5d3c3;--on-primary:#fff;--draft-fg:#48554d;--draft-bg:#fff;--draft-line:#848e86;--issued-fg:#1b4b8f;--issued-bg:#e7eefa;--issued-line:#b9cdee;--paid-fg:#17603b;--paid-bg:#e1f2e7;--paid-line:#a9d6b9;--overdue-fg:#9f261f;--overdue-bg:#fbe8e5;--overdue-line:#efb9b2;--pending-fg:#754900;--pending-bg:#fbeecd;--pending-line:#e6c675;--closed-fg:#fff;--closed-bg:#3b4a41;--closed-line:#3b4a41;--credit-fg:#56378c;--credit-bg:#eee8f8;--credit-line:#cdbdea;--b2b-fg:#0e5a66;--b2b-bg:#dff1f3;--b2b-line:#a8d5da;--danger:#b3261e;--danger-hover:#951d17;--on-danger:#fff;--invalid-bg:snow;--bad-bg:#fff6f5;--soon-bg:#fdf7e6;--half-hour-line:#eef0ec;--backdrop:#17201b7a;--actionbar-bg:#fffffff0;--toast-bg:#17201b;--toast-fg:#fff;--toast-ok:#8fd3b0;--toast-err:#ffb4ab;--brand-panel:#1c5f46;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;--t-xs:.75rem;--t-sm:.8125rem;--t-md:.9375rem;--t-lg:1.0625rem;--t-xl:1.25rem;--t-2xl:1.5rem;--t-3xl:1.875rem;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s14:56px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-full:999px;--e1:0 1px 2px #17201b12, 0 1px 1px #17201b0a;--e2:0 10px 28px -8px #17201b38, 0 2px 6px #17201b14;--e3:0 28px 64px -16px #17201b5c, 0 4px 12px #17201b1a;--hit:40px;--sidebar:248px;--tabbar:0px;--ease:cubic-bezier(.2, .8, .2, 1);--fast:.12s;--base:.18s}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101512;--surface:#171d19;--surface-2:#1e2520;--surface-3:#273029;--line:#2b342e;--line-strong:#3b463e;--control:#75807a;--ink:#e6ebe7;--ink-2:#b3beb6;--ink-3:#97a39a;--primary:#5dbb93;--primary-hover:#74c8a4;--primary-active:#4aa47f;--primary-soft:#1b3127;--primary-line:#2e5745;--on-primary:#0a1a12;--draft-fg:#b3beb6;--draft-bg:#171d19;--draft-line:#75807a;--issued-fg:#a3c4f7;--issued-bg:#16233a;--issued-line:#2d4a78;--paid-fg:#92d8ae;--paid-bg:#14291d;--paid-line:#2b5a3e;--overdue-fg:#f5a8a0;--overdue-bg:#3a1714;--overdue-line:#6e2c26;--pending-fg:#f0c86e;--pending-bg:#32260b;--pending-line:#6a5218;--closed-fg:#101512;--closed-bg:#b3beb6;--closed-line:#b3beb6;--credit-fg:#c9b6f2;--credit-bg:#251c37;--credit-line:#4d3a73;--b2b-fg:#92d5de;--b2b-bg:#11282c;--b2b-line:#2a5a61;--danger:#f07a72;--danger-hover:#f4938c;--on-danger:#1d0705;--invalid-bg:#2a1513;--bad-bg:#2a1513;--soon-bg:#2c2410;--half-hour-line:#212923;--backdrop:#0009;--actionbar-bg:#171d19f0;--toast-bg:#e6ebe7;--toast-fg:#101512;--toast-ok:#17603b;--toast-err:#9f261f;--e1:0 1px 2px #0006;--e2:0 10px 28px -8px #0009, 0 2px 6px #0000004d;--e3:0 28px 64px -16px #000000b3, 0 4px 12px #00000059}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101512;--surface:#171d19;--surface-2:#1e2520;--surface-3:#273029;--line:#2b342e;--line-strong:#3b463e;--control:#75807a;--ink:#e6ebe7;--ink-2:#b3beb6;--ink-3:#97a39a;--primary:#5dbb93;--primary-hover:#74c8a4;--primary-active:#4aa47f;--primary-soft:#1b3127;--primary-line:#2e5745;--on-primary:#0a1a12;--draft-fg:#b3beb6;--draft-bg:#171d19;--draft-line:#75807a;--issued-fg:#a3c4f7;--issued-bg:#16233a;--issued-line:#2d4a78;--paid-fg:#92d8ae;--paid-bg:#14291d;--paid-line:#2b5a3e;--overdue-fg:#f5a8a0;--overdue-bg:#3a1714;--overdue-line:#6e2c26;--pending-fg:#f0c86e;--pending-bg:#32260b;--pending-line:#6a5218;--closed-fg:#101512;--closed-bg:#b3beb6;--closed-line:#b3beb6;--credit-fg:#c9b6f2;--credit-bg:#251c37;--credit-line:#4d3a73;--b2b-fg:#92d5de;--b2b-bg:#11282c;--b2b-line:#2a5a61;--danger:#f07a72;--danger-hover:#f4938c;--on-danger:#1d0705;--invalid-bg:#2a1513;--bad-bg:#2a1513;--soon-bg:#2c2410;--half-hour-line:#212923;--backdrop:#0009;--actionbar-bg:#171d19f0;--toast-bg:#e6ebe7;--toast-fg:#101512;--toast-ok:#17603b;--toast-err:#9f261f;--e1:0 1px 2px #0006;--e2:0 10px 28px -8px #0009, 0 2px 6px #0000004d;--e3:0 28px 64px -16px #000000b3, 0 4px 12px #00000059}@media (pointer:coarse),(width<=1099px){:root{--hit:44px}}@media (width<=1099px){:root{--sidebar:84px}}@media (width<=719px){:root{--sidebar:0px;--tabbar:60px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--t-md);-webkit-font-smoothing:antialiased;caret-color:var(--primary);margin:0;line-height:1.5}::selection{background:var(--primary-line);color:var(--ink)}h1,h2,h3,p,figure,dl,dd,ul,ol{margin:0}ul,ol{padding:0;list-style:none}h1{font-size:var(--t-2xl);letter-spacing:-.015em;text-wrap:balance;font-weight:700;line-height:1.2}h2{font-size:var(--t-lg);letter-spacing:-.005em;font-weight:650;line-height:1.3}h3{font-size:var(--t-md);font-weight:650;line-height:1.35}a{color:var(--primary);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--primary-hover);text-decoration-thickness:2px}code{font-family:var(--mono);background:var(--surface-2);border-radius:4px;padding:1px 6px;font-size:.92em}strong,b{font-weight:650}small{font-size:var(--t-sm)}.muted{color:var(--ink-3)}.small{font-size:var(--t-sm)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tnum{font-variant-numeric:tabular-nums}.grow{flex:12rem;min-width:0}.nowrap{white-space:nowrap}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.icon{vertical-align:-.2em;flex:none;display:inline-block}button{font:inherit;color:inherit;cursor:pointer;text-align:inherit;background:0 0;border:0;margin:0;padding:0}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:var(--hit);padding:0 var(--s4);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-weight:600;font-size:var(--t-md);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--fast), border-color var(--fast), color var(--fast);line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:var(--control);color:var(--ink)}.btn:active{background:var(--surface-3)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--on-primary)}.btn.primary:active{background:var(--primary-active)}.btn.danger{color:var(--danger);border-color:var(--overdue-line)}.btn.danger:hover{background:var(--overdue-bg);border-color:var(--danger);color:var(--danger-hover)}.btn.danger.solid{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.btn.danger.solid:hover{background:var(--danger-hover);border-color:var(--danger-hover);color:var(--on-danger)}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}.btn.ghost.danger{color:var(--danger);border-color:#0000}.btn.ghost.danger:hover{background:var(--overdue-bg);color:var(--danger-hover)}.btn.sm{min-height:max(32px, calc(var(--hit) - 8px));padding:0 var(--s3);font-size:var(--t-sm)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn.busy{cursor:progress}.icon-btn{width:var(--hit);height:var(--hit);border-radius:var(--r-sm);color:var(--ink-2);transition:background var(--fast), color var(--fast);flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.icon-btn.danger:hover{background:var(--overdue-bg);color:var(--danger)}button.link{color:var(--primary);text-underline-offset:3px;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}button.link:hover{color:var(--primary-hover);text-decoration-thickness:2px}input,select,textarea{font:inherit;color:var(--ink);width:100%;min-height:var(--hit);padding:0 var(--s3);border:1px solid var(--control);border-radius:var(--r-sm);background:var(--surface);transition:border-color var(--fast), box-shadow var(--fast)}textarea{padding:var(--s2) var(--s3);resize:vertical;min-height:calc(var(--hit) * 2);field-sizing:content;line-height:1.5}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2348554d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:34px}input:hover,select:hover,textarea:hover{border-color:var(--ink-2)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-line);outline:none}input[type=checkbox]:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:none}input::placeholder,textarea::placeholder{color:var(--ink-3);opacity:1}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--ink-2);border-color:var(--line-strong);cursor:not-allowed}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger);background:var(--invalid-bg)}input[aria-invalid=true]:focus-visible{box-shadow:inset 0 0 0 1px var(--danger), 0 0 0 3px var(--overdue-line)}input[type=checkbox]{appearance:auto;width:20px;height:20px;min-height:0;accent-color:var(--primary);cursor:pointer;flex:none;padding:0}input[type=file]{background:var(--surface);color:var(--ink-2);cursor:pointer;border-style:dashed;padding:0}input[type=file]::file-selector-button{font:inherit;height:calc(var(--hit) - 2px);margin-right:var(--s3);padding:0 var(--s4);border:0;border-right:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink);cursor:pointer;font-weight:600}input[type=search]::-webkit-search-cancel-button{cursor:pointer}@media (pointer:coarse){input,select,textarea{font-size:1rem}}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>.field-l{font-size:var(--t-sm);color:var(--ink-2);font-weight:600}.field>.field-h{font-size:var(--t-sm);color:var(--ink-3)}.field .req{color:var(--danger)}.check{align-items:center;gap:var(--s2);min-height:var(--hit);cursor:pointer;display:inline-flex}fieldset{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s2) var(--s4) var(--s3);min-width:0;margin:0}legend{font-size:var(--t-sm);color:var(--ink-2);padding:0 var(--s2);font-weight:600}.checks{gap:0 var(--s6);flex-wrap:wrap;display:flex}fieldset:has(>.check){gap:0 var(--s6);flex-wrap:wrap;display:flex}.form{grid-template-columns:repeat(auto-fit, minmax(max(160px, calc(50% - var(--s2))), 1fr));gap:var(--s4);align-items:start;display:grid}.form>.wide,.wide{grid-column:1/-1}.form>h3{margin-top:var(--s3);padding-top:var(--s4);border-top:1px solid var(--line)}.form>h3:first-child{border-top:0;margin-top:0;padding-top:0}.actions{gap:var(--s3);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.actions.start{justify-content:flex-start}.search{align-items:center;min-width:0;display:flex;position:relative}.search>.icon{color:var(--ink-3);pointer-events:none;position:absolute;left:12px}.search>input{padding-left:38px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.ph{gap:var(--s2);margin-bottom:var(--s6);display:grid}.ph-back{align-items:center;gap:var(--s1);width:fit-content;min-height:32px;padding-right:var(--s2);font-size:var(--t-sm);color:var(--ink-2);border-radius:var(--r-sm);margin-left:-4px;font-weight:600;text-decoration:none;display:inline-flex}.ph-back:hover{color:var(--primary);text-decoration:underline}.ph-row{align-items:center;gap:var(--s3) var(--s4);flex-wrap:wrap;display:flex}.ph-title{align-items:center;gap:var(--s2) var(--s3);flex-wrap:wrap;flex:16rem;min-width:0;display:flex}.ph-title h1{overflow-wrap:anywhere;min-width:0}.ph-actions{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.ph-meta{gap:var(--s1) var(--s4);color:var(--ink-2);font-size:var(--t-md);flex-wrap:wrap;display:flex}.ph-meta>span{align-items:center;gap:6px;display:inline-flex}.ph-meta .icon{color:var(--ink-3)}.lead{color:var(--ink-2);max-width:70ch;margin-bottom:var(--s5)}.toolbar{gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap;align-items:flex-end;display:flex}.toolbar>.search{flex:16rem;max-width:30rem}.toolbar .field{flex:0 auto}.toolbar .field input,.toolbar .field select,.toolbar>select,.toolbar>input{width:auto}.toolbar>.spacer{flex:1 1 0}@media (width<=719px){.toolbar>.spacer{display:none}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s5);box-shadow:var(--e1)}.card.flush{padding:0;overflow:hidden}.card+.card,.stack-v>*+*{margin-top:var(--s4)}.sec{margin-top:var(--s8)}.sec:first-child{margin-top:0}.sec-head{justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s3);min-height:32px;display:flex}.sec-head .count{color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:500}.sec-hint{color:var(--ink-3);font-size:var(--t-sm);margin:calc(var(--s2) * -1) 0 var(--s3);max-width:70ch}.split{gap:var(--s8);grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:start;display:grid}.split.even{grid-template-columns:repeat(2,minmax(0,1fr))}.split>*{min-width:0}@media (width<=1099px){.split,.split.even{gap:var(--s6);grid-template-columns:minmax(0,1fr)}}.kv{gap:var(--s2) var(--s5);grid-template-columns:minmax(7rem,max-content) minmax(0,1fr);display:grid}.kv dt{color:var(--ink-3);font-size:var(--t-sm);padding-top:2px}.kv dd{overflow-wrap:anywhere;min-width:0}.badge{border-radius:var(--r-full);height:24px;font-size:var(--t-xs);white-space:nowrap;vertical-align:middle;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink-2);letter-spacing:.01em;align-items:center;gap:5px;padding:0 9px;font-weight:650;line-height:1;display:inline-flex}.badge .icon{margin-left:-2px}.b-draft{background:var(--draft-bg);color:var(--draft-fg);border:1px dashed var(--draft-line)}.b-issued,.b-info{background:var(--issued-bg);color:var(--issued-fg);border-color:var(--issued-line)}.b-paid,.b-ok{background:var(--paid-bg);color:var(--paid-fg);border-color:var(--paid-line)}.b-overdue,.b-cancelled{background:var(--overdue-bg);color:var(--overdue-fg);border-color:var(--overdue-line)}.b-pending{background:var(--pending-bg);color:var(--pending-fg);border-color:var(--pending-line)}.b-closed{background:var(--closed-bg);color:var(--closed-fg);border-color:var(--closed-line)}.b-credit{background:var(--credit-bg);color:var(--credit-fg);border-color:var(--credit-line)}.b-b2b{background:var(--b2b-bg);color:var(--b2b-fg);border-color:var(--b2b-line)}.badges{vertical-align:middle;flex-wrap:wrap;gap:6px;display:inline-flex}.alert{gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);margin-bottom:var(--s4);align-items:flex-start;display:flex}.alert>.icon{margin-top:2px}.alert-body{flex:1;min-width:0}.alert ul{margin-top:var(--s2);gap:2px;display:grid}.alert .btn{margin-top:var(--s2)}.alert.error{background:var(--overdue-bg);border-color:var(--overdue-line);color:var(--overdue-fg)}.alert.warn{background:var(--pending-bg);border-color:var(--pending-line);color:var(--pending-fg)}.alert.info{background:var(--issued-bg);border-color:var(--issued-line);color:var(--issued-fg)}.alert.locked{background:var(--surface-2);border-color:var(--line-strong);color:var(--ink)}.alert.ok{background:var(--paid-bg);border-color:var(--paid-line);color:var(--paid-fg)}.alert button.link{color:inherit}.field-err{color:var(--overdue-fg);font-size:var(--t-sm);align-items:center;gap:6px;font-weight:600;display:flex}.empty{justify-items:center;gap:var(--s2);padding:var(--s8) var(--s5);text-align:center;color:var(--ink-2);border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--surface);display:grid}.empty .icon{color:var(--ink-3)}.empty-t{color:var(--ink);font-weight:650}.empty-h{font-size:var(--t-sm);max-width:46ch;color:var(--ink-3)}.empty .btn{margin-top:var(--s2)}.empty.compact{padding:var(--s4);text-align:left;grid-auto-flow:column;justify-content:start;place-items:center start}.skeleton{gap:var(--s3);padding:var(--s2) 0;display:grid}.skeleton>span{background:linear-gradient(90deg, var(--surface-3) 25%, var(--surface-2) 45%, var(--surface-3) 65%) 0 0 / 300% 100%;border-radius:7px;height:14px;animation:1.4s linear infinite shimmer}.skeleton>span:first-child{width:38%;height:22px}.skeleton>span:nth-child(3){width:82%}.skeleton>span:nth-child(4){width:64%}@keyframes shimmer{to{background-position:-150% 0}}.splash{place-items:center;min-height:100dvh;display:grid}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{padding:10px var(--s4);text-align:left;vertical-align:middle}thead th{font-size:var(--t-xs);color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;padding-block:9px;font-weight:650}tbody td{border-bottom:1px solid var(--line);height:48px}tbody tr:last-child td{border-bottom:0}td.num,th.num{text-align:right}td.tnum,td .muted{white-space:nowrap}td.w-md{min-width:12rem}td button.link{min-height:var(--hit);color:var(--ink);align-items:center;font-weight:650;text-decoration:none;display:inline-flex}td button.link:hover{color:var(--primary-hover);text-decoration:underline}td select{width:auto;min-width:9rem}tr.inactive td{color:var(--ink-3)}tr.x-expired td{background:var(--overdue-bg)}tr.x-soon td{background:var(--soon-bg)}td.actions-cell{text-align:right;white-space:nowrap}td.actions-cell>*+*{margin-left:var(--s2)}.row-actions{gap:var(--s2);flex-wrap:wrap;justify-content:flex-end;display:flex}tr.row-link{transition:background var(--fast);position:relative}tr.row-link:hover td{background:var(--primary-soft)}tr.row-link a.stretch{color:var(--ink);font-weight:650;text-decoration:none}tr.row-link a.stretch:after{content:"";position:absolute;inset:0}tr.row-link:hover a.stretch{color:var(--primary-hover)}tr.row-link a.stretch:focus-visible{outline:none}tr.row-link:has(a.stretch:focus-visible){outline:2px solid var(--primary);outline-offset:-2px}@media (width<=719px){.table-wrap:has(>table.stack){box-shadow:none;background:0 0;border:0;overflow:visible}table.stack,table.stack tbody,table.stack tr,table.stack td{width:100%;display:block}table.stack thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}table.stack tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1);margin-bottom:var(--s3);padding:var(--s3) var(--s4)}table.stack td{justify-content:space-between;align-items:baseline;gap:var(--s4);text-align:right;overflow-wrap:anywhere;border:0;height:auto;padding:3px 0;display:flex;background:0 0!important}table.stack td:before{content:attr(data-label);text-align:left;font-size:var(--t-sm);color:var(--ink-3);flex:0 0 38%}table.stack td:not([data-label]):before{content:none}table.stack td:first-child{font-weight:650;font-size:var(--t-lg);text-align:left;padding-bottom:var(--s1);justify-content:flex-start;gap:var(--s2);flex-wrap:wrap}table.stack td:first-child:before{content:none}table.stack td:empty{display:none}table.stack td.actions-cell{padding-top:var(--s2);justify-content:flex-start}table.stack td:has(>.row-actions){padding-top:var(--s2);justify-content:flex-start}table.stack .row-actions{justify-content:flex-start}table.stack tr.x-expired{border-color:var(--overdue-line);background:var(--overdue-bg)}table.stack tr.x-soon{border-color:var(--pending-line)}}.tabs{gap:var(--s1);border-bottom:1px solid var(--line-strong);margin-bottom:var(--s6);scrollbar-width:none;display:flex;overflow-x:auto}.tabs button{min-height:var(--hit);padding:0 var(--s3);color:var(--ink-2);white-space:nowrap;border-radius:var(--r-sm) var(--r-sm) 0 0;font-weight:600;position:relative}.tabs button:hover{color:var(--ink);background:var(--surface-2)}.tabs button[aria-selected=true]{color:var(--primary)}.tabs button[aria-selected=true]:after{content:"";left:var(--s2);right:var(--s2);background:var(--primary);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px}.tabs button:focus-visible{outline-offset:-2px}.seg{background:var(--surface-3);border-radius:var(--r-sm);gap:2px;padding:3px;display:inline-flex}.seg button{min-height:calc(var(--hit) - 6px);min-width:3rem;padding:0 var(--s3);color:var(--ink-2);text-align:center;transition:background var(--fast), color var(--fast);border-radius:4px;font-weight:600}.seg button:hover{color:var(--ink)}.seg button[aria-selected=true],.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--e1)}.btn-group{display:inline-flex}.btn-group>.btn{border-radius:0;margin-left:-1px}.btn-group>.btn:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm);margin-left:0}.btn-group>.btn:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}.btn-group>.btn:hover,.btn-group>.btn:focus-visible{z-index:1;position:relative}.btn-group>.btn.square{width:var(--hit);padding:0}dialog{border-radius:var(--r-lg);background:var(--surface);width:min(560px,100vw - 32px);max-height:min(88dvh,860px);color:var(--ink);box-shadow:var(--e3);border:0;padding:0;overflow:hidden}dialog[open]{animation:dlg-in var(--base) var(--ease);flex-direction:column;display:flex}dialog.lg{width:min(880px,100vw - 32px)}dialog.sm{width:min(440px,100vw - 32px)}dialog::backdrop{background:var(--backdrop);animation:fade-in var(--base) ease-out}.dlg-head{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s3) var(--s3) var(--s6);border-bottom:1px solid var(--line);flex:none;display:flex}.dlg-head h2{font-size:var(--t-lg);overflow-wrap:anywhere;min-width:0}.dlg-body{padding:var(--s5) var(--s6) var(--s6);overscroll-behavior:contain;gap:var(--s4);align-content:start;display:grid;overflow-y:auto}.dlg-body>.actions,.dlg-body form>.actions{margin-top:var(--s2)}.dlg-body .alert{margin-bottom:0}@keyframes dlg-in{0%{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes fade-in{0%{opacity:0}}@media (width<=719px){dialog,dialog.lg,dialog.sm{border-radius:var(--r-lg) var(--r-lg) 0 0;width:100vw;max-width:100vw;max-height:92dvh;margin:auto 0 0}dialog[open]{animation-name:sheet-in}.dlg-head{padding-left:var(--s4)}.dlg-body{padding:var(--s4) var(--s4) calc(var(--s5) + env(safe-area-inset-bottom))}.dlg-body .actions>.btn{flex:auto}}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}.toasts{z-index:60;left:50%;bottom:calc(var(--tabbar) + var(--s5) + env(safe-area-inset-bottom));gap:var(--s2);pointer-events:none;justify-items:center;width:max-content;max-width:calc(100vw - 32px);display:grid;position:fixed;transform:translate(-50%)}.toast{align-items:center;gap:var(--s2);padding:10px var(--s4);border-radius:var(--r-md);background:var(--toast-bg);color:var(--toast-fg);box-shadow:var(--e2);animation:toast-in var(--base) var(--ease);font-weight:600;display:flex}.toast .icon{color:var(--toast-ok)}.toast.err .icon{color:var(--toast-err)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.menu{position:relative}.menu-pop{z-index:40;min-width:15rem;padding:var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e2);animation:dlg-in var(--fast) var(--ease);gap:2px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.menu.up .menu-pop{inset:auto auto calc(100% + 6px) 0}.menu-head{padding:var(--s2) var(--s3) var(--s3);border-bottom:1px solid var(--line);margin-bottom:var(--s1);gap:2px;display:grid}.menu-head span{font-size:var(--t-sm);color:var(--ink-3);overflow-wrap:anywhere}.menu-item{align-items:center;gap:var(--s3);width:100%;min-height:var(--hit);padding:0 var(--s3);border-radius:var(--r-sm);color:var(--ink);font-weight:500;text-decoration:none;display:flex}.menu-item:hover{background:var(--surface-2);color:var(--ink)}.menu-item .icon{color:var(--ink-3)}.menu-row{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s1) var(--s3);color:var(--ink-2);font-size:var(--t-sm);display:flex}.avatar{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);font-size:var(--t-sm);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.avatar.lg{width:56px;height:56px}.avatar.sm{width:28px;height:28px;font-size:var(--t-xs)}.avatar.sq{border-radius:var(--r-md)}.avatar.muted{background:var(--surface-3);color:var(--ink-2)}.rows{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--e1);display:grid;overflow:hidden}.rows>li+li{border-top:1px solid var(--line)}.row{align-items:center;gap:var(--s3);width:100%;min-height:56px;padding:var(--s2) var(--s4);color:var(--ink);text-decoration:none;display:flex}a.row:hover,button.row:hover{background:var(--primary-soft);color:var(--ink)}a.row:focus-visible,button.row:focus-visible{outline-offset:-2px}.row-main{flex:1;gap:1px;min-width:0;display:grid}.row-main>strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-main>span{font-size:var(--t-sm);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row>.icon:last-child{color:var(--ink-3)}.chosen{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s2) var(--s2) var(--s2) var(--s4);background:var(--primary-soft);border:1px solid var(--primary-line);border-radius:var(--r-md);display:flex}.timeline{gap:var(--s3);padding-left:28px;display:grid;position:relative}.timeline:before{content:"";background:var(--line-strong);border-radius:1px;width:2px;position:absolute;top:12px;bottom:12px;left:9px}.timeline>li{position:relative}.timeline>li:before{content:"";background:var(--primary);border:3px solid var(--bg);border-radius:50%;width:14px;height:14px;position:absolute;top:17px;left:-25px}.timeline>li.is-open:before{background:var(--surface);border:2px solid var(--control)}.tl-card{gap:var(--s1);padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1);color:var(--ink);transition:border-color var(--fast), background var(--fast);text-decoration:none;display:grid}a.tl-card:hover{border-color:var(--primary-line);background:var(--primary-soft);color:var(--ink)}.tl-top{align-items:center;gap:var(--s2) var(--s3);flex-wrap:wrap;display:flex}.tl-top strong{font-variant-numeric:tabular-nums}.tl-meta{font-size:var(--t-sm);color:var(--ink-3)}.picker{gap:var(--s2);flex-wrap:wrap;display:flex;position:relative}.picker .search{flex:16rem}.picker-list{z-index:30;max-height:min(22rem,50dvh);padding:var(--s1);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--e2);position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.picker-opt{align-items:center;gap:var(--s3);min-height:var(--hit);padding:var(--s1) var(--s3);border-radius:var(--r-sm);cursor:pointer;display:flex}.picker-opt[aria-selected=true]{background:var(--primary-soft)}.picker-opt:hover{background:var(--surface-2)}.picker-opt strong{flex:1;min-width:0;font-weight:600}.picker-none{padding:var(--s3);color:var(--ink-3)}.kbd{font-family:var(--mono);font-size:var(--t-xs);border:1px solid var(--line-strong);color:var(--ink-2);background:var(--surface);border-bottom-width:2px;border-radius:4px;padding:2px 6px}@media (pointer:coarse){.kbd{display:none}}.lines{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1)}.lines-head,.line-main{grid-template-columns:var(--cols);gap:var(--s2);padding:var(--s2) var(--s3) var(--s2) var(--s4);align-items:center;display:grid}.l-cons{--cols:minmax(8rem, 1fr) 4.5rem 7.25rem 5.5rem 8.75rem 6.25rem var(--hit)}.l-inv{--cols:minmax(8rem, 1fr) 4.5rem 7.25rem 5.5rem 6.25rem 6.25rem var(--hit)}.l-inv.ro{--cols:minmax(8rem, 1fr) 4.5rem 7.25rem 4rem 6.25rem 6.25rem}.l-cons.ro{--cols:minmax(8rem, 1fr) 4.5rem 7.25rem 4rem 7.5rem 6.25rem}.lines-head{font-size:var(--t-xs);color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);border-bottom:1px solid var(--line);border-radius:var(--r-md) var(--r-md) 0 0;align-items:end;padding-block:9px;font-weight:650;line-height:1.25}.lines-head .num{white-space:normal}.line+.line{border-top:1px solid var(--line)}.line.is-bad{background:var(--bad-bg);outline:1px solid var(--overdue-line);outline-offset:-1px}.cell{gap:4px;min-width:0;display:grid}.cell-l{font-size:var(--t-xs);color:var(--ink-3);font-weight:600;display:none}.cell input.n{text-align:right;font-variant-numeric:tabular-nums}.cell-ro{align-items:center;gap:var(--s1) var(--s2);overflow-wrap:anywhere;flex-wrap:wrap;min-height:32px;display:flex}.cell-ro.num{justify-content:flex-end}.c-total{font-weight:650}.line-sub{gap:var(--s3);padding:var(--s2) var(--s4) var(--s3);margin:0 var(--s3) var(--s3) var(--s4);background:var(--surface-2);border-radius:var(--r-sm);grid-template-columns:max-content 11rem 11rem minmax(0,1fr);align-items:start;display:grid}.line-sub .cell-l{display:block}.line-sub .line-tags{gap:var(--s1);flex-direction:column;padding-top:22px;display:flex}.line-sub.ro{gap:var(--s2) var(--s6);padding-block:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.line-sub.ro .line-tags{flex-flow:wrap;padding-top:0}.line-sub.ro .cell{align-items:baseline;gap:var(--s2);min-width:0;display:flex}.line-sub.ro .cell>span:last-child{overflow-wrap:anywhere;min-width:0}.lines-foot{justify-content:end;gap:var(--s1) var(--s6);padding:var(--s3) var(--s4);border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 var(--r-md) var(--r-md);grid-template-columns:max-content minmax(6rem,max-content);display:grid}.lines-foot dt{color:var(--ink-2)}.lines-foot dd{text-align:right;font-variant-numeric:tabular-nums}.lines-foot .grand{font-weight:700;font-size:var(--t-lg);color:var(--ink)}.lines>.empty{border:0;border-radius:0}@media (width<=719px){.lines-head{display:none}.line-main{gap:var(--s3);padding:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr))}.line-main>.c-label{grid-column:1/-1}.cell-l{display:block}.line-main>.icon-btn{grid-column:2;place-self:end}.line-sub,.line-sub.ro{margin:0 var(--s3) var(--s3);padding:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr))}.line-sub .line-tags{flex-direction:row;grid-column:1/-1;padding-top:0}.line-sub .c-just{grid-column:1/-1}.cell-ro.num{justify-content:flex-start}.cell-ro{min-height:0}.lines.ro .line-main{gap:var(--s2) var(--s3);grid-template-columns:repeat(3,minmax(0,1fr))}.lines.ro .c-label .cell-l{display:none}.lines.ro .c-label{font-weight:650}}.totals{gap:var(--s2) 0;grid-template-columns:minmax(0,1fr) max-content;display:grid}.totals dt{color:var(--ink-2)}.totals dd{text-align:right;font-variant-numeric:tabular-nums;padding-left:var(--s5)}.totals .sub{font-size:var(--t-sm);color:var(--ink-3)}.totals .grand{font-size:var(--t-xl);color:var(--ink);padding-top:var(--s2);border-top:1px solid var(--line-strong);margin-top:var(--s1);font-weight:700}.totals .due{color:var(--ink);font-weight:700}.totals .due.is-zero{color:var(--paid-fg)}.actionbar{bottom:calc(var(--tabbar) + env(safe-area-inset-bottom));z-index:15;align-items:center;gap:var(--s3) var(--s5);margin:var(--s8) calc(var(--s4) * -1) 0;padding:var(--s3) var(--s4);background:var(--actionbar-bg);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--e2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap;display:flex;position:sticky}.actionbar .spacer{flex:1 1 0}.actionbar .ab-total{text-align:right;line-height:1.25;display:grid}.actionbar .ab-total span{font-size:var(--t-xs);color:var(--ink-3)}.actionbar .ab-total strong{font-size:var(--t-lg);font-variant-numeric:tabular-nums}.save-state{font-size:var(--t-sm);color:var(--ink-3);align-items:center;gap:6px;min-height:24px;display:inline-flex}.save-state.is-saved{color:var(--paid-fg)}@media (width<=719px){.actionbar{margin-inline:calc(var(--s2) * -1);bottom:calc(var(--tabbar) + var(--s2) + env(safe-area-inset-bottom))}.actionbar .btn.primary{flex:auto}}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .c-line{fill:none;stroke:var(--primary);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .c-area{fill:var(--primary-soft)}.chart .c-dot{fill:var(--surface);stroke:var(--primary);stroke-width:2px}.chart .c-dot.last{fill:var(--primary)}.chart .c-grid{stroke:var(--line);stroke-width:1px}.chart .c-tick{fill:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11px}.chart .c-val{fill:var(--ink);font-size:12px;font-weight:700}.stat{align-items:baseline;gap:var(--s2);margin-bottom:var(--s3);display:flex}.stat strong{font-size:var(--t-2xl);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-weight:700}.stat span{color:var(--ink-3);font-size:var(--t-sm)}.app{grid-template-columns:var(--sidebar) minmax(0, 1fr);min-height:100dvh;display:grid}.side{z-index:20;gap:var(--s4);height:100dvh;padding:var(--s4) var(--s3);background:var(--surface-2);border-right:1px solid var(--line);flex-direction:column;display:flex;position:sticky;top:0}.brand{padding:var(--s1) var(--s2);font-size:var(--t-xl);letter-spacing:-.025em;color:var(--ink);align-items:center;gap:10px;font-weight:750;text-decoration:none;display:flex}.brand:hover{color:var(--ink)}.brand-mark{flex:none;width:32px;height:32px;display:block}.org{align-items:center;gap:var(--s2);width:100%;padding:var(--s2) var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);font-size:var(--t-sm);color:var(--ink);text-align:left;font-weight:600;line-height:1.3;display:flex}.org>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;display:-webkit-box;overflow:hidden}.org .icon{color:var(--ink-3)}div.org{color:var(--ink-2);background:0 0;border-color:#0000;padding-block:0}button.org:hover{border-color:var(--control);background:var(--surface)}button.org:hover .icon{color:var(--primary)}.nav{gap:2px;display:grid}.nav-item{align-items:center;gap:var(--s3);min-height:var(--hit);padding:0 var(--s3);border-radius:var(--r-sm);color:var(--ink-2);transition:background var(--fast), color var(--fast);font-weight:600;text-decoration:none;display:flex}.nav-item .icon{color:var(--ink-3);transition:color var(--fast)}.nav-item:hover{background:var(--surface-3);color:var(--ink)}.nav-item[aria-current=page]{background:var(--surface);color:var(--ink);box-shadow:var(--e1)}.nav-item[aria-current=page] .icon{color:var(--primary)}.nav-more{display:none}.side-foot{margin-top:auto}.user-btn{width:100%;padding:6px var(--s2);border-radius:var(--r-sm);text-align:left;align-items:center;gap:10px;display:flex}.user-btn:hover{background:var(--surface-3)}.user-btn .row-main>strong{font-size:var(--t-sm)}.user-btn .row-main>span{font-size:var(--t-xs)}.user-btn>.icon{color:var(--ink-3)}.topbar{display:none}.main{flex-direction:column;min-width:0;display:flex}.page{width:100%;max-width:1280px;padding:var(--s8) var(--s8) var(--s10);margin:0 auto}.page.narrow{max-width:880px}.banner{justify-content:center;align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);background:var(--pending-bg);color:var(--pending-fg);border-bottom:1px solid var(--pending-line);font-weight:600;font-size:var(--t-sm);text-align:center;display:flex}@media (width<=1099px){.side{padding:var(--s3) var(--s2);align-items:stretch}.side .brand{padding:var(--s1) 0;justify-content:center}.side .brand>span,.side .org>span,.side .user-btn .row-main,.side .user-btn>.icon{display:none}.side .org{min-height:var(--hit);background:0 0;border-color:#0000;justify-content:center;padding:0}.side div.org{display:none}.nav-item{min-height:58px;padding:var(--s1) 2px;text-align:center;flex-direction:column;justify-content:center;gap:3px;font-size:.6875rem;line-height:1.15}.user-btn{padding:var(--s1) 0;justify-content:center}.menu.up .menu-pop{left:4px}.page{padding:var(--s6) var(--s6) var(--s10)}}@media (width<=719px){.app{display:block}.topbar{z-index:20;align-items:center;gap:var(--s3);min-height:52px;padding:var(--s1) var(--s2) var(--s1) var(--s4);background:var(--surface);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.topbar .brand-mark{width:28px;height:28px}.topbar-org{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:650;overflow:hidden}.side{height:auto;padding:0 var(--s1) env(safe-area-inset-bottom);border-right:0;border-top:1px solid var(--line-strong);background:var(--surface);flex-direction:row;position:fixed;inset:auto 0 0}.side>.brand,.side>.org,.side-foot{display:none}.nav{flex:1;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:0}.nav-item{min-height:var(--tabbar);border-radius:0;box-shadow:none!important;background:0 0!important}.nav-item[aria-current=page]{color:var(--primary)}.nav-item.is-extra{display:none}.nav-more{display:flex}.page{padding:var(--s4) var(--s4) calc(var(--tabbar) + var(--s10) + env(safe-area-inset-bottom))}.ph{margin-bottom:var(--s4)}h1{font-size:var(--t-xl)}}.lang{background:var(--surface-3);border-radius:var(--r-sm);gap:2px;padding:3px;display:inline-flex}.lang button{min-width:2.75rem;min-height:calc(var(--hit) - 8px);padding:0 var(--s2);font-size:var(--t-sm);color:var(--ink-2);text-align:center;border-radius:4px;font-weight:650}.lang button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--e1)}.login{background:var(--surface);grid-template-columns:minmax(0,5fr) minmax(0,6fr);min-height:100dvh;display:grid}.login-brand{justify-content:space-between;gap:var(--s10);padding:var(--s10) var(--s14);background:var(--brand-panel);color:#fff;flex-direction:column;display:flex}.login-brand .brand{color:#fff;padding:0}.login-brand h1{font-size:var(--t-3xl);letter-spacing:-.02em;max-width:16ch;line-height:1.15}.login-points{gap:var(--s3);margin-top:var(--s6);color:#d9ebe2;max-width:34ch;display:grid}.login-points li{gap:var(--s3);align-items:flex-start;display:flex}.login-points .icon{color:#9fd3b9;margin-top:2px}.login-brand small{color:#b9d6c8}.login-form{padding:var(--s6) var(--s8) var(--s10);flex-direction:column;display:flex}.login-form>.lang{align-self:flex-end}.login-form form{gap:var(--s4);width:100%;max-width:22.5rem;margin:auto;display:grid}.login-form h2{font-size:var(--t-2xl);letter-spacing:-.015em}.login-form .btn.primary{min-height:48px;margin-top:var(--s2)}.login-mobile-brand{display:none}@media (width<=899px){.login{grid-template-columns:minmax(0,1fr)}.login-brand{display:none}.login-mobile-brand{display:flex}.login-form{padding:var(--s4) var(--s5) var(--s8)}}.solo{flex-direction:column;min-height:100dvh;display:flex}.solo-bar{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s6);background:var(--surface);border-bottom:1px solid var(--line);display:flex}.solo .page{max-width:960px}.solo .picker-sec{max-width:34rem;margin-inline:auto}@media (width<=719px){.solo-bar{padding:var(--s2) var(--s2) var(--s2) var(--s4)}.solo .page{padding-bottom:var(--s10)}}.cal-title:first-letter{text-transform:uppercase}.cal{--cal-off:262px;max-height:max(420px, calc(100dvh - var(--cal-off) - var(--tabbar)));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1);overscroll-behavior:contain;display:flex;position:relative;overflow:auto}.cal[aria-busy=true] .cal-body{opacity:.6}.cal-gutter{z-index:4;background:var(--surface);border-right:1px solid var(--line);flex:0 0 56px;position:sticky;left:0}.cal-hour{padding-right:var(--s2);text-align:right;font-size:var(--t-xs);color:var(--ink-3);font-variant-numeric:tabular-nums;padding-top:6px;line-height:1}.cal-col{flex:1 0 9.5rem;min-width:0}.cal-col+.cal-col{border-left:1px solid var(--line)}.v-week .cal-col{flex-basis:7.25rem}.cal-head{z-index:3;align-items:center;gap:var(--s2);height:48px;padding:0 var(--s3);background:var(--surface-2);border-bottom:1px solid var(--line-strong);font-weight:650;display:flex;position:sticky;top:0}.cal-gutter .cal-head{z-index:5}.cal-head-t{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.v-week .cal-head-t{text-transform:capitalize;color:var(--ink-2)}.cal-daynum{border-radius:var(--r-full);font-variant-numeric:tabular-nums;place-items:center;min-width:28px;height:28px;padding:0 6px;display:inline-grid}.cal-head.is-today .cal-daynum{background:var(--primary);color:var(--on-primary)}.cal-head.is-today .cal-head-t{color:var(--primary)}.cal-count{border-radius:var(--r-full);background:var(--surface);border:1px solid var(--line-strong);min-width:22px;height:22px;font-size:var(--t-xs);color:var(--ink-2);font-variant-numeric:tabular-nums;place-items:center;margin-left:auto;padding:0 6px;font-weight:650;display:inline-grid}.cal-body{position:relative}.slot{border-bottom:1px solid var(--line);text-align:left;width:100%;display:block}.slot:nth-child(odd){border-bottom-color:var(--half-hour-line)}.slot:hover,.slot:focus-visible{background:var(--primary-soft)}.slot:hover:after,.slot:focus-visible:after{content:"+ " attr(data-time);padding-left:var(--s2);font-size:var(--t-xs);color:var(--primary);font-weight:650}.slot:focus-visible{outline-offset:-2px}.now-line{z-index:2;background:var(--ink);pointer-events:none;height:2px;position:absolute;left:0;right:0}.now-line:before{content:"";background:var(--ink);border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;left:-1px}.appt{z-index:1;padding:5px var(--s2);white-space:nowrap;text-overflow:ellipsis;border-radius:var(--r-sm);border:1px solid var(--primary-line);background:var(--primary-soft);color:var(--ink);font-size:var(--t-sm);text-align:left;transition:box-shadow var(--fast), border-color var(--fast);line-height:1.35;display:block;position:absolute;overflow:hidden}.appt.tall{white-space:normal}.appt:hover,.appt:focus-visible{z-index:3;border-color:var(--primary);box-shadow:var(--e2)}.appt .icon{vertical-align:-2px;margin-right:3px}.appt-t{font-variant-numeric:tabular-nums;color:var(--primary-hover);font-weight:650}.appt-s{color:var(--ink-2)}.appt.s-arrived{background:var(--issued-bg);border-color:var(--issued-line)}.appt.s-arrived .appt-t,.appt.s-arrived .icon{color:var(--issued-fg)}.appt.s-arrived:hover{border-color:var(--issued-fg)}.appt.s-done{background:var(--surface-2);border-color:var(--line-strong);color:var(--ink-2)}.appt.s-done .appt-t{color:var(--ink-2)}.appt.s-done .icon{color:var(--paid-fg)}.appt.s-done:hover{border-color:var(--control)}.appt.s-cancelled,.appt.s-no_show{background:var(--surface);border:1px dashed var(--overdue-line);color:var(--ink-3)}.appt.s-cancelled strong,.appt.s-no_show strong,.appt.s-cancelled .appt-t,.appt.s-no_show .appt-t{color:var(--ink-3);font-weight:600;text-decoration:line-through}.appt.s-cancelled .icon,.appt.s-no_show .icon{color:var(--overdue-fg)}.appt.s-cancelled:hover,.appt.s-no_show:hover{border-color:var(--overdue-fg)}.legend{gap:var(--s2) var(--s5);margin-top:var(--s3);font-size:var(--t-sm);color:var(--ink-2);flex-wrap:wrap;display:flex}.legend li{align-items:center;gap:var(--s2);display:inline-flex}.legend-swatch{border-radius:4px;place-items:center;width:22px;height:18px;padding:0;display:inline-grid;position:static}.legend-swatch .icon{margin:0}@media (width<=1099px){.cal{--cal-off:246px}.v-week .cal-count{display:none}.v-week .cal-head{padding:0 var(--s2)}}@media (width<=719px){.cal{--cal-off:322px}.cal-gutter{flex-basis:46px}.cal-col{flex-basis:8.5rem}.v-week .cal-col{flex-basis:8rem}.cal-bar{gap:var(--s2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.cal-bar>.spacer{display:none}.cal-bar>.seg{justify-self:start}.cal-bar>.btn-group{justify-self:end}.cal-bar>input,.cal-bar>select{width:100%}}.cons{padding-bottom:var(--s2)}.patient{align-items:center;gap:var(--s4) var(--s5);padding:var(--s4) var(--s5);flex-wrap:wrap;display:flex}.patient-main{flex:14rem;gap:2px;min-width:10rem;display:grid}.patient-main a{color:var(--ink);font-size:var(--t-xl);letter-spacing:-.01em;line-height:1.2;text-decoration:none}.patient-main a:hover{color:var(--primary);text-decoration:underline}.patient-main span{color:var(--ink-2)}.patient-facts{gap:var(--s3) var(--s8);flex-wrap:wrap;flex:2 24rem;display:flex}.patient-facts dt,.notes-ro dt{font-size:var(--t-sm);color:var(--ink-3);margin-bottom:2px}.notes{gap:var(--s4) var(--s5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.notes-weight{align-items:flex-end;gap:var(--s2) var(--s4);flex-wrap:wrap;grid-column:1/-1;display:flex}.notes-weight .field{width:9rem}.notes-weight>span{color:var(--ink-3);font-size:var(--t-sm);min-height:var(--hit);align-items:center;display:inline-flex}.notes textarea{min-height:4.25rem}.notes-ro{gap:var(--s4) var(--s6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.notes-ro dd,.pre{white-space:pre-wrap;overflow-wrap:anywhere}.notes-ro dd{max-width:75ch}@media (width<=899px){.notes,.notes-ro{grid-template-columns:minmax(0,1fr)}}.picker-wrap{margin-bottom:var(--s3)}.addenda{margin-bottom:var(--s4)}.addendum-form{gap:var(--s3);display:grid}.file-btn{position:relative}.file-btn:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.animal-head{align-items:center;gap:var(--s4);min-width:0;display:flex}.species-line{color:var(--ink-2)}.inv-layout{gap:var(--s6);grid-template-columns:minmax(0,1fr) 21rem;align-items:start;display:grid}.inv-layout>*{min-width:0}.inv-side{gap:var(--s4);top:var(--s6);display:grid;position:sticky}.inv-side .card+.card{margin-top:0}.inv-side h2{font-size:var(--t-md);margin-bottom:var(--s3)}.inv-side .actions{justify-content:stretch;gap:var(--s2);margin-top:var(--s4);display:grid}.inv-side .actions .btn{width:100%}@media (width<=1359px){.inv-layout{grid-template-columns:minmax(0,1fr)}.inv-side{grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr));align-items:start;position:static}}.pay-methods{flex-wrap:wrap;display:flex}.pay-methods button{flex:auto}.pay-list{gap:var(--s2);display:grid}.pay-list li{justify-content:space-between;gap:var(--s3);font-variant-numeric:tabular-nums;display:flex}.pay-list span{color:var(--ink-2)}.rem-group{padding:0;overflow:hidden}.rem-head{align-items:center;gap:var(--s2) var(--s4);padding:var(--s3) var(--s5);background:var(--surface-2);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.rem-head h2{align-items:center;gap:var(--s2);flex:12rem;display:flex}.rem-head h2 a{color:var(--ink);text-decoration:none}.rem-head h2 a:hover{color:var(--primary);text-decoration:underline}.rem-contact{gap:var(--s1) var(--s4);font-size:var(--t-sm);color:var(--ink-2);flex-wrap:wrap;display:flex}.rem-contact span{align-items:center;gap:6px;display:inline-flex}.rem-item{align-items:center;gap:var(--s3) var(--s4);padding:var(--s3) var(--s5);flex-wrap:wrap;display:flex}.rem-item+.rem-item{border-top:1px solid var(--line)}.rem-item.is-overdue{background:var(--bad-bg)}.rem-what{flex:14rem;gap:2px;min-width:0;display:grid}@media (width<=719px){.rem-item .row-actions{justify-content:flex-start;width:100%}.rem-head,.rem-item{padding-inline:var(--s4)}}.rem-what>span{font-size:var(--t-sm);color:var(--ink-2);align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.narrow-form{max-width:46rem}@media (pointer:coarse){.btn.sm,.seg button,.lang button,.ph-back{min-height:var(--hit)}}.print-page{background:var(--surface-3);min-height:100dvh;padding-bottom:var(--s10)}.print-bar{z-index:10;justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s6);margin-bottom:var(--s6);background:var(--surface);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.print-bar .ph-back{margin-left:0}.print-page>.skeleton,.print-page>.alert{max-width:210mm;margin-inline:auto}.sheet{color:#000;width:min(210mm,100% - 24px);min-height:297mm;box-shadow:var(--e2);background:#fff;flex-direction:column;margin:0 auto;padding:18mm 16mm 16mm;font-size:10pt;line-height:1.45;display:flex;position:relative}.sheet p,.sheet h1,.sheet h2,.sheet h3{margin:0}.sheet-head{border-bottom:1.5pt solid #000;justify-content:space-between;align-items:flex-start;gap:12mm;padding-bottom:6mm;display:flex}.sheet-org h1{letter-spacing:-.01em;margin-bottom:2mm;font-size:14pt;line-height:1.2}.sheet-org p+p{margin-top:2mm}.sheet-org{color:#222}.sheet-doc{text-align:right;flex:none}.doc-title{letter-spacing:-.015em;font-size:18pt;font-weight:700;line-height:1.1}.doc-number{font-variant-numeric:tabular-nums;margin-top:1.5mm;font-size:12pt;font-weight:650}.sheet-meta{justify-content:space-between;align-items:flex-start;gap:12mm;margin:8mm 0 9mm;display:flex}.dates{grid-template-columns:max-content max-content;gap:1mm 6mm;margin:0;display:grid}.dates dt{color:#444}.dates dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.client-block{border:.75pt solid #999;border-radius:1.5mm;width:80mm;padding:4mm 5mm}.client-block strong{font-size:11pt}.sheet table{border-collapse:collapse;width:100%}.sheet th,.sheet td{text-align:left;vertical-align:top;background:0 0;border:0;height:auto;padding:2mm}.sheet thead th{text-transform:uppercase;letter-spacing:.05em;color:#000;white-space:nowrap;border-bottom:1pt solid #000;font-size:8pt;font-weight:700}.sheet tbody td{border-bottom:.5pt solid #ccc}.sheet .num{text-align:right}.sheet th:first-child,.sheet td:first-child{padding-left:0}.sheet th:last-child,.sheet td:last-child{padding-right:0}.sheet .muted{color:#444}.doc-lines tr{break-inside:avoid}.doc-totals{break-inside:avoid;margin:7mm 0 0 auto;width:86mm!important}.doc-totals tfoot th{font-weight:400}.doc-totals tfoot td,.doc-totals tfoot th{border-bottom:.5pt solid #ccc}.doc-totals tfoot tr:first-child th,.doc-totals tfoot tr:first-child td{border-top:1pt solid #000}.doc-totals .grand th,.doc-totals .grand td{border-bottom:1pt solid #000;font-size:11.5pt;font-weight:700}.pay-block{break-inside:avoid;border:.75pt solid #999;border-radius:1.5mm;margin-top:10mm;padding:5mm 6mm;display:flow-root}.pay-block h3{text-transform:uppercase;letter-spacing:.05em;margin-bottom:3mm;font-size:8pt;font-weight:700}.pay-qr{float:right;text-align:center;color:#222;width:30mm;margin:0 0 0 8mm;font-size:7.5pt;line-height:1.25}.pay-qr svg{width:100%;height:auto;margin-bottom:1mm;display:block}.pay-block dl{grid-template-columns:max-content 1fr;gap:1.5mm 8mm;margin:0;display:grid}.pay-block dt{color:#444}.pay-block dd{font-variant-numeric:tabular-nums;margin:0;font-weight:650}.pay-block dd.ogm{font-family:var(--mono);letter-spacing:.02em;font-size:11pt}.sheet-foot{color:#444;margin-top:auto;padding-top:8mm;font-size:8pt}.watermark{letter-spacing:.05em;color:#00000012;pointer-events:none;place-items:center;font-size:80pt;font-weight:800;display:grid;position:absolute;inset:0;transform:rotate(-25deg)}@media (width<=719px){.print-bar{padding:var(--s2) var(--s4);margin-bottom:var(--s3)}.sheet{min-height:0;padding:6mm 5mm;font-size:9.5pt}.sheet-head,.sheet-meta{flex-direction:column;gap:4mm}.sheet-doc{text-align:left}.client-block,.doc-totals{width:100%!important}.doc-lines th,.doc-lines td{padding-inline:1mm}.sheet thead th{white-space:normal;letter-spacing:0;font-size:7pt}.sheet{overflow-x:auto}}@page{size:A4;margin:14mm}@media print{html,body{background:#fff!important}.no-print,.side,.topbar,.banner,.toasts{display:none!important}.print-page{background:0 0;min-height:0;padding:0}.sheet{width:auto;min-height:0;box-shadow:none;margin:0;padding:0;display:block}.sheet-foot{margin-top:10mm}a{color:inherit;text-decoration:none}}
