/* Elolog — identidade visual única (v56). Carrega em ÚLTIMO lugar no site e na aplicação.
   Uma só fonte de verdade: cores, tipografia, espaçamento, cantos, grelha, navegação ativa, formulários, tabelas e cartões.
   As folhas antigas continuam a existir, mas as variáveis delas passam a apontar para estes tokens. */
:root{
  /* cor */
  --e-azul:#236186;--e-azul-esc:#1a4d6c;--e-azul-claro:#e8f1f7;--e-verde:#237E5F;--e-verde-claro:#e7f5ee;
  --e-tinta:#0E2433;--e-texto:#4b5d6b;--e-suave:#6b7d89;--e-fio:#e1e9ef;--e-fundo:#f3f6f8;--e-branco:#fff;
  --e-aviso:#b45309;--e-aviso-claro:#fdf3e2;--e-erro:#c2414b;--e-erro-claro:#fdecee;
  /* tipografia: 12 · 13 · 14 · 15 · 16 · 18 · 20 · 24 · 28 · 32 */
  --e-letra:"Work Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --t-xs:12px;--t-s:13px;--t-m:14px;--t-base:15px;--t-l:18px;--t-xl:22px;--t-2xl:28px;
  /* espaço (base 4) e cantos */
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;
  --r-s:10px;--r-m:14px;--r-l:18px;--r-pill:999px;
  --e-sombra:0 8px 22px rgba(14,36,51,.05);--e-sombra-alta:0 18px 40px rgba(14,36,51,.10);
  /* grelha: margem lateral fluida e largura máxima larga (aproveita ecrãs grandes) */
  --e-margem:clamp(16px,3vw,40px);--e-max:1640px;
  /* folhas antigas → tokens */
  --elo-primary:var(--e-azul);--elo-primary-700:var(--e-azul-esc);--elo-ink:var(--e-tinta);--elo-muted:var(--e-suave);--elo-line:var(--e-fio);
  --elo-canvas:var(--e-fundo);--elo-radius:var(--r-m);--ac-azul:var(--e-azul);--ac-azul-esc:var(--e-azul-esc);--ac-verde:var(--e-verde);
  --ac-tinta:var(--e-tinta);--ac-texto:var(--e-texto);--ac-fio:var(--e-fio);--pv-tinta:var(--e-tinta);--pv-texto:var(--e-texto);
  --pv-suave:var(--e-suave);--pv-fio:var(--e-fio);--pv-azul:var(--e-azul);--pv-verde:var(--e-verde)}
html body{font-family:var(--e-letra)!important;color:var(--e-tinta)}
html body :is(input,select,textarea,button){font-family:inherit}

/* ---------- grelha: o conteúdo usa a largura do ecrã com margens iguais em todos os perfis ---------- */
html body .main .content,html body.provider-user-mode .content{width:100%!important;max-width:var(--e-max)!important;margin-inline:auto!important;
  padding-inline:var(--e-margem)!important;box-sizing:border-box}
html body :is(.painel-admin,.provider-page>.card,.provider-page>div.card){max-width:none!important}
html body .field-operator-center .field-dashboard-hero{margin-top:var(--s-5)!important}

/* ---------- navegação: só a secção ativa é realçada ---------- */
html body .sidebar .menu button[aria-expanded=true]:not([aria-current]):not(.secao-ativa):not(.active){background:transparent!important;box-shadow:none!important;font-weight:inherit}
html body .sidebar .menu button.secao-ativa{position:relative;color:#fff!important;font-weight:700!important}
html body .sidebar .menu button.secao-ativa::before{content:"";position:absolute;left:4px;top:50%;width:4px;height:22px;margin-top:-11px;border-radius:4px;background:#5ccf9b}
html body .sidebar .menu :is(.client-submenu,.provider-submenu) button[aria-current=page]{background:rgba(255,255,255,.14)!important;color:#fff!important;font-weight:700!important;box-shadow:none!important}
html body .provider-desktop-nav .provider-more-trigger.active{color:var(--e-azul)!important;box-shadow:inset 0 -2px 0 var(--e-azul)!important}
html body .provider-more-trigger[aria-expanded=true] span{transform:rotate(180deg)}

/* ---------- cartões e superfícies ---------- */
html body .main :is(.card,.pa-cartao,.provider-work-card){border-radius:var(--r-l)!important}
html body .main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){border-radius:var(--r-s)!important;max-width:100%}
html body input[type=file]{max-width:100%;min-width:0}

/* ---------- formulários: grelha que se adapta; campo inválido com mensagem ---------- */
html body .main :is(.manifest-toolbar,.provider-work-filters,.admin-operation-detail-filters){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:var(--s-3)!important}
html body [aria-invalid=true]{border-color:var(--e-erro)!important;box-shadow:0 0 0 3px rgba(194,65,75,.12)!important}
html body .campo-erro{display:block;margin-top:var(--s-1);color:var(--e-erro);font-size:var(--t-xs);font-weight:600}

/* ---------- linhas de ações: as secundárias ficam em «Mais ações» (componentes.js) ---------- */
.acoes-mais{position:relative;display:inline-block}
.acoes-mais>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 16px;border:1px solid var(--e-fio);border-radius:var(--r-s);
  background:#fff;color:var(--e-tinta);font-weight:700;font-size:var(--t-m)}
.acoes-mais>summary::-webkit-details-marker{display:none}
.acoes-mais>summary::after{content:"⌄";font-size:var(--t-xs);transition:transform .2s}.acoes-mais[open]>summary::after{transform:rotate(180deg)}
@media(hover:hover){.acoes-mais>summary:hover{border-color:var(--e-azul);color:var(--e-azul)}}
.acoes-mais>div{position:absolute;right:0;bottom:calc(100% + 6px);z-index:30;display:grid;min-width:190px;padding:6px;border:1px solid var(--e-fio);border-radius:var(--r-m);background:#fff;box-shadow:var(--e-sombra-alta)}
.acoes-mais>div>button{justify-content:flex-start!important;width:100%;margin:0!important;border:0!important;background:transparent!important;box-shadow:none!important;text-align:left;color:var(--e-tinta)!important}
@media(hover:hover){.acoes-mais>div>button:hover{background:var(--e-fundo)!important}}

/* ---------- alerta: botão em contorno (regra da casa) ---------- */
html body .field-operator-center .field-alert-strip>button{background:#fff!important;color:var(--e-aviso)!important;border:1px solid currentColor!important;box-shadow:none!important}
@media(hover:hover){html body .field-operator-center .field-alert-strip>button:hover{background:var(--e-aviso)!important;color:#fff!important}}
/* terreno: o cabeçalho repetia o título do painel */
html body #providerFieldTeam:has(.field-dashboard-hero) .provider-section-top>div:first-child{display:none}
html body #providerFieldTeam:has(.field-dashboard-hero) .provider-section-top{justify-content:flex-end}

/* menu lateral: os itens deslizam por cima de «Sair» em vez de o tapar */
@media(min-width:901px){html body #sidebar.sidebar>.menu{flex:1 1 auto;min-height:0;overflow-y:auto;margin-bottom:84px!important;scrollbar-width:thin}}
/* ---------- tablet ---------- */
@media(max-width:1024px){html body #sidebar.sidebar:not(.open){box-shadow:none!important}}

/* ---------- telemóvel: tabelas passam a cartões, menus e alvos de toque maiores ---------- */
@media(max-width:640px){
  html body table.tabela-cartoes,html body table.tabela-cartoes tbody{display:block;width:100%}
  html body table.tabela-cartoes thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  html body table.tabela-cartoes tr{display:block;margin:0 0 var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--e-fio);border-radius:var(--r-m);background:#fff}
  html body table.tabela-cartoes td{display:flex;justify-content:space-between;gap:var(--s-3);padding:6px 0!important;border:0!important;text-align:right;font-size:var(--t-m)}
  html body table.tabela-cartoes td[data-label]::before{content:attr(data-label);flex:none;max-width:45%;color:var(--e-suave);font-size:var(--t-xs);font-weight:700;text-align:left;text-transform:uppercase;letter-spacing:.04em}
  html body .topbar:has(.ct-pesquisa){flex-wrap:wrap!important;row-gap:var(--s-2)}
  html body .topbar .ct-pesquisa{order:9;flex:1 1 100%!important;width:100%!important;max-width:none!important}
  html body .field-operator-center .field-dashboard-hero{padding:20px!important}
  html body .field-operator-center .field-dashboard-hero h3{font-size:var(--t-xl)!important}
  html body .rodape a{display:inline-flex;align-items:center;min-height:36px}
  html body .acoes-mais>div{bottom:auto;top:calc(100% + 6px)}
  html body .field-dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}html body .field-dashboard-kpis>button{min-width:0!important}
  html body .vz :is(span,p,strong){min-width:0;max-width:100%;white-space:normal!important;overflow-wrap:anywhere}
  html body .topbar #pageTitle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--t-l)!important}
  html body .main :is(.manifest-summary,.maritime-summary,.finance-kpis,.field-kpis,.field-cash-summary,.provider-report-kpis,.provider-payment-summary,.provider-history-summary,.provider-employee-summary,.provider-complaint-summary,.admin-module-grid){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--s-2)!important}
}
html body .field-invalid{border-color:var(--e-erro)!important;box-shadow:0 0 0 3px rgba(194,65,75,.12)!important}
html body .sidebar .menu .provider-menu-main.active:not(.secao-ativa){background:transparent!important;box-shadow:none!important;color:inherit!important}
html body .main .admin-module-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important}
html body .client-doc-file-label{position:relative;overflow:hidden}html body .client-doc-file-label>input[type=file]{inset:0;width:100%!important;height:100%}
html body .provider-desktop-more.aberto .provider-more-menu{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}

/* ---------- v57: validação, gestão de prestadores, personalizar painel, histórico ---------- */
/* listas de registos: uma linha por registo, colunas alinhadas, ações à direita */
html body .validacao-lista>h4{margin:0 0 4px;font-size:var(--t-l);color:var(--e-tinta)}html body .validacao-lista>p{margin:0 0 var(--s-4);color:var(--e-suave);font-size:var(--t-s)}
html body .admin-provider-item{display:grid!important;grid-template-columns:minmax(200px,1.6fr) minmax(130px,.9fr) minmax(180px,1.2fr) minmax(110px,auto) auto;align-items:center;gap:var(--s-5)!important;
  margin:0!important;padding:var(--s-4) 0!important;border:0!important;border-top:1px solid var(--e-fio)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
html body .admin-provider-item>div{display:grid;gap:2px;min-width:0}html body .admin-provider-item small{color:var(--e-suave);font-size:var(--t-xs)}
html body .admin-provider-item strong{color:var(--e-tinta);font-size:var(--t-base);overflow-wrap:anywhere}
html body .admin-provider-item .admin-provider-actions{display:flex!important;justify-content:flex-end;gap:var(--s-2);grid-column:auto!important;margin:0!important}
.estado-pill{justify-self:start;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);font-size:var(--t-xs);font-weight:700;background:var(--e-fundo);color:var(--e-texto)}
.estado-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.estado-pill.approved{background:var(--e-verde-claro);color:var(--e-verde)}.estado-pill.pending{background:var(--e-aviso-claro);color:var(--e-aviso)}
.estado-pill:is(.rejected,.suspended){background:var(--e-erro-claro);color:var(--e-erro)}
html body .admin-record-row{display:grid!important;grid-template-columns:minmax(200px,1.3fr) minmax(200px,1.4fr) auto;align-items:center;gap:var(--s-5)!important;padding:var(--s-4) 0!important;
  border:0!important;border-top:1px solid var(--e-fio)!important;border-radius:0!important;background:transparent!important;margin:0!important;box-shadow:none!important}
html body .admin-record-row>div{min-width:0}html body .admin-record-row>div:not(.admin-action-menu){display:grid;gap:4px;justify-items:start}
html body .admin-record-row small{color:var(--e-suave);font-size:var(--t-s)}
html body .admin-record-row .admin-action-menu{display:flex!important;flex-wrap:nowrap!important;justify-content:flex-end;align-items:center;gap:var(--s-2)}
html body .acoes-mais .acao-perigo{color:var(--e-erro)!important;border-top:1px solid var(--e-fio)!important;border-radius:0 0 8px 8px!important;margin-top:4px!important}
@media(hover:hover){html body .acoes-mais .acao-perigo:hover{background:var(--e-erro-claro)!important}}
html body :is(.admin-provider-item,.admin-record-row) .acoes-mais>div{bottom:auto;top:calc(100% + 6px)}

/* personalizar o painel: lista em colunas iguais, setas compactas lado a lado */
html body .pw-pers ul{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))!important;gap:0 var(--s-6)!important;margin:0 0 var(--s-4)!important;padding:0!important;list-style:none}
html body .pw-pers li{display:flex!important;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:52px;padding:6px 0!important;border:0!important;border-bottom:1px solid var(--e-fio)!important;border-radius:0!important;background:transparent}
html body .pw-pers li:has(input:not(:checked)) label{color:var(--e-suave)!important;font-weight:600!important}
html body .pw-pers li label{display:flex!important;align-items:center;gap:10px;flex:1;min-width:0;margin:0!important;font-size:var(--t-m)!important;font-weight:700;color:var(--e-tinta);cursor:pointer;line-height:1.3}
html body .pw-pers li input[type=checkbox]{flex:none;width:18px;height:18px;margin:0;accent-color:var(--e-azul)}
html body .pw-pers li>span{display:flex!important;flex-direction:row!important;flex:none;gap:4px}
html body .pw-pers li>span button{width:32px!important;height:32px!important;min-height:0!important;padding:0!important;display:grid!important;place-items:center;border:1px solid var(--e-fio)!important;border-radius:8px!important;background:#fff!important;box-shadow:none!important}
html body .pw-pers li>span button:disabled{opacity:.35}@media(hover:hover){html body .pw-pers li>span button:not(:disabled):hover{border-color:var(--e-azul)!important;color:var(--e-azul)!important}}

/* menos caixas: filtros e controlos sem moldura própria dentro do cartão */
html body :is(.provider-history-controls,.provider-history-filters,.manifest-toolbar,.provider-work-filters,.card>.admin-toolbar){border:0!important;background:transparent!important;box-shadow:none!important;padding-inline:0!important}
/* histórico de encomendas: indicadores numa faixa, separadores calmos, lista dentro de um cartão */
html body .provider-history-summary{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important;border:1px solid var(--e-fio);border-radius:var(--r-l);background:#fff;overflow:hidden;box-shadow:var(--e-sombra)}
html body .provider-history-summary>div{padding:18px 20px!important;border:0!important;border-radius:0!important;background:transparent!important}
html body .provider-history-summary>div+div{border-left:1px solid var(--e-fio)!important}html body .provider-history-summary>div::before{display:none!important}
html body .provider-history-summary small{display:flex;align-items:center;gap:7px;color:var(--e-texto);font-size:var(--t-s);font-weight:700}
html body .provider-history-summary small::before{content:"";width:8px;height:8px;border-radius:50%;background:#c8d6e0}
html body .provider-history-summary .active small::before{background:var(--e-azul)}html body .provider-history-summary .delivered small::before{background:var(--e-verde)}
html body .provider-history-summary strong{font-size:var(--t-2xl)}
html body .provider-history-tabs button{min-height:36px!important;padding:0 14px!important;border:1px solid var(--e-fio)!important;background:#fff!important;color:var(--e-texto)!important;box-shadow:none!important;font-size:var(--t-s)!important}
html body .provider-history-tabs button.active{background:var(--e-azul-claro)!important;border-color:var(--e-azul)!important;color:var(--e-azul)!important}
html body .provider-history-filters label{color:var(--e-suave)!important;font-size:var(--t-xs)!important;text-transform:uppercase;letter-spacing:.05em}
html body .provider-history-filters :is(input,select){font-size:var(--t-m)!important;font-weight:500!important;text-transform:none;letter-spacing:0;color:var(--e-tinta)}
html body .provider-history-list-head{margin-top:var(--s-2);padding:12px 20px!important;border:1px solid var(--e-fio);border-bottom:0;border-radius:var(--r-m) var(--r-m) 0 0;background:var(--e-fundo);color:var(--e-suave)!important;font-size:var(--t-xs)!important;text-transform:uppercase;letter-spacing:.05em}
html body .provider-history-list{border:1px solid var(--e-fio);border-radius:0 0 var(--r-m) var(--r-m);background:#fff;overflow:hidden}
html body .provider-history-list>.provider-history-row{margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
html body .provider-history-list>.provider-history-row+.provider-history-row{border-top:1px solid var(--e-fio)!important}
html body .provider-history-list>.provider-order-empty{margin:0!important;padding:40px 20px!important;border:0!important;background:#fff!important;text-align:center;color:var(--e-suave)}
html body .provider-history-list>.provider-order-empty::before{content:"";display:block;width:44px;height:44px;margin:0 auto 12px;border-radius:50%;background:var(--e-azul-claro) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23236186' stroke-width='1.8'%3E%3Cpath d='M21 8 12 3 3 8v8l9 5 9-5z'/%3E%3Cpath d='m3 8 9 5 9-5M12 13v8'/%3E%3C/svg%3E") center/22px no-repeat}
@media(max-width:1100px){html body .admin-provider-item{grid-template-columns:1fr 1fr}html body .admin-provider-item .admin-provider-actions{grid-column:1/-1!important;justify-content:flex-start}
  html body .admin-record-row{grid-template-columns:1fr auto}html body .admin-record-row .admin-action-menu{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:640px){html body .admin-provider-item{grid-template-columns:1fr}html body .admin-record-row{grid-template-columns:1fr}
  html body .provider-history-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}html body .provider-history-summary>div:nth-child(3){border-left:0!important}
  html body .provider-history-summary>div:nth-child(n+3){border-top:1px solid var(--e-fio)!important}html body .provider-history-list-head{display:none!important}
  html body .provider-history-list{border-radius:var(--r-m)}html body .provider-history-tabs{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none}}

/* ---------- v58: prestador com menu lateral (igual ao cliente e à administração) ---------- */
html body.prov-lateral .provider-desktop-header{display:none!important}
html body.prov-lateral .topbar>#pageTitle{display:block!important}
html body.prov-lateral .topbar>.notification-center{position:relative!important;right:auto!important;top:auto!important;transform:none!important;margin-left:auto}
html body.prov-lateral .topbar{display:flex!important;align-items:center;gap:var(--s-3);height:auto!important;min-height:64px;padding:0 var(--e-margem)!important}
html body.prov-lateral #providerMenuStructure>button,html body.prov-lateral #providerMenuStructure .provider-menu-main{width:100%;text-align:left}
html body.prov-lateral #providerMenuStructure .provider-submenu{display:none}html body.prov-lateral #providerMenuStructure .provider-submenu.open{display:block}
@media(min-width:901px){html body.prov-lateral #app>.sidebar{display:flex!important}html body.prov-lateral #app>.main{flex:1 1 auto;width:auto!important;min-width:0}
  html body.prov-lateral .topbar>.mobile-menu{display:none!important}}
@media(max-width:900px){html body.prov-lateral .topbar>.mobile-menu{display:inline-flex!important}}
/* dashboard do prestador: cabeçalho discreto, faixa de indicadores e 4 painéis em 2 colunas */
html body .pd-novo{display:grid;gap:var(--s-5)}
html body .pd-topo{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;margin-top:var(--s-5)}
html body .pd-topo h3{margin:0;font-size:var(--t-2xl);color:var(--e-tinta)}html body .pd-topo p{margin:4px 0 0;color:var(--e-suave);font-size:var(--t-m)}
html body .pd-acoes{display:flex;gap:var(--s-2);flex-wrap:wrap}
html body .field-operator-center .pd-kpis{grid-template-columns:repeat(5,minmax(0,1fr))!important}
html body .pd-grelha{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5)}
html body .pd-grelha .field-board-panel{padding:var(--s-5)!important;min-width:0}
html body .pd-grelha .field-board-list{display:grid;gap:0}
html body .pd-grelha .field-board-item{border-radius:0!important;border:0!important;border-top:1px solid var(--e-fio)!important;background:transparent!important}
html body .pd-grelha .field-board-item:first-child{border-top:0!important}
html body .pd-etapa{display:inline-flex;align-self:center;justify-self:start;padding:3px 9px;border-radius:var(--r-pill);background:var(--e-azul-claro);color:var(--e-azul);font-size:var(--t-xs);font-weight:700;white-space:nowrap}
html body .pd-alerta .pd-ponto{width:10px;height:10px;border-radius:50%;align-self:center;background:var(--e-aviso);box-shadow:0 0 0 4px var(--e-aviso-claro)}
html body .pd-alerta.danger .pd-ponto{background:var(--e-erro);box-shadow:0 0 0 4px var(--e-erro-claro)}
@media(max-width:1200px){html body .field-operator-center .pd-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:900px){html body .pd-grelha{grid-template-columns:1fr}}
@media(max-width:640px){html body .field-operator-center .pd-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}html body .pd-topo h3{font-size:var(--t-xl)}html body .pd-acoes{width:100%}html body .pd-acoes>button{flex:1}}
html body.prov-lateral #providerMenuStructure>button{display:flex!important}
html body.prov-lateral #providerMenuStructure .mi-l{display:flex;align-items:center;gap:12px}
html body.prov-lateral #sidebar .field-sidebar-company{display:none!important}html body.prov-lateral #sidebar .field-sidebar-status{margin-left:0!important}
html body.prov-lateral .topbar :is(.elo-lang,.elo-idioma){position:static!important;transform:none!important;margin-left:auto!important}
html body.prov-lateral .topbar :is(.elo-lang,.elo-idioma)~.notification-center,html body.prov-lateral .topbar .notification-center{margin-left:0}
html body .pd-grelha .field-board-item{grid-template-columns:minmax(52px,auto) minmax(0,1fr) auto!important;gap:var(--s-4)!important}
html body.modo-lat #sidebar .menu button[aria-current=page]:not(.provider-menu-main){background:rgba(255,255,255,.14)!important;color:#fff!important;font-weight:700!important;box-shadow:none!important}
html body .field-operator-center .field-dashboard-kpis:not(.pd-kpis){grid-template-columns:repeat(auto-fit,minmax(160px,1fr))!important}html body .field-dashboard-kpis>button{min-width:0!important}
