@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap";:root{--bg-base:#f8fbef;--bg-dot:#c8d9a0;--card-bg:#ffffffd1;--text-primary:#1e2a10;--text-secondary:#4a5e32;--text-hint:#6b7c52;--accent:#3a6010;--accent-hover:#2e4d0d;--income-color:#1d9e75;--expense-color:#d85a30;--border-color:#4a5e3233;--font-family:"Noto Sans JP", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{font-family:var(--font-family);color:var(--text-primary);background-color:var(--bg-base);-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg width='28' height='28' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='2' cy='2' r='1' fill='%23C8D9A0'/%3E%3C/svg%3E");background-size:28px 28px;font-weight:400}.app-container{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex;position:relative}.page-content{flex:1;padding:16px 16px 80px;overflow-y:auto}.card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border:.5px solid var(--border-color);border-radius:12px;margin-bottom:12px;padding:16px}.card-title{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:500}.tab-bar{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border-top:.5px solid var(--border-color);z-index:100;width:100%;max-width:480px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab-item{color:var(--text-hint);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;padding:8px 0;font-size:10px;text-decoration:none;transition:color .2s;display:flex}.tab-item.active{color:var(--accent);font-weight:500}.tab-item svg{width:22px;height:22px;margin-bottom:2px}.page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-title{color:var(--text-primary);font-size:18px;font-weight:700}.btn-primary{background:var(--accent);color:#fff;font-size:13px;font-weight:500;font-family:var(--font-family);cursor:pointer;border:none;border-radius:8px;padding:8px 16px;transition:background .2s}.btn-primary:hover{background:var(--accent-hover)}.btn-outline{color:var(--accent);border:.5px solid var(--accent);font-size:13px;font-weight:500;font-family:var(--font-family);cursor:pointer;background:0 0;border-radius:8px;padding:8px 16px;transition:all .2s}.btn-outline:hover{background:#3a601014}.btn-danger{color:var(--expense-color);border:.5px solid var(--expense-color);font-size:12px;font-family:var(--font-family);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px}.btn-small{padding:4px 10px;font-size:12px}.btn-icon{cursor:pointer;color:var(--text-hint);background:0 0;border:none;align-items:center;padding:4px;display:flex}.form-group{margin-bottom:12px}.form-label{color:var(--text-secondary);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.form-input,.form-select{border:.5px solid var(--border-color);width:100%;font-size:14px;font-family:var(--font-family);color:var(--text-primary);background:#fff9;border-radius:8px;outline:none;padding:8px 12px;transition:border-color .2s}.form-input:focus,.form-select:focus{border-color:var(--accent)}.form-row{gap:8px;display:flex}.form-row>*{flex:1}.inline-form{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:.5px solid var(--border-color);border-radius:12px;margin-bottom:12px;padding:16px}.inline-form-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.type-toggle{border:.5px solid var(--border-color);border-radius:8px;display:flex;overflow:hidden}.type-toggle-btn{font-size:13px;font-family:var(--font-family);cursor:pointer;color:var(--text-hint);background:0 0;border:none;flex:1;padding:8px;transition:all .2s}.type-toggle-btn.active-income{background:var(--income-color);color:#fff}.type-toggle-btn.active-expense{background:var(--expense-color);color:#fff}.badge{border-radius:12px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.badge-income{color:var(--income-color);background:#1d9e751f}.badge-expense{color:var(--expense-color);background:#d85a301f}.amount{font-variant-numeric:tabular-nums;font-weight:500}.amount-income{color:var(--income-color)}.amount-expense{color:var(--expense-color)}.summary-grid{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.summary-card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:.5px solid var(--border-color);text-align:center;border-radius:10px;padding:12px}.summary-card-label{color:var(--text-hint);margin-bottom:4px;font-size:11px}.summary-card-value{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.month-select{border:.5px solid var(--border-color);font-size:13px;font-family:var(--font-family);color:var(--text-primary);background:#fff9;border-radius:8px;outline:none;padding:6px 10px}.filter-tabs{gap:4px;margin-bottom:12px;display:flex}.filter-tab{border:.5px solid var(--border-color);font-size:12px;font-family:var(--font-family);color:var(--text-hint);cursor:pointer;background:0 0;border-radius:20px;padding:6px 14px;transition:all .2s}.filter-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.tag{color:var(--text-primary);background:#3a601014;border-radius:16px;align-items:center;gap:4px;margin:3px;padding:4px 10px;font-size:12px;display:inline-flex}.tag-delete{cursor:pointer;color:var(--text-hint);background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.accordion-header{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:.5px solid var(--border-color);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:10px 12px;transition:all .2s;display:flex}.accordion-header:hover{background:#ffffffeb}.accordion-date{font-size:14px;font-weight:500}.accordion-day{color:var(--text-hint);margin-left:6px;font-size:12px}.accordion-meta{align-items:center;gap:12px;font-size:12px;display:flex}.accordion-body{padding:4px 0}.transaction-row{background:#ffffff80;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:8px 12px;display:flex}.transaction-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.transaction-note{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.transaction-amount{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0 8px;font-size:14px;font-weight:500}.savings-total{background:var(--income-color);color:#fff;text-align:center;border-radius:12px;margin-bottom:16px;padding:20px}.savings-total-label{opacity:.85;font-size:13px}.savings-total-value{font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.savings-account{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:.5px solid var(--border-color);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px;display:flex}.savings-account-name{font-size:14px;font-weight:500}.savings-input{text-align:right;border:.5px solid var(--border-color);width:140px;font-size:14px;font-family:var(--font-family);font-variant-numeric:tabular-nums;color:var(--text-primary);background:#fff9;border-radius:8px;outline:none;padding:6px 10px}.savings-input:focus{border-color:var(--accent)}.chart-container{width:100%;height:250px}.toast{font-size:13px;font-family:var(--font-family);z-index:1000;pointer-events:none;border-radius:10px;padding:10px 20px;animation:3s fadeInOut;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast-success{background:var(--income-color);color:#fff}.toast-error{background:var(--expense-color);color:#fff}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%)translateY(-10px)}10%{opacity:1;transform:translate(-50%)translateY(0)}80%{opacity:1}to{opacity:0}}.category-bar-container{margin-bottom:10px}.category-bar-header{justify-content:space-between;margin-bottom:4px;font-size:13px;display:flex}.category-bar-name{color:var(--text-primary)}.category-bar-amount{color:var(--text-secondary);font-variant-numeric:tabular-nums}.category-bar-track{background:#3a601014;border-radius:4px;height:8px;overflow:hidden}.category-bar-fill{background:var(--expense-color);border-radius:4px;height:100%;transition:width .5s}.recurring-item{background:#ffffff80;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 12px;display:flex}.recurring-info{flex:1}.recurring-name{font-size:14px;font-weight:500}.recurring-meta{color:var(--text-hint);margin-top:2px;font-size:11px}.recurring-amount-input{text-align:right;border:.5px solid var(--border-color);width:100px;font-size:13px;font-family:var(--font-family);font-variant-numeric:tabular-nums;color:var(--text-primary);background:#fff9;border-radius:6px;outline:none;padding:4px 8px}.loading{color:var(--text-hint);justify-content:center;padding:40px;font-size:13px;display:flex}.section-title{color:var(--text-primary);margin-top:8px;margin-bottom:10px;font-size:14px;font-weight:700}.donut-legend{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.donut-legend-item{color:var(--text-secondary);align-items:center;gap:4px;font-size:11px;display:flex}.donut-legend-dot{border-radius:50%;width:8px;height:8px}.data-section{margin-top:20px}.data-btn{border:.5px solid var(--border-color);background:var(--card-bg);width:100%;font-size:13px;font-family:var(--font-family);color:var(--text-primary);cursor:pointer;text-align:left;border-radius:10px;margin-bottom:8px;padding:12px;transition:background .2s}.data-btn:hover{background:#ffffffeb}.freq-label{color:var(--text-secondary);background:#3a601014;border-radius:4px;padding:2px 6px;font-size:11px}
