:root{--blue: #0017c1;--blue-soft: #eef2ff;--ink: #1f2937;--muted: #6b7280;--line: #e5e7eb;--bg: #f6f7f9;--card: #ffffff;--red: #dc2626;--income: #2563eb;--amber: #f59e0b;--radius: 14px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input,select{font:inherit;font-size:16px;padding:9px 10px;border:1px solid #d1d5db;border-radius:10px;background:#fff;color:var(--ink);width:100%}h2{font-size:15px;margin:0 0 10px}h3{font-size:14px;margin:16px 0 8px}.app{max-width:600px;margin:0 auto;padding:12px 12px 48px}.app-header{display:flex;justify-content:space-between;align-items:center;padding:4px 2px 12px}.app-title{font-size:18px;font-weight:700}.app-nav{display:flex;gap:4px;background:#e8eaef;border-radius:999px;padding:3px}.app-nav button{border:0;background:transparent;padding:5px 14px;border-radius:999px;font-size:13px;color:var(--muted)}.app-nav button.active{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 3px #0000001f}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px}details.card{padding:0}details.card>summary{padding:16px;font-weight:600;font-size:15px;cursor:pointer;list-style:none}details.card>summary::-webkit-details-marker{display:none}details.card>*:not(summary){margin-left:16px;margin-right:16px}details.card>*:last-child{margin-bottom:16px}.hero-label{font-size:13px;color:var(--muted)}.hero-amount{font-size:38px;font-weight:700;letter-spacing:-.02em;margin:2px 0 12px}.hero-amount.negative,.negative{color:var(--red)}.segmented{display:flex;background:#eef0f4;border-radius:999px;padding:3px;margin-bottom:8px}.segmented button{flex:1;border:0;background:transparent;padding:6px 0;border-radius:999px;font-size:13px;color:var(--muted)}.segmented button.active{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 3px #0000001f}.breakdown summary{cursor:pointer;font-size:13px;color:var(--blue);list-style:none;padding:4px 0}.breakdown summary::-webkit-details-marker{display:none}.breakdown-list,.account-list,.upcoming-list,.todo-list,.tx-list,.schedule-list,.passkey-list{list-style:none;margin:0;padding:0}.breakdown-list li,.account-list li,.upcoming-list li,.tx-list li,.schedule-list li,.passkey-list li{display:flex;align-items:baseline;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.breakdown-list li:first-child,.account-list li:first-child,.upcoming-list li:first-child,.tx-list li:first-child,.schedule-list li:first-child,.passkey-list li:first-child{border-top:0}.breakdown-label{flex:1;font-size:13px}.breakdown-note{display:block;font-size:11px;color:var(--muted);margin-top:2px}.breakdown-amount{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.badge{display:inline-block;font-size:10px;background:var(--blue-soft);color:var(--blue);padding:1px 7px;border-radius:999px;margin-left:6px;vertical-align:1px}.hero-asof{margin:8px 0 0}.todo-card{border-left:4px solid var(--amber)}.todo-list li{align-items:center;font-size:14px}.todo-icon{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:50%;background:var(--amber);color:#fff;font-weight:700;font-size:12px;flex-shrink:0}.account-name{flex:1;font-size:14px}.account-amounts{text-align:right}.account-total{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.account-sub{display:block;font-size:11px;color:var(--muted)}.upcoming-date{font-size:12px;color:var(--muted);white-space:nowrap;min-width:76px}.upcoming-name{flex:1;font-size:14px}.upcoming-account,.tx-account,.schedule-meta,.passkey-date{display:block;font-size:11px;color:var(--muted)}.upcoming-amount{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.upcoming-amount.income,.tx-amount.income{color:var(--income)}.chart-scroll{overflow-x:auto}.chart-svg text{font-family:inherit}.chart-value{font-size:9px;fill:var(--muted)}.chart-month{font-size:10px;fill:var(--ink)}.chart-net{font-size:9px}.chart-legend{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:6px}.legend-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.legend-dot{width:10px;height:10px;border-radius:3px;display:inline-block}.chart-note{margin-bottom:0}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;flex:1}.field>span{font-size:12px;color:var(--muted)}.form-row{display:flex;gap:8px}.checkbox-field{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:10px}.checkbox-field input{width:18px;height:18px;padding:0;flex-shrink:0}.inline-form{display:flex;gap:8px;align-items:center}.inline-form input{flex:1}.form-actions{display:flex;gap:8px;align-items:center;margin-top:6px}.btn{border:1px solid #d1d5db;background:#fff;color:var(--ink);padding:9px 16px;border-radius:10px;font-size:14px;white-space:nowrap}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}.btn.ghost{border-color:transparent;color:var(--muted)}.btn.danger{color:var(--red);border-color:#f3c2c2}.btn:disabled{opacity:.5}.icon-btn{border:0;background:transparent;color:var(--muted);font-size:15px;padding:4px 6px;line-height:1}.tx-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.tx-date{font-size:12px;color:var(--muted);white-space:nowrap;min-width:52px}.tx-desc{flex:1;font-size:13px;word-break:break-all}.tx-amount{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.schedule-main{flex:1;font-size:14px}.schedule-list li.inactive{opacity:.45}.schedule-amount{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.schedule-form{border-top:1px solid var(--line);margin-top:4px}.setting-block{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.setting-block:first-of-type{border-top:0;padding-top:0;margin-top:0}.passkey-main{flex:1;font-size:14px}.auth-wrap{max-width:420px;margin:0 auto;padding:12vh 16px 24px}.auth-title{font-size:24px;margin:0 0 8px}.auth-desc{color:var(--muted);font-size:14px;margin:0 0 16px}.auth-card .btn{width:100%;margin-top:4px}.error-text{color:var(--red);font-size:13px}.muted{color:var(--muted);font-size:12px}.loading{text-align:center;color:var(--muted);padding:20vh 0}@media(min-width:768px){.app{max-width:680px}.hero-amount{font-size:46px}.tx-form{grid-template-columns:repeat(3,1fr)}}
