@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+KR:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&display=swap";:root{--bg:#f5f0e7;--bg-soft:#fdf9f2;--card:#fffdf8e6;--line:#d8cbb9;--line-strong:#b99f80;--text:#302316;--muted:#79624a;--cool:#0f766e;--warm:#f97316;--danger:#dc2626;--navy:#1f3a5f;--shadow:0 18px 40px #4a32161f;--radius:22px;--radius-sm:14px;color:var(--text);background:radial-gradient(circle at top left, #0f766e1f, transparent 28%), radial-gradient(circle at top right, #f9731624, transparent 24%), linear-gradient(180deg, #fff7eb 0%, var(--bg) 52%, #efe6da 100%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:IBM Plex Sans KR,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{width:100%;color:var(--text);background:#fffdfa;border:1px solid #79624a3d;border-radius:10px;padding:.58rem .72rem}textarea{resize:vertical;min-height:10rem}h1,h2{letter-spacing:-.03em;margin:0;font-family:Space Grotesk,IBM Plex Sans KR,sans-serif}h1{font-size:clamp(1.35rem,2.4vw,1.9rem)}h2{font-size:1.05rem}p{margin:0}.app-shell{width:min(1440px,100vw - 2rem);margin:0 auto;padding:1.5rem 0 3rem}.hero-shell{box-shadow:var(--shadow);background:linear-gradient(130deg,#fffdf8f2,#fff4e4eb),linear-gradient(120deg,#0f766e1a,#f973161f);border:1px solid #79624a33;border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;display:flex}.hero-copy{flex-wrap:wrap;align-items:center;gap:.85rem;min-width:0;display:flex}.hero-text{color:var(--muted);max-width:62ch;margin-top:1rem}.hero-summary{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.hero-pill,.sync-badge{background:#ffffffd1;border:1px solid #79624a2e;border-radius:999px;align-items:center;min-height:1.95rem;padding:.22rem .7rem;font-size:.8rem;font-weight:600;display:inline-flex}.hero-pill{color:var(--navy)}.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:var(--cool);margin-bottom:.7rem;font-size:.83rem;font-weight:700}.hero-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;min-width:0;display:flex}.sync-badge{margin-top:0}.sync-loading,.sync-saving{color:var(--navy)}.sync-saved{color:var(--cool)}.sync-error{color:var(--danger)}.primary-button,.ghost-button,.secondary-button,.tab-button,.month-button{border:1px solid #0000;border-radius:999px;padding:.58rem .88rem;font-size:.92rem;transition:transform .18s,box-shadow .18s,border-color .18s}.primary-button{background:linear-gradient(135deg, var(--cool), #0b5c56);color:#fff;box-shadow:0 10px 24px #0f766e38}.ghost-button,.secondary-button,.tab-button,.month-button{color:var(--text);background:#ffffffbf;border-color:#79624a2e}.primary-button:hover,.ghost-button:hover,.secondary-button:hover,.tab-button:hover,.month-button:hover{transform:translateY(-1px);box-shadow:0 12px 24px #3828121a}.tab-strip{background:#fffdf8bd;border:1px solid #79624a29;border-radius:16px;flex-wrap:wrap;gap:.4rem;margin:.8rem 0 1rem;padding:.35rem;display:flex}.tab-button.active,.month-button.active{color:var(--cool);background:linear-gradient(135deg,#0f766e24,#f9731629);border-color:#0f766e5c}.page-shell{gap:1rem;display:grid}.surface{border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);border:1px solid #79624a2e;padding:1rem}.surface-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;display:flex}.surface-actions{flex-wrap:wrap;gap:.45rem;display:flex}.surface-actions button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.muted{color:var(--muted)}.dashboard-brief{box-shadow:var(--shadow);background:#fffdf8db;border:1px solid #79624a2e;border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;padding:1.05rem 1.2rem;display:flex}.dashboard-brief h2{font-size:clamp(1.35rem,2vw,2rem)}.dashboard-brief .eyebrow{margin-bottom:.35rem}.dashboard-brief .muted{margin-top:.35rem}.dashboard-quick-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.metric-card{border-radius:var(--radius-sm);background:#ffffffd1;border:1px solid #79624a24;padding:.9rem .95rem}.metric-label{color:var(--muted);font-size:.88rem}.metric-value{margin-top:.45rem;font-size:1.45rem;display:block}.metric-caption{color:var(--muted);margin-top:.45rem;font-size:.85rem}.metric-cool{border-color:#0f766e3d}.metric-warm{border-color:#f973163d}.metric-danger{border-color:#dc26263d}.panel-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.panel-grid.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-main-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1rem;display:grid}.dashboard-secondary-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1fr) minmax(0,1fr);gap:1rem;display:grid}.chart-box{width:100%;height:22rem}.chart-box.compact{height:20rem}.chart-box.small{height:18rem}.chart-empty-state{text-align:center;background:#ffffff8f;border:1px dashed #79624a2e;border-radius:16px;place-items:center;height:100%;padding:1rem;display:grid}.table-wrap{background:#ffffffc7;border:1px solid #79624a24;border-radius:14px;overflow-x:auto}.data-table{border-collapse:separate;border-spacing:0;width:100%;min-width:720px;font-size:.92rem}.data-table th,.data-table td{text-align:left;vertical-align:middle;border-top:1px solid #79624a1a;padding:.48rem .5rem}.data-table thead th{color:var(--muted);letter-spacing:.02em;z-index:1;background:#f7f0e6f5;border-top:0;font-size:.79rem;font-weight:700;position:sticky;top:0}.data-table tbody tr:nth-child(2n){background:#f5f0e76b}.data-table tbody tr:hover{background:#0f766e0f}.data-table td:first-child,.data-table th:first-child{padding-left:.75rem}.data-table td:last-child,.data-table th:last-child{padding-right:.75rem}.data-table input,.data-table select{background:#ffffffeb;border-color:#79624a2e;border-radius:8px;min-width:7rem;padding:.42rem .55rem}.table-placeholder{min-height:2rem;color:var(--muted);align-items:center;display:inline-flex}.danger-link{color:var(--danger);background:0 0;border:0;padding:0}.secondary-button{padding:.45rem .75rem}.row-actions{align-items:center;gap:.55rem;display:flex}.editor-surface{border-style:dashed}.empty-state{color:var(--muted);text-align:center;padding:1rem 0}.month-switcher,.inline-controls{flex-wrap:wrap;gap:.65rem;display:flex}.goal-card{gap:.8rem;display:grid}.goal-meta{color:var(--muted);justify-content:space-between;gap:1rem;font-size:.92rem;display:flex}.progress-track{background:#0f766e1f;border-radius:999px;width:100%;height:12px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--cool), var(--warm));border-radius:999px;height:100%}.expense-rank-list,.asset-summary-list{gap:.72rem;display:grid}.expense-rank-row{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.72rem;display:grid}.rank-number{width:2rem;height:2rem;color:var(--cool);background:#0f766e14;border:1px solid #0f766e33;border-radius:50%;place-items:center;font-weight:700;display:inline-grid}.rank-body{gap:.4rem;min-width:0;display:grid}.rank-line,.asset-summary-row{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.rank-line strong,.rank-line span,.asset-summary-row strong,.asset-summary-row span{min-width:0}.rank-line strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rank-line span,.asset-summary-row strong{flex:none;font-weight:700}.asset-summary-row{border-bottom:1px solid #79624a1f;padding-bottom:.7rem}.asset-summary-row:last-child{border-bottom:0}.summary-cool strong{color:var(--cool)}.summary-warm strong{color:var(--warm)}.summary-danger strong{color:var(--danger)}.outflow-status{border-top:1px solid #79624a1f;gap:.5rem;margin-top:1rem;padding-top:1rem;display:grid}.form-grid,.category-grid,.mini-grid{gap:.9rem;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.category-editor{background:#ffffffb8;border:1px solid #79624a24;border-radius:16px;gap:.75rem;padding:.95rem;display:grid}.category-editor-head{justify-content:space-between;align-items:center;gap:.75rem;font-weight:600;display:flex}.category-chip-list{flex-wrap:wrap;align-content:flex-start;gap:.45rem;min-height:2.5rem;display:flex}.category-chip{min-height:2rem;color:var(--text);background:#0f766e14;border:1px solid #0f766e2e;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .6rem;display:inline-flex}.category-chip button{color:var(--danger);background:0 0;border:0;padding:0;font-size:1rem;line-height:1}.category-input-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6rem;display:grid}.category-empty,.category-hint{font-size:.86rem}.mini-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid label,.category-grid label,.mini-grid label{gap:.4rem;display:grid}.category-grid textarea{min-height:8rem}.checkbox-field{grid-template-columns:1fr auto;align-items:center}.checkbox-field input{width:1rem;height:1rem}.import-summary{color:var(--muted);flex-wrap:wrap;gap:.85rem 1.5rem;font-size:.92rem;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1b140c85;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-card{background:#fffcf6fa;border:1px solid #79624a38;border-radius:22px;gap:1rem;width:min(1180px,100vw - 3rem);max-height:calc(100vh - 3rem);padding:1rem;display:grid;box-shadow:0 24px 80px #291b0a38}.modal-card-wide{width:min(1360px,100vw - 2rem)}.modal-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.modal-table-wrap{max-height:calc(100vh - 12rem);overflow:auto}.top-gap{margin-top:1rem}.hidden-input{display:none}@media (width<=1200px){.metrics-grid,.panel-grid,.panel-grid.two-up,.dashboard-secondary-grid,.form-grid,.category-grid,.mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-main-grid{grid-template-columns:1fr}}@media (width<=840px){.app-shell{width:min(100vw - 1rem,100%);padding-top:.75rem}.hero-shell{flex-direction:column;align-items:stretch;padding:1rem}.hero-actions{justify-content:flex-start;min-width:0}.dashboard-brief{flex-direction:column;align-items:stretch}.dashboard-quick-actions{justify-content:flex-start}.tab-strip{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;padding-bottom:.5rem;overflow:auto hidden}.tab-button{white-space:nowrap;flex:none}.metrics-grid,.panel-grid,.panel-grid.two-up,.dashboard-main-grid,.dashboard-secondary-grid,.form-grid,.category-grid,.mini-grid,.category-input-row{grid-template-columns:1fr}.chart-box,.chart-box.compact,.chart-box.small{height:17rem}}
