#root{min-height:100vh}*{box-sizing:border-box}body{color:#18211f;background:#f5f3ee;margin:0;font-family:Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.page{min-height:100vh;padding:32px}.welcome-page{justify-content:center;align-items:center;display:flex}.welcome-content{max-width:640px}.welcome-actions{justify-content:center;gap:12px;margin-top:24px;display:flex}.welcome-actions .primary-button{width:150px;margin-top:0}.eyebrow{color:#1c6758;text-transform:uppercase;margin:0 0 8px;font-size:.8rem;font-weight:700}h1{margin:0 0 16px;font-size:3rem;line-height:1.05}h2{margin-top:0}p{line-height:1.6}.primary-button{color:#fff;cursor:pointer;background:#1c6758;border:none;border-radius:8px;margin-top:20px;padding:12px 18px;font-weight:700}.auth-page{background:#f5f3ee;justify-content:center;align-items:center;min-height:100vh;padding:32px;display:flex}.auth-panel{background:#fff;border:1px solid #ddd4c6;border-radius:8px;width:100%;max-width:460px;padding:28px}.secondary-button{color:#1c6758;cursor:pointer;background:#fff;border:1px solid #1c6758;border-radius:8px;padding:12px 18px;font-weight:700}.auth-switch{color:#4f5f58;margin:18px 0 0}.inline-button{color:#1c6758;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.auth-panel h1{margin:0 0 24px;font-size:2.25rem;line-height:1.1}.auth-form{gap:16px;display:grid}.form-field{color:#18211f;gap:6px;font-weight:700;display:grid}.form-field input{border:1px solid #cfc7b8;border-radius:8px;width:100%;height:42px;padding:0 12px}.form-field input:focus{border-color:#1c6758;outline:none;box-shadow:0 0 0 3px #1c675824}.field-error,.error-message{color:#b42318}.field-error{font-size:.85rem;font-weight:600}.error-message{margin:0 0 16px;font-weight:700}.text-button{color:#1c6758;cursor:pointer;background:0 0;border:none;margin-bottom:20px;padding:0;font-weight:700}.primary-button:disabled{opacity:.65;cursor:not-allowed}.dashboard-shell{background:#f5f3ee;grid-template-columns:260px minmax(0,1fr);width:100%;min-height:100vh;display:grid}.dashboard-sidebar{color:#fff;background:#18211f;flex-direction:column;min-height:100vh;padding:24px 18px;display:flex}.sidebar-brand{gap:4px;margin-bottom:32px;display:grid}.sidebar-brand strong{font-size:1.05rem}.sidebar-brand span{color:#b8c7c0;font-size:.9rem}.sidebar-nav{gap:8px;display:grid}.sidebar-nav-item,.sidebar-logout{text-align:left;border:none;border-radius:8px;width:100%;padding:12px;font-weight:700}.sidebar-nav-item{color:#dce7e2;background:0 0}.sidebar-nav-item:hover,.sidebar-nav-item.active{color:#fff;background:#243530}.sidebar-logout{color:#f4c7c2;background:0 0;margin-top:auto}.sidebar-logout:hover{background:#332421}.dashboard-main{min-width:0;padding:32px}.dashboard-page{width:100%}.dashboard-home{gap:28px;width:100%;display:grid}.dashboard-widget{background:#fff;border:1px solid #ddd4c6;border-radius:8px;max-width:420px;padding:20px}.dashboard-widget h2{margin-bottom:16px;line-height:1.2}.bill-widget-detail{gap:4px;margin-bottom:4px;display:grid}.bill-widget-detail strong{font-size:1.1rem}.bill-widget-detail span{color:#69766f;font-weight:700}.dashboard-widget .primary-button{width:100%}.dashboard-header{margin-bottom:24px}.summary-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.summary-card,.panel{background:#fff;border:1px solid #ddd4c6;border-radius:8px;padding:20px}.summary-card p{color:#69766f;margin:0 0 8px}.summary-card strong{font-size:2rem}.budget-list{gap:12px;display:grid}.budget-row{border-bottom:1px solid #eee7dc;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.budget-row:last-child{border-bottom:none}.budget-row strong,.budget-row span{display:block}.budget-row span{color:#69766f;margin-top:4px;font-size:.9rem}.cleared-expense .expense-copy{color:#69766f;text-decoration:line-through}.cleared-expense .expense-copy span{color:#69766f}.transaction-row,.transaction-row span{color:#b42318}.transaction-row.groceries,.transaction-row.groceries span{color:#8a4f13}.transaction-row.income,.transaction-row.income span{color:#1c6758}@media (width<=720px){.dashboard-shell{grid-template-columns:1fr}.dashboard-sidebar{min-height:auto}.sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:2.25rem}.summary-grid{grid-template-columns:1fr}}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.panel-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.empty-state{padding:24px 0}.empty-state p{color:#69766f;margin:0 0 16px}.budget-row-button{text-align:left;cursor:pointer;background:0 0;border:none;width:100%}.budget-row-button:hover{background:#f5f3ee}.dashboard-widgets{align-items:center;gap:16px;margin-bottom:24px;display:flex}.button-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.activity-total{text-align:right;justify-items:end;gap:4px;display:grid}.activity-total span{color:#69766f;text-transform:uppercase;font-size:.82rem;font-weight:700}.activity-total strong{color:#18211f;font-size:1.3rem}.summary-chart-panel{gap:10px;display:grid}.chart-legend{color:#69766f;flex-wrap:wrap;align-items:center;gap:16px;font-size:.9rem;font-weight:800;display:flex}.chart-legend span{align-items:center;gap:6px;display:flex}.chart-legend span:before{content:"";background:currentColor;border-radius:999px;width:22px;height:3px}.chart-legend .savings{color:#1c6758}.chart-legend .spending{color:#b42318}.chart-wrap{width:100%;overflow-x:auto}.summary-chart{width:100%;min-width:640px;height:auto;display:block}.chart-axis{stroke:#cfc7b8;stroke-width:2px}.chart-grid-line{stroke:#eee7dc;stroke-width:1px}.chart-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:5px}.spending-line{stroke:#b42318}.savings-line{stroke:#1c6758}.chart-x-label,.chart-y-label{fill:#69766f;font-size:13px;font-weight:700}.pie-chart-layout{grid-template-columns:minmax(220px,320px) minmax(0,1fr);align-items:center;gap:28px;display:grid}.pie-chart{width:100%;max-width:320px}.pie-slice{stroke:#fff;stroke-width:2px}.pie-center{fill:#fff}.pie-total-label{fill:#69766f;text-transform:uppercase;font-size:13px;font-weight:800}.pie-total-value{fill:#18211f;font-size:18px;font-weight:800}.pie-legend{gap:12px;display:grid}.pie-legend-row{align-items:center;gap:12px;display:flex}.pie-dot{border-radius:999px;flex:none;width:14px;height:14px}.pie-legend-row strong,.pie-legend-row span{display:block}.pie-legend-row span{color:#69766f;margin-top:3px}.panel-actions{justify-items:end;gap:10px;display:grid}.panel-actions .primary-button{margin-top:0}.sort-controls{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:10px;display:flex}.sort-controls label{color:#69766f;gap:5px;font-size:.82rem;font-weight:700;display:grid}.sort-controls select{color:#18211f;background:#fff;border:1px solid #cfc7b8;border-radius:8px;min-width:132px;height:36px;padding:0 10px}.empty-copy{color:#69766f}.danger-button{color:#fff;background:#b42318;border:none;border-radius:8px;padding:12px 18px;font-weight:700}.danger-text-button{color:#b42318;background:0 0;border:none;padding:0;font-weight:700}.global-error{z-index:10;color:#b42318;background:#fff5f3;border:1px solid #f1b8b2;border-radius:8px;max-width:min(560px,100vw - 32px);margin:0;padding:12px 16px;font-weight:700;position:fixed;top:16px;left:50%;transform:translate(-50%)}.form-mode-panel{background:#f5f3ee;border:1px solid #ddd4c6;border-radius:8px;gap:10px;margin-bottom:20px;padding:14px;display:grid}.form-mode-panel p{color:#69766f;margin:0;font-weight:700}.form-mode-panel label{align-items:center;gap:8px;font-weight:700;display:flex}.form-field select{background:#fff;border:1px solid #cfc7b8;border-radius:8px;width:100%;height:42px;padding:0 12px}.helper-copy{color:#69766f;margin:0}.expense-import-panel{background:#fff;border:1px solid #ddd4c6;border-radius:8px;gap:10px;padding:14px;display:grid}.expense-import-panel p{color:#69766f;margin:0;font-weight:700}.expense-import-panel label,.expense-checkbox-list label{align-items:center;gap:8px;font-weight:700;display:flex}.expense-checkbox-list{gap:8px;padding-top:4px;display:grid}.expense-checkbox-list label{justify-content:space-between}.expense-checkbox-list span{flex:1}.bills-summary{gap:14px;display:grid}.bills-summary p{color:#69766f;margin:0}.bills-summary strong{font-size:2rem}.bills-summary span{color:#69766f}.transactions-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.period-overlook{gap:16px;display:grid}.period-range{color:#69766f;font-size:.95rem;font-weight:700}.period-setup-panel{max-width:520px}.period-card-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.period-card{color:#18211f;background:#fff;border:1px solid #ddd4c6;border-radius:8px;align-content:start;gap:10px;min-width:0;min-height:140px;padding:16px;display:grid}.period-card span{text-transform:uppercase;overflow-wrap:anywhere;font-size:.82rem;font-weight:800}.period-amount-field{align-items:center;gap:2px;font-size:1.6rem;font-weight:800;line-height:1.1;display:flex}.period-amount-field input{width:100%;min-width:0;color:inherit;font-size:inherit;font-weight:inherit;background:0 0;border:none}.period-amount-field input:focus{outline-offset:3px;outline:2px solid}.period-card p{overflow-wrap:anywhere;margin:0;font-size:.88rem;line-height:1.35}.period-card.income,.period-card.savings{color:#1c6758}.period-card.bills{color:#9a6a00}.period-card.surprises{color:#b42318}.period-card.remainder{color:#1d5fa7}.transaction-form{gap:14px;display:grid}.transaction-form .primary-button{margin-top:4px}@media (width<=840px){.transactions-grid{grid-template-columns:1fr}.period-card-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.pie-chart-layout{grid-template-columns:1fr}}@media (width<=520px){.period-card-grid{grid-template-columns:1fr}}
