:root{--bg:#f8fafc;--surface:#fff;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--shadow:0 1px 3px #00000014, 0 4px 16px #0000000f;--shadow-pop:0 8px 28px #00000029;--overlay:#0f172a66;--primary:#475569;--primary-fill:#334155;--primary-fill-strong:#1e293b;--primary-strong:#334155;--primary-light:#f1f5f9;--primary-border:#cbd5e1;--on-primary:#fff;--focus:#475569;--focus-ring:0 0 0 3px #47556959;--danger:#dc2626;--danger-light:#fef2f2;--danger-border:#fecaca;--warning:#b45309;--warning-light:#fffbeb;--warning-border:#fde68a;--success:#0f766e;--success-light:#f0fdfa;--success-border:#5eead4;--on-solid:#fff;--radius:12px;--radius-sm:8px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--tap:44px;--header-h:56px;--maxw:720px;--z-header:20;--z-overlay:40;--z-popup:50;--z-toast:60;--font:ui-sans-serif, system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100dvh;line-height:1.6}#root{flex-direction:column;min-height:100dvh;display:flex}input,select,textarea,button{font-family:inherit}button{font:inherit;color:inherit;cursor:pointer}.skip-link{left:var(--space-3);background:var(--surface);color:var(--text);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:100;transition:top .15s;position:absolute;top:-48px}.skip-link:focus{top:var(--space-3)}.app-main{width:100%;max-width:var(--maxw);padding:var(--space-4) var(--space-3) calc(var(--space-6) + env(safe-area-inset-bottom,0px));flex:1;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card--pad{padding:var(--space-4)}.screen-title{letter-spacing:-.01em;margin-bottom:var(--space-4);font-size:20px;font-weight:800}.section-label{letter-spacing:.06em;color:var(--muted);margin:var(--space-5) 0 var(--space-2);font-size:12px;font-weight:700}.section-label:first-of-type{margin-top:0}.muted{color:var(--muted)}.stack{gap:var(--space-3);flex-direction:column;display:flex}.center{text-align:center}.kv{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border);font-size:14px;display:flex}.kv:last-child{border-bottom:none}.toolbar{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.toolbar .input,.toolbar .select{flex:1;min-width:140px}.banner{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius);margin-bottom:var(--space-4);border:1px solid var(--warning-border);background:var(--warning-light);color:var(--warning);font-size:13px;font-weight:600;display:flex}.banner .btn{min-height:36px;margin-left:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn,.icon-btn,.segmented__btn,.menu-item,.picker-row,button.list__item{font-family:var(--font);color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}.app-header{z-index:var(--z-header);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0}.app-header__inner{max-width:var(--maxw);min-height:var(--header-h);align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);margin:0 auto;display:flex}.app-header__center{justify-content:center;align-items:center;gap:var(--space-1);flex:1;min-width:0;display:flex}.btn{min-height:var(--tap);justify-content:center;align-items:center;gap:var(--space-2);padding:0 var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);font-size:14px;font-weight:600;display:inline-flex}.btn:hover{background:var(--bg)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--primary-fill);color:var(--on-primary);border-color:var(--primary-fill)}.btn--primary:hover{background:var(--primary-fill-strong)}.btn--danger{background:var(--danger);color:var(--on-solid);border-color:var(--danger)}.btn--danger:hover{filter:brightness(.95)}.btn--ghost{background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--bg)}.btn--block{width:100%}.icon-btn{min-width:var(--tap);min-height:var(--tap);border-radius:var(--radius-sm);color:var(--text);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--bg)}.icon-btn--primary{background:var(--primary-fill);color:var(--on-primary)}.icon-btn--primary:hover{background:var(--primary-fill-strong)}.list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list>li{list-style:none}.list__item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);text-align:left;width:100%;min-height:var(--tap);background:0 0;border-top:none;border-left:none;border-right:none;display:flex}.list__item:last-child,.list>li:last-child .list__item{border-bottom:none}button.list__item:hover{background:var(--bg)}.list__main{flex:1;min-width:0}.list__title{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.list__sub{color:var(--muted);margin-top:1px;font-size:12px}.list__trailing{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.tag{border-radius:var(--radius-pill);align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.tag--primary{color:var(--primary-strong);background:var(--primary-light)}.tag--neutral{color:var(--muted);background:var(--bg)}.tag--warning{color:var(--warning);background:var(--warning-light)}.tag--danger{color:var(--danger);background:var(--danger-light)}.empty{text-align:center;padding:var(--space-6) var(--space-4);color:var(--muted)}.empty__cta{margin-top:var(--space-4)}.field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field__label{font-size:13px;font-weight:600}.field__req{color:var(--danger);margin-left:4px;font-size:11px}.field__hint{color:var(--muted);font-size:12px}.field__error{color:var(--danger);align-items:center;gap:4px;font-size:12px;display:flex}.field__warning{color:var(--warning);background:var(--warning-light);border:1px solid var(--warning-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);align-items:flex-start;gap:6px;font-size:12px;display:flex}.input,.select,.textarea{min-height:var(--tap);width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-family:var(--font);color:var(--text);font-size:16px}.textarea{resize:vertical;min-height:88px;padding-top:var(--space-2)}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{border-color:var(--primary);box-shadow:var(--focus-ring);outline:none}.segmented{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill);gap:3px;padding:3px;display:inline-flex}.segmented__btn{min-height:38px;padding:0 var(--space-4);border-radius:var(--radius-pill);color:var(--muted);background:0 0;border:none;font-size:13px;font-weight:600}.segmented__btn[aria-selected=true],.segmented__btn[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.menu-list{flex-direction:column;gap:2px;display:flex}.menu-item{align-items:center;gap:var(--space-3);min-height:var(--tap);padding:0 var(--space-3);border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;width:100%;font-size:15px;font-weight:600;display:flex}.menu-item:hover{background:var(--bg)}.menu-item[aria-current=page]{background:var(--primary-light);color:var(--primary-strong)}dialog.sheet{color:inherit;font-family:var(--font);background:var(--surface);width:100%;max-width:var(--maxw);border-radius:var(--radius) var(--radius) 0 0;max-height:92dvh;box-shadow:var(--shadow-pop);border:none;margin:auto auto 0;padding:0;overflow:auto}dialog.sheet::backdrop{background:var(--overlay)}@media (width>=600px){dialog.sheet{border-radius:var(--radius);max-width:480px;margin:auto}}dialog.sheet.dialog{border-radius:var(--radius);width:calc(100% - var(--space-3) * 2);max-width:420px;margin:auto}.sheet__header{background:var(--surface);justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.sheet__title{margin:0;font-size:16px;font-weight:700}.sheet__body{padding:var(--space-4)}.sheet__footer{background:var(--surface);gap:var(--space-2);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);display:flex;position:sticky;bottom:0}.sheet__footer .btn{flex:1}dialog.popup{border:1px solid var(--border);padding:var(--space-2);color:inherit;font-family:var(--font);width:calc(100% - var(--space-4) * 2);background:var(--surface);border-radius:var(--radius);max-width:320px;max-height:70vh;box-shadow:var(--shadow);margin:auto;overflow-y:auto}dialog.popup::backdrop{background:var(--overlay)}.picker-row{align-items:center;gap:var(--space-2);width:100%;min-height:var(--tap);padding:0 var(--space-2);border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;font-size:15px;display:flex}.picker-row:hover{background:var(--bg)}.picker-row[aria-current=true]{background:var(--bg);font-weight:700}.picker-row__check{width:18px;color:var(--primary);flex:none;display:inline-flex}.toast-region{left:50%;bottom:calc(var(--space-5) + env(safe-area-inset-bottom,0px));z-index:var(--z-toast);gap:var(--space-2);flex-direction:column;width:max-content;max-width:92vw;display:flex;position:fixed;transform:translate(-50%)}.toast{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius);box-shadow:var(--shadow-pop);background:var(--text);color:var(--on-solid);font-family:var(--font);cursor:pointer;font-size:14px;font-weight:600;display:flex}.toast--error{background:var(--danger)}.toast--success{background:var(--success)}:root{--primary:#14b8a6;--primary-fill:#0f766e;--primary-fill-strong:#115e59;--primary-strong:#0f766e;--primary-light:#f0fdfa;--primary-border:#5eead4;--on-primary:#fff;--focus:#14b8a6;--focus-ring:0 0 0 3px #14b8a659;--pos:#0f766e;--neg:#dc2626;--fs-asset:var(--primary);--fs-liability:var(--warning);--fs-equity:var(--muted);--fs-revenue:var(--primary);--fs-expense:var(--danger)}.summary-card{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);padding:var(--space-3) var(--space-4) var(--space-4);margin-bottom:var(--space-3);cursor:pointer;display:block}.summary-card:hover{background:var(--bg)}.summary-card__head{margin-bottom:var(--space-2);color:var(--muted);justify-content:space-between;align-items:center;display:flex}.list__row-btn{justify-content:space-between;align-items:center;gap:var(--space-3);text-align:left;width:100%;padding:var(--space-3) var(--space-4);min-height:var(--tap);cursor:pointer;color:var(--text);font-family:var(--font);background:0 0;border:none;display:flex}.list__row-btn:hover{background:var(--bg)}.list__row-btn__label{align-items:center;gap:var(--space-2);font-size:14px;font-weight:600;display:inline-flex}.stat-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)}.stat__label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.stat__value{font-variant-numeric:tabular-nums;word-break:break-all;margin-top:2px;font-size:clamp(15px,4.4vw,20px);font-weight:700}.stat--btn{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;font-family:var(--font);display:block}.stat--btn:hover{background:var(--bg)}.stat--btn .stat__label{justify-content:flex-start}.amount--pos{color:var(--pos)}.amount--neg{color:var(--neg)}.stmt-row{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;display:flex}.stmt-row:last-child{border-bottom:none}.stmt-row--total{background:var(--bg);font-weight:700}.stmt-row__num{white-space:nowrap}.flow{align-items:center;gap:var(--space-2);grid-template-columns:1fr auto 1fr;display:grid}.flow__side{min-width:0}.flow__arrow{color:var(--muted);text-align:center;pointer-events:none;align-self:center;font-size:22px;font-weight:700}.flow .picker{margin:0}@media (width<=480px){.flow{grid-template-columns:1fr}.flow__arrow{transform:rotate(90deg)}}.fs-cols{gap:var(--space-3);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=560px){.fs-cols{grid-template-columns:1fr}}.fs-col__head{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-left:4px solid var(--fs-accent,var(--border));margin-bottom:var(--space-2);font-size:14px;font-weight:700;display:flex}.fs-col--asset{--fs-accent:var(--fs-asset)}.fs-col--liability{--fs-accent:var(--fs-liability)}.fs-col--equity{--fs-accent:var(--fs-equity)}.fs-col--revenue{--fs-accent:var(--fs-revenue)}.fs-col--expense{--fs-accent:var(--fs-expense)}.period-switcher .stack{gap:var(--space-3);flex-direction:column;display:flex}.period-context{justify-content:center;align-items:center;gap:var(--space-1);flex:1;min-width:0;display:flex}.period-context__chip{align-items:center;gap:var(--space-1);min-height:var(--tap);padding:0 var(--space-2);border-radius:var(--radius-sm);color:inherit;cursor:pointer;font-size:15px;font-weight:700;font-family:var(--font);background:0 0;border:none;display:inline-flex}.period-context__chip:hover{background:var(--bg)}.period-context__text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.period-context__sep{color:var(--muted)}.trend-svg{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-2);margin-bottom:var(--space-2)}.trend-svg__svg{width:100%;height:auto;display:block}.trend-svg__zero{stroke:var(--border);stroke-width:1px}.trend-svg__tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:8px}.trend-svg__bar{fill:var(--primary)}.trend-svg__bar--neg{fill:var(--neg)}.trend-svg__line{fill:none;stroke:var(--primary);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.trend-svg__dot{fill:var(--primary)}.trend-x{margin-top:var(--space-1);gap:2px;display:flex}.trend-x__btn,.trend-x__label{text-align:center;min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.trend-x__btn{border-radius:var(--radius-sm);min-height:32px;color:var(--primary);cursor:pointer;font-family:var(--font);background:0 0;border:none}.trend-x__btn:hover{background:var(--bg)}.trend-svg__latest{margin:0 0 var(--space-3);text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.picker{margin-bottom:var(--space-4);border:none;min-width:0;padding:0}.picker__group{margin-top:var(--space-2)}.picker__group-label{color:var(--muted);margin:var(--space-2) 0 var(--space-1);font-size:12px}.picker__chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{min-height:var(--tap);padding:0 var(--space-3);border:1.5px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font);align-items:center;gap:4px;display:inline-flex}.chip:hover{background:var(--bg)}.chip__check{color:var(--primary-strong);display:none}.chip:has(input:checked){border-color:var(--primary);background:var(--primary-light);color:var(--primary-strong)}.chip:has(input:checked) .chip__check{display:inline-flex}.chip:focus-within{outline:2px solid var(--focus);outline-offset:2px}.collapse-toggle{min-height:var(--tap);color:var(--primary-strong);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);background:0 0;border:none;align-items:center;gap:6px;padding:0;display:inline-flex}.filter-chip{border:1px solid var(--primary-border);background:var(--primary-light);color:var(--primary-strong);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 6px 4px 12px;font-size:13px;font-weight:600;display:inline-flex}.filter-chip button{min-width:28px;min-height:28px;color:inherit;border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}button.stmt-row{text-align:left;border:none;border-bottom:1px solid var(--border);width:100%;font:inherit;color:inherit;cursor:pointer;min-height:var(--tap);font-family:var(--font);background:0 0}button.stmt-row:hover{background:var(--bg)}.entry-bar{z-index:30;background:var(--surface);border-top:1px solid var(--border);padding:var(--space-2) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom,0px));position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 20px #00000014}.entry-bar__inner{max-width:var(--maxw);gap:var(--space-2);grid-template-columns:repeat(3,1fr);margin:0 auto;display:grid}.dashboard{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.entry-type-btn{min-height:56px;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.entry-type-btn:hover{border-color:var(--primary-border);background:var(--primary-light)}.entry-type-btn__icon{border-radius:var(--radius-pill);background:var(--primary-light);width:28px;height:28px;color:var(--primary-strong);justify-content:center;align-items:center;display:flex}.tag--teal{color:var(--primary-strong);background:var(--primary-light)}.row-actions{gap:var(--space-1);display:flex}
