/* FYNIA V4.2 — camada única de acabamento e consistência */
:root{
 color-scheme:only light;
 --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:48px;
 --text-caption:11px;--text-body:14px;--text-subtitle:16px;--text-card:18px;--text-h2:24px;--text-h1:clamp(28px,3vw,40px);
 --control-height:44px;--control-radius:12px;--card-radius:18px;--card-shadow:0 8px 28px rgba(12,66,48,.07);--topbar:68px;
}
html{scroll-behavior:auto;overflow-x:hidden;-webkit-text-size-adjust:100%;touch-action:pan-x pan-y}
body{font-size:var(--text-body);line-height:1.5;overscroll-behavior-x:none}
h1,.content-heading h1,.dashboard-heading h1{font-size:var(--text-h1);line-height:1.12;letter-spacing:-.035em}
h2,.panel-head h2{font-size:var(--text-card);line-height:1.3;letter-spacing:-.015em}
h3{font-size:var(--text-subtitle);line-height:1.35}
p,td,th,input,select,textarea,button,.file-button{font-size:var(--text-body)}
small,.footnote,.field-help{font-size:var(--text-caption);line-height:1.45}

button,.file-button{min-width:44px;min-height:var(--control-height);padding:10px var(--space-4);border-radius:var(--control-radius);font-size:13px;font-weight:750;line-height:1.2;transition:transform .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,opacity .16s ease}
button:hover,.file-button:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(11,90,61,.09)}
button:active,.file-button:active{transform:scale(.98)}
.text-button,.metric-action{min-height:44px;padding-inline:12px}
.icon-button,.menu-toggle,.value-toggle,.avatar{width:44px;height:44px;min-height:44px;padding:0}
.is-loading{position:relative;color:transparent!important;pointer-events:none}
.is-loading:after{content:"";position:absolute;width:17px;height:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;color:var(--green-600);animation:fynia-spin .65s linear infinite}
@keyframes fynia-spin{to{transform:rotate(360deg)}}

.topbar{height:var(--topbar);padding-inline:var(--space-5);box-shadow:0 4px 18px rgba(6,54,40,.055);border-color:rgba(214,228,221,.9)}
.topbar-left,.topbar-actions{gap:var(--space-2)}
.account-control{position:relative}
.account-menu{position:absolute;z-index:120;top:calc(100% + 10px);right:0;width:min(290px,calc(100vw - 24px));padding:var(--space-2);border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 20px 55px rgba(2,45,33,.2);color:var(--ink)}
.account-menu:before{content:"";position:absolute;right:14px;top:-6px;width:11px;height:11px;border:1px solid var(--line);border-right:0;border-bottom:0;background:var(--surface);transform:rotate(45deg)}
.account-menu>button{width:100%;justify-content:flex-start;border-color:transparent;background:transparent;box-shadow:none}
.account-menu>button:hover{background:var(--green-50)}
.account-menu .account-signout{color:var(--red)}
.account-menu hr{margin:var(--space-2);border:0;border-top:1px solid var(--line)}
.account-summary{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-3)}
.account-summary .mini{width:36px;height:36px;min-height:36px;font-size:13px;flex:none}
.account-summary strong,.account-summary small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-summary small{max-width:190px;color:var(--muted)}

.panel,.metric,.insight-card,.subscription-card,.goal-card,.budget-row,.card-card,.asset-card{border:1px solid var(--line);border-radius:var(--card-radius);box-shadow:var(--card-shadow)}
.panel{padding:var(--space-5)}
.panel-head{gap:var(--space-4);margin-bottom:var(--space-4)}
.metric{min-height:145px;padding:var(--space-4)}
.metric-label{font-size:12px}.metric>small{font-size:var(--text-caption)}

input,select,textarea{min-width:0;min-height:var(--control-height);padding:10px 12px;border-radius:var(--control-radius);font-size:var(--text-body);font-weight:600;opacity:1}
textarea{min-height:88px}
label{min-width:0}label>span{font-size:var(--text-caption)}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.form-grid>label,.form-grid>div{min-width:0}
#formFields{gap:var(--space-3)}
.dialog-footer{gap:var(--space-2)}

.category-cell,.account-cell{display:inline-flex;align-items:center;gap:8px;min-width:0}
.category-mark{display:inline-grid;place-items:center;width:28px;height:28px;flex:none;border-radius:9px;background:var(--green-50);color:var(--green-700)}
.category-mark svg{width:17px;height:17px}
.category-dot .category-mark{width:32px;height:32px}
.bank-logo{display:grid;place-items:center;width:30px;height:30px;flex:none;border:1px solid var(--line-2);border-radius:9px;background:#fff;overflow:hidden}
.bank-logo img{width:23px;height:23px;object-fit:contain}
.account-cell small{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}

#navigation{gap:2px}
.nav-group{margin:12px 10px 5px;padding-top:9px;border-top:1px solid rgba(255,255,255,.07)}
.nav-group:first-child{margin-top:0;padding-top:0;border-top:0}
#navigation a{min-height:44px;padding:9px 11px;font-size:13px}

.mobile-bottom-nav a>span svg,.mobile-bottom-nav button>span svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.mobile-bottom-nav a,.mobile-bottom-nav button{min-width:44px;min-height:44px}
.mobile-bottom-nav a.active>span{transform:scale(1.14);filter:drop-shadow(0 3px 5px rgba(14,137,88,.2))}
.mobile-bottom-nav a>span{transition:transform .18s ease}

@media(max-width:760px){
 :root{--topbar:60px;--text-h1:28px;--text-h2:21px;--text-card:17px}
 body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
 .topbar{padding-inline:var(--space-3)}
 .mobile-brand img{width:25px}.mobile-brand strong{font-size:14px}
 .mobile-sync{max-width:74px}.topbar-actions{gap:4px}
 .value-toggle,.avatar,.menu-toggle{width:44px;height:44px;min-height:44px}
 main{padding:var(--space-4) var(--space-3) var(--space-5)}
 #content{gap:var(--space-4)}
 .panel{padding:var(--space-4)}
 .content-heading,.dashboard-heading{gap:var(--space-3)}
 .content-heading h1,.dashboard-heading h1{font-size:var(--text-h1)}
 .form-grid,.onboarding-grid{grid-template-columns:minmax(0,1fr)}
 .form-grid>label,.form-grid>div{width:100%}
 dialog{width:min(100% - 16px,680px);max-height:calc(100dvh - 16px);border-radius:18px}
 dialog form,#openFinanceModal>div{padding:var(--space-4)}
 .dialog-footer{bottom:calc(-1 * var(--space-4));margin-inline:calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom))}
 .mobile-bottom-nav{height:calc(66px + env(safe-area-inset-bottom));padding:5px max(6px,env(safe-area-inset-left)) env(safe-area-inset-bottom);grid-template-columns:repeat(5,minmax(44px,1fr))}
 .mobile-bottom-nav a,.mobile-bottom-nav button{min-height:56px;font-size:10px;gap:3px}
 .mobile-bottom-nav small{font-size:10px}
 .mobile-bottom-nav a.active{color:var(--green-600);font-weight:850}
 .responsive-table.table-mode-cards td{grid-template-columns:92px minmax(0,1fr);min-height:44px;gap:8px}
 .responsive-table.table-mode-cards td .account-cell{justify-self:end;max-width:100%}
 .account-menu{position:fixed;top:calc(var(--topbar) - 2px);right:8px}
}

@media(max-width:374px){
 main{padding-inline:8px}.topbar{padding-inline:8px}.mobile-brand strong{display:none}.mobile-sync{display:none}
 .panel,.metric{padding:12px}.dashboard-six{grid-template-columns:1fr}.metric{min-height:126px}
 .heading-buttons{flex-direction:column}.dialog-footer{flex-wrap:wrap}.dialog-footer button{flex:1 1 120px}
}

@media(max-height:500px) and (orientation:landscape) and (max-width:1000px){
 .topbar{position:sticky}.sidebar{padding-block:14px}.brand{height:36px}.brand img{max-height:34px}.brand-slogan{margin-bottom:10px}.month-label{margin-bottom:8px}.nav-group{margin-top:5px;padding-top:4px}#navigation a{min-height:40px}
}


@media(prefers-reduced-motion:reduce){.is-loading:after{animation-duration:1.4s}}
