@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=Sora:wght@500;600;700&display=swap";:root{color-scheme:light;--font-display: "Sora", "IBM Plex Sans", system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--ink-strong: #0d1418;--ink-medium: #2c3a40;--ink-muted: #56646b;--surface-strong: #f7f6f2;--surface-soft: #f1f3f0;--surface-panel: #ffffff;--surface-shadow: rgba(12, 18, 22, .08);--accent-primary: #2b6f6b;--accent-secondary: #bfa77a;--accent-line: rgba(13, 20, 24, .2);--status-normal: #2b6f6b;--status-caution: #b98724;--status-warning: #b94a3b;--enemy-1: #4c6b8a;--enemy-2: #3f7f5f;--enemy-3: #c08a4b;--enemy-4: #7a5a8c;--section-income: #a9c4f3;--section-income-text: #1c3658;--section-investment: #98c37a;--section-investment-text: #204225;--section-expense: #f1c4c8;--section-expense-text: #5c2a2d;--section-data: #d8dde3;--section-data-text: #2a2f36;--radius-xl: 24px;--radius-lg: 18px;--radius-md: 12px;--radius-sm: 8px;--shadow-soft: 0 20px 50px -30px rgba(0, 0, 0, .35)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);color:var(--ink-strong);background:radial-gradient(circle at top,#f7f6f2,#ebe9e3 35%,#e2e6e2);min-height:100vh}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(12,18,22,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(12,18,22,.04) 1px,transparent 1px);background-size:24px 24px,24px 24px;pointer-events:none;opacity:.35}#root{position:relative;z-index:1}.app-shell{max-width:980px;margin:0 auto;padding:24px 16px 72px;display:flex;flex-direction:column;gap:24px}.app-title{font-family:var(--font-display);font-size:clamp(28px,4vw,40px);letter-spacing:.02em;margin:0}.section-card{background:var(--surface-panel);border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-soft);border:1px solid var(--accent-line)}.input-section{border-radius:var(--radius-lg);border:1px solid rgba(13,20,24,.14);overflow:hidden;background:var(--surface-panel)}.input-section__header{display:flex;align-items:center;gap:10px;padding:12px 16px;font-family:var(--font-display);letter-spacing:.02em}.input-section__header h2{margin:0;font-size:16px}.input-section__body{display:flex;flex-direction:column;gap:12px;padding:10px}.input-section__help{margin:0;color:var(--ink-muted);font-size:13px}.input-section--income .input-section__header{background:var(--section-income);color:var(--section-income-text)}.input-section--investment .input-section__header{background:var(--section-investment);color:var(--section-investment-text)}.input-section--expense .input-section__header{background:var(--section-expense);color:var(--section-expense-text)}.input-section--data .input-section__header{background:var(--section-data);color:var(--section-data-text)}.data-tools{display:flex;flex-direction:column;gap:12px}.data-tools__actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.data-tools__reset{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-medium)}.data-tools__status{padding:8px 12px;border-radius:var(--radius-sm);font-size:13px}.data-tools__status.success{background:#2b6f6b1f;color:var(--status-normal)}.data-tools__status.error{background:#b94a3b1f;color:var(--status-warning)}button.danger{background:var(--status-warning);border-color:var(--status-warning)}button.danger:disabled{opacity:.6;cursor:not-allowed}.summary-shell{position:sticky;top:12px;z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe6;border-radius:var(--radius-xl);border:1px solid rgba(13,20,24,.1);box-shadow:var(--shadow-soft)}.summary-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.summary-label{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-muted)}.summary-value{font-family:var(--font-display);font-size:20px}.status-pill{display:inline-flex;padding:4px 10px;border-radius:999px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#fff}.status-pill.normal{background:var(--status-normal)}.status-pill.caution{background:var(--status-caution)}.status-pill.warning{background:var(--status-warning)}.page{display:flex;flex-direction:column;gap:20px;animation:rise .6s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:13px;color:var(--ink-muted)}input[type=text],input[type=number],select{padding:10px 12px;border-radius:var(--radius-sm);border:1px solid rgba(13,20,24,.2);font-size:15px;background:var(--surface-soft);width:100%}input.input-error,select.input-error{border-color:#d6634a;box-shadow:0 0 0 2px #d6634a33}.row-error{background:#d6634a1f}button{border:none;background:var(--accent-primary);color:#fff;padding:10px 16px;border-radius:999px;font-weight:600;letter-spacing:.06em;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;width:fit-content}button.secondary{background:transparent;color:var(--ink-strong);border:1px solid var(--accent-line)}button:disabled{opacity:.4;cursor:not-allowed}button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 12px 24px -18px #0009}.nav-shell{display:flex;justify-content:space-between;gap:12px;margin-top:8px}.enemy-card{border-radius:var(--radius-lg);border:1px solid var(--accent-line);padding:20px;background:#fff;display:flex;flex-direction:column;gap:12px}.enemy-header{display:flex;flex-direction:column;gap:8px}.enemy-title{font-family:var(--font-display);font-size:20px;margin:0}.enemy-meta{font-size:14px;color:var(--ink-muted);margin:0}.enemy-stats{display:flex;flex-wrap:wrap;gap:10px;font-size:14px;color:var(--ink-medium)}.expense-table,.simple-table{display:flex;flex-direction:column;gap:5px;overflow-x:auto;padding-bottom:4px}.expense-table,.simple-table{scrollbar-width:none;-ms-overflow-style:none}.expense-table::-webkit-scrollbar,.simple-table::-webkit-scrollbar{display:none}.simple-table-header,.simple-table-row{display:grid;gap:7px;align-items:center}.simple-table--income .simple-table-header,.simple-table--income .simple-table-row{grid-template-columns:32px minmax(90px,1fr) minmax(150px,1fr) minmax(100px,.8fr) minmax(90px,.9fr);min-width:620px}.simple-table--income{overflow-x:auto}.simple-table--investment .simple-table-header,.simple-table--investment .simple-table-row{grid-template-columns:32px minmax(90px,1fr) minmax(150px,1fr) minmax(90px,.9fr);min-width:600px}.simple-table--investment{overflow-x:auto}.simple-table-header{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding:2px 0}.expense-table-header,.expense-table-row{display:grid;grid-template-columns:32px minmax(110px,1fr) minmax(150px,1.3fr) minmax(90px,.9fr);gap:7px;align-items:center;min-width:720px}.expense-table-header.with-interval,.expense-table-row.with-interval{grid-template-columns:32px minmax(110px,1fr) minmax(150px,1.3fr) 90px minmax(90px,.9fr);min-width:790px}.col-amount,.col-name{min-width:90px}.col-detail{min-width:150px}.expense-table-header{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding:4px 0}.select-cell{display:flex;align-items:center;justify-content:center}.expense-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ratio-bar{position:relative;height:12px;border-radius:999px;background:#0d14181f;overflow:hidden}.ratio-bar .fill{height:100%;border-radius:inherit;background:var(--status-normal);transition:width .3s ease}.ratio-bar .marker{position:absolute;top:-4px;width:2px;height:20px;background:#0d141873}.ratio-bar .marker.eighty{left:80%}.report-card h2{margin:0 0 12px}.report-table-wrap{overflow-x:auto}.report-table{width:100%;border-collapse:collapse;min-width:640px;font-size:13px}.report-table--compact{min-width:0}.report-table--wide{min-width:1200px;table-layout:fixed}.report-table--wide .col-type{width:2.4em}.report-table--wide .col-category{width:3.4em;max-width:3.4em}.report-table--wide .col-item{width:7.4em;max-width:3.4em}.report-table--wide .col-month{width:5.2em}.report-table--wide .col-average,.report-table--wide .col-total{width:6em}.report-table--wide td.numeric,.report-table--wide th{white-space:nowrap}.report-table th,.report-table td{border:1px solid rgba(13,20,24,.12);padding:3px 8px;text-align:left}.report-table th{background:#6e8797;color:#f6f8fb;font-weight:600}.report-table td.numeric{text-align:right;font-variant-numeric:tabular-nums}.report-section td{font-weight:600}.report-section.income td{background:#5c7fbf;color:#f3f6ff}.report-section.expense td{background:#d8898a;color:#fff6f7}.report-section.investment td{background:#6fa56a;color:#f2fff0;font-weight:600}.report-type.income{background:#4f74b8;color:#eef3ff;font-weight:600}.report-group.income{background:#a9c4f3;color:#1c3658;font-weight:600}.report-group.investment{background:#bfe2b6;color:#1f4c1a;font-weight:600}.report-type.expense{background:#d8898a;color:#fff6f7;font-weight:600}.report-type.investment{background:#5b8d55;color:#f2fff0;font-weight:600}.report-group.expense,.report-item.expense{font-weight:600}.report-expense-1,.report-expense-2,.report-expense-1 td,.report-expense-2 td{background:#f9e4a6;color:#6a4b16}.report-expense-3,.report-expense-4,.report-expense-3 td,.report-expense-4 td{background:#f7c79b;color:#6a3a14}.report-subsection.income td{background:#c7dbff;color:#18365f}.report-subsection.investment td{background:#def0d6;color:#21421c}.report-item.income{background:#c7dbff;color:#18365f;font-weight:600}.report-item.investment{background:#def0d6;color:#21421c;font-weight:600}.report-subsection.expense td{background:#f8e3b6;color:#6c4b12}.report-total.income td{background:#4f74b8;color:#eef3ff;font-weight:600}.report-total.investment td{background:#5b8d55;color:#f2fff0;font-weight:600}.report-total.investment.report-subtotal-investment td{background:#bfe2b6;color:#1f4c1a}.report-total.income.report-subtotal-income td{background:#a7c8f2;color:#1c3658}.report-total.expense td{background:#d8898a;color:#fff6f7;font-weight:600}.report-total.expense.report-expense-1 td,.report-total.expense.report-expense-2 td{background:#f9e4a6;color:#6a4b16}.report-total.expense.report-expense-3 td,.report-total.expense.report-expense-4 td{background:#f7c79b;color:#6a3a14}.report-total.ratio td{background:#d8898a;color:#fff6f7;font-weight:600}.report-summary-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.report-summary-stack{display:flex;flex-direction:column;gap:16px}.performance-table{border:1px solid var(--accent-line);border-radius:10px;overflow:hidden}.performance-title{background:#6f818a;color:#fff;text-align:left;font-size:13px;font-weight:700;padding:8px 12px}.performance-item{font-weight:600}.performance-ratio{background:#d6634a;color:#fff;font-weight:700}.performance-note{margin:6px 2px 0;font-size:12px;color:#d6634a}.report-note{margin:8px 0 0;font-size:12px;color:var(--ink-muted)}.ratio-bar .marker.hundred{left:100%}.list-stack{display:flex;flex-direction:column;gap:12px}@media (max-width: 640px){.app-shell{padding:10px 5px 60px}.section-card{padding:7px}.summary-shell{top:8px}.summary-grid{grid-template-columns:1fr 1fr}.report-summary-grid{grid-template-columns:1fr}.nav-shell{flex-direction:column}.nav-shell button,button{width:100%}.enemy-card{padding:10px}.enemy-stats{flex-direction:column;gap:6px}.expense-actions{width:100%;justify-content:space-between}.expense-table-header,.expense-table-row,.expense-table-row.with-interval,.expense-table-header.with-interval{min-width:100%}.simple-table-header,.simple-table-row{min-width:max-content}}@media (max-width: 1024px){.page{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.nav-shell{position:fixed;bottom:0;left:0;right:0;flex-direction:row;justify-content:space-between;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid var(--accent-line);box-shadow:0 -12px 24px -24px #0006;z-index:10}.nav-shell button{flex:1;width:auto}}@media (min-width: 768px){.nav-shell{justify-content:space-between}button{width:fit-content}}
