/* SuperfÃ­cies e estados de assinatura reutilizados nos dois painÃ©is. */
.billing-invoices { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:16px; }
.invoice-card { margin:0; min-width:0; }
.invoice-heading { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:12px; }
.invoice-heading h3 { font-size:18px; overflow-wrap:anywhere; }
.invoice-amount { display:block; color:var(--accent); font-size:30px; margin:18px 0 6px; }
.invoice-card .detail-actions { margin-top:16px; }
.invoice-card .detail-actions .button { flex:1 1 150px; }
.billing-status { white-space:normal; }
.billing-paga,.billing-em_dia,.billing-aprovado { color:var(--green); background:color-mix(in srgb,var(--green) 12%,var(--surface)); }
.billing-atrasada,.billing-rejeitado { color:var(--red); background:color-mix(in srgb,var(--red) 12%,var(--surface)); }
.billing-em_teste,.billing-em_analise,.billing-pendente,.billing-aberta,.billing-em_aberto { color:var(--accent); background:var(--accent-soft); }
.billing-cancelada,.billing-cancelado,.billing-arquivado,.billing-pausado { color:var(--muted); background:var(--panel); }
.receipt-row { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 0; border-bottom:1px solid var(--border-soft); }
.receipt-row strong { overflow-wrap:anywhere; }
.receipt-row>div { min-width:0; }
.receipt-row>div:last-child { display:flex; flex-direction:column; align-items:flex-end; gap:12px; flex-shrink:0; }
.info-dialog .billing-pix-qr { display:block; width:min(100%,320px); height:auto; max-height:none; margin:20px auto; background:var(--text); }

.contract-values { width:100%; table-layout:fixed; border-collapse:collapse; margin:12px 0; }
.contract-values th,.contract-values td { padding:9px 10px; text-align:left; vertical-align:middle; border-bottom:1px solid var(--border-soft); white-space:normal; overflow-wrap:anywhere; }
.contract-values thead th { font-size:var(--fonte-12); color:var(--muted); font-weight:500; background:var(--panel); }
.contract-values thead th:first-child { width:56%; }
.contract-values tbody th { font-size:var(--fonte-13); font-weight:500; }
.contract-values td { font-size:var(--fonte-14); font-weight:600; }
.contract-values small { display:block; margin-top:3px; font-size:var(--fonte-11); font-weight:400; color:var(--muted); line-height:1.4; }
.contract-edit-table thead th:first-child { width:44%; }
.contract-edit-value { display:flex; align-items:center; gap:12px; }
.contract-edit-table .check-row { flex:none; margin:0; font-size:var(--fonte-12); font-weight:400; align-items:center; gap:7px; }
.contract-edit-table .field { flex:1; min-width:0; margin:0; }
.contract-edit-table input[type=text] { height:38px; min-height:38px; padding:7px 9px; font-size:var(--fonte-13); }
.contract-edit-table input:disabled { color:var(--muted); }
.contract-charge-editor>.subtle { font-size:var(--fonte-12); line-height:1.4; margin:8px 0; }
.contract-terms h3 { font-size:var(--fonte-16); margin:0 0 10px; }
.contract-terms>.subtle { margin:8px 0; font-size:var(--fonte-11); line-height:1.45; }
.contract-inclusions,.contract-extra { margin-top:12px; }
.contract-inclusions summary,.contract-extra summary { font-size:var(--fonte-12); cursor:pointer; color:var(--accent); margin-bottom:8px; }
.contract-inclusions p { margin:0; overflow-wrap:anywhere; }
.contract-editor { margin:16px 0; }
.contract-editor summary { cursor:pointer; color:var(--accent); margin-bottom:10px; font-weight:600; }
/* Assinatura: áreas abertas, divisores suaves e contatos junto das cobranças. */
#view-subscription { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr); grid-template-rows:min-content 1fr auto; gap:24px 28px; align-items:start; background:radial-gradient(ellipse at top right,var(--accent-soft),transparent 32%); }
#view-subscription[hidden] { display:none; }
#subscription-summary,.subscription-overview { display:contents; }
.subscription-support { grid-column:1/-1; grid-row:3; position:relative; display:flex; align-items:center; gap:14px; min-width:0; min-height:64px; padding:12px 20px; border:1px solid var(--border-soft); border-radius:14px; background:linear-gradient(110deg,var(--accent-soft),var(--surface-soft),transparent); }
.subscription-support-icon { display:grid; place-items:center; color:var(--accent); }
.subscription-support-icon .ui-icon { width:22px; height:22px; }
.subscription-support-copy { padding-left:14px; border-left:1px solid var(--accent); }
.subscription-support h3 { margin:0; font-size:16px; }
.subscription-support .detail-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:16px; margin:0 auto; }
#view-subscription .subscription-support .button { min-height:36px; min-width:0; padding:7px 16px; border-radius:999px; font-size:13px; }
.subscription-plan { grid-column:1; min-width:0; padding:4px 12px 24px; position:relative; }
.subscription-plan::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:var(--dashboard-divider); }
.subscription-plan-heading { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:24px; }
.subscription-plan-heading h3,.contract-terms h3 { display:flex; align-items:center; gap:12px; margin:0; font-size:21px; line-height:1.3; }
.subscription-plan-heading h3>.ui-icon,.contract-terms h3>.ui-icon { flex:none; color:var(--accent); width:24px; height:24px; }
#subscription-status .badge { border-radius:999px; }
.subscription-schedule { display:grid; grid-template-columns:1.2fr 1fr 1.15fr; gap:14px; }
.subscription-schedule>section { position:relative; display:flex; flex-direction:column; gap:8px; min-width:0; padding:0 6px; }
.subscription-schedule>section+section::before { content:''; position:absolute; top:0; bottom:0; left:-8px; width:1px; background:linear-gradient(transparent,var(--border),transparent); }
.subscription-schedule>section>span:first-child,.subscription-schedule>section>p:first-child { display:flex; align-items:center; gap:8px; margin:0; font-size:12px; color:var(--text); }
.subscription-schedule .ui-icon { width:19px; height:19px; color:var(--accent); flex:none; }
#subscription-next-due { font-size:29px; line-height:1.2; color:var(--accent); white-space:nowrap; }
.subscription-next>span,.subscription-trial small { font-size:12px; color:var(--muted); }
.subscription-price strong { font-size:26px; line-height:1.3; color:var(--text); }
.subscription-trial strong { font-size:21px; line-height:1.3; color:var(--text); }
#subscription-next-note { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#subscription-contract { grid-column:1; min-width:0; padding:6px 12px 18px; }
#view-subscription .contract-terms h3 { margin:0 0 20px; }
#view-subscription .contract-values { border:0; border-collapse:collapse; margin:0 0 18px; }
#view-subscription .contract-values thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
#view-subscription .contract-values th,#view-subscription .contract-values td { padding:12px 0; background:none; border:0; font-size:14px; }
#view-subscription .contract-values tr { background-image:var(--dashboard-divider); background-size:100% 1px; background-repeat:no-repeat; background-position:bottom; }
#view-subscription .contract-values td { width:38%; text-align:left; }
#view-subscription .contract-terms>.subtle { position:relative; padding-left:24px; margin:10px 0; font-size:12px; line-height:1.5; }
#view-subscription .contract-terms>.subtle::before { content:'i'; position:absolute; left:0; top:2px; width:14px; height:14px; border:1px solid var(--accent); border-radius:50%; color:var(--accent); display:grid; place-items:center; font-size:10px; }
#view-subscription .contract-inclusions { margin-top:20px; }
#view-subscription .contract-inclusions summary { padding:10px 16px; margin:0; border:1px solid var(--border); border-radius:14px; background:linear-gradient(100deg,var(--accent-soft),transparent); font-size:13px; font-weight:600; }
#view-subscription .contract-inclusions[open] summary { margin-bottom:10px; }
.subscription-records { position:relative; grid-column:2; grid-row:1/3; display:grid; gap:24px; min-width:0; padding:0 0 12px 28px; }
.subscription-records::before { content:''; position:absolute; left:0; top:0; bottom:0; width:1px; background:linear-gradient(transparent,var(--border),transparent); }
#view-subscription .subscription-records>.admin-panel { position:relative; margin:0; padding:0 0 24px; border:0; border-radius:0; background:none; box-shadow:none; }
#view-subscription .subscription-records>.admin-panel:not(:last-child)::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:var(--dashboard-divider); }
#view-subscription .subscription-records .panel-heading { margin:0 0 12px; padding:0; border:0; }
#view-subscription .panel-heading h3,#view-subscription .subscription-account h3 { display:flex; align-items:center; gap:12px; margin:0 0 12px; padding:0; font-size:20px; }
#view-subscription .panel-heading h3>.ui-icon,#view-subscription .subscription-account h3>.ui-icon { width:22px; height:22px; color:var(--accent); flex:none; }
#view-subscription .subscription-records .panel-heading h3::before { content:none; }
#view-subscription .empty { padding:0; margin:0; text-align:left; font-size:13px; line-height:1.6; }
#view-subscription .billing-invoices { grid-template-columns:minmax(0,1fr); }
#view-subscription .invoice-card { padding:14px; margin:0; }
#view-subscription .invoice-card h3 { font-size:15px; }
#view-subscription .invoice-card p { margin:8px 0; }
#view-subscription .invoice-amount { font-size:26px; margin:12px 0 6px; }
#view-subscription .invoice-card .detail-actions { margin-top:12px; }
#view-subscription .subscription-account>p { font-size:12px; line-height:1.6; margin:0 0 18px; }
#view-subscription .subscription-account .form-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
#view-subscription .subscription-account .field { margin:0; gap:5px; font-size:12px; }
#view-subscription .subscription-account input { min-height:38px; height:38px; font-size:14px; padding:8px 10px; }
#view-subscription .subscription-account .detail-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }
#view-subscription .subscription-account .detail-actions .button { flex:1 1 130px; justify-content:center; min-height:36px; font-size:12px; padding:7px 12px; }
#view-subscription .subscription-account [role=status]:empty { display:none; }
.admin-body:has(#view-subscription:not([hidden])) .admin-header { position:relative; background:linear-gradient(155deg,var(--studio-black) 55%,var(--accent-soft),var(--studio-black)); min-height:84px; padding-block:14px; }
#admin-main:has(>#view-subscription:not([hidden])) { padding-top:20px; padding-bottom:12px; }
.contract-label-short { display:none; }
@media(min-width:1351px){
 .subscription-support { padding-right:28%; }
 .subscription-support .detail-actions { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:max-content; flex-wrap:nowrap; }
}
@media(min-width:1001px) and (max-height:820px){
 .admin-body:has(#view-subscription:not([hidden])) .admin-header { min-height:76px; padding:12px 24px; gap:12px; }
 .admin-body:has(#view-subscription:not([hidden])) .admin-header h2 { white-space:nowrap; font-size:25px; }
 .admin-body:has(#view-subscription:not([hidden])) .admin-header-actions { flex-wrap:nowrap; gap:8px; }
 .admin-body:has(#view-subscription:not([hidden])) .admin-header-actions .button { min-height:38px; padding:8px 12px; font-size:12px; gap:6px; white-space:nowrap; }
 .admin-body:has(#view-subscription:not([hidden])) .admin-profile { gap:8px; white-space:nowrap; font-size:12px; }
 .admin-body:has(#view-subscription:not([hidden])) .admin-profile img { width:34px; height:34px; }
 .admin-body:has(#view-subscription:not([hidden])) .admin-profile small { font-size:11px; }
 #view-subscription { gap:18px 20px; }
 .subscription-support { min-height:58px; padding:10px 16px; }
 .subscription-plan { padding-bottom:18px; }
 .subscription-plan-heading { margin-bottom:18px; }
 .subscription-records { gap:18px; padding-left:20px; }
 #view-subscription .contract-terms h3 { margin-bottom:12px; }
 #view-subscription .contract-values th,#view-subscription .contract-values td { padding:9px 0; }
 #subscription-next-due { font-size:25px; }
 .subscription-price strong { font-size:23px; }
 .subscription-trial strong { font-size:18px; }
 #view-subscription .subscription-account>p { margin-bottom:12px; }
 #view-subscription .subscription-account .detail-actions { margin-top:16px; }
}
@media(max-width:1000px){
 #view-subscription { grid-template-columns:minmax(0,1fr); gap:22px; }
 .subscription-records { grid-column:1; grid-row:auto; padding:0 12px; }
 .subscription-records::before { content:none; }
 .subscription-support { grid-row:auto; flex-wrap:wrap; }
 .subscription-support .detail-actions { width:100%; gap:10px; }
}
@media(max-width:600px){
 .subscription-support { padding:12px; gap:10px; }
 #view-subscription .subscription-support .button { flex:1; padding:8px; font-size:12px; }
 .subscription-plan,#subscription-contract { padding-inline:0; }
 .subscription-schedule { grid-template-columns:1fr 1fr; gap:20px; }
 .subscription-schedule>.subscription-next { grid-column:1/-1; }
 .subscription-schedule>.subscription-price::before { content:none; }
 .subscription-records { padding:0; }
 .contract-label-long { display:none; }
 .contract-label-short { display:inline; white-space:nowrap; }
 #view-subscription .contract-values th,#view-subscription .contract-values td { font-size:12px; }
 .subscription-plan-heading h3,#view-subscription .contract-terms h3 { font-size:19px; }
}
