.finance-entry{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:#fafaf8;color:#172019;min-height:100svh;display:grid;place-items:center;padding:24px}
.finance-auth-card{width:min(100%,420px);border:1px solid #e5e7e3;border-radius:24px;background:white;padding:28px;box-sizing:border-box}
.finance-entry-loading{padding:0}.finance-app-loading{position:fixed;z-index:40;inset:0;min-height:100svh;display:grid;place-items:center;padding:0;background:#fafaf8}
.finance-loading-spinner{display:inline-grid;place-items:center;line-height:0}.finance-loading-spinner>span{display:block;width:22px;height:22px;box-sizing:border-box;border:2px solid transparent;border-top-color:#087a3e;border-right-color:#087a3e;border-radius:50%;animation:finance-spinner 800ms linear infinite}.finance-loading-spinner.large>span{width:30px;height:30px;border-width:3px}.finance-loading-spinner.button>span{width:17px;height:17px;border-width:2px;border-top-color:currentColor;border-right-color:currentColor}.finance-loading-spinner.button{vertical-align:middle}@keyframes finance-spinner{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.finance-loading-spinner>span{animation-duration:2s}}
.finance-auth-card h1{font-size:26px;letter-spacing:-.025em;margin:12px 0 7px}
.finance-auth-hint{font-size:13px;color:#6c766e;margin:0 0 17px}
.finance-auth-card label{display:grid;gap:6px;margin:14px 0;color:#425047;font-size:13px;font-weight:650}
.finance-auth-card input{box-sizing:border-box;width:100%;background:#fbfcfa;color:#172019;border:1px solid #dfe4df;border-radius:12px;padding:11px 12px;font-size:16px;min-height:44px}
.finance-password-wrap{display:block;position:relative}
.finance-password-wrap input{padding-right:88px}
.finance-password-wrap button{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#087a3e;font-size:12px;font-weight:750;padding:10px;cursor:pointer}
.finance-auth-primary,.finance-auth-other{width:100%;padding:12px 14px;border-radius:12px;font-weight:750;font-size:14px;cursor:pointer;min-height:46px}
.finance-auth-primary{margin-top:12px;border:0;background:#087a3e;color:white}
.finance-auth-other{margin:6px 0;background:#fff;color:#283f30;border:1px solid #dbe4dd}
.finance-auth-primary:disabled,.finance-auth-other:disabled{opacity:.43;cursor:not-allowed}
.finance-auth-link{display:block;border:0;color:#087a3e;background:transparent;font-size:13px;font-weight:750;margin:15px auto 0;cursor:pointer}
.finance-auth-divider{margin:20px 0 11px;border-top:1px solid #e5e9e5;height:7px;text-align:center;font-size:12px;color:#6c766e}
.finance-auth-divider span{position:relative;top:-10px;background:white;padding:0 12px}
.finance-auth-error{font-size:12px;color:#9c3f35}
.finance-auth-success{font-size:12px;color:#087a3e}

/* Auth methods use the existing Rotina visual system in both login and Sistema > Mais. */
.finance-auth-divider{display:flex;align-items:center;gap:13px;height:auto;border:0;margin:19px 0 13px;white-space:nowrap;text-align:center}
.finance-auth-divider:before,.finance-auth-divider:after{content:"";height:1px;background:#e5e9e5;flex:1}
.finance-auth-divider span{position:static;background:transparent;padding:0;font-size:12px;color:#748078}
.finance-google-button{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:0}
.finance-google-button svg{flex:0 0 19px}
.finance-biometric-backdrop{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;background:rgba(10,23,16,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overscroll-behavior:contain;padding:20px;box-sizing:border-box}
.finance-biometric-dialog{width:min(100%,390px);border-radius:24px;border:1px solid #e5e9e5;background:#fff;color:#172019;padding:24px;box-shadow:0 24px 80px #0003;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.finance-biometric-symbol{width:48px;height:48px;border-radius:16px;background:#e5f4e9;color:#087a3e;display:grid;place-items:center;font-size:32px;font-weight:700}
.finance-biometric-symbol img{width:36px;height:36px;display:block;object-fit:contain}
.finance-biometric-dialog h2{font-size:21px;letter-spacing:-.02em;margin:18px 0 8px}
.finance-biometric-dialog p{font-size:14px;color:#647369;line-height:1.5;margin:0 0 18px}
.finance-biometric-never{display:flex;align-items:center;gap:10px;padding:5px 0;margin:0 0 22px;font-size:13px;color:#425047;cursor:pointer}
.finance-biometric-never input{width:17px;height:17px;accent-color:#087a3e}
.finance-biometric-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.finance-biometric-actions button{min-height:45px;border-radius:12px;border:1px solid #dfe7e0;background:#fff;color:#314837;font-weight:750}
.finance-biometric-actions button:last-child{border-color:#087a3e;background:#087a3e;color:#fff}
.finance-biometric-actions button:disabled{opacity:.5;cursor:default}
.finance-access-settings{background:#fff;border:1px solid #e5e7e3;border-radius:20px;padding:18px;margin:12px 0;color:#1c2b21}
.finance-access-settings h3{font-size:15px;margin:0 0 3px}
.finance-access-settings>p{font-size:12px;color:#728076;margin:0 0 13px}
.finance-access-method{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-top:1px solid #edf0ec}
.finance-access-method>div{display:grid;gap:3px;min-width:0}
.finance-access-method strong{font-size:14px;overflow-wrap:anywhere}.finance-access-method>div{flex:1;min-width:0;overflow:hidden}.finance-access-method>div>.finance-fade-text{font-size:14px;max-width:100%}
.finance-access-method small{font-size:12px;color:#77837a}
.finance-access-method button{border:0;background:transparent;color:#087a3e;border-radius:0;min-width:72px;min-height:44px;padding:10px 4px;font-size:13px;font-weight:750;cursor:pointer;touch-action:manipulation}
.finance-access-method button:disabled{opacity:.45;cursor:not-allowed}

.finance-biometric-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.finance-biometric-dialog h2{line-height:1.22}
.finance-biometric-progress{background:#eff8f1;color:#145c32!important;font-size:12px!important;line-height:1.45;padding:10px 12px;border-radius:11px;margin:9px 0!important}
.finance-biometric-dialog .finance-auth-error{margin:10px 0!important;color:#9c3f35!important;font-size:12px!important}
.finance-access-settings .finance-biometric-progress{margin:8px 0 12px!important}
@media(max-width:420px){.finance-biometric-backdrop{padding:12px}.finance-biometric-dialog{padding:19px 17px;max-height:calc(100dvh - 24px)}}

.finance-auto-scan{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;min-height:252px;justify-content:center}
.finance-auto-scan>img{width:52px;height:52px;object-fit:contain;background:#e5f4e9;padding:12px;border-radius:18px;box-sizing:content-box}
.finance-auto-scan h1{margin:8px 0 1px}
.finance-auto-scan .finance-auth-hint{margin:0 0 9px;line-height:1.5}
.finance-auto-scan .finance-auth-other{margin:0;max-width:270px}

.finance-auth-card .finance-auth-check{display:flex;align-items:center;gap:9px;font-size:13px;color:#405347;cursor:pointer;margin:6px 0 2px}
.finance-auth-card .finance-auth-check input{width:17px!important;height:17px!important;min-width:17px;flex:0 0 auto;accent-color:#087a3e;margin:0;padding:0;border-radius:4px}
.finance-auth-card input[type=file]{padding:10px;max-width:100%;font-size:12px;color:#53695b}

/* Cadastro: um menu para avatar e username, com edição inline sem alterar o formulário. */
.finance-register-profile{display:flex;flex-direction:column;align-items:center;gap:3px;margin:12px 0 19px;position:relative}
.finance-auth-card .finance-register-file-input,.finance-settings-profile .finance-register-file-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap;opacity:0;padding:0!important;border:0!important;min-height:0!important}
.finance-register-avatar-readonly{cursor:default;pointer-events:none}.finance-register-avatar-button{width:94px;height:94px;display:grid;place-items:center;position:relative;overflow:hidden;border:1px solid #cce8d3;border-radius:50%;background:#e3f4e8;color:#087a3e;padding:0;touch-action:manipulation;-webkit-touch-callout:none}
.finance-register-profile-trigger{display:flex;flex-direction:column;align-items:center;gap:3px;max-width:100%;border:0;border-radius:10px;background:transparent;color:inherit;padding:0 12px 10px;cursor:pointer;touch-action:manipulation}.finance-register-profile-trigger:focus-visible{outline:3px solid #42996d;outline-offset:3px}.finance-register-profile-readonly{cursor:default;pointer-events:none}
.finance-register-avatar-initial{font-size:43px;font-weight:750;line-height:1;text-transform:uppercase}
.finance-register-avatar-silhouette{display:grid;place-items:center;color:#8a9a8f;line-height:0}
.finance-register-avatar-photo{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
.finance-register-username-display{font:800 17px/1.25 Inter,ui-sans-serif,system-ui,sans-serif;color:#172019;text-decoration:underline;text-decoration-color:#6cab84;text-underline-offset:4px;min-height:28px;box-sizing:border-box;padding:4px 0 0;margin-top:0;overflow-wrap:anywhere;max-width:100%}
.finance-register-username-static{cursor:default;user-select:text;pointer-events:none}
.finance-register-username-static:hover{background:transparent}
.finance-onboarding-card .finance-auth-primary{margin-top:16px}
.finance-onboarding-card .finance-access-settings{margin:12px 0;padding:12px}

/* Reusable A/B reconciliation, rendered only for authorized conflicts. */
.finance-merge-resolver{max-width:700px;width:100%;display:flex;flex-direction:column;gap:12px}
.finance-merge-resolver h2{font-size:20px;margin:0}.finance-merge-resolver p{color:#657269;font-size:13px}

/* Configurações: identidade persistente, convite lado a lado, formulário compacto. */
.finance-settings-stack{display:flex;flex-direction:column;gap:15px;padding-bottom:16px}
.finance-settings-card{background:#fff;border:1px solid #e5e7e3;border-radius:20px;overflow:visible;color:#172019}
.finance-settings-profile{padding:20px 14px 16px;position:relative}
.finance-settings-identity{position:relative;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-items:start;gap:6px}
/* The pair shrinks with the width alone, sized for the longest accepted names (15 characters; an older, longer username
   counts by its length), never for what is written or being typed (FIN-016). */
.finance-settings-identity.inviting{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;container-type:inline-size;--finance-pair-username-size:clamp(9px,calc((100cqi - 10px) / 2 / (var(--finance-pair-chars) * .64)),16px);--finance-pair-name-size:clamp(9px,calc((100cqi - 10px) / 2 / (15 * .58)),13px);--finance-pair-avatar:clamp(56px,calc((100cqi - 10px) / 2 * .62),88px)}
.finance-settings-identity.inviting :is(.finance-settings-owner .finance-register-avatar-button,.finance-settings-guest-avatar){width:var(--finance-pair-avatar);height:var(--finance-pair-avatar)}
.finance-settings-identity.inviting :is(.finance-settings-owner .finance-register-avatar-initial,.finance-settings-guest-avatar>span){font-size:calc(var(--finance-pair-avatar) * .42)}
.finance-settings-identity.inviting .finance-settings-guest-avatar>svg{width:calc(var(--finance-pair-avatar) * .52);height:calc(var(--finance-pair-avatar) * .52)}
.finance-settings-identity.inviting .finance-settings-partnership-mark{top:calc(var(--finance-pair-avatar) / 2 + 4px)}
.finance-settings-identity.inviting .finance-register-name-display{font-size:var(--finance-pair-name-size)}
.finance-settings-owner,.finance-settings-guest{min-width:0;width:100%;display:flex;flex-direction:column;align-items:center}
.finance-settings-owner .finance-register-profile{margin:4px 0 8px;min-width:0;width:100%}
.finance-settings-owner .finance-register-avatar-button{width:88px;height:88px}.finance-settings-owner .finance-register-avatar-button:has(.finance-register-avatar-photo){padding:0;background:#fff;border:2px solid #fff;box-shadow:0 0 0 1px #dce2dc}
.finance-settings-owner .finance-register-avatar-initial{font-size:39px}
.finance-settings-owner .finance-register-username-display{font-size:16px}
.finance-settings-identity.inviting .finance-register-username-display{box-sizing:border-box;max-width:100%;height:44px;min-height:44px;min-width:0;margin:0;padding:10px 0;font:800 var(--finance-pair-username-size)/20px Inter,ui-sans-serif,system-ui,sans-serif;text-align:center;white-space:nowrap;overflow-wrap:normal}
.finance-settings-identity.inviting .finance-register-username-display{display:flex;align-items:center;justify-content:center}
.finance-settings-owner .finance-register-avatar-anchor{position:relative;display:grid;place-items:center;width:auto;height:auto}.finance-settings-owner .finance-register-avatar-trailing{top:44px}
.finance-register-avatar-trailing{position:absolute;top:50%;left:calc(100% + 7px);transform:translateY(-50%);z-index:2}
.finance-settings-partner-button{display:grid;place-items:center;width:44px;height:44px;padding:6px;border:0;background:transparent;color:#087a3e;cursor:pointer;touch-action:manipulation}
.finance-settings-partner-button:hover,.finance-settings-partner-button:focus-visible{color:#065d30}
.finance-settings-identity.inviting .finance-settings-partner-button{width:44px;height:44px}
.finance-settings-identity.inviting .finance-settings-partner-button svg{width:24px;height:24px}
.finance-settings-partnership-mark{position:absolute;left:50%;top:48px;transform:translate(-50%,-50%);width:26px;height:26px;display:grid;place-items:center;color:#087a3e;pointer-events:none;z-index:1}.finance-settings-partnership-mark svg{width:100%;height:100%;display:block}.finance-settings-guest{padding-top:4px}
.finance-settings-guest-avatar{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:#eef3ef;border:2px solid #fff;box-shadow:0 0 0 1px #dce2dc;color:#8a9a8f}

.finance-settings-guest-username{position:relative;width:100%;max-width:100%;height:44px;margin-top:3px}
.finance-settings-guest input{box-sizing:border-box;min-width:0;max-width:100%;width:100%;height:44px;min-height:44px;font:800 var(--finance-pair-username-size,16px)/20px Inter,ui-sans-serif,system-ui,sans-serif;border:0;border-radius:0;text-align:center;margin:0;padding:10px 0;background:transparent;color:#172019;caret-color:#087a3e;outline:none;text-decoration:underline;text-decoration-color:#6cab84;text-underline-offset:4px}
.finance-settings-guest input:focus{text-decoration-color:#087a3e;outline:0}
.finance-settings-guest-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;font:800 var(--finance-pair-username-size,16px)/20px Inter,ui-sans-serif,system-ui,sans-serif;color:#777;text-decoration:underline;text-decoration-color:#a5bfae;text-underline-offset:4px}
.finance-settings-invite-actions{display:flex;flex-direction:column;align-items:center;margin-top:14px}
.finance-settings-invite-actions>.finance-settings-invite-buttons{width:100%;max-width:320px}
.finance-settings-invite-cancel{min-height:44px;border-radius:10px;border:1px solid #d6e0d8;background:transparent;color:#536858;font-weight:750}
.finance-settings-invite-primary,.finance-settings-invite-buttons button:last-child:not(:only-child){background:#087a3e;color:#fff;border:1px solid #087a3e;border-radius:10px;min-height:44px;padding:10px 16px;font-weight:750}
.finance-settings-invite-primary:disabled,.finance-settings-invite-buttons button:disabled{opacity:.45}
.finance-settings-invite-confirm{width:100%;background:#f7faf7;border-radius:12px;padding:12px;font-size:13px}
.finance-settings-invite-confirm p{margin:0 0 6px}
.finance-settings-invite-confirm small{display:block;line-height:1.5;color:#647567}
.finance-settings-invite-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.finance-settings-invite-buttons button:first-child{border-radius:10px;border:1px solid #d6e0d8;background:#fff;color:#29392d;min-height:44px}
.finance-settings-feedback{margin:10px 0 0;text-align:center}
.finance-settings-stack .activity-card{margin:0}
.finance-security-password .finance-access-method{margin:0}
.finance-settings-exit{display:grid;justify-items:center;gap:0;margin:0}
.finance-settings-logout{text-align:center;padding:0}
.finance-settings-logout button{padding:6px 16px;border:0;background:transparent;color:#597368;font-weight:750}
.finance-settings-stack .finance-access-settings{margin:0}
/* FIN-013: the simple typing field of the whole system (a card, a payment, Username and Apelido, the password that
   confirms identity, a new password): the label above and one box: 46px, a thin line, 12px corners, the green line on
   focus. It lives here so screens before the app (merging) wear it too; fields with a design of their own keep it. */
.form-field{display:grid;gap:6px;margin:12px 0;color:#425047;font-size:13px;font-weight:650}
:root :is(.form-field>input,.form-field>.finance-password-wrap>input){box-sizing:border-box;width:100%;min-height:46px;margin:0;padding:0 12px;border:1px solid #dfe4df;border-radius:12px;background:#fbfcfa;color:#172019;font:inherit;outline:none}
:root :is(.form-field>input,.form-field>.finance-password-wrap>input):focus{border-color:#9bc8aa!important}
.form-field>input::placeholder{color:#89958d}
/* the password that confirms identity carries the entry's eye, in the box */
:root .form-field>.finance-password-wrap>input{padding-right:46px}
.form-field .finance-password-wrap button{display:grid;place-items:center;right:3px;width:40px;height:40px;padding:0;color:#087a3e}
/* Núcleo FIN-016: the Profile sections follow the filter window: the title centred in capitals like a filter group's,
   each field a row like a filter option (same text), thin rules only between rows, the row's action on the right. */
.finance-settings-stack .finance-access-settings{padding:4px 18px}
.finance-settings-stack .finance-access-settings>h3{margin:10px 4px 4px;text-align:center;font-size:11px;font-weight:800;line-height:normal;letter-spacing:.08em;text-transform:uppercase;color:#173522}
.finance-settings-stack .finance-access-method{box-sizing:border-box;min-height:48px;margin:0;padding:0;border-top:1px solid #edf0ec}
.finance-settings-stack .finance-access-settings>h3+.finance-access-method,.finance-settings-stack .finance-access-settings>h3+.finance-security-password>.finance-access-method:first-child{border-top:0}
.finance-settings-stack .finance-access-method strong,.finance-settings-stack .finance-access-method>div>.finance-fade-text{color:#7a857f;font-size:15px;font-weight:700;line-height:1.25}
.finance-settings-stack .finance-access-method button{padding-right:0;text-align:right}
/* FIN-016: the photo, the username and, right under its line, the nickname as a subtitle: neutral, regular weight,
   touching the line. In a pair the username sits in a 44px box, so the subtitle climbs to its line. */
.finance-register-name-display{box-sizing:border-box;display:block;width:100%;max-width:100%;margin:-4px 0 0;padding:0;overflow:hidden;color:#77837a;font:400 13px/15px Inter,ui-sans-serif,system-ui,sans-serif;text-align:center;white-space:nowrap;text-overflow:ellipsis}
.finance-settings-identity.inviting .finance-register-name-display{margin-top:-14px}
.finance-settings-identity.inviting .finance-settings-guest>.finance-register-name-display{margin-top:-11px}
/* Editar nome: from the last box to the buttons, the same room as from one box to the next (the field margin, the
   label line and its gap: 12 + 16 + 6). */
.sheet-layer>.sheet>form.finance-names-form{padding-bottom:22px}
@media(max-width:410px){.finance-settings-profile{padding:17px 9px}.finance-settings-identity.inviting{gap:3px}.finance-settings-owner .finance-register-avatar-button,.finance-settings-guest-avatar{width:78px;height:78px}.finance-settings-guest label{font-size:10px}.finance-settings-partnership-mark{top:43px;width:24px;height:24px}.finance-settings-owner .finance-register-avatar-trailing{top:39px;left:calc(50% + 44px)}}

.finance-register-avatar-initial.double{font-size:35px;letter-spacing:-.065em}


/* Configurações: única expansão, sem estilos legados de diálogo de reautenticação. */
.finance-settings-auth-backdrop{position:fixed;inset:0;z-index:2147483100;display:grid;place-items:center;padding:16px;background:rgba(11,24,17,.45);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);overscroll-behavior:contain}
.finance-settings-auth-dialog{width:min(100%,350px);box-sizing:border-box;background:#fff;border:1px solid #e4ebe5;border-radius:20px;box-shadow:0 20px 60px rgba(4,27,13,.24);padding:22px;color:#1c2b21}
.finance-settings-auth-dialog h2{font-size:17px;line-height:1.3;font-weight:750;margin:0 0 18px}
.finance-settings-auth-dialog form{display:grid;gap:13px}
.finance-settings-auth-buttons,.finance-settings-expanded-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}
.finance-settings-auth-buttons button,.finance-settings-expanded-actions button{min-height:44px;padding:10px 12px;border-radius:11px;font-size:13px;font-weight:750;cursor:pointer}
.finance-settings-auth-buttons button:first-child,.finance-settings-expanded-actions button:first-child{background:#fff;color:#285339;border:1px solid #d2e2d6}
.finance-settings-auth-buttons button:last-child,.finance-settings-expanded-actions button:last-child{background:#087a3e;color:#fff;border:1px solid #087a3e}
.finance-settings-auth-buttons button:disabled,.finance-settings-expanded-actions button:disabled{opacity:.5;cursor:default}
.finance-settings-expanded{padding:13px 0 6px;display:grid;gap:10px}
.finance-settings-expanded-actions{padding:11px 0 4px}
.finance-settings-stack .finance-settings-invite-buttons{max-width:100%}
@media(max-width:420px){.finance-settings-auth-dialog{padding:19px 17px;border-radius:17px}.finance-settings-auth-backdrop{padding:12px}}

/* Own row: the "never ask" checkbox rule sized every input in its row to 17px. */

.finance-preview-build{margin:8px 0 0;text-align:center;color:#859189;font-size:10px;font-weight:500;letter-spacing:.02em;user-select:text}

/* A selecao por arrasto fica restrita a campos de edicao tambem nas telas de acesso. */
.finance-auth-card,.finance-onboarding-card{-webkit-user-select:none;user-select:none}
.finance-onboarding-card input,.finance-onboarding-card textarea{-webkit-user-select:text;user-select:text}
/* FIN-013: these windows take the launch window's shape: from the bottom, full width, as tall as their content up to its height */
.finance-biometric-backdrop,.finance-settings-auth-backdrop{place-items:end stretch!important;padding:0!important}
.finance-biometric-dialog,.finance-settings-auth-dialog{box-sizing:border-box!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:min(88svh,820px)!important;overflow-y:auto!important;overscroll-behavior:contain;border:0!important;border-radius:24px 24px 0 0!important;padding:22px 18px max(12px,env(safe-area-inset-bottom))!important}
@media(max-width:620px){.finance-biometric-dialog,.finance-settings-auth-dialog{max-height:88dvh!important}}
/* The veil behind these windows keeps the dark theme's light haze in the light theme too. */
html[data-finance-theme="light"] .finance-biometric-backdrop{background:rgba(217,238,227,.45)!important}
html[data-finance-theme="light"] .finance-settings-auth-backdrop{background:rgba(216,237,226,.45)!important}

/* Every button of the system reacts the same way (Núcleo FIN-013), in its own appearance, never with a new layer:
   - a button with a fill or a frame darkens its fill and frame a little (lightens them in the dark theme), more when pressed;
   - a frameless one (an icon or a word on the page) fades its own content a little, more when pressed;
   - on a tap the same reaction plays as a brief flash (pages/_app.js); a disabled button stays still;
   - elements that already react on their own (list rows, the create button, the close X, the card's invoice icon and the
     invoice's and the rows' edit pencils) keep their own reaction and get nothing extra; the carousel cards
     never react, only their Orçamento label does.
   The :not(#__press) lifts these rules above the many local hover and active rules that switched reactions off. */
:root{--press-hover:.93;--press-active:.84;--press-flash-from:.8}
html[data-finance-theme="dark"]{--press-hover:1.14;--press-active:1.3;--press-flash-from:1.4}
@property --press-level{syntax:"<number>";inherits:false;initial-value:1}
@property --press-fade{syntax:"<number>";inherits:false;initial-value:1}
@media (hover:hover){
:is(button,[role="button"],summary,.period-selector):not(:disabled):not([aria-disabled="true"]):not(.entity-row-button,.launch-fab,.finance-close-button,.card-invoice-button,.sheet-title-action,.inline-row-action[aria-label="Editar"],.inline-row-action.tone-edit,.carousel-period-card,.launch-amount-edit,.dre-row,.choice-option,.calendar-day,.calendar-title):not(.topbar-toggle,.period-selector,.bottom-nav button,.dre-toolbar button,.dre-search>button,.icon-action,.launch-timeline-nav button,.launch-more>summary,.invoice-cycle-head button,.finance-register-profile-trigger,.finance-settings-partner-button,.finance-access-method button,.today-period-button,.recurrence-off,.calendar-step,.calendar-today):not(#__press):hover{filter:brightness(var(--press-hover))!important}
:is(button,[role="button"],summary,.period-selector):not(:disabled):not([aria-disabled="true"]):not(.entity-row-button,.launch-fab,.finance-close-button,.card-invoice-button,.sheet-title-action,.inline-row-action[aria-label="Editar"],.inline-row-action.tone-edit,.carousel-period-card,.launch-amount-edit,.dre-row,.choice-option,.calendar-day,.calendar-title):not(.topbar-toggle,.period-selector,.bottom-nav button,.dre-toolbar button,.dre-search>button,.icon-action,.launch-timeline-nav button,.launch-more>summary,.invoice-cycle-head button,.finance-register-profile-trigger,.finance-settings-partner-button,.finance-access-method button,.today-period-button,.recurrence-off,.calendar-step,.calendar-today):not(#__press):active{filter:brightness(var(--press-active))!important}
:is(button,[role="button"],summary,.period-selector):not(:disabled):not([aria-disabled="true"]):not(.entity-row-button,.launch-fab,.finance-close-button,.card-invoice-button,.sheet-title-action,.inline-row-action[aria-label="Editar"],.inline-row-action.tone-edit,.carousel-period-card,.launch-amount-edit,.dre-row,.choice-option,.calendar-day,.calendar-title):is(.topbar-toggle,.period-selector,.bottom-nav button,.dre-toolbar button,.dre-search>button,.icon-action,.launch-timeline-nav button,.launch-more>summary,.invoice-cycle-head button,.finance-register-profile-trigger,.finance-settings-partner-button,.finance-access-method button,.today-period-button,.recurrence-off,.calendar-step,.calendar-today):not(#__press):hover{opacity:.66!important}
:is(button,[role="button"],summary,.period-selector):not(:disabled):not([aria-disabled="true"]):not(.entity-row-button,.launch-fab,.finance-close-button,.card-invoice-button,.sheet-title-action,.inline-row-action[aria-label="Editar"],.inline-row-action.tone-edit,.carousel-period-card,.launch-amount-edit,.dre-row,.choice-option,.calendar-day,.calendar-title):is(.topbar-toggle,.period-selector,.bottom-nav button,.dre-toolbar button,.dre-search>button,.icon-action,.launch-timeline-nav button,.launch-more>summary,.invoice-cycle-head button,.finance-register-profile-trigger,.finance-settings-partner-button,.finance-access-method button,.today-period-button,.recurrence-off,.calendar-step,.calendar-today):not(#__press):active{opacity:.45!important}
}
:is(button,[role="button"],summary,.period-selector):not(:disabled):not([aria-disabled="true"]):not(.entity-row-button,.launch-fab,.finance-close-button,.card-invoice-button,.sheet-title-action,.inline-row-action[aria-label="Editar"],.inline-row-action.tone-edit,.carousel-period-card,.launch-amount-edit,.dre-row,.choice-option,.calendar-day,.calendar-title).press-flash:not(.topbar-toggle,.period-selector,.bottom-nav button,.dre-toolbar button,.dre-search>button,.icon-action,.launch-timeline-nav button,.launch-more>summary,.invoice-cycle-head button,.finance-register-profile-trigger,.finance-settings-partner-button,.finance-access-method button,.today-period-button,.recurrence-off,.calendar-step,.calendar-today):not(#__press){filter:brightness(var(--press-level))!important;animation:press-flash .3s ease-out}
:is(button,[role="button"],summary,.period-selector):not(:disabled):not([aria-disabled="true"]):not(.entity-row-button,.launch-fab,.finance-close-button,.card-invoice-button,.sheet-title-action,.inline-row-action[aria-label="Editar"],.inline-row-action.tone-edit,.carousel-period-card,.launch-amount-edit,.dre-row,.choice-option,.calendar-day,.calendar-title).press-flash:is(.topbar-toggle,.period-selector,.bottom-nav button,.dre-toolbar button,.dre-search>button,.icon-action,.launch-timeline-nav button,.launch-more>summary,.invoice-cycle-head button,.finance-register-profile-trigger,.finance-settings-partner-button,.finance-access-method button,.today-period-button,.recurrence-off,.calendar-step,.calendar-today):not(#__press){opacity:var(--press-fade)!important;animation:press-fade .3s ease-out}
@keyframes press-flash{from{--press-level:var(--press-flash-from)}to{--press-level:1}}
@keyframes press-fade{from{--press-fade:.4}to{--press-fade:1}}
/* The Orçamento label of a carousel card reacts as frameless text, through filter:opacity so the carousel's own opacity
   (it shows only on the centre card) is multiplied, never replaced; the cards themselves stay still. */
@media (hover:hover){
.carousel-period-card .dre-card-toggle:not(#__press):hover{filter:opacity(.66)!important}
.carousel-period-card .dre-card-toggle:not(#__press):active{filter:opacity(.45)!important}
}
.carousel-period-card .dre-card-toggle.press-flash:not(#__press){filter:opacity(var(--press-fade))!important;animation:press-fade .3s ease-out}
/* Light theme: the loading spinner (and the one drawn on a loading carousel card) wears the dark green of the theme (its green would otherwise become ink); inside a
   button it keeps the colour of the button text. */
html[data-finance-theme="light"] .carousel-period-card.pending .forecast-result-panel::before,html[data-finance-theme="light"] .finance-loading-spinner:not(.button)>span{border-top-color:hsl(152 76% 28%)!important;border-right-color:hsl(152 76% 28%)!important}
/* Every field, tapped to open a choice or typed in, reacts like a button: the framed ones darken
   their box, the periodicity of an open recurrence (a word with its icon) fades. */
@media (hover:hover){
:is(.launch-amount-line,.launch-field,.date-field,.installment-date,.card-name-control,.form-field>:is(input,select,textarea),.auth-card input,.invite-card input,.password-box input,.custom-range input,input[type=search],.recurrence-body>select):not(:disabled):not(:has(:disabled)):not(#__press):hover{filter:brightness(var(--press-hover))!important}
:is(.launch-amount-line,.launch-field,.date-field,.installment-date,.card-name-control,.form-field>:is(input,select,textarea),.auth-card input,.invite-card input,.password-box input,.custom-range input,input[type=search],.recurrence-body>select):not(:disabled):not(:has(:disabled)):not(#__press):active{filter:brightness(var(--press-active))!important}
.sheet-layer .recurrence-head:not(:has(.recurrence-off:hover)):hover>:not(.recurrence-off){opacity:.66!important}
.sheet-layer .recurrence-head:not(:has(.recurrence-off:hover)):active>:not(.recurrence-off){opacity:.45!important}
}
:is(.launch-amount-line,.launch-field,.date-field,.installment-date,.card-name-control,.form-field>:is(input,select,textarea),.auth-card input,.invite-card input,.password-box input,.custom-range input,input[type=search],.recurrence-body>select):not(:disabled):not(:has(:disabled)).press-flash:not(#__press){filter:brightness(var(--press-level))!important;animation:press-flash .3s ease-out}
.sheet-layer .recurrence-head.press-flash>:not(.recurrence-off){opacity:var(--press-fade)!important;animation:press-fade .3s ease-out}
/* Touch targets: every target offers at least 44×44. A small button on its own keeps its drawing and gains an invisible
   hit area around it (its ::after, which none of them draws with); buttons side by side (row actions, the selection bar)
   grow for real to 36px with an 8px gap, so each one's 44px area ends where its neighbour's begins. */
:is(.topbar-toggle,.household-trigger,.period-selector,.sheet-title-action,.main-paid-toggle,.installment-paid-toggle,.action-btn,.card-invoice-button,.launch-more>summary,.recurrence-off):not(:is(.main-paid-toggle,.period-selector)):not(#__touch){position:relative}
.finance-card .card-conflict-button:not(#__touch){position:relative}
:is(.topbar-toggle,.household-trigger,.period-selector,.sheet-title-action,.main-paid-toggle,.installment-paid-toggle,.action-btn,.card-invoice-button,.launch-more>summary,.recurrence-off)::after,:is(.inline-row-action,.selection-dock .bulk-icon,.icon-action,.finance-close-button,.dre-toolbar button,.dre-search>button)::after,.finance-merge-row>button.finance-merge-lens::after,.finance-card .card-conflict-button::after{content:"";position:absolute;top:min(0px,calc(50% - 22px));bottom:min(0px,calc(50% - 22px));left:min(0px,calc(50% - 22px));right:min(0px,calc(50% - 22px))}
:is(.inline-row-action,.selection-dock .bulk-icon,.icon-action,.finance-close-button,.dre-toolbar button,.dre-search>button):not(#__touch){position:relative;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;flex:0 0 36px!important}
:is(.inline-row-actions,.selection-dock div:has(>.bulk-icon)):not(#__touch){gap:8px!important}
.calculator-quick button:not(#__touch),.launch-timeline-nav button:not(#__touch){min-height:44px!important;height:44px!important}
/* The action column of a list row opens at 44px per action, its actions centred, so the outer ones keep 4px of their area inside it. */
:is(.canonical-upcoming-row,.launch-timeline-row).actions-open:not([data-actions-click-closed='true']):not(#__touch){--canonical-action-slot:88px!important}
:is(.canonical-upcoming-row,.launch-timeline-row).actions-open:not([data-actions-click-closed='true'])[data-actions='1']:not(#__touch){--canonical-action-slot:44px!important}
:is(.canonical-upcoming-row,.launch-timeline-row).actions-open:not([data-actions-click-closed='true'])[data-actions='3']:not(#__touch){--canonical-action-slot:132px!important}
.canonical-row-action-slot>.inline-row-actions:not(#__touch){justify-content:center!important;align-items:center!important}
/* Header icons and toolbar icons sit side by side: 8px between them completes each one's 44px. */
:is(.topbar-actions,.launch-toolbar-left,.dre-toolbar):not(#__touch){gap:8px!important}
.period-selector:not(#__touch){z-index:2}
/* A title action (Clonar, Editar cartão) sits beside the close button and grows like it, 8px apart. */
.sheet-header-actions:not(#__touch){gap:8px!important}
.sheet-title-action:not(#__touch){width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;max-width:36px!important;max-height:36px!important;margin:0!important}
/* Light theme: the start and end dates of a custom view are dark green, like the period selector. */
html[data-finance-theme="light"] .custom-side-pick,html[data-finance-theme="light"] .custom-side-pick .custom-side-value,html[data-finance-theme="light"] .custom-side-pick svg{color:hsl(152 76% 28%)!important}
/* Budget panel. The header keeps one height and centres buttons and title, the same with or without the monthly breakdown;
   snapped to the top (7px from the screen edge) the panel grows with the screen until its
   foot sits 7px above the navigation bar. */
.dre-card{--dre-head:66px}
.dre-card .dre-header:not(#__touch){height:var(--dre-head)!important;min-height:var(--dre-head)!important;padding:0 12px!important;align-items:center!important}
.dre-card .dre-header>.dre-title:not(#__touch){top:0!important;bottom:0!important;align-content:center!important}
/* The title chooses its own form by the room beside the buttons, so it no longer needs a fixed cap. */
.dre-card .dre-header>.dre-title:not(#__touch){max-width:none!important}
.finance-vision-snap .dre-card.connected .dre-table-scroll:not(#__touch),.dre-table-scroll.breakdown.custom-breakdown:not(#__touch){max-height:calc(100dvh - var(--dre-head) - 54px - env(safe-area-inset-bottom) - 16px)!important}
/* The start and end pickers of a custom view are frameless choices: they fade a little under the mouse, more when pressed. */
@media (hover:hover){
.custom-side-pick:not(#__press):hover{opacity:.66!important}
.custom-side-pick:not(#__press):active{opacity:.45!important}
}
.custom-side-pick.press-flash:not(#__press){opacity:var(--press-fade)!important;animation:press-fade .3s ease-out}
/* At rest the Visão title sits at the height of the other page titles. Its inner top padding (which centres it when the
   page snaps onto it) stays; the line rises by a margin and the carousel below gives the same amount back. */
.vision-content .period-line:not(#__touch){margin-top:-6.5px!important}
.vision-content>.period-carousel:not(#__touch){margin-top:-0.5px!important}
/* The mist floor is set on each scrolling area itself and read only there: not inherited, so moving it during a gesture
   restyles that one element, not every row inside it. */
@property --fog-floor{syntax:"<length>";inherits:false;initial-value:0px}
/* A choice field keeps the native <select> only as its face: it never opens the browser's list, the app's window does
   (FinanceSelect listens on the field). */
select.finance-select:not(#__choice),input.finance-date:not(#__choice){pointer-events:none!important}
:is(label,div,span):has(>select.finance-select:not(:disabled)),:is(label,div,span):has(>input.finance-date:not(:disabled)){cursor:pointer}

/* FIN-016: every screen before the app. One centred column, no card, no scrollbar when the content fits; the app builds its
   dark theme only once it mounts, so these screens carry their own tones. */
body:has(.finance-entry){margin:0}
.finance-entry{--entry-bg:hsl(150 10% 95.5%);--entry-ink:#173522;--entry-muted:#6c766e;--entry-line:#d9e0db;--entry-field:#fff;--entry-accent:hsl(152 76% 28%);--entry-on-accent:#fff;--entry-danger:#9c3f35;box-sizing:border-box;width:100%;height:100dvh;min-height:0;overflow-x:hidden;overflow-y:auto;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));display:grid;place-items:normal;background:var(--entry-bg);color:var(--entry-ink)}
html[data-finance-theme="dark"] .finance-entry{--entry-bg:#121816;--entry-ink:#dcebe3;--entry-muted:#8d9b93;--entry-line:#2c3633;--entry-field:#1a2220;--entry-accent:rgb(147,224,183);--entry-on-accent:#10241a;--entry-danger:#e8938a;color-scheme:dark}
.finance-entry.finance-entry-loading{padding:0;overflow:hidden}
.finance-entry-panel{display:grid;gap:24px;width:min(100%,380px);min-width:0;height:fit-content;margin:auto}
.finance-entry-brand{display:flex;align-items:center;justify-content:center;gap:6px}
.finance-entry-icon{display:block;flex:none;width:40px;height:40px;object-fit:contain;transform:translateY(-12.9%);user-select:none;-webkit-user-drag:none}
.finance-entry-icon.dark,html[data-finance-theme="dark"] .finance-entry-icon.light{display:none}
html[data-finance-theme="dark"] .finance-entry-icon.dark{display:block}
.finance-entry-wordmark{display:block;flex:none;width:107px;height:20px;background:var(--entry-ink);-webkit-mask:url(/brand/dommo-wordmark.png) center/contain no-repeat;mask:url(/brand/dommo-wordmark.png) center/contain no-repeat}
.finance-entry .finance-auth-card{width:100%;padding:0;border:0;border-radius:0;background:none}
.finance-entry .finance-auth-card h1{margin:0 0 6px;color:var(--entry-ink);font-size:24px;font-weight:750;letter-spacing:-.02em;line-height:1.2;text-align:center}
.finance-entry .finance-auth-hint{margin:6px 0 12px;color:var(--entry-muted);font-size:13px;line-height:1.45;text-align:center}
.finance-entry .finance-auth-card label:not(.finance-auth-check){margin:12px 0;color:var(--entry-muted);font-size:13px;font-weight:600}
.finance-entry .finance-auth-card input:not([type=checkbox]){min-height:46px;border:1px solid var(--entry-line);border-radius:10px;background:var(--entry-field);color:var(--entry-ink);outline:none}
.finance-entry .finance-auth-card input:not([type=checkbox]):focus{border-color:var(--entry-accent)}
.finance-entry .finance-password-wrap input{padding-right:46px}
.finance-entry .finance-password-wrap button{display:grid;place-items:center;right:3px;width:40px;height:40px;padding:0;color:var(--entry-accent)}
.finance-entry .finance-auth-card .finance-auth-check{margin:4px 0 0;color:var(--entry-muted)}
.finance-entry .finance-auth-card .finance-auth-check input{accent-color:var(--entry-accent)}
.finance-entry .finance-auth-primary,.finance-entry .finance-auth-other{display:flex;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;width:100%;min-height:48px;border-radius:10px;font-size:15px;font-weight:700}
.finance-entry .finance-auth-primary{margin:16px 0 0;border:0;background:var(--entry-accent);color:var(--entry-on-accent)}
.finance-entry .finance-auth-other{margin:0 0 8px;border:1px solid var(--entry-line);background:transparent;color:var(--entry-ink)}
.finance-entry .finance-auth-primary+.finance-auth-other{margin-top:12px}
.finance-entry .finance-auth-divider{margin:16px 0 12px}
.finance-entry .finance-auth-divider:before,.finance-entry .finance-auth-divider:after{background:var(--entry-line)}
.finance-entry .finance-auth-divider span{color:var(--entry-muted)}
.finance-entry .finance-auth-link{margin:14px auto 0;color:var(--entry-accent);font-size:14px;font-weight:700}
.finance-entry .finance-auth-error{margin:12px 0 0;color:var(--entry-danger);font-size:13px;line-height:1.4;text-align:center}
.finance-entry .finance-auth-success{margin:12px 0 0;color:var(--entry-accent);font-size:13px;text-align:center}
.finance-passkey-entry img{flex:none;width:20px;height:20px}
.finance-entry .finance-auto-scan{min-height:0}
.finance-entry .finance-auto-scan>img{background:none;padding:0}
.finance-entry .finance-register-profile{margin:12px 0 4px}
.finance-entry .finance-register-avatar-button{width:72px;height:72px}
/* FIN-013: the avatar rings of the app (green-dark in light, neon in dark) also before signing in, where the app's own
   stylesheet is not loaded yet: a 2px accent line around an empty avatar; a photo gets a 2px gap in the card colour and the
   2px accent ring outside it, as in Perfil. */
.finance-entry .finance-register-avatar-button{box-sizing:border-box;border:2px solid var(--entry-accent)}
.finance-entry .finance-register-avatar-button:has(.finance-register-avatar-photo){border-color:var(--entry-field);background:var(--entry-field);box-shadow:0 0 0 2px var(--entry-accent)}
.finance-register-photo-hint{margin-top:6px;color:var(--entry-accent);font-size:13px;font-weight:700}
/* The biometrics invitation comes from the bottom edge, like every window of the app (FIN-013). */
.finance-biometric-backdrop{place-items:end stretch;padding:0}
.finance-biometric-dialog{box-sizing:border-box;width:100%;max-height:calc(100dvh - 24px);padding:22px max(20px,calc((100% - 480px) / 2)) calc(20px + env(safe-area-inset-bottom));border:0;border-radius:20px 20px 0 0;box-shadow:none;animation:finance-biometric-rise .22s ease-out}
@keyframes finance-biometric-rise{from{transform:translateY(100%)}to{transform:none}}
@media(prefers-reduced-motion:reduce){.finance-biometric-dialog{animation:none}}
.finance-biometric-dialog h2{margin:12px 0 6px;font-size:20px}
.finance-biometric-symbol{width:40px;height:40px;border-radius:12px}
.finance-biometric-symbol img{width:26px;height:26px}
.finance-biometric-actions button{min-height:48px;border-radius:10px}
/* The scrollbar before the app, as in the app: invisible, thin, only while scrolling (FIN-016). As in the app, an element
   scrolls, not the window: the window's own scrollbar does not follow the class that shows it. */
@supports selector(::-webkit-scrollbar){*{scrollbar-width:auto;scrollbar-color:auto}::-webkit-scrollbar{width:4px;height:4px;background:transparent}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}.finance-scrolling::-webkit-scrollbar-thumb{background:rgba(120,130,125,.6)}}
@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:transparent transparent}.finance-scrolling{scrollbar-color:rgba(120,130,125,.6) transparent}}
html:has(.finance-entry){background:hsl(150 10% 95.5%)}
html[data-finance-theme="dark"]:has(.finance-entry){background:#121816}
.finance-settings-delete{padding:0;margin-top:18px;text-align:center}
.finance-settings-delete>button{padding:6px 16px;border:0;background:transparent;color:hsl(350 90% 52%);font-weight:750;cursor:pointer}
.finance-settings-delete-dialog>.finance-dialog-scroll>p{margin:0 0 14px;font-size:14px;line-height:1.45;color:#597368}
.finance-settings-delete-dialog .finance-settings-auth-buttons button{min-height:50px;border-radius:12px}
.finance-settings-delete-dialog .finance-settings-auth-buttons button.danger-button{background:#fff;color:#a43d35;border:1px solid #d9e2dc;font-weight:800}
.finance-settings-auth-methods{display:grid;gap:10px}
.finance-settings-auth-methods>p{margin:0;font-size:13px;color:#597368;text-align:center}
.finance-settings-auth-methods button{box-sizing:border-box;width:100%;min-height:46px;padding:10px 12px;border:1px solid #dfe7e0;border-radius:10px;background:#fff;color:#173522;font:inherit;font-weight:700;cursor:pointer}
.finance-settings-auth-other{justify-self:center;min-height:44px;margin:2px 0 4px;padding:6px 8px;border:0;background:transparent;color:#087a3e;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.finance-settings-guest-avatar{overflow:hidden}
.finance-settings-guest-avatar>img{display:block;width:100%;height:100%;object-fit:cover}
.finance-settings-guest-avatar>span{font-size:30px;font-weight:800;color:#3e5a4b}
.finance-settings-identity.inviting .finance-settings-partner-name{width:100%;text-align:center;white-space:nowrap}
.finance-settings-invite-note{margin:0 0 12px;color:#597368;font-size:13px;line-height:1.4;text-align:center}
/* One baseline for both names of the pair, whichever element holds each. */
.finance-settings-identity.inviting .finance-register-username-display,.finance-settings-identity.inviting .finance-settings-partner-name,.finance-settings-guest input{padding:0;line-height:44px}
.finance-settings-identity.inviting .finance-settings-partner-name{display:block;height:44px;margin-top:3px}
.finance-settings-pair-note{margin:10px 0 0}
.finance-settings-partnership-button{pointer-events:auto;width:44px;height:44px;padding:9px;border:0;background:transparent;cursor:pointer;touch-action:manipulation}
.finance-partnership-option{display:flex;align-items:center;gap:12px}
.finance-partnership-option i{display:grid;place-items:center;flex:none;width:24px;height:24px;font-style:normal}
.finance-partnership-option svg{display:block;width:100%;height:100%}
.finance-partnership-check{flex:none;width:18px;height:18px}
.finance-settings-guest-button{border:0;background:transparent;color:inherit;font:inherit;padding-bottom:0;padding-inline:0;cursor:pointer;touch-action:manipulation}
.finance-unlink-copy{margin:0 0 12px;font-size:14px;line-height:1.45}
.finance-settings-invite-title{margin:0 0 6px;font-size:16px;font-weight:800;line-height:1.3;text-align:center}
.finance-settings-invite-buttons.finance-settings-invite-single{grid-template-columns:minmax(0,1fr)}
/* The filled action keeps white text: the Perfil page paints its other buttons green. */
html[data-finance-theme="light"] .finance-settings-page :is(.finance-settings-invite-primary,.finance-settings-expanded-actions button:last-child):not(:disabled){background:hsl(152 76% 28%)!important;border-color:hsl(152 76% 28%)!important;color:#fff!important}
/* A text action of the identity window: green, as the theme paints its actions, not the ink of plain text. */
html[data-finance-theme="light"] .finance-settings-auth-other:not(:disabled){color:hsl(152 76% 28%)!important}
/* Conflicts of a new link: column titles like the group labels of the choice windows, rows like launch rows. */
/* The window keeps its title, the column titles and its footer still: only the rows scroll. */
:root .sheet-layer>.sheet.merge-window:not(#__choice){overflow:hidden!important}
.sheet-layer>.sheet.merge-window>.finance-merge-resolver{flex:1 1 auto;min-height:0}
/* The opening text scrolls away with the rows; the column titles stay pinned at the top of this area. */
.finance-merge-scroll{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:12px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.finance-merge-scroll::-webkit-scrollbar{display:none}
/* The system mist of the windows: at the bottom always (the list ends on 16px of empty space, so at rest it falls there),
   and below the pinned column titles once the list scrolls. */
.finance-merge-scroll{--merge-heads:52px}
.finance-merge-scroll{padding-bottom:16px;-webkit-mask-image:linear-gradient(to bottom,#000 0,rgba(0,0,0,1) calc(100% - 16px),rgba(0,0,0,0.97) calc(100% - 13.2px),rgba(0,0,0,0.9) calc(100% - 10.4px),rgba(0,0,0,0.78) calc(100% - 8px),rgba(0,0,0,0.62) calc(100% - 6px),rgba(0,0,0,0.44) calc(100% - 4px),rgba(0,0,0,0.26) calc(100% - 2.4px),rgba(0,0,0,0.1) calc(100% - 1.2px),rgba(0,0,0,0) calc(100% - 0px));mask-image:linear-gradient(to bottom,#000 0,rgba(0,0,0,1) calc(100% - 16px),rgba(0,0,0,0.97) calc(100% - 13.2px),rgba(0,0,0,0.9) calc(100% - 10.4px),rgba(0,0,0,0.78) calc(100% - 8px),rgba(0,0,0,0.62) calc(100% - 6px),rgba(0,0,0,0.44) calc(100% - 4px),rgba(0,0,0,0.26) calc(100% - 2.4px),rgba(0,0,0,0.1) calc(100% - 1.2px),rgba(0,0,0,0) calc(100% - 0px))}
.finance-merge-scroll[data-scrolled]{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 var(--merge-heads),rgba(0,0,0,0) calc(var(--merge-heads) + 0px),rgba(0,0,0,0.1) calc(var(--merge-heads) + 1.2px),rgba(0,0,0,0.26) calc(var(--merge-heads) + 2.4px),rgba(0,0,0,0.44) calc(var(--merge-heads) + 4px),rgba(0,0,0,0.62) calc(var(--merge-heads) + 6px),rgba(0,0,0,0.78) calc(var(--merge-heads) + 8px),rgba(0,0,0,0.9) calc(var(--merge-heads) + 10.4px),rgba(0,0,0,0.97) calc(var(--merge-heads) + 13.2px),rgba(0,0,0,1) calc(var(--merge-heads) + 16px),rgba(0,0,0,1) calc(100% - 16px),rgba(0,0,0,0.97) calc(100% - 13.2px),rgba(0,0,0,0.9) calc(100% - 10.4px),rgba(0,0,0,0.78) calc(100% - 8px),rgba(0,0,0,0.62) calc(100% - 6px),rgba(0,0,0,0.44) calc(100% - 4px),rgba(0,0,0,0.26) calc(100% - 2.4px),rgba(0,0,0,0.1) calc(100% - 1.2px),rgba(0,0,0,0) calc(100% - 0px));mask-image:linear-gradient(to bottom,#000 0,#000 var(--merge-heads),rgba(0,0,0,0) calc(var(--merge-heads) + 0px),rgba(0,0,0,0.1) calc(var(--merge-heads) + 1.2px),rgba(0,0,0,0.26) calc(var(--merge-heads) + 2.4px),rgba(0,0,0,0.44) calc(var(--merge-heads) + 4px),rgba(0,0,0,0.62) calc(var(--merge-heads) + 6px),rgba(0,0,0,0.78) calc(var(--merge-heads) + 8px),rgba(0,0,0,0.9) calc(var(--merge-heads) + 10.4px),rgba(0,0,0,0.97) calc(var(--merge-heads) + 13.2px),rgba(0,0,0,1) calc(var(--merge-heads) + 16px),rgba(0,0,0,1) calc(100% - 16px),rgba(0,0,0,0.97) calc(100% - 13.2px),rgba(0,0,0,0.9) calc(100% - 10.4px),rgba(0,0,0,0.78) calc(100% - 8px),rgba(0,0,0,0.62) calc(100% - 6px),rgba(0,0,0,0.44) calc(100% - 4px),rgba(0,0,0,0.26) calc(100% - 2.4px),rgba(0,0,0,0.1) calc(100% - 1.2px),rgba(0,0,0,0) calc(100% - 0px))}
.finance-merge-heads{box-sizing:border-box;height:var(--merge-heads)}
.finance-merge-scroll>p{margin:0}
.finance-merge-table{display:grid;align-content:start}
/* The line between the sides is drawn on each row, so it follows the rows as they scroll. */
.finance-merge-heads,.finance-merge-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px}
.finance-merge-heads{position:sticky;top:0;z-index:3;padding:0 0 8px;background-color:#fff}
/* The column titles are system buttons: the whole column marked shows as the primary one. */
.finance-merge-heads button{width:100%;min-width:0;min-height:44px;margin:0;font:inherit;font-weight:750;cursor:pointer;touch-action:manipulation}
.finance-merge-heads button.secondary{border:1px solid #d9e2dc;background:#fff;color:#4f6257}
/* Mirrored columns: your version leans on the dividing line from the left, the other person's from the right. */
.finance-merge-row button:first-child{justify-items:end;text-align:right}
.finance-merge-row button:first-child>.finance-merge-other{right:auto;left:12px}
.finance-merge-row{margin-top:6px;border:1px solid transparent;border-radius:14px;transition:border-color .15s ease}
.finance-merge-row.focus{border-color:#cfe3d5}
/* The magnifier shows only on the item under the pointer or tapped, at its very center, between the two versions. */
.finance-merge-row{position:relative}
.finance-merge-row>button.finance-merge-lens{position:absolute;inset:0;z-index:2;display:grid;place-content:center;place-items:center;width:30px;min-width:0;height:30px;min-height:0;margin:auto;padding:0;border:0;border-radius:50%;background:transparent;color:#4f6257;transform:none;opacity:0;pointer-events:none;transition:opacity .15s ease}
.finance-merge-row.focus>button.finance-merge-lens{opacity:1;pointer-events:auto}
.finance-merge-row.open>button.finance-merge-lens{color:#087a3e}
.finance-merge-lens>svg{width:16px;height:16px}
.finance-merge-row button{position:relative;min-width:0;min-height:64px;display:grid;gap:3px;align-content:start;padding:12px;border:0;border-radius:13px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation}
.finance-merge-row button>strong{min-width:0;color:#173522;font-size:14px;font-weight:750;white-space:nowrap}
.finance-merge-value{font-size:13px;font-weight:500}
.finance-merge-details{display:none;gap:2px;margin-top:4px}
.finance-merge-row.open .finance-merge-details{display:grid}
.finance-merge-details small{color:#6d7971;font-size:12px}
/* What does not fit fades at the edge and slides like the launch rows: under the mouse or once the row is touched. */
.finance-merge-row:is(.focus,.open) .finance-fade-text[data-fade-overflow]>.finance-fade-track{animation:var(--marquee-name,none) var(--marquee-duration,5s) linear infinite;will-change:transform}
@media(hover:hover){.finance-merge-heads button:hover .finance-fade-text[data-fade-overflow]>.finance-fade-track{animation:var(--marquee-name,none) var(--marquee-duration,5s) linear infinite;will-change:transform}}
.finance-merge-heads button:focus-visible .finance-fade-text[data-fade-overflow]>.finance-fade-track{animation:var(--marquee-name,none) var(--marquee-duration,5s) linear infinite;will-change:transform}
.finance-merge-row button.selected>*:not(.finance-merge-other){opacity:.5;transition:opacity .2s ease}
.finance-merge-other{position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;background:currentColor;color:#087a3e}
/* The subtitle of the window explains the green dot. */
.sheet-title-copy>small.finance-merge-legend{display:flex;align-items:center;gap:6px}
.finance-merge-legend>i{flex:none;width:8px;height:8px;border-radius:50%;background:currentColor;color:#087a3e}
html[data-finance-theme="light"] .finance-merge-other,html[data-finance-theme="light"] .finance-merge-legend>i{color:hsl(152 76% 28%)!important}
html[data-finance-theme="dark"] .finance-merge-other,html[data-finance-theme="dark"] .finance-merge-legend>i{color:rgb(147,224,183)!important}
/* The small windows keep their title still and scroll only what is below it, inside the standard mist (FinancasApp
   .finance-dialog-scroll); the area reaches into the bottom padding so the mist falls on empty space at rest, and its 3px
   inset keeps focus rings unclipped. */
:root :is(.finance-settings-auth-dialog,.finance-biometric-dialog):has(>.finance-dialog-scroll):not(#__fog){display:flex!important;flex-direction:column!important;overflow:hidden!important}
:is(.finance-settings-auth-dialog,.finance-biometric-dialog)>:not(.finance-dialog-scroll){flex:0 0 auto}
.finance-dialog-scroll{box-sizing:border-box;flex:1 1 auto;min-height:0;margin:-3px -3px -16px;padding:3px 3px 16px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}

/* FIN-013: the typing bar stuck to the device keyboard (lib/finance-keyboard-bar.js), placed by its transform at the
   visible bottom edge. Its label truncates by fading, and the box keeps 16px so the phone does not zoom in. Some
   keyboards (SwiftKey) start a few pixels above the edge the browser reports: the deeper bottom padding keeps the box
   clear of them, and the background carries on below so no gap ever shows between the bar and the keyboard. */
.finance-keyboard-bar{position:fixed;top:0;left:0;right:0;z-index:2147483600;box-sizing:border-box;padding:8px max(12px,env(safe-area-inset-left)) 20px max(12px,env(safe-area-inset-right));background:#fff;border-top:1px solid #e4ebe5;box-shadow:0 -8px 24px rgba(4,27,13,.08);color:#172019;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;will-change:transform}
.finance-keyboard-bar::after{content:"";position:absolute;left:0;right:0;top:100%;height:48px;background:inherit;pointer-events:none}
.finance-keyboard-bar[hidden],.finance-keyboard-bar [hidden]{display:none!important}
.finance-keyboard-bar-label{display:block;margin:0 2px 6px;overflow:hidden;white-space:nowrap;font-size:12px;font-weight:650;line-height:1.3;color:#6c766e;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent)}
.finance-keyboard-bar-row{display:flex;align-items:flex-end;gap:8px}
.finance-keyboard-bar-input{flex:1 1 auto;min-width:0;box-sizing:border-box;min-height:44px;max-height:120px;margin:0;padding:10px 12px;border:1px solid #dce5dc;border-radius:11px;background:#fff;color:#172019;font:inherit;font-size:16px;line-height:1.35;resize:none;outline:none}
.finance-keyboard-bar-input:focus{border-color:hsl(152 76% 28%)}
.finance-keyboard-bar-done{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:11px;background:hsl(152 76% 28%);color:#fff;cursor:pointer;touch-action:manipulation}
html[data-finance-theme="dark"] .finance-keyboard-bar{background:#121816;border-top-color:#2c3633;box-shadow:0 -8px 24px rgba(0,0,0,.35);color:#dcebe3}
html[data-finance-theme="dark"] .finance-keyboard-bar-label{color:#8d9b93}
html[data-finance-theme="dark"] .finance-keyboard-bar-input{background:#1a2220;border-color:#2c3633;color:#dcebe3}
html[data-finance-theme="dark"] .finance-keyboard-bar-input:focus{border-color:rgb(147,224,183)}
html[data-finance-theme="dark"] .finance-keyboard-bar-done{background:rgb(147,224,183);color:#10241a}

/* FIN-016: what diverged when linking again stays locked: a yellow exclamation in place of the row's buttons and over the row,
   in a translucent circle like the check of a settled launch; on a card, a yellow exclamation beside the invoice button. */
.inline-row-actions .inline-row-action.tone-conflict{color:#a56d00!important;background:#fff5d6;border-color:#edcf7c}
html[data-finance-theme="dark"] .inline-row-actions .inline-row-action.tone-conflict{color:#f2c94c!important;background:rgba(242,201,76,.14)!important;border-color:rgba(242,201,76,.38)!important}
.row.merge-locked{position:relative}
.row.merge-locked :is(.row-main,.right,.launch-row-content){opacity:.5}
.row.merge-locked.merge-locked::after{content:""!important;position:absolute;left:50%;top:50%;z-index:2;width:40px;height:40px;transform:translate(-50%,-50%);background:#c99400!important;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11.5' fill='%23000' fill-opacity='.16'/%3E%3Cpath d='M12 6.6v7' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='16.9' r='1.05' fill='%23000'/%3E%3C/svg%3E") center/contain no-repeat!important;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11.5' fill='%23000' fill-opacity='.16'/%3E%3Cpath d='M12 6.6v7' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='16.9' r='1.05' fill='%23000'/%3E%3C/svg%3E") center/contain no-repeat!important;pointer-events:none}
html[data-finance-theme="dark"] .row.merge-locked.merge-locked::after{background:#f2c94c!important}
/* The alert of a locked card is drawn like the invoice button beside it: the color of the card. */
.finance-card .card-conflict-button{flex:none;align-self:flex-start;display:grid;place-items:center;box-sizing:border-box;width:36px;height:36px;margin:-7px 2px 0 auto;padding:7px;line-height:0;border:0;border-radius:12px;background:transparent;color:inherit;cursor:pointer}
.finance-card .card-conflict-button:hover,.finance-card .card-conflict-button:focus-visible{background:rgba(255,255,255,.18)}
.finance-entry .finance-auth-legal{justify-self:center;color:var(--entry-muted);font-size:12px;font-weight:600;text-decoration:none}
.finance-entry .finance-auth-legal:hover{text-decoration:underline}
.finance-privacy{color:var(--entry-ink);font-size:14px;line-height:1.55}
.finance-privacy h1{margin:0 0 4px;font-size:22px;line-height:1.25}
.finance-privacy h2{margin:22px 0 6px;font-size:15px}
.finance-privacy p,.finance-privacy ul{margin:0 0 8px}
.finance-privacy ul{padding-left:18px}
.finance-privacy li{margin:0 0 6px}
.finance-privacy a{color:var(--entry-accent);font-weight:650}
.finance-privacy-updated{color:var(--entry-muted);font-size:13px}
.finance-privacy-back{margin-top:22px!important;text-align:center}
