/*
 * Área de Membros DuarteLab — camada de apresentação (0.3.3).
 * Identidade aprovada: preto #0B0B0B, prata #C5C9CD, champanhe #D4C2A5, off-white #F5F5F5, Montserrat.
 * Tokens escopados em .duartelab-portal-page para não alterar o site público.
 * Os poucos !important existentes neutralizam regras globais !important do tema (títulos e página padrão).
 */
.duartelab-portal-page {
  --dlp-black: #0b0b0b;
  --dlp-black-2: #16171a;
  --dlp-silver: #c5c9cd;
  --dlp-champagne: #d4c2a5;
  --dlp-champagne-text: #77633f; /* champanhe escurecido para texto em fundo claro (≥ 4.5:1) */
  --dlp-bg: #f4f4f3;
  --dlp-surface: #ffffff;
  --dlp-surface-2: #f8f8f7;
  --dlp-line: #e1e2e4;
  --dlp-line-strong: #c9cbce;
  --dlp-text: #16171a;
  --dlp-muted: #5c6066;
  --dlp-success: #276749;
  --dlp-success-bg: #e3f0e8;
  --dlp-warning: #7a5b12;
  --dlp-warning-bg: #f5ecd6;
  --dlp-danger: #9b2c2c;
  --dlp-danger-bg: #f6e3e3;
  --dlp-radius: 4px;
  --dlp-font: "Montserrat", Arial, Helvetica, sans-serif;
  --dlp-s1: 4px; --dlp-s2: 8px; --dlp-s3: 12px; --dlp-s4: 16px; --dlp-s5: 24px; --dlp-s6: 32px;
  --dlp-control: 38px;
  --dlp-sidebar: 232px;
  --dlp-topbar: 52px;
  --dlp-adminbar: 0px;
}
.admin-bar.duartelab-portal-page { --dlp-adminbar: 32px; }
@media (max-width: 782px) { .admin-bar.duartelab-portal-page { --dlp-adminbar: 46px; } }
@media (max-width: 600px) { .admin-bar.duartelab-portal-page { --dlp-adminbar: 0px; } }

/* ---------- Neutraliza a moldura do tema só nesta página ---------- */
.duartelab-portal-page .wp-site-blocks,
.duartelab-portal-page main,
.duartelab-portal-page .entry-content { max-width: none !important; margin: 0 !important; padding: 0 !important; }
.duartelab-portal-page header.wp-block-template-part,
.duartelab-portal-page footer.wp-block-template-part,
.duartelab-portal-page .entry-header,
.duartelab-portal-page .dl-header,
.duartelab-portal-page .dl-footer,
.duartelab-portal-page .dl-default-page > .dl-container > .dl-kicker,
.duartelab-portal-page .dl-default-page > .dl-container > h1 { display: none !important; }
.duartelab-portal-page .dl-default-page,
.duartelab-portal-page .dl-page-content,
.duartelab-portal-page .dl-default-page > .dl-container { width: 100% !important; max-width: none !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; }
.duartelab-portal-page { background: var(--dlp-bg); }

.duartelab-login-shell,
.duartelab-portal-shell,
.duartelab-access-denied { color: var(--dlp-text); font-family: var(--dlp-font); font-size: 14px; line-height: 1.5; }
.duartelab-portal-shell h1, .duartelab-portal-shell h2, .duartelab-portal-shell h3,
.duartelab-login-shell h1, .duartelab-login-shell h2, .duartelab-access-denied h1 { font-family: var(--dlp-font) !important; letter-spacing: -.01em; }

/* ---------- Marca ---------- */
.duartelab-portal-logo,
.duartelab-login-brand > a { display: inline-flex; align-items: center; gap: 10px; width: max-content; color: #fff; text-decoration: none; }
.duartelab-portal-logo .dl-brand-symbol.is-light-surface,
.duartelab-login-brand .dl-brand-symbol.is-light-surface { display: none; }
.duartelab-portal-logo .dl-brand-symbol { width: 32px; height: 32px; }
.duartelab-login-brand .dl-brand-symbol { width: 40px; height: 40px; }
.duartelab-portal-logo .dl-brand-text,
.duartelab-login-brand .dl-brand-text { display: flex; flex-direction: column; line-height: 1; }
.duartelab-portal-logo .dl-brand-name, .duartelab-login-brand .dl-brand-name { color: #fff; font-size: 17px; font-weight: 400; }
.duartelab-portal-logo .dl-brand-name span, .duartelab-login-brand .dl-brand-name span { color: var(--dlp-champagne); }
.duartelab-portal-logo .dl-brand-tagline, .duartelab-login-brand .dl-brand-tagline { margin-top: 5px; color: var(--dlp-silver); font-size: 8px; font-weight: 500; letter-spacing: .36em; text-transform: uppercase; }
.duartelab-portal-logo strong, .duartelab-login-brand > a strong { font-weight: 600; letter-spacing: .1em; }
.duartelab-portal-logo > span:not(.dl-brand-text), .duartelab-login-brand > a > span:not(.dl-brand-text) { color: var(--dlp-champagne); }

/* ---------- Login, cadastro e recuperação ---------- */
.duartelab-login-shell { min-height: 100svh; display: grid; grid-template-columns: minmax(0, 1fr) minmax(420px, 520px); background: var(--dlp-bg); }
.duartelab-login-brand { padding: clamp(28px, 4vw, 56px); display: flex; flex-direction: column; justify-content: space-between; gap: 32px; color: #fff; background: radial-gradient(circle at 78% 24%, rgba(212,194,165,.12), transparent 26%), linear-gradient(125deg, #0b0b0b, #17181b 62%, #0b0b0b); }
.duartelab-login-brand > div { max-width: 560px; }
.duartelab-login-brand p { max-width: 460px; margin: 0 0 14px; color: var(--dlp-silver); font-size: 15px; line-height: 1.65; }
.duartelab-login-brand p:first-child { color: var(--dlp-champagne); font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.duartelab-login-brand h1 { margin: 0 0 18px; font-size: clamp(32px, 3.6vw, 52px) !important; font-weight: 300 !important; line-height: 1.1; color: #fff; }
.duartelab-login-brand small { color: rgba(197,201,205,.75); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.duartelab-login-card { width: min(100%, 440px); margin: auto; padding: clamp(28px, 4vw, 48px) clamp(20px, 3vw, 32px); }
.duartelab-login-card h2 { margin: 0; font-size: 28px !important; font-weight: 500 !important; }
.duartelab-login-card > p:not(.duartelab-kicker) { margin: 8px 0 24px; color: var(--dlp-muted); line-height: 1.6; }
.duartelab-login-card form { display: grid; gap: var(--dlp-s4); }
.duartelab-login-card label:not(.duartelab-check) { display: grid; gap: 6px; }
.duartelab-login-card label > span:first-child { color: #3f4247; font-size: 12px; font-weight: 600; }
.duartelab-login-card input[type="text"],
.duartelab-login-card input[type="password"],
.duartelab-login-card input[type="email"] { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid var(--dlp-line-strong); border-radius: var(--dlp-radius); background: var(--dlp-surface); color: var(--dlp-text); font: 15px var(--dlp-font); }
.duartelab-auth-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dlp-s3); }
.duartelab-auth-links { margin-top: var(--dlp-s5); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--dlp-s3); }
.duartelab-auth-links a, .duartelab-forgot { color: var(--dlp-muted); font-size: 13px; text-decoration: underline; text-underline-offset: 4px; }
.duartelab-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.duartelab-password { position: relative; display: block; }
.duartelab-password input { padding-right: 84px !important; }
.duartelab-password button { position: absolute; top: 50%; right: 8px; transform: translateY(-50%); min-height: 32px; padding: 0 8px; border: 0; background: transparent; color: var(--dlp-muted); cursor: pointer; font: 600 11px var(--dlp-font); text-transform: uppercase; }
.duartelab-check { display: flex; align-items: center; gap: 9px; color: var(--dlp-muted); cursor: pointer; font-size: 13px; }
.duartelab-check input { width: 18px; height: 18px; accent-color: var(--dlp-black); }

/* ---------- Componentes base ---------- */
.duartelab-kicker { margin: 0 0 6px !important; color: var(--dlp-champagne-text) !important; font-size: 11px !important; font-weight: 600 !important; letter-spacing: .16em !important; text-transform: uppercase; }
.duartelab-primary { min-height: 40px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid var(--dlp-black); border-radius: var(--dlp-radius); background: var(--dlp-black); color: #fff; cursor: pointer; font: 600 12px var(--dlp-font); letter-spacing: .06em; text-transform: uppercase; }
.duartelab-primary:hover { background: #26282c; }
.duartelab-primary span { color: var(--dlp-champagne); }
.duartelab-login-card .duartelab-primary { min-height: 46px; width: 100%; }
.duartelab-portal-shell :focus-visible,
.duartelab-login-shell :focus-visible,
.duartelab-access-denied :focus-visible { outline: 2px solid var(--dlp-champagne-text); outline-offset: 2px; }
.duartelab-sidebar :focus-visible, .duartelab-login-brand :focus-visible { outline-color: var(--dlp-champagne); }

.duartelab-notice { margin: 0 0 var(--dlp-s4); padding: 10px 14px; border: 1px solid var(--dlp-line); border-left: 3px solid var(--dlp-champagne-text); border-radius: var(--dlp-radius); background: var(--dlp-surface); font-size: 13px; line-height: 1.5; }
.duartelab-notice.is-success { border-left-color: var(--dlp-success); background: var(--dlp-success-bg); color: var(--dlp-success); }
.duartelab-notice.is-error { border-left-color: var(--dlp-danger); background: var(--dlp-danger-bg); color: var(--dlp-danger); }

/* ---------- Moldura do portal ---------- */
.duartelab-portal-shell { min-height: calc(100svh - var(--dlp-adminbar)); display: grid; grid-template-columns: var(--dlp-sidebar) minmax(0, 1fr); background: var(--dlp-bg); }
.duartelab-sidebar { position: sticky; top: var(--dlp-adminbar); height: calc(100svh - var(--dlp-adminbar)); padding: 18px 12px 12px; display: flex; flex-direction: column; color: #fff; background: var(--dlp-black); }
.duartelab-sidebar .duartelab-portal-logo { margin: 0 6px 18px; }
.duartelab-sidebar nav { display: grid; align-content: start; gap: 2px; overflow-y: auto; }
.duartelab-sidebar nav a { position: relative; min-height: 38px; padding: 0 12px; display: flex; align-items: center; border-radius: var(--dlp-radius); color: rgba(255,255,255,.72); font-size: 13px; text-decoration: none; transition: background .15s ease, color .15s ease; }
.duartelab-sidebar nav a span { display: none; }
.duartelab-sidebar nav a:hover { background: rgba(255,255,255,.06); color: #fff; }
.duartelab-sidebar nav a.is-active { background: rgba(212,194,165,.14); color: #fff; font-weight: 600; }
.duartelab-sidebar nav a.is-active::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 2px; background: var(--dlp-champagne); }
.duartelab-sidebar-user { margin-top: auto; padding: 12px 6px 0; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-top: 1px solid rgba(197,201,205,.16); }
.duartelab-sidebar-user > span { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid rgba(212,194,165,.6); border-radius: 50%; color: var(--dlp-champagne); font-size: 13px; font-weight: 600; }
.duartelab-sidebar-user div { min-width: 0; display: grid; gap: 1px; }
.duartelab-sidebar-user strong, .duartelab-sidebar-user small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.duartelab-sidebar-user strong { font-size: 12px; font-weight: 600; }
.duartelab-sidebar-user small { color: var(--dlp-silver); font-size: 11px; }
.duartelab-sidebar-user > a { min-width: 32px; min-height: 32px; display: grid; place-items: center; border-radius: var(--dlp-radius); color: var(--dlp-silver); font-size: 12px; text-decoration: none; }
.duartelab-sidebar-user > a:hover { background: rgba(255,255,255,.08); color: #fff; }

.duartelab-portal-main { min-width: 0; }
.duartelab-portal-main > header { position: sticky; z-index: 5; top: var(--dlp-adminbar); height: var(--dlp-topbar); padding: 0 clamp(16px, 2.4vw, 28px); display: flex; align-items: center; justify-content: space-between; gap: var(--dlp-s3); border-bottom: 1px solid var(--dlp-line); background: rgba(255,255,255,.94); }
.duartelab-portal-main > header button { display: none; }
.duartelab-portal-main > header div { display: flex; align-items: center; gap: 8px; color: var(--dlp-muted); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.duartelab-portal-main > header i { width: 7px; height: 7px; border-radius: 50%; background: var(--dlp-success); box-shadow: 0 0 0 3px rgba(39,103,73,.14); }
.duartelab-portal-main > header a { min-height: 32px; display: inline-flex; align-items: center; color: var(--dlp-muted); font-size: 12px; font-weight: 600; text-decoration: none; }
.duartelab-portal-main > header a:hover { color: var(--dlp-text); }
.duartelab-portal-content { max-width: 1440px; padding: var(--dlp-s5) clamp(16px, 2.4vw, 28px) var(--dlp-s6); }

/* ---------- Títulos de módulo ---------- */
.duartelab-portal-shell .duartelab-page-heading { margin-bottom: var(--dlp-s4); }
.duartelab-portal-shell .duartelab-page-heading .duartelab-kicker { display: none; }
.duartelab-portal-shell .duartelab-page-heading h1 { margin: 0 !important; font-size: 22px !important; font-weight: 600 !important; line-height: 1.25; }
.duartelab-portal-shell .duartelab-page-heading > p:last-child { max-width: 860px; margin: 4px 0 0; color: var(--dlp-muted); font-size: 13px; line-height: 1.5; }

/* ---------- Painéis, formulários e recolhíveis ---------- */
.duartelab-panel { margin-top: var(--dlp-s4); padding: var(--dlp-s4) 18px; border: 1px solid var(--dlp-line); border-radius: var(--dlp-radius); background: var(--dlp-surface); }
.duartelab-panel-heading { margin-bottom: var(--dlp-s3); display: flex; align-items: baseline; justify-content: space-between; gap: var(--dlp-s4); }
.duartelab-panel-heading .duartelab-kicker { margin: 0 0 2px !important; font-size: 10px !important; }
.duartelab-panel-heading h2 { margin: 0; font-size: 16px !important; font-weight: 600 !important; line-height: 1.3; }
.duartelab-panel-heading a { color: var(--dlp-muted); font-size: 12px; }

.duartelab-collapsible { margin-top: var(--dlp-s4); border: 1px solid var(--dlp-line); border-radius: var(--dlp-radius); background: var(--dlp-surface); }
.duartelab-collapsible > summary { min-height: 44px; padding: 0 16px; display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; font-size: 13px; font-weight: 600; }
.duartelab-collapsible > summary::-webkit-details-marker { display: none; }
.duartelab-collapsible > summary::before { content: "+"; width: 22px; height: 22px; display: grid; place-items: center; flex-shrink: 0; border-radius: 50%; background: var(--dlp-black); color: var(--dlp-champagne); font-size: 15px; line-height: 1; }
.duartelab-collapsible[open] > summary::before { content: "−"; }
.duartelab-collapsible > summary small { margin-left: auto; color: var(--dlp-muted); font-size: 12px; font-weight: 400; }
.duartelab-collapsible > summary:hover { background: var(--dlp-surface-2); }
.duartelab-collapsible > .duartelab-panel,
.duartelab-collapsible > .duartelab-two-column > .duartelab-panel { margin: 0; border: 0; border-top: 1px solid var(--dlp-line); border-radius: 0; }
.duartelab-collapsible .duartelab-panel-heading { display: none; }
.duartelab-actions-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--dlp-s3); align-items: start; }
.duartelab-actions-row > .duartelab-collapsible { margin-top: var(--dlp-s4); }

.duartelab-form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--dlp-s3) var(--dlp-s4); }
.duartelab-form-grid.one-column { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.duartelab-form label:not(.duartelab-check),
.duartelab-content-form label:not(.duartelab-check) { display: grid; gap: 5px; align-content: start; }
.duartelab-form label > span:first-child,
.duartelab-content-form label > span:first-child { color: #3f4247; font-size: 12px; font-weight: 600; }
.duartelab-form label.is-wide { grid-column: 1 / -1; }
.duartelab-form input:not([type="checkbox"]),
.duartelab-form select,
.duartelab-form textarea,
.duartelab-content-form input[type="text"],
.duartelab-content-form textarea,
.duartelab-filter input,
.duartelab-filter select,
.duartelab-request-list input,
.duartelab-staff-list select { width: 100%; min-height: var(--dlp-control); padding: 7px 10px; border: 1px solid var(--dlp-line-strong); border-radius: var(--dlp-radius); background: var(--dlp-surface); color: var(--dlp-text); font: 14px var(--dlp-font); }
.duartelab-form input[type="file"], .duartelab-content-form input[type="file"] { padding: 6px; font-size: 13px; }
.duartelab-form label small, .duartelab-content-form label small { color: var(--dlp-muted); font-size: 12px; line-height: 1.45; }
.duartelab-form textarea, .duartelab-content-form textarea { min-height: 84px; resize: vertical; }
.duartelab-form input:focus, .duartelab-form select:focus, .duartelab-form textarea:focus,
.duartelab-content-form input:focus, .duartelab-content-form textarea:focus,
.duartelab-filter input:focus, .duartelab-filter select:focus { border-color: var(--dlp-champagne-text); outline: 2px solid rgba(119,99,63,.2); outline-offset: 0; }
.duartelab-form > .duartelab-primary { min-width: 200px; margin-top: var(--dlp-s4); }
.duartelab-two-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dlp-s3); }

.duartelab-filter { margin-bottom: var(--dlp-s3); display: grid; grid-template-columns: minmax(200px, 1fr) minmax(160px, 240px) auto; gap: var(--dlp-s2); }
.duartelab-filter button,
.duartelab-request-list button,
.duartelab-staff-list button { min-height: var(--dlp-control); padding: 0 14px; border: 1px solid var(--dlp-black); border-radius: var(--dlp-radius); background: var(--dlp-black); color: #fff; cursor: pointer; font: 600 12px var(--dlp-font); letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.duartelab-request-list button.is-danger,
.duartelab-staff-list button.is-danger { border-color: var(--dlp-danger); background: transparent; color: var(--dlp-danger); }

/* ---------- Tabelas e listas ---------- */
.duartelab-table-wrap { width: 100%; overflow-x: auto; }
.duartelab-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.duartelab-table th, .duartelab-table td { padding: 9px 10px; border-bottom: 1px solid var(--dlp-line); text-align: left; vertical-align: middle; }
.duartelab-table th { position: sticky; top: 0; background: var(--dlp-surface-2); color: var(--dlp-muted); font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.duartelab-table tbody tr:hover { background: var(--dlp-surface-2); }
.duartelab-table td > strong, .duartelab-table td > small { display: block; }
.duartelab-table td > strong { font-weight: 600; }
.duartelab-table td > small { margin-top: 2px; color: var(--dlp-muted); font-size: 12px; }
.duartelab-table-empty { padding: 24px 12px; color: var(--dlp-muted); text-align: center; }
.duartelab-row-action { color: var(--dlp-text); font-size: 12px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

.duartelab-status { width: max-content; padding: 3px 8px; display: inline-block; border-radius: 999px; background: #ecedef; color: #4a4d52; font-size: 11px; font-weight: 600; white-space: nowrap; }
/* OS (0.3.5): etapas normais em tom neutro (padrão acima); só as exceções têm cor própria. */
.duartelab-status.is-pendente, .duartelab-status.is-aguardando_componente { background: var(--dlp-warning-bg); color: var(--dlp-warning); }
.duartelab-status.is-pausada { border: 1px dashed #8c9096; background: transparent; color: #3f4247; }
.duartelab-status-detail { display: block; max-width: 260px; margin-top: 3px; overflow: hidden; color: var(--dlp-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.duartelab-status-line { margin: 0 0 var(--dlp-s3); display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.duartelab-status-line .duartelab-status-detail { display: inline; max-width: none; white-space: normal; }
.duartelab-form select option:disabled { color: #9a9ea4; }
[data-status-reason][hidden] { display: none; }
.duartelab-status.is-pronta, .duartelab-status.is-entregue, .duartelab-status.is-aprovado { background: var(--dlp-success-bg); color: var(--dlp-success); }
.duartelab-status.is-cancelada, .duartelab-status.is-recusado { background: var(--dlp-danger-bg); color: var(--dlp-danger); }

.duartelab-kpis { margin-top: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--dlp-s3); }
.duartelab-kpis > div { padding: 12px 16px; display: flex; align-items: baseline; justify-content: space-between; gap: var(--dlp-s3); border: 1px solid var(--dlp-line); border-radius: var(--dlp-radius); background: var(--dlp-surface); }
.duartelab-kpis span { color: var(--dlp-muted); font-size: 12px; font-weight: 600; }
.duartelab-kpis strong { font-size: 24px; font-weight: 500; line-height: 1; }
.duartelab-kpis .is-alert { border-color: rgba(155,44,44,.35); }
.duartelab-kpis .is-alert strong, .duartelab-low-stock { color: var(--dlp-danger); }

.duartelab-request-list, .duartelab-staff-list, .duartelab-agenda-list, .duartelab-contact-list { display: grid; }
.duartelab-request-list article { padding: 10px 0; display: flex; align-items: center; justify-content: space-between; gap: var(--dlp-s4); border-bottom: 1px solid var(--dlp-line); }
.duartelab-request-list article:last-child, .duartelab-staff-list article:last-child, .duartelab-agenda-list article:last-child, .duartelab-contact-list article:last-child { border-bottom: 0; }
.duartelab-request-list h3, .duartelab-staff-list h3, .duartelab-agenda-list h3 { margin: 2px 0; font-size: 14px !important; font-weight: 600 !important; }
.duartelab-request-list p, .duartelab-request-list small, .duartelab-staff-list p, .duartelab-staff-list small, .duartelab-agenda-list p { margin: 0; color: var(--dlp-muted); font-size: 12px; }
.duartelab-request-list form { min-width: min(100%, 420px); display: flex; gap: var(--dlp-s2); }

.duartelab-staff-list article { padding: 10px 0; display: grid; grid-template-columns: 34px minmax(160px, 1fr) minmax(240px, auto); align-items: center; gap: var(--dlp-s3); border-bottom: 1px solid var(--dlp-line); }
.duartelab-staff-list article > span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--dlp-champagne); border-radius: 50%; color: var(--dlp-champagne-text); font-size: 14px; font-weight: 600; }
.duartelab-staff-list article form { display: flex; flex-wrap: wrap; gap: var(--dlp-s2); }
.duartelab-staff-list article form select { flex: 1 1 150px; }
.duartelab-staff-list article em { justify-self: end; color: var(--dlp-muted); font-size: 11px; font-style: normal; letter-spacing: .06em; text-transform: uppercase; }
.duartelab-pending-list article { background: transparent; }

.duartelab-agenda-list article { padding: 10px 0; display: grid; grid-template-columns: 52px minmax(160px, 1fr) auto; align-items: center; gap: var(--dlp-s4); border-bottom: 1px solid var(--dlp-line); }
.duartelab-agenda-list time { width: 48px; min-height: 52px; display: grid; place-content: center; text-align: center; border: 1px solid var(--dlp-line-strong); border-radius: var(--dlp-radius); background: var(--dlp-surface-2); }
.duartelab-agenda-list time strong { font-size: 18px; font-weight: 600; line-height: 1.1; }
.duartelab-agenda-list time span, .duartelab-agenda-list article > small, .duartelab-agenda-list article > div > span { color: var(--dlp-muted); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }

.duartelab-contact-list article { padding: 12px 0; display: grid; grid-template-columns: minmax(200px, .7fr) minmax(260px, 1.3fr); gap: var(--dlp-s4); border-bottom: 1px solid var(--dlp-line); }
.duartelab-contact-list h3 { margin: 2px 0; font-size: 15px !important; font-weight: 600 !important; }
.duartelab-contact-list span, .duartelab-contact-list p, .duartelab-contact-list a { color: var(--dlp-muted); font-size: 13px; line-height: 1.55; }
.duartelab-contact-list p { margin: 0; }
.duartelab-contact-list strong { display: block; margin-bottom: 2px; font-size: 13px; font-weight: 600; }
.duartelab-contact-list a { display: block; margin-bottom: 4px; color: var(--dlp-text); text-decoration: underline; text-underline-offset: 3px; }

.duartelab-empty { min-height: 0; margin: 0; padding: 20px 12px; display: grid; place-content: center; text-align: center; border: 1px dashed var(--dlp-line-strong); border-radius: var(--dlp-radius); color: var(--dlp-muted); }
.duartelab-empty span { color: var(--dlp-muted); font-size: 12px; font-weight: 600; }

/* ---------- Painel (visão geral) ---------- */
.duartelab-dashboard-grid { margin-top: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: var(--dlp-s3); }
.duartelab-module-card { position: relative; min-height: 0; padding: 14px 16px; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr auto; gap: 4px var(--dlp-s3); border: 1px solid var(--dlp-line); border-radius: var(--dlp-radius); background: var(--dlp-surface); color: var(--dlp-text); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.duartelab-module-card:hover { border-color: var(--dlp-champagne-text); box-shadow: 0 2px 10px rgba(11,11,11,.06); }
.duartelab-module-card > span { display: none; }
.duartelab-module-card h2 { grid-column: 1; margin: 0; font-size: 15px !important; font-weight: 600 !important; }
.duartelab-module-card p { grid-column: 1 / -1; margin: 0; color: var(--dlp-muted); font-size: 12px; line-height: 1.45; }
.duartelab-module-card i { grid-column: 2; grid-row: 1; align-self: start; color: var(--dlp-champagne-text); font-style: normal; }
.duartelab-module-card b { grid-column: 1 / -1; grid-row: 3; margin-top: 8px; display: flex; align-items: baseline; gap: 8px; font-size: 22px; font-weight: 500; line-height: 1; }
.duartelab-module-card b.is-alert { color: var(--dlp-danger); }
.duartelab-module-card b small { color: var(--dlp-muted); font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }

/* ---------- Conteúdo do site ---------- */
.duartelab-content-form > .duartelab-panel:first-child label { display: grid; gap: 5px; }
.duartelab-content-form .duartelab-form-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.duartelab-content-form label.is-wide { grid-column: 1 / -1; }
.duartelab-content-section { margin-top: var(--dlp-s2); }
.duartelab-content-section > .duartelab-panel { margin: 0; border: 0; border-top: 1px solid var(--dlp-line); border-radius: 0; }
.duartelab-content-form label { min-width: 0; }
.duartelab-content-form input[type="file"] { width: 100%; max-width: 100%; min-width: 0; }
.duartelab-content-form .duartelab-panel > p { margin: 0 0 var(--dlp-s3); color: var(--dlp-muted); font-size: 13px; line-height: 1.5; }
/* Barra de salvar: fixa no rodapé da área de trabalho, com fundo próprio (não cobre parcialmente os itens). */
.duartelab-sticky-save { position: sticky; z-index: 4; bottom: 0; margin: var(--dlp-s4) calc(-1 * clamp(16px, 2.4vw, 28px)) 0; padding: 10px clamp(16px, 2.4vw, 28px); display: flex; justify-content: flex-end; align-items: center; gap: var(--dlp-s3); border-top: 1px solid var(--dlp-line); background: rgba(244,244,243,.96); }
.duartelab-sticky-save button { min-width: 220px; }

/* ---------- Acesso negado ---------- */
.duartelab-access-denied { min-height: 60svh; padding: 32px 20px; display: grid; place-content: center; gap: 8px; text-align: center; background: var(--dlp-bg); }
.duartelab-access-denied h1 { max-width: 640px; margin: 0 auto; font-size: clamp(22px, 3vw, 30px) !important; font-weight: 500 !important; }
.duartelab-access-denied p:not(.duartelab-kicker) { margin: 0; color: var(--dlp-muted); }
.duartelab-access-denied a { justify-self: center; margin-top: 8px; min-height: 40px; padding: 0 16px; display: inline-flex; align-items: center; border-radius: var(--dlp-radius); background: var(--dlp-black); color: #fff; font-size: 13px; font-weight: 600; text-decoration: none; }

/* ---------- Responsivo ---------- */
@media (max-width: 1100px) {
  .duartelab-two-column { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .duartelab-login-shell { grid-template-columns: 1fr; }
  .duartelab-login-brand { min-height: 0; }
  .duartelab-portal-shell { grid-template-columns: 1fr; }
  .duartelab-sidebar { position: fixed; z-index: 30; top: var(--dlp-adminbar); bottom: 0; left: 0; width: min(84vw, 280px); height: auto; visibility: hidden; transform: translateX(-102%); transition: transform .2s ease, visibility 0s linear .2s; }
  .duartelab-portal-shell.is-menu-open .duartelab-sidebar { visibility: visible; transform: translateX(0); transition: transform .2s ease; }
  .duartelab-portal-shell.is-menu-open::before { content: ""; position: fixed; z-index: 25; inset: 0; background: rgba(11,11,11,.45); }
  .duartelab-portal-main > header button { min-height: 40px; padding: 0 12px 0 0; display: inline-flex; align-items: center; gap: 8px; border: 0; background: transparent; color: var(--dlp-text); cursor: pointer; font: 600 12px var(--dlp-font); letter-spacing: .08em; text-transform: uppercase; }
  .duartelab-portal-main > header button::before { content: ""; width: 18px; height: 12px; background: linear-gradient(currentColor 0 0) top / 100% 2px no-repeat, linear-gradient(currentColor 0 0) center / 100% 2px no-repeat, linear-gradient(currentColor 0 0) bottom / 100% 2px no-repeat; }
}
@media (max-width: 620px) {
  .duartelab-portal-page { --dlp-control: 44px; }
  .duartelab-login-brand { padding: 24px 20px; }
  .duartelab-login-brand h1 { font-size: 30px !important; }
  .duartelab-auth-grid, .duartelab-contact-list article { grid-template-columns: 1fr; }
  .duartelab-portal-main > header div { display: none; }
  .duartelab-filter { grid-template-columns: 1fr; }
  .duartelab-request-list article, .duartelab-request-list form { align-items: stretch; flex-direction: column; }
  .duartelab-staff-list article { grid-template-columns: 34px 1fr; }
  .duartelab-staff-list article form, .duartelab-staff-list article em { grid-column: 1 / -1; justify-self: stretch; }
  .duartelab-agenda-list article { grid-template-columns: 52px 1fr; }
  .duartelab-agenda-list article > small { grid-column: 2; }
  .duartelab-form > .duartelab-primary { width: 100%; }
  .duartelab-sticky-save button { width: 100%; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .duartelab-portal-shell *, .duartelab-portal-shell *::before, .duartelab-portal-shell *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* ---------- Contatos: encaminhamento pelo WhatsApp (0.3.4) ---------- */
.duartelab-sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.duartelab-contact-actions { margin-top: var(--dlp-s2); display: flex; flex-wrap: wrap; align-items: center; gap: var(--dlp-s2); }
.duartelab-contact-actions form { margin: 0; }
.duartelab-contact-list .duartelab-wa-open,
.duartelab-wa-copy,
.duartelab-wa-confirm { min-height: 36px; margin: 0; padding: 0 12px; display: inline-flex; align-items: center; border: 1px solid var(--dlp-black); border-radius: var(--dlp-radius); background: transparent; color: var(--dlp-text); cursor: pointer; font: 600 12px var(--dlp-font); text-decoration: none; }
.duartelab-contact-list .duartelab-wa-open { background: var(--dlp-black); color: #fff; }
.duartelab-contact-list .duartelab-wa-open:hover { background: #26282c; }
.duartelab-wa-copy:hover, .duartelab-wa-confirm:hover { background: var(--dlp-surface-2); }
.duartelab-wa-status { display: block; margin-top: 6px; color: var(--dlp-muted); font-size: 12px; }
@media (max-width: 620px) {
  .duartelab-contact-list .duartelab-wa-open, .duartelab-wa-copy, .duartelab-wa-confirm { min-height: 44px; flex: 1 1 100%; justify-content: center; }
  .duartelab-contact-actions form { flex: 1 1 100%; }
  .duartelab-wa-confirm { width: 100%; }
}