.portal-logo{display:block;object-fit:contain;object-position:left center;max-width:100%;height:auto}.brand-lockup .portal-logo{width:min(380px,90%);height:auto;margin:auto}.environment-note{padding:12px 36px;background:#eeeee7;color:#515149;font-size:12px;line-height:1.7;border-bottom:1px solid var(--line)}.period-field{display:flex;align-items:center;gap:12px;color:#515149;font-size:12px;margin-bottom:22px;flex-wrap:wrap}.period-field input,.period-field select{font:inherit;padding:10px 12px;border:1px solid #cecec5;border-radius:5px;background:#fff;color:var(--ink);min-height:42px}.billing-filters{display:flex;gap:20px;flex-wrap:wrap}.card .table-scroll{margin-top:18px}.table-actions{display:flex;gap:14px;flex-wrap:wrap}.table-actions .text-button{min-height:44px}.operation-ref{display:block;font-size:11px;line-height:1.8;margin-top:6px;color:#65655b;overflow-wrap:anywhere}.inbox-card{padding:24px;margin-top:22px;display:grid;gap:16px}.inbox-card h2{font-size:16px}.inbox-card p{color:#636359;line-height:1.7}.inbox-card .button{justify-self:start}.subscription-main>strong{font-size:14px}.subscription-main>p,.subscription-main>small{display:block;color:#65655b;font-size:12px;margin-top:7px}.login-stage{min-height:100dvh;display:grid;place-items:center;padding:32px 20px}.login-card{background:#fff;border:1px solid var(--line);padding:42px;border-radius:12px;width:min(100%,500px);box-shadow:0 20px 80px #19191908}.login-card>.portal-logo{margin-bottom:40px;width:190px}.login-card>.eyebrow{font-size:10px;margin-bottom:14px}.login-card>h1{font-size:31px;line-height:1.25;letter-spacing:-1px}.login-card>p{margin:18px 0 26px;line-height:1.8;color:#636359}.login-card small{display:block;font-size:12px;line-height:1.8;color:#636359;margin-top:22px}.login-card form{display:grid;gap:20px}.editor-fields{padding:0;margin:0;border:0;min-width:0}.editor-fields .modal-body{display:grid;gap:20px}.editor-fields select{min-height:44px}.confirmation-copy{margin-top:22px;line-height:1.8;color:#4e4e45}.form-error{color:#a23127;line-height:1.8;min-height:0}.form-error:empty{display:none}.form-error:not(:empty){padding:12px;background:#fff1ed;border:1px solid #eab6af;border-radius:5px}.page-footer{gap:14px;overflow-wrap:anywhere}.button,.icon-button{min-height:44px}.topbar-right .text-button{min-height:44px}.subscription-row{flex-wrap:wrap}.toast{max-width:min(600px,calc(100vw - 32px));white-space:normal;line-height:1.7}.badge.confirmed,.badge.processing{color:#7c6422;background:#f7f2df}.badge.refunded,.badge.disputed{color:#a23127;background:#fff1ed}.badge.inactive,.badge.expired,.badge.deleted{color:#55554a;background:#eee}.recurring-card .eyebrow{color:#c6c6b7}.recurring-amount>span{display:block;margin:14px 0 0}.table-scroll td{line-height:1.7}.helper-note{line-height:1.8}.modal-body p{line-height:1.8}
@media(max-width:760px){.environment-note{padding:12px 20px}.topbar{height:auto;min-height:76px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px;gap:5px}.topbar-right{gap:12px;flex-wrap:wrap}.topbar-right .text-button{font-size:11px}.topbar .demo-pill{font-size:10px}.login-card{padding:28px 22px}.login-card>h1{font-size:27px}.period-field{margin-bottom:16px}.billing-filters{gap:10px}.modal-footer{flex-wrap:wrap}.subscription-row .button{margin-left:0}.has-update .sidebar{top:0}.update-banner{position:sticky;top:0;z-index:60;flex-wrap:wrap;min-height:64px}.update-banner>button{min-height:44px}.update-banner>span{max-width:unset;flex:1 1 170px}.page-footer{padding-bottom:28px}}
/* Acessibilidade, teclado e celular (revisão de 08/11/2026). */
.table-note{display:inline-block;font-size:12px;line-height:1.6;color:#5c5c52}
.table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.field>[aria-invalid="true"]{border-color:#a23127;box-shadow:0 0 0 1px #a23127}
.billing-filters .period-field{margin-bottom:22px}
@media(max-width:760px){.sidebar{visibility:hidden;transition:transform .2s,visibility 0s .2s}.nav-open .sidebar{visibility:visible;transition:transform .2s}.mobile-menu{width:44px;height:44px;margin-left:-10px}}
/* Contraste AA medido na revisão de tela: textos auxiliares em #6b6b61 (4,61:1 no fundo mais claro em que aparecem). */
.eyebrow,.demo-note,.topbar-left,.metric-label,.metric-note,.section-heading p,.client-cell small,.page-heading p,.helper-note,.client-card p,.client-contact,.client-card-bottom,.subscription-value small,.portal-summary>article>span,.portal-summary>article>small,.field small,.form-disclaimer,.page-footer,.sidebar-subtitle{color:#6b6b61}
.recurring-card .eyebrow{color:#c6c6b7}
.demo-pill{color:#5f5d50}
/* Paleta da marca: texto pequeno sobre o vermelho vai num selo escuro; o título passa a texto grande (negrito). */
.color-block>strong{font-weight:700}
.color-block.paper code{opacity:.85}
.color-block.red>span,.color-block.red code{background:#191919;color:#fff;opacity:1;padding:3px 7px;border-radius:4px}
/* Data e mês: o navegador põe o foco num segmento interno, então :focus-visible não chega ao campo. */
input[type="date"]:focus,input[type="month"]:focus,input[type="date"]:focus-within,input[type="month"]:focus-within{outline:2px solid var(--accent);outline-offset:4px}
/* Texto para leitor de tela tem posição absoluta: sem este contexto ele escapa do recorte e alarga a página no celular. */
.table-scroll{position:relative}
@media(max-width:370px){.metrics{grid-template-columns:1fr}}
.portal-charge-list>article>.table-note{max-width:160px;text-align:right}
@media(max-width:760px){.portal-charge-list>article>.table-note{grid-column:2;grid-row:2/4;align-self:center;max-width:120px}}
.section-heading+.portal-charge-list{margin-top:16px}
/* Equipe do cliente e entrada por código (08/11/2026). */
.member-list{list-style:none;margin:0;padding:0}
.member-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 24px;border-top:1px solid var(--line)}
.member-main{margin-right:auto;min-width:0}
.member-main strong{display:block;font-size:14px;overflow-wrap:anywhere}
.member-main small{display:block;font-size:12px;line-height:1.7;color:#6b6b61;overflow-wrap:anywhere}
.team-card{padding-bottom:6px}
.team-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 18px;align-items:end;padding:0 24px 18px}
.team-form .form-error,.team-form .button{grid-column:1/-1;justify-self:start}
.team-card .helper-note{padding:0 24px}
.modal-subtitle{font-size:15px;font-weight:700;margin:26px 0 12px}
.modal-body .member-row{padding:12px 0}
.modal-body .team-form{padding:0}
.login-links{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:16px}
.login-links .text-button{min-height:44px}
.login-status{padding:12px;background:#f1f6f1;border:1px solid #c9dcc9;border-radius:5px;color:#2f5133;line-height:1.7}
.badge.inactive{color:#55554a;background:#eee}
.team-card .section-heading{padding-bottom:12px}
/* Configurações: formas de pagamento (08/11/2026). */
.settings-form{display:grid;gap:22px;padding:18px 24px 24px}
.settings-group{border:1px solid var(--line);border-radius:8px;padding:18px 20px 4px;margin:0;min-width:0}
.settings-group legend{font-size:14px;font-weight:700;padding:0 6px}
.settings-methods{display:flex;flex-wrap:wrap;gap:4px 22px;margin:6px 0 16px}
.check-field{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:13px;cursor:pointer}
.check-field input{width:20px;height:20px;accent-color:#191919;margin:0}
.check-field input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.settings-group .field select{max-width:340px}
.settings-form .form-error,.settings-form .button{justify-self:start}
.settings-actions{display:flex;align-items:center;gap:10px 22px;flex-wrap:wrap}
.settings-pending{display:inline-flex;align-items:center;gap:6px 16px;flex-wrap:wrap;font-size:13px;color:#6b6b61}
.settings-pending .text-button{min-height:44px}
@media (max-width:620px){.settings-form{padding:16px 16px 18px}.settings-group{padding:14px 14px 2px}.settings-methods{flex-direction:column;gap:0}}
