:root{--navy:#071a3d;--navy-2:#0b2b63;--blue:#087ee5;--blue-2:#176bff;--cyan:#18c7e8;--ink:#10213c;--muted:#687792;--muted-2:#8996aa;--bg:#f3f7fc;--surface:#fff;--soft:#f7faff;--line:#e2e9f3;--line-strong:#ced9e8;--green:#118967;--green-soft:#e7f7f2;--amber:#a86712;--amber-soft:#fff5e3;--red:#bc4053;--red-soft:#fff0f2;--violet:#6559cf;--violet-soft:#f0efff;--shadow:0 8px 26px #112d550e;--shadow-up:0 18px 48px #112d551a;--radius:16px;--focus:0 0 0 4px #087ee52e}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{color:var(--ink);background:linear-gradient(#f7faff 0,#f2f6fb 440px);margin:0;font-family:Inter,Avenir,Segoe UI,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.55}button,input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}img,svg{max-width:100%}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{color:var(--navy);font-family:inherit;line-height:1.18}h1{letter-spacing:-.045em;margin-bottom:5px;font-size:clamp(1.65rem,3vw,2.25rem)}h2{letter-spacing:-.02em;margin-bottom:5px;font-size:1.06rem}h3{margin-bottom:4px;font-size:.94rem}small,.page-subtitle,.section-description,.form-hint{color:var(--muted)}:focus-visible{box-shadow:var(--focus);outline:0}.shell{min-height:100vh}.topbar{z-index:40;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;height:66px;position:sticky;top:0}.topbar__inner{align-items:center;gap:clamp(20px,4vw,48px);width:min(1380px,100%);height:100%;margin:auto;padding:0 clamp(18px,3vw,42px);display:flex}.brand-lockup{flex:none;align-items:center;display:flex}.brand-name,.login-wordmark{letter-spacing:-.06em;color:var(--navy);font-size:1.45rem;font-weight:850}.desktop-nav{flex:1;align-items:center;gap:4px;display:flex}.nav-link{color:#5d6b82;white-space:nowrap;border-radius:10px;align-items:center;gap:7px;min-height:38px;padding:8px 11px;font-weight:650;display:flex;position:relative}.nav-link:hover{color:var(--navy);background:#f2f7fd}.nav-link[aria-current=page]{color:var(--blue);background:#eaf4ff}.nav-icon{text-align:center;width:16px;font-size:.9rem}.topbar__actions{align-items:center;gap:8px;display:flex}.quick-add,.notification-button{border:1px solid var(--line);width:36px;height:36px;color:var(--navy);background:#fff;border-radius:10px;place-items:center;font-weight:800;display:grid;position:relative}.quick-add{background:var(--navy);color:#fff;border-color:var(--navy);font-size:1.2rem}.notification-count{background:var(--red);color:#fff;border:2px solid #fff;border-radius:99px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.62rem;display:grid;position:absolute;top:-6px;right:-5px}.user-menu{position:relative}.user-menu summary{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:11px;align-items:center;gap:8px;min-height:38px;padding:4px 8px 4px 5px;font-weight:700;list-style:none;display:flex}.user-menu summary::-webkit-details-marker{display:none}.user-menu__panel{border:1px solid var(--line);width:250px;box-shadow:var(--shadow-up);background:#fff;border-radius:14px;padding:10px;position:absolute;top:48px;right:0}.user-menu__panel p{border-bottom:1px solid var(--line);margin:0 0 6px;padding:8px 10px 10px}.user-menu__panel p small,.user-menu__panel p strong{display:block}.user-menu__panel .nav-link{min-height:36px;padding:7px 9px}.logout{width:100%;color:var(--red);text-align:left;cursor:pointer;background:0 0;border:0;padding:9px;font-weight:700}.bottom-nav{display:none}.avatar{color:var(--navy-2);background:linear-gradient(145deg,#e4f1ff,#d9eff9);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.avatar--small{width:28px;height:28px;font-size:.68rem}.avatar--medium{width:38px;height:38px}.avatar--large{width:58px;height:58px}.shell>main{width:min(1280px,100%);margin:0 auto;padding:30px clamp(18px,3.5vw,44px) 70px}.page-header,header:not(.topbar){justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;display:flex}.page-header p,header:not(.topbar) p{margin-bottom:0}.eyebrow{color:var(--blue);letter-spacing:.1em;text-transform:uppercase;margin:0 0 3px;font-size:.68rem;font-weight:800}.header-actions,.hero-actions,.quick-actions,.form-actions,.filters,.payment{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.button,button,.button-link{cursor:pointer;border:1px solid #0000;border-radius:10px;min-height:40px;padding:9px 14px;font-size:.84rem;font-weight:750}.button,.button--primary{background:linear-gradient(135deg,var(--blue-2),var(--blue));color:#fff;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 6px 14px #087ee526}.button--secondary{color:var(--navy);border-color:var(--line-strong);box-shadow:none;background:#fff}.button--quiet{color:var(--blue);box-shadow:none;background:0 0}.button--danger,.danger{background:var(--red-soft);color:var(--red);box-shadow:none;border-color:#f1c3ca}.icon-button{border:1px solid var(--line);background:#fff;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.text-link,.link{color:var(--blue);font-weight:750}.positive{color:var(--green)!important}.negative{color:var(--red)!important}button:disabled{opacity:.55;cursor:not-allowed}.card,.panel,.debt,.card-surface,.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel,.card-surface{padding:19px}.section-block{margin-top:18px}.section-heading,.panel-head,.row{justify-content:space-between;align-items:center;gap:14px;display:flex}.section-heading{margin-bottom:13px}.section-heading h2,.section-heading p{margin-bottom:0}.cards,.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.grid-2{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:16px;display:grid}.stat-card{min-width:0;padding:18px 19px;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--blue);width:3px;position:absolute;top:0;bottom:0;left:0}.stat-card--cyan:before{background:var(--cyan)}.stat-card--violet:before{background:var(--violet)}.stat-card--green:before{background:var(--green)}.stat-card--amber:before{background:#e5a337}.stat-label{color:var(--muted);font-size:.76rem;font-weight:700;display:block}.stat-value,.metric,.card strong{color:var(--navy);letter-spacing:-.045em;margin-top:7px;font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.1;display:block}.stat-detail{color:var(--muted);margin-top:6px;font-size:.72rem;display:block}.badge{border-radius:99px;padding:4px 8px;font-size:.66rem;font-weight:800;display:inline-flex}.badge--blue,.badge--cyan{color:#0871c8;background:#e7f4ff}.badge--green{background:var(--green-soft);color:var(--green)}.badge--violet{background:var(--violet-soft);color:var(--violet)}.badge--amber{background:var(--amber-soft);color:var(--amber)}.badge--red,.badge.high,.badge.urgent{background:var(--red-soft);color:var(--red)}.badge--neutral{color:var(--muted);background:#eef2f6}.list{display:grid}.row{border-top:1px solid var(--line);min-width:0;padding:12px 0}.row:first-child{border-top:0}.row>div:first-child{flex:1;min-width:0}.row small,.row>div>strong{display:block}.row>*{overflow-wrap:anywhere;min-width:0}.empty,.empty-state{border:1px dashed var(--line-strong);color:var(--muted);text-align:center;border-radius:12px;padding:24px}.empty-state h3{margin:7px 0}.empty-state p{margin-bottom:10px}.empty-icon{width:36px;height:36px;color:var(--blue);background:#ecf6ff;border-radius:50%;place-items:center;margin:auto;display:grid}.warning,.error,.error-state{border-radius:10px;padding:10px 12px}.warning{background:var(--amber-soft);color:#755019;border:1px solid #f1d7a8}.error,.error-state{background:var(--red-soft);color:#8e3342;border:1px solid #f1c3ca}.muted{opacity:.58}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid label,.field,.login-card label,.filters label{color:#52617a;gap:5px;font-size:.78rem;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--line-strong);width:100%;min-width:0;min-height:40px;color:var(--ink);background:#fff;border-radius:9px;padding:8px 10px;font-size:.84rem}textarea{resize:vertical;min-height:86px}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:var(--focus);outline:0}.form-actions{grid-column:1/-1}.checkbox{align-items:center;display:flex!important}.checkbox input{width:18px;min-height:18px}.filters input,.filters select{max-width:190px}.narrow{max-width:820px}.debt-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.debt{padding:17px}.progress-wrap{margin:12px 0}.progress-label{justify-content:space-between;margin-bottom:5px;font-size:.72rem;display:flex}.progress{background:#e9eef6;border-radius:99px;height:7px;overflow:hidden}.progress i{border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan));height:100%;display:block}.dashboard-primary{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}.dashboard-grid--trajectory{grid-template-columns:minmax(0,1.65fr) minmax(280px,.72fr)}.trajectory__summary{gap:34px;display:flex}.trajectory__summary span{color:var(--muted);font-size:.72rem;display:block}.trajectory__summary strong{font-size:1.25rem}.trajectory__axis{color:var(--muted-2);justify-content:space-between;font-size:.67rem;display:flex}.brief-list{margin-top:12px;display:grid}.brief-list>div{border-top:1px solid var(--line);justify-content:space-between;padding:9px 0;display:flex}.brief-list span{color:var(--muted)}.month-switcher{grid-template-columns:36px 1fr 36px;align-items:center;gap:7px;margin-top:10px;display:grid}.month-switcher>a,.month-switcher>span{border:1px solid var(--line);border-radius:9px;place-items:center;height:36px;display:grid}.month-switcher input{height:36px;min-height:36px}.event-list,.goal-list{display:grid}.event-item{border-top:1px solid var(--line);grid-template-columns:48px 8px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;display:grid}.event-item:first-child{border-top:0}.event-item time{color:var(--muted);font-size:.72rem}.event-item small{display:block}.event-item b{font-size:.8rem}.event-dot{background:var(--blue);border-radius:50%;width:7px;height:7px}.event-dot--income{background:var(--green)}.event-dot--debt{background:#e5a337}.goal-item{border-top:1px solid var(--line);padding:9px 0}.goal-item:first-child{border-top:0}.goal-item small{display:block}.goal-item .progress-wrap{margin:7px 0}.advice{background:linear-gradient(145deg,#f7fbff,#fff)}.advice--positive{border-color:#cdebe1}.advice--caution{border-color:#f0d7a9}.recent-card{margin-top:14px}.calendar-shell{padding:16px}.calendar-toolbar{grid-template-columns:36px auto 36px 1fr;align-items:center;gap:10px;display:grid}.calendar-toolbar h2,.calendar-toolbar p{margin:0}.calendar-arrow{border:1px solid var(--line);width:36px;height:36px;color:var(--navy);background:#fff;border-radius:9px;place-items:center;font-weight:800;display:grid}.calendar-filters{justify-content:flex-end;gap:8px;display:flex}.calendar-filters input{max-width:155px}.calendar-filters select{max-width:205px}.calendar-legend{color:var(--muted);justify-content:flex-end;gap:18px;margin:11px 0 8px;font-size:.68rem;display:flex}.calendar-legend span{align-items:center;gap:5px;display:flex}.legend-dot{background:var(--blue);border-radius:50%;width:7px;height:7px}.legend-dot--income{background:var(--green)}.legend-dot--debt{background:#e5a337}.calendar-grid{border-left:1px solid var(--line);border-top:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekday{border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);text-align:center;background:#f8fafd;padding:7px;font-size:.68rem;font-weight:800}.calendar-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;min-height:92px;padding:7px;position:relative;overflow:hidden}.calendar-day>strong{border-radius:7px;place-items:center;width:23px;height:23px;font-size:.72rem;display:grid}.calendar-day--today>strong{background:var(--navy);color:#fff}.calendar-events{gap:3px;margin-top:4px;display:grid}.calendar-event{color:#24659f;white-space:nowrap;background:#edf5ff;border-radius:5px;align-items:center;gap:4px;min-width:0;padding:3px 5px;font-size:.59rem;line-height:1.25;display:flex;overflow:hidden}.calendar-event i{background:currentColor;border-radius:50%;flex:none;width:5px;height:5px}.calendar-event b{margin-left:auto;font-size:.57rem}.calendar-event--income,.calendar-event--recurring{color:#187b60;background:#e8f7f2}.calendar-event--debt{color:#98651b;background:#fff4df}.calendar-event--transfer{background:var(--violet-soft);color:var(--violet)}.planning-lower{grid-template-columns:1fr 1fr;gap:16px;display:grid}.planning-lower .section-block{min-width:0}.planning-lower>.section-block{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:18px}.timeline{margin:0;padding:0;list-style:none}.timeline-item{grid-template-columns:12px 1fr;gap:11px;padding-bottom:18px;display:grid;position:relative}.timeline-item:not(:last-child):before{content:"";background:var(--line);width:1px;position:absolute;top:10px;bottom:0;left:5px}.timeline-dot{z-index:1;background:var(--blue);border:3px solid #e7f3ff;border-radius:50%;width:11px;height:11px;position:relative}.timeline-dot--green{background:var(--green)}.timeline-dot--amber{background:#e5a337}.notification-item{border:1px solid var(--line);border-radius:11px;gap:11px;padding:13px;display:flex}.notification-item+.notification-item{margin-top:8px}.notification-item--unread{background:#f3f8ff;border-color:#cfe2f8}.notification-dot{background:var(--line-strong);border-radius:50%;width:8px;height:8px;margin-top:5px}.notification-dot--unread{background:var(--blue)}.login{background:radial-gradient(circle at 50% 0,#e7f4ff,transparent 42%),var(--bg);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow-up);background:#fff;border-radius:20px;gap:14px;padding:34px;display:grid}.login-card h1,.login-card>p{text-align:center;margin-bottom:0}.login-wordmark{font-size:1.55rem;font-weight:850;color:var(--navy)!important}.loading,.loading-state{min-height:180px;color:var(--muted);justify-content:center;align-items:center;gap:9px;display:flex}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.8s linear infinite spin}.state-page{max-width:700px;margin:10vh auto;padding:28px}.skeleton{background:#e9eef5;border-radius:6px;height:1rem;display:block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:1050px){.desktop-nav .nav-link{padding-inline:8px}.nav-icon,.user-menu summary>span:not(.avatar){display:none}.dashboard-grid--trajectory{grid-template-columns:1.35fr .75fr}.shell>main{padding-inline:24px}}@media (max-width:800px){body{padding-bottom:68px}.topbar{height:58px}.topbar__inner{padding:0 15px}.desktop-nav,.user-menu summary>span,.notification-button{display:none}.topbar__actions{margin-left:auto}.user-menu summary{border:0;padding:3px}.user-menu__panel{top:43px;right:-4px}.bottom-nav{z-index:50;height:66px;padding:6px 5px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff7;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav .nav-link{flex-direction:column;justify-content:center;gap:1px;min-width:0;padding:4px 2px;font-size:.61rem}.bottom-nav .nav-icon{font-size:.95rem;display:block}.bottom-nav .nav-link:nth-child(3){background:var(--navy);color:#fff;border-radius:50%;width:46px;height:46px;margin:-13px auto 0;font-size:0;box-shadow:0 8px 20px #071a3d38}.bottom-nav .nav-link:nth-child(3) .nav-icon{font-size:1.2rem}.shell>main{padding:22px 14px 28px}.page-header,header:not(.topbar){align-items:flex-start;margin-bottom:16px}.page-subtitle{font-size:.8rem}.dashboard-primary{grid-template-columns:1fr}.dashboard-primary .stat-card{padding:16px}.dashboard-grid,.dashboard-grid--trajectory,.planning-lower,.grid-2,.debt-grid,.cards,.grid-3{grid-template-columns:1fr}.calendar-toolbar{grid-template-columns:34px 1fr 34px}.calendar-filters{grid-column:1/-1;justify-content:stretch}.calendar-filters>*{flex:1}.calendar-legend{justify-content:flex-start;overflow:auto}:is(.calendar-weekday,.calendar-day:not(:has(.calendar-event))){display:none}.calendar-grid{border:0;grid-template-columns:1fr;gap:8px;display:grid}.calendar-shell{overflow:visible}.calendar-day{border:1px solid var(--line);background:var(--soft);border-radius:10px;grid-template-columns:32px minmax(0,1fr);align-items:start;min-height:0;padding:8px;display:grid;overflow:visible}.calendar-day>strong{grid-row:1}.calendar-events{grid-column:2;margin-top:0}.calendar-event{white-space:normal;padding:5px 7px;font-size:.68rem;overflow:visible}.calendar-event b{font-size:.66rem}.form-grid{grid-template-columns:1fr}.form-actions{grid-column:auto}.row{flex-wrap:wrap;align-items:flex-start}.event-item{grid-template-columns:42px 7px minmax(0,1fr)}.event-item>b{grid-column:3}.trajectory-card{min-height:0}.trajectory svg{height:130px}}@media (max-width:430px){.header-actions .button--secondary{display:none}.page-header h1{font-size:1.55rem}.panel,.card-surface{padding:15px}.stat-value,.metric,.card strong{font-size:1.45rem}.section-heading{align-items:flex-start}.section-heading>.text-link{font-size:.72rem}.login-card{padding:26px 20px}}.brand-logo{object-fit:cover;border-radius:11px;width:42px;height:42px;display:block;box-shadow:0 3px 12px #071a3d29}.nav-icon,.quick-add svg,.notification-button svg,.menu-chevron{flex:none;width:17px;height:17px;display:block}.menu-chevron{width:14px;height:14px}.quick-add svg{width:18px;height:18px}.user-menu__panel{max-height:calc(100vh - 80px);overflow-y:auto}.stat-action{margin-top:8px}.stat-link{color:var(--blue);font-size:.7rem;font-weight:750}.trajectory-card{min-height:0}.trajectory svg{width:100%;height:auto;margin-top:6px;display:block;overflow:visible}.trajectory__gridline{stroke:#dfe7f1;stroke-width:1px}.trajectory__scale,.trajectory__date{fill:var(--muted);font-family:inherit;font-size:13px}.trajectory__point{fill:#fff;stroke:var(--blue);stroke-width:2.5px}.trajectory__mobile-legend{display:none}.calendar-day{min-height:100px;overflow:visible}.calendar-event{white-space:normal;grid-template-columns:5px minmax(0,1fr) auto;align-items:start;gap:4px;padding:4px 5px;font-size:.61rem;line-height:1.3;display:grid;overflow:visible}.calendar-event i{margin-top:3px}.calendar-event__title{overflow-wrap:anywhere;min-width:0}.calendar-event b{white-space:nowrap;margin-left:2px;font-size:.59rem}.planning-header>.button{white-space:nowrap;flex:none}.login-logo{border-radius:16px;width:min(225px,75%);height:auto;margin:0 auto 2px;display:block}@media (min-width:801px){.calendar-day{min-height:78px;padding:6px}.calendar-events{gap:2px;margin-top:2px}.calendar-event{padding:2px 4px;font-size:.58rem;line-height:1.15}.calendar-event b{font-size:.56rem}}@media (max-width:800px){html{scroll-padding-bottom:90px}body{padding-bottom:0}.user-menu summary>.avatar{display:grid}.user-menu summary>.menu-chevron{display:none}.shell>main{padding-bottom:96px}.dashboard-primary{gap:10px}.dashboard-primary .stat-card{padding:13px 16px}.brand-logo{border-radius:10px;width:38px;height:38px}.calendar-filters{grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;display:grid}.calendar-filters input{grid-area:1/1;max-width:none}.calendar-filters button{white-space:nowrap;grid-area:1/2}.calendar-filters select{grid-area:2/1/auto/-1;max-width:none}.calendar-day{align-self:start;height:auto;min-height:0}.calendar-event{grid-template-columns:5px minmax(0,1fr) auto;font-size:.69rem}.calendar-event b{font-size:.67rem}.trajectory svg{height:auto;min-height:0}.trajectory__scale,.trajectory__date{display:none}.trajectory__mobile-legend{color:var(--muted);gap:2px;margin-top:4px;scroll-margin-bottom:82px;font-size:.7rem;line-height:1.35;display:grid}.planning-header,.dashboard-header{gap:8px}.planning-header>div,.dashboard-header>div:first-child{min-width:0}.planning-header>.button,.dashboard-header .button--primary{white-space:nowrap;flex:none;justify-content:center;align-items:center;min-width:92px;display:inline-flex}}@media (max-width:360px){.planning-header>.button,.dashboard-header .button--primary{min-width:90px;padding-inline:11px}.dashboard-header h1{font-size:1.35rem}}
