:root{--series-1:#2a78d6;--series-muted:#c9ced6;--status-warning:#fab219;--status-critical:#d03b3b;--bg:#f6f7f9;--surface:#fff;--text:#1d2126;--muted:#6b7280;--line:#e3e6ea;--accent:#2e7d5b;--accent-text:#fff;--expense:#1d2126;--income:#23824f;--danger:#c73b3b;--shadow:0 1px 2px #0000000f, 0 2px 8px #0000000a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#16181c;--surface:#1f2228;--text:#e8eaed;--muted:#9aa0a8;--line:#2e323a;--accent:#4fb488;--accent-text:#0e1a14;--expense:#e8eaed;--income:#5fcf91;--danger:#f07171;--shadow:none;--series-1:#3987e5;--series-muted:#3a3f48;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;font-size:16px}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}.screen{max-width:560px;padding:16px 16px calc(96px + env(safe-area-inset-bottom));margin:0 auto}h1{margin:8px 0 16px;font-size:1.25rem}h2{color:var(--muted);margin:24px 0 8px;font-size:.95rem}.loading,.empty,.note{color:var(--muted);font-size:.9rem}.loading{text-align:center;padding:48px 16px}.error{color:var(--danger);padding:16px}.summary{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.summary-item{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:4px;min-width:0;padding:12px;display:flex}.summary-label{color:var(--muted);font-size:.8rem}.summary-value{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:1.05rem;font-weight:700}.negative{color:var(--danger)}.tx-list{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.tx-list li+li{border-top:1px solid var(--line)}.tx-row{align-items:center;gap:12px;min-height:52px;padding:12px 14px;text-decoration:none;display:flex}.dot{border-radius:50%;flex:none;width:10px;height:10px}.tx-main{flex-direction:column;flex:1;min-width:0;display:flex}.tx-label{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.amount-expense{color:var(--expense)}.amount-income{color:var(--income)}.date-heading{margin-top:20px}.month-switcher{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;justify-content:space-between;align-items:center;padding:4px;display:flex}.month-switcher button{cursor:pointer;background:0 0;border:none;width:48px;height:44px;font-size:1.5rem}.month-label{font-weight:600}.filters{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.filters select,.filters input,details input,details select,details textarea,.add-form input{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;min-height:44px;padding:8px 10px}.list-total{color:var(--muted);margin:12px 0 0;font-size:.85rem}.bottom-nav{background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{max-width:186px;color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0;font-size:.75rem;text-decoration:none;display:flex}.bottom-nav a span{font-size:1.25rem;line-height:1}.bottom-nav a[aria-current=page]{color:var(--accent);font-weight:600}.fab{right:max(20px,50% - 260px);bottom:calc(76px + env(safe-area-inset-bottom));background:var(--accent);width:60px;height:60px;color:var(--accent-text);border-radius:50%;place-items:center;font-size:1.75rem;text-decoration:none;display:grid;position:fixed;box-shadow:0 4px 14px #00000038}.entry{padding-bottom:0}.entry-header{align-items:center;gap:8px;display:flex}.entry-header h1{margin:8px 0}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;min-height:44px;padding:8px 4px}.kind-toggle{background:var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:3px;padding:3px;display:grid}.kind-toggle button{cursor:pointer;background:0 0;border:none;border-radius:8px;min-height:40px}.kind-toggle button.active{background:var(--surface);box-shadow:var(--shadow);font-weight:600}.kind-toggle.small{max-width:220px;margin-bottom:8px}.amount-display{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;padding:12px 4px;font-size:2.25rem;font-weight:700;display:block}.keypad{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.keypad button{background:var(--surface);min-height:52px;box-shadow:var(--shadow);font-variant-numeric:tabular-nums;cursor:pointer;border:none;border-radius:10px;font-size:1.25rem}.keypad button:active{background:var(--line)}.category-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin-top:16px;display:grid}.category-grid button{border:1px solid var(--line);border-left:4px solid var(--cat);background:var(--surface);cursor:pointer;border-radius:10px;min-height:44px;font-size:.9rem}.category-grid button.active{background:var(--cat);border-color:var(--cat);color:#fff;font-weight:600}details{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;margin-top:16px;padding:4px 14px}summary{min-height:44px;color:var(--muted);cursor:pointer;align-items:center;display:flex}details label{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:12px;font-size:.85rem;display:flex}details label>*{color:var(--text)}.entry-actions{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);flex-direction:column;gap:8px;margin:16px -16px 0;display:flex;position:sticky;bottom:0}.entry-actions button{cursor:pointer;border:none;border-radius:12px;min-height:52px;font-size:1.05rem;font-weight:600}.primary{background:var(--accent);color:var(--accent-text)}.primary:disabled{opacity:.4;cursor:default}.danger{color:var(--danger);background:0 0}.setting-list{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;margin:0;padding:0;list-style:none}.setting-row{align-items:center;gap:6px;padding:8px 10px;display:flex}.setting-row+.setting-row{border-top:1px solid var(--line)}.setting-row.is-hidden .setting-name{color:var(--muted);text-decoration:line-through}.setting-row input[type=color]{background:0 0;border:none;flex:none;width:32px;height:32px;padding:0}.setting-name{background:0 0;border:1px solid #0000;border-radius:8px;flex:1;min-width:0;min-height:40px;padding:6px 8px}.setting-name:focus{border-color:var(--line)}.setting-row button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;flex:none;min-width:40px;min-height:40px}.setting-row button:disabled{opacity:.3}.setting-row .hide-toggle{min-width:64px;font-size:.8rem}.add-form{gap:8px;margin-top:8px;display:flex}.add-form button{white-space:nowrap;background:var(--accent);min-height:44px;color:var(--accent-text);cursor:pointer;border:none;border-radius:10px;flex:none;padding:0 16px}.add-form button:disabled{opacity:.4}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sync-status{text-align:center;background:var(--line);color:var(--text);margin:0;padding:8px 16px;font-size:.85rem}.sync-status.is-offline{color:#5c4500;background:#fff3cd}@media (prefers-color-scheme:dark){.sync-status.is-offline{color:#ffe9a8;background:#4a3b10}}.badge{border:1px solid var(--muted);color:var(--muted);white-space:nowrap;border-radius:6px;padding:2px 6px;font-size:.7rem}.button-link{background:var(--surface);min-height:48px;box-shadow:var(--shadow);color:var(--accent);border-radius:12px;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:flex}.entry-actions button:disabled{opacity:.4;cursor:default}.card{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;padding:12px 14px}.summary-delta{color:var(--muted);font-size:.75rem}.budget-list{flex-direction:column;gap:14px;display:flex}.budget-head,.budget-foot{justify-content:space-between;gap:8px;font-size:.85rem;display:flex}.budget-label{font-weight:600}.budget-numbers,.budget-rest{font-variant-numeric:tabular-nums;color:var(--muted)}.budget-foot{margin-top:4px;font-size:.8rem}.budget-alert{color:var(--text);gap:4px;font-weight:600;display:inline-flex}.meter-track{background:color-mix(in srgb, var(--series-1) 16%, var(--surface));border-radius:5px;height:10px;margin-top:6px;overflow:hidden}.meter-fill{background:var(--series-1);border-radius:5px;height:100%}.level-warn .meter-track{background:color-mix(in srgb, var(--status-warning) 22%, var(--surface))}.level-warn .meter-fill{background:var(--status-warning)}.level-over .meter-track{background:color-mix(in srgb, var(--status-critical) 22%, var(--surface))}.level-over .meter-fill{background:var(--status-critical)}.level-over .budget-rest{color:var(--danger);font-weight:600}.category-bars{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.category-bars li{grid-template-columns:6.5em 1fr auto;align-items:center;gap:8px;font-size:.85rem;display:grid}.bar-name{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;min-width:0;display:inline-flex;overflow:hidden}.bar-track{height:12px}.bar-track .bar{background:var(--series-1);border-radius:0 4px 4px 0;min-width:2px;height:100%;display:block}.category-bars li:hover .bar{filter:brightness(1.12)}.bar-value{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.bar-percent{min-width:3.2em;color:var(--muted);font-size:.75rem;display:inline-block}.monthly-chart{margin:0}.chart-readout{align-items:baseline;gap:8px;min-height:1.6em;margin-bottom:4px;display:flex}.chart-readout strong{font-size:1.1rem}.chart-readout span{color:var(--muted);font-size:.8rem}.monthly-chart svg{width:100%;height:auto;display:block;overflow:visible}.monthly-chart .grid{stroke:var(--line);stroke-width:1px}.monthly-chart .axis{stroke:var(--muted);stroke-width:1px}.monthly-chart .tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.monthly-chart .hit{fill:#0000}.monthly-chart .column{cursor:pointer;outline:none}.monthly-chart .column .bar{fill:var(--series-muted)}.monthly-chart .column.is-selected .bar{fill:var(--series-1)}.monthly-chart .column.is-selected .month{fill:var(--text);font-weight:700}.monthly-chart .column.is-hover .hit,.monthly-chart .column:focus-visible .hit{fill:color-mix(in srgb, var(--series-1) 8%, transparent)}.table-view{margin-top:8px;font-size:.85rem}.table-view summary{min-height:36px}.table-view table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.table-view th,.table-view td{border-top:1px solid var(--line);text-align:right;padding:6px 4px}.table-view th:first-child{text-align:left;font-weight:400}.budget-input{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.yen-input{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.yen-input input{border:1px solid var(--line);background:var(--surface);text-align:right;font-variant-numeric:tabular-nums;border-radius:8px;width:9em;min-height:40px;padding:6px 8px}.primary.block{cursor:pointer;border:none;border-radius:12px;width:100%;min-height:48px;margin-top:12px;font-weight:600}.primary.block:disabled{opacity:.4}.month-switcher+.summary{margin-top:12px}.summary-delta span{white-space:nowrap}.login{flex-direction:column;gap:12px;padding-top:15vh;display:flex}.login h1{text-align:center;font-size:1.6rem}.login-form{flex-direction:column;gap:12px;display:flex}.login-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:.9rem;display:flex}.login-form input{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--text);border-radius:10px;padding:8px 12px;font-size:1.1rem}.login-form input[inputmode=numeric]{letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}.account h3{margin:16px 0 8px;font-size:.9rem}.passkey-name{flex-direction:column;display:flex}.passkey-name small{color:var(--muted);font-size:.75rem}.logout-actions{flex-wrap:wrap;justify-content:space-between;margin-top:8px;display:flex}.danger-link{color:var(--danger)}.import-csv{gap:12px;display:grid}.import-csv details{background:var(--surface);border-radius:12px;padding:12px 16px}.import-csv summary{cursor:pointer;font-weight:600}.file-pick{cursor:pointer;position:relative}.file-pick input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.file-pick:focus-within{outline:2px solid var(--accent);outline-offset:2px}.import-csv .check input{width:auto;min-height:0;padding:0}.import-csv .check{flex-direction:row;align-items:center;gap:8px;margin:12px 0 4px;font-size:.9rem;display:flex}.import-field{grid-template-columns:1fr minmax(0,1.4fr);align-items:center;gap:8px;width:100%;margin-bottom:0;display:grid}.import-field select{min-width:0;min-height:40px}.import-summary{font-weight:600}.import-sample,.import-problems{margin:8px 0;padding:0;font-size:.9rem;list-style:none}.import-sample li{border-bottom:1px solid var(--line);grid-template-columns:6.5em 1fr auto auto;gap:8px;padding:6px 0;display:grid}.import-problems li{color:var(--muted);padding:4px 0}
