/* Paleta padrão de ContractsService::theme e componentes do painel municipal.
   Compartilhado pelos portais; não altera preferências de aparência dos municípios. */
:root {
    --primary:#5756D6; --accent:#F28D5B; --sidebar:#4D51C6;
    --page:#EEF0FF; --card:#FFFFFF; --text:#25283D;
    --success:#2EAA83; --warning:#F1B44C; --danger:#E35D6A;
    --muted:#71748b; --line:#e3e5f2;
    --shadow:0 16px 38px rgba(35,40,100,.08); --radius:22px;
}
body { font-family:"Aptos","Segoe UI",Inter,ui-sans-serif,system-ui,sans-serif; background:var(--page); color:var(--text); }
button,input,select,textarea { font-family:inherit; }
/* Rolagem discreta, sem esconder o acesso às últimas opções ou colunas. */
* { scrollbar-width:thin; scrollbar-color:#bec1df transparent; }
::-webkit-scrollbar { width:7px; height:7px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:#bec1df; border-radius:10px; }
::-webkit-scrollbar-thumb:hover { background:#9499c6; }
.sidebar { scrollbar-color:#b4b6ee transparent; }
.sidebar .nav-list { scrollbar-color:#b4b6ee transparent; }
.sidebar .nav-list::-webkit-scrollbar-thumb { background:#b4b6ee; }
.portal-table-scroll { max-width:100%; padding-bottom:7px; }
.portal-table td { overflow-wrap:anywhere; }
.portal-table td small { max-width:340px; }
.portal-table input { min-width:0; max-width:100%; }
.company-card,.portal-card,.portal-stat,.portal-plan { background:var(--card); border-color:var(--line); box-shadow:var(--shadow); }
.portal-card h2,.portal-card h3,.company-card h2,.company-card h3,.company-analysis-result h3 { color:var(--text); }
.portal-card p,.company-card p,.company-official-link { color:var(--muted); }
.company-kicker,.company-card .company-kicker,.portal-stat strong,.portal-plan strong,.company-dashboard-grid strong { color:var(--primary); }
.company-header { background:var(--card); color:var(--text); }
.company-card input,.company-card select,.company-card textarea,#catalogQuickFilters select,
.portal-form input,.portal-form select,.portal-form textarea { border-color:var(--line); color:var(--text); background:var(--card); }
input[type=checkbox],input[type=radio] { accent-color:var(--primary); }
.company-card input:focus,.company-card select:focus,.company-card textarea:focus { outline-color:var(--primary); }
/* Ações secundárias suaves; ação principal preenchida e perigo separado. */
.company-card button,.company-actions button,.company-header button,.company-assistance button,
.portal-actions button,.portal-table td>button,.portal-pages button,.catalog-dialog button,.catalog-link-button {
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    border:0; border-radius:12px; padding:9px 14px; min-height:36px;
    background:color-mix(in srgb,var(--primary) 9%,var(--card)); color:var(--primary);
    font-size:12px; font-weight:750; line-height:1.35; text-decoration:none;
    white-space:normal; max-width:100%; box-shadow:none; transition:background .2s ease;
}
.company-card button:hover,.company-actions button:hover,.company-header button:hover,
.portal-actions button:hover,.portal-table td>button:hover,.catalog-link-button:hover {
    background:color-mix(in srgb,var(--primary) 16%,var(--card)); color:var(--primary);
}
.company-card button[type=submit],.company-actions button[type=submit],
.company-card .primary-button,.primary-button,.company-entry-link {
    background:var(--primary); color:#fff;
    box-shadow:0 8px 18px color-mix(in srgb,var(--primary) 25%,transparent);
}
.company-card button[type=submit]:hover,.company-card .primary-button:hover,.primary-button:hover,.company-entry-link:hover { background:var(--primary); color:#fff; filter:brightness(1.05); }
.company-card .secondary-button,.secondary-button { background:color-mix(in srgb,var(--primary) 9%,var(--card)); color:var(--primary); box-shadow:none; }
.company-card .danger-button,.danger-button { color:var(--danger); border:1px solid color-mix(in srgb,var(--danger) 45%,var(--card)); background:color-mix(in srgb,var(--danger) 6%,var(--card)); box-shadow:none; }
button:disabled { opacity:.4; cursor:default; box-shadow:none; filter:none; transform:none; }
/* Restaura o componente municipal, antes sobrescrito pelo botão genérico empresarial. */
.company-card .pagination-button,.pagination .pagination-button {
    width:27px; height:27px; min-height:27px; padding:0; flex:0 0 27px;
    border:1px solid var(--line); border-radius:8px; color:var(--primary);
    background:var(--card); font-size:17px; line-height:1; box-shadow:none;
}
.pagination .pagination-button:hover:not(:disabled) { background:color-mix(in srgb,var(--primary) 9%,var(--card)); }
.pagination { flex-wrap:wrap; gap:11px; color:var(--muted); }
.company-setup-note,.company-credit-summary,.company-analysis-point,
.gemini-status-grid article,[data-master-panel="ai-providers"] [role="status"] {
    background:color-mix(in srgb,var(--primary) 5%,var(--card)); color:var(--text); border-color:var(--line);
}
.company-analysis-point { border-left-color:var(--primary); }
.company-chip,.company-onboarding li:before,.catalog-day-marked { background:color-mix(in srgb,var(--primary) 8%,var(--card)); color:var(--primary); border-color:color-mix(in srgb,var(--primary) 22%,var(--card)); }
.company-card .company-chip button { background:transparent; color:var(--primary); min-height:24px; padding:2px 6px; }
.company-card .catalog-day button { display:block; min-height:28px; border-radius:8px; padding:4px; font-size:10px; text-align:left; }
.catalog-result,.catalog-detail,.catalog-fact,.catalog-dialog,.portal-dialog { border-color:var(--line); }
.catalog-dialog,.portal-dialog { background:var(--card); color:var(--text); border-radius:22px; }
.catalog-dialog::backdrop,.portal-dialog::backdrop { background:rgba(37,40,61,.42); }
.company-form-grid>*,.portal-form>*,.company-actions>* { min-width:0; }
.company-form-grid>button { align-self:end; justify-self:start; }
@media(max-width:690px) {
    .company-card button:not(.pagination-button):not(.company-chip button):not(.catalog-day button),.portal-actions button { min-height:40px; }
    .company-form-grid>button { justify-self:stretch; }
}
/* Submenus internos: mesmos botões e cores dos portais. */
.module-submenus{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px;margin:20px 0}
.module-submenus .module-submenu{display:flex;flex-direction:column;align-items:flex-start;text-align:left;white-space:normal;padding:16px 18px;min-height:58px;max-width:100%;height:auto}
.module-submenu strong{font-size:14px;font-weight:600}.module-submenu span{font-size:12px;margin-top:5px;font-weight:400;color:var(--muted)}
.module-submenu-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:18px 0}.module-submenu-bar h3{font-size:16px;margin:0}.module-subview{min-width:0}.module-subview>.portal-card:first-child{margin-top:0}
.module-submenus[hidden],.module-submenu-bar[hidden],.module-subview[hidden]{display:none!important}
@media(max-width:600px){.module-submenus{grid-template-columns:1fr}.module-submenu-bar{gap:10px}.module-submenu-bar h3{width:100%}}

.module-subview:has(#companyTenderHistory:not(.hidden)) .module-history-empty{display:none}
.module-submenus .module-submenu{background:var(--card,#fff);border:1px solid var(--line,#e3e5f2);color:var(--primary,#5756d6);border-radius:12px}
.module-submenus .module-submenu:hover{background:#f5f4ff;border-color:var(--primary,#5756d6)}
.module-submenus .module-submenu:focus-visible{outline:2px solid var(--primary,#5756d6);outline-offset:3px}

/* Compact illustrated launchers, shared by master and company. */
.module-submenus{grid-template-columns:repeat(auto-fill,minmax(112px,142px));gap:14px;margin:18px 0}
.module-submenus .module-submenu{align-items:center;justify-content:center;text-align:center;padding:14px 10px;min-height:112px;border-radius:18px;gap:10px;box-shadow:0 5px 16px #5756d60c}
.module-submenu strong{font-size:12px;line-height:1.4}.module-submenu-icon{width:30px;height:30px;flex:none;color:var(--primary,#5756d6)}
[data-master-tab][hidden]{display:none!important}
@media(max-width:600px){.module-submenus{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.module-submenus .module-submenu{min-height:106px}}

.plan-feature-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.plan-feature-fields .portal-check{align-items:flex-start;line-height:1.45}.plan-feature-fields input{flex:none}.plan-feature-fields legend{padding:8px}#companyExpiryWarnings{grid-column:1/-1}.expiry-settings{margin-bottom:16px}.plan-comparison{overflow:auto;margin:20px 0;border-radius:16px}.plan-comparison table{width:100%;border-collapse:collapse;font-size:13px;background:#fff}.plan-comparison th,.plan-comparison td{padding:12px;border-bottom:1px solid #e9e7f5;text-align:center}.plan-comparison th:first-child,.plan-comparison td:first-child{text-align:left;min-width:200px}.plan-yes{color:#267653}.plan-no{color:#8d91a4}.plan-compare{margin-top:18px}.plan-compare>summary{display:inline-flex;padding:12px 18px;border-radius:12px;background:#eeedfc;color:#5756d6;cursor:pointer;font-weight:600}.plan-mini-features{padding:0;list-style:none;font-size:13px}.plan-mini-features li{margin:8px 0}.plan-feature-fields .portal-check input{width:auto!important}

.plan-compare{grid-column:1/-1;min-width:0}
/* Build 207: shared hierarchy, spacing and feedback. */
#masterShell .portal-form,.portal-dialog .portal-form{align-items:start;gap:14px 18px;margin-top:16px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
#masterShell .portal-form>label,.portal-dialog .portal-form>label{margin:0;min-width:0;font-size:13px;font-weight:600}
#masterShell .portal-form>button,.portal-dialog .portal-form>button{margin:0;align-self:end;min-height:40px}
#masterShell .portal-form>fieldset,.portal-dialog .portal-form>fieldset{margin:0;padding:14px;border:1px solid var(--line);border-radius:10px}
#masterShell .portal-form .portal-check,.portal-dialog .portal-form .portal-check{min-height:40px;line-height:1.5}
#masterShell .portal-check input,.portal-dialog .portal-check input{width:auto;flex:none;min-height:0}
#masterShell .portal-card{padding:20px}#masterShell .portal-card h3{font-size:16px}#masterShell .portal-card p{font-size:13px}
#masterShell .portal-stat{padding:17px}#masterShell .portal-stat strong{font-size:23px}#masterShell .portal-stat span{font-size:12px}
#masterShell [role=status]:not(:empty){margin-top:16px;line-height:1.6;overflow-wrap:anywhere}
#masterShell .portal-form>[role=status],#masterShell .portal-form>p{grid-column:1/-1}
.master-pending-banner,.master-form-error{padding:14px 16px;border:1px solid #f2b9c2;border-left:4px solid #ed647d;border-radius:12px;background:#fff5f7;color:#923248;margin:12px 0 18px}
.master-pending-heading{display:flex;align-items:center;gap:8px}.master-pending-heading strong{flex:1}.master-pending-heading button{padding:4px 10px;min-height:30px}.master-pending-banner p{margin:10px 0;line-height:1.5}
.minutando-affiliation{font-size:12px;line-height:1.6;color:var(--muted);margin:28px 0 12px;padding-top:16px;border-top:1px solid var(--line)}
.minutando-affiliation a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.portal-login>.minutando-affiliation{width:min(100%,475px);text-align:center}
.company-trial-note{font-size:12px;color:var(--muted);max-width:600px;line-height:1.5}
.company-billing-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:16px;margin:20px 0}
.company-billing-form>label{margin:0!important;min-width:0}.company-payment-identity,.company-checkout-actions{grid-column:1/-1}.company-checkout-actions{display:flex;justify-content:flex-start}
.company-payment-identity{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--primary) 5%,var(--card));font-size:13px;line-height:1.6}.company-payment-identity p{margin:6px 0 0}.company-payment-identity a{color:var(--primary)}
.company-payment-help{font-size:12px;color:var(--muted);line-height:1.6}#companyPaymentDetails{padding:18px;border:1px solid var(--line);border-radius:14px;margin:18px 0}#companyPaymentDetails h2{font-size:18px}#companyPaymentDetails img{display:block;max-width:100%;height:auto;margin:16px 0}#companyPaymentDetails textarea{width:100%;box-sizing:border-box;overflow-wrap:anywhere}#companyPaymentDetails>button,#companyPaymentDetails>a{margin:10px 10px 0 0}#companyBillingOrders{font-size:12px;color:var(--muted);margin:16px 0}
.notification-filters{margin:16px 0}.notification-filters [aria-pressed=true]{background:var(--primary);color:white}.notification-card{padding:16px;margin:12px 0}.notification-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px}.notification-state{font-size:11px;background:#eeecfc;color:var(--primary);padding:3px 8px;border-radius:20px}.catalog-read .notification-state{background:#f2f3f6;color:var(--muted)}.notification-message{font-size:13px;line-height:1.6;margin:10px 0}.notification-deadline{font-size:12px;font-weight:600;color:var(--primary)}.notification-actions{gap:8px;margin:14px 0}.notification-actions button{margin:0}.notification-details{border-top:1px solid var(--line);padding-top:10px;font-size:12px;color:var(--muted)}.notification-details summary{cursor:pointer;display:list-item;line-height:1.5}.notification-details p{font-size:12px;line-height:1.6}.notification-empty{font-size:13px;padding:12px 0;color:var(--muted)}
@media(max-width:690px){#masterShell .portal-form,.portal-dialog .portal-form{padding:12px;grid-template-columns:1fr}.master-pending-heading{flex-wrap:wrap}.master-pending-heading strong{flex-basis:100%}.company-billing-form{grid-template-columns:1fr}.company-checkout-actions>button{width:100%}}

.company-checkout-actions>button{margin:0}

.catalog-alert.notification-card{display:block;background:var(--card);border-left:3px solid var(--primary);color:var(--text)}.catalog-alert.notification-card.catalog-read{border-left-color:var(--line)}

#masterFeatureHome[hidden]{display:none!important}

/* Persistent footer position without covering content or controls. */
#masterShell>.main-content{display:flex;flex-direction:column;min-height:100vh;box-sizing:border-box}
#masterShell>.main-content>.minutando-affiliation{margin-top:auto;padding-top:20px}
body.company-page .company-container{min-height:calc(100vh - 100px)}
.company-container{display:flex;flex-direction:column;min-height:calc(100vh - 110px);box-sizing:border-box}
.company-container>.minutando-affiliation{margin-top:auto;padding-top:20px}
.portal-login>.minutando-affiliation{margin-top:auto;align-self:center}
.marketing-campaign-picker{display:grid;gap:8px;margin:16px 0;font-size:12px}
.marketing-campaign-picker select{width:100%;min-width:0;max-width:100%}
#marketingPanel .button-row{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
#marketingCampaigns{font:inherit;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--card);color:var(--text)}

/* Empresas: ações compactas e leitura em cartões no celular. */
.portal-actions .portal-icon-action { width:40px; padding:8px; flex:0 0 40px; }
.portal-icon-action span { display:flex; align-items:center; }
#masterShell .main-content, #masterShell [data-master-panel], #masterShell .portal-card { min-width:0; }
@media(max-width:690px) {
    .master-company-table { min-width:0; width:100%; }
    .master-company-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
    .master-company-table tbody, .master-company-table tr { display:block; width:100%; }
    .master-company-table tr { border:1px solid var(--line); border-radius:14px; margin-bottom:12px; padding:8px; }
    .master-company-table td { display:grid; grid-template-columns:72px minmax(0,1fr); gap:8px; padding:9px 4px; min-width:0; }
    .master-company-table td:before { content:attr(data-label); color:var(--muted); font-size:12px; font-weight:600; }
    .master-company-table td>small { grid-column:2; padding:0; }
    .master-company-table td:last-child { border:0; }
    .master-company-table td[colspan] { display:block; }
    .master-company-table td[colspan]:before { content:none; }
    .master-company-table .portal-actions { min-width:0; gap:7px; }
    .master-company-table .portal-actions button { flex:0 1 auto; overflow-wrap:anywhere; }
    .master-company-table .portal-actions .portal-icon-action { flex:0 0 40px; }
    #masterShell [data-master-panel="companies"]>.section-heading { flex-wrap:wrap; gap:12px; }
}
