/* Equipamento com risco de seguranca: motivos no relatorio de seguranca e na lista de dispositivos */
.it-risk-reasons{display:inline-flex;flex-wrap:wrap;gap:6px}

/* Dashboard por modulo: cartoes que se adaptam ao espaco real da area de conteudo, incluindo portateis com a barra lateral aberta. */
.dashboard-modules-wrap{display:grid;gap:var(--space-4)}
.dashboard-section-head{align-items:center;display:flex;flex-wrap:wrap;gap:6px 12px;justify-content:space-between}
.dashboard-section-head h2{font-size:var(--text-xl);margin:0}
.dashboard-modules{align-items:stretch;grid-template-columns:repeat(auto-fit,minmax(min(100%,560px),1fr))}
.dashboard-module{display:flex;flex-direction:column}
.dashboard-module-wide{grid-column:1/-1}
.dashboard-module-header{align-items:center}
.dashboard-module-heading{align-items:center;display:flex;gap:12px;min-width:0}
.dashboard-module-heading>div{display:grid;gap:3px;min-width:0}
.dashboard-module-heading h2{margin:0}
.dashboard-module-heading small{color:var(--muted);font-size:var(--text-sm);font-weight:600;line-height:1.3}
.dashboard-module-icon{align-items:center;background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--brand) 18%,var(--line));border-radius:12px;color:var(--brand);display:flex;flex:0 0 auto;height:44px;justify-content:center;width:44px}
.dashboard-module-icon svg{height:20px;width:20px}
.dashboard-module-header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.dashboard-module-open{align-items:center;background:transparent;border:1px solid var(--line);border-radius:9px;color:var(--brand);display:inline-flex;font-size:var(--text-sm);font-weight:800;gap:7px;min-height:34px;padding:6px 10px;transition:background .15s,border-color .15s,transform .15s}
.dashboard-module-open:hover{background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 30%,var(--line));transform:translateY(-1px)}
.dashboard-module-open:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.dashboard-module .panel-body{display:flex;flex:1;flex-direction:column;gap:var(--space-4)}
.dashboard-module-kpis{gap:12px;grid-template-columns:repeat(var(--kpi-cols,2),minmax(0,1fr))}
.dashboard-module-kpis .metric{height:100%;min-width:0;padding:14px}

/* Fotografia do utilizador: selecao no perfil e enquadramento antes de guardar. */
.profile-photo-editor{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-2xl);display:grid;gap:18px;grid-template-columns:auto minmax(0,1fr);padding:16px}
.profile-photo-editor p{color:var(--muted);line-height:1.45;margin:5px 0 12px}
.profile-photo-editor small{color:var(--success-text);display:block;font-weight:700;margin-top:9px;min-height:1.2em}
.profile-photo-preview{align-items:center;background:var(--brand-soft);border:3px solid var(--surface);border-radius:50%;box-shadow:0 0 0 1px var(--line);color:var(--brand);display:flex;font-size:26px;font-weight:800;height:104px;justify-content:center;overflow:visible;padding:0;position:relative;width:104px}
.profile-photo-preview>img{border-radius:50%;height:100%;object-fit:cover;width:100%}
.profile-photo-preview>.employee-avatar{border:0;border-radius:50%;height:100%;width:100%}
.profile-photo-preview>.employee-avatar img{border-radius:50%;height:100%;object-fit:cover;width:100%}
.profile-photo-camera{align-items:center;background:var(--brand);border:3px solid var(--surface);border-radius:50%;bottom:-3px;color:#fff;display:flex;height:34px;justify-content:center;position:absolute;right:-3px;width:34px}
.profile-photo-camera svg{height:17px;width:17px}
.profile-photo-actions{display:flex;flex-wrap:wrap;gap:8px}
.profile-photo-actions button{min-height:40px}
.avatar-crop-backdrop{align-items:center;background:#061b17bf;display:flex;inset:0;justify-content:center;padding:18px;position:fixed;z-index:10050}
.avatar-crop-dialog{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-3xl);box-shadow:var(--shadow-strong);display:grid;gap:18px;max-height:calc(100dvh - 36px);max-width:520px;overflow:auto;padding:20px;width:100%}
.avatar-crop-dialog>header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}
.avatar-crop-dialog h2{font-size:21px;margin:0}
.avatar-crop-dialog header p{color:var(--muted);line-height:1.45;margin:5px 0 0}
.avatar-crop-stage{background:#071f1a;display:grid;justify-content:center;margin:auto;max-width:360px;overflow:hidden;padding:14px;width:100%}
.avatar-crop-stage canvas{border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 999px #0005;cursor:grab;display:block;height:auto;max-width:100%;touch-action:none;width:332px}
.avatar-crop-stage canvas:active{cursor:grabbing}
.avatar-crop-zoom{align-items:center;display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr)}
.avatar-crop-zoom span{font-weight:800}
.avatar-crop-zoom input{accent-color:var(--brand);width:100%}
@media(max-width:520px){.profile-photo-editor{grid-template-columns:1fr;justify-items:center;text-align:center}.profile-photo-actions{justify-content:center}.avatar-crop-dialog{padding:16px}.avatar-crop-stage{padding:10px}}
@media(max-width:700px){
  .dashboard-module-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .dashboard-module-kpis>.metric:last-child:nth-child(odd){grid-column:1/-1}
}
@media(max-width:520px){
  .dashboard-module-header-actions{margin-left:0;width:100%}
  .dashboard-module-open{margin-left:auto}
}
@media(max-width:360px){
  .dashboard-module-kpis{grid-template-columns:1fr}
  .dashboard-module-kpis>.metric:last-child:nth-child(odd){grid-column:auto}
}
.dashboard-module-chart{align-content:center;border-top:1px solid var(--line);display:grid;flex:1;gap:12px;padding-top:var(--space-4)}
.dashboard-module-chart-head{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:space-between}
.dashboard-module-chart-head h3{font-size:var(--text-md);margin:0}

/* A analise longa continua disponivel, mas nao domina a primeira leitura do dashboard. */
.dashboard-attendance-details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-3xl);box-shadow:var(--shadow);overflow:hidden}
.dashboard-attendance-details>summary{align-items:center;cursor:pointer;display:grid;gap:14px;grid-template-columns:auto minmax(0,1fr) auto;list-style:none;padding:18px 20px;transition:background .15s}
.dashboard-attendance-details>summary::-webkit-details-marker{display:none}
.dashboard-attendance-details>summary::marker{content:""}
.dashboard-attendance-details>summary:hover{background:color-mix(in srgb,var(--brand-soft) 42%,var(--surface))}
.dashboard-attendance-details>summary:focus-visible{outline:2px solid var(--brand);outline-offset:-3px}
.dashboard-attendance-details-icon{align-items:center;background:var(--brand-soft);border-radius:11px;color:var(--brand);display:flex;height:42px;justify-content:center;width:42px}
.dashboard-attendance-details-icon svg{height:20px;width:20px}
.dashboard-attendance-details-copy{display:grid;gap:3px;min-width:0}
.dashboard-attendance-details-copy strong{font-family:Plus Jakarta Sans,Inter,Segoe UI,Arial,sans-serif;font-size:var(--text-xl)}
.dashboard-attendance-details-copy small{color:var(--muted);line-height:1.35}
.dashboard-attendance-details-toggle{align-items:center;color:var(--brand);display:flex;font-size:var(--text-sm);font-weight:800;gap:8px;white-space:nowrap}
.dashboard-attendance-hide{display:none}
.dashboard-attendance-details[open] .dashboard-attendance-show{display:none}
.dashboard-attendance-details[open] .dashboard-attendance-hide{display:inline}
.dashboard-attendance-details-toggle b{font-size:18px;transition:transform .18s}
.dashboard-attendance-details[open] .dashboard-attendance-details-toggle b{transform:rotate(180deg)}
.dashboard-attendance-details-body{border-top:1px solid var(--line);display:grid;gap:var(--space-4);padding:var(--space-4)}
@media(max-width:520px){
  .dashboard-attendance-details>summary{gap:10px;grid-template-columns:auto minmax(0,1fr) auto;padding:15px}
  .dashboard-attendance-details-copy strong{font-size:var(--text-lg)}
  .dashboard-attendance-details-toggle>span{display:none!important}
  .dashboard-attendance-details-body{padding:12px}
}

/* Aniversarios: lista vertical compacta, recolhida por defeito para nao alongar o dashboard. */
.dashboard-birthdays{overflow:hidden}
.dashboard-birthdays>.dashboard-birthdays-head{align-items:center;cursor:pointer;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto auto;list-style:none;min-height:62px;padding:10px 14px}
.dashboard-birthdays>.dashboard-birthdays-head::-webkit-details-marker{display:none}
.dashboard-birthdays>.dashboard-birthdays-head::marker{content:""}
.dashboard-birthdays>.dashboard-birthdays-head:hover{background:color-mix(in srgb,var(--brand-soft) 36%,var(--surface))}
.dashboard-birthdays>.dashboard-birthdays-head:focus-visible{outline:2px solid var(--brand);outline-offset:-3px}
.dashboard-birthdays-heading{align-items:center;display:flex;gap:11px;min-width:0}
.dashboard-birthdays-heading>div{display:grid;gap:2px;min-width:0}
.dashboard-birthdays-heading h2{font-size:var(--text-xl);margin:0}
.dashboard-birthdays-heading small{color:var(--muted);font-size:var(--text-sm)}
.dashboard-birthdays-icon{align-items:center;background:var(--brand-soft);border-radius:10px;color:var(--brand);display:flex;flex:0 0 auto;height:36px;justify-content:center;width:36px}
.dashboard-birthdays-icon svg{height:18px;width:18px}
.dashboard-birthdays-toggle{align-items:center;color:var(--brand);display:flex;font-size:var(--text-sm);font-weight:800;gap:7px;white-space:nowrap}
.dashboard-birthdays-hide{display:none}
.dashboard-birthdays[open] .dashboard-birthdays-show{display:none}
.dashboard-birthdays[open] .dashboard-birthdays-hide{display:inline}
.dashboard-birthdays-toggle b{font-size:18px;transition:transform .18s}
.dashboard-birthdays[open] .dashboard-birthdays-toggle b{transform:rotate(180deg)}
.dashboard-birthdays .birthday-list{border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;max-height:min(310px,50vh);overflow-y:auto;overscroll-behavior-block:contain;padding:8px 12px 12px;scrollbar-color:var(--brand) var(--surface-2);scrollbar-width:thin}
.dashboard-birthdays .birthday-list::-webkit-scrollbar{width:7px}
.dashboard-birthdays .birthday-list::-webkit-scrollbar-track{background:var(--surface-2);border-radius:999px}
.dashboard-birthdays .birthday-list::-webkit-scrollbar-thumb{background:var(--brand);border-radius:999px}
.dashboard-birthdays .birthday-row{background:var(--surface-2);border:1px solid var(--line);gap:9px;min-height:48px;padding:6px 9px}
.dashboard-birthdays .birthday-row .employee-avatar{height:32px;width:32px}
.dashboard-birthdays .birthday-row-info strong{font-size:var(--text-base)}
.dashboard-birthdays .birthday-row-info small{font-size:var(--text-xs)}
.dashboard-birthdays .birthday-row>.badge{flex:0 0 auto}
.dashboard-birthdays .birthday-list>.empty-state{padding:10px 0;text-align:left}
@media(max-width:520px){
  .dashboard-birthdays>.dashboard-birthdays-head{gap:9px;grid-template-columns:minmax(0,1fr) auto auto;padding:9px 12px}
  .dashboard-birthdays-toggle>span{display:none!important}
  .dashboard-birthdays .birthday-list{max-height:min(286px,48vh)}
}

/* Cabecalho do dashboard: o texto dos pedidos pendentes e um botao; linha do pedido destacada ao chegar la */
.dashboard-greeting-link{background:none;border:0;border-radius:6px;color:inherit;cursor:pointer;font:inherit;margin:0 0 0 -4px;padding:2px 4px;text-align:left;text-decoration:underline;text-decoration-color:#ffffff80;text-underline-offset:3px}
.dashboard-greeting-link:hover{background:#ffffff1f;text-decoration-color:#fff}
.dashboard-greeting-link:focus-visible{outline:2px solid #fff;outline-offset:2px}
.request-row-focus{outline:2px solid var(--warning);outline-offset:-2px}
.request-row-focus td{animation:requestRowFocus 4s ease-out}
@keyframes requestRowFocus{0%,60%{background:color-mix(in srgb,var(--warning) 28%,transparent)}100%{background:transparent}}
@media(prefers-reduced-motion:reduce){.request-row-focus td{animation:none;background:color-mix(in srgb,var(--warning) 22%,transparent)}}

/* ===== Filtros e pesquisa: estilo unificado em todos os modulos (mesmo desenho dos filtros das Assembleias) =====
   Aplica-se as barras de filtros existentes: .table-toolbar, .time-bank-filter, .it-assets-filter-bar e .form-actions com campos. */
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)){gap:12px 14px;align-items:end}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) :is(.field,label){gap:6px}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) :is(.field>span,label>span:first-child){font-size:var(--text-xs,11px);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select){height:42px;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-lg,10px);background-color:var(--surface);color:var(--text);font-size:var(--text-md,14px);box-shadow:none;transition:border-color .15s,box-shadow .15s}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select):hover{border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select):focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 16%,transparent)}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) input::placeholder{color:color-mix(in srgb,var(--muted) 80%,transparent)}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) select:not([multiple]){appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) :is(input[type=search],input[name=query],input[placeholder^="Pesquis"],input[placeholder^="Procur"],input[placeholder^="Categoria, marca"]){padding-left:40px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 13px center;background-size:17px}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.55}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}
:root[data-theme="dark"] :is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) input[type=date]{color-scheme:dark}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) :is(.secondary-action,.primary-action,.danger-action){min-height:42px;border-radius:var(--radius-lg,10px)}
.time-bank-filter{padding:16px 20px;background:color-mix(in srgb,var(--surface-2) 45%,var(--surface))}
.it-assets-filter-bar{margin:0 var(--space-4) var(--space-3);padding:16px;border-radius:var(--radius-xl,12px);background:var(--surface-2);border:1px solid var(--line)}
:is(.table-toolbar,.time-bank-filter,.it-assets-filter-bar,.form-actions:has(>.field)) select:not([multiple]){min-width:170px}
.table-toolbar>.field{min-width:210px}

/* ===== Componentes de pesquisa e filtros "fx-" (public/filtros-ui.js): Equipamentos e Pedidos de manutencao ===== */
.fx-barra{display:flex;flex-direction:column;gap:12px;padding:16px 20px 4px}
.fx-linha{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.fx-resultados{justify-content:space-between}
.fx-search{position:relative;display:flex;align-items:center;flex:1 1 320px;min-width:0}
.fx-search svg{position:absolute;left:15px;width:18px;height:18px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;pointer-events:none}
.fx-search input{width:100%;height:48px;padding:0 14px 0 44px;border:1px solid var(--line);border-radius:var(--radius-xl,12px);background:var(--surface);color:var(--text);font-size:var(--text-lg,15px);transition:border-color .15s,box-shadow .15s}
.fx-search input::placeholder{color:color-mix(in srgb,var(--muted) 80%,transparent)}
.fx-search input:hover,.fx-campo select:hover{border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}
.fx-search input:focus,.fx-campo select:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 16%,transparent)}
.fx-btn-filtros{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 18px;border:1px solid var(--line);border-radius:var(--radius-xl,12px);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer;transition:all .15s}
.fx-btn-filtros svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.fx-btn-filtros:hover{border-color:var(--brand);color:var(--brand)}
.fx-btn-filtros.aberto{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.fx-contador{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--brand);color:#fff;font-size:11px;font-weight:700}
.fx-painel{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px 16px;padding:16px;border-radius:var(--radius-xl,12px);background:var(--surface-2);border:1px solid var(--line)}
.fx-painel[hidden]{display:none}
.fx-campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.fx-campo>span{font-size:var(--text-xs,11px);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.fx-campo select{appearance:none;-webkit-appearance:none;width:100%;height:42px;min-height:42px;padding:0 38px 0 12px;border:1px solid var(--line);border-radius:var(--radius-lg,10px);color:var(--text);font-size:var(--text-md,14px);cursor:pointer;
  background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/16px;transition:border-color .15s,box-shadow .15s}
.fx-segmentos{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:var(--radius-xl,12px);background:var(--surface-2)}
.fx-seg{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--muted);font:inherit;font-size:var(--text-md,14px);font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s}
.fx-seg span{font-size:var(--text-sm,12px);font-weight:700;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--muted) 14%,transparent);color:var(--muted)}
.fx-seg:hover{color:var(--text)}
.fx-seg.ativo{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.05)}
.fx-seg.ativo span{background:var(--brand-soft);color:var(--brand)}
.fx-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.fx-dot-verde{background:#16a34a}.fx-dot-amarelo{background:#f59e0b}.fx-dot-vermelho{background:#dc2626}.fx-dot-cinza{background:#94a3b8}.fx-dot-azul{background:#3b82f6}
.fx-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fx-tag{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 4px 0 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--text-sm,12px)}
.fx-tag button{display:grid;place-items:center;width:20px;height:20px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.fx-tag button:hover{background:color-mix(in srgb,var(--brand) 18%,transparent)}
.fx-tag svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round}
.fx-tag-limpar{border:0;background:none;color:var(--muted);font:inherit;font-size:var(--text-sm,12px);font-weight:600;cursor:pointer;padding:0 6px}.fx-tag-limpar:hover{color:var(--danger-text,#b32d23)}
.fx-barra+*{margin-top:8px}
@media (max-width:640px){.fx-barra{padding:12px}.fx-btn-filtros{flex:1;justify-content:center}.fx-segmentos{width:100%}.fx-seg{flex:1 1 auto;justify-content:center}}

/* ===== Organograma: acertos de formatacao ===== */
/* avatares com iniciais: a regra ".orgchart-manager-card span" (texto cinzento, display:block, reticencias) apanhava tambem o avatar */
.orgchart-manager-card .employee-avatar,.orgchart-department-employee .employee-avatar{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-sm);font-weight:900;line-height:1;white-space:nowrap;text-overflow:clip;letter-spacing:.02em}
.orgchart-manager-card .employee-avatar.has-photo,.orgchart-department-employee .employee-avatar.has-photo{color:var(--text)}
.orgchart-manager-card .employee-avatar>span,.orgchart-department-employee .employee-avatar>span{display:inline;color:inherit;font-size:inherit;white-space:nowrap}
/* linhas de informacao dos cartoes: quebrar em vez de cortar com reticencias */
.orgchart-manager-main>div>small,.orgchart-manager-main>div>span{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35}
.orgchart-manager-main>div>strong{white-space:normal;line-height:1.25}
/* etiquetas de departamento (ex.: "Academia PROPRIO DEPT."): numa linha */
.orgchart-manager-card .orgchart-assignee strong,.orgchart-manager-card .orgchart-assignee small{display:inline;white-space:nowrap;overflow:visible}
.orgchart-assignee{gap:6px}
/* contador M / D / E na lista de departamentos: nao partir e nao apertar o nome */
.orgchart-department-nav-item>span:first-child{min-width:0}
.orgchart-department-nav-item .badge{flex:0 0 auto;white-space:nowrap;letter-spacing:.02em}
/* cabecalho: botoes e o estado "Gestao ativa" alinhados na mesma linha */
.orgchart-panel>.panel-header .panel-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.orgchart-manager-card .orgchart-assignee small{margin-left:6px}
.orgchart-panel>.panel-header{flex-wrap:wrap}.orgchart-panel>.panel-header .panel-actions{flex:0 1 auto;flex-wrap:nowrap}
@media (max-width:1100px){.orgchart-panel>.panel-header .panel-actions{flex-wrap:wrap}}

/* ===== Caixas de selecao (combobox): estilo base moderno em toda a plataforma =====
   :where() tem especificidade 0, por isso qualquer estilo proprio de um modulo continua a mandar;
   a seta propria e o appearance:none aplicam-se a todas as selects simples. */
:where(select:not([multiple]):not([size])){height:40px;min-height:40px;padding:0 38px 0 12px;border:1px solid var(--line);border-radius:var(--radius-lg,10px);background-color:var(--surface);color:var(--text);font:inherit;font-size:var(--text-md,14px);font-weight:500;line-height:1.2;max-width:100%;transition:border-color .15s,box-shadow .15s}
select:not([multiple]):not([size]){appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}
select:not([multiple]):not([size]):hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}
select:not([multiple]):not([size]):focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 16%,transparent)}
select:not([multiple]):not([size]):disabled{opacity:.6;cursor:not-allowed}
:root[data-theme="dark"] select{color-scheme:dark}

/* Combobox pesquisavel de fornecedor: o mesmo padrao visual e funcional de Compras. */
.obr-fornecedor-picker{position:relative;width:100%}
.obr-fornecedor-picker>input[role="combobox"]{width:100%;min-height:40px;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}
.obr-fornecedor-select-nativo{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.obr-fornecedor-resultados{z-index:30;max-height:280px;overflow:auto}
.obr-fornecedor-resultados button{width:100%;text-align:left}

/* Pedidos de manutencao: descricao com mudancas de linha e pre-visualizacao de anexos */
.facility-request-description{white-space:pre-wrap;line-height:1.55;margin:12px 0;padding:12px 14px;border-radius:var(--radius-lg,10px);background:var(--surface-2);border:1px solid var(--line)}
.facility-attachment-preview{margin:10px 0;display:grid;gap:6px;max-width:520px}
.facility-attachment-preview img,.facility-attachment-preview video{width:100%;max-height:360px;object-fit:contain;border-radius:var(--radius-lg,10px);border:1px solid var(--line);background:var(--surface-2)}
.facility-attachment-preview figcaption{font-size:var(--text-sm);color:var(--muted)}.facility-attachment-preview figcaption a{color:var(--brand);font-weight:600}

/* Service Desk: quadro com colunas Fechado/Cancelado e seletor Lista | Quadro */
.kanban{grid-template-columns:repeat(var(--kanban-cols,5),minmax(220px,1fr))}
.kanban-column-final{background:color-mix(in srgb,var(--surface-2) 70%,var(--surface))}
.kanban-ver-mais{width:100%;margin-top:8px}
.page-actions .fx-segmentos,.actions .fx-segmentos{vertical-align:middle}

/* Service Desk: cartoes do quadro legiveis */
.kanban{grid-template-columns:repeat(var(--kanban-cols,5),minmax(260px,1fr));padding-bottom:8px}
.kanban-column{display:flex;flex-direction:column;gap:10px;padding:12px}
.kanban-column>h3{display:flex;align-items:center;justify-content:space-between;margin:0 0 2px;font-size:var(--text-md,14px);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.kanban .ticket-card{display:flex;flex-direction:column;gap:8px;margin:0;padding:12px 14px;border-radius:var(--radius-lg,10px);box-shadow:0 1px 2px rgba(0,0,0,.04);transition:border-color .15s,box-shadow .15s,transform .15s}
.kanban .ticket-card:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));box-shadow:0 6px 16px rgba(10,57,52,.10);transform:translateY(-1px)}
.kanban .ticket-card-fechado{opacity:.92}
.tc-topo{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tc-id{font-size:var(--text-xs,11px);font-weight:700;letter-spacing:.04em;color:var(--muted)}
.kanban .ticket-card .tc-titulo{margin:0;color:var(--text);font-size:var(--text-md,14px);font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tc-chips{display:flex;flex-wrap:wrap;gap:4px}.tc-chips:empty{display:none}
.tc-chip{font-size:var(--text-xs,11px);font-weight:600;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.tc-pessoa{display:flex;align-items:center;gap:8px;font-size:var(--text-sm,12px);color:var(--text);min-width:0}
.tc-pessoa>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-avatar{flex:0 0 auto;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;background:linear-gradient(135deg,var(--brand),#00a86b);color:#fff;font-size:10px;font-weight:800}
.tc-avatar-sm{width:20px;height:20px;border-radius:6px;font-size:9px}
.tc-rodape{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:8px;border-top:1px solid var(--line);font-size:var(--text-xs,11px);color:var(--muted)}
.tc-tecnico{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text);white-space:nowrap}.tc-tecnico.vazio{color:var(--muted);font-weight:500;font-style:italic}
.tc-sla{font-size:var(--text-xs,11px);font-weight:600;color:var(--muted)}.tc-sla.atrasado{color:var(--danger-text,#b32d23)}

/* Quadros (Service Desk e Manutencao): colunas com scroll proprio, cabecalho fixo, barra de prioridade */
.kanban{align-items:start}
.kanban-column{max-height:calc(100vh - 230px);min-height:260px;overflow:hidden;padding:0;border:1px solid var(--line)}
.kanban-column>h3{position:sticky;top:0;z-index:1;margin:0;padding:12px 14px;background:inherit;border-bottom:1px solid var(--line)}
.kanban-column>h3>span:first-child{display:inline-flex;align-items:center;gap:8px;color:var(--text)}
.kanban-count{min-width:24px;height:22px;padding:0 8px;border-radius:999px;background:var(--surface);border:1px solid var(--line);display:inline-grid;place-items:center;font-size:var(--text-xs,11px);font-weight:700;color:var(--muted)}
.kanban-cards{display:flex;flex-direction:column;gap:10px;padding:12px;overflow-y:auto;max-height:calc(100vh - 280px)}
.kanban-vazio{padding:28px 10px;text-align:center;color:var(--muted);font-size:var(--text-sm,12px);border:1px dashed var(--line);border-radius:var(--radius-lg,10px)}
.kanban .kanban-card{border-left:4px solid var(--line)}
.kanban .kanban-card.prio-urgente,.kanban .kanban-card.prio-critica{border-left-color:#dc2626}
.kanban .kanban-card.prio-alta{border-left-color:#f59e0b}
.kanban .kanban-card.prio-media{border-left-color:#3b82f6}
.kanban .kanban-card.prio-baixa{border-left-color:#94a3b8}
.kanban .ticket-card-breached{box-shadow:0 0 0 1px var(--danger) inset}
/* Pedidos de manutencao: lista arrumada */
.mnt-lista table{table-layout:auto}
.mnt-pedido{display:flex;flex-direction:column;gap:2px;max-width:460px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.mnt-pedido small{font-size:var(--text-xs,11px);font-weight:700;letter-spacing:.03em;color:var(--muted)}
.mnt-pedido strong{font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mnt-pedido:hover strong{color:var(--brand)}
.mnt-data{font-size:var(--text-sm,12px);color:var(--muted);white-space:nowrap}
.mnt-paginacao{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid var(--line);color:var(--muted)}
.mnt-paginacao>div{display:inline-flex;align-items:center;gap:8px}.mnt-paginacao strong{color:var(--text)}
.mnt-paginacao .asb-pag-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:var(--radius-lg,10px);background:var(--surface);color:var(--text);cursor:pointer;font-size:20px;line-height:1}
.mnt-paginacao .asb-pag-btn:disabled{opacity:.4;cursor:default}
.mnt-lista td,.mnt-lista th{white-space:normal}
.mnt-lista td:nth-child(1){min-width:260px}.mnt-lista .mnt-pedido{max-width:420px}
.mnt-lista td:nth-child(3),.mnt-lista td:nth-child(6){max-width:170px}
.mnt-lista td:nth-child(4),.mnt-lista td:nth-child(5),.mnt-lista td:nth-child(7){white-space:nowrap}

/* Quadros: sem scroll interno (a pagina cresce); colunas finais com 5 + Mostrar mais */
.kanban-column{max-height:none;overflow:visible;min-height:200px}
.kanban-cards{max-height:none;overflow:visible}
.kanban-column>h3{position:static;border-radius:var(--radius-md) var(--radius-md) 0 0}
.kanban-mais{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:4px}.kanban-mais .secondary-action{width:100%}
.kanban-link{border:0;background:none;color:var(--brand);font:inherit;font-size:var(--text-sm,12px);font-weight:600;cursor:pointer}.kanban-link:hover{text-decoration:underline}

/* Equipa - produtividade (Manutencao e Service Desk) */
.equipa-panel .panel-header{flex-wrap:wrap;gap:12px}
.equipa-panel .panel-header small{display:block;margin-top:4px}
.equipa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.equipa-card{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-xl,12px);background:var(--surface)}
.equipa-card header{display:flex;align-items:center;gap:12px}
.equipa-card header strong{display:block;font-size:var(--text-lg,15px)}.equipa-card header small{color:var(--muted);font-size:var(--text-sm,12px)}
.equipa-avatar{width:40px;height:40px;border-radius:12px;font-size:14px}
.equipa-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.equipa-stats>div{padding:10px;border-radius:var(--radius-lg,10px);background:var(--surface-2);text-align:center}
.equipa-stats span{display:block;font-size:var(--text-xs,11px);color:var(--muted);font-weight:600}
.equipa-stats strong{display:block;margin-top:4px;font-size:20px;line-height:1.1}
.equipa-stats .alerta{background:color-mix(in srgb,var(--danger,#dc2626) 12%,var(--surface))}.equipa-stats .alerta strong{color:var(--danger-text,#b32d23)}
.equipa-barra>div{display:flex;justify-content:space-between;font-size:var(--text-sm,12px);color:var(--muted);margin-bottom:6px}.equipa-barra strong{color:var(--text)}
.equipa-barra i{display:block;height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.equipa-barra b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),#00a86b)}
.equipa-barra.volume b{background:linear-gradient(90deg,#3b82f6,#60a5fa)}
@media (max-width:520px){.equipa-stats{grid-template-columns:repeat(2,1fr)}}

/* Quadros: sem scroll horizontal - as colunas ajustam-se a largura e passam para a linha seguinte se nao couberem */
.kanban-column{min-width:0}
.kanban .ticket-card{min-width:0}.kanban .tc-pessoa>span:last-child,.kanban .tc-tecnico{min-width:0;overflow:hidden;text-overflow:ellipsis}
.kanban .tc-rodape{flex-wrap:wrap}

/* Quadros numa so linha, sem scroll horizontal: colunas vazias encolhem numa faixa vertical;
   as colunas com conteudo dividem a largura e, quando largas, mostram os cartoes em grelha */
.kanban{display:flex!important;gap:10px;align-items:stretch;overflow:visible!important}
.kanban>.kanban-column{flex:1 1 0;min-width:0}
.kanban>.kanban-column.kanban-column-vazia{flex:0 0 52px;min-height:220px}
.kanban-column-vazia>h3{writing-mode:vertical-rl;transform:rotate(180deg);display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:10px;height:100%;padding:14px 0;border-bottom:0;align-items:center}
.kanban-column-vazia>h3>span:first-child{gap:10px}
.kanban-column-vazia>h3 .kanban-count{writing-mode:horizontal-tb;transform:rotate(180deg)}
.kanban-column-vazia .kanban-cards{display:none}
.kanban-column-vazia.kanban-column-dragover{flex-basis:200px}
.kanban-cards{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));align-content:start}
.kanban-cards>.kanban-mais,.kanban-cards>.kanban-vazio{grid-column:1/-1}
.kanban-column-vazia>h3{transform:none!important;flex-direction:row!important;justify-content:flex-start!important;height:auto;padding:14px 0 14px}
.kanban-column-vazia>h3 .kanban-count{transform:none!important;margin-top:4px}
.kanban-column-vazia>h3>span:first-child{flex-direction:row}
.kanban-column-vazia .kanban-cards{display:none!important}

/* Quadros: titulo da coluna e botao de abrir/fechar */
.kanban-column>h3{padding:0!important}
.kanban-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:12px 14px;border:0;background:none;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;border-radius:inherit}
.kanban-toggle>span:first-child{display:inline-flex;align-items:center;gap:8px;color:var(--text)}
.kanban-toggle:hover{background:color-mix(in srgb,var(--brand) 8%,transparent)}
.kanban-column-vazia{cursor:pointer}
.kanban-column-vazia>h3{height:100%}
.kanban-column-vazia .kanban-toggle{writing-mode:vertical-rl;flex-direction:row;justify-content:flex-start;height:100%;min-height:200px;padding:14px 0}
.kanban-column-vazia .kanban-toggle>span:first-child{gap:10px}
.kanban-column-vazia .kanban-count{writing-mode:horizontal-tb;margin-top:6px}

/* Tabelas: ajustar a largura disponivel em vez de scroll horizontal (o texto parte de linha; etiquetas e botoes ficam inteiros) */
.table-wrap table{min-width:0;width:100%}
.table-wrap th,.table-wrap td{white-space:normal;overflow-wrap:break-word;word-break:normal}
.table-wrap .badge,.table-wrap button,.table-wrap .secondary-action,.table-wrap .primary-action,.table-wrap .danger-action{white-space:nowrap}
.table-wrap td:has(> button + button),.table-wrap td:has(> .secondary-action + .secondary-action){white-space:normal}
/* paineis com tabelas largas (6+ colunas) dentro de grelhas de 2 colunas ocupam a linha toda */
.grid>.panel:has(.table-wrap table th:nth-child(6)),.grid>section:has(.table-wrap table th:nth-child(6)){grid-column:1/-1}
.kanban:not(:has(.kanban-column:not(.kanban-column-vazia)))::after{content:"Todas as colunas estão fechadas. Clique no nome de uma coluna para ver os pedidos.";flex:1;display:grid;place-items:center;padding:40px;color:var(--muted);font-size:var(--text-md,14px);border:1px dashed var(--line);border-radius:var(--radius-md)}
/* quadros dentro de paineis: margens */
.panel>.kanban{padding:0 20px 20px}
.panel>.table-wrap{margin-top:0}

/* Dashboard: hero de boas-vindas */
.dashboard-hero{align-items:center;border:1px solid rgba(255,255,255,.14)!important;border-radius:var(--radius-3xl,16px)!important;box-shadow:0 20px 50px rgba(0,48,37,.3),inset 0 1px 0 rgba(255,255,255,.12);color:#fff;display:flex!important;gap:24px;isolation:isolate;justify-content:space-between;overflow:hidden;padding:28px 30px!important;position:relative;
  background:radial-gradient(760px 280px at 92% -45%,rgba(0,168,107,.24),transparent 62%),radial-gradient(520px 240px at -10% 120%,rgba(212,175,55,.13),transparent 62%),linear-gradient(135deg,#053f33 0%,#006247 50%,#092f28 100%)!important}
.dashboard-hero::before{background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:28px 28px;content:"";inset:0;mask-image:linear-gradient(90deg,transparent 0%,#000 58%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 58%,transparent 100%);pointer-events:none;position:absolute;z-index:0}
.dashboard-hero::after{border:1px solid rgba(255,255,255,.08);border-radius:50%;content:"";height:250px;pointer-events:none;position:absolute;right:-72px;top:-118px;width:250px;z-index:0}
.dashboard-hero-crest{position:absolute;right:210px;top:50%;width:230px;height:230px;object-fit:contain;transform:translateY(-50%) rotate(-8deg);opacity:.09;filter:grayscale(1) brightness(3);pointer-events:none}
.dashboard-hero-main{display:flex;flex:1;flex-direction:column;gap:8px;min-width:0;position:relative;z-index:1}
.dashboard-hero-eyebrow{font-size:var(--text-xs,11px);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#d4af37}
.dashboard-hero h2{margin:0;font-size:clamp(26px,3vw,36px);line-height:1.1;font-weight:800;letter-spacing:-.01em;color:#fff}
.dashboard-hero-context{margin:0;font-size:var(--text-lg,15px);color:#e8f5f0}
.dashboard-hero-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:3px}
.dashboard-hero-meta>span{align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:999px;color:#e8f5f0;display:inline-flex;font-size:var(--text-sm);font-weight:700;gap:7px;min-height:30px;padding:5px 10px}
.dashboard-hero-meta svg{height:15px;width:15px}
.dashboard-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.dashboard-hero-pill{display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 16px 0 6px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.12);color:#fff;font:inherit;font-size:var(--text-md,14px);font-weight:600;backdrop-filter:blur(6px)}
.dashboard-hero-pill.ok{padding-left:14px}
.dashboard-hero-pill.alerta{cursor:pointer;transition:background .15s,transform .15s}
.dashboard-hero-pill.alerta:hover{background:rgba(255,255,255,.2);transform:translateY(-1px)}
.dashboard-hero-pill-count{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:#f5b301;color:#2b2100;font-weight:800}
.dashboard-hero-pill-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.25)}
.dashboard-hero-clock{align-items:flex-end;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.14);border-radius:18px;display:flex;flex:0 0 auto;flex-direction:column;gap:4px;min-width:245px;padding:15px 17px;position:relative;text-align:right;z-index:1}
.dashboard-hero-clock-label{align-items:center;color:#d9eee7;display:inline-flex;font-size:var(--text-xs);font-weight:800;gap:6px;letter-spacing:.06em;text-transform:uppercase}
.dashboard-hero-clock-label svg{height:14px;width:14px}
.dashboard-hero-clock-time{color:#fff;font-family:Plus Jakarta Sans,Inter,Segoe UI,Arial,sans-serif;font-size:clamp(40px,4.5vw,52px);font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.03em;line-height:1}
.dashboard-hero-clock-date{color:#e8f5f0;font-size:var(--text-md,14px);font-weight:600}
.dashboard-hero :is(.hero-avisos):focus-visible{box-shadow:0 0 0 4px rgba(6,37,31,.38);outline:3px solid #fff;outline-offset:2px}
@media (max-width:780px){
  .dashboard-hero{align-items:flex-start;flex-direction:column;gap:18px;padding:22px!important}
  .dashboard-hero-main{padding-right:54px;width:100%}
  .dashboard-hero-main .hero-brand-seal{max-width:calc(100% - 2px)}
  .dashboard-hero-main .hero-brand-seal span{overflow:hidden;text-overflow:ellipsis}
  .dashboard-hero-clock{align-items:center;display:grid;gap:2px 14px;grid-template-columns:minmax(0,1fr) auto;min-width:0;padding:12px 14px;text-align:left;width:100%}
  .dashboard-hero-clock-label{grid-column:1;grid-row:1}
  .dashboard-hero-clock-date{font-size:13px;grid-column:1;grid-row:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dashboard-hero-clock-time{font-size:36px;grid-column:2;grid-row:1/3}
  .dashboard-hero-crest{right:-30px;width:180px;height:180px}
}
@media (max-width:420px){.dashboard-hero{padding-inline:16px!important}.dashboard-hero-clock-time{font-size:32px}.dashboard-hero-meta>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Area do colaborador: hero pessoal (mesmo estilo do Dashboard) */
.employee-hero-v2{border:1px solid rgba(255,255,255,.14)!important;box-shadow:0 20px 50px rgba(0,48,37,.3),inset 0 1px 0 rgba(255,255,255,.12)!important;color:#fff!important;gap:16px!important;isolation:isolate;padding:26px 28px!important;
  background:radial-gradient(720px 270px at 92% -45%,rgba(0,168,107,.24),transparent 62%),radial-gradient(500px 230px at -10% 120%,rgba(212,175,55,.12),transparent 62%),linear-gradient(135deg,#053f33 0%,#006247 50%,#092f28 100%)!important}
.employee-hero-v2.idle{background:radial-gradient(700px 260px at 90% -45%,rgba(148,163,184,.16),transparent 62%),linear-gradient(135deg,#213238 0%,#263b40 52%,#14262a 100%)!important}
.employee-hero-v2.status-paused{background:radial-gradient(680px 260px at 92% -45%,rgba(245,179,1,.16),transparent 62%),linear-gradient(135deg,#183931 0%,#315044 52%,#172b27 100%)!important}
.employee-hero-v2.status-stopped{background:radial-gradient(680px 260px at 92% -45%,rgba(148,163,184,.14),transparent 62%),linear-gradient(135deg,#1c3036 0%,#294047 52%,#14262b 100%)!important}
.employee-hero-v2::before{background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:28px 28px;content:"";inset:0;mask-image:linear-gradient(90deg,transparent 0%,#000 58%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 58%,transparent 100%);pointer-events:none;position:absolute;z-index:0}
.employee-hero-v2::after{border:1px solid rgba(255,255,255,.07);border-radius:50%;content:"";height:260px;pointer-events:none;position:absolute;right:-86px;top:-130px;width:260px;z-index:0}
.employee-live-hero-crest{position:absolute;right:190px;top:50%;width:240px;height:240px;object-fit:contain;transform:translateY(-50%) rotate(-8deg);opacity:.09;filter:grayscale(1) brightness(3);pointer-events:none;z-index:0}
.employee-hero-identity{align-items:center;border-bottom:1px solid rgba(255,255,255,.14);display:flex;gap:14px;padding-bottom:16px;position:relative;width:100%;z-index:1}
.employee-hero-identity .employee-avatar{width:52px;height:52px;border-radius:16px;border:2px solid rgba(255,255,255,.35);box-shadow:0 6px 18px rgba(0,0,0,.2)}
.employee-hero-identity-copy{display:grid;flex:1;gap:2px;min-width:0}
.employee-hero-v2 .employee-hero-kicker{color:#ffe7a3!important;font-size:10px!important;font-weight:800;letter-spacing:.12em;line-height:1.2;text-transform:uppercase}
.employee-hero-identity h2{color:#fff;font-size:clamp(20px,2.2vw,26px);font-weight:800;line-height:1.15;margin:0;max-width:100%;overflow-wrap:anywhere}
.employee-hero-identity>div>.employee-hero-meta{color:#e8f5f0;display:block;font-size:var(--text-md,14px);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.employee-live-hero-body{align-items:stretch;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.12);border-radius:20px;gap:18px;padding:18px;z-index:1}
.employee-live-hero-content{gap:14px}
.employee-live-hero-main{gap:6px}
.employee-hero-v2 .employee-live-hero-label{align-items:center;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);border-radius:999px;color:#fff;display:flex;font-size:var(--text-base);padding:6px 10px;width:fit-content}
.employee-hero-v2.status-paused .employee-live-hero-label{background:rgba(245,179,1,.12);border-color:rgba(245,179,1,.3)}
.employee-hero-v2.status-stopped .employee-live-hero-label{background:rgba(148,163,184,.12);border-color:rgba(203,213,225,.22)}
.employee-hero-v2 .employee-live-hero-value{font-size:clamp(44px,4.6vw,58px);letter-spacing:-.035em}
.employee-live-hero-total{color:#e8f5f0!important;font-size:var(--text-sm)!important;font-weight:700;opacity:1!important}
.employee-hero-v2 small,.employee-hero-v2 .employee-live-hero-remaining{color:#e8f5f0!important;opacity:1!important}
.employee-hero-v2.idle .employee-live-hero-complete{background:rgba(255,255,255,.18);color:#fff}
.employee-hero-status{width:10px;height:10px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 4px rgba(148,163,184,.25)}
.employee-hero-status.pausa{background:#f5b301;box-shadow:0 0 0 4px rgba(245,179,1,.25)}
.employee-hero-v2 .employee-live-dot{animation:heroPulse 1.6s ease-in-out infinite}
@keyframes heroPulse{0%,100%{box-shadow:0 0 0 0 rgba(74,222,128,.55)}50%{box-shadow:0 0 0 7px rgba(74,222,128,0)}}
.employee-hero-progress{margin-top:10px;max-width:460px}
.employee-hero-progress>div{color:#e8f5f0;display:flex;font-size:var(--text-sm,12px);justify-content:space-between;margin-bottom:7px}.employee-hero-progress strong{color:#fff}
.employee-hero-progress i{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.08);border-radius:999px;display:block;height:10px;overflow:hidden}
.employee-hero-progress b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4ade80,#d4af37);transition:width .6s ease}
.employee-live-periods-block{display:grid;gap:8px}
.employee-live-periods-title{align-items:center;color:#d9eee7;display:inline-flex;font-size:var(--text-xs);font-weight:800;gap:6px;letter-spacing:.05em;text-transform:uppercase}
.employee-live-periods-title svg{height:14px;width:14px}
.employee-hero-v2 .employee-live-period{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.11);color:#fff}
.employee-hero-v2 .employee-live-period-icon{background:rgba(255,255,255,.13);color:#fff}
.employee-hero-v2 .employee-live-hero-qr{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:18px;min-width:136px;padding:10px 12px}
.employee-live-hero-qr-title{color:#fff;font-size:var(--text-sm);font-weight:800}
.employee-hero-v2 .employee-live-hero-qr .employee-qr-code{border-radius:14px;box-shadow:0 10px 26px rgba(0,0,0,.25);min-height:108px;min-width:108px;padding:7px}
.employee-hero-v2 :is(.employee-live-hero-qr,.employee-hero-qr-mini,.hero-avisos):focus-visible{box-shadow:0 0 0 4px rgba(6,37,31,.4);outline:3px solid #fff;outline-offset:2px}
@media (min-width:1100px){.employee-hero-v2 .employee-live-hero-body{display:grid;grid-template-columns:minmax(0,1fr) auto}}
@media (hover:hover){.employee-hero-v2 .employee-live-hero-qr:hover{background:rgba(255,255,255,.11);transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.employee-hero-v2 .employee-live-dot{animation:none!important}.employee-hero-v2 .employee-hero-progress b,.employee-hero-v2 .employee-live-hero-qr{transition:none!important}.employee-hero-v2 .employee-live-hero-qr:hover,.employee-hero-v2 .employee-live-hero-qr:active{transform:none!important}}

/* Selo discreto da empresa nos heros (como no rodape do login) */
.dashboard-hero-crest,.employee-live-hero-crest{display:none!important}
.hero-brand-seal{align-items:center!important;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:999px;color:#e8f5f0!important;display:inline-flex!important;font-size:10.5px!important;font-weight:700!important;gap:8px!important;height:30px;letter-spacing:.08em!important;line-height:1;max-width:100%;overflow:hidden;padding:0 12px 0 6px;text-transform:uppercase;white-space:nowrap;width:auto!important}
.hero-brand-seal img{display:block;flex:0 0 auto;height:20px!important;object-fit:contain;width:20px!important}
.hero-brand-seal span{color:#e8f5f0!important;display:block!important;font-size:10.5px!important;letter-spacing:.08em!important;line-height:1!important;margin:0!important;min-width:0;overflow:hidden;text-overflow:ellipsis}
.dashboard-hero-main .hero-brand-seal{align-self:flex-start;margin-bottom:6px}
.employee-hero-identity .hero-brand-seal{align-self:center!important;margin-left:auto}

/* Area do colaborador: "Precisa da sua atencao" */
.emp-atencao{display:flex;flex-direction:column;gap:10px}
.emp-atencao h2{margin:0;font-size:var(--text-xl,16px)}
.emp-atencao-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.emp-atencao-item{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius-lg,10px);background:var(--surface)}
.emp-atencao-item.verde{border-left-color:#16a34a}.emp-atencao-item.amarelo{border-left-color:#f59e0b}.emp-atencao-item.azul{border-left-color:#3b82f6}.emp-atencao-item.vermelho{border-left-color:#dc2626}
.emp-atencao-icon{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--surface-2);color:var(--brand)}
.emp-atencao-icon svg{width:20px;height:20px}
.emp-atencao-item>div{flex:1;min-width:0}
.emp-atencao-item strong{display:block;font-size:var(--text-md,14px)}
.emp-atencao-item small{display:block;margin-top:2px;color:var(--muted);font-size:var(--text-sm,12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emp-atencao-item .secondary-action{flex:0 0 auto;white-space:nowrap}

/* Area do colaborador: pedidos recentes em lista */
.emp-pedidos{list-style:none;margin:0;padding:6px 16px 12px}
.emp-pedido{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.emp-pedido:last-child{border-bottom:0}
.emp-pedido-icon{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--surface-2);color:var(--brand)}
.emp-pedido-icon svg{width:18px;height:18px}
.emp-pedido>div{flex:1;min-width:0}.emp-pedido strong{display:block;font-size:var(--text-md,14px)}.emp-pedido small{color:var(--muted);font-size:var(--text-sm,12px)}
.emp-pedido .row-menu-panel{right:0;left:auto}

/* Telemovel */
@media (max-width:640px){
  .emp-atencao-grid{grid-template-columns:1fr}
  .emp-atencao-item{flex-wrap:wrap}
  .emp-atencao-item .secondary-action{width:100%;min-height:44px}
  .emp-atencao-item small{white-space:normal}
}

/* Telemovel: tabelas simples passam a cartoes (cada celula com o nome da coluna) */
@media (max-width:640px){
  .table-wrap table[data-rotulada]{display:block;min-width:0!important;width:100%}
  .table-wrap table[data-rotulada] thead{display:none}
  .table-wrap table[data-rotulada] tbody{display:flex;flex-direction:column;gap:10px}
  .table-wrap table[data-rotulada] tr{display:block;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-lg,10px);background:var(--surface)}
  .table-wrap table[data-rotulada] td{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:6px 0!important;border:0!important;border-bottom:1px dashed var(--line)!important;text-align:right;white-space:normal!important;background:transparent}
  .table-wrap table[data-rotulada] td:last-child{border-bottom:0!important}
  .table-wrap table[data-rotulada] td::before{content:attr(data-label);flex:0 0 auto;max-width:45%;text-align:left;font-size:var(--text-xs,11px);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
  .table-wrap table[data-rotulada] td[data-label=""]::before{display:none}
  .table-wrap{overflow-x:visible!important}
}

/* Registar picagem no telemovel: botao principal + outras picagens */
.emp-picagem-mobile{display:none}
@media (max-width:640px){
  .employee-section{display:flex;flex-direction:column;gap:16px}
  .employee-section>.employee-live-hero{order:-3}
  .employee-section>.emp-picagem{order:-2}
  .emp-picagem .employee-action-grid{display:none!important}
  .emp-picagem .panel-header .badge{display:none}
  .emp-picagem-mobile{display:flex;flex-direction:column;gap:10px;padding:14px}
  .emp-picagem-principal{display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:14px 18px;border:0;border-radius:18px;color:#fff;font:inherit;text-align:left;cursor:pointer;
    background:linear-gradient(135deg,#00734f,#00a86b);box-shadow:0 10px 24px rgba(0,115,79,.35);transition:transform .12s}
  .emp-picagem-principal:active{transform:scale(.98)}
  .emp-picagem-principal-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.2);flex:0 0 auto}
  .emp-picagem-principal-icon svg{width:24px;height:24px}
  .emp-picagem-principal strong{display:block;font-size:19px;font-weight:800}
  .emp-picagem-principal small{display:block;margin-top:2px;font-size:13px;opacity:.85}
  .emp-picagem-outras-label{margin-top:4px;font-size:var(--text-xs,11px);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
  .emp-picagem-outras{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .emp-picagem-outra{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:64px;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-sm,12px);font-weight:600;cursor:pointer}
  .emp-picagem-outra svg{width:20px;height:20px;color:var(--brand)}
  .emp-picagem-outra:active{background:var(--surface-2)}
}

/* Hero da area do colaborador no telemovel: uma coluna, limpo */
.employee-hero-qr-mini{display:none}
@media (max-width:780px){
  .employee-hero-v2{padding:18px 16px!important;gap:12px!important;border-radius:20px!important}
  .employee-hero-v2 .hero-brand-seal{display:none!important}
  .employee-hero-identity{flex-wrap:nowrap!important;gap:12px;padding-bottom:12px}
  .employee-hero-identity .employee-avatar{width:44px;height:44px;border-radius:13px}
  .employee-hero-identity-copy{flex:1;min-width:0}
  .employee-hero-identity h2{font-size:19px!important}
  .employee-hero-identity .employee-hero-meta{font-size:13px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .employee-hero-qr-mini{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:0 0 auto;width:52px;height:52px;border-radius:14px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;font:inherit;font-size:10px;font-weight:800;letter-spacing:.06em;cursor:pointer}
  .employee-hero-qr-mini span{color:#fff;font-size:10px;line-height:1;margin:0}
  .employee-hero-qr-mini svg{width:22px;height:22px}
  .employee-hero-v2 .employee-live-hero-qr{display:none!important}
  .employee-hero-v2 .employee-live-hero-body{display:block;padding:14px}
  .employee-hero-v2 .employee-live-hero-content{gap:12px;min-width:0}
  .employee-hero-v2 .employee-live-hero-main{padding-right:52px}
  .employee-hero-v2 .employee-live-hero-label{font-size:13px}
  .employee-hero-v2 .employee-live-hero-value{font-size:clamp(38px,9vw,44px)!important;letter-spacing:-.025em}
  .employee-hero-v2 .employee-live-hero-total{display:block;font-size:13px!important}
  .employee-hero-v2 .employee-live-hero-remaining{font-size:13px!important;line-height:1.4;margin-top:2px}
  .employee-hero-v2 .employee-hero-progress{max-width:none;margin-top:10px}
  .employee-live-periods-block{margin-top:2px}
  .employee-hero-v2 .employee-live-periods{display:flex!important;flex-direction:column;font-size:12px;gap:6px;width:100%}
  .employee-hero-v2 .employee-live-period{align-items:center;box-sizing:border-box;display:flex!important;font-size:12px;gap:8px!important;min-height:0!important;padding:8px 12px!important;width:100%!important}
  .employee-hero-v2 .employee-live-period-icon{width:24px!important;height:24px!important}
  .employee-hero-v2 .employee-live-period-time{flex:1;min-width:0}
  .employee-hero-v2 .employee-live-period em,.employee-hero-v2 .employee-live-period strong{font-style:normal;font-weight:800;margin-left:auto}
}
@media (max-width:420px){.employee-hero-v2 .employee-live-hero-value{font-size:clamp(34px,9vw,38px)!important}.employee-hero-v2 .employee-live-hero-body{padding:12px}}

/* Barra de baixo no telemovel: encostada ao fundo (inclui a zona do indicador do iPhone) e botao central em destaque */
@media (max-width:780px){html.has-bottom-nav-root,body.has-bottom-nav{background:var(--surface)}}
.bottom-nav{align-items:end;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px))!important;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent)!important;backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px)}
.bottom-nav::after{content:"";position:absolute;left:0;right:0;top:100%;height:120px;background:var(--surface)}
.bottom-nav-center{overflow:visible}
.bottom-nav-center-circle{display:grid;place-items:center;width:60px;height:60px;margin-top:-30px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#00734f,#00a86b);box-shadow:0 10px 24px rgba(0,115,79,.4),0 0 0 5px var(--surface);transition:transform .12s}
.bottom-nav-center-circle svg{width:28px;height:28px}
.bottom-nav-center:active .bottom-nav-center-circle{transform:scale(.94)}
.bottom-nav-center .bottom-nav-label{color:var(--brand)}
.bottom-nav-center::before{display:none!important}
/* painel rapido */
.quick-sheet{position:fixed;inset:0;z-index:200}
.quick-sheet-backdrop{position:absolute;inset:0;background:rgba(6,26,22,.5);opacity:0;transition:opacity .2s}
.quick-sheet-panel{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:10px;padding:10px 16px calc(18px + env(safe-area-inset-bottom,0px));border-radius:24px 24px 0 0;background:var(--surface);box-shadow:0 -12px 40px rgba(0,0,0,.25);transform:translateY(100%);transition:transform .25s cubic-bezier(.22,.8,.24,1)}
.quick-sheet.open .quick-sheet-backdrop{opacity:1}
.quick-sheet.open .quick-sheet-panel{transform:translateY(0)}
.quick-sheet-handle{align-self:center;width:42px;height:5px;border-radius:999px;background:var(--line);margin-bottom:4px}
.quick-sheet h3{margin:0 0 4px;font-size:17px}
.quick-sheet .emp-picagem-principal{display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:14px 18px;border:0;border-radius:18px;color:#fff;font:inherit;text-align:left;background:linear-gradient(135deg,#00734f,#00a86b);box-shadow:0 10px 24px rgba(0,115,79,.35)}
.quick-sheet .emp-picagem-principal-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.2)}
.quick-sheet .emp-picagem-principal-icon svg{width:24px;height:24px}
.quick-sheet .emp-picagem-principal strong{display:block;font-size:19px;font-weight:800}.quick-sheet .emp-picagem-principal small{display:block;font-size:13px;opacity:.85}
.quick-sheet .emp-picagem-outras-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.quick-sheet .emp-picagem-outras{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.quick-sheet .emp-picagem-outra{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:64px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);font:inherit;font-size:12px;font-weight:600}
.quick-sheet .emp-picagem-outra svg{width:20px;height:20px;color:var(--brand)}
.quick-sheet-qr{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);color:var(--text);font:inherit;font-weight:700}
.quick-sheet-qr svg{width:20px;height:20px;color:var(--brand)}

/* iPhone: a barra de cima ocupa tambem a zona do relogio/notch, com a mesma cor solida (como uma app nativa) */
@media (max-width:780px){
  html{border-top:0!important;background:#06251f}
  .topbar{padding-top:calc(8px + env(safe-area-inset-top,0px))!important;background:#06251f!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-bottom:1px solid rgba(255,255,255,.08)!important}
  body.has-bottom-nav{background:var(--bg)}
}
.quick-sheet-panel{max-height:calc(100dvh - 40px);overflow-y:auto}

/* iPhone (Safari): a zona por baixo da barra de baixo (barra flutuante do Safari / indicador) fica com a mesma cor da barra */
@media (max-width:780px){html:has(body.has-bottom-nav){background:var(--surface)!important}body.has-bottom-nav{min-height:100dvh}}

/* iPhone / Safari iOS 26: para o Safari usar a cor da app nas zonas do relogio e do fundo (em vez do degrade),
   as barras tem de ser FIXAS, de cor SOLIDA e encostadas a extremidade do ecra. */
@media (max-width:780px){
  .topbar{position:fixed!important;top:0;left:0;right:0;z-index:13;box-sizing:border-box;min-height:calc(61px + env(safe-area-inset-top,0px));background:#06251f!important}
  .workspace{padding-top:calc(61px + env(safe-area-inset-top,0px))!important}
  .bottom-nav{background:var(--surface)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}

/* Tema: so no menu lateral (acima do Sair) */
#themeToggle{display:none!important}
.sidebar-theme{margin-bottom:8px}

/* Tema no menu lateral: discreto (linha simples com interruptor) */
.sidebar-theme{background:transparent!important;border:0!important;box-shadow:none!important;min-height:0!important;padding:6px 10px!important;margin:0 0 6px!important;gap:8px!important;font-size:12px!important;font-weight:600!important;color:var(--sidebar-muted,rgba(255,255,255,.6))!important;width:100%;justify-content:flex-start}
.sidebar-theme .nav-icon{width:16px!important;height:16px!important;background:transparent!important;border:0!important;opacity:.8}
.sidebar-theme .nav-icon svg{width:15px;height:15px}
.sidebar-theme::after{content:"";margin-left:auto;width:28px;height:16px;border-radius:999px;background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
  background-image:radial-gradient(circle at 8px 50%,#fff 5px,transparent 5.5px);transition:background-position .2s}
:root[data-theme="dark"] .sidebar-theme::after{background-color:var(--brand);background-image:radial-gradient(circle at 20px 50%,#fff 5px,transparent 5.5px)}
.sidebar-theme:hover{color:var(--sidebar-text,#fff)!important;background:rgba(255,255,255,.05)!important}

/* Picagem sugerida: ao passar o rato fica verde mais escuro (a variavel --brand-dark nao existia e o botao ficava transparente) */
.employee-action.primary:hover{background:color-mix(in srgb,var(--brand) 82%,#000)!important;border-color:color-mix(in srgb,var(--brand) 82%,#000)!important;color:#fff!important}

.collapsible-list-toggle{align-items:center;display:inline-flex;justify-content:center;min-height:38px;min-width:38px;padding:7px;width:38px}
.collapsible-list-toggle svg{height:18px;width:18px}
@media(max-width:780px){.panel:has(.collapsible-list-toggle)>.panel-header .panel-header-actions{display:flex;align-items:center;justify-content:space-between;width:100%}.collapsible-list-toggle{flex:0 0 42px;min-height:42px;width:42px}}

/* Area do colaborador > Avisos: conteudo, estado e acoes em zonas distintas. */
.employee-alerts-panel>.panel-header{align-items:center}
.employee-alerts-panel>.panel-header h2{margin:0}
.employee-alerts-panel>.panel-header .field-hint{margin:4px 0 0}
.employee-alerts-panel .announcement-list{gap:12px}
.employee-alerts-panel .announcement-card{border-radius:14px;padding:16px 18px;box-shadow:0 6px 18px rgba(10,57,52,.04)}
.employee-alerts-panel .announcement-card-head strong{font-size:15px;line-height:1.35}
.notification-card.requires-action{border-left:4px solid var(--warning);background:color-mix(in srgb,var(--warning) 5%,var(--surface) 95%)}
.notification-card-detail{color:var(--muted)!important;line-height:1.55!important;margin:9px 0 14px!important;white-space:normal!important}
.notification-card-footer{align-items:center;border-top:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding-top:12px}
.notification-card-state{align-items:center;display:flex;flex:0 0 auto}
.notification-card-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-left:auto}
.notification-card-actions button{min-height:38px}
.notification-card-actions .primary-action{box-shadow:0 7px 16px color-mix(in srgb,var(--brand) 22%,transparent)}
@media(max-width:780px){
  .employee-alerts-panel>.panel-header{align-items:flex-start}
  .employee-alerts-panel>.panel-header>.badge{margin-left:0!important}
  .employee-alerts-panel .announcement-card{padding:14px}
  .notification-card-footer{align-items:stretch;flex-direction:column}
  .notification-card-actions{display:grid;grid-template-columns:1fr;margin-left:0;width:100%}
  .notification-card-actions button{justify-content:center;width:100%}
}

/* === Layout mobile global (<=780px) ===
   Regras transversais para todos os modulos: nada pode ficar mais largo do que o ecra (o .workspace tem overflow-x:hidden,
   por isso o que transborda fica cortado). Causas corrigidas: grelha do .content com coluna "auto" que crescia para o
   min-content dos filhos, grelhas de metricas/calendario com larguras minimas fixas e o kanban com colunas lado a lado. */
@media (max-width:780px){
  .content{grid-template-columns:minmax(0,1fr)!important}
  .content>*,.employee-section,.employee-section>*,.grid>*,.panel,.panel>*,.panel-body,.panel-body>*{min-width:0;max-width:100%}
  .content{overflow-wrap:break-word}
  .content td,.content .detail-list dd,.content .detail-list span{overflow-wrap:anywhere}
  /* metricas: 2 colunas que encolhem (1 coluna em ecras muito estreitos) */
  .kpi-grid,.dashboard-kpi-grid,.record-grid,.grid.four-col,.grid.three-col{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .metric{min-width:0;padding:12px 14px}
  .metric span{font-size:12px}
  .metric strong{font-size:26px;line-height:1.15;overflow-wrap:anywhere}
  .metric small{font-size:12px}
  .grid.two-col,.grid.split,.split-grid{grid-template-columns:minmax(0,1fr)!important}
  /* cabecalhos de painel: titulo e pills/acoes passam para baixo quando nao cabem */
  .panel-header{flex-wrap:wrap;gap:8px 10px;min-width:0}
  .panel-header h2,.panel-header h3{min-width:0;font-size:17px;overflow-wrap:anywhere}
  .panel-header>*{max-width:100%}
  /* separadores: ocupam a largura toda; se nao couberem deslizam so dentro da propria barra */
  /* separadores: ocupam a largura toda e passam a 2.a linha quando nao cabem (sem scroll lateral).
     O .tab-button tinha width:100% (regra dos botoes de toque), o que punha cada separador com a largura da barra. */
  .tabs{flex-wrap:wrap;overflow:visible!important;max-width:100%;gap:6px}
  .tabs>.tab-button,.tabs>button,.tabs>a{width:auto!important;flex:1 1 auto;min-width:0;padding:8px 12px;white-space:normal;text-align:center;line-height:1.2}
  /* calendarios mensais: 7 colunas que cabem no ecra */
  .absence-calendar,.team-calendar{grid-template-columns:repeat(7,minmax(0,1fr))!important;overflow:visible!important;gap:3px!important;padding:8px!important}
  .absence-calendar>*{min-width:0}
  .absence-calendar .calendar-day{min-width:0;min-height:44px;padding:4px 3px!important;font-size:11px}
  .absence-calendar .calendar-day *{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .absence-calendar>strong{font-size:11px}
  /* kanban (Service Desk e Manutencao): colunas empilhadas; as recolhidas viram uma barra horizontal */
  .kanban{flex-direction:column!important;gap:10px}
  .kanban>.kanban-column,.kanban>.kanban-column.kanban-column-vazia{flex:0 0 auto!important;width:100%;min-height:0!important}
  .kanban-column-vazia>h3{writing-mode:horizontal-tb!important;transform:none!important;flex-direction:row!important;height:auto!important;padding:12px 14px!important}
  .kanban-column-vazia>h3 .kanban-count{writing-mode:horizontal-tb!important;margin:0!important}
  .kanban-toggle{width:100%}
  /* formularios: 16px evita o zoom automatico do iOS; alvos de toque >=44px */
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important;max-width:100%}
  .primary-action,.secondary-action,.danger-action{min-height:44px}
  .form-grid,.form-row{grid-template-columns:minmax(0,1fr)!important}
  /* menus de acoes (tres pontos): nunca saem pelo lado direito */
  .row-menu-panel{max-width:calc(100vw - 32px)}
  /* tabelas em cartao: o valor pode passar para baixo do rotulo; badges e nomes longos quebram */
  .table-wrap table[data-rotulada] td{flex-wrap:wrap}
  .table-wrap table[data-rotulada] td>*{min-width:0;max-width:100%}
  .content .badge,.content .pill{max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .content span,.content strong,.content small{overflow-wrap:break-word}
  /* imagens, graficos e media */
  .content img,.content svg,.content video,.content canvas,.content iframe{max-width:100%}
  .content pre,.content code{white-space:pre-wrap;overflow-wrap:anywhere}
}
@media (max-width:360px){
  .kpi-grid,.dashboard-kpi-grid,.record-grid,.grid.four-col,.grid.three-col{grid-template-columns:minmax(0,1fr)!important}
}
@media (max-width:780px){
  /* grelhas de caixas de verificacao (permissoes, tecnicos...): 1 coluna e texto que quebra */
  .permission-grid{grid-template-columns:minmax(0,1fr)!important}
  .check-row{min-width:0}
  .check-row>span{min-width:0;overflow-wrap:anywhere}
}
@media (max-width:780px){
  /* kanban empilhado: a coluna recolhida e so uma barra com o nome e a contagem (sem texto na vertical) */
  .kanban-column-vazia .kanban-toggle{writing-mode:horizontal-tb!important;flex-direction:row!important;justify-content:space-between!important;height:auto!important;min-height:44px!important;padding:12px 14px!important}
  .kanban-column-vazia>h3{padding:0!important}
  .kanban-column-vazia{min-height:0!important;height:auto!important}
}

/* QR de picagem no cabecalho da area de colaborador: conteudo centrado na caixa (que estica a altura do painel) */
.employee-hero-v2 .employee-live-hero-qr{justify-content:center;gap:10px;padding:14px 16px}

/* Cabecalho da area de colaborador mais compacto em ecra largo: registos de hoje ao lado do cronometro,
   cronometro e QR ligeiramente menores */
@media (min-width:1100px){
  .employee-hero-v2 .employee-live-hero-content{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:center}
  .employee-hero-v2 .employee-live-hero-content>:not(.employee-live-hero-main){align-self:center;margin:0!important}
  .employee-hero-v2 .employee-live-hero-value{font-size:clamp(40px,3.4vw,50px)}
  .employee-hero-v2 .employee-hero-progress{margin-top:8px}
  .employee-hero-v2 .employee-live-hero-qr{min-width:118px;padding:10px 14px;gap:6px}
  .employee-hero-v2 .employee-live-hero-qr .employee-qr-code{min-height:88px;min-width:88px;padding:6px}
  .employee-hero-v2 .employee-live-hero-qr .employee-qr-code :is(img,canvas,svg){max-width:88px;max-height:88px}
}

/* Picagem mobile: preparação e confirmação usam o mesmo splash de estado. */
.modal.punch-feedback-modal .punch-feedback.preparing{
  gap:14px;
}
.modal.punch-feedback-modal .punch-feedback.preparing h2{
  margin:0;
}
.modal.punch-feedback-modal .punch-feedback.preparing p{
  max-width:340px;
  line-height:1.45;
}
.punch-preparing-loader{
  display:grid;
  height:88px;
  margin:0 0 6px;
  place-items:center;
  width:88px;
}
.punch-preparing-loader>*{
  grid-area:1/1;
}
.punch-preparing-spinner{
  border-color:rgba(255,255,255,.3);
  border-top-color:#fff;
  border-width:4px;
  height:88px;
  width:88px;
}
.punch-preparing-loader img{
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.22));
  height:36px;
  opacity:.96;
  width:36px;
}
@media (max-width:780px){
  .modal.punch-preparing-modal .punch-feedback.preparing{
    background:linear-gradient(160deg,var(--success) 0%,color-mix(in srgb,var(--success) 55%,#0b1220) 100%);
  }
}

/* Cabecalho da area de colaborador (ecra largo), v2: coluna fixa com cronometro e progresso, divisoria,
   e registos de hoje alinhados ao topo a ocupar o resto (grelha de cartoes) */
@media (min-width:1100px){
  .employee-hero-v2 .employee-live-hero-content{grid-template-columns:minmax(320px,440px) minmax(0,1fr);gap:0;align-items:stretch}
  .employee-hero-v2 .employee-live-hero-content:not(:has(.employee-live-periods-block)){grid-template-columns:minmax(0,1fr)}
  .employee-hero-v2 .employee-live-hero-main{padding-right:32px;display:flex;flex-direction:column;justify-content:center;min-width:0}
  .employee-hero-v2 .employee-live-hero-content:not(:has(.employee-live-periods-block)) .employee-live-hero-main{max-width:440px;padding-right:0}
  .employee-hero-v2 .employee-hero-progress{max-width:none;width:100%}
  .employee-hero-v2 .employee-live-hero-content>.employee-live-periods-block{align-self:stretch!important;align-content:start;gap:12px;border-left:1px solid rgba(255,255,255,.12);padding:6px 0 6px 32px}
  .employee-hero-v2 .employee-live-periods{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
  .employee-hero-v2 .employee-live-period{width:auto;justify-content:flex-start}
}

/* Ligacao discreta para a politica de privacidade no fundo do menu lateral */
.sidebar-privacidade{appearance:none;background:none;border:0;color:var(--sidebar-text);opacity:.6;font:500 12px/1.2 var(--marca-fonte-texto,Inter,sans-serif);padding:10px 10px 2px;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:3px;width:100%}
.sidebar-privacidade:hover,.sidebar-privacidade:focus-visible{opacity:1;outline:0}

/* Privacidade no menu lateral, v2: nota pequena e esbatida, sem sublinhado */
.sidebar-privacidade{display:inline-flex;align-items:center;gap:5px;width:auto;margin:8px auto 0;padding:4px 8px;border-radius:6px;opacity:.42;font-size:11px;font-weight:500;letter-spacing:.01em;text-decoration:none!important;transition:opacity .15s}
.sidebar-privacidade svg{width:12px;height:12px;flex:0 0 auto}
.sidebar-privacidade:hover,.sidebar-privacidade:focus-visible{opacity:.85;background:#ffffff0d}
.sidebar-footer{display:flex;flex-direction:column}

.analytics-absent-badges{display:inline-flex;gap:6px;align-items:center}.analytics-absent-dept{display:block;color:var(--muted);font-size:12px;font-weight:500}
.analytics-faltas-nota{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--danger) 8%,transparent);color:var(--text);font-size:.9rem}.analytics-faltas-nota svg{width:16px;height:16px;color:var(--danger);flex:0 0 auto}.analytics-faltas-nota span{flex:1 1 220px}

/* Registos de hoje no cabecalho da area de colaborador: cartoes maiores, com a identificacao do periodo,
   que repartem entre si a largura disponivel */
.employee-live-period-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.employee-live-period-label{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.75}
@media (min-width:1100px){
  .employee-hero-v2 .employee-live-periods{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;gap:10px}
  .employee-hero-v2 .employee-live-period{display:flex!important;align-items:center;gap:12px!important;min-height:68px;padding:12px 16px!important;border-radius:14px;box-sizing:border-box;width:100%!important}
  .employee-hero-v2 .employee-live-period-icon{width:32px!important;height:32px!important;flex:0 0 auto}
  .employee-hero-v2 .employee-live-period-time{font-size:14px;font-weight:600}
  .employee-hero-v2 .employee-live-period em{margin-left:auto;font-style:normal;font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}
}

/* Registos de hoje v2: cartao com cabecalho (periodo + duracao) e as duas marcacoes identificadas */
.employee-hero-v2 .employee-live-period.periodo-v2{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:8px!important;min-height:0;padding:12px 14px!important;border-radius:14px;box-sizing:border-box;width:100%!important}
.periodo-topo{display:flex;align-items:center;gap:8px;min-width:0}
.periodo-topo .employee-live-period-icon{width:26px!important;height:26px!important;flex:0 0 auto}
.periodo-topo .employee-live-period-label{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.periodo-topo em{margin-left:auto;font-style:normal;font-weight:800;font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}
.periodo-marcas{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:8px}
.periodo-marcas>span{display:flex;flex-direction:column;min-width:0}
.periodo-marcas small{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.7}
.periodo-marcas b{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.periodo-marcas .periodo-seta{opacity:.5;padding-bottom:1px}
@media (min-width:1100px){
  .employee-hero-v2 .employee-live-periods{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))!important}
}

/* Dashboard > Postos usados: um pill por tipo de posto (nomes ao passar o rato) */
.posto-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.posto-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap;background:var(--surface-2,#f1f5f4);color:var(--text);border:1px solid var(--line)}
.posto-pill b{font-weight:800;font-variant-numeric:tabular-nums}
.posto-pill.posto-terminal{background:color-mix(in srgb,var(--brand) 10%,transparent);border-color:color-mix(in srgb,var(--brand) 25%,transparent);color:var(--brand)}
.posto-pill.posto-kiosk{background:color-mix(in srgb,var(--info,#246bfe) 10%,transparent);border-color:color-mix(in srgb,var(--info,#246bfe) 25%,transparent);color:var(--info,#246bfe)}
.posto-pill.posto-computador{background:color-mix(in srgb,#7c3aed 10%,transparent);border-color:color-mix(in srgb,#7c3aed 25%,transparent);color:#7c3aed}
.posto-pill.posto-movel{background:color-mix(in srgb,var(--warning,#c76b00) 10%,transparent);border-color:color-mix(in srgb,var(--warning,#c76b00) 25%,transparent);color:var(--warning,#c76b00)}
.metric .posto-pills{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:5px;width:auto;margin:4px 0 0!important}
.metric .posto-pill{display:inline-flex!important;width:auto!important;flex:0 0 auto;margin:0!important;padding:2px 9px!important;font-size:11.5px!important;letter-spacing:0!important;text-transform:none!important}
.metric .posto-pills{flex-wrap:nowrap!important;gap:4px!important;overflow:hidden}
.metric .posto-pill{gap:4px;padding:1px 8px!important;font-size:12px!important;line-height:20px}
.metric .posto-pill svg{width:13px!important;height:13px!important;flex:0 0 auto;margin:0!important}
.metric .posto-pill .posto-nome{font-weight:600;margin:0!important;display:inline!important;font-size:inherit!important;color:inherit!important;text-transform:none!important;letter-spacing:0!important}
.metric .posto-pills.compacto{gap:3px!important}
.metric .posto-pills.compacto .posto-pill{padding:1px 5px!important;gap:3px}
.metric .posto-pills.compacto .posto-nome{display:none!important}
.metric .posto-pill .posto-curto{display:none!important}
.metric .posto-pills.curto{gap:4px!important}
.metric .posto-pills.curto .posto-pill{padding:1px 7px!important}
.metric .posto-pills.curto .posto-pill svg,.metric .posto-pills.curto .posto-nome{display:none!important}
.metric .posto-pills.curto .posto-curto{display:inline!important;font-weight:600;margin:0!important;font-size:inherit!important;color:inherit!important;text-transform:none!important;letter-spacing:0!important}
.metric .posto-pills.curto{gap:3px!important}
.metric .posto-pills.curto .posto-pill{padding:1px 5px!important;gap:3px!important}

/* Demonstracao: codigo de acesso */
.demo-codigo-input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:20px!important;letter-spacing:.15em;text-align:center;text-transform:uppercase}
.demo-codigo-caixa{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:16px 18px;border-radius:14px;background:var(--brand-soft,#dff4ec);border:1px dashed color-mix(in srgb,var(--brand) 45%,transparent)}
.demo-codigo-caixa code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:28px;font-weight:800;letter-spacing:.14em;color:var(--brand);background:none;padding:0}
.demo-codigo-form{grid-template-columns:1fr!important}
.demo-codigo-form label{display:grid;gap:6px;min-width:0}
.demo-codigo-form input{width:100%;box-sizing:border-box}
.metric .posto-pills.curto{flex-wrap:wrap!important;overflow:visible!important;row-gap:4px!important}
/* cartoes do resumo por modulo: conteudo alinhado ao topo (um cartao mais alto nao desalinha os outros) */
.dashboard-module-kpis>.metric{display:flex!important;flex-direction:column;justify-content:flex-start!important;align-items:stretch}

/* Assiduidade: cada picagem com posto e evidencia compactos (sem coluna Terminais) */
.attendance-time-cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.att-posto{display:inline-flex;align-items:center;gap:5px;max-width:190px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.att-posto>span{overflow:hidden;text-overflow:ellipsis}
.att-posto svg{width:13px;height:13px;flex:0 0 auto}
.att-posto-computador{color:#7c3aed}.att-posto-movel{color:var(--warning,#c76b00)}
.att-evid{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;max-width:200px}
.att-evid-btn{appearance:none;display:inline-flex;align-items:center;gap:5px;border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--brand);border-radius:999px;padding:2px 9px;font:inherit;font-size:11.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.att-evid-btn:hover{background:color-mix(in srgb,var(--brand) 16%,transparent)}
.att-evid-btn svg{width:13px;height:13px}
.att-local{display:inline-flex;align-items:center;gap:4px;max-width:200px;font-size:11.5px;color:var(--success,#17844a);white-space:nowrap}
.att-local>span{overflow:hidden;text-overflow:ellipsis}
.att-local svg{width:12px;height:12px;flex:0 0 auto}
.att-local.fora{color:var(--danger)}
.att-colab{display:flex;flex-direction:column;gap:2px;min-width:140px}
.att-colab strong{font-weight:600;line-height:1.3}.att-colab small{color:var(--muted)}

/* Assiduidade: icones da evidencia e cartao flutuante (foto, posto, local) */
.att-evid-icones{display:inline-flex;gap:6px;align-items:center}
.att-icone{appearance:none;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;border:1px solid color-mix(in srgb,var(--brand) 28%,transparent);background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--brand);cursor:pointer;padding:0}
.att-icone:hover,.att-icone:focus-visible{background:color-mix(in srgb,var(--brand) 18%,transparent);outline:none}
.att-icone svg{width:15px;height:15px}
.att-icone-local{color:var(--success,#17844a);border-color:color-mix(in srgb,var(--success,#17844a) 30%,transparent);background:color-mix(in srgb,var(--success,#17844a) 8%,transparent)}
.att-icone-local.fora{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent);background:color-mix(in srgb,var(--danger) 8%,transparent)}
.punch-pop{position:fixed;z-index:3000;width:300px;max-width:calc(100vw - 16px);background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-strong,0 24px 60px rgba(10,57,52,.18));overflow:hidden;pointer-events:none;animation:punchPop .12s ease-out}
@keyframes punchPop{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.punch-pop-foto{height:150px;background:var(--surface-2,#f1f5f4);display:grid;place-items:center;color:var(--muted);font-size:12px}
.punch-pop-foto img{width:100%;height:100%;object-fit:cover}
.punch-pop-dados{padding:10px 12px 4px;display:grid;gap:6px}
.punch-pop-titulo{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.punch-pop-titulo strong{font-size:14px}.punch-pop-titulo span{font-size:12px;color:var(--muted)}
.punch-pop-dados>div:not(.punch-pop-titulo){display:grid;grid-template-columns:86px 1fr;gap:8px;font-size:12.5px}
.punch-pop-dados>div>span{color:var(--muted)}
.punch-pop-dados strong{font-weight:600;overflow-wrap:anywhere}
.punch-pop-dados em{font-style:normal}.punch-pop-dados em.dentro{color:var(--success,#17844a)}.punch-pop-dados em.fora{color:var(--danger)}
.punch-pop-dados small{color:var(--muted);font-weight:500}
.punch-pop-nota{margin:0;padding:6px 12px 10px;font-size:11px;color:var(--muted)}
.punch-pop-foto{overflow:hidden;position:relative}
.punch-pop-foto img{display:block;width:100%!important;height:150px!important;max-height:150px!important;object-fit:cover}
/* um so icone de evidencia; ponto de cor = local (verde dentro da zona, vermelho fora) */
.att-icone{position:relative}
.att-icone.com-local::after{content:;position:absolute;right:-3px;top:-3px;width:9px;height:9px;border-radius:50%;background:var(--success,#17844a);border:2px solid var(--surface)}
.att-icone.com-local.fora::after{background:var(--danger)}
.punch-pop{pointer-events:auto}
.punch-pop-mapa{display:inline-flex;align-items:center;gap:4px;color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.punch-pop-mapa svg{width:13px;height:13px}
.att-posto-local{font-style:normal;font-weight:500;color:var(--muted)}
.att-posto{max-width:220px}
/* cartao da evidencia: linhas com icone, sem rotulos nem rodape */
.punch-pop-dados{padding:12px 14px 12px!important;gap:8px!important}
.punch-pop-titulo{padding-bottom:8px!important}
.punch-pop-linha{display:flex!important;align-items:flex-start;gap:8px;font-size:13px;font-weight:600;line-height:1.35;grid-template-columns:none!important}
.punch-pop-linha svg{width:15px;height:15px;flex:0 0 auto;margin-top:1px;color:var(--muted)}
.punch-pop-linha.dentro{color:var(--success,#17844a)}.punch-pop-linha.dentro svg{color:inherit}
.punch-pop-linha.fora{color:var(--danger)}.punch-pop-linha.fora svg{color:inherit}
.punch-pop-coord{display:flex!important;align-items:center;justify-content:space-between;gap:8px;grid-template-columns:none!important;padding-top:8px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.punch-pop-coord .punch-pop-mapa{flex:0 0 auto;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand);font-weight:700;text-decoration:none}
.punch-pop-coord .punch-pop-mapa:hover{background:color-mix(in srgb,var(--brand) 18%,transparent)}
/* icone de evidencia junto ao tipo (ID/APR/SEQ) */
.attendance-time{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap}
.attendance-time .att-evid-icones{display:inline-flex}
.attendance-time .att-icone{width:22px;height:22px;border-radius:7px}
.attendance-time .att-icone svg{width:14px;height:14px}
.attendance-time .att-icone.com-local::after{width:8px;height:8px;right:-3px;top:-3px}

/* Administracao > Demonstracao */
.demo-painel .panel-body{display:grid;gap:16px}
.demo-estado-grelha{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px}
.demo-estado-cartao{display:flex;align-items:center;gap:14px;padding:16px;border-radius:var(--radius-2xl,14px);border:1px solid var(--line);background:var(--surface)}
.demo-estado-cartao.ativo{border-color:color-mix(in srgb,var(--success,#17844a) 35%,transparent);background:color-mix(in srgb,var(--success,#17844a) 6%,var(--surface))}
.demo-estado-icone{flex:0 0 auto;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft,#dff4ec);color:var(--brand)}
.demo-estado-icone svg{width:20px;height:20px}
.demo-estado-texto{flex:1;min-width:0;display:grid;gap:2px}
.demo-estado-texto small{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.demo-estado-texto strong{font-size:16px}
.demo-estado-texto span{font-size:12.5px;color:var(--muted);line-height:1.4}
.demo-estado-cartao>button{flex:0 0 auto;white-space:nowrap}
.demo-dados{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.demo-dado{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;background:var(--surface-2,#f1f5f4)}
.demo-dado-icone{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--surface);color:var(--brand);flex:0 0 auto}
.demo-dado-icone svg{width:16px;height:16px}
.demo-dado strong{display:block;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.demo-dado small{color:var(--muted);font-size:12px}
.demo-como{border:1px solid var(--line);border-radius:12px;padding:0 14px}
.demo-como summary{cursor:pointer;padding:11px 0;font-weight:700;font-size:13.5px;color:var(--text)}
.demo-como ul{margin:0 0 12px;padding-left:18px;display:grid;gap:6px;font-size:13px;color:var(--muted);line-height:1.5}
.demo-novo-codigo{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto;gap:12px;align-items:end;padding:16px;border-radius:14px;background:var(--surface-2,#f1f5f4)}
.demo-novo-codigo .field{display:grid;gap:6px;margin:0;min-width:0}
.demo-novo-codigo .field>span{font-size:12px;font-weight:700;color:var(--muted)}
.demo-novo-codigo input,.demo-novo-codigo select{width:100%;box-sizing:border-box}
.demo-novo-codigo .demo-validade-data[hidden]{display:none}
.demo-gerar{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.demo-gerar svg{width:16px;height:16px}
@media (max-width:900px){.demo-novo-codigo{grid-template-columns:1fr 1fr}.demo-campo-nota,.demo-gerar{grid-column:1/-1}}
.demo-vazio{display:grid;justify-items:center;gap:4px;padding:28px 16px 32px;text-align:center}
.demo-vazio>span{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft,#dff4ec);color:var(--brand);margin-bottom:6px}
.demo-vazio>span svg{width:20px;height:20px}
.demo-vazio small{color:var(--muted)}
.demo-novo-codigo input,.demo-novo-codigo select{background-color:var(--surface)!important;border:1px solid var(--line)!important;border-radius:10px;min-height:42px}
.demo-como summary{list-style:none}
.demo-como summary::-webkit-details-marker{display:none}
.demo-como summary::marker{content:none}

/* Hero do colaborador: o QR ocupa uma coluna reservada e nunca invade os registos. */
@media (min-width:1100px){
  .employee-hero-v2 .employee-live-hero-body{
    grid-template-columns:minmax(0,1fr);
    align-items:stretch;
  }
  .employee-hero-v2 .employee-live-hero-content{
    grid-template-columns:minmax(300px,440px) minmax(0,1fr);
    min-width:0;
  }
  .employee-hero-v2 .employee-live-hero-content>.employee-live-periods-block{
    min-width:0;
  }
  .employee-hero-v2 .employee-live-periods{
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;
  }
  .employee-hero-v2 .employee-live-hero-qr{
    display:none!important;
  }
  .employee-hero-v2 .employee-hero-qr-mini{
    display:inline-flex;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    gap:7px;
    flex:0 0 auto;
    min-width:74px;
    height:38px;
    padding:0 12px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.22);
    background:rgba(255,255,255,.1);
    color:#fff;
    font:inherit;
    font-size:11px;
    font-weight:800;
    letter-spacing:.05em;
    cursor:pointer;
  }
  .employee-hero-v2 .employee-hero-qr-mini svg{
    width:17px;
    height:17px;
  }
.employee-hero-v2 .employee-hero-qr-mini span{
    color:#fff;
    font-size:11px;
    line-height:1;
  }
}

/* Modo escuro neutro: cinza-carvão com o verde reservado à identidade e às ações. */
[data-theme=dark]{
  --bg:#202020;
  --surface:#272727;
  --surface-2:#303030;
  --text:#f5f5f5;
  --muted:#b8b8b8;
  --line:#424242;
  --brand:#00a86b;
  --brand-2:#f5f5f5;
  --brand-soft:#17372d;
  --sidebar-bg:#181818;
  --sidebar-panel:rgba(255,255,255,.07);
  --sidebar-text:#f2f2f2;
  --sidebar-muted:#b2b2b2;
  --sidebar-line:rgba(255,255,255,.12);
  --shadow:0 12px 34px rgba(0,0,0,.34);
}
[data-theme=dark] body{
  background:linear-gradient(180deg,rgba(0,168,107,.025),transparent 240px),var(--bg);
}
[data-theme=dark] .sidebar{
  background:linear-gradient(180deg,rgba(0,168,107,.07),transparent 260px),var(--sidebar-bg);
}
/* Assistente: as acoes em lote acompanham a selecao sem obrigar a voltar ao topo da lista. */
.desktop-app-access-panel.has-module-selection{padding-bottom:108px}
.desktop-app-access-bulk-bar{position:fixed;z-index:48;left:296px;right:28px;bottom:max(18px,env(safe-area-inset-bottom,0px));transform:none;width:auto;margin:0!important;padding:14px 20px!important;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--line))!important;border-radius:14px!important;background:var(--surface)!important;box-shadow:0 8px 24px rgba(15,23,42,.12);flex-wrap:nowrap!important;gap:20px!important}
#appShell.sidebar-collapsed .desktop-app-access-bulk-bar{left:104px}
.desktop-access-selection-summary{display:flex;flex-direction:column;align-items:flex-start;margin-right:auto;min-width:180px}
.desktop-access-eyebrow{color:var(--muted);font-size:.72rem;font-weight:500;letter-spacing:.08em;line-height:1.2}
.desktop-access-selection-line{display:flex;align-items:center;gap:10px;min-height:38px}
.desktop-access-selection-summary strong{display:block;font-variant-numeric:tabular-nums;line-height:1.25;white-space:nowrap}
.desktop-access-selection-summary strong b{font:inherit}
.desktop-access-clear{min-height:32px!important;width:auto!important;padding:5px 12px!important;border-radius:9px!important;font-size:.85rem!important}
.desktop-access-selection-actions{display:flex;align-items:center;gap:10px}
.desktop-access-selection-actions button{width:auto;white-space:nowrap}
.desktop-access-selection-actions svg{width:19px;height:19px}
@media(max-width:780px){.desktop-app-access-panel.has-module-selection{padding-bottom:176px}.desktop-app-access-bulk-bar,#appShell.sidebar-collapsed .desktop-app-access-bulk-bar{align-items:stretch;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom,0px));display:grid!important;grid-template-columns:1fr;width:auto;gap:12px!important;padding:14px!important}.desktop-access-selection-summary{min-width:0}.desktop-access-selection-line{justify-content:space-between;width:100%}.desktop-access-selection-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-access-selection-actions button{width:100%}}
.obr-paginacao{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line)}
.obr-paginacao-resumo{display:flex;align-items:baseline;gap:4px;color:var(--muted);white-space:nowrap}.obr-paginacao-resumo small{margin-left:8px;color:var(--muted)}
.obr-paginacao-controlos,.obr-paginacao-numeros{display:flex;align-items:center;gap:6px}.obr-paginacao-controlos{margin-left:auto}.obr-paginacao-controlos>button{width:auto;min-width:0;white-space:nowrap}.obr-paginacao-numeros button{width:auto;min-width:38px;padding-inline:10px}.obr-paginacao-numeros button.is-active{color:#fff;background:var(--brand,#087f5b);border-color:var(--brand,#087f5b)}.obr-paginacao-elipse{display:grid;place-items:center;min-width:18px;color:var(--muted);font-weight:700}
@media(max-width:700px){.obr-paginacao{align-items:stretch;flex-direction:column;gap:10px;padding:12px}.obr-paginacao-resumo{justify-content:space-between;width:100%;font-size:var(--text-sm)}.obr-paginacao-resumo small{margin-left:auto}.obr-paginacao-controlos{justify-content:space-between;margin:0;width:100%}.obr-paginacao-controlos>button{flex:0 0 auto;width:auto}.obr-paginacao-numeros{margin:auto}.obr-paginacao-numeros button{min-width:34px;padding-inline:8px}}
@media(max-width:430px){.obr-paginacao-numeros{display:none}.obr-paginacao-controlos>button{flex:1 1 0}.obr-paginacao-seguinte{justify-content:flex-end}.obr-paginacao-anterior{justify-content:flex-start}}
