@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--body:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--heading:"Inter", system-ui, sans-serif;--ink:#243447;--ink-soft:#33465d;--canvas:#f1f7ff;--white:#fff;--surface-muted:#eefdfc;--border:#dceaf0;--text:#405268;--text-muted:#71849a;--text-strong:#243447;--mint:#67d5d1;--mint-tint:#eefdfc;--lavender:#9ea4f2;--lavender-tint:#f3f2ff;--peach:#ffb092;--peach-tint:#fff2ec;--green:#198a62;--cyan:#67d5d1;--cyan-strong:#35aaa8;--coral:#ffb092;--coral-strong:#d46d54;--shadow-soft:0 16px 38px #24344714;font-family:var(--body);color:var(--text);background:var(--canvas);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{background:var(--canvas)}body{background:var(--canvas);min-width:320px;min-height:100svh;margin:0}#root{min-height:100svh}a{color:inherit}button,input,select{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #67d5d157}::selection{color:var(--ink);background:#67d5d173}.login-screen{background:linear-gradient(135deg, #f1f7fff5, #eefdfcf5), var(--canvas);min-height:100svh;color:var(--ink);grid-template-columns:minmax(320px,.94fr) minmax(360px,1fr);display:grid}.login-visual{background:linear-gradient(135deg, #67d5d1fa, #9ea4f2eb), var(--mint);border-right:1px solid #9ea4f22e;flex-direction:column;justify-content:space-between;min-height:100%;padding:44px;display:flex}.brand-logo{align-items:center;line-height:0;display:inline-flex}.brand-logo img{object-fit:contain;width:100%;height:auto;display:block}.brand-logo-full{width:156px}.brand-logo-compact{width:42px;height:42px}.brand-logo-compact img{height:100%}.login-hero-logo{width:180px}.login-form-logo{justify-self:center;width:174px}.login-chart{width:min(100%,560px);color:var(--ink);background:#ffffffd6;border:1px solid #ffffffa3;border-radius:8px;padding:28px;box-shadow:0 28px 80px #24344729}.login-chart-header,.login-stats{justify-content:space-between;align-items:center;gap:18px;display:flex}.login-chart-header span,.login-stats span{color:var(--text-muted)}.mini-bars{grid-template-columns:repeat(10,minmax(14px,1fr));align-items:end;gap:12px;height:270px;margin:34px 0;display:grid}.mini-bars span{border-radius:8px 8px 0 0;min-height:32px;display:block}.mint-bar{background:linear-gradient(180deg, var(--mint), #45bbb7)}.coral-bar{background:linear-gradient(180deg, var(--peach), #e98065)}.login-card{background:linear-gradient(180deg, #ffffffe6, #f1f7ffc2), var(--canvas);color:var(--text);place-content:center;justify-items:stretch;gap:26px;padding:clamp(28px,7vw,100px);display:grid}.loading-card{justify-items:start}.login-card>div,.login-form{width:min(100%,460px)}.eyebrow{color:var(--cyan-strong);text-transform:uppercase;letter-spacing:.12em;margin:0 0 12px;font-size:.76rem;font-weight:800}.login-card h1{max-width:540px;color:var(--text-strong);font-family:var(--heading);letter-spacing:0;margin:0 0 16px;font-size:clamp(1.8rem,3vw,2.55rem);line-height:1.14}.login-copy{max-width:520px;color:var(--text-muted);font-size:.96rem;line-height:1.55}.login-form,.stacked-form{gap:16px;display:grid}.login-form{width:min(100%,460px);max-width:460px}.form-error{color:var(--coral);margin:0;font-size:.76rem;font-weight:800;line-height:1.35}label{color:var(--text);gap:8px;font-size:.84rem;font-weight:700;display:grid}input,select{border:1px solid var(--border);box-sizing:border-box;width:100%;min-height:48px;color:var(--text-strong);background:var(--white);font:700 .98rem/1 var(--body);border-radius:8px;outline:none;padding:0 14px;transition:border-color .18s,box-shadow .18s}input:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 4px #67d5d12e}button{font-family:var(--body)}.primary-button,.ghost-button{cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:0 18px;font-size:.88rem;font-weight:700;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.primary-button{color:var(--ink);background:linear-gradient(135deg, var(--mint), #91e5e2);box-shadow:0 16px 32px #67d5d13d}.primary-button.danger{color:#43120f;background:linear-gradient(135deg, #ffb3ad, var(--coral));box-shadow:0 18px 34px #ffb09233}.login-divider{color:var(--text-muted);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;font-size:.76rem;font-weight:700;display:grid}.login-divider:before,.login-divider:after{content:"";background:var(--border);height:1px}.oauth-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.oauth-button{border:1px solid var(--border);min-height:46px;color:var(--text-strong);cursor:pointer;background:#ffffffdb;border-radius:8px;justify-content:center;align-items:center;gap:10px;font-size:.86rem;font-weight:700;transition:border-color .18s,box-shadow .18s,transform .18s;display:inline-flex}.oauth-button:hover{border-color:#67d5d1b8;transform:translateY(-1px);box-shadow:0 12px 24px #24344714}.oauth-badge{width:24px;height:24px;color:var(--ink);border-radius:50%;place-items:center;font-size:.76rem;font-weight:800;display:grid}.oauth-badge.google{background:var(--peach-tint)}.oauth-badge.microsoft{background:var(--lavender-tint)}.ghost-button{width:100%;color:var(--text-strong);background:var(--surface-muted);border:1px solid var(--border)}.primary-button:hover,.ghost-button:hover{transform:translateY(-1px)}.app-shell{background:var(--canvas);grid-template-columns:236px minmax(0,1fr);min-height:100svh;display:grid}.sidebar{box-sizing:border-box;height:100svh;color:var(--text-strong);border-right:1px solid var(--border);background:#ffffffdb;flex-direction:column;padding:30px 16px;display:flex;position:sticky;top:0;box-shadow:12px 0 34px #2434470d}.sidebar-logo{align-self:flex-start}.brand-compact{display:none}.side-nav{gap:12px;margin-top:44px;display:grid}.nav-item,.collapse-button{width:100%;min-height:56px;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:18px;padding:0 16px;font-size:.88rem;font-weight:700;display:flex}.nav-item svg,.collapse-button svg{color:currentColor;width:18px}.nav-item.active{color:var(--ink);box-shadow:inset 3px 0 0 var(--mint);background:linear-gradient(90deg,#67d5d142,#9ea4f21a)}.nav-item:hover,.collapse-button:hover{background:#67d5d124}.collapse-button{border-top:1px solid var(--border);border-radius:0;margin-top:auto}.workspace{min-width:0;padding:0 24px 40px;overflow:hidden}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:5;background:#ffffffe0;grid-template-columns:auto minmax(260px,1fr) auto auto;align-items:center;gap:18px;min-height:96px;margin:0 -24px 36px;padding:0 24px;display:grid;position:sticky;top:0}.month-picker{align-items:center;gap:12px;display:flex}.month-picker button,.mobile-header button,.drawer-head button{border:1px solid var(--border);width:46px;height:46px;color:var(--text-strong);background:var(--white);cursor:pointer;border-radius:8px;place-items:center;display:grid}.month-label{min-height:52px;color:var(--text-strong);font-family:var(--heading);letter-spacing:0;align-items:center;gap:14px;font-size:clamp(1.05rem,1.4vw,1.38rem);font-weight:800;display:inline-flex}.month-label svg{color:var(--ink-soft)}.segmented-control{grid-template-columns:repeat(var(--segment-count,4), minmax(78px, 1fr));border:1px solid var(--border);background:var(--white);border-radius:8px;display:grid;overflow:hidden}.segmented-control button{border:0;border-right:1px solid var(--border);min-height:46px;color:var(--text-strong);cursor:pointer;background:0 0;font-size:.86rem;font-weight:800}.segmented-control button:last-child{border-right:0}.segmented-control button.active{color:#243447;background:linear-gradient(135deg,#67d5d157,#67d5d1f5)}.period-tabs{min-width:300px}.module-tabs{width:fit-content;min-width:min(100%,320px);box-shadow:var(--shadow-soft);justify-self:start}.module-tabs button{min-width:142px;min-height:42px}.topbar-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0;max-width:420px;display:grid}.topbar-kpi{border:1px solid var(--border);background:#ffffffd1;border-radius:8px;align-content:center;gap:3px;min-width:0;min-height:48px;padding:8px 10px;display:grid}.topbar-kpi span{color:var(--text-muted);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.62rem;font-weight:900;overflow:hidden}.topbar-kpi strong{color:var(--text-strong);font-family:var(--heading);text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.86rem,1vw,1.04rem);line-height:1;overflow:hidden}.topbar-kpi.income strong,.topbar-kpi.saving strong{color:var(--green)}.topbar-kpi.expense strong{color:var(--coral-strong)}.topbar-kpi.tax strong{color:var(--cyan-strong)}.profile-chip{min-width:0;color:var(--text-strong);justify-self:end;align-items:center;gap:12px;font-weight:800;display:inline-flex}.mobile-header,.bottom-nav,.drawer-backdrop{display:none}.page-stack{gap:26px;display:grid}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.metric-card{border:1px solid var(--border);background:var(--white);min-height:118px;box-shadow:var(--shadow-soft);border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;padding:20px;display:grid}.metric-card.income{background:linear-gradient(90deg, #25d38e1c, var(--white));border-color:#1cad693d}.metric-card.expense{background:linear-gradient(90deg, #ffb0921c, var(--white));border-color:#ffb09247}.metric-card.saving{background:linear-gradient(90deg, #67d5d11f, var(--white));border-color:#67d5d147}.metric-card.tax{background:linear-gradient(90deg, #67d5d11c, var(--white));border-color:#67d5d147}.metric-icon{border-radius:50%;place-items:center;width:58px;height:58px;font-size:1.55rem;display:grid}.metric-card.income .metric-icon,.metric-card.saving .metric-icon{color:var(--green);background:#25d38e29}.metric-card.expense .metric-icon{color:var(--coral-strong);background:#ffb0922e}.metric-card.tax .metric-icon{color:var(--cyan-strong);background:#67d5d129}.metric-card span,.metric-card small{color:var(--text-muted);font-weight:750;display:block}.metric-card strong{color:var(--text-strong);font-family:var(--heading);margin:7px 0 2px;font-size:clamp(1.55rem,2.25vw,2.1rem);line-height:1;display:block}.metric-card.income strong,.metric-card.saving strong{color:var(--green)}.metric-card.expense strong{color:var(--coral-strong)}.metric-card.tax strong{color:var(--cyan-strong)}.module-kpis{gap:12px;display:none}.module-kpis .metric-card{min-height:108px;padding:16px}.module-kpis .metric-icon{width:48px;height:48px;font-size:1.18rem}.dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(360px,.8fr);gap:22px;display:grid}.panel{border:1px solid var(--border);background:var(--white);box-shadow:var(--shadow-soft);border-radius:8px}.chart-panel,.top-expenses,.tax-preview,.form-panel,.category-panel,.future-panel,.loan-summary,.tax-calculator,.bracket-panel,.avatar-panel,.tech-panel,.table-panel{padding:24px}.panel-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.panel-header p,.section-title p{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:.8rem;font-weight:850}.panel-header h2,.section-title h1{color:var(--text-strong);font-family:var(--heading);letter-spacing:0;margin:0}.panel-header h2{font-size:.95rem}.section-title{align-items:center;gap:12px;display:flex}.section-title h1{font-size:clamp(1rem,1.25vw,1.22rem);line-height:1}.section-icon,.panel-icon{color:var(--green);background:#25d38e24;flex:none;place-items:center;display:grid}.section-icon{border-radius:8px;width:46px;height:46px;font-size:1.05rem}.panel-icon{border-radius:50%;width:36px;height:36px}.section-icon.coral,.category-item span,.rank-icon{color:var(--coral-strong);background:#ffb0922e}.section-icon.cyan{color:var(--cyan-strong);background:#67d5d124}.chart-shell{min-height:350px}.chart-legend{border:1px solid var(--border);width:fit-content;min-height:42px;color:var(--text-muted);border-radius:8px;align-items:center;gap:9px;margin-top:14px;padding:0 14px;font-size:.88rem;font-weight:750;display:inline-flex}.chart-legend span{background:var(--coral);border-radius:4px;width:14px;height:14px}.chart-tooltip-label{color:var(--text-strong);font-weight:800}.side-stack{gap:24px;display:grid}.expense-list{gap:18px;display:grid}.expense-rank{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.rank-icon{border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.rank-main{min-width:0}.rank-main>div:first-child{color:var(--text-strong);justify-content:space-between;align-items:center;gap:12px;display:flex}.rank-main strong,.rank-main span{white-space:nowrap}.progress-track,.loan-progress{background:var(--surface-muted);border-radius:999px;height:7px;margin-top:8px;overflow:hidden}.progress-track span,.loan-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--coral), #e98065);height:100%;display:block}.expense-rank em{color:var(--text-muted);font-style:normal;font-weight:800}.tax-preview{background:linear-gradient(120deg, #67d5d121, var(--white));border-color:#67d5d147;grid-template-columns:auto minmax(0,1fr);gap:18px;display:grid}.tax-icon{width:78px;height:78px;color:var(--cyan-strong);background:#67d5d129;border-radius:50%;place-items:center;font-size:2rem;display:grid}.tax-title{color:var(--cyan-strong);justify-content:space-between;align-items:center;gap:10px;display:flex}.tax-title h2{color:var(--text-strong);margin:0;font-size:1.1rem}.tax-preview strong{color:var(--cyan-strong);font-family:var(--heading);margin:8px 0;font-size:clamp(2.2rem,4vw,3.1rem);line-height:1;display:block}.tax-preview p,.future-copy p,.source-note,.tech-grid span,.loan-row span{color:var(--text-muted)}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.form-grid{gap:16px;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:1.2fr .8fr 1fr}.form-note{color:var(--text-muted);background:#67d5d10f;border:1px solid #67d5d133;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:800;line-height:1.35}.inline-toggle{align-self:end;align-items:center;min-height:48px;display:flex}.summary-strip{min-height:68px;color:var(--green);background:#25d38e1f;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-top:18px;padding:0 18px;font-weight:850;display:flex}.summary-strip.coral{color:var(--coral-strong);background:#ffb0921f}.summary-strip strong{font-family:var(--heading);font-size:1.45rem}.toggle-row{min-height:44px;color:var(--text-strong);align-items:center;gap:10px;display:inline-flex}.toggle-row input{width:18px;min-height:18px;accent-color:var(--cyan)}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.category-item{border:1px solid var(--border);border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-height:72px;padding:10px;display:grid}.category-item span{border-radius:8px;place-items:center;width:42px;height:42px;display:grid}.category-item strong,.category-item small{display:block}.category-item small{color:var(--text-muted);font-weight:800}.future-panel{background:linear-gradient(90deg, #67d5d121, #25d38e17), var(--white);border-color:#67d5d142;justify-content:space-between;align-items:center;gap:24px;display:flex}.future-copy h2{color:var(--text-strong);font-family:var(--heading);margin:6px 0 8px;font-size:1.5rem}.future-panel>strong{color:var(--cyan-strong);font-family:var(--heading);white-space:nowrap;font-size:clamp(1.9rem,4vw,3rem)}.status-dot{color:var(--green);align-items:center;gap:8px;font-weight:850;display:inline-flex}.status-dot:before{content:"";background:var(--mint);border-radius:50%;width:10px;height:10px}.loan-summary{align-content:start;gap:14px;display:grid}.loan-row{border:1px solid var(--border);border-radius:8px;gap:10px;padding:14px;display:grid}.loan-row-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.loan-row strong,.loan-row em{color:var(--text-strong)}.loan-row em{font-style:normal;font-family:var(--heading);font-size:1.28rem}.loan-progress span{background:linear-gradient(90deg, var(--mint), var(--cyan))}.taxes-grid{grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr)}.tax-result{min-height:136px;color:var(--cyan-strong);text-align:center;background:#67d5d11f;border-radius:8px;place-items:center;margin-bottom:18px;display:grid}.tax-result span,.tax-result small{color:var(--text-muted);font-weight:850}.tax-result strong{color:var(--cyan-strong);font-family:var(--heading);font-size:clamp(2rem,4vw,3rem);line-height:1}.tax-breakdown{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0;display:grid}.tax-breakdown span{border:1px solid var(--border);min-height:72px;color:var(--text-muted);border-radius:8px;gap:5px;padding:12px;font-weight:800;display:grid}.tax-breakdown strong{color:var(--text-strong)}.bracket-list{gap:8px;max-height:462px;padding-right:4px;display:grid;overflow:auto}.bracket-list article{border:1px solid var(--border);min-height:46px;color:var(--text);border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:0 14px;font-weight:800;display:flex}.bracket-list article.active{color:var(--cyan-strong);background:#67d5d11a;border-color:#67d5d17a}.avatar-grid{grid-template-columns:repeat(4,minmax(84px,1fr));gap:12px;display:grid}.avatar-grid button{border:1px solid var(--border);min-height:112px;color:var(--text);background:var(--white);cursor:pointer;border-radius:8px;place-items:center;gap:8px;font-weight:850;display:grid}.avatar-grid button.selected{color:var(--green);border-color:var(--green);box-shadow:0 0 0 3px #25d38e1f}.profile-preview{background:radial-gradient(circle at 12% 18%,#67d5d12e,#0000 32%),linear-gradient(135deg,#fffffff2,#f3fcfcf5);border:1px solid #67d5d12e;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;min-height:160px;margin-bottom:16px;padding:18px;display:grid}.profile-preview span,.profile-preview small,.modal-head span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.profile-preview strong,.modal-head strong{color:var(--text-strong);font-family:var(--heading);font-size:1.05rem;display:block}.profile-preview small{letter-spacing:0;text-transform:none;margin-top:4px;line-height:1.35;display:block}.profile-avatar-trigger{width:116px;height:116px;color:var(--text-strong);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:6px;display:grid;position:relative}.profile-avatar-trigger:focus-visible{outline-offset:4px;outline:3px solid #67d5d147}.profile-avatar-trigger .avatar{transition:filter .18s,transform .18s}.profile-avatar-trigger:hover .avatar,.profile-avatar-trigger:focus-visible .avatar{filter:brightness(.82);transform:scale(.98)}.profile-avatar-trigger .edit-badge{color:#243447;background:linear-gradient(135deg, var(--mint), var(--cyan));opacity:0;border:2px solid #ffffffeb;border-radius:50%;place-items:center;width:36px;height:36px;transition:opacity .18s,transform .18s;display:grid;position:absolute;bottom:8px;right:6px;transform:translateY(4px)scale(.88);box-shadow:0 12px 26px #67d5d147}.profile-avatar-trigger:hover .edit-badge,.profile-avatar-trigger:focus-visible .edit-badge{opacity:1;transform:translateY(0)scale(1)}.profile-avatar-trigger .edit-badge svg{font-size:.82rem}.avatar{background:#ffffffb8;border:3px solid #67d5d1b8;border-radius:50%;flex:none;place-items:center;display:inline-grid;overflow:hidden;box-shadow:0 14px 32px #09223621}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar-sm{width:46px;height:46px}.avatar-md{width:58px;height:58px}.avatar-lg{width:68px;height:68px}.avatar-xl{width:104px;height:104px}.modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0311217a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.avatar-modal{width:min(760px,100%);max-height:min(720px,90svh);padding:22px;overflow:auto}.modal-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.modal-head button{border:1px solid var(--border);width:40px;height:40px;color:var(--text-strong);background:var(--white);cursor:pointer;border-radius:8px;place-items:center;display:grid}.avatar-grid-modal{margin:0}.tech-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.tech-grid article{border:1px solid var(--border);border-radius:8px;gap:6px;min-height:86px;padding:14px;display:grid}.tech-grid strong{color:var(--text-strong);font-family:var(--heading);font-size:1.08rem}.table-toolbar{grid-template-columns:minmax(300px,.72fr) minmax(180px,.28fr);align-items:end;gap:14px;margin-bottom:16px;display:grid}.table-toolbar .segmented-control{width:100%}.table-summary{min-height:42px;color:var(--text-muted);align-items:center;font-size:.9rem;font-weight:850;display:flex}.calendar-progress{min-height:86px;color:var(--white);background:linear-gradient(100deg,#67d5d1f5,#67d5d1eb);border:0;grid-template-columns:minmax(180px,.45fr) minmax(220px,1fr) auto;align-items:center;gap:18px;padding:18px 22px;display:grid;overflow:hidden;box-shadow:0 24px 62px #67d5d13b}.calendar-progress span,.calendar-progress em{color:#ffffffd1;font-style:normal;font-weight:850}.calendar-progress strong{color:var(--white);font-family:var(--heading);font-size:1.35rem;display:block}.status-meter{background:#ffffff47;border-radius:999px;height:8px;overflow:hidden}.status-meter span{border-radius:inherit;background:var(--white);height:100%;display:block;box-shadow:0 0 18px #ffffff70}.calendar-panel,.timeline-panel{padding:24px}.calendar-panel-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.calendar-panel-head .panel-header{margin-bottom:0}.view-tabs{width:min(260px,100%);min-width:0}.view-tabs button{min-width:0}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.calendar-weekdays{margin-bottom:8px}.calendar-weekdays span{color:var(--text-muted);text-align:center;text-transform:uppercase;font-size:.76rem;font-weight:900}.calendar-cell{border:1px solid var(--border);background:var(--white);border-radius:8px;align-content:start;gap:8px;min-height:132px;padding:12px;display:grid}.calendar-cell.empty{background:0 0;border-color:#0000}.calendar-cell.outside{color:var(--text-muted);background:#ecf4f46b}.calendar-grid-week .calendar-cell{min-height:180px}.calendar-cell strong{color:var(--text-strong);font-family:var(--heading);font-size:.95rem}.calendar-payment,.calendar-cell small{width:fit-content;max-width:100%;min-height:22px;color:var(--coral-strong);background:#ffb0921f;border:0;border-radius:6px;align-items:center;padding:0 7px;font-size:.72rem;font-weight:850;display:inline-flex}.calendar-payment{cursor:help;font-family:var(--body);outline:none;position:relative}.calendar-tooltip{z-index:20;min-width:190px;max-width:min(260px,72vw);color:var(--text-strong);background:var(--white);opacity:0;pointer-events:none;white-space:normal;border:1px solid #67d5d13d;border-radius:8px;padding:9px 10px;font-size:.78rem;line-height:1.25;transition:opacity .16s,transform .16s;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,6px);box-shadow:0 18px 38px #09223629}.calendar-cell .calendar-tooltip{min-height:auto;color:var(--text-strong);background:var(--white);letter-spacing:0;text-align:left;text-transform:none;white-space:normal;border:1px solid #67d5d13d;border-radius:8px;padding:9px 10px;font-size:.78rem;font-weight:800;line-height:1.25;display:block;box-shadow:0 18px 38px #09223629}.calendar-tooltip:after{background:var(--white);content:"";border-bottom:1px solid #67d5d13d;border-right:1px solid #67d5d13d;width:10px;height:10px;position:absolute;top:100%;left:50%;transform:translate(-50%,-5px)rotate(45deg)}.calendar-payment:hover .calendar-tooltip,.calendar-payment:focus .calendar-tooltip,.calendar-payment:focus-visible .calendar-tooltip{opacity:1;transform:translate(-50%)}.calendar-payment.paid{color:var(--green);background:#25d38e24}.payment-timeline-vertical{gap:10px;width:min(100%,920px);margin-top:18px;display:grid}.timeline-row{grid-template-columns:70px 42px minmax(0,1fr);align-items:center;gap:12px;display:grid}.timeline-date{color:var(--text-muted);justify-items:end;gap:2px;display:grid}.timeline-date span{text-transform:uppercase;font-size:.72rem;font-weight:850}.timeline-date strong{color:var(--text-strong);font-family:var(--heading);font-size:1rem}.timeline-rail{place-items:center;min-height:86px;display:grid;position:relative}.timeline-rail:before{content:"";border-left:2px dashed #0922362e;position:absolute;top:-12px;bottom:-12px;left:50%;transform:translate(-50%)}.timeline-dot{z-index:1;width:var(--dot-size);height:var(--dot-size);background:var(--white);cursor:pointer;border:2px solid #67d5d170;border-radius:50%;position:relative;box-shadow:0 8px 22px #0922361f}.timeline-dot:hover,.timeline-dot:focus-visible{border-color:var(--cyan);box-shadow:0 0 0 5px #67d5d121}.timeline-row.paid .timeline-dot{border-color:var(--green);background:#25d38e2e}.timeline-card{border:1px solid var(--border);background:var(--white);border-radius:8px;align-content:center;gap:4px;min-height:74px;padding:10px 12px;display:grid;box-shadow:0 12px 28px #09223614}.timeline-card>span{color:var(--text-muted);font-size:.72rem;font-weight:850}.timeline-card strong{color:var(--text-strong);font-family:var(--heading);text-overflow:ellipsis;white-space:nowrap;font-size:.96rem;overflow:hidden}.timeline-card div{justify-content:space-between;align-items:center;gap:12px;display:flex}.timeline-card small,.timeline-card em{color:var(--text-muted);font-size:.78rem;font-style:normal;font-weight:800}.timeline-card em{color:var(--cyan-strong)}.timeline-row.paid .timeline-card{background:#25d38e0d;border-color:#25d38e47}.empty-panel{min-height:240px;color:var(--text-muted);text-align:center;align-content:center;place-items:center;gap:8px;display:grid}.empty-panel strong{color:var(--text-strong);font-family:var(--heading)}.responsive-table{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:680px}th,td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:15px 10px}th{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem}td{color:var(--text-strong);font-weight:750}.table-action{border:1px solid var(--border);width:34px;height:34px;color:var(--text-muted);background:var(--white);cursor:pointer;border-radius:8px;place-items:center;display:inline-grid}.table-action.danger{color:var(--coral-strong);background:#ffb09214;border-color:#ffb09247}.table-action:hover,.table-action:focus-visible{color:#243447;border-color:var(--cyan);background:#67d5d11f}.muted-action{color:var(--text-muted);font-size:.78rem;font-weight:850}tbody tr:last-child td{border-bottom:0}@media (width<=1350px){.app-shell{grid-template-columns:82px minmax(0,1fr)}.sidebar{align-items:center;padding-inline:12px}.sidebar .brand-full,.nav-item span,.collapse-button span{display:none}.sidebar .brand-compact{align-self:center;display:inline-flex}.nav-item,.collapse-button{justify-content:center;padding:0}.topbar{grid-template-columns:auto minmax(260px,420px) auto;gap:14px}.profile-chip{display:none}}@media (width<=1180px){.dashboard-grid,.taxes-grid,.calendar-layout{grid-template-columns:1fr}.topbar{grid-template-columns:1fr;gap:16px;padding-block:18px}.topbar-kpis{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}.period-tabs,.module-tabs{width:100%;min-width:0}.profile-chip{display:none}}@media (width<=860px){.login-screen{grid-template-columns:1fr}.login-visual{display:none}.login-card{min-height:100svh}.app-shell{padding-bottom:86px;display:block}.sidebar{display:none}.mobile-header{box-sizing:border-box;min-height:84px;color:var(--text-strong);border-bottom:1px solid var(--border);z-index:12;background:#ffffffeb;justify-content:space-between;align-items:center;padding:12px 18px;display:flex;position:sticky;top:0;box-shadow:0 16px 32px #2434470f}.mobile-brand-logo{width:132px}.mobile-header button{border-color:var(--border);color:var(--text-strong);background:var(--white);width:36px;height:36px;font-size:.92rem}.mobile-header .avatar-sm{width:36px;height:36px}.drawer-backdrop{z-index:30;background:#010c1875;display:block;position:fixed;inset:0}.mobile-drawer{box-sizing:border-box;width:min(82vw,320px);height:100%;color:var(--text-strong);background:#fffffffa;flex-direction:column;padding:24px 16px;display:flex}.drawer-head{justify-content:space-between;align-items:center;display:flex}.drawer-head button{color:var(--text-strong);background:var(--white);border-color:var(--border)}.drawer-logo{width:136px}.workspace{padding:0 20px 28px}.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:0;min-height:auto;margin:22px 0 24px;padding:0;position:static}.month-picker{justify-content:space-between}.month-label{justify-content:center;font-size:1.08rem}.segmented-control{grid-template-columns:repeat(var(--segment-count,4), minmax(0, 1fr));width:100%}.segmented-control button{min-height:42px;padding:0 6px}.topbar-kpis{gap:6px}.topbar-kpi{min-height:44px;padding:7px 8px}.topbar-kpi span{font-size:.56rem}.topbar-kpi strong{font-size:.8rem}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric-card{grid-template-columns:1fr;align-items:start;gap:10px;min-height:118px;padding:12px}.metric-icon{width:32px;height:32px;font-size:.78rem}.metric-card span{font-size:.82rem}.metric-card strong{font-size:clamp(1.18rem,5.6vw,1.65rem)}.metric-card small{font-size:.78rem}.chart-panel,.top-expenses,.tax-preview,.form-panel,.category-panel,.future-panel,.loan-summary,.tax-calculator,.bracket-panel,.avatar-panel,.tech-panel,.table-panel{padding:18px}.module-grid,.form-grid.two,.form-grid.three,.tech-grid,.table-toolbar,.calendar-progress,.category-grid{grid-template-columns:1fr}.calendar-panel,.timeline-panel{padding:18px}.calendar-panel-head{flex-direction:column;align-items:stretch}.view-tabs{width:100%}.section-title{gap:9px}.section-icon{width:34px;height:34px;font-size:.78rem}.panel-icon{width:30px;height:30px;font-size:.78rem}.calendar-weekdays,.calendar-grid{gap:5px}.calendar-cell{min-height:78px;padding:6px}.calendar-grid-week .calendar-cell{min-height:104px}.calendar-payment,.calendar-cell small{min-height:18px;padding:0 5px;font-size:.62rem}.calendar-tooltip{min-width:160px;max-width:min(220px,78vw)}.payment-timeline-vertical{gap:8px}.timeline-row{grid-template-columns:46px 28px minmax(0,1fr);gap:8px}.timeline-date span{font-size:.58rem}.timeline-date strong{font-size:.9rem}.timeline-rail{min-height:76px}.timeline-card{min-height:64px;padding:9px 10px}.timeline-card strong{font-size:.84rem}.timeline-card>span,.timeline-card small,.timeline-card em{font-size:.68rem}.future-panel{flex-direction:column;align-items:flex-start}.future-panel>strong{white-space:normal}.tax-breakdown,.avatar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-chip{display:none}.section-title h1{font-size:clamp(.9rem,4vw,1.05rem)}.section-title p,.panel-header p{font-size:.68rem}.bottom-nav{z-index:20;min-height:68px;padding:8px 8px max(8px, env(safe-area-inset-bottom));box-sizing:border-box;background:linear-gradient(180deg, #041222f5, #030e1cfc), var(--ink);grid-template-columns:repeat(5,1fr);gap:4px;display:grid;position:fixed;inset:auto 0 0;box-shadow:0 -18px 40px #030e1c33}.bottom-nav button{color:#ffffffa6;background:0 0;border:0;border-radius:8px;place-items:center;gap:4px;font-size:.64rem;font-weight:800;display:grid}.bottom-nav svg{font-size:.88rem}.bottom-nav button.active{color:var(--mint);background:#ffffff14}}@media (width<=520px){.workspace{padding-inline:12px}.metric-grid{grid-template-columns:1fr}.metric-card{grid-template-columns:auto minmax(0,1fr);align-items:center;min-height:112px}.rank-main>div:first-child,.summary-strip{flex-direction:column;align-items:flex-start}.expense-rank{grid-template-columns:auto minmax(0,1fr)}.expense-rank em{grid-column:2}.tax-preview,.tax-breakdown,.avatar-grid{grid-template-columns:1fr}.avatar-grid-modal{grid-template-columns:repeat(2,minmax(0,1fr))}.avatar-grid-modal button{min-height:96px}}
