
/* --muted e --line usam os mesmos valores de /static/landing.css de propósito
   (mesmo padrão de duplicação documentado em _header.html/_footer.html: as
   duas folhas de estilo não são carregadas juntas, então cada uma define seu
   próprio :root, mas esses dois tokens representam o mesmo cinza neutro nas
   duas telas — mantenha sincronizados se um dos dois mudar). --ink e a paleta
   de verde (--accent aqui / --green em landing.css) são intencionalmente
   diferentes: tom mais escuro/esverdeado no painel interno, mais neutro no
   site público — não é drift, não precisa igualar. */
:root{--bg:#f5f7f6;--card:#fff;--ink:#18322b;--muted:#69766f;--line:#dfe7e2;--accent:#176b55;--accent2:#dff1ea;--danger:#a33b3b;--shadow:0 5px 20px rgba(20,50,40,.06)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px system-ui,-apple-system,"Segoe UI",sans-serif}header{background:#123f34;color:#fff;padding:14px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px}header b{font-size:18px}.brand-link{color:inherit;text-decoration:none}.brand-link:hover{opacity:.85}.sub{opacity:.7;margin-left:10px}nav{display:flex;gap:7px;flex-wrap:wrap}nav a{color:#fff;text-decoration:none;padding:8px 10px;border-radius:7px}nav a:hover{background:#245d4f}main{max-width:1400px;margin:auto;padding:22px}.top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}h1{margin:0 0 5px;font-size:25px}h2{font-size:17px;margin:0 0 13px}.muted{color:var(--muted)}.cards,.grid3,.grid2{display:grid;gap:15px}.cards{grid-template-columns:repeat(3,1fr);margin-bottom:18px}.grid3{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:repeat(2,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:17px;box-shadow:var(--shadow);margin-bottom:16px}.card:target{outline:3px solid var(--accent);outline-offset:2px}.card strong{display:block;font-size:29px;margin-top:5px}.card small{color:var(--muted)}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#eef5f2}.formgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:end}.wide{grid-column:1/-1}.checks{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.checks label{font-weight:400;background:#f2f6f4;padding:7px;border-radius:7px}label{display:block;font-size:12px;font-weight:700;margin:8px 0 4px}input,select{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink)}input[type=checkbox],input[type=radio]{width:16px;height:16px;padding:0;flex:0 0 auto}button,.button{border:0;border-radius:8px;padding:9px 13px;cursor:pointer;text-decoration:none;display:inline-block;font:inherit}.primary{background:var(--accent);color:white}.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.danger{background:#fde8e8;color:var(--danger);padding:6px 9px}.status{background:var(--accent2);padding:4px 7px;border-radius:99px;font-size:12px}.flash{padding:11px 14px;border-radius:9px;margin-bottom:14px}.success{background:var(--accent2);color:#175743}.danger,.flash.danger{background:#fde8e8;color:#8e3030}.empty{text-align:center;padding:28px;color:var(--muted)}code{background:#eef2f0;padding:2px 5px;border-radius:4px}.login{display:flex;align-items:center;justify-content:center;min-height:100vh}.loginbox{width:360px;background:white;padding:28px;border-radius:15px;box-shadow:var(--shadow)}.loginbox h1{font-size:22px}.loginbox button{width:100%;margin-top:15px}.loginbox small{display:block;margin-top:16px;color:var(--muted)}@media(max-width:900px){.formgrid,.grid3{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}}@media(max-width:650px){header{align-items:flex-start;flex-direction:column;padding:15px}nav{overflow:auto}.cards,.formgrid,.grid3{grid-template-columns:1fr}main{padding:12px}.top{align-items:flex-start;flex-direction:column}table{font-size:12px}.card{overflow:auto}}

.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.stat span{color:var(--muted);font-size:12px}.stat b{display:block;font-size:30px;margin-top:5px}.section-head{display:flex;justify-content:space-between;align-items:center}.demand-list{display:flex;flex-direction:column;gap:10px}.demand-card{display:grid;grid-template-columns:62px 1fr 260px;gap:14px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px}.demand-date{background:#e8f3ef;border-radius:10px;text-align:center;padding:8px}.demand-date b{display:block;font-size:23px}.demand-date small{color:var(--muted)}.demand-main h3{font-size:14px;margin:6px 0 3px}.demand-main p{margin:0;color:var(--muted);font-size:12px}.demand-people{display:flex;flex-wrap:wrap;gap:5px}.mini-person{background:#eef6f2;border-radius:20px;padding:5px 8px;font-size:11px;display:flex;align-items:center;gap:5px}.mini-person i{font-style:normal;background:#26775f;color:white;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center}.unassigned{color:#a06d2d;background:#fff4df;padding:6px 8px;border-radius:8px;font-size:11px}
.week-grid{padding:0;overflow:hidden}.week-scroll{overflow:auto}.agenda-grid{min-width:930px;border-collapse:separate;border-spacing:0}.agenda-grid th,.agenda-grid td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.agenda-grid thead th{height:48px;background:#eaf3ef;text-align:center;font-size:12px;position:sticky;top:0;z-index:2}.agenda-grid .hour-col{width:75px;min-width:75px;text-align:center;background:#f4f7f6;color:var(--muted)}.agenda-grid tbody .hour-col{vertical-align:top;padding-top:10px;font-size:11px}.agenda-grid td{width:125px;min-width:125px;height:68px;vertical-align:top;padding:5px;background:#fff}.agenda-grid td:hover{background:#f7faf8}.schedule-person{display:flex;align-items:center;gap:6px;padding:6px;background:#e5f3ed;border:1px solid #c7e5d9;border-left:4px solid #2f8c6d;border-radius:8px;margin-bottom:5px}.schedule-person>span:last-child{display:flex;flex-direction:column;min-width:0}.schedule-person b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-person small{font-size:9px;color:#62756e;margin-top:2px}.avatar{width:25px;height:25px;min-width:25px;border-radius:50%;background:#26775f;color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800}.legend-row{display:flex;gap:18px;padding:9px 2px 17px;color:var(--muted);font-size:11px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:4px}.dot.green{background:#2f9b78}.dot.amber{background:#d79545}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px}.absence-item{display:flex;align-items:center;gap:9px;padding:8px;border:1px solid var(--line);border-radius:9px;margin-bottom:7px}.absence-item>div{display:flex;flex-direction:column}.absence-item small{color:var(--muted);font-size:11px}.amber-bg{background:#b67a38}.icon-danger{margin-left:auto;border:0;background:#fde8e8;color:#a33b3b;border-radius:6px;padding:4px 8px}.sample{max-width:180px}.month-form{display:flex;gap:7px}.month-form input{width:auto}
@media(max-width:800px){.page-head{align-items:flex-start;flex-direction:column}.stat-grid{grid-template-columns:1fr}.demand-card{grid-template-columns:50px 1fr}.demand-people{grid-column:2}.two-col{grid-template-columns:1fr}}

/* Organização de demandas */
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow:auto}.tabs a{padding:10px 14px;text-decoration:none;color:var(--ink);font-weight:700;border-radius:9px 9px 0 0}.tabs a:hover{background:#eef5f2}.tabs a.active{background:var(--accent2);color:var(--accent)}

/* Escala (dias como colunas, dividido em manhã/tarde/noite) */
.escala-wrap{padding:0;overflow:hidden}.escala-scroll{overflow:auto}
.escala-grid{display:grid;grid-template-columns:repeat(7,minmax(170px,1fr));min-width:1100px}
.escala-day{border-right:1px solid var(--line)}.escala-day:last-child{border-right:0}
.escala-day-head{background:#eaf3ef;text-align:center;font-weight:800;font-size:12px;padding:12px 8px;border-bottom:1px solid var(--line);position:sticky;top:0}
.escala-period{padding:10px;border-bottom:1px dashed var(--line)}.escala-period:last-child{border-bottom:0}
.escala-period-head{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}
.escala-empty{color:var(--muted);font-size:11px;padding:4px 0}

/* Categorias */
.category-picker{display:flex;gap:6px;align-items:center}
.category-picker select,.category-picker input{margin-top:0;flex:1}
.category-picker button{flex:none;padding:9px 13px}

/* Sinais - ajusta o design dos vídeos */
.video-container {
    width: 100%;
    aspect-ratio: 16 / 9;
    margin-top: 15px;
    overflow: hidden;
    border-radius: 8px;
    background: #000;
}

.video-container iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* Estilo da paginação */
.pagination{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:18px 0}.pagination .muted{margin-right:auto}

/* Mostra a referência em periódicos */
.reference-text{display:none;background:#f2f6f4;border-radius:8px;padding:9px;margin-top:6px}.reference-text.open{display:block}
.link-button{background:none;border:none;color:var(--accent);text-decoration:underline;cursor:pointer;font-size:.85em;padding:0;margin-left:6px}
.link-button:hover{color:var(--accent2)}

/* Horário (matriz pessoa x dia da semana) */
.hours-matrix th,.hours-matrix td{text-align:center}.hours-matrix td:first-child,.hours-matrix th:first-child{text-align:left}
.hour-chip{display:inline-block;background:#e5f3ed;border:1px solid #c7e5d9;color:#1f5f4a;border-radius:99px;padding:4px 9px;font-size:11px;font-weight:700;margin:2px}.anchor-section{scroll-margin-top:15px}.filter-bar{display:flex;gap:10px;align-items:end;margin:14px 0;flex-wrap:wrap}.filter-bar label{min-width:170px}.table-wrap{overflow:auto}.cell-note{display:block;color:var(--muted);margin-top:3px}.inline-form{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.inline-form summary{cursor:pointer;font-weight:700}.compact-form{margin-top:12px}.register-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:16px}.suggestion-box{height:max-content;position:sticky;top:15px}.full{width:100%;margin:10px 0}.suggest-result{min-height:80px;margin-top:12px}.recommend-list{display:flex;flex-direction:column;gap:7px;margin-top:9px}.recommend,.person-option{display:flex;align-items:center;gap:9px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}.recommend span{display:flex;flex-direction:column}.recommend small{color:var(--muted);font-size:11px;margin-top:2px}.people-picker{display:flex;flex-direction:column;gap:6px;max-height:310px;overflow:auto}.selected-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.selected-list .mini-person{background:#e8f3ef}.report-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.report-card{overflow:auto}@media(max-width:900px){.register-layout{grid-template-columns:1fr}.suggestion-box{position:static}}.kind-toggle{display:flex;gap:12px;margin-bottom:14px;flex-wrap:wrap}.kind-toggle.person-option,.kind-toggle .person-option{flex:1;min-width:220px}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row-actions form{margin:0}
@media print{body{background:#fff}.no-print,header,nav{display:none!important}main{max-width:none;padding:0}.card{box-shadow:none;border:0;padding:0}.report-head{margin-bottom:10px}table{font-size:11px}th{background:#eee!important}.report-page{padding:10px}}

.month-pagination{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.8rem 0 1rem}.month-pagination .muted{margin-right:auto}

.selected-remove{border:0;background:transparent;cursor:pointer;font-weight:800;margin-left:5px;padding:0 2px;color:inherit}.agenda-month-filter{justify-content:space-between}.month-search-form{display:flex;gap:10px;align-items:end}.month-search-form label{min-width:190px}@media(max-width:700px){.agenda-month-filter,.month-search-form{flex-direction:column;align-items:stretch}.month-search-form label{min-width:0}}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.list-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #ddd}label{display:block;margin-top:8px;font-weight:600}input,textarea{width:100%;box-sizing:border-box;padding:9px;margin-top:4px}textarea{min-height:70px}
.authors-group{display:flex;flex-direction:column;gap:6px;margin-top:4px}.author-row{display:flex;gap:6px;align-items:center}.author-row input{margin-top:0}.author-row button{flex:none;padding:9px 13px}
.portal-layout{display:flex;gap:20px;align-items:flex-start;margin-top:16px}
/* top:94px = altura do .site-header (78px) + os 16px de respiro que a
   sidebar já tinha -- sem isso ela ficava escondida atrás do cabeçalho
   (também sticky) ao rolar a página. Mesmo ajuste do .site-header no
   breakpoint de 1100px, que encolhe pra 68px. */
.portal-sidebar{display:flex;flex-direction:column;gap:6px;width:220px;flex:none;position:sticky;top:94px}
.portal-nav-btn{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;box-shadow:var(--shadow)}
.portal-nav-btn:hover{background:#f2f6f4}
.portal-nav-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}
.portal-nav-btn .count{background:var(--accent2);color:var(--accent);border-radius:99px;padding:2px 9px;font-size:11px;font-weight:800}
.portal-nav-btn.active .count{background:rgba(255,255,255,.25);color:#fff}
.portal-content{flex:1;min-width:0}
.portal-section{display:none}
.portal-section.active{display:block}
@media(max-width:800px){.portal-layout{flex-direction:column}.portal-sidebar{flex-direction:row;flex-wrap:wrap;width:100%;position:static}.portal-nav-btn{flex:1;min-width:150px;justify-content:center}}
.institution-badge{display:inline-block;background:var(--accent2);color:#175743;padding:2px 9px;border-radius:99px;font-size:11px;font-weight:600;margin:2px 0 8px}
a.institution-badge{text-decoration:none;cursor:pointer}

/* Divulgação de Serviços: badges de status do anúncio */
.status-pill{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700}
.status-RASCUNHO{background:#eef1f0;color:#5a635f}
.status-AGUARDANDO_ANALISE{background:#fff4df;color:#a06d2d}
.status-PUBLICADO{background:var(--accent2);color:#175743}
.status-REJEITADO{background:#fde8e8;color:#8e3030}
.status-SUSPENSO{background:#fde8e8;color:#8e3030}
.status-ENCERRADO{background:#eef1f0;color:#5a635f}
.service-card{display:flex;flex-direction:column;gap:6px}
.service-card .status-pill{align-self:flex-start}
.contact-list{display:flex;flex-direction:column;gap:4px;margin:8px 0}
.contact-list a{color:var(--accent);text-decoration:none;font-weight:600}
.contact-list a:hover{text-decoration:underline}

/* Página Parceiros */

/* Grid responsivo */
.partners-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 20px;
}

/* Estilo dos cards */
.partner-card {
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 16px;
  background-color: #fff;
  transition: box-shadow 0.3s ease;
}
.partner-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.partner-card h2 {
  margin-bottom: 8px;
}
.partner-card .description {
  font-size: 0.9rem;
  color: #555;
}

/* Botão de destaque */
.button.primary.large {
  background-color: #007bff;
  color: #fff;
  padding: 14px 28px;
  border-radius: 6px;
  font-weight: bold;
  font-size: 1rem;
  display: inline-block;
  text-align: center;
}
.button.primary.large:hover {
  background-color: #0056b3;
}

/* Logo da empresa */
.partner-logo {
  width: 40px;
  height: 40px;
  object-fit: contain;
  margin-right: 8px;
  vertical-align: middle;
}
.partner-card h2 {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Divulgação de Serviços: busca com categoria e modalidade */
.periodicals-search.with-category{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.periodicals-search.with-category .search-field{position:relative;flex:1 1 240px;min-width:160px}
.periodicals-search.with-category .search-field svg{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:.45;pointer-events:none}
.periodicals-search.with-category .search-field input[type='text']{width:100%;padding-left:2.1rem}
.periodicals-search.with-category select{flex:0 1 200px;min-width:140px}
.periodicals-search.with-category .primary{flex:0 0 auto}
@media(max-width:640px){.periodicals-search.with-category{flex-direction:column;align-items:stretch}.periodicals-search.with-category .search-field,.periodicals-search.with-category select,.periodicals-search.with-category .primary{flex:1 1 auto;width:100%}}

/* Divulgação de Serviços: contador de resultados e estado vazio */
.results-count{margin:.25rem 0 1rem}
.empty .empty-hint{display:block;margin-top:.35rem;font-size:.9em}

/* Divulgação de Serviços: linha de contato nos cards da listagem */
.service-card .contact-line{display:flex;flex-wrap:wrap;gap:.9rem}
.service-card .contact-line span{display:inline-flex;align-items:center;gap:.35rem}
.service-card .contact-line a{color:inherit;text-decoration:none}
.service-card .contact-line a:hover{text-decoration:underline}

/* Divulgação de Serviços: tela de detalhe do anúncio */
.attendance-badges{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.attendance-pill{display:inline-block;background:var(--accent2);color:#175743;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700}
.service-code{color:var(--muted);font-size:11px}
.price-highlight{color:var(--accent);font-size:16px;margin:10px 0}
.price-highlight .price-unit{font-size:.8em;font-weight:400}
.disclaimer-box{display:flex;gap:8px;align-items:flex-start;background:#f2f6f4;border-radius:8px;padding:10px 12px;margin-top:14px}
.disclaimer-box span.icon{flex:none;line-height:1}
.disclaimer-box p{margin:0;color:var(--muted);font-size:.85em}

/* Cabeçalho padrão do site (mesmo estilo do landing.html/landing.css) —
   usado pelo componente app/templates/_header.html no site público e no
   painel administrativo. Prefixado com .site-header e com padding/display
   redeclarados de propósito para não herdar as regras do seletor genérico
   "header" já existente acima (que continua valendo, sem alteração, para
   qualquer tela que ainda não tenha migrado para este componente). */
.site-header{height:78px;background:#fff;border-bottom:1px solid #e6ece8;position:sticky;top:0;z-index:50;padding:0;display:block}
.site-header .header-inner{width:min(1210px,calc(100% - 48px));height:100%;margin:auto;display:flex;align-items:center;gap:28px}
.site-header .brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:0 0 auto;color:#111815}
.site-header .brand-mark{width:36px;height:36px;border-radius:50%;background:#2a9b58;color:#fff;display:grid;place-items:center;flex:none}
.site-header .brand-name{font-weight:800;font-size:14px;line-height:1.02;color:#111815}
.site-header .desktop-nav{display:flex;align-items:center;gap:24px;margin-left:auto}
.site-header .desktop-nav a{font-size:12px;font-weight:650;text-decoration:none;padding:29px 0 25px;border-bottom:2px solid transparent;white-space:nowrap;color:#111815;background:transparent}
.site-header .desktop-nav a:hover,.site-header .desktop-nav a.active{color:#07512f;background:transparent}
.site-header .desktop-nav a.active{border-bottom-color:#07512f}
.site-header .desktop-nav a,.site-header .desktop-nav a:focus,.site-header .desktop-nav a:focus-visible{outline:none}
.site-header .header-actions{display:flex;align-items:center;gap:10px}
.site-header .logged-user{font-size:12px;font-weight:650;color:#164e38;margin-right:2px;white-space:nowrap}
.site-header .btn{height:34px;padding:0 17px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:12px;font-weight:750}
.site-header .btn-outline{border:1px solid #5c987a;background:#fff;color:#164e38}
.site-header .btn-solid{border:1px solid #0b6840;background:#126440;color:#fff}
.site-header .mobile-menu{display:none}
@media (max-width:1100px){
    .site-header{height:68px}
    .portal-sidebar{top:84px}
    .site-header .header-inner{width:calc(100% - 30px)}
    .site-header .desktop-nav,.site-header .header-actions{display:none}
    .site-header .mobile-menu{display:block;margin-left:auto;position:relative}
    .site-header .mobile-menu summary{list-style:none;cursor:pointer;width:38px;height:38px;display:grid;place-content:center;gap:4px}
    .site-header .mobile-menu summary::-webkit-details-marker{display:none}
    .site-header .mobile-menu summary span{display:block;width:19px;height:1.5px;background:#14583c}
    .site-header .mobile-menu nav{position:absolute;right:0;top:45px;width:220px;background:#fff;border:1px solid #e1e8e4;border-radius:10px;box-shadow:0 18px 40px rgba(20,50,37,.15);padding:8px;display:flex;flex-direction:column}
    .site-header .mobile-menu nav a{padding:11px 12px;text-decoration:none;font-size:12px;border-radius:6px;color:#111815}
    .site-header .mobile-menu nav a:hover{background:#edf6f0;color:#176b4d}
}

/* Rodapé padrão do site (mesmo estilo do landing.html/landing.css) --
   usado pelo componente app/templates/_footer.html. */
.site-footer{background:#fff;border-top:1px solid #e1e8e4}
.site-footer .footer-inner{width:min(1210px,calc(100% - 48px));margin:auto;min-height:64px;padding:14px 0;display:flex;align-items:center;flex-wrap:wrap;gap:16px 30px}
.site-footer .footer-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#111815}
.site-footer .footer-brand .brand-mark{width:29px;height:29px;border-radius:50%;background:#2a9b58;color:#fff;display:grid;place-items:center;flex:none}
.site-footer .footer-brand .brand-name{font-weight:800;font-size:10px;line-height:1.15;color:#111815}
.site-footer .footer-copy{color:#77827d;font-size:9px;margin-right:auto}
.site-footer .footer-links{display:flex;flex-wrap:wrap;gap:20px}
.site-footer .footer-links a{font-size:9px;color:#3e4d46;text-decoration:none}
.site-footer .footer-links a:hover{color:#176b4d}
@media (max-width:650px){
    .site-footer .footer-inner{padding:16px 0;flex-wrap:wrap}
    .site-footer .footer-copy{order:3;width:100%;margin:6px 0 0}
}


/* Alternância "mostrar senha" (password-toggle.js) -- o script embrulha
   cada input[type=password] num span, então o botão precisa ser
   posicionado em cima do próprio campo. */
.pw-toggle-wrap{position:relative;display:block}
.pw-toggle-wrap input{padding-right:74px}
.pw-toggle-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;
    color:var(--accent);font-size:.8em;font-weight:700;cursor:pointer;padding:4px 6px}
.pw-toggle-btn:hover{text-decoration:underline}
.pw-match-msg{display:block;color:var(--danger);font-size:.85em;margin:-6px 0 8px}

/* Combobox pesquisável de cidade (city-combobox.js) -- o <select> original
   fica hidden logo depois, escondido mas ainda é ele que envia o valor no
   formulário. */
.city-combo{position:relative;flex:0 1 200px;min-width:140px}
.city-combo-input{height:100%}
.city-combo-list{
    position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;
    background:var(--card);border:1px solid var(--line);border-radius:8px;
    box-shadow:var(--shadow);max-height:260px;overflow:auto;
    margin:0;padding:4px;list-style:none;
}
.city-combo-item{padding:8px 10px;border-radius:6px;cursor:pointer;font-size:.9em}
.city-combo-item:hover,.city-combo-item.is-active{background:var(--accent2)}
.city-combo-empty{padding:8px 10px;color:var(--muted);font-size:.9em}
