/* =========================================================
   FIL Expo — CSS compacto optimizado (PT-PT)
   ========================================================= */

/* ----------------- Variáveis ----------------- */
:root{
  --filx-primary:#0a3c7d; --filx-primary-600:#0c4694; --filx-primary-200:rgba(10,60,125,.15);
  --filx-text:#111827; --filx-muted:#6b7280; --filx-line:#e5e7eb; --filx-bg:#fff;
  --ok-bg:#e1f7e7; --ok-b:#bbf7d0; --ok:#065f46;
  --warn-bg:#fef3c7; --warn-b:#fde68a; --warn:#92400e;
  --danger-bg:#fee2e2; --danger-b:#fecaca; --danger:#991b1b;
  --info-bg:#eef2ff; --info-b:#e0e7ff; --info:#3730a3;
  --r:12px; --sh-sm:0 2px 8px rgba(17,24,39,.06); --sh-md:0 6px 18px rgba(17,24,39,.10); --sh-lg:0 10px 24px rgba(17,24,39,.15);
  --container:1100px; --gap:14px;

  /* dimensões utilitárias */
  --h-ctrl:42px; --h-ctrl-sm:36px; --radius-sm:8px; --radius-md:10px; --radius-lg:16px;
}
@media (prefers-color-scheme:dark){
  :root{
    --filx-text:#e5e7eb; --filx-muted:#c9d1d9; --filx-line:#1f2937; --filx-bg:#0b1220;
    --filx-primary-200:rgba(138,180,255,.25);
  }
}

/* =========================================================
   FRONT-END (formulários, grelha e modal)
   ========================================================= */
.fil-expo-form,
.fil-expo-filters{
  max-width:var(--container);
  margin:20px auto;
  padding:16px;
  background:var(--filx-bg);
  border:1px solid var(--filx-line);
  border-radius:var(--r);
  box-shadow:var(--sh-sm);
}
.fil-expo-field{margin-bottom:14px}
.fil-expo-field label{display:block;font-weight:600;margin:0 0 6px;color:var(--filx-text)}
.fil-expo-field input,
.fil-expo-field select{
  width:100%; padding:10px 12px; border:1px solid var(--filx-line); border-radius:var(--radius-md);
  background:#fff; font-size:15px; transition:border-color .15s,box-shadow .15s,background .15s
}
.fil-expo-field input:focus,
.fil-expo-field select:focus{outline:0;border-color:var(--filx-primary);box-shadow:0 0 0 3px var(--filx-primary-200)}

.fil-expo-filters{
  display:grid; grid-template-columns:1fr 140px 130px; gap:12px; align-items:center
}
.fil-expo-filters select,
.fil-expo-filter-btn{height:var(--h-ctrl)}

.fil-expo-submit,
.fil-expo-filter-btn,
.fil-expo-inline .button{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--filx-primary); color:#fff; padding:10px 16px; border:0; border-radius:var(--radius-md);
  cursor:pointer; font-weight:700; letter-spacing:.01em;
  transition:transform .06s,box-shadow .15s,opacity .15s;
  box-shadow:0 2px 8px rgba(10,60,125,.18)
}
.fil-expo-submit:hover,
.fil-expo-filter-btn:hover{transform:translateY(-1px);box-shadow:var(--sh-lg)}
.fil-expo-submit[disabled]{opacity:.7;cursor:not-allowed;filter:saturate(.6)}

.fil-expo-alert{
  max-width:var(--container); margin:16px auto; padding:12px 14px; border-radius:var(--radius-md); border:1px solid var(--filx-line)
}
.fil-expo-alert-error{background:var(--danger-bg);border-color:var(--danger-b);color:var(--danger)}
.fil-expo-alert-success{background:var(--ok-bg);border-color:var(--ok-b);color:var(--ok)}

.fil-expo-grid{
  max-width:var(--container); margin:18px auto 42px;
  display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:var(--gap);
  align-items:stretch;
}
.fil-expo-card{
  border:1px solid #e9edf3; border-radius:var(--radius-lg); background:var(--filx-bg);
  padding:16px; display:flex; flex-direction:column; gap:10px;
  transition:border-color .15s,box-shadow .18s,transform .06s;
  box-shadow:0 8px 28px rgba(17,24,39,.08); min-height:430px; height:100%;
}
.fil-expo-card:hover,
.fil-expo-card:focus-within{border-color:#d7dde6;box-shadow:var(--sh-md);transform:translateY(-1px)}
.fil-expo-card img,
.fil-expo-logo-preview img{
  width:100%; height:200px; object-fit:contain; display:block; background:#fff!important;
  border:1px solid #e5e7eb!important; border-radius:var(--radius-md); padding:8px
}
.fil-expo-card h4{margin:0 0 8px;font-size:1rem;line-height:1.25;font-weight:700;color:var(--filx-text)}
.fil-expo-card .meta{margin-top:0}
.fil-expo-card .meta span{
  display:inline-block; padding:3px 8px; border-radius:999px; background:var(--info-bg); color:var(--info);
  border:1px solid var(--info-b); font-weight:600
}
.fil-expo-social{display:flex;gap:12px;margin-top:10px;align-items:center}
.fil-expo-icon{
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--filx-line);border-radius:var(--radius-md);background:#fff;
  transition:transform .06s,box-shadow .15s,border-color .15s;
  box-shadow:0 1px 4px rgba(17,24,39,.06);text-decoration:none
}
.fil-expo-icon svg{fill:#374151;transition:fill .15s}
.fil-expo-icon:hover{transform:translateY(-1px);border-color:#d7dde6;box-shadow:0 6px 16px rgba(17,24,39,.12)}
.fil-expo-icon:hover svg{fill:var(--filx-primary)}

.fil-expo-meeting-btn{
  height:40px;padding:0 16px;border-radius:12px;border:1px solid var(--filx-line);
  background:var(--filx-primary);color:#fff;font-weight:800;width:100%;margin-top:auto;
  cursor:pointer;white-space:nowrap;transition:transform .06s,box-shadow .15s;
  box-shadow:0 4px 12px rgba(10,60,125,.18)
}
.fil-expo-meeting-btn:hover{transform:translateY(-1px);box-shadow:var(--sh-lg)}
.fil-expo-meeting-btn:disabled{opacity:.7;cursor:not-allowed}

/* ----- Modal Marcar Reunião ----- */
.fil-expo-modal{position:fixed;inset:0;display:none;z-index:999999}
.fil-expo-modal.is-open{display:block}
.fil-expo-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.60)}
.fil-expo-modal__card{
  position:relative;margin:6vh auto 0;max-width:860px;width:90%;max-height:90vh;overflow:auto;
  background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius-lg);padding:22px;
  box-shadow:0 24px 64px rgba(0,0,0,.35)
}
.fil-expo-modal__close{position:absolute;top:10px;right:12px;border:0;background:transparent;font-size:24px;cursor:pointer}
html.fil-expo-lock,body.fil-expo-lock{overflow:hidden!important}
.fil-expo-modal__grid{display:grid;gap:14px;grid-template-columns:1fr 1fr;align-items:flex-start}
.fil-expo-col-span-2{grid-column:1/-1}
.fil-expo-radio-group{display:flex;gap:18px;align-items:center;padding:8px 0}
.fil-expo-radio-group label{display:flex;align-items:center;gap:8px;font-weight:600}
.fil-expo-modal .fil-expo-submit{min-width:220px;height:44px}
.fil-expo-modal .fil-expo-field>label{display:block;margin:0 0 6px}
.fil-expo-modal .fil-expo-optin{grid-column:1/-1}
.fil-expo-modal .fil-expo-optin label{display:flex!important;align-items:flex-start;gap:10px;width:100%;margin:0;line-height:1.35}
.fil-expo-modal .fil-expo-optin input[type="checkbox"]{margin:3px 0 0 0;width:18px;height:18px}
.fil-expo-modal .fil-expo-optin span{flex:1 1 auto;white-space:normal}

/* ----- Responsivo front ----- */
@media (max-width:900px){
  .fil-expo-filters{grid-template-columns:1fr}
  .fil-expo-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
}
@media (max-width:720px){
  .fil-expo-modal__grid{grid-template-columns:1fr}
  .fil-expo-modal__card{width:94%;margin:3vh auto 0}
}

/* =========================================================
   ADMIN (tabelas, botões, contadores)
   ========================================================= */
.filx-admin{max-width:1200px;margin:36px auto 60px;padding:0 12px}
.filx-h2{margin:10px 0 16px;font-size:28px;font-weight:800}
.filx-hr{margin:26px 0;border:0;border-top:1px solid #e8edf5}

.filx-table-wrap{overflow:auto;border-radius:14px;box-shadow:var(--sh-md)}
.filx-table{
  width:100%;border-collapse:separate;border-spacing:0;background:var(--filx-bg);
  border:1px solid var(--filx-line);table-layout:fixed
}
.filx-table thead th{
  background:linear-gradient(#f8fafc,#f1f5f9);color:var(--filx-text);text-align:left;font-weight:700;
  padding:12px 14px;border-bottom:1px solid var(--filx-line);white-space:nowrap
}
.filx-table td{
  padding:12px 14px;border-bottom:1px solid #eef2f7;vertical-align:middle;color:var(--filx-text);
  position:relative;overflow:hidden
}
.filx-table tr:last-child td{border-bottom:0}
.align-right{text-align:right}
.filx-td-trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filx-td-actions{overflow:visible}
.filx-td-meet{overflow:hidden;text-align:right}

/* Ações + botões */
.filx-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap}
.filx-btn{
  height:var(--h-ctrl-sm); padding:0 12px; border-radius:var(--radius-md);
  border:0; cursor:pointer; white-space:nowrap; transition:transform .06s,box-shadow .15s,filter .15s
}
.filx-btn--sm{height:var(--h-ctrl-sm);padding:0 10px;font-size:13px;border-radius:var(--radius-sm)}
.filx-btn--primary{background:var(--filx-primary);color:#fff}
.filx-btn--danger{background:#ef4444;color:#fff}
.filx-btn--warning{background:#fde68a;color:#7c2d12}
.filx-btn--ok{background:#d1fae5;color:#065f46}
.filx-btn--ghost{background:#f3f4f6;color:#111827}
.filx-btn--info{
  background:#00A3D9;color:#fff;border:1px solid #009ACB;box-shadow:0 2px 8px rgba(0,163,217,.18)
}
.filx-btn--info:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(0,163,217,.22);filter:saturate(1.02)}
/* garantir dimensões consistentes em “sm” */
.filx-btn--sm{height:var(--h-ctrl-sm);padding:0 14px;border-radius:var(--radius-md)}

/* Badges */
.filx-badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1;border:1px solid transparent}
.filx-badge--ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-b)}
.filx-badge--warn{background:#fdecec;color:#7f1d1d;border:1px solid #fecaca}
.filx-badge--muted{background:#f3f4f6;color:var(--filx-muted);border:1px solid #e5e7eb}

/* Chips de reuniões */
.filx-chip{
  display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;
  font-size:12px;font-weight:700;line-height:1;border:1px solid #e5e7eb;background:#fff;color:#111827;max-width:100%
}
.filx-chip .num{display:inline-block;min-width:22px;height:22px;padding:0 6px;border-radius:8px;text-align:center;line-height:22px;font-weight:800}
.filx-chip .num--ok{background:#16a34a;color:#fff;border:1px solid #0f6e34}
.filx-chip .num--pending{background:#f59e0b;color:#fff;border:1px solid #b45309}

/* Inputs admin */
.filx-input{
  height:var(--h-ctrl);padding:8px 12px;border:1px solid var(--filx-line);border-radius:var(--radius-md);
  background:var(--filx-bg);color:var(--filx-text);transition:border-color .15s,box-shadow .15s
}
.filx-input:focus{border-color:var(--filx-primary);outline:0;box-shadow:0 0 0 3px var(--filx-primary-200)}

/* ===== Tabela de pedidos (meetings) ===== */
.filx-table--meetings{
  table-layout:fixed; font-size:.95rem; border-radius:12px;
}
.filx-table--meetings th,
.filx-table--meetings td{padding:8px 10px;white-space:nowrap;vertical-align:middle}
.filx-table--meetings td{overflow:visible}
.filx-table--meetings .filx-td-actions{overflow:visible}
.filx-meet-actions{
  display:flex; gap:8px; align-items:center; justify-content:flex-end; position:relative; z-index:5; flex-wrap:nowrap
}
.filx-select{
  height:var(--h-ctrl-sm); min-width:160px; max-width:100%; padding:6px 8px; position:relative; z-index:6
}
.filx-time-pill{display:inline-block;padding:4px 10px;border-radius:8px;background:#eef2ff;border:1px solid #e0e7ff;color:#3730a3;font-weight:700}
.filx-no-actions{color:#9ca3af;font-style:italic;display:inline-block}

/* ===== Admin > Expositores: ações na 2.ª linha ===== */
.filx-ex-actions-row td{background:#f8fafc;padding:10px 14px 14px}
.filx-ex-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.filx-ex-row:hover + .filx-ex-actions-row td{background:#f4f7fb}

/* Barra de ações com key à esquerda e botões à direita */
.filx-ex-actions-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap
}
.filx-key{
  flex:1 1 auto; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; user-select:all;
  font:500 12px/1 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace;
  color:#6b7280; background:#f3f4f6; border:1px solid #e5e7eb; padding:4px 8px; border-radius:8px;
}
.filx-ex-actions{flex:0 0 auto;display:flex;gap:8px;flex-wrap:nowrap;margin-left:auto}
@media (max-width:700px){.filx-ex-actions{justify-content:flex-start}}
@media (max-width:560px){
  .filx-ex-actions-bar{flex-wrap:wrap}
  .filx-ex-actions{margin-left:0}
}

/* Reuniões centradas (A/P) */
.filx-th-meets,
.filx-td-meet{text-align:center!important}
.filx-td-meet .filx-chip{justify-content:center}

/* Agrupado por sector (list-by-sector) */
.fil-expo-sector-title{margin:28px 0 14px;font-size:clamp(22px,2.6vw,32px);font-weight:800;color:#2b2f37}
.fil-expo-list{display:flex;flex-direction:column;gap:12px;margin-bottom:22px}
.fil-expo-row{
  display:grid;grid-template-columns:140px 1fr auto auto;gap:16px;align-items:center;
  background:#fff;border:1px solid #e8edf5;border-radius:14px;padding:12px 14px;box-shadow:0 2px 8px rgba(17,24,39,.06)
}
.fil-expo-row__logo img{width:120px;height:80px;object-fit:contain;background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius-md);padding:6px}
.fil-expo-company{font-weight:800;font-size:18px;letter-spacing:.2px}
.fil-expo-row__social{display:flex;gap:10px;justify-content:flex-start}
.fil-expo-row__cta{display:flex;justify-content:flex-end}
@media (max-width:860px){
  .fil-expo-row{grid-template-columns:100px 1fr;grid-template-areas:"logo name" "social cta";row-gap:10px}
  .fil-expo-row__logo{grid-area:logo}
  .fil-expo-row__name{grid-area:name}
  .fil-expo-row__social{grid-area:social}
  .fil-expo-row__cta{grid-area:cta;justify-content:flex-start}
}

/* Filtros numa só linha (desktop) */
@media (min-width:900px){
  .fil-expo-filters{display:flex!important;align-items:center;gap:12px;flex-wrap:nowrap}
  .fil-expo-filters select{min-width:240px;width:auto}
  .fil-expo-view-toggle{display:flex;gap:8px}
  .fil-expo-filter-btn{margin-left:auto;height:var(--h-ctrl);padding:0 18px}
}

/* ===== Acessibilidade e animações ===== */
:where(.fil-expo-card a,.fil-expo-filter-btn,.fil-expo-submit,.fil-expo-field input,.fil-expo-field select,.filx-input,.filx-btn):focus-visible{
  outline:0; box-shadow:0 0 0 3px var(--filx-primary-200)
}
@media (prefers-reduced-motion:reduce){
  .fil-expo-card,.fil-expo-filter-btn,.fil-expo-submit,.filx-btn{transition:none!important}
}

/* ===== Dark mode refinado (admin + front) ===== */
@media (prefers-color-scheme:dark){
  .fil-expo-form,.fil-expo-filters,.fil-expo-card,.filx-table,.filx-input{background:var(--filx-bg);border-color:var(--filx-line)}
  .fil-expo-card .meta{color:var(--filx-muted)}
  .filx-table-wrap{box-shadow:0 6px 18px rgba(0,0,0,.35)}
  .filx-table thead th{background:#0f172a;color:var(--filx-text)}
  .filx-table tbody tr:hover{background:#0f172a}
  .filx-btn--ghost{background:#111827;color:#e5e7eb;border-color:var(--filx-line)}
  .filx-btn--danger{background:#3b0d0d;color:#fecaca;border-color:#7f1d1d}
  .fil-expo-icon{background:#0f172a;border-color:var(--filx-line)}
  .fil-expo-icon svg{fill:#c9d1d9}
  .fil-expo-icon:hover svg{fill:#8ab4ff}
  .fil-expo-modal__card{background:#0b1220;border-color:#1f2937}
}

/* Mais colunas no desktop */
@media (min-width: 1280px){
  /* aumenta um pouco a largura útil da grelha */
  .fil-expo-grid{
    max-width: 1400px;                 /* antes era ~1100px; ajusta se quiseres */
    grid-template-columns: repeat(5, 1fr);
  }
  /* opcional: reduzir o gap se ficar demasiado largo */
  /* .fil-expo-grid{ gap: 12px; } */
}

/* Opcional: 5 colunas entre 1100–1279px (transição suave) */
@media (min-width: 1100px) and (max-width: 1279px){
  .fil-expo-grid{
    grid-template-columns: repeat(5, 1fr);
  }
}

:root{
  --filx-logo-h: 140px;  /* muda aqui e propaga */
}

.fil-expo-card img,
.fil-expo-logo-preview img{
  height: var(--filx-logo-h);
  padding: 6px;
  border-radius: 8px;
}


/* --- Cartão mais pequeno (div) --- */
.fil-expo-card{
  padding: 10px;          /* antes 14–16px */
  border-radius: 12px;    /* ligeiramente menor */
  gap: 8px;               /* antes 10px */
  min-height: auto;       /* evita alturas mínimas herdadas */
}

/* Título e metadados mais compactos */
.fil-expo-card h4{
  font-size: .95rem;      /* antes 1rem */
  margin: 0 0 6px;
  line-height: 1.2;
}
.fil-expo-card .meta span{
  padding: 2px 7px;       /* badge menor */
  font-size: .78rem;
}

/* Redes sociais mais justas */
.fil-expo-social{
  gap: 8px;
  margin-top: 6px;
}
.fil-expo-icon{
  width: 30px; height: 30px;  /* antes 34px */
  border-radius: 8px;
}

/* Botão no fundo, sem ocupar altura extra */
.fil-expo-meeting-btn{
  height: 36px;            /* antes 40px */
  margin-top: auto;        /* garante que “cola” ao fundo do cartão */
  border-radius: 10px;
  padding: 0 14px;
}

/* --- Logo mais pequeno (já ajuda a reduzir a div) --- */
.fil-expo-card img,
.fil-expo-logo-preview img{
  height: 130px;           /* antes 200px */
  padding: 6px;            /* antes 8px */
  border-radius: 8px;
}

/* --- Grelha com cartões um pouco mais estreitos (opcional) --- */
.fil-expo-grid{
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); /* antes 240px */
  gap: 12px;                                                    /* antes var(--filx-gap) */
}

/* Mobile: mantém tudo legível */
@media (max-width: 900px){
  .fil-expo-grid{
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  }
}

/* Variante “sm” — usa quando precisares */
.fil-expo-meeting-btn--sm{
  height: 30px;
  padding: 0 10px;
  font-size: 13px;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(10,60,125,.12);
}

/* --- modal sempre no topo --- */
.fil-expo-modal{ position:fixed; inset:0; display:none; z-index:2147483000; }
.fil-expo-modal.is-open{ display:block; }

.fil-expo-modal__backdrop{
  position:fixed; inset:0; background:rgba(15,23,42,.65);
  z-index:2147483000;
}
.fil-expo-modal__card{
  position:relative; z-index:2147483001;
  margin:6vh auto 0; max-width:860px; width:90%;
  max-height:90vh; overflow:auto;
  background:#fff; border:1px solid #e5e7eb; border-radius:16px;
  box-shadow:0 24px 64px rgba(0,0,0,.35);
}

/* bloquear scroll da página quando o modal abre */
html.fil-expo-lock, body.fil-expo-lock{ overflow:hidden !important; }

/* --- empurrar o footer (e barras flutuantes) para trás enquanto o modal está aberto --- */
body.fil-expo-lock .fusion-footer,
body.fil-expo-lock .fusion-footer-sticky-wrapper,
body.fil-expo-lock .fusion-footer-widget-area,
body.fil-expo-lock .fusion-copyright-content,
body.fil-expo-lock .fusion-footer-fixed,
body.fil-expo-lock .fusion-bottom-frame,
body.fil-expo-lock .fusion-bottom-nav,
body.fil-expo-lock .fusion-mobile-bar,
body.fil-expo-lock .fusion-contact-info,
body.fil-expo-lock .fusion-fixed-content,
body.fil-expo-lock [class*="footer"],
body.fil-expo-lock [class*="contact"],
body.fil-expo-lock [class*="sticky"]{
  z-index:1 !important;
  pointer-events:none;   /* evita cliques por cima do modal */
}

/* reativar cliques dentro do modal */
.fil-expo-modal, .fil-expo-modal *{ pointer-events:auto; }

