:root{--gray-0:#fff;--gray-50:#f2f2ef;--gray-100:#e4e4e0;--gray-300:#cfcfca;--gray-500:#858580;--gray-600:#575753;--gray-900:#1e1e1c;--gray-950:#262624;--red-700:#a3231b;--red-50:#fbeceb;--color-surface-page:var(--gray-50);--color-surface-default:var(--gray-0);--color-surface-selected:var(--gray-100);--color-text-primary:var(--gray-900);--color-text-secondary:var(--gray-600);--color-border:var(--gray-300);--color-border-subtle:var(--gray-100);--color-border-control:var(--gray-500);--color-action-primary:var(--gray-950);--color-action-primary-pressed:var(--gray-900);--color-text-on-action:var(--gray-0);--color-feedback-error:var(--red-700);--color-feedback-error-bg:var(--red-50);--color-feedback-pending:var(--gray-600);--color-bar:var(--gray-600);--color-focus:var(--gray-950);--shadow-panel:-8px 0 24px #00000014;--color-backdrop:#1e1e1c59;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-control:12px;--radius-card:14px;--radius-pill:999px;--size-touch-target:48px;--size-touch-min:44px;--size-primary-action:60px;--size-nav:72px;--size-sidebar:240px;--size-panel:560px;--size-content:1200px;--font-family:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-small:.8125rem;--font-size-label:.9375rem;--font-size-body:1rem;--font-size-section:1.0625rem;--font-size-title:1.5rem;--font-size-stat:1.5rem;--font-size-amount:2rem;--font-weight-medium:600;--font-weight-bold:700}*{box-sizing:border-box}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}body{font-family:var(--font-family);font-size:var(--font-size-body);color:var(--color-text-primary);background:var(--color-surface-page);margin:0;line-height:1.4}body.sheet-open{overflow:hidden}h1,h2,h3,p{margin:0}h1{font-size:var(--font-size-title)}h2{font-size:var(--font-size-section)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}input,select,textarea{min-height:var(--size-touch-target);padding:0 var(--space-3);font:inherit;color:inherit;background:var(--color-surface-default);border:1px solid var(--color-border-control);border-radius:var(--radius-control);width:100%}input[aria-invalid=true]{border:2px solid var(--color-feedback-error)}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.6;cursor:default}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--size-touch-min);padding:0 var(--space-4);border:1px solid var(--color-border-control);border-radius:var(--radius-control);background:var(--color-surface-default);font-size:var(--font-size-label);font-weight:var(--font-weight-medium);text-decoration:none;display:inline-flex}.button.primary{border-color:var(--color-action-primary);background:var(--color-action-primary);color:var(--color-text-on-action);font-weight:var(--font-weight-bold)}.button.primary:active{background:var(--color-action-primary-pressed)}.button.large{min-height:var(--size-primary-action);border-radius:var(--radius-card);font-size:1.125rem}.button.block{width:100%}.button.danger{border-color:var(--color-feedback-error);color:var(--color-feedback-error)}.button.quiet{background:0 0;border-color:#0000}.icon-button{width:var(--size-touch-min);height:var(--size-touch-min);border-radius:var(--radius-pill);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.field{gap:var(--space-2);min-width:0;font-size:var(--font-size-label);border:0;flex-direction:column;margin:0;padding:0;display:flex}.field>label,.field>legend{font-weight:var(--font-weight-medium);padding:0}.field>legend{margin-bottom:var(--space-2)}.help{color:var(--color-text-secondary);font-size:var(--font-size-small)}.error{color:var(--color-feedback-error);font-weight:var(--font-weight-medium)}.alert{padding:var(--space-3) var(--space-4);border:1px solid var(--color-feedback-error);border-radius:var(--radius-control);background:var(--color-feedback-error-bg);color:var(--color-feedback-error);font-weight:var(--font-weight-medium)}.money{align-items:center;gap:var(--space-2);min-height:68px;padding:0 var(--space-4);border:2px solid var(--color-text-secondary);border-radius:var(--radius-card);background:var(--color-surface-default);display:flex}.money:focus-within{outline:3px solid var(--color-focus);outline-offset:2px}.money.invalid{border-color:var(--color-feedback-error)}.money span{color:var(--color-text-secondary);font-size:1.75rem;font-weight:var(--font-weight-bold)}.money input{min-width:0;font-size:var(--font-size-amount);font-weight:var(--font-weight-bold);background:0 0;border:0;padding:0}.money input:focus-visible{outline:none}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chips.even{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.chip{min-height:var(--size-touch-min);padding:0 var(--space-4);border:1px solid var(--color-border-control);border-radius:var(--radius-pill);background:var(--color-surface-default);font-size:.875rem;font-weight:var(--font-weight-medium);overflow-wrap:anywhere}.chips.even .chip{padding:0 var(--space-1);border-radius:var(--radius-control)}.chip[aria-pressed=true]{border:2px solid var(--color-action-primary);background:var(--color-action-primary);color:var(--color-text-on-action)}.disclosure{min-height:52px;padding:0 var(--space-4);border:1px dashed var(--color-text-secondary);border-radius:var(--radius-control);font-size:var(--font-size-label);font-weight:var(--font-weight-medium);text-align:left;background:0 0;justify-content:space-between;align-items:center;display:flex}.disclosure span:last-child{color:var(--color-text-secondary)}.card{gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-default);border:1px solid var(--color-border);border-radius:var(--radius-card);flex-direction:column;min-width:0;display:flex}.stats{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(110px,1fr));display:grid}.stat{gap:var(--space-1);padding:var(--space-4) var(--space-3);background:var(--color-surface-default);border:1px solid var(--color-border);border-radius:var(--radius-control);flex-direction:column;min-width:0;display:flex}.stat-label,.stat-note{color:var(--color-text-secondary);font-size:var(--font-size-small)}.stat-value{font-size:var(--font-size-stat);font-weight:var(--font-weight-bold);overflow-wrap:anywhere}.secondary-text{color:var(--color-text-secondary);font-size:.875rem}.tag{padding:2px var(--space-2);border:1.5px dashed var(--color-feedback-pending);font-size:.75rem;font-weight:var(--font-weight-medium);white-space:nowrap;border-radius:10px;display:inline-block}.tag.rejected{border:1px solid var(--color-feedback-error);color:var(--color-feedback-error)}.bars{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bars li{flex-direction:column;gap:6px;font-size:.875rem;display:flex}.bars .bar-label{justify-content:space-between;gap:var(--space-2);display:flex}.bars .bar-label span:first-child{font-weight:var(--font-weight-medium)}.bar-track{background:var(--color-border-subtle);border-radius:5px;height:10px}.bar-fill{background:var(--color-bar);border-radius:5px;height:100%}.list{background:var(--color-surface-default);border:1px solid var(--color-border);border-radius:var(--radius-control);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list>li+li{border-top:1px solid var(--color-border-subtle)}.list-link{width:100%;min-height:52px;padding:0 var(--space-4);font-size:var(--font-size-body);text-align:left;background:0 0;border:0;align-items:center;display:flex}.records{border-collapse:collapse;width:100%;font-size:.875rem}.records caption{padding:0 0 var(--space-3);text-align:left;font-size:var(--font-size-section);font-weight:var(--font-weight-bold)}.records th{font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-align:left}.records .amount{text-align:right;white-space:nowrap;font-weight:var(--font-weight-bold)}.records .muted{color:var(--color-text-secondary)}.records .actions{text-align:right}.confirm{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-feedback-error);border-radius:var(--radius-control);flex-direction:column;display:flex}@media (width<=1023.98px){.records caption{display:block}.records thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.records,.records tbody,.records tr,.records td{display:block}.records tbody{gap:var(--space-2);flex-direction:column;display:flex}.records tr{gap:2px var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-default);border:1px solid var(--color-border);border-radius:var(--radius-control);grid-template-columns:1fr auto;display:grid}.records td{grid-column:1}.records .category{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);order:-1}.records .amount{font-size:var(--font-size-body);grid-area:1/2}.records .actions,.records .confirm-cell{text-align:left;grid-column:1/-1}.records td:empty{display:none}}@media (width>=1024px){.table-box{padding:var(--space-2) var(--space-4) var(--space-4);background:var(--color-surface-default);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow-x:auto}.records caption{padding:var(--space-3) 0}.records th,.records td{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border-subtle);vertical-align:top}.records th{border-bottom-color:var(--color-border)}.records .category{font-weight:var(--font-weight-medium)}.records .date{white-space:nowrap}}.row{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.stack{gap:var(--space-5);flex-direction:column;display:flex}.screen{gap:var(--space-4);max-width:560px;padding:var(--space-6) var(--space-5);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.shell{min-height:100dvh;padding-bottom:calc(var(--size-nav) + env(safe-area-inset-bottom));grid-template:"top""main"1fr/minmax(0,1fr);display:grid}.topbar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) 0;padding-top:calc(var(--space-4) + env(safe-area-inset-top));grid-area:top;display:flex}.account-name{color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:.875rem}.sync-chip{align-items:center;gap:var(--space-2);min-height:var(--size-touch-min);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-default);color:var(--color-text-secondary);font-size:.875rem;font-weight:var(--font-weight-medium);white-space:nowrap;display:inline-flex}.sync-chip.attention{border:2px dashed var(--color-feedback-pending);color:var(--color-text-primary)}.page{gap:var(--space-5);min-width:0;padding:var(--space-2) var(--space-5) var(--space-6);flex-direction:column;grid-area:main;display:flex}.page-header{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.page-header h1{flex:auto}.page-header .page-action{flex:1 0 100%}.columns{gap:var(--space-5);flex-wrap:wrap;align-items:flex-start;display:flex}.columns>.wide{flex:3 520px;min-width:0}.columns>.narrow{flex:280px;min-width:0}.filters{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.filters .field{flex:140px}.month-nav{align-items:center;gap:var(--space-1);display:flex}.month-nav .month{text-align:center;font-weight:var(--font-weight-bold);flex:1}.nav{z-index:10;padding:var(--space-2) var(--space-1);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom));background:var(--color-surface-default);border-top:1px solid var(--color-border);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;inset:auto 0 0}.nav-item{justify-content:center;align-items:center;gap:var(--space-1);border-radius:var(--radius-control);min-height:52px;color:var(--color-text-secondary);background:0 0;border:0;flex-direction:column;padding:0;font-size:.75rem;display:flex}.nav-item[aria-current=page],.nav-item.record{color:var(--color-text-primary);font-weight:var(--font-weight-bold)}.nav-item.record .record-icon{width:var(--size-touch-min);height:var(--size-touch-min);border-radius:var(--radius-pill);background:var(--color-action-primary);color:var(--color-text-on-action);justify-content:center;align-items:center;margin-top:-18px;display:flex}@media (width>=1024px){.shell{grid-template:"top main" auto "nav main" 1fr / var(--size-sidebar) minmax(0, 1fr);padding-bottom:0}.topbar,.nav{background:var(--color-surface-default);border-right:1px solid var(--color-border)}.topbar{align-items:stretch;gap:var(--space-3);padding:var(--space-6) var(--space-4) var(--space-4);flex-direction:column}.account-name{padding:0 var(--space-2);color:var(--color-text-primary);font-size:var(--font-size-body);font-weight:800}.sync-chip{white-space:normal;align-self:flex-start;max-width:100%}.filters .field{flex:0 260px}.nav{padding:0 var(--space-4) var(--space-6);border-top:0;flex-direction:column;grid-area:nav;gap:2px;display:flex;position:static}.nav-item{min-height:var(--size-touch-min);padding:0 var(--space-3);color:var(--color-text-primary);font-size:var(--font-size-label);flex-direction:row;justify-content:flex-start}.nav-item svg{display:none}.nav-item[aria-current=page]{background:var(--color-surface-selected)}.nav-item.record{display:none}.page{width:100%;max-width:var(--size-content);gap:var(--space-6);padding:var(--space-6) var(--space-8) 40px}.page-header h1{font-size:1.75rem}.page-header .page-action{flex:none}.page-action.large{min-height:var(--size-touch-min);font-size:var(--font-size-label);border-radius:var(--radius-control)}.stats{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat{padding:18px}.stat-value{font-size:1.625rem}}.sheet-backdrop{z-index:20;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--color-surface-page);flex-direction:column;width:100%;height:100%;display:flex}.sheet-header{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3) var(--space-2);padding-top:calc(var(--space-4) + env(safe-area-inset-top));display:flex}.sheet-header h2{flex:1;font-size:1.375rem}.sheet-header h2:focus{outline:none}.sheet-body{gap:var(--space-5);padding:var(--space-2) var(--space-5) var(--space-6);flex-direction:column;flex:1;display:flex;overflow:auto}.sheet-footer{gap:var(--space-2);padding:var(--space-3) var(--space-5);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom));background:var(--color-surface-default);border-top:1px solid var(--color-border);text-align:center;flex-direction:column;display:flex}.saved{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;padding-top:40px;display:flex}.saved-icon{border:2px solid var(--color-action-primary);border-radius:var(--radius-pill);justify-content:center;align-items:center;width:64px;height:64px;display:flex}.summary{background:var(--color-surface-default);border:1px solid var(--color-border);border-radius:var(--radius-card);margin:0}.summary div{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);display:flex}.summary div+div{border-top:1px solid var(--color-border-subtle)}.summary dt{color:var(--color-text-secondary)}.summary dd{font-weight:var(--font-weight-medium);text-align:right;margin:0}@media (width>=1024px){.sheet-backdrop{background:var(--color-backdrop)}.sheet{width:min(var(--size-panel), 100%);background:var(--color-surface-default);box-shadow:var(--shadow-panel)}.sheet-header{padding:var(--space-6) var(--space-4) var(--space-2) var(--space-6)}.sheet-body{padding:var(--space-2) var(--space-6) var(--space-6)}.sheet-footer{padding:var(--space-4) var(--space-6);text-align:left;flex-flow:row-reverse wrap;align-items:center}.sheet-footer .button.large{min-height:var(--size-touch-min);font-size:var(--font-size-label)}.sheet-footer .help{flex:1}}@media (prefers-reduced-motion:no-preference){.sheet{animation:.2s ease-out sheet-in}@keyframes sheet-in{0%{opacity:0;transform:translate(24px)}}}.card.waiting{border:2px dashed var(--color-feedback-pending)}.list-item{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.sheet-form{flex-direction:column;flex:1;min-height:0;display:flex}.grow{flex:1}@media (width>=1024px){.narrow-page{max-width:760px}}.screen form,.card form{gap:var(--space-4);flex-direction:column;display:flex}.notice-section{gap:var(--space-1);flex-direction:column;display:flex}.update-banner{z-index:30;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--color-surface-default);border-bottom:2px dashed var(--color-feedback-pending);flex-wrap:wrap;display:flex;position:sticky;top:0}[hidden]{display:none}
