.portal-login{min-height:100vh;display:grid;place-items:center;padding:32px 18px;background:linear-gradient(135deg,#edf4f6,#f8fafb 65%,#e4f1ec)}
.portal-login-inner{width:min(100%,475px);text-align:center}.portal-logo{width:170px;height:auto;margin-bottom:26px}.portal-login-card{text-align:left;padding:28px;border-radius:22px}.portal-login-card h1{font-size:28px;margin:5px 0 9px}.portal-login-card p{line-height:1.55;color:var(--muted)}
.portal-login-card label,.portal-form label{display:grid;gap:7px;font-weight:650;margin:13px 0}.portal-login-card input,.portal-form input,.portal-form select{width:100%;min-height:40px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;color:var(--text);background:#fff}.portal-login-card button{margin-top:12px;width:100%}.portal-links{line-height:1.6;color:var(--muted)}.portal-links a{color:var(--primary)}.portal-error{color:#a92424!important}.portal-notice{padding:13px 17px;background:#e7f6ed;border:1px solid #add6ba;border-radius:10px;margin-bottom:18px}.portal-notice.portal-error{background:#fff0f0;border-color:#e8a9a9}
.portal-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:16px;margin:18px 0 25px}.portal-stat{padding:21px;border-radius:18px;display:grid;gap:8px}.portal-stat span{color:var(--muted)}.portal-stat strong{font-size:25px;color:var(--primary)}.portal-card{padding:23px;margin:18px 0;border-radius:18px}.portal-card h3{margin:0 0 17px}.portal-card p{line-height:1.55;color:var(--muted)}.portal-table-scroll{overflow:auto}.portal-table{width:100%;border-collapse:collapse;min-width:680px}.portal-table th,.portal-table td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.portal-table th{font-size:12px;color:var(--muted)}.portal-table td small{display:block;color:var(--muted);padding-top:4px}.portal-actions{display:flex;gap:6px;flex-wrap:wrap}.portal-actions button,.portal-table td>button{border:1px solid var(--line);border-radius:9px;background:#f6f9fa;padding:7px 10px;color:var(--primary);white-space:nowrap}.portal-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:15px}.portal-plan{padding:19px;border:1px solid var(--line);border-radius:14px;display:grid;align-content:start;gap:9px}.portal-plan h4,.portal-plan p{margin:0}.portal-plan strong{font-size:20px;color:var(--primary)}.portal-plan small{color:var(--muted);line-height:1.5}.portal-plan button{justify-self:start;margin-top:7px}.portal-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;align-items:end}.portal-form-inline{grid-template-columns:repeat(4,minmax(140px,1fr)) auto}.portal-form-inline label{min-width:0}.portal-form>button{justify-self:start;margin-bottom:13px}.portal-check{display:flex!important;align-items:center;gap:9px!important}.portal-check input{width:auto;min-height:0}.portal-test{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.portal-dialog{width:min(620px,calc(100vw - 28px));border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 30px 70px #102f4950;color:var(--text)}.portal-dialog::backdrop{background:#102f4975}.portal-dialog-close{float:right;border:0;background:transparent;font-size:28px;color:var(--primary)}.portal-dialog h2{margin:0 0 10px}.portal-dialog p{line-height:1.55;color:var(--muted)}
@media(max-width:900px){.portal-form-inline{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:690px){.app-shell{display:block}.sidebar{width:auto;height:auto;position:relative;padding:14px;display:block}.sidebar .brand{padding:0 0 12px}.sidebar .nav-list{display:flex;overflow:auto;gap:4px}.sidebar .nav-item{min-width:max-content}.sidebar-bottom{display:none}.portal-form,.portal-form-inline{grid-template-columns:1fr}.main-content{padding:22px 15px}}
.portal-form textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;resize:vertical}.portal-full{grid-column:1/-1}
.portal-pages{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:16px;color:var(--muted)}.portal-pages button{padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--primary)}.portal-pages button:disabled{opacity:.5;cursor:default}

.gemini-feedback{margin:18px 0;padding:16px 19px;border-radius:12px;border:1px solid #b9d8e9;background:#eaf5fb;color:#164463;font-weight:700;line-height:1.5}.gemini-feedback.success{border-color:#80c49b;background:#e7f7ed;color:#126339}.gemini-feedback.error{border-color:#e2a3ab;background:#fff0f0;color:#982d3b}.gemini-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.gemini-status-grid article{border:1px solid #d9e6ed;background:#f7fafc;border-radius:11px;padding:15px;line-height:1.45}.gemini-status-grid strong,.gemini-status-grid span{display:block}.gemini-status-grid strong{color:#143d5c;font-size:.9rem;margin-bottom:7px}.gemini-status-grid span{color:#435b6a;font-size:.9rem}@media(max-width:740px){.gemini-status-grid{grid-template-columns:1fr}}

/* Espaçamento do teste Gemini e contenção dos controles em telas estreitas. */
#masterGeminiTest { margin-top: 18px; max-width: 100%; white-space: normal; }
.portal-form > *, .portal-card, .portal-plan { min-width: 0; }
@media (max-width: 690px) {
  .portal-card { padding: 18px; }
  .portal-form > button { width: 100%; justify-self: stretch; white-space: normal; }
  .portal-plan-grid, .portal-stats { grid-template-columns: minmax(0, 1fr); }
  .portal-pages { flex-wrap: wrap; }
  .portal-card code, .portal-card p { overflow-wrap: anywhere; }
}

/* Mesma escala dos formulários, cards e indicadores do painel municipal. */
.portal-card { padding: 18px 20px; margin: 16px 0; }
.portal-card h3 { font-size: 15px; margin-bottom: 10px; }
.portal-card p, .portal-card small { font-size: 12px; line-height: 1.45; }
.portal-form label { font-size: 11px; margin: 7px 0; gap: 5px; }
.portal-form input, .portal-form select, .portal-form textarea { min-height: 36px; font-size: 12px; padding: 8px 10px; }
.portal-check input { min-height: 0; }
.portal-form button, .portal-card .button-row button { font-size: 12px; padding: 8px 11px; min-height: 34px; }
.portal-stats { gap: 12px; margin: 12px 0 16px; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); }
.portal-stat { padding: 15px; gap: 6px; }
.portal-stat span { font-size: 11px; }
.portal-stat strong { font-size: 22px; }
.portal-plan { padding: 15px; gap: 7px; }
.portal-plan strong { font-size: 18px; }
.gemini-feedback { padding: 10px 12px; margin: 12px 0; font-size: 12px; line-height: 1.45; }
.gemini-status-grid { margin: 14px 0; gap: 10px; }
.gemini-status-grid article { padding: 12px; }
.gemini-status-grid strong, .gemini-status-grid span { font-size: 12px; line-height: 1.4; }
@media(max-width:690px){.portal-card{padding:14px}.portal-form button,.portal-card .button-row button{min-height:40px}.portal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Separação do diagnóstico em relação aos controles da coleta. */
#masterCatalogStatus { margin-top: 16px; margin-bottom: 16px; line-height: 1.6; }

/* Configurações de IA seguem a escala e os espaçamentos do portal. */
.ai-provider-details{border-top:1px solid #e2e8f0;padding:14px 0}.ai-provider-details summary{cursor:pointer;font-weight:600}.ai-provider-details .button-row{margin-top:14px}[data-master-panel="ai-providers"] .card+[class*="card"]{margin-top:18px}[data-master-panel="ai-providers"] td{overflow-wrap:anywhere;max-width:360px}[data-master-panel="ai-providers"] [role="status"]{margin:14px 0;padding:12px;border-radius:8px;background:#eef4f8}[data-master-panel="ai-providers"] input,[data-master-panel="ai-providers"] select{min-width:0;max-width:100%}

/* Finalidades alinhadas por grupo; números do extrato centralizados. */
#aiRoutesForm{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}#aiRoutesForm .ai-route-group{display:grid;gap:10px;align-content:start;min-width:0}#aiRoutesForm .ai-route-group label{margin:0}#aiRoutesForm .ai-route-group .portal-check{display:flex;align-items:flex-start;gap:8px;line-height:1.5;min-height:36px}#aiRoutesForm .portal-check input{flex:0 0 16px;width:16px;height:16px;margin:1px 0 0;padding:0;min-height:0}#aiRoutesForm .ai-route-rate{grid-column:1/-1;max-width:300px;width:100%;margin-top:8px}.ai-spending-table th:not(:first-child),.ai-spending-table td:not(:first-child){text-align:center!important;font-variant-numeric:tabular-nums}@media(max-width:690px){#aiRoutesForm{grid-template-columns:minmax(0,1fr)}#aiRoutesForm .ai-route-group+.ai-route-group{margin-top:12px}}
#marketingPanel .portal-card{margin-bottom:18px}
#marketingPanel .button-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}
#marketingPanel summary{cursor:pointer;font-weight:600;margin-bottom:14px}
#marketingPanel .portal-table small{display:block;color:#657785;margin-top:4px;overflow-wrap:anywhere}
#marketingPanel .portal-form{margin-top:14px}
#marketingPanel .portal-form label{min-width:0}
#marketingPanel iframe{display:block;width:100%;height:520px;border:1px solid #dce5ed;border-radius:8px;margin-top:18px}
#marketingPanel iframe.hidden{display:none}

.marketing-preview-dialog{width:min(760px,calc(100vw - 28px));max-height:92vh;overflow:auto}.marketing-preview-dialog h2{font-size:20px}#marketingPreviewSubject{overflow-wrap:anywhere}#marketingPreviewDialog iframe{height:60vh;min-height:280px;background:#f2f5f7}#marketingPanel .pagination{margin-top:12px;flex-wrap:wrap}#marketingActionStatus{margin-top:12px}

@media(max-width:480px){.marketing-preview-dialog{padding:16px}#marketingPreviewDialog iframe{height:62vh;margin-top:12px}}
/* Todas as opções permanecem acessíveis em telas baixas e com zoom. */
@media(min-width:691px){
 #masterShell>.sidebar{height:100vh;height:100dvh;min-height:0;overflow:hidden}
 #masterShell>.sidebar>.brand,#masterShell>.sidebar>.sidebar-bottom{flex-shrink:0}
 #masterShell>.sidebar>.nav-list{min-height:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;align-content:start;padding-bottom:12px;scrollbar-gutter:stable}
 #masterShell>.sidebar>.sidebar-bottom{padding-top:14px}
}
@media(max-width:690px){
 #masterShell>.sidebar>.nav-list{max-width:100%;min-width:0;overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px}
 #masterShell>.sidebar>.nav-list>.nav-item{flex:0 0 auto}
}

.ai-connection-ready-dot{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--success,#16845b);box-shadow:0 0 0 3px rgba(22,132,91,.12);vertical-align:middle;flex-shrink:0}

/* Extrato por documento: leitura e correções no mesmo diálogo acessível. */
[data-ai-document]{cursor:pointer}[data-ai-document]:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}#aiDocumentReport{width:min(760px,calc(100vw - 32px));max-height:85dvh;overflow:auto;overflow-wrap:anywhere}#aiDocumentReport section{padding:16px 0;border-top:1px solid var(--line)}#aiDocumentReport .ai-read-result dl{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2fr);gap:8px 14px}#aiDocumentReport dt{font-weight:600}#aiDocumentReport dd{margin:0}@media(max-width:480px){#aiDocumentReport .ai-read-result dl{grid-template-columns:1fr;gap:4px}#aiDocumentReport dd{margin-bottom:10px}}
