/* Conta e membros: usa os tokens do tema GFinance (theme.css). Sem estilos inline (CSP style-src 'self'). */
.account-page{margin:0;min-height:100vh;background:var(--color-bg);color:var(--color-text-main);font-family:system-ui,sans-serif}
.account-main{max-width:760px;margin:5vh auto;padding:32px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:var(--shadow-md);box-sizing:border-box}
.account-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}
.account-brand{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:inherit;text-decoration:none}
.account-brand img{width:28px;height:28px}
.account-main label,.members-panel label{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.account-main input,.account-main select,.account-main button,.members-panel input,.members-panel select,.members-panel button{font:inherit;padding:10px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-main)}
.account-main button,.members-panel button{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary);cursor:pointer}
.account-main button:hover,.members-panel button:hover{background:var(--color-primary-hover)}
.account-main a,.members-panel a{color:var(--color-primary)}
.account-main p{line-height:1.5}
.account-main [hidden]{display:none!important}
.form{display:flex;flex-direction:column;gap:14px;max-width:420px}
.form label{flex-direction:column;align-items:stretch;gap:4px}
.msg{min-height:1.5em;margin:0}
.error{color:var(--color-danger)}
.social{display:flex;flex-direction:column;gap:8px;max-width:420px}
a.button{display:block;text-align:center;padding:10px;border:1px solid var(--color-border);border-radius:6px;text-decoration:none;background:var(--color-surface)}
.members-panel{padding:clamp(16px,3vw,32px);width:100%;max-width:1120px;margin-inline:auto;min-width:0}
.members-panel ul{padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.security-section,.identities,.invites,.members{margin-top:16px}
.members-panel .members-section{min-width:0}
.members-panel h2{font-size:1.25rem;line-height:1.4;margin:0 0 16px;letter-spacing:-.02em}
.members-panel h3{font-size:1rem;line-height:1.5;margin:24px 0 12px}
.members-panel .members-description,.member-email{color:var(--color-text-muted);font-size:.875rem;line-height:1.6;font-weight:400;overflow-wrap:anywhere}
.members-panel .members-description{margin:0}
.members-panel .member-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.member-identity{display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere}
.member-identity strong{font-weight:600}
.member-controls{display:flex;align-items:flex-end;gap:12px;flex-shrink:0}
.members-panel .member-controls label{display:flex;flex-direction:column;align-items:stretch;gap:6px;font-size:.8rem;color:var(--color-text-muted)}
.member-role{padding:6px 12px;border-radius:var(--radius-full);background:var(--color-surface-muted);color:var(--color-text-main);font-size:.875rem}
.members-settings{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:32px;margin-top:32px;padding-top:32px;border-top:1px solid var(--color-border)}
.members-panel .form{max-width:none;gap:16px}
.members-panel .form label{align-items:stretch;gap:8px;font-size:.875rem;font-weight:600}
.members-panel input,.members-panel select,.members-panel button{min-height:44px;max-width:100%;font-size:1rem;border-radius:var(--radius-md)}
.members-panel input,.members-panel select{min-width:0;background:var(--color-bg);width:100%}
.members-panel button{padding:10px 16px;font-weight:600;transition:background var(--transition-fast)}
.members-panel .form button{align-self:flex-start}
.members-panel .member-danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-border)}
.members-panel .member-danger:hover{background:var(--color-danger-bg);border-color:var(--color-danger)}
.members-panel :is(input,select,button,a):focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}
.members-panel button:disabled{opacity:.65;cursor:wait}
.members-panel .msg{min-height:0;overflow-wrap:anywhere}
.members-panel .msg:not(:empty){margin-top:16px;padding:12px;border-radius:var(--radius-md);background:var(--color-info-bg)}
.members-panel .msg.error:not(:empty){background:var(--color-danger-bg)}
.members-panel .msg input{display:block;margin-top:12px}
.account-page .security-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--color-border);min-width:0;overflow-wrap:anywhere}
.account-page .security-section h2{font-size:1.25rem;line-height:1.4;margin-bottom:16px}
.account-page .security-section h3{font-size:1rem;line-height:1.5;margin:24px 0 12px}
.account-page .security-section p{margin-bottom:16px;color:var(--color-text-muted)}
.account-page .security-section button{min-height:44px}
.account-page .security-section .identities{list-style:none;padding:0}
.account-page .security-section .identities li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-block:12px}
.account-page .recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;list-style:none;padding:16px 0}
@media(max-width:767px){
  .members-settings{grid-template-columns:minmax(0,1fr);gap:28px;margin-top:24px;padding-top:24px}
  .members-panel .member-row{align-items:stretch;flex-direction:column}
  .member-controls{flex-wrap:wrap;align-items:flex-end}
  .member-controls label{flex:1;min-width:140px}
  .member-role{align-self:flex-start}
  .members-panel .member-row > button{align-self:flex-start}
  .members-panel .form button{width:100%}
}
@media(prefers-reduced-motion:reduce){.members-panel button{transition:none}}
@media(max-width:600px){.account-main{margin:0;border-radius:0;border-width:0;padding:24px;min-height:100vh}}

/* GFinance identity: private suite, account, invitations and security. */
html[data-theme] .app-layout { background: var(--color-bg); }
html[data-theme] .sidebar { background: var(--color-sidebar); border-color: var(--color-border); }
html[data-theme] .brand h2, html[data-theme] .brand-mobile { color: var(--color-text-main); }
html[data-theme] .brand { gap: var(--space-sm); padding: var(--space-md); }
html[data-theme] .brand-avatar { width: 36px; height: 36px; border-radius: var(--radius-sm); }
html[data-theme] .brand-sub { font-size: .6875rem; }
html[data-theme] .version-chip { padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--color-sidebar-text); font-size: .6875rem; font-weight: 500; letter-spacing: 0; }
html[data-theme] :is(.nav-item,.nav-item-label) { color: var(--color-sidebar-text); }
html[data-theme] .nav-item { border-radius: 8px; }
html[data-theme] .nav-item:hover { background: var(--color-primary-subtle); color: var(--color-text-main); }
html[data-theme] .nav-item.active { background: var(--color-primary); color: var(--color-primary-contrast); }
html[data-theme] .nav-item.active :is(.nav-item-label,.nav-item-icon) { color: inherit; }
html[data-theme] .nav-item:focus-visible { outline-color: var(--color-sidebar-text); }
html[data-theme] .nav-item { text-decoration: none; }
html[data-theme] .nav-wrapper { min-height: 0; gap: var(--space-md); overscroll-behavior: contain; }
html[data-theme] .nav-group { gap: var(--space-xs); }
html[data-theme] .nav-group-label { margin-bottom: 0; font-size: .75rem; font-weight: 600; letter-spacing: .02em; text-transform: none; }
html[data-theme] .nav-group-secondary { margin-top: var(--space-xs); padding-top: var(--space-sm); border-top: 1px solid var(--color-sidebar-border); }
html[data-theme] .sidebar-settings-button { display: flex; align-items: center; justify-content: flex-start; gap: var(--space-sm); width: 100%; min-height: 44px; padding: 0 var(--space-sm); border: 0; border-radius: var(--radius-md); background: transparent; color: var(--color-sidebar-text); font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; }
html[data-theme] .sidebar-settings-button:hover, html[data-theme] .sidebar-settings-button:focus-visible, html[data-theme] .sidebar-settings-button[aria-expanded="true"] { background: var(--color-sidebar-surface); color: var(--color-text-main); }
html[data-theme] .sidebar-settings-button:focus-visible { outline: 2px solid var(--color-sidebar-text); outline-offset: 2px; }
html[data-theme] .sidebar-settings-button svg { width: 18px; height: 18px; }
html[data-theme] .sidebar-footer { flex-shrink: 0; }
html[data-theme] .topbar { background: var(--color-bg); border-color: var(--color-border); }
html[data-theme="dark"] .main-content { background-color: var(--color-bg); background-image: radial-gradient(ellipse 72% 27rem at 76% 0%, rgba(98,95,255,.16), transparent 72%), radial-gradient(ellipse 46% 23rem at 27% 0%, rgba(255,125,218,.08), transparent 76%); background-repeat: no-repeat; }
html[data-theme="dark"] .topbar { background-color: color-mix(in srgb, var(--color-bg) 84%, transparent); border-color: color-mix(in srgb, var(--color-border) 78%, transparent); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
html[data-theme] .content-body { max-width: 1440px; margin-inline: auto; }
html[data-theme] .btn-primary, html[data-theme] .btn-pwa-install { background: var(--color-primary); color: var(--color-primary-contrast); border-color: var(--color-primary); border-radius: 9999px; box-shadow: none; }
html[data-theme] button, html[data-theme] .btn { border-radius: 9999px; }
html[data-theme] .dropdown-item { border-radius: var(--radius-md); }
html[data-theme] :is(.theme-choice,.settings-link,.settings-signout,.settings-system-action,.settings-install-action) { border-radius: var(--radius-md); }
html[data-theme] .btn-primary:hover, html[data-theme] .btn-pwa-install:hover { background: var(--color-primary-hover); color: var(--color-primary-contrast); }
html[data-theme] .btn-secondary { background: transparent; border-color: var(--color-border-hover); color: var(--color-text-main); border-radius: 9999px; }
html[data-theme] .btn-ghost { color: var(--color-text-muted); border-radius: 9999px; }
html[data-theme] :is(.account-main,.members-panel) { background: var(--color-surface); border-color: var(--color-border); border-radius: 12px; box-shadow: var(--shadow-sm); }
html[data-theme] .account-page { background: var(--color-bg); }
html[data-theme] .account-main :is(input,select,button), html[data-theme] .members-panel :is(input,select,button) { border-radius: 8px; }
html[data-theme] .account-main button, html[data-theme] .members-panel button { background: var(--color-primary); color: var(--color-primary-contrast); border-color: var(--color-primary); border-radius: 9999px; }
html[data-theme] :is(.member-row,.members-panel input,.members-panel select) { background: var(--color-bg); border-color: var(--color-border); }
html[data-theme] .account-main a, html[data-theme] .members-panel a { color: var(--color-info); }
html[data-theme] .main-content :is(.card,.panel,.stat-card,.dashboard-card,.module-card,.chart-card,.data-card) { box-shadow: var(--shadow-sm); }
html[data-theme] .main-content .finance-home > section { box-shadow: var(--shadow-sm); }
html[data-theme] .finance-home .home-intro { align-items: flex-end; gap: var(--space-xl); padding: var(--space-lg) 0 var(--space-xl); border-bottom: 1px solid color-mix(in srgb, var(--color-border) 76%, transparent); }
html[data-theme] .finance-home .home-intro > div { flex: 1; min-width: 0; }
html[data-theme] .finance-home .home-intro h2 { max-width: 22ch; font-family: Figtree, var(--font-ui); font-size: 2rem; font-weight: 600; line-height: 1.1; letter-spacing: -.035em; text-wrap: balance; }
html[data-theme] .finance-home .home-intro > p { max-width: 52ch; }
html[data-theme] :is(.header-title h1,.account-main h1,.account-main h2) { font-family: Figtree, var(--font-ui); font-weight: 600; line-height: 1.15; letter-spacing: -.02em; }
html[data-theme] :is(.home-section-heading h2,.sheet-title-group h2,.modal-title-group h3,.modal-title,.settings-section-title) { font-family: Figtree, var(--font-ui); font-weight: 600; line-height: 1.2; letter-spacing: -.018em; }
html[data-theme="dark"] :is(.bottom-sheet,.modal-dialog,.modal,.account-main,.members-panel,.main-content .card,.main-content .panel,.main-content .stat-card,.main-content .dashboard-card,.main-content .module-card,.main-content .chart-card,.main-content .data-card,.main-content .finance-home > section) { background-color: var(--color-surface); background-image: radial-gradient(ellipse 92% 48% at 50% 0%, rgba(98,95,255,.085), transparent 74%), radial-gradient(ellipse 62% 32% at 100% 0%, rgba(255,125,218,.035), transparent 78%), linear-gradient(var(--color-surface),var(--color-surface)); }
html[data-theme="dark"] .bottom-sheet .sheet-header { background-color: var(--color-surface); background-image: radial-gradient(ellipse 95% 80% at 50% 0%, rgba(98,95,255,.075), transparent 78%), linear-gradient(var(--color-surface),var(--color-surface)); }
html[data-theme] :is(.header-title h1,.home-intro h2,.home-section-heading h2,.sheet-title-group h2,.modal-title-group h3,.modal-title,.settings-section-title,.account-main h1,.account-main h2) { text-wrap: balance; }
@media (max-width: 767px) {
  html[data-theme] .content-body { padding-inline: clamp(12px,4vw,20px); }
  html[data-theme] .header-title h1 { font-size: clamp(1.1rem,5vw,1.4rem); }
  html[data-theme] .finance-home .home-intro { align-items: flex-start; flex-direction: column; gap: var(--space-sm); padding-block: var(--space-md) var(--space-lg); }
  html[data-theme] .finance-home .home-intro > div { flex: none; width: 100%; }
  html[data-theme] .finance-home .home-intro h2 { font-size: 1.625rem; }
  html[data-theme] .finance-home .home-intro > p { max-width: 64ch; }
  html[data-theme] .bottom-dock { background: var(--color-surface); border-color: var(--color-border-hover); box-shadow: var(--shadow-md); }
}
