.xmodal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.xmodal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c}.xmodal__panel{position:relative;width:min(1500px,100%);height:92vh;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.xmodal__head,.xmodal__foot{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.xmodal__head{justify-content:space-between;border-bottom:1px solid var(--color-border)}.xmodal__foot{justify-content:flex-end;flex-wrap:wrap;border-top:1px solid var(--color-border)}.xmodal__title{font-size:var(--font-size-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60ch}.xmodal__sub{margin-top:var(--space-1);font-size:var(--font-size-sm)}.xmodal__body{flex:1;min-height:0;padding:var(--space-5);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--space-5);overflow:hidden}.xmodal__pdf{min-height:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow:hidden}.xmodal__pdf-frame{width:100%;height:100%;border:0;display:block}.xmodal__right{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5)}.xmodal__prehint{border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-muted);background:var(--color-bg)}@media (max-width: 900px){.xmodal__body{grid-template-columns:1fr;overflow-y:auto}.xmodal__pdf{height:55vh}}.xstream{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow:hidden}.xstream__head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);border-bottom:1px solid var(--color-border)}.xstream__title{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.xstream__status{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px var(--space-2);border-radius:var(--radius-pill)}.xstream__status svg{flex-shrink:0}.xstream__spin{animation:xspin .9s linear infinite}.xstream__status--live{color:var(--color-primary);background:var(--color-primary-soft)}.xstream__status--done{color:var(--color-positive);background:var(--color-success-100)}.xstream__status--error{color:var(--color-negative);background:var(--color-danger-100)}.xstream__log{max-height:90%;overflow-y:auto;padding:var(--space-3);font-size:var(--font-size-sm);display:flex;flex-direction:column;gap:var(--space-1)}.xstream__waiting{color:var(--color-text-muted);padding:var(--space-3);text-align:center}.xstream__line{display:grid;grid-template-columns:108px 1fr;gap:var(--space-3);align-items:start;padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);border-left:2px solid transparent}.xstream__line+.xstream__line{border-top:1px solid var(--color-border);border-top-left-radius:0;border-top-right-radius:0}.xstream__label{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-medium);color:var(--color-text-muted);padding-top:1px}.xstream__icon{flex-shrink:0;opacity:.8}.xstream__text{white-space:pre-wrap;word-break:break-word;line-height:var(--line-height-base)}.xstream__line--reasoning{border-left-color:var(--color-gray-500)}.xstream__line--reasoning .xstream__text{color:var(--color-text-muted);font-style:italic}.xstream__line--text{border-left-color:var(--color-primary)}.xstream__line--tool_call{border-left-color:var(--color-primary);background:var(--color-primary-soft)}.xstream__line--tool_call .xstream__label{color:var(--color-primary)}.xstream__line--tool_call .xstream__text{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--color-primary)}.xstream__line--tool_result{border-left-color:var(--color-gray-600)}.xstream__line--tool_result .xstream__text{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--font-size-xs);color:var(--color-text-muted);max-height:6.5em;overflow:hidden}.xstream__line--refusal{border-left-color:var(--color-negative);background:var(--color-danger-100)}.xstream__line--refusal .xstream__label,.xstream__line--refusal .xstream__text{color:var(--color-negative)}.xstream__line--pending .xstream__text{color:var(--color-text-muted)}.xstream__typing{display:inline-flex;gap:3px;align-items:center}.xstream__typing i{width:5px;height:5px;border-radius:50%;background:var(--color-primary);animation:xbounce 1.2s ease-in-out infinite}.xstream__typing i:nth-child(2){animation-delay:.15s}.xstream__typing i:nth-child(3){animation-delay:.3s}@keyframes xpulse{50%{opacity:.3}}@keyframes xspin{to{transform:rotate(360deg)}}@keyframes xbounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.xmodal__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4);padding:var(--space-4);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md)}.xmodal__summary>div{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-sm)}.xmodal__summary span.muted{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em}.xmodal__summary .badge{align-self:flex-start}.xmodal__txns-head{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3)}.xmodal__txns-head h3{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.04em}.xmodal__table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.xmodal__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.xmodal__table th,.xmodal__table td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap}.xmodal__table tbody tr:last-child td{border-bottom:none}.xmodal__table .num{text-align:right;font-variant-numeric:tabular-nums}.xmodal__table td:nth-child(2){white-space:normal;min-width:220px}@media (max-width: 640px){.xmodal__table-wrap{overflow-x:visible}.xmodal__table thead{display:none}.xmodal__table,.xmodal__table tbody{display:block;width:100%}.xmodal__table tr{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--space-2);row-gap:2px;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.xmodal__table tbody tr:last-child{border-bottom:none}.xmodal__table td{padding:0;border-bottom:none;white-space:normal;min-width:0}.xmodal__table td[data-label=Card],.xmodal__table td[data-label=Category]{display:none}.xmodal__table td[data-label=Description]{order:1;flex:1 1 auto;min-width:0;font-weight:var(--font-weight-medium)}.xmodal__table td.num[data-label=Amount]{order:2;flex:0 0 auto;margin-left:auto;font-weight:var(--font-weight-medium)}.xmodal__table td[data-label=Date]{order:3;flex:0 1 auto;color:var(--color-text-muted);font-size:var(--font-size-xs)}}.xmodal__error{color:var(--color-negative);font-size:var(--font-size-sm)}.xmodal__dupe{margin-right:auto;font-size:var(--font-size-sm);color:var(--color-warning-500)}.layout{min-height:100%}.layout__header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.layout__bar{height:var(--header-height);margin:0 auto;padding:0 var(--space-5);display:flex;align-items:center;justify-content:space-between}.layout__title{display:flex;align-items:baseline;gap:var(--space-3);min-width:0;overflow:hidden}.layout__brand{font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);white-space:nowrap}.layout__sep{color:var(--color-border);font-size:var(--font-size-lg)}.layout__page{font-size:var(--font-size-lg);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.layout__meta{font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layout__user{display:flex;align-items:center;gap:var(--space-4);flex-shrink:0}.layout__main{margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-8)}.layout__tabbar,.layout__upload-error{display:none}@media (max-width: 768px){.layout__bar{padding:0 var(--space-4)}.layout__user{display:none}.layout__brand,.layout__page{font-size:var(--font-size-md)}.layout__meta{display:none}.layout__main{padding:var(--space-4) var(--space-4) calc(var(--bottom-nav-height) + var(--space-6) + env(safe-area-inset-bottom,0px))}.layout__tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:stretch;height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-surface);border-top:1px solid var(--color-border)}.layout__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:var(--space-1);border:0;background:none;font:inherit;font-size:11px;font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--transition-fast)}.layout__tab.active{color:var(--color-primary)}.layout__upload-error{display:block;position:fixed;left:var(--space-4);right:var(--space-4);bottom:calc(var(--bottom-nav-height) + var(--space-2) + env(safe-area-inset-bottom,0px));z-index:20;margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-negative);color:var(--color-negative);font-size:var(--font-size-sm);text-align:center}}.catselect{display:inline-block}.catselect__trigger{display:inline-flex;align-items:center;gap:var(--space-2);max-width:200px;padding:var(--space-1) var(--space-2);margin:calc(var(--space-1) * -1) calc(var(--space-2) * -1);font:inherit;color:var(--color-text);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.catselect__trigger:hover:not(:disabled){background:var(--color-surface-raised);border-color:var(--color-border)}.catselect__trigger:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.catselect__trigger[aria-expanded=true]{background:var(--color-surface-raised);border-color:var(--color-primary)}.catselect__trigger:disabled{opacity:.55;cursor:progress}.catselect__trigger--empty .catselect__value{color:var(--color-text-muted)}.catselect__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catselect__icon{flex:none;color:var(--color-text-muted)}.catselect__chev{flex:none;color:var(--color-text-muted);transition:transform var(--transition-fast)}.catselect__trigger[aria-expanded=true] .catselect__chev{transform:rotate(180deg)}.catselect__menu{z-index:50;overflow-y:auto;margin:0;padding:var(--space-1);list-style:none;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.catselect__option{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap}.catselect__option--none{color:var(--color-text-muted)}.catselect__option--active{background:var(--color-primary-soft)}.catselect__option--selected{color:var(--color-primary);font-weight:var(--font-weight-medium)}.catselect__option svg{flex:none;color:var(--color-primary)}.uiselect{display:inline-block;width:100%}.uiselect__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;min-width:120px;height:28px;box-sizing:border-box;padding:0 var(--space-2);font:inherit;font-size:var(--font-size-xs);line-height:1;color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.uiselect__trigger:hover:not(:disabled){border-color:var(--color-gray-500)}.uiselect__trigger:focus-visible,.uiselect__trigger[aria-expanded=true]{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.uiselect__trigger:disabled{opacity:.55;cursor:progress}.uiselect__trigger--empty .uiselect__value{color:var(--color-text-muted)}.uiselect__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uiselect__chev{flex:none;color:var(--color-text-muted);transition:transform var(--transition-fast)}.uiselect__trigger[aria-expanded=true] .uiselect__chev{transform:rotate(180deg)}.uiselect__menu{z-index:50;overflow-y:auto;margin:0;padding:var(--space-1);list-style:none;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.uiselect__option{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap}.uiselect__option--none{color:var(--color-text-muted)}.uiselect__option--active{background:var(--color-primary-soft)}.uiselect__option--selected{color:var(--color-primary);font-weight:var(--font-weight-medium)}.uiselect__option svg{flex:none;color:var(--color-primary)}.chipdd{display:none;position:relative;margin-bottom:var(--space-4)}@media (max-width: 768px){.chipdd{display:block}}.chipdd--merchant{margin-top:calc(var(--space-3) * -1);padding-left:var(--space-3);border-left:2px solid var(--color-border)}.chipdd__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer}.chipdd__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chipdd__chev{flex-shrink:0;color:var(--color-text-muted);transition:transform var(--transition-fast)}.chipdd__chev--open{transform:rotate(180deg)}.chipdd__panel{position:absolute;top:calc(100% + var(--space-2));left:0;right:0;z-index:5;display:flex;flex-direction:column;max-height:288px;overflow-y:auto;padding:var(--space-2);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.chipdd__row{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--color-text);font:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast),opacity var(--transition-fast)}.chipdd__row:hover{background:var(--color-surface)}.chipdd__row.is-off{opacity:.45;text-decoration:line-through}.chipdd__row--all.is-active{color:var(--color-primary)}.chipdd__row-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chipdd__swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.chipdd__check{flex-shrink:0;color:var(--color-primary)}.cbar{margin:0 0 var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.cbar__caption{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-bottom:var(--space-3)}.cbar__chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}@media (max-width: 768px){.cbar__chips{display:none}}.cbar__chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--transition-fast),border-color var(--transition-fast)}.cbar__chip:hover{border-color:var(--color-text-muted)}.cbar__chip.is-off{opacity:.45;text-decoration:line-through}.cbar__chip--all.is-active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.cbar__chip-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.cbar__chips--merchant{margin-top:calc(var(--space-3) * -1);padding-left:var(--space-3);border-left:2px solid var(--color-border)}.cbar__chips--merchant .cbar__chip{font-size:11px}.cbar__plot{position:relative;width:100%}.cbar__svg{display:block;width:100%;height:auto;overflow:visible}.cbar__grid{stroke:var(--color-border);stroke-width:1;vector-effect:non-scaling-stroke}.cbar__axis{fill:var(--color-text-muted);font-size:10px;font-family:var(--font-family-base)}.cbar__band{fill:var(--color-text);opacity:.06;pointer-events:none}.cbar__seg{transition:opacity var(--transition-fast)}.cbar__seg:hover,.cbar__seg.is-hover{opacity:.82}.cbar__tip{position:absolute;top:0;display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);pointer-events:none;white-space:nowrap;z-index:2}.cbar__tip-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.cbar__tip-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.cbar__tip-row--total{margin-top:2px;padding-top:var(--space-2);border-top:1px solid var(--color-border)}.cbar__tip-value{margin-left:auto;padding-left:var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);font-variant-numeric:tabular-nums}.cbar__swatch{width:10px;height:10px;border-radius:2px}.cmchart__body{display:flex;align-items:flex-start;gap:var(--space-4)}.cmchart__plot{flex:1 1 auto;min-width:0}.cmchart__side{flex:0 0 300px;display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto;padding-left:var(--space-4);border-left:1px solid var(--color-border)}.cmchart__side .cbar__chip{width:100%;justify-content:flex-start}@media (max-width: 768px){.cmchart__body{flex-direction:column}.cmchart__side{display:none}.cmchart__body .chipdd{align-self:stretch}}.cspend{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.cspend__head{display:flex;flex-direction:column;gap:var(--space-2);flex-shrink:0;padding:var(--space-3);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.cspend__head-label{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.cspend__title{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.cspend__badge{padding:2px var(--space-2);font-size:11px;font-weight:var(--font-weight-medium);color:var(--color-primary);background:var(--color-primary-soft);border-radius:var(--radius-pill)}.cspend__total{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.cspend__list{list-style:none;margin:0;padding:0;padding-top:var(--space-1);display:flex;flex-direction:column;gap:var(--space-3);min-height:0;overflow-y:auto;margin-right:calc(var(--space-2) * -1);padding-right:var(--space-2)}.cspend__card{display:flex;flex-direction:column;gap:var(--space-3);width:100%;padding:var(--space-4);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;color:var(--color-text);text-align:left;cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.cspend__card:hover{border-color:var(--color-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.cspend__card:focus-visible{outline:2px solid var(--color-primary-soft);border-color:var(--color-primary)}.cspend__card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.cspend__card-top{display:flex;align-items:flex-start;gap:var(--space-3);min-width:0;flex:1}.cspend__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);flex-shrink:0}.cspend__heading{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.cspend__name-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.cspend__name{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cspend__pct{padding:1px var(--space-2);font-size:11px;font-weight:var(--font-weight-medium);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;flex-shrink:0}.cspend__desc{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:var(--line-height-base)}.cspend__spent{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;text-align:right}.cspend__spent-label{font-size:11px;font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.cspend__amount{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.cspend__bar{display:block;height:4px;border-radius:var(--radius-pill);background:var(--color-border);overflow:hidden}.cspend__bar-fill{display:block;height:100%;min-width:2px;border-radius:var(--radius-pill)}.cspend__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:var(--space-2) var(--space-3);padding-top:var(--space-1);border-top:1px solid var(--color-border)}.cspend__stat{display:flex;flex-direction:column;gap:2px;min-width:0}.cspend__stat:nth-child(2){align-items:center;text-align:center}.cspend__stat:last-child{align-items:flex-end;text-align:right}.cspend__stat-label{font-size:10px;font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.cspend__stat-value{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text);font-variant-numeric:tabular-nums}.cspend__foot{flex-shrink:0;margin:0;padding-top:var(--space-1);font-size:11px;color:var(--color-text-muted);text-align:center}.datepicker{z-index:50;width:216px;padding:var(--space-2);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.datepicker__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.datepicker__nav{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;color:var(--color-text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer}.datepicker__nav:hover{color:var(--color-text);background:var(--color-surface);border-color:var(--color-border)}.datepicker__month{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text)}.datepicker__weekdays,.datepicker__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.datepicker__weekdays span{display:flex;align-items:center;justify-content:center;height:20px;font-size:var(--font-size-xs);color:var(--color-text-muted)}.datepicker__cell{display:flex;align-items:center;justify-content:center;height:26px;padding:0;font:inherit;font-size:var(--font-size-xs);color:var(--color-text);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer}.datepicker__cell--empty{cursor:default}.datepicker__cell:not(.datepicker__cell--empty):hover{background:var(--color-surface);border-color:var(--color-border)}.datepicker__cell.is-today{color:var(--color-primary);font-weight:var(--font-weight-medium)}.datepicker__cell.is-selected{color:var(--color-white, #fff);background:var(--color-primary);border-color:var(--color-primary)}.datepicker__clear{width:100%;margin-top:var(--space-2);padding:var(--space-1) 0;font:inherit;font-size:var(--font-size-xs);color:var(--color-text-muted);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.datepicker__clear:hover{color:var(--color-text);border-color:var(--color-gray-500)}.detail__head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4)}.detail__back{display:inline-block;margin-bottom:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);text-decoration:none}.detail__back:hover{color:var(--color-text)}.detail__head-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.detail__error{color:var(--color-negative);padding:var(--space-5)}.detail__empty{padding:var(--space-6) 0;text-align:center}.detail__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}@media (max-width: 768px){.detail__stats{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.detail__stats .detail__stat--txns,.detail__stats .detail__stat--recon{display:none}.detail__head{gap:var(--space-3)}.detail__head-actions{display:none}.detail__txns{padding:var(--space-4)}.detail__table th,.detail__table td{padding:var(--space-2) var(--space-3)}}.detail__stat{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.detail__stat strong{font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}.detail__stat-neg{color:var(--color-negative)}.detail__stat-pos{color:var(--color-positive)}.detail__split{display:grid;gap:var(--space-4);min-height:360px}.detail__split--with-pdf{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (max-width: 960px){.detail__split--with-pdf{grid-template-columns:1fr;height:auto;min-height:0}}.detail__pdf-wrap{padding:var(--space-3)}.detail__pdf{width:100%;height:70vh;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-white)}.detail__split--with-pdf .detail__pdf-wrap{min-height:0;display:flex}.detail__split--with-pdf .detail__pdf{height:100%}@media (max-width: 960px){.detail__split--with-pdf .detail__pdf{height:70vh}}.detail__txns{padding:var(--space-5)}.detail__split .detail__txns{display:flex;flex-direction:column;height:500px;overflow:hidden}.detail__txns-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.detail__split .detail__txns-head{flex:none}.detail__split .detail__table-wrap{flex:1;min-height:0;overflow:auto}.detail__txns-head h2{font-size:var(--font-size-lg)}.detail__table-wrap{overflow-x:auto}.detail__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.detail__table th,.detail__table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap}.detail__table th{color:var(--color-text-muted);font-weight:var(--font-weight-medium);position:sticky;top:0;background:var(--color-surface);box-shadow:inset 0 -1px 0 var(--color-border);z-index:1}.detail__table tbody tr:last-child td{border-bottom:none}.detail__table .num{text-align:right;font-variant-numeric:tabular-nums}.detail__desc{white-space:normal;min-width:220px}.detail__stat-recon-label{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.detail__txns-head-meta{display:flex;align-items:center;gap:var(--space-3)}.detail__table thead th{vertical-align:top}.th-filter{display:flex;flex-direction:column;gap:var(--space-2)}.th-filter__label{color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.th-filter__controls{display:flex;flex-direction:column;gap:var(--space-1);font-weight:var(--font-weight-regular)}.th-filter__controls input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-width:120px;height:28px;box-sizing:border-box;padding:0 var(--space-2);font:inherit;font-size:var(--font-size-xs);line-height:1;color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.th-filter__controls input::placeholder{color:var(--color-text-muted)}.th-filter__controls input:hover{border-color:var(--color-gray-500)}.th-filter__controls input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.th-filter__controls input[type=number]{-moz-appearance:textfield}.th-filter__controls input[type=number]::-webkit-outer-spin-button,.th-filter__controls input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.th-filter__controls input[type=search]::-webkit-search-cancel-button,.th-filter__controls input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.detail__table thead th.num .th-filter,.detail__table thead th.num .th-filter__controls{align-items:stretch}.amount-range{display:flex;gap:var(--space-1)}.th-filter__controls .amount-range input{min-width:64px}.date-range{display:flex;align-items:center;gap:var(--space-1)}.icon-date{position:relative;display:inline-flex}.icon-date__btn,.date-range__clear{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;color:var(--color-text-muted);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.icon-date__btn:hover,.date-range__clear:hover{color:var(--color-text);border-color:var(--color-gray-500)}.icon-date__btn:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.icon-date.is-set .icon-date__btn{color:var(--color-primary);border-color:var(--color-primary)}.date-range__clear,.date-range__clear:hover{border-color:transparent;background:transparent}.detail__recon-btn{margin-top:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}@media (max-width: 640px){.detail__table-wrap{overflow-x:visible}.detail__table thead{display:none}.detail__table,.detail__table tbody{display:block;width:100%}.detail__table tr{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--space-2);row-gap:3px;padding:var(--space-2) 0;padding-right:6.5rem;border-bottom:1px solid var(--color-border)}.detail__table tbody tr:last-child{border-bottom:none}.detail__table td{padding:0;border-bottom:none;white-space:normal}.detail__table td[data-label=Page],.detail__table td[data-label=Posted],.detail__table td[data-label=Card],.detail__table td[data-label=Statement],.detail__table td[data-label=Merchant],.detail__table td[data-label=Payments],.detail__table td[data-label=Txns]{display:none}.detail__table td[data-label=Reconciled]{order:4;flex:0 0 auto;margin-left:auto}.detail__table td[data-label=Description],.detail__table td[data-label=File]{order:1;flex:1 1 100%;min-width:0;font-weight:var(--font-weight-medium)}.detail__table td.num[data-label=Amount],.detail__table td.num[data-label=Expenditure]{position:absolute;top:50%;right:0;transform:translateY(-50%);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.detail__table td[data-label="Txn date"],.detail__table td[data-label="Statement date"],.detail__table td[data-label=Type]{order:2;flex:1 1 100%;color:var(--color-text-muted);font-size:var(--font-size-xs)}.detail__table td[data-label=Category]{order:3;flex:1 1 100%;min-width:0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.detail__table td[data-label=Category] .catselect__trigger{font-size:var(--font-size-xs);padding:2px var(--space-2)}.detail__table td[colspan]{order:0;flex-basis:100%}}.cattxn__stmt-link{color:var(--color-text-muted);text-decoration:none}.cattxn__stmt-link:hover{color:var(--color-text);text-decoration:underline}.cattxn__note{margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-success-100);color:var(--color-success-500);font-size:var(--font-size-sm)}.mtrend{margin:0 0 var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.mtrend__caption{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-bottom:var(--space-3)}.mtrend__legend{display:inline-flex;gap:var(--space-4)}.mtrend__key{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-regular)}.mtrend__key:before{content:"";width:14px;height:3px;border-radius:2px}.mtrend__key--exp:before{background:var(--color-negative)}.mtrend__key--pay:before{background:var(--color-positive)}.mtrend__key--net:before{width:10px;height:10px;border-radius:2px;background:linear-gradient(90deg,var(--color-positive) 0 50%,var(--color-negative) 50% 100%)}.mtrend__plot{position:relative;width:100%}.mtrend__svg{display:block;width:100%;height:auto;overflow:visible}.mtrend__grid{stroke:var(--color-border);stroke-width:1;vector-effect:non-scaling-stroke}.mtrend__axis{fill:var(--color-text-muted);font-size:10px;font-family:var(--font-family-base)}.mtrend__bar{opacity:1}.mtrend__bar--pos{fill:var(--color-positive)}.mtrend__bar--neg{fill:var(--color-negative)}.mtrend__barval-stem{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.mtrend__barval-pill{fill:var(--color-gray-900)}.mtrend__barval{fill:var(--color-gray-50);font-size:9px;font-family:var(--font-family-base);font-variant-numeric:tabular-nums}.mtrend__line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.mtrend__line--exp{stroke:hsl(from var(--color-negative) h 100% l)}.mtrend__line--pay{stroke:hsl(from var(--color-positive) h 100% l)}.mtrend__crosshair{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.mtrend__dot{stroke:var(--color-surface);stroke-width:2}.mtrend__dot--exp{fill:var(--color-negative)}.mtrend__dot--pay{fill:var(--color-positive)}.mtrend__tip{position:absolute;top:0;display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);pointer-events:none;white-space:nowrap;z-index:2}.mtrend__tip-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.mtrend__tip-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.mtrend__tip-value{margin-left:auto;padding-left:var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);font-variant-numeric:tabular-nums}.mtrend__swatch{width:10px;height:10px;border-radius:2px}.mtrend__swatch--exp{background:var(--color-negative)}.mtrend__swatch--pay{background:var(--color-positive)}.nsav{margin:0 0 var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.nsav__caption{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-bottom:var(--space-2)}.nsav__legend{display:inline-flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4)}.nsav__key{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-regular)}.nsav__key:before{content:"";width:14px;height:3px;border-radius:2px}.nsav__key--exp:before{background:var(--color-negative)}.nsav__key--pay:before{background:var(--color-positive)}.nsav__key--contribute:before,.nsav__key--withdraw:before{width:10px;height:10px;border-radius:2px}.nsav__key--contribute:before{background:var(--color-positive)}.nsav__key--withdraw:before{background:var(--color-negative)}.nsav__note{font-size:var(--font-size-xs);margin:0 0 var(--space-3)}@media (max-width: 768px){.nsav__note{display:none}}.nsav__plot{position:relative;width:100%}.nsav__svg{display:block;width:100%;height:auto;overflow:visible}.nsav__grid{stroke:var(--color-border);stroke-width:1;vector-effect:non-scaling-stroke}.nsav__axis{fill:var(--color-text-muted);font-size:10px;font-family:var(--font-family-base)}.nsav__barval-stem{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.nsav__barval-pill{fill:var(--color-gray-900)}.nsav__barval{fill:var(--color-gray-50);font-size:9px;font-family:var(--font-family-base);font-variant-numeric:tabular-nums}.nsav__delta{font-size:10px;font-family:var(--font-family-base);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.nsav__delta--pos{fill:hsl(from var(--color-positive) h 100% l)}.nsav__delta--neg{fill:hsl(from var(--color-negative) h 100% l)}.nsav__delta-pill{fill:var(--color-gray-900)}.nsav__bar{opacity:.85}.nsav__bar--contribute{fill:var(--color-positive)}.nsav__bar--withdraw{fill:var(--color-negative)}.nsav__line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.nsav__line--exp{stroke:hsl(from var(--color-negative) h 100% l)}.nsav__line--pay{stroke:hsl(from var(--color-positive) h 100% l)}.nsav__crosshair{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.nsav__dot{stroke:var(--color-surface);stroke-width:2}.nsav__dot--exp{fill:var(--color-negative)}.nsav__dot--pay{fill:var(--color-positive)}.nsav__tip{position:absolute;top:0;display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);pointer-events:none;white-space:nowrap;z-index:2}.nsav__tip-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.nsav__tip-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.nsav__tip-row--sub{margin-top:-2px;padding-left:calc(10px + var(--space-2));font-size:calc(var(--font-size-xs) - 1px);opacity:.85}.nsav__tip-row--sav{margin-top:2px;padding-top:var(--space-2);border-top:1px solid var(--color-border)}.nsav__tip-value{margin-left:auto;padding-left:var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);font-variant-numeric:tabular-nums}.nsav__swatch{width:10px;height:10px;border-radius:2px}.nsav__swatch--exp{background:var(--color-negative)}.nsav__swatch--pay,.nsav__swatch--contribute{background:var(--color-positive)}.nsav__swatch--withdraw{background:var(--color-negative)}.upload{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.upload__status{font-size:var(--font-size-sm)}.upload__error{font-size:var(--font-size-sm);color:var(--color-negative)}.upload__dupe{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);font-size:var(--font-size-sm);padding:var(--space-3) var(--space-4);background:var(--color-warning-100);border-radius:var(--radius-md);width:100%}.dashboard__spend{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--space-4);align-items:stretch}.dashboard__spend-charts{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.dashboard__spend-charts>.cbar,.dashboard__spend-charts>.mtrend,.dashboard__spend-charts>.nsav{margin-bottom:0}.dashboard__spend:not(:has(.dashboard__spend-rail)){grid-template-columns:1fr}.dashboard__spend-rail{position:relative;min-height:0}.dashboard__spend-rail>.cspend{position:absolute;top:0;right:0;bottom:0;left:0}@media (max-width: 900px){.dashboard__spend{grid-template-columns:1fr}.dashboard__spend-rail{position:static}.dashboard__spend-rail>.cspend{position:static}}.dashboard__list{padding:var(--space-5)}@media (max-width: 768px){.dashboard__list-panel{display:none}}.dashboard__list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.dashboard__list-head h2{font-size:var(--font-size-lg)}.dashboard__list-actions{display:flex;align-items:center;gap:var(--space-3)}.dashboard__refresh{display:inline-flex;align-items:center;gap:var(--space-2)}.dashboard__empty{padding:var(--space-6) 0;text-align:center}.dashboard__error{color:var(--color-negative);margin-bottom:var(--space-4)}.dashboard__table-wrap{overflow-x:auto}.dashboard__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.dashboard__table th,.dashboard__table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap}.dashboard__table th{color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.dashboard__table tbody tr:last-child td{border-bottom:none}.dashboard__group+.dashboard__group .dashboard__group-row td{border-top:2px solid var(--color-border)}.dashboard__group-row td{background:var(--color-surface-raised);font-weight:var(--font-weight-medium)}.dashboard__group-toggle{display:inline-flex;align-items:center;gap:var(--space-2);padding:0;background:none;border:0;font:inherit;font-weight:var(--font-weight-medium);color:var(--color-text);cursor:pointer}.dashboard__group-toggle .muted{font-weight:var(--font-weight-regular);font-size:var(--font-size-xs)}.dashboard__group-label{font-variant-numeric:tabular-nums}.dashboard__delta{display:none;font-variant-numeric:tabular-nums}.dashboard__delta--positive{color:var(--color-positive)}.dashboard__delta--negative{color:var(--color-negative)}.dashboard__indent{padding-left:var(--space-6)}.dashboard__row{cursor:pointer;transition:background var(--transition-fast)}.dashboard__row:hover{background:var(--color-surface-raised)}.dashboard__row[aria-selected=true]{background:var(--color-primary-soft)}.dashboard__table .num{text-align:right;font-variant-numeric:tabular-nums}.dashboard__actions{text-align:right}.dashboard__actions .btn{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.dashboard__actions .btn--icon{padding:var(--space-2)}.badge{display:inline-block;padding:2px var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.badge--ok{background:var(--color-success-100);color:var(--color-success-500)}.badge--warn{background:var(--color-warning-100);color:var(--color-warning-500)}@media (max-width: 768px){.dashboard__list{padding:var(--space-4)}.dashboard__list-head{gap:var(--space-3)}.dashboard__list-actions .upload{display:none}.dashboard__refresh{padding:var(--space-2)}.dashboard__refresh-label{display:none}.dashboard__table th,.dashboard__table td{padding:var(--space-2) var(--space-3)}.dashboard__spend-rail{display:none}}@media (max-width: 640px){.dashboard__table-wrap{overflow-x:visible}.dashboard__table thead{display:none}.dashboard__table,.dashboard__table tbody{display:block;width:100%}.dashboard__table tr{display:block}.dashboard__group{display:block;margin-bottom:var(--space-3)}.dashboard__table tr.dashboard__group-row{display:flex;flex-wrap:nowrap;align-items:center;column-gap:var(--space-3);padding:var(--space-3);background:var(--color-surface-raised);border-radius:var(--radius-md)}.dashboard__group+.dashboard__group .dashboard__group-row td{border-top:none}.dashboard__group-row td{background:none;border-bottom:none;padding:0}.dashboard__group-row td:first-child{flex:1 1 auto;min-width:0}.dashboard__group-toggle{max-width:100%}.dashboard__group-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard__group-row td[data-label=Expenditure]{order:2;flex:0 0 auto;text-align:right;font-size:var(--font-size-md)}.dashboard__group-row .dashboard__expenditure{display:none}.dashboard__group-row .dashboard__delta{display:inline}.dashboard__group-row td.dashboard__actions{order:3;flex:0 0 auto}.dashboard__group-row td[data-label=Payments],.dashboard__group-row td[data-label=Txns],.dashboard__group-row td[data-label=Reconciled]{display:none}.dashboard__table tr.dashboard__row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:var(--space-2);row-gap:2px;padding:var(--space-2) var(--space-1);border-bottom:1px solid var(--color-border)}.dashboard__row td{padding:0;border-bottom:none;white-space:normal}.dashboard__row td[data-label=Type],.dashboard__row td[data-label=Expenditure],.dashboard__row td[data-label=Payments],.dashboard__row td[data-label=Txns],.dashboard__row td[data-label=Added],.dashboard__row td[data-label=Reconciled],.dashboard__cell-hide{display:none}.dashboard__row td.dashboard__indent{grid-column:1;grid-row:1;min-width:0;padding-left:0;font-weight:var(--font-weight-medium)}.dashboard__row td[data-label="Statement date"]{grid-column:1;grid-row:2;color:var(--color-text-muted);font-size:var(--font-size-xs)}.dashboard__row td.dashboard__actions{grid-column:2;grid-row:1 / span 2;display:flex;align-items:center}}.login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.login__card{width:100%;max-width:380px;padding:var(--space-6);box-shadow:var(--shadow-md)}.login__title{font-size:var(--font-size-xl)}.login__subtitle{margin-bottom:var(--space-5)}.login__hint{margin-top:var(--space-4);font-size:var(--font-size-xs);text-align:center}.login__error{margin:0 0 var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-danger-100);color:var(--color-danger-500);font-size:var(--font-size-sm)}.txcharts{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-4);align-items:stretch}.txcharts>.txchart{min-width:0;display:flex;flex-direction:column}.txchart__plot{flex:1}@media (max-width: 900px){.txcharts{grid-template-columns:1fr}}.txcharts>.txchart--weekly{display:none}@media (max-width: 768px){.txcharts>.txchart--daily{display:none}.txcharts>.txchart--weekly{display:flex}}.txchart{margin:0;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.txchart__caption{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-bottom:var(--space-4)}.txchart__plot{position:relative;width:100%}.txchart__svg{display:block;width:100%;height:auto;overflow:visible}.txchart__grid{stroke:var(--color-border);stroke-width:1;vector-effect:non-scaling-stroke}.txchart__axis{fill:var(--color-text-muted);font-size:13px;font-family:var(--font-family-base)}.txchart__area{fill:var(--color-primary-soft)}.txchart__line{fill:none;stroke:var(--color-primary);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.txchart__crosshair{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.txchart__dot{fill:var(--color-primary);stroke:var(--color-surface);stroke-width:2}.txbars{display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-4);height:100%;min-height:200px}.txbar{display:flex;flex-direction:column;gap:var(--space-2)}.txbar__row{display:flex;align-items:center;gap:var(--space-2)}.txbar__icon{flex:none;color:var(--color-text-muted)}.txbar__label{flex:1 1 auto;min-width:0;font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.txbar__value{flex:none;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;font-family:var(--font-family-mono, inherit)}.txbar__value--credit{color:var(--color-positive)}.txbar__track{position:relative;display:block;width:100%;height:6px;background:var(--color-border);border-radius:var(--radius-full, 999px);overflow:hidden}.txbar__fill{display:block;height:100%;background:var(--color-primary);border-radius:var(--radius-full, 999px);transition:background var(--transition-fast)}.txbar.is-hover .txbar__fill{background:var(--color-primary-hover)}.txbar__fill--credit{background:var(--color-positive)}.txbar.is-hover .txbar__fill--credit{background:var(--color-positive);filter:brightness(.92)}.txchart__tip{position:absolute;top:0;display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);pointer-events:none;white-space:nowrap;z-index:2}.txchart__tip--bar{right:0;top:0}.txchart__tip-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.txchart__tip-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);font-variant-numeric:tabular-nums}.txchart__tip-sub{font-size:var(--font-size-xs);color:var(--color-text-muted)}.month__row{cursor:pointer;transition:background var(--transition-fast)}.month__row:hover{background:var(--color-surface-raised)}.month__stmt-link{color:var(--color-text-muted);text-decoration:none}.month__stmt-link:hover{color:var(--color-text);text-decoration:underline}.txn-category{display:inline-flex;align-items:center;gap:4px}.txn-category svg{flex:none;color:var(--color-text-muted)}.rmodal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.rmodal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c}.rmodal__panel{position:relative;width:min(720px,100%);max-height:90vh;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.rmodal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.rmodal__title{font-size:var(--font-size-md)}.rmodal__sub{margin-top:var(--space-1);font-size:var(--font-size-sm)}.rmodal__head-right{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.rmodal__body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.recon__card{border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);padding:var(--space-4)}.recon__card--ok{border-left-color:var(--color-positive)}.recon__card--off{border-left-color:var(--color-warning-500)}.recon__card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.recon__card-title{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.recon__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}@media (max-width: 560px){.recon__grid{grid-template-columns:1fr}}.recon__metric{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.recon__metric-label{display:block;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:var(--space-2)}.recon__lines{margin:0;display:flex;flex-direction:column;gap:var(--space-1)}.recon__lines>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.recon__lines dt{font-size:var(--font-size-sm);color:var(--color-text-muted)}.recon__lines dd{margin:0;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.recon__diff{margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px dashed var(--color-border)}.recon__diff dt,.recon__diff dd{font-weight:var(--font-weight-medium)}.recon__diff--ok dd{color:var(--color-positive)}.recon__diff--off dd{color:var(--color-negative)}.recon__card-foot{margin-top:var(--space-3);font-size:var(--font-size-xs)}:root{color-scheme:dark;--color-white: #ffffff;--color-black: #000000;--color-gray-950: #0e1116;--color-gray-900: #151a21;--color-gray-850: #1b212a;--color-gray-800: #222a34;--color-gray-700: #2d3742;--color-gray-600: #3c4854;--color-gray-500: #6b7484;--color-gray-400: #8c95a3;--color-gray-300: #aeb6c2;--color-gray-200: #cdd3dc;--color-gray-100: #e7eaef;--color-gray-50: #f7f8fa;--color-teal-300: #5eead4;--color-teal-400: #2dd4bf;--color-teal-500: #14b8a6;--color-teal-600: #0d9488;--color-teal-soft: rgba(45, 212, 191, .15);--color-coral-300: #fda4af;--color-coral-400: #fb7185;--color-coral-500: #f43f5e;--color-coral-600: #e11d48;--color-coral-soft: rgba(251, 113, 133, .15);--color-bg: var(--color-gray-950);--color-surface: var(--color-gray-900);--color-surface-raised: var(--color-gray-850);--color-border: var(--color-gray-700);--color-text: var(--color-gray-100);--color-text-muted: var(--color-gray-400);--color-text-inverse: var(--color-gray-950);--color-primary: var(--color-teal-400);--color-primary-hover: var(--color-teal-300);--color-primary-soft: var(--color-teal-soft);--color-accent: var(--color-coral-400);--color-accent-hover: var(--color-coral-300);--color-accent-soft: var(--color-coral-soft);--color-positive: var(--color-teal-400);--color-negative: var(--color-coral-400);--color-success-500: var(--color-teal-400);--color-danger-500: var(--color-coral-400);--color-warning-500: var(--color-coral-300);--color-success-100: var(--color-teal-soft);--color-danger-100: var(--color-coral-soft);--color-warning-100: var(--color-coral-soft);--color-brand-100: var(--color-teal-soft);--color-brand-400: var(--color-teal-300);--color-brand-500: var(--color-teal-400);--color-brand-600: var(--color-teal-500);--color-brand-soft: var(--color-teal-soft);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--space-10: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-xs: 13px;--font-size-sm: 15px;--font-size-md: 16px;--font-size-lg: 22px;--font-size-xl: 30px;--font-size-2xl: 38px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-base: 1.5;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .45);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .55);--layout-max-width: 1080px;--header-height: 60px;--bottom-nav-height: 56px;--breakpoint-mobile: 768px;--transition-fast: .12s ease;--transition-base: .2s ease}:root[data-theme=light]{color-scheme:light;--color-bg: var(--color-gray-50);--color-surface: var(--color-white);--color-surface-raised: var(--color-white);--color-border: #dfe3ea;--color-text: #1b1f27;--color-text-muted: #6b7484;--color-text-inverse: var(--color-white);--color-primary: var(--color-teal-600);--color-primary-hover: var(--color-teal-500);--color-primary-soft: rgba(13, 148, 136, .1);--color-accent: var(--color-coral-500);--color-accent-hover: var(--color-coral-600);--color-accent-soft: rgba(244, 63, 94, .1);--color-positive: var(--color-teal-600);--color-negative: var(--color-coral-500);--color-success-500: var(--color-teal-600);--color-danger-500: var(--color-coral-500);--color-warning-500: var(--color-coral-500);--color-success-100: rgba(13, 148, 136, .12);--color-danger-100: rgba(244, 63, 94, .12);--color-warning-100: rgba(244, 63, 94, .12);--color-brand-100: rgba(13, 148, 136, .12);--shadow-sm: 0 1px 2px rgba(27, 31, 39, .06);--shadow-md: 0 4px 16px rgba(27, 31, 39, .08);--shadow-lg: 0 12px 32px rgba(27, 31, 39, .12)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family-base);font-size:var(--font-size-md);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}.app-boot{height:100%;background:var(--color-bg)}a{color:var(--color-primary);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:inherit;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),opacity var(--transition-fast)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--color-white)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--ghost{background:transparent;border-color:var(--color-border);color:var(--color-text)}.btn--ghost:hover:not(:disabled){background:var(--color-surface-raised)}.btn--danger{color:var(--color-negative)}.btn--danger:hover:not(:disabled){background:var(--color-danger-100);border-color:var(--color-negative)}.btn--block{width:100%}.btn--icon{padding:var(--space-2);line-height:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.input{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);font-family:inherit;background:var(--color-surface);color:var(--color-text)}.input:focus{outline:2px solid var(--color-primary-soft);border-color:var(--color-primary)}.muted{color:var(--color-text-muted)}.stack{display:flex;flex-direction:column;gap:var(--space-5)}@media (max-width: 768px){.stack{gap:var(--space-4)}}
