:root{color:#172033;background:#f8fafc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{background:#f8fafc;margin:0;overflow-x:hidden;overscroll-behavior-y:contain}button,input,select{font:inherit}button{align-items:center;background:#1d4ed8;border:0;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-weight:700;justify-content:center;min-height:48px;padding:0 18px;transition:background .16s ease,transform .16s ease;touch-action:manipulation}button:hover{background:#1e40af;transform:translateY(-1px)}button:active{transform:translateY(0) scale(.98)}button:disabled{cursor:not-allowed;opacity:.65;transform:none}.secondary-button{background:#e8eef8;color:#1f365f}.secondary-button:hover{background:#dbe5f3}.danger-button{background:#dc2626}.danger-button:hover{background:#b91c1c}.logout-button{background:#111827}.logout-button:hover{background:#030712}.install-button{background:#0f766e}.install-button:hover{background:#115e59}.install-control{display:grid;gap:8px}.compact-install-control{display:inline-flex}.install-message{color:#526079;font-size:.82rem;font-weight:700;margin:0;text-align:center}.install-help{background:#eef6ff;border:1px solid #c8dcff;border-radius:8px;color:#1f365f;display:grid;font-size:.78rem;gap:5px;line-height:1.35;padding:10px}.install-help strong{color:#172033}.app-shell{margin:0 auto;max-width:1240px;padding:calc(24px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) calc(48px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));width:100%}.splash-screen{align-items:center;background:linear-gradient(180deg,#1d4ed8,#1e40af);display:grid;min-height:100vh;padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom))}.splash-card{color:#fff;display:grid;gap:14px;justify-items:center;text-align:center}.splash-logo{align-items:center;background:#fff;border-radius:20px;color:#1d4ed8;display:grid;font-size:1.4rem;font-weight:900;height:72px;place-items:center;width:72px}.splash-card h1{font-size:clamp(2.8rem,11vw,5rem)}.splash-card p{color:#dbeafe;font-weight:800}.update-banner{align-items:center;background:#172033;border-radius:8px;box-shadow:0 18px 40px #17203333;color:#fff;display:flex;gap:12px;justify-content:center;left:50%;padding:10px 12px;position:fixed;top:14px;transform:translate(-50%);z-index:20}.update-banner span{font-size:.9rem;font-weight:800}.update-banner button{background:#fff;color:#172033;min-height:34px;padding:0 12px}.update-banner button:hover{background:#e8eef8}.offline-banner{background:#fef3c7;border:1px solid #fde68a;border-radius:8px;color:#92400e;font-weight:800;margin-bottom:16px;padding:12px 14px;text-align:center}.auth-panel .update-banner{box-shadow:none;left:auto;position:static;top:auto;transform:none;width:100%}.app-header{align-items:end;display:flex;gap:24px;justify-content:space-between;margin-bottom:24px}.user-menu{align-items:center;display:flex;gap:12px;justify-content:flex-end}.user-menu span{color:#40506a;font-weight:800}.backend-status{align-items:center;border-radius:999px;display:inline-flex;font-size:.78rem;gap:6px;padding:8px 10px}.backend-status:before{border-radius:999px;content:"";height:8px;width:8px}.backend-status.online{background:#dcfce7;color:#166534}.backend-status.online:before{background:#16a34a}.backend-status.offline{background:#fee2e2;color:#991b1b}.backend-status.offline:before{background:#dc2626}.notification-center{position:relative}.notification-button{align-items:center;background:#e8eef8;border:0;border-radius:14px;color:#20375c;display:inline-flex;height:48px;justify-content:center;min-width:48px;padding:0;position:relative}.notification-button:active,.notification-actions button:active{transform:translateY(1px)}.notification-badge{align-items:center;background:#dc2626;border:2px solid #fff;border-radius:999px;color:#fff;display:inline-flex;font-size:.68rem;font-weight:900;height:22px;justify-content:center;min-width:22px;padding:0 5px;position:absolute;right:-6px;top:-6px}.notification-menu{background:#fff;border:1px solid #dbe4f0;border-radius:12px;box-shadow:0 24px 48px #0f172a2e;display:grid;gap:12px;max-height:min(70vh,560px);overflow:auto;padding:16px;position:absolute;right:0;top:calc(100% + 10px);width:min(380px,calc(100vw - 32px));z-index:40}.notification-menu-header{align-items:start;display:flex;gap:12px;justify-content:space-between}.notification-menu-header h2{margin-bottom:4px}.notification-menu-header p{color:#65748b;font-size:.78rem;line-height:1.35}.ghost-button.small{background:#e8eef8;color:#1f3b67;font-size:.75rem;min-height:40px;padding:8px 10px}.notification-list{display:grid;gap:10px}.notification-item{border:1px solid #e3e8f2;border-left:5px solid #94a3b8;border-radius:10px;display:grid;gap:10px;padding:12px}.notification-item.unread{background:#f8fbff}.notification-item.success{border-left-color:#16a34a}.notification-item.warning{border-left-color:#eab308}.notification-item.danger{border-left-color:#dc2626}.notification-item h3{margin-bottom:4px}.notification-item p{color:#526079;font-size:.86rem;line-height:1.4}.notification-item time{color:#8290a6;display:block;font-size:.72rem;margin-top:6px}.notification-actions{display:flex;gap:8px}.notification-actions button{background:#eef3fb;color:#1f3b67;font-size:.75rem;min-height:40px;padding:8px 10px}.app-footer,.producer-credit{color:#65748b;font-size:.72rem;font-weight:600;text-align:center}.app-footer{margin-top:28px}.auth-shell{display:grid;box-sizing:border-box;min-height:100vh;padding:calc(clamp(12px,4vw,32px) + env(safe-area-inset-top)) max(clamp(12px,4vw,32px),env(safe-area-inset-right)) calc(clamp(12px,4vw,32px) + env(safe-area-inset-bottom)) max(clamp(12px,4vw,32px),env(safe-area-inset-left));place-items:center}.auth-panel{box-sizing:border-box;display:grid;gap:18px;margin:0 auto;max-width:640px;overflow:hidden;padding:clamp(20px,5vw,40px);width:min(100%,640px)}.panel.auth-panel{border:clamp(5px,1.2vw,8px) solid #1d4ed8}.auth-panel h1{font-size:clamp(2.4rem,10vw,4.5rem);line-height:1;word-break:break-word}.eyebrow{color:#1d4ed8;font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 6px;text-transform:uppercase}h1,h2,p{margin:0}h1{font-size:clamp(2rem,6vw,4rem);line-height:.95}h2{font-size:1.05rem}h3{font-size:.95rem;margin:0}.header-summary{color:#526079;max-width:460px}.dashboard{display:grid;gap:20px}.dashboard-navigator{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-nav-button{align-items:start;background:#fff;border:1px solid #dbe4f0;border-left:5px solid #94a3b8;border-radius:8px;color:#172033;display:grid;gap:6px;justify-content:stretch;min-height:86px;padding:14px;text-align:left}.dashboard-nav-button:hover,.dashboard-nav-button.active{background:#eef4ff;border-left-color:#1d4ed8;color:#172033}.dashboard-nav-button strong{font-size:.95rem;line-height:1.2}.dashboard-nav-button span{color:#65748b;font-size:.78rem;font-weight:700;line-height:1.35}.active-dashboard-section{display:grid;gap:14px}.active-section-heading{align-items:center;display:flex;justify-content:space-between}.active-section-heading h2{font-size:1.35rem}.lazy-panel{background:transparent;display:grid;gap:12px}.lazy-panel-toggle{align-items:center;background:#fff;border:1px solid #dbe4f0;border-radius:8px;color:#172033;display:flex;justify-content:space-between;min-height:64px;padding:16px 18px;text-align:left;width:100%}.lazy-panel-toggle span:first-child{display:grid;gap:4px}.lazy-panel-toggle small{color:#65748b;font-size:.8rem;font-weight:600;line-height:1.35}.lazy-panel-toggle span:last-child{background:#e8eef8;border-radius:999px;color:#1f3b67;font-size:.75rem;font-weight:900;padding:8px 10px}.lazy-panel-body{display:grid}.section-skeleton{display:grid;gap:12px}.section-skeleton div{animation:skeleton-pulse 1.2s ease-in-out infinite;background:linear-gradient(90deg,#eef3fb,#f8fafc,#eef3fb);background-size:200% 100%;border-radius:8px;height:18px}.section-skeleton div:first-child{height:28px;width:48%}.section-skeleton div:last-child{width:68%}@keyframes skeleton-pulse{0%{background-position:100% 0}to{background-position:-100% 0}}.admin-panel{display:grid;gap:16px}.admin-stats{display:grid;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr))}.admin-stats div,.admin-user-list div{background:#f8fafc;border:1px solid #e3e8f2;border-radius:8px;display:grid;gap:6px;padding:12px}.admin-stats span,.admin-user-list span{color:#65748b;font-size:.84rem;font-weight:800}.admin-stats strong{font-size:1.1rem}.admin-users,.admin-user-list{display:grid;gap:10px}.admin-user-list{grid-template-columns:repeat(2,minmax(0,1fr))}.budget-cards{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card,.panel{background:#fff;border:1px solid #e3e8f2;border-radius:8px;box-shadow:0 18px 50px #1f293714}.stat-card{display:grid;gap:10px;min-height:126px;padding:20px}.stat-card span{color:#5d6b82;font-weight:700}.stat-card strong{font-size:2rem;line-height:1}.stat-card.safe{border-top:5px solid #16a34a}.stat-card.warning{border-top:5px solid #eab308}.stat-card.danger{border-top:5px solid #dc2626}.dashboard-grid{display:grid;gap:20px;grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr)}.stack{display:grid;gap:20px}.panel{padding:20px;min-width:0}.panel-heading{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.panel-heading span{color:#708097;font-size:.9rem;font-weight:700}.category-list,.alerts-list,.expense-list,.form{display:grid;gap:14px}.category-row,.expense-row{border:1px solid #edf1f7;border-radius:8px;padding:14px}.category-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.category-actions button{min-height:44px;padding:0 14px}.category-edit-form{display:grid;gap:12px}.category-edit-form label{color:#40506a;display:grid;font-size:.9rem;font-weight:800;gap:7px}.category-message{margin-bottom:14px}.category-meta,.category-footer,.expense-main{align-items:center;display:flex;justify-content:space-between}.category-meta div,.expense-main div{display:grid;gap:4px}.category-meta span,.category-footer,.expense-main span{color:#65748b;font-size:.9rem}.expense-row-editable{display:block}.expense-actions{justify-content:flex-end;margin-top:12px}.expense-edit-form{width:100%}.progress-track{background:#edf1f7;border-radius:999px;height:10px;margin:14px 0 10px;overflow:hidden}.progress-fill{height:100%}.progress-fill.safe,.pill.safe,.notice.safe,.decision.safe{background:#dcfce7;color:#166534}.progress-fill.safe{background:#16a34a}.progress-fill.warning,.pill.warning,.notice.warning{background:#fef3c7;color:#92400e}.progress-fill.warning{background:#eab308}.progress-fill.danger,.pill.danger,.notice.danger,.decision.danger{background:#fee2e2;color:#991b1b}.progress-fill.danger{background:#dc2626}.pill{border-radius:999px;font-size:.78rem;font-weight:800;padding:6px 10px;text-transform:uppercase}.form label{color:#40506a;display:grid;font-size:.9rem;font-weight:800;gap:7px}.form-row{display:grid;gap:12px;grid-template-columns:1fr 1fr}input,select{background:#f8fafc;border:1px solid #d8e0ec;border-radius:8px;box-sizing:border-box;color:#172033;font-size:1rem;min-height:48px;padding:12px;width:100%}input:focus,select:focus{border-color:#1d4ed8;box-shadow:0 0 0 3px #1d4ed824;outline:none}.notice,.decision{border-radius:8px;font-weight:700;padding:14px}.decision{display:grid;gap:6px;margin-top:14px}.decision p,.decision span,.form-message,.empty-state{color:#526079;font-size:.92rem}.loading-panel{background:#fff;border:1px solid #e3e8f2;border-radius:8px;padding:40px}.recharts-responsive-container,.recharts-wrapper{max-width:100%}.intelligence-panel{display:grid;gap:16px}.intelligence-panel .panel-heading{margin-bottom:0}.intelligence-metrics{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.intelligence-metrics div{background:#f8fafc;border:1px solid #e3e8f2;border-radius:8px;display:grid;gap:6px;padding:12px}.intelligence-metrics span,.survival-row span{color:#65748b;font-size:.86rem;font-weight:700}.intelligence-metrics strong{font-size:1.15rem}.intelligence-block{display:grid;gap:10px}.monthly-insights{display:grid;gap:16px}.section-heading{align-items:start;display:flex;gap:12px;justify-content:space-between}.section-heading p,.insight-summary,.insight-explanation p{color:#526079}.status-pill{border-radius:999px;font-size:.72rem;font-weight:900;padding:8px 10px;white-space:nowrap}.status-pill.safe{background:#dcfce7;color:#166534}.status-pill.warning{background:#fef3c7;color:#92400e}.status-pill.danger{background:#fee2e2;color:#991b1b}.insight-card-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.insight-card,.insight-explanation{background:#f8fafc;border:1px solid #e3e8f2;border-radius:8px;display:grid;gap:6px;padding:12px}.insight-card span{color:#65748b;font-size:.78rem;font-weight:800}.behavior-rule-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.behavior-rule-grid span{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:#7c2d12;font-size:.84rem;font-weight:800;padding:9px 10px}.recommendation-list{display:grid;gap:8px}.recommendation-list p,.recommendation-list li{background:#eef4ff;border-left:4px solid #1d4ed8;border-radius:8px;color:#294166;font-size:.92rem;font-weight:700;list-style:none;padding:10px 12px}.category-survival-list{display:grid;gap:10px}.survival-row{align-items:center;border:1px solid #edf1f7;border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:12px}.survival-row div{display:grid;gap:4px}.planner-panel{display:grid;gap:16px}.planner-panel .panel-heading{margin-bottom:0}.timetable-list,.plan-result,.mini-list{display:grid;gap:10px}.timetable-card{border:1px solid #edf1f7;border-radius:8px;display:grid;gap:10px;padding:12px}.week-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.week-grid span,.mini-list span,.plan-result div{background:#f8fafc;border:1px solid #e3e8f2;border-radius:8px;color:#40506a;font-size:.9rem;font-weight:700;padding:9px 10px}.list-item-row{border:1px solid #edf1f7;border-radius:8px;display:grid;gap:10px;grid-template-columns:1.2fr .8fr 1fr auto;padding:10px}.shopping-list-workspace{gap:18px}.shopping-list-form{border-bottom:1px solid #edf1f7;padding-bottom:16px}.shopping-list-actions,.saved-list-actions{display:flex;flex-wrap:wrap;gap:10px}.shopping-list-actions button,.saved-list-actions button{min-height:48px}.shopping-result{gap:12px}.shopping-result-heading{align-items:center;display:flex;gap:10px;justify-content:space-between}.shopping-result-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.shopping-result-grid span,.saved-list-meta{background:#ffffff8c;border:1px solid rgba(148,163,184,.35);border-radius:8px;padding:10px}.saved-shopping-lists{display:grid;gap:12px}.saved-shopping-lists .panel-heading{margin-bottom:0}.saved-list-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.saved-list-card{border:1px solid #e3e8f2;border-radius:8px;display:grid;gap:12px;padding:14px}.saved-list-card-header{align-items:start;display:flex;gap:12px;justify-content:space-between}.saved-list-card-header div,.saved-list-meta{display:grid;gap:4px}.saved-list-card-header span,.saved-list-meta span,.saved-list-card p{color:#65748b;font-size:.86rem}.compact-button{min-height:48px;padding:0 12px}.password-input-wrap{position:relative}.password-input-wrap input{padding-right:52px}.icon-button{min-height:44px;padding:0}.password-toggle{background:transparent;border-radius:8px;color:#40506a;height:36px;position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px}.password-toggle:hover{background:#e8eef8;color:#1f365f;transform:translateY(-50%)}.password-toggle svg{fill:none;height:21px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:21px}.plan-result{border-top:1px solid #edf1f7;padding-top:14px}.profile-panel{display:grid;gap:16px}.profile-panel .panel-heading{margin-bottom:0}.password-form{border-top:1px solid #edf1f7;padding-top:16px}.account-danger-zone{border-top:1px solid #edf1f7;display:grid;gap:12px;padding-top:16px}.plan-result div{align-items:center;display:flex;justify-content:space-between}.monthly-report{display:grid;gap:18px}.monthly-report .panel-heading{margin-bottom:0}.report-actions{display:flex;flex-wrap:wrap;gap:10px}.report-summary{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.report-summary div,.report-verdict,.report-block,.report-grid>div{background:#f8fafc;border:1px solid #e3e8f2;border-radius:8px;padding:14px}.report-summary div{display:grid;gap:6px}.report-summary span,.report-verdict span{color:#65748b;font-size:.9rem;font-weight:700}.report-summary strong{font-size:1.2rem}.report-verdict{display:grid;gap:8px}.report-grid{display:grid;gap:14px;grid-template-columns:1fr 1fr}.report-grid h3,.report-block h3{margin-bottom:10px}@media print{.app-header,.budget-cards,.dashboard-grid>.stack:first-child .panel:not(.monthly-report),.dashboard-grid>.stack:last-child,.report-actions{display:none}.app-shell{max-width:none;padding:0}.dashboard-grid{display:block}.monthly-report{box-shadow:none}}@media (max-width: 900px){.app-header,.dashboard-grid{align-items:start;grid-template-columns:1fr}.app-header{display:grid;gap:14px}.budget-cards,.dashboard-navigator{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.app-shell{padding:calc(14px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.app-header{background:#f8fafcf5;border-bottom:1px solid #e3e8f2;margin:calc(-14px - env(safe-area-inset-top)) max(-12px,calc(env(safe-area-inset-right)*-1)) 18px max(-12px,calc(env(safe-area-inset-left)*-1));padding:calc(12px + env(safe-area-inset-top)) 12px 12px;position:sticky;top:0;z-index:15}.app-header h1{font-size:clamp(2.4rem,16vw,3.6rem)}.user-menu{align-items:stretch;display:grid;grid-template-columns:1fr}.user-menu span{grid-column:auto}.notification-center,.notification-button,.notification-menu{width:100%}.notification-menu{left:0;right:auto;width:min(100%,calc(100vw - 24px))}.auth-panel{gap:14px;padding:clamp(18px,5vw,24px)}.panel{padding:16px}.budget-cards,.admin-stats,.admin-user-list,.form-row,.intelligence-metrics,.behavior-rule-grid,.insight-card-grid,.list-item-row,.saved-list-grid,.shopping-result-grid,.week-grid,.report-summary,.report-grid{grid-template-columns:1fr}.report-actions,.category-actions,.expense-main,.category-meta,.category-footer,.saved-list-card-header,.survival-row,.plan-result div{align-items:stretch;display:grid;gap:8px}.report-actions button,.category-actions button,.expense-actions button{width:100%}.stat-card strong{font-size:1.65rem}.dashboard-nav-button{min-height:64px;padding:11px}.dashboard-nav-button span{display:none}}
