/* Fluxo Interno — Masterplan brand design system.
   Tokens come from docs/brand/masterplan-tokens.json. Hex values live ONLY in the :root block below;
   every rule after it uses variables. Panton is the single typeface. */

@font-face { font-family: "Panton"; src: url("../fonts/Panton-Regular.otf") format("opentype"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Panton"; src: url("../fonts/Panton-SemiBold.otf") format("opentype"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Panton"; src: url("../fonts/Panton-Bold.otf") format("opentype"); font-weight: 700; font-style: normal; font-display: swap; }

:root {
  color-scheme: light;

  /* Brand greens */
  --mp-verde-masterplan: #45A23E;
  --mp-verde-escuro: #17521D;
  --mp-lima: #84C13F;
  --mp-verde-50: #EEF7EC;
  --mp-verde-100: #DCEFD8;
  --mp-verde-200: #BADFB3;
  --mp-verde-300: #8FCB86;
  --mp-verde-400: #66B85D;
  --mp-verde-500: #45A23E;
  --mp-verde-600: #36862F;
  --mp-verde-700: #2B6E2A;
  --mp-verde-800: #1F5E24;
  --mp-verde-900: #17521D;

  /* Neutrals (slightly green) */
  --mp-tinta: #1B2A1F;
  --mp-cinza-700: #3F4A42;
  --mp-cinza-500: #6B756D;
  --mp-cinza-300: #C9D0CA;
  --mp-cinza-200: #E3E8E4;
  --mp-cinza-100: #F1F4F1;
  --mp-fundo: #F8FAF8;
  --mp-branco: #FFFFFF;

  /* Service lines (base / suave / escuro) */
  --mp-esocial-base: #4F84AF;   --mp-esocial-suave: #DCE8F2;   --mp-esocial-escuro: #2B4A68;
  --mp-higiene-base: #6B2D6E;   --mp-higiene-suave: #F3E8F3;   --mp-higiene-escuro: #4A1D4D;
  --mp-medicina-base: #3B6AA0;  --mp-medicina-suave: #E4ECF6;  --mp-medicina-escuro: #1B2F55;
  --mp-projetos-base: #B8612B;  --mp-projetos-suave: #F7E6D2;  --mp-projetos-escuro: #5C4033;
  --mp-seguranca-base: #47751A; --mp-seguranca-suave: #E2EBD6; --mp-seguranca-escuro: #34502C;
  --mp-treinamentos-base: #C9A227; --mp-treinamentos-suave: #FBF0B8; --mp-treinamentos-escuro: #6E5410;

  /* Feedback */
  --sucesso-texto: #2B6E2A;  --sucesso-fundo: #EEF7EC;
  --atencao-texto: #7A4E00;  --atencao-fundo: #FFF4D6;
  --erro-texto: #B3261E;     --erro-fundo: #FDECEA;
  --info-texto: #2B4A68;     --info-fundo: #DCE8F2;

  /* Semantic tokens (light theme) */
  --surface-page: var(--mp-fundo);
  --surface-raised: var(--mp-branco);
  --surface-sunken: var(--mp-cinza-100);
  --text: var(--mp-tinta);
  --text-muted: var(--mp-cinza-500);
  --text-strong: var(--mp-cinza-700);
  --border: var(--mp-cinza-300);
  --border-soft: var(--mp-cinza-200);
  /* Field outlines use cinza-500 (4.7:1): cinza-300 is under the 3:1 WCAG 1.4.11 minimum for UI controls. */
  --field-border: var(--mp-cinza-500);
  --brand: var(--mp-verde-500);
  --on-brand: var(--mp-tinta);
  --brand-strong: var(--mp-verde-900);
  --focus-ring: var(--mp-verde-900);
  --focus-ring-on-dark: var(--mp-verde-200);

  /* Spacing (4px base) */
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 20px; --space-6: 24px;
  --space-8: 32px; --space-12: 48px; --space-16: 64px;

  /* Radius */
  --radius-sm: 8px; --radius-md: 12px; --radius-lg: 20px; --radius-xl: 32px; --radius-pill: 999px; --radius-circle: 50%;

  /* Shadows (green tinted) */
  --shadow-sutil: 0 1px 2px rgba(23, 82, 29, 0.10);
  --shadow-media: 0 6px 16px rgba(23, 82, 29, 0.12);
  --shadow-alta: 0 16px 40px rgba(23, 82, 29, 0.18);

  /* Typography */
  --font-sans: "Panton", "Arial", "Helvetica", sans-serif;
  --fs-h1: 28px;   --lh-h1: 34px;
  --fs-h2: 20px;   --lh-h2: 26px;
  --fs-lead: 18px; --lh-lead: 28px;
  --fs-body: 16px; --lh-body: 25px;
  --fs-caption: 14px; --lh-caption: 21px;
  --fs-label: 12px; --lh-label: 18px;
  --ls-label: 0.12em;

  /* Layout */
  --sidebar-width: 248px;
  --topbar-height: 48px;
  --touch: 44px;

  /* Stage / tag tones (soft background + dark text) */
  --tone-green-bg: var(--mp-verde-100);  --tone-green-fg: var(--mp-verde-700);  --tone-green-solid: var(--mp-verde-500);
  --tone-blue-bg: var(--mp-medicina-suave);  --tone-blue-fg: var(--mp-medicina-escuro); --tone-blue-solid: var(--mp-medicina-base);
  --tone-violet-bg: var(--mp-higiene-suave); --tone-violet-fg: var(--mp-higiene-escuro); --tone-violet-solid: var(--mp-higiene-base);
  --tone-amber-bg: var(--atencao-fundo);     --tone-amber-fg: var(--atencao-texto);     --tone-amber-solid: var(--mp-treinamentos-base);
  --tone-coral-bg: var(--erro-fundo);        --tone-coral-fg: var(--erro-texto);        --tone-coral-solid: var(--mp-projetos-base);
  --tone-slate-bg: var(--mp-cinza-100);      --tone-slate-fg: var(--mp-cinza-700);      --tone-slate-solid: var(--mp-cinza-500);
}

/* Preflight subset (kept from the original port; lives in a layer so unlayered rules win). */
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button { box-sizing: border-box; margin: 0; padding: 0; border: 0 solid; }
  html, :host { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; font-family: var(--font-sans); -webkit-tap-highlight-color: transparent; }
  hr { height: 0; color: inherit; border-top-width: 1px; }
  h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
  a { color: inherit; text-decoration: inherit; }
  b, strong { font-weight: bolder; }
  small { font-size: 80%; }
  ol, ul, menu { list-style: none; }
  img, svg, video, canvas, audio, iframe, embed, object { display: block; vertical-align: middle; }
  img, video { max-width: 100%; height: auto; }
  button, input, select, optgroup, textarea, ::file-selector-button { font: inherit; font-feature-settings: inherit; font-variation-settings: inherit; letter-spacing: inherit; color: inherit; border-radius: 0; background-color: transparent; opacity: 1; }
  ::placeholder { opacity: 1; color: var(--text-muted); }
  textarea { resize: vertical; }
  button, input:where([type=button], [type=reset], [type=submit]), ::file-selector-button { appearance: button; }
  summary { display: list-item; }
  [hidden]:where(:not([hidden=until-found])) { display: none !important; }
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { background: var(--surface-page); color: var(--text); font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); }
body.antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
button, input, select, textarea { font: inherit; }
button { color: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
b, strong { font-weight: 700; }
small { font-size: var(--fs-caption); }
/* Replacement for next/image "fill" layout. */
.img-fill { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; color: transparent; }

/* text-muted (cinza-500) is 4.3:1 on surface-sunken; sunken blocks use cinza-700 so support text keeps AA contrast. */
.kanban-column, .company-form-section, .company-details-view > section, .company-tag-editor, .tag-sector-editor form, .company-import-selection, .reservation-box, .company-status-actions, .card-step-controls, .account-credentials { --text-muted: var(--mp-cinza-700); }

/* Visible focus everywhere (2px focus-ring). */
:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
button:disabled, [aria-disabled="true"] { cursor: not-allowed; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

/* ============================ Typography helpers ============================ */
.eyebrow { margin: 0 0 var(--space-1); color: var(--brand-strong); font: 700 var(--fs-label)/var(--lh-label) var(--font-sans); letter-spacing: var(--ls-label); text-transform: uppercase; }
.field-hint { color: var(--text-muted); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.page-subtitle { margin: var(--space-1) 0 0; max-width: 70ch; color: var(--text-strong); font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); }
.text-danger { color: var(--erro-texto) !important; }

/* ============================ App shell and sidebar ============================ */
.app-shell { display: flex; width: 100%; height: 100vh; height: 100dvh; min-height: 0; overflow: hidden; background: var(--surface-page); }
.sidebar { position: relative; z-index: 2; width: var(--sidebar-width); flex: 0 0 var(--sidebar-width); height: 100vh; height: 100dvh; min-height: 0; overflow-x: hidden; overflow-y: auto; display: flex; flex-direction: column; padding: var(--space-6) var(--space-4) var(--space-4); background: var(--mp-verde-escuro); color: var(--mp-verde-100); }
.sidebar :focus-visible { outline-color: var(--focus-ring-on-dark); }
.sidebar-brand { padding: 0 var(--space-2) var(--space-8); }
.brand-logo { display: block; width: 200px; max-width: 100%; height: auto; }
.sidebar-brand .brand-logo { width: 184px; }
.sidebar-nav { display: grid; gap: var(--space-1); }
.nav-link { display: flex; align-items: center; gap: var(--space-3); width: 100%; min-height: 48px; padding: 0 var(--space-4); border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--mp-verde-100); text-align: left; font: 600 var(--fs-body)/var(--lh-label) var(--font-sans); transition: background-color .15s ease, color .15s ease; }
.nav-link:hover { background: color-mix(in srgb, var(--mp-branco) 12%, transparent); color: var(--mp-branco); }
.nav-link:active { background: color-mix(in srgb, var(--mp-branco) 20%, transparent); }
.nav-link svg { flex: 0 0 auto; }
.nav-link.active { background: var(--mp-branco); color: var(--mp-verde-escuro); font-weight: 700; }
.nav-count { margin-left: auto; min-width: 28px; height: 24px; padding: 0 var(--space-2); display: grid; place-items: center; border-radius: var(--radius-pill); background: var(--brand); color: var(--on-brand); font: 700 var(--fs-caption)/1 var(--font-sans); }
.nav-link.active .nav-count { background: var(--mp-verde-escuro); color: var(--mp-branco); }
.sidebar-bottom { margin-top: auto; padding-top: var(--space-6); }
.sidebar-profile { display: flex; align-items: center; gap: var(--space-3); min-height: 64px; padding: var(--space-3); border-radius: var(--radius-md); background: color-mix(in srgb, var(--mp-branco) 8%, transparent); color: var(--mp-branco); transition: background-color .15s ease; }
.sidebar-profile:hover { background: color-mix(in srgb, var(--mp-branco) 16%, transparent); }
.sidebar-profile > svg { flex: 0 0 auto; color: var(--mp-verde-200); }
.avatar { width: 40px; height: 40px; flex: 0 0 40px; display: inline-grid; place-items: center; border-radius: var(--radius-circle); background: var(--mp-verde-100); color: var(--mp-verde-escuro); font: 700 var(--fs-caption)/1 var(--font-sans); }
.profile-info { flex: 1; min-width: 0; display: grid; gap: 0; }
.profile-info small { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.profile-info b { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: 700 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.profile-info small { color: var(--mp-verde-200); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }

/* ============================ Main area ============================ */
.main-area { min-width: 0; min-height: 0; height: 100vh; height: 100dvh; flex: 1; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; }
.main-area-requests { overflow-y: hidden; }
.main-area-board { overflow-x: hidden; overflow-y: auto; }
.topbar { height: var(--topbar-height); display: flex; align-items: center; justify-content: flex-end; padding: 0 var(--space-6); }
.today-label { display: flex; align-items: center; gap: var(--space-2); color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.page-content { max-width: 1480px; margin: 0 auto; padding: var(--space-2) var(--space-6) var(--space-12); }
.page-content.requests-page-content { width: 100%; height: calc(100dvh - var(--topbar-height)); min-height: 0; display: flex; flex-direction: column; overflow: hidden; padding-bottom: var(--space-4); }
.requests-page-content > .welcome-row, .requests-page-content > .company-search, .requests-page-content > .company-list-filters { flex: 0 0 auto; }
.welcome-row { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-6); margin: 0 0 var(--space-6); }
.welcome-row > div:first-child { flex: 1 1 0; min-width: min(100%, 320px); }
.welcome-row h1 { margin: 0; color: var(--text); font: 700 var(--fs-h1)/var(--lh-h1) var(--font-sans); letter-spacing: -0.01em; }
.board-title-actions { display: flex; flex: 0 0 auto; align-items: center; flex-wrap: wrap; gap: var(--space-3); }
.board-title-row { margin-bottom: var(--space-4); }

/* ============================ Buttons ============================ */
.button-primary, .button-secondary, .login-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: var(--touch); padding: 0 var(--space-6); border: 2px solid transparent; border-radius: var(--radius-pill); font: 700 var(--fs-body)/1.2 var(--font-sans); text-align: center; white-space: nowrap; transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.button-primary, .login-button { background: var(--brand); border-color: var(--brand); color: var(--on-brand); box-shadow: var(--shadow-sutil); }
.button-primary:hover:not(:disabled), .login-button:hover:not(:disabled) { background: var(--mp-verde-400); border-color: var(--mp-verde-400); box-shadow: var(--shadow-media); }
.button-primary:active:not(:disabled), .login-button:active:not(:disabled) { background: var(--mp-verde-300); border-color: var(--mp-verde-300); box-shadow: none; transform: translateY(1px); }
.button-secondary { background: transparent; border-color: var(--brand-strong); color: var(--brand-strong); }
.button-secondary:hover:not(:disabled) { background: var(--mp-verde-50); }
.button-secondary:active:not(:disabled) { background: var(--mp-verde-100); }
.button-primary:disabled, .button-secondary:disabled, .login-button:disabled { background: var(--mp-cinza-200); border-color: var(--mp-cinza-200); color: var(--mp-cinza-500); box-shadow: none; cursor: not-allowed; }
.button-primary svg, .button-secondary svg { flex: 0 0 auto; }
.icon-button { width: var(--touch); height: var(--touch); flex: 0 0 var(--touch); display: inline-grid; place-items: center; border: 0; border-radius: var(--radius-circle); background: transparent; color: var(--text-strong); transition: background-color .15s ease; }
.icon-button:hover { background: var(--mp-cinza-200); color: var(--text); }
.text-button { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--touch); padding: 0 var(--space-2); border: 0; background: transparent; color: var(--brand-strong); font: 600 var(--fs-body)/var(--lh-body) var(--font-sans); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.text-button:hover:not(:disabled) { color: var(--mp-verde-700); text-decoration-thickness: 2px; }
.text-button:disabled { color: var(--mp-cinza-500); text-decoration: none; }
.danger-text { color: var(--erro-texto) !important; }

/* ============================ Fields ============================ */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]), select, textarea { width: 100%; min-height: var(--touch); padding: 0 var(--space-3); border: 1px solid var(--field-border); border-radius: var(--radius-sm); background: var(--surface-raised); color: var(--text); font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); transition: border-color .15s ease, box-shadow .15s ease; }
textarea { min-height: 96px; padding: var(--space-3); resize: vertical; }
select { padding-right: var(--space-2); }
input:not([type="checkbox"]):not([type="radio"]):hover:not(:disabled), select:hover:not(:disabled), textarea:hover:not(:disabled) { border-color: var(--text); }
input:not([type="checkbox"]):not([type="radio"]):focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; border-color: var(--focus-ring); }
input:not([type="checkbox"]):not([type="radio"]):user-invalid, select:user-invalid, textarea:user-invalid { border: 2px solid var(--erro-texto); }
input:disabled, select:disabled, textarea:disabled { background: var(--mp-cinza-100); color: var(--mp-cinza-500); border-color: var(--border); cursor: not-allowed; }
input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; margin: 0; flex: 0 0 20px; accent-color: var(--mp-verde-600); cursor: pointer; }
.form-label { display: flex; flex-wrap: wrap; align-content: flex-start; align-items: baseline; gap: var(--space-1) var(--space-2); margin-bottom: var(--space-4); color: var(--text); font: 600 var(--fs-body)/22px var(--font-sans); }
.form-label > input:not([type="hidden"]), .form-label > select, .form-label > textarea, .form-label > .form-static, .form-label > small, .form-label > .field-hint, .form-label > [data-date-display] { flex: 1 1 100%; }
.form-label > span, .form-label > small { color: var(--text-muted); font-weight: 400; }
.form-label .field-hint { font-size: var(--fs-caption); }
.form-static { display: flex; align-items: center; background: var(--surface-sunken) !important; color: var(--text-strong) !important; border-color: var(--border) !important; font-weight: 400; }
.form-two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-4); }
.search-box { display: flex; align-items: center; gap: var(--space-2); min-height: var(--touch); padding: 0 var(--space-3); border: 1px solid var(--field-border); border-radius: var(--radius-sm); background: var(--surface-raised); color: var(--text-strong); }
.search-box:focus-within { outline: 2px solid var(--focus-ring); outline-offset: 1px; border-color: var(--focus-ring); }
.search-box:hover { border-color: var(--text); }
.search-box svg { flex: 0 0 auto; }
.search-box input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]) { min-height: 44px; margin: -1px 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; outline: 0; }
.search-box input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):hover, .search-box input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):focus-visible { border: 0; outline: 0; }
.board-filters .search-box { flex: 1 1 auto; max-width: 440px; min-width: 240px; }
.board-filters .search-box input { width: 100%; min-width: 0; }
fieldset { min-width: 0; border: 1px solid var(--border); border-radius: var(--radius-md); }
legend { padding: 0 var(--space-2); font: 600 var(--fs-body)/22px var(--font-sans); }

/* ============================ Badges ============================ */
.status-pill, .role-badge, .priority-label, .task-reservation, .attention-count { display: inline-flex; align-items: center; gap: var(--space-1); width: fit-content; max-width: 100%; padding: 2px var(--space-3); border-radius: var(--radius-pill); background: var(--tone-slate-bg); color: var(--tone-slate-fg); font: 700 var(--fs-caption)/20px var(--font-sans); white-space: nowrap; }
.status-pill.green, .status-pill.emerald { background: var(--tone-green-bg); color: var(--tone-green-fg); }
.status-pill.blue { background: var(--tone-blue-bg); color: var(--tone-blue-fg); }
.status-pill.violet { background: var(--tone-violet-bg); color: var(--tone-violet-fg); }
.status-pill.amber { background: var(--tone-amber-bg); color: var(--tone-amber-fg); }
.status-pill.coral { background: var(--tone-coral-bg); color: var(--tone-coral-fg); }
.status-pill.slate { background: var(--tone-slate-bg); color: var(--tone-slate-fg); }
.priority-label.high { background: var(--tone-amber-bg); color: var(--tone-amber-fg); }
.priority-label.urgent { background: var(--tone-coral-bg); color: var(--tone-coral-fg); }
.priority-label.low { background: var(--tone-blue-bg); color: var(--tone-blue-fg); }
.role-admin { background: var(--tone-green-bg); color: var(--tone-green-fg); }
.role-manager { background: var(--tone-blue-bg); color: var(--tone-blue-fg); }
.role-member { background: var(--tone-slate-bg); color: var(--tone-slate-fg); }
.role-unit { background: var(--mp-seguranca-suave); color: var(--mp-seguranca-escuro); }
.position-badge { background: var(--mp-cinza-100); color: var(--text-strong); }
.task-reservation { background: var(--tone-amber-bg); color: var(--tone-amber-fg); overflow: hidden; text-overflow: ellipsis; }
.attention-count { min-width: 32px; justify-content: center; background: var(--erro-fundo); color: var(--erro-texto); }
.avatar-user { background: var(--mp-verde-100); }
.stage-dot, .flow-indicator { display: inline-block; width: 12px; height: 12px; flex: 0 0 12px; border-radius: var(--radius-circle); background: var(--tone-green-solid); }
.stage-dot.blue, .tag-color-dot.blue { background: var(--tone-blue-solid); }
.stage-dot.violet, .tag-color-dot.violet { background: var(--tone-violet-solid); }
.stage-dot.amber, .tag-color-dot.amber { background: var(--tone-amber-solid); }
.stage-dot.emerald, .tag-color-dot.emerald { background: var(--tone-green-solid); }
.stage-dot.coral, .tag-color-dot.coral { background: var(--tone-coral-solid); }
.stage-dot.slate, .tag-color-dot.slate { background: var(--tone-slate-solid); }
.tag-color-dot { display: inline-block; width: 14px; height: 14px; border-radius: var(--radius-circle); background: var(--tone-slate-solid); }

/* ============================ Empty states and alerts ============================ */
.empty-inline { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-6) var(--space-2); color: var(--text-strong); font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); }
.empty-inline svg { flex: 0 0 auto; color: var(--brand-strong); }
.empty-comments { color: var(--text-muted); font-size: var(--fs-caption); }
.toast-error { position: fixed; right: var(--space-6); bottom: var(--space-6); z-index: 50; display: flex; align-items: center; gap: var(--space-4); max-width: min(520px, calc(100vw - 32px)); padding: var(--space-3) var(--space-2) var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--info-fundo); color: var(--info-texto); box-shadow: var(--shadow-alta); font: 600 var(--fs-body)/var(--lh-body) var(--font-sans); }
.toast-error button { display: inline-grid; place-items: center; width: var(--touch); height: var(--touch); flex: 0 0 var(--touch); border: 0; border-radius: var(--radius-circle); background: transparent; color: inherit; }
.toast-error button:hover { background: color-mix(in srgb, var(--info-texto) 12%, transparent); }
.auth-error, .company-import-result.is-error { padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--erro-fundo); color: var(--erro-texto); font: 600 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.auth-error::before { content: "Erro: "; font-weight: 700; }

/* ============================ Panels ============================ */
.panel, .metric-card { background: var(--surface-raised); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); box-shadow: var(--shadow-sutil); }
.panel { padding: var(--space-6); }
.panel-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-4); margin-bottom: var(--space-4); }
.panel-heading h2, .sector-only-heading h2 { margin: 0; color: var(--text); font: 700 var(--fs-h2)/var(--lh-h2) var(--font-sans); }
.role-key { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.role-key svg { color: var(--brand-strong); }
.dashboard-scope { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); border-radius: var(--radius-pill); background: var(--info-fundo); color: var(--info-texto); font: 700 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.dashboard-filters, .kanban-controls { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); margin-bottom: var(--space-6); }
.dashboard-filters label, .kanban-controls label:not(.search-box):not(.multi-filter-option) { display: flex; align-items: center; gap: var(--space-3); color: var(--text); font: 600 var(--fs-body)/var(--lh-body) var(--font-sans); }
.dashboard-filters select { width: auto; min-width: 180px; }

/* ============================ Metrics ============================ */
.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-bottom: var(--space-4); }
.metric-card { padding: var(--space-6); min-width: 0; }
.metric-card:not(.priority-metric) { display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-4); min-height: 148px; }
.metric-heading { display: flex; align-items: center; gap: var(--space-3); min-width: 0; margin: 0; }
.metric-heading p { margin: 0; color: var(--text-strong); font: 600 var(--fs-body)/22px var(--font-sans); }
.metric-icon { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; border-radius: var(--radius-md); background: var(--tone-green-bg); color: var(--tone-green-fg); }
.metric-icon.coral { background: var(--tone-coral-bg); color: var(--tone-coral-fg); }
.metric-icon.blue { background: var(--tone-blue-bg); color: var(--tone-blue-fg); }
.metric-icon.violet { background: var(--tone-violet-bg); color: var(--tone-violet-fg); }
.metric-icon.amber { background: var(--tone-amber-bg); color: var(--tone-amber-fg); }
.metric-value-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-2) var(--space-3); }
.metric-value-row strong { color: var(--text); font: 700 40px/46px var(--font-sans); letter-spacing: -0.01em; }
.metric-note { color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.priority-metric { display: flex; flex-direction: column; gap: var(--space-4); }
.priority-metric-heading { display: flex; align-items: center; gap: var(--space-3); color: var(--text-strong); font: 600 var(--fs-body)/22px var(--font-sans); }
.priority-metric-heading > small { margin-left: auto; padding: 2px var(--space-3); border-radius: var(--radius-pill); background: var(--tone-coral-bg); color: var(--tone-coral-fg); font: 700 var(--fs-caption)/20px var(--font-sans); }
.priority-metric-value { display: flex; align-items: center; gap: var(--space-4); }
.priority-metric-value > strong { color: var(--text); font: 700 56px/62px var(--font-sans); letter-spacing: -0.02em; }
.priority-metric-late .priority-metric-value > strong { color: var(--erro-texto); }
.priority-metric-value > span { display: grid; gap: 0; color: var(--text); font: 600 var(--fs-body)/var(--lh-body) var(--font-sans); }
.priority-metric-value small { color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.priority-breakdown { display: grid; gap: var(--space-2); margin-top: auto; padding-top: var(--space-4); border-top: 1px solid var(--border-soft); }
.priority-breakdown-title { color: var(--text-strong); font: 700 var(--fs-label)/var(--lh-label) var(--font-sans); letter-spacing: var(--ls-label); text-transform: uppercase; }
.priority-sector-row { display: grid; grid-template-columns: minmax(96px, 150px) minmax(40px, 1fr) 28px; align-items: center; gap: var(--space-3); min-width: 0; }
.priority-sector-row > span { overflow: hidden; color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); text-overflow: ellipsis; white-space: nowrap; }
.priority-sector-row > i { display: block; height: 8px; overflow: hidden; border-radius: var(--radius-pill); background: var(--surface-sunken); }
.priority-sector-row > i > b { display: block; height: 100%; border-radius: inherit; background: var(--brand); }
.priority-metric-late .priority-sector-row > i > b { background: var(--erro-texto); }
.priority-sector-row > strong { color: var(--text); font: 700 var(--fs-caption)/1 var(--font-sans); text-align: right; }

/* ============================ Overview charts ============================ */
.overview-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-bottom: var(--space-4); }
.global-due-chart { grid-column: 1 / -1; }
.chart-panel, .cadastro-chart-card { min-width: 0; }
.metric-grid > .overview-global-chart { margin: 0; }
.chart-period { color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); white-space: nowrap; }
.sector-only-heading { margin: var(--space-8) 0 var(--space-4); }
.sector-only-heading .eyebrow { margin-bottom: var(--space-1); }
/* Horizontal bars: label | track | value. The fill width comes from the inline --bar custom property. */
.bar-chart { display: grid; gap: var(--space-3); padding: var(--space-1) 0 0; }
.bar-chart-column { display: grid; grid-template-columns: minmax(92px, 128px) minmax(40px, 1fr) 28px; grid-template-areas: "label track value"; align-items: center; gap: var(--space-3); min-width: 0; border: 0; background: transparent; color: var(--text); }
.bar-chart-column > strong { grid-area: value; color: var(--text); font: 700 var(--fs-caption)/var(--lh-caption) var(--font-sans); text-align: right; }
.bar-column-track { grid-area: track; display: block; height: 12px; overflow: hidden; border-radius: var(--radius-pill); background: var(--surface-sunken); }
.bar-column-track i { display: block; width: var(--bar, 0%); height: 100%; border-radius: var(--radius-pill); background: var(--brand); }
.bar-chart-column b { grid-area: label; color: var(--text-strong); font: 600 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.sector-chart-rows { display: grid; gap: var(--space-4); }
.sector-chart-row { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(100px, 1fr); gap: var(--space-4); align-items: center; }
.sector-chart-label { display: flex; min-width: 0; justify-content: space-between; gap: var(--space-2); align-items: center; }
.sector-chart-label > span { min-width: 0; display: grid; gap: 0; }
.sector-chart-label b { color: var(--text); font: 600 var(--fs-body)/var(--lh-caption) var(--font-sans); }
.sector-chart-label small { color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.sector-chart-label strong { color: var(--text); font: 700 var(--fs-body)/1 var(--font-sans); }
.sector-chart-track { display: flex; width: 100%; height: 12px; overflow: hidden; border-radius: var(--radius-pill); background: var(--surface-sunken); }
.chart-segment { min-width: 0; height: 100%; padding: 0; border: 0; }
.segment-on-time { background: var(--brand); }

.attention-panel { min-height: 0; }
.attention-scroll-list { max-height: 400px; overflow-y: auto; overscroll-behavior: contain; padding-right: var(--space-2); scrollbar-width: thin; scrollbar-color: var(--mp-cinza-500) var(--surface-sunken); }
.attention-row { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2) var(--space-3); width: 100%; padding: var(--space-2) 0; border-bottom: 1px solid var(--border-soft); }
.attention-row:last-child { border-bottom: 0; }
.attention-item-main { display: flex; align-items: center; gap: var(--space-3); flex: 1 1 300px; min-width: 0; min-height: var(--touch); padding: var(--space-1); border: 0; border-radius: var(--radius-sm); background: transparent; color: inherit; text-align: left; }
button.attention-item-main { cursor: pointer; }
button.attention-item-main:hover { background: var(--surface-sunken); }
.attention-item-static { cursor: default; }
.attention-kanban-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); flex: 0 0 auto; min-height: var(--touch); padding: 0 var(--space-4); border: 2px solid var(--brand-strong); border-radius: var(--radius-pill); background: transparent; color: var(--brand-strong); font: 700 var(--fs-caption)/1.2 var(--font-sans); white-space: nowrap; transition: background-color .15s ease; }
.attention-kanban-button:hover { background: var(--mp-verde-50); }
.attention-no-access { flex: 0 0 auto; color: var(--text-muted); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.attention-mark { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border-radius: var(--radius-md); }
.attention-mark.late { background: var(--erro-fundo); color: var(--erro-texto); }
.attention-mark.today { background: var(--atencao-fundo); color: var(--atencao-texto); }
.attention-copy { min-width: 0; flex: 1; display: grid; gap: 0; }
.attention-copy b { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow-wrap: anywhere; color: var(--text); font: 600 var(--fs-body)/var(--lh-body) var(--font-sans); }
.attention-copy small { color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.deadline-late, .deadline-today { flex: 0 0 auto; font: 700 var(--fs-caption)/var(--lh-caption) var(--font-sans); text-align: right; white-space: nowrap; }
.deadline-late { color: var(--erro-texto); }
.deadline-today { color: var(--atencao-texto); }
.deadline-late small, .deadline-today small { display: block; color: var(--text-strong); font-weight: 400; }

.cadastro-indicators-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin: 0 0 var(--space-4); }
.internal-indicators-section { margin: 0 0 var(--space-4); }
.internal-indicators-section .cadastro-indicators-grid { margin-bottom: 0; }
.cadastro-chart-card { min-height: 280px; }
.cadastro-chart-card .panel-heading { align-items: flex-start; margin-bottom: var(--space-3); }
.cadastro-chart-caption { margin: 0; color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.cadastro-chart-filter { width: auto !important; max-width: 200px; }
.external-evaluation-filters, .internal-evaluation-filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.external-evaluation-list { display: grid; gap: var(--space-3); margin-top: var(--space-4); }
.external-evaluation-row { display: grid; grid-template-columns: minmax(110px, 190px) minmax(0, 1fr) 36px; align-items: center; gap: var(--space-3); }
.external-evaluation-row > span { overflow: hidden; color: var(--text); font: 600 var(--fs-caption)/var(--lh-caption) var(--font-sans); text-overflow: ellipsis; white-space: nowrap; }
.external-evaluation-row > i, .external-progress-track { display: block; height: 12px; overflow: hidden; border-radius: var(--radius-pill); background: var(--surface-sunken); }
.external-evaluation-row > i > b, .external-progress-track > i { display: block; height: 100%; border-radius: inherit; background: var(--brand); }
.external-evaluation-row > strong { color: var(--text); font: 700 var(--fs-body)/1 var(--font-sans); text-align: right; }
.external-progress-summary, .internal-total-value { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-3); margin: var(--space-4) 0; }
.external-progress-summary > strong, .internal-total-value > strong { color: var(--text); font: 700 48px/54px var(--font-sans); letter-spacing: -0.02em; }
.external-progress-summary > span, .internal-total-value > span { color: var(--text-strong); font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); }
.external-progress-track { height: 16px; }
.external-progress-note { margin: var(--space-2) 0 0; color: var(--text-strong); font-size: var(--fs-caption); }
.cadastro-chart-scroll { width: 100%; overflow-x: auto; scrollbar-width: thin; scrollbar-color: var(--mp-cinza-500) var(--surface-sunken); }
.cadastro-column-chart { display: grid; align-items: stretch; gap: var(--space-2); min-width: 100%; height: 190px; padding: var(--space-2) 0 0; border-bottom: 1px solid var(--border-soft); }
.cadastro-column-chart-wide { height: 220px; }
.cadastro-chart-group { display: grid; grid-template-rows: minmax(0, 1fr) 44px; gap: var(--space-1); min-width: 0; align-items: end; }
.cadastro-column-chart-wide .cadastro-chart-group { grid-template-rows: minmax(0, 1fr) 64px; }
.cadastro-chart-bars { display: flex; align-items: stretch; justify-content: center; gap: var(--space-1); min-height: 0; height: 100%; }
.cadastro-bar-slot { display: grid; grid-template-rows: 22px minmax(0, 1fr); justify-items: center; gap: 2px; min-width: 0; height: 100%; flex: 1; }
.cadastro-bar-slot > small { color: var(--text); font: 700 var(--fs-caption)/22px var(--font-sans); }
.cadastro-bar-track { display: flex; align-items: flex-end; justify-content: center; width: min(100%, 40px); min-height: 0; height: 100%; overflow: hidden; border-radius: var(--radius-sm) var(--radius-sm) 2px 2px; background: var(--surface-sunken); }
.cadastro-bar-track > i { display: block; width: 100%; min-height: 2px; border-radius: var(--radius-sm) var(--radius-sm) 0 0; }
.cadastro-chart-group > b { display: -webkit-box; overflow: hidden; color: var(--text-strong); font: 600 var(--fs-caption)/var(--lh-caption) var(--font-sans); text-align: center; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.cadastro-column-chart-wide .cadastro-chart-group > b { -webkit-line-clamp: 3; }
.registered-bar, .kanban-new-bar { background: var(--mp-verde-500); }
.inactive-bar { background: var(--mp-projetos-base); }
.due-bar { background: var(--mp-esocial-base); }
.reason-bar { background: var(--mp-medicina-base); }

/* ============================ Kanban toolbar ============================ */
.board-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); min-width: 0; margin-bottom: var(--space-4); }
.board-toolbar .kanban-controls { flex: 1 1 auto; min-width: 0; gap: var(--space-2) var(--space-3); margin: 0; }
.board-filters { display: flex; align-items: center; flex: 1 1 320px; min-width: 0; gap: var(--space-2); }
.kanban-controls > span { margin-left: auto; color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); white-space: nowrap; }
.clear-board-filters { flex: 0 0 auto; white-space: nowrap; }
.company-list-filters { margin: 0 0 var(--space-4); }
.company-search { max-width: 620px; margin: 0 0 var(--space-3); }
.company-clear-filters { white-space: nowrap; }
.multi-filter { position: relative; z-index: 3; }
.multi-filter[open] { z-index: 12; }
.multi-filter > summary { position: relative; display: flex; align-items: center; min-height: var(--touch); padding: 0 var(--space-8) 0 var(--space-3); border: 1px solid var(--field-border); border-radius: var(--radius-sm); background: var(--surface-raised); color: var(--text); cursor: pointer; font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); list-style: none; white-space: nowrap; transition: border-color .15s ease; }
.multi-filter > summary:hover { border-color: var(--text); }
.multi-filter > summary::-webkit-details-marker { display: none; }
.multi-filter > summary::after { content: ""; position: absolute; right: var(--space-4); top: 50%; width: 8px; height: 8px; margin-top: -6px; border: solid var(--text-strong); border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .15s ease; }
.multi-filter[open] > summary::after { margin-top: -2px; transform: rotate(225deg); }
.multi-filter[open] > summary, .multi-filter:has(input:checked) > summary { border-color: var(--brand-strong); }
.multi-filter-menu { position: absolute; top: calc(100% + var(--space-1)); left: 0; z-index: 20; width: max-content; min-width: 240px; max-width: min(320px, calc(100vw - 32px)); max-height: 360px; overflow-y: auto; padding: var(--space-2); border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: var(--shadow-media); }
.multi-filter-heading { position: sticky; top: calc(var(--space-2) * -1); display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-1) var(--space-2) var(--space-2); margin: calc(var(--space-2) * -1) calc(var(--space-2) * -1) var(--space-1); padding-top: var(--space-2); border-bottom: 1px solid var(--border-soft); background: var(--surface-raised); color: var(--text-strong); font: 700 var(--fs-label)/var(--lh-label) var(--font-sans); letter-spacing: var(--ls-label); text-transform: uppercase; }
.multi-filter-heading button { min-height: 36px; padding: 0 var(--space-2); border: 0; background: transparent; color: var(--brand-strong); cursor: pointer; font: 700 var(--fs-caption)/1 var(--font-sans); text-decoration: underline; text-transform: none; letter-spacing: 0; }
.multi-filter-option { display: flex; align-items: center; gap: var(--space-3); min-height: var(--touch); padding: 0 var(--space-2); border-radius: var(--radius-sm); color: var(--text); cursor: pointer; font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); }
.multi-filter-option:hover { background: var(--mp-verde-50); }

/* ============================ Kanban board ============================ */
.page-content.kanban-page-content { width: 100%; max-width: none; height: calc(100dvh - var(--topbar-height)); min-height: 640px; display: flex; flex-direction: column; margin: 0; padding: var(--space-2) var(--space-6) var(--space-4); }
.kanban-page-content > * { flex: 0 0 auto; }
.kanban-board { flex: 1 1 0 !important; display: flex; align-items: stretch; gap: var(--space-4); min-height: 420px; min-width: 0; overflow-x: auto; overflow-y: hidden; padding: 0 0 var(--space-3); scrollbar-width: thin; scrollbar-color: var(--mp-cinza-500) var(--surface-sunken); }
.kanban-column { --stage-color: var(--tone-green-solid); flex: 1 0 312px; max-width: 380px; min-height: 0; display: flex; flex-direction: column; padding: var(--space-3); border: 1px solid var(--border-soft); border-top: 4px solid var(--stage-color); border-radius: var(--radius-lg); background: var(--surface-sunken); }
.kanban-column:has(.stage-dot.blue) { --stage-color: var(--tone-blue-solid); }
.kanban-column:has(.stage-dot.violet) { --stage-color: var(--tone-violet-solid); }
.kanban-column:has(.stage-dot.amber) { --stage-color: var(--tone-amber-solid); }
.kanban-column:has(.stage-dot.coral) { --stage-color: var(--tone-coral-solid); }
.kanban-column:has(.stage-dot.slate) { --stage-color: var(--tone-slate-solid); }
.column-heading { display: flex; align-items: center; justify-content: space-between; padding: var(--space-1) var(--space-1) var(--space-3); }
.column-name { display: flex; align-items: center; gap: var(--space-2); width: 100%; color: var(--text); font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); }
.column-count { display: grid; place-items: center; min-width: 28px; height: 24px; margin-left: auto; padding: 0 var(--space-2); border-radius: var(--radius-pill); background: var(--surface-raised); color: var(--text-strong); font: 700 var(--fs-caption)/1 var(--font-sans); box-shadow: var(--shadow-sutil); }
.column-cards { display: flex; flex: 1 1 0; flex-direction: column; align-items: stretch; gap: var(--space-3); min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; touch-action: pan-y; padding: var(--space-1) var(--space-2) var(--space-1) var(--space-1); scrollbar-width: thin; scrollbar-color: var(--mp-cinza-500) transparent; }
.column-cards > * { flex: 0 0 auto; }
.add-card { display: flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: var(--touch); padding: 0 var(--space-3); border: 2px dashed var(--field-border); border-radius: var(--radius-md); background: transparent; color: var(--text-strong); font: 600 var(--fs-body)/1 var(--font-sans); transition: background-color .15s ease, border-color .15s ease; }
.add-card:hover:not(:disabled) { border-color: var(--brand-strong); background: var(--surface-raised); color: var(--brand-strong); }

/* ============================ Cards ============================ */
.task-card-shell { position: relative; display: flex; flex-direction: column; width: 100%; min-width: 0; overflow: hidden; border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: var(--shadow-sutil); transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease; }
.task-card-shell:hover { border-color: var(--mp-verde-300); box-shadow: var(--shadow-media); }
.task-card-late { box-shadow: inset 4px 0 0 var(--erro-texto), var(--shadow-sutil); }
.task-card-late:hover { box-shadow: inset 4px 0 0 var(--erro-texto), var(--shadow-media); }
.task-card-urgent { border: 2px solid var(--tone-coral-solid); }
.task-card-shell.task-card-focus { border-color: var(--brand-strong); animation: task-focus-pulse 1s ease-in-out 2; }
@keyframes task-focus-pulse { 0%, 100% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 40%, transparent), var(--shadow-media); } 50% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--brand) 20%, transparent), var(--shadow-media); } }
.task-card { display: block; width: 100%; padding: var(--space-4); border: 0; background: transparent; color: var(--text); text-align: left; cursor: grab; }
.task-card:active { cursor: grabbing; }
.task-card:focus-visible { outline-offset: -4px; }
.task-card-shell .task-card:not([draggable="true"]) { cursor: pointer; }
.task-card-company { padding-right: var(--space-4); }
.task-company-status-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); min-height: 28px; margin: 0 0 var(--space-3); padding-right: 40px; }
.task-tags, .detail-tags { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-2); margin: 0 0 var(--space-3); }
.detail-tags:empty { display: none; }
.task-title { display: block; margin: 0 0 var(--space-3); color: var(--text); font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); overflow-wrap: anywhere; }
.task-desc { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; margin: 0 0 var(--space-3); color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.task-company-lines { display: grid; gap: var(--space-1); }
.task-company-lines > span { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: var(--space-2); align-items: baseline; min-width: 0; }
.task-company-lines small { color: var(--text-muted); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.task-company-lines b { color: var(--text-strong); font: 600 var(--fs-caption)/var(--lh-caption) var(--font-sans); overflow-wrap: anywhere; }
.task-company-meta { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-1) var(--space-3); margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--border-soft); color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.task-company-meta > span { display: inline-flex; align-items: center; gap: var(--space-1); min-width: 0; }
.task-company-meta b { color: var(--text-strong); font: 600 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.task-company-meta i { display: none; }
.task-company-meta.overdue, .task-company-meta.overdue b { color: var(--erro-texto); }
.task-company-meta.overdue > span:first-child { padding: 0 var(--space-2) 0 var(--space-1); border-radius: var(--radius-pill); background: var(--erro-fundo); }
.task-company-meta > span:nth-of-type(2) { margin-left: auto; }
.task-reservation { margin-top: var(--space-2); }
.task-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-2); }
.task-priority { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--text-strong); font: 600 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.task-priority i { width: 10px; height: 10px; border-radius: var(--radius-circle); background: var(--tone-slate-solid); }
.task-priority.high i { background: var(--tone-amber-solid); }
.task-priority.urgent i { background: var(--tone-coral-solid); }
.task-priority.low i { background: var(--tone-blue-solid); }
.task-more { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: var(--radius-circle); color: var(--text-strong); }
.task-card-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--border-soft); }
.task-date { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--text-strong); font: 600 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.task-date.overdue { color: var(--erro-texto); }
.task-card-people { display: flex; align-items: center; gap: var(--space-2); }
.task-avatar, .tiny-avatar { width: 32px; height: 32px; flex-basis: 32px; }
.task-comment { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--text-strong); font: 600 var(--fs-caption)/1 var(--font-sans); }
.task-urgency-control { position: absolute; z-index: 3; top: 0; right: 0; display: grid; place-items: center; width: var(--touch); height: var(--touch); margin: 0; padding: 0; cursor: pointer; }
.task-urgency-control > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.task-urgency-control input { width: 22px; height: 22px; accent-color: var(--erro-texto); cursor: pointer; }
.task-urgency-control input:disabled { opacity: .5; cursor: not-allowed; }
.card-step-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: var(--space-2); width: 100%; min-width: 0; flex: 0 0 auto; padding: var(--space-3); border-top: 1px solid var(--border-soft); background: var(--surface-sunken); }
.card-step-controls button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); width: 100%; min-width: 0; min-height: var(--touch); padding: 0 var(--space-3); border: 2px solid var(--brand-strong); border-radius: var(--radius-pill); background: transparent; color: var(--brand-strong); font: 700 var(--fs-body)/1 var(--font-sans); white-space: nowrap; transition: background-color .15s ease, border-color .15s ease; }
.card-step-controls button svg { display: block; flex: 0 0 auto; }
.card-step-controls button:hover:not(:disabled) { background: var(--mp-verde-100); }
.card-step-controls .step-forward { border-color: var(--brand); background: var(--brand); color: var(--on-brand); }
.card-step-controls .step-forward:hover:not(:disabled) { border-color: var(--mp-verde-400); background: var(--mp-verde-400); }
.card-step-controls .step-finish { border-color: var(--mp-verde-escuro); background: var(--mp-verde-escuro); color: var(--mp-branco); }
.card-step-controls .step-finish:hover:not(:disabled) { border-color: var(--mp-verde-800); background: var(--mp-verde-800); }
.card-step-controls button:disabled { border-color: var(--mp-cinza-200); background: var(--mp-cinza-200); color: var(--mp-cinza-500); }

/* ============================ Companies list ============================ */
.requests-panel { flex: 1 1 auto; min-height: 0; padding: 0; overflow: auto; overscroll-behavior: contain; }
.request-list-head, .request-row { display: grid; grid-template-columns: minmax(144px, 2fr) 142px minmax(84px, 1fr) minmax(84px, 1fr) 94px 112px 72px 104px 112px minmax(84px, 1fr); align-items: center; gap: var(--space-2); width: 100%; min-width: 1136px; padding-left: var(--space-4); padding-right: var(--space-4); }
.request-list-head { position: sticky; top: 0; z-index: 1; min-height: 52px; border-bottom: 1px solid var(--border); background: var(--surface-sunken); color: var(--text-strong); font: 700 var(--fs-label)/var(--lh-label) var(--font-sans); letter-spacing: .08em; text-transform: uppercase; }
.request-row { min-height: 68px; padding-top: var(--space-3); padding-bottom: var(--space-3); border: 0; border-bottom: 1px solid var(--border-soft); background: transparent; color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); text-align: left; transition: background-color .15s ease; }
button.request-row { cursor: pointer; }
button.request-row:hover { background: var(--mp-verde-50); }
button.request-row:focus-visible { outline-offset: -2px; }
.request-title { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-1) var(--space-2); min-width: 0; color: var(--text); }
.request-title b { font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); overflow-wrap: anywhere; }
.request-title small:not(.status-pill) { padding: 2px var(--space-2); border-radius: var(--radius-sm); background: var(--mp-cinza-100); color: var(--text-strong); font: 600 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.request-statuses, .request-tags { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-1); min-width: 0; }
.request-row .status-pill { white-space: normal; }
.request-row > span:not(.request-title):not(.request-tags) { min-width: 0; overflow-wrap: anywhere; }
.request-row-inactive { opacity: .7; }
.pre-registration-note { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); margin: 0 0 var(--space-3); color: var(--text-strong); }
.scheduled-deactivation-hint { margin: 0 0 var(--space-2); color: var(--atencao-texto); }
.scheduled-company-status { display: grid; justify-items: start; gap: var(--space-2); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--atencao-fundo); }
.scheduled-company-status small { color: var(--atencao-texto); }

/* ============================ Team and administration ============================ */
.team-panel { max-width: 900px; margin-bottom: var(--space-4); }
.admin-page-content > .panel { width: 100%; max-width: 900px; margin-bottom: var(--space-4); }
.invite-panel { padding: var(--space-6); }
.invite-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 0 var(--space-4); }
.invite-form .form-label { min-width: 0; margin-bottom: var(--space-4); }
.invite-form .button-primary { margin-bottom: var(--space-4); }
.invite-hint { margin: var(--space-3) 0; }
.panel > .field-hint { margin: 0 0 var(--space-4); }
.invite-list { margin-top: var(--space-4); }
.invite-row { display: flex; align-items: center; gap: var(--space-3); min-height: 56px; border-top: 1px solid var(--border-soft); }
.team-row { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2) var(--space-3); min-height: 72px; padding: var(--space-3) 0; border-top: 1px solid var(--border-soft); }
.team-avatar { width: 44px; height: 44px; flex-basis: 44px; background: var(--mp-verde-100); }
.team-info { flex: 1 1 220px; min-width: 0; display: grid; gap: 0; }
.team-info b { color: var(--text); font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); }
.team-info small { overflow-wrap: anywhere; color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.role-select, .position-select { width: auto; min-width: 150px; max-width: 220px; flex: 0 0 auto; }
.team-search, .unit-search { width: min(100%, 420px); margin: var(--space-3) 0 var(--space-2); }
.team-member-list { max-height: 520px; overflow-y: auto; overscroll-behavior: contain; padding-right: var(--space-1); scrollbar-width: thin; scrollbar-color: var(--mp-cinza-500) var(--surface-sunken); }
.unit-admin-list { max-height: 320px; overflow-y: auto; overscroll-behavior: contain; padding-right: var(--space-2); scrollbar-width: thin; scrollbar-color: var(--mp-cinza-500) var(--surface-sunken); }
.reset-password-form { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--border-soft); }
.reset-password-form > p { grid-column: 1 / -1; margin: 0 0 var(--space-3); }
.reset-password-form > button { justify-self: start; }
.account-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.account-create-form .account-sector-picker { grid-column: 1 / -1; display: grid; gap: var(--space-2); margin-bottom: var(--space-4); }
.account-create-form > button { justify-self: start; }
.account-sector-picker > span { margin: 0; }
.account-sector-picker > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.account-sector-picker > div label { display: flex; align-items: center; gap: var(--space-2); min-height: var(--touch); padding: var(--space-2) var(--space-3); border: 1px solid var(--field-border); border-radius: var(--radius-sm); background: var(--surface-raised); color: var(--text); font: 400 var(--fs-body)/var(--lh-caption) var(--font-sans); cursor: pointer; }
.account-sector-picker > div label:has(input:checked) { border-color: var(--brand-strong); background: var(--mp-verde-50); }
.account-sector-picker small { color: var(--text-strong); }
.account-credentials { display: grid; gap: var(--space-3); margin-top: var(--space-4); padding: var(--space-4); border-radius: var(--radius-md); background: var(--sucesso-fundo); color: var(--sucesso-texto); }
.account-credentials .eyebrow { margin: 0; color: var(--sucesso-texto); }
.account-credentials > div:first-child { display: grid; gap: 0; }
.account-credentials > div > b { color: var(--text); font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); }
.account-credentials dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin: 0; }
.account-credentials dl > div { min-width: 0; display: grid; gap: 0; }
.account-credentials dt { color: var(--sucesso-texto); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.account-credentials dd { overflow-wrap: anywhere; margin: 0; color: var(--text); font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); }
.account-credentials .button-secondary { justify-self: start; background: var(--surface-raised); }
.admin-card { padding: var(--space-6); }
.flow-admin-list { max-width: 900px; }
.flow-admin-row { display: flex; align-items: center; gap: var(--space-3); min-height: 64px; border-top: 1px solid var(--border-soft); }
.flow-admin-row .text-button { margin-left: auto; }
.company-import-panel > .field-hint, .company-backup-panel > .field-hint { max-width: 70ch; margin: 0 0 var(--space-3); font-size: var(--fs-caption); }
.company-import-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-4); }
.company-import-input { display: none; }
.company-import-selection { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); margin-top: var(--space-4); padding: var(--space-4); border-radius: var(--radius-md); background: var(--surface-sunken); color: var(--text); }
.company-import-selection > div { display: grid; }
.company-import-selection span { color: var(--text-strong); font-size: var(--fs-caption); }
.company-import-selection .button-primary { margin-left: auto; }
.company-import-result { margin-top: var(--space-4); padding: var(--space-4); border-radius: var(--radius-md); background: var(--sucesso-fundo); color: var(--sucesso-texto); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.company-import-result b { font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); }
.company-import-result p { margin: var(--space-1) 0 0; }
.company-import-result.is-error { background: var(--erro-fundo); color: var(--erro-texto); }
.company-import-result.is-partial { background: var(--atencao-fundo); color: var(--atencao-texto); }
.company-import-errors-title { display: block; margin-top: var(--space-3); }
.company-import-result ul { max-height: 200px; overflow: auto; margin: var(--space-2) 0 0; padding-left: var(--space-5); list-style: disc; }
.company-import-result small { display: block; margin-top: var(--space-2); }
.backup-restore-warning { margin: var(--space-4) 0 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--atencao-fundo); color: var(--atencao-texto) !important; }
.backup-password-row { max-width: 400px; margin: 0 0 var(--space-3); }

/* Tags */
.tag-create-form { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(130px, .6fr) minmax(170px, .9fr) auto; align-items: end; gap: 0 var(--space-3); padding: 0 0 var(--space-4); border-bottom: 1px solid var(--border-soft); }
.admin-page-content .tag-create-form { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; }
.tag-create-form .form-label { min-width: 0; margin: 0; }
.tag-create-form .button-primary { white-space: nowrap; }
.tag-sector-picker, .tag-sector-editor { position: relative; min-width: 0; }
.tag-sector-picker summary, .tag-sector-editor summary { display: flex; align-items: center; min-height: var(--touch); padding: 0 var(--space-3); border: 1px solid var(--field-border); border-radius: var(--radius-sm); background: var(--surface-raised); color: var(--text); font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); cursor: pointer; list-style: none; }
.tag-sector-picker summary::-webkit-details-marker, .tag-sector-editor summary::-webkit-details-marker { display: none; }
.tag-sector-picker summary::after, .tag-sector-editor summary::after { content: ""; width: 8px; height: 8px; margin: -4px 0 0 var(--space-3); border: solid var(--text-strong); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.tag-sector-picker { margin: 0; }
.tag-sector-picker > div { position: absolute; z-index: 4; top: calc(100% + var(--space-1)); left: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-1); width: min(380px, 80vw); max-height: 300px; overflow: auto; padding: var(--space-2); border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: var(--shadow-media); }
.tag-sector-picker label, .tag-sector-editor form > div label { display: flex; align-items: center; gap: var(--space-2); min-width: 0; min-height: var(--touch); padding: 0 var(--space-2); border-radius: var(--radius-sm); color: var(--text); font: 400 var(--fs-body)/var(--lh-caption) var(--font-sans); cursor: pointer; }
.tag-sector-picker label:hover, .tag-sector-editor form > div label:hover { background: var(--mp-verde-50); }
.tag-admin-list { margin-top: var(--space-2); }
.tag-admin-row { border-bottom: 1px solid var(--border-soft); }
.tag-admin-main { display: grid; grid-template-columns: minmax(150px, 1.2fr) minmax(100px, .6fr) minmax(140px, 1fr) auto; align-items: center; gap: var(--space-4); min-height: 68px; padding: var(--space-2) 0; }
.tag-admin-name { display: flex; align-items: center; gap: var(--space-2); min-width: 0; }
.tag-admin-name > small { color: var(--text-strong); }
.tag-admin-color { display: flex; align-items: center; gap: var(--space-2); color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.tag-sector-editor summary { width: max-content; max-width: 100%; }
.tag-sector-editor form { display: grid; gap: var(--space-2); margin-top: var(--space-2); padding: var(--space-3); border-radius: var(--radius-md); background: var(--surface-sunken); }
.tag-sector-editor form > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-1); }
.tag-sector-editor .button-secondary { justify-self: start; }
.tag-admin-actions { display: flex; align-items: center; gap: var(--space-2); white-space: nowrap; }
.tag-admin-inactive .tag-admin-name .status-pill, .tag-admin-inactive .tag-admin-color { opacity: .6; }
.tag-picker { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); padding: var(--space-3) var(--space-4); margin: var(--space-3) 0; }
.tag-picker legend { color: var(--text); }
.tag-picker > .field-hint { flex: 0 0 100%; }
.tag-picker label, .company-tag-checklist label { display: flex; align-items: center; gap: var(--space-2); min-height: var(--touch); cursor: pointer; }
.company-tag-editor { margin: var(--space-3) 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--surface-sunken); }
.company-tag-editor-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.company-tag-editor-heading b, .company-tag-editor-heading small { display: block; }
.company-tag-editor-heading b { color: var(--text); font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); }
.company-tag-editor-heading small { color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.company-tag-checklist { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); padding: var(--space-2) 0; }
.company-tag-checklist label small { color: var(--text-strong); }
.company-tag-editor-actions { display: flex; justify-content: flex-end; gap: var(--space-2); padding-top: var(--space-2); }
.access-admin-note { display: flex; gap: var(--space-2); align-items: flex-start; margin: var(--space-4) 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--info-fundo); color: var(--info-texto); }
.access-people { max-height: 320px; overflow-y: auto; margin-bottom: var(--space-4); }
.access-person { display: flex; gap: var(--space-3); justify-content: space-between; align-items: center; min-height: 64px; padding: var(--space-2) 0; border-bottom: 1px solid var(--border-soft); cursor: pointer; }
.access-person > span { min-width: 0; display: grid; gap: 0; }
.access-person b { font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); }
.access-person small { overflow-wrap: anywhere; color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.evaluation-picker { display: grid; gap: var(--space-2); margin: var(--space-4) 0; padding: var(--space-4); }
.evaluation-picker legend span { color: var(--erro-texto); font-weight: 600; }
.evaluation-choice { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-3); border: 1px solid var(--field-border); border-radius: var(--radius-sm); background: var(--surface-raised); cursor: pointer; }
.evaluation-choice:has(input:checked) { border-color: var(--brand-strong); background: var(--mp-verde-50); }
.evaluation-choice input { margin-top: 2px; }
.evaluation-choice span { display: grid; gap: 0; }
.evaluation-choice b { color: var(--text); font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); }
.evaluation-choice small { color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.evaluation-select-label { margin: 0 0 var(--space-1) var(--space-6); }

/* ============================ Modals ============================ */
.modal-backdrop { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: var(--space-6); background: color-mix(in srgb, var(--mp-verde-escuro) 55%, transparent); backdrop-filter: blur(3px); }
.inactivation-backdrop { z-index: 41; }
.modal-card { width: min(100%, 560px); max-height: min(92dvh, 860px); overflow: auto; padding: var(--space-8); border-radius: var(--radius-xl); background: var(--surface-raised); box-shadow: var(--shadow-alta); }
.modal-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-6); }
.modal-heading .eyebrow { margin-bottom: var(--space-1); }
.modal-heading h2 { margin: 0; color: var(--text); font: 700 var(--fs-h2)/var(--lh-h2) var(--font-sans); overflow-wrap: anywhere; }
.modal-heading .icon-button { margin: calc(var(--space-2) * -1) calc(var(--space-2) * -1) 0 0; }
.modal-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-2); padding-top: var(--space-4); border-top: 1px solid var(--border-soft); }
.modal-footer > span { color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.modal-card > p:not(.eyebrow), .modal-card > .field-hint { margin: 0 0 var(--space-4); }
.company-modal { width: min(100%, 960px); }
.stage-settings { width: min(100%, 680px); }
.task-detail { width: min(100%, 680px); }
.task-detail.company-task-detail { width: min(100%, 840px); }
.urgency-confirm-card { width: min(100%, 460px); }
.urgency-confirm-card > p:not(.field-hint) { color: var(--text); font: 400 var(--fs-lead)/var(--lh-lead) var(--font-sans); }
.urgency-confirm-actions, .backup-restore-actions { justify-content: flex-end; }
.backup-restore-confirm-card { width: min(100%, 620px); }
.backup-restore-filename { margin: 0 0 var(--space-3); overflow-wrap: anywhere; color: var(--text-strong); }
.backup-restore-loss { padding: var(--space-4); border-radius: var(--radius-md); background: var(--atencao-fundo); color: var(--atencao-texto); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.backup-restore-loss b { font-size: var(--fs-body); }
.backup-restore-loss ul { display: grid; gap: var(--space-1); margin: var(--space-2) 0 0; padding-left: var(--space-5); list-style: disc; }
.backup-restore-excluded { margin: var(--space-3) 0 0; color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.urgency-confirm-yes, .backup-restore-confirm-button { background: var(--erro-texto); border-color: var(--erro-texto); color: var(--mp-branco); }
.urgency-confirm-yes:hover:not(:disabled), .backup-restore-confirm-button:hover:not(:disabled) { background: var(--mp-projetos-base); border-color: var(--mp-projetos-base); }
.company-form-sections { max-height: 52vh; overflow: auto; }
.company-form-section { margin: 0 0 var(--space-4); padding: var(--space-4); border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--surface-sunken); }
.company-form-section h3, .company-details-view h3 { margin: 0 0 var(--space-3); color: var(--text); font: 700 var(--fs-lead)/var(--lh-lead) var(--font-sans); }
.company-fields-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 0 var(--space-4); }
.company-fields-grid .form-label { min-width: 0; }
.company-details-view { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); margin-top: var(--space-4); }
.company-details-view > section { padding: var(--space-4) var(--space-6); border-radius: var(--radius-md); background: var(--surface-sunken); }
.company-details-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4) var(--space-6); }
.company-details-grid > div { min-width: 0; display: grid; gap: 0; }
.company-details-grid small { color: var(--text-muted); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.company-details-grid b { overflow-wrap: anywhere; color: var(--text); font: 600 var(--fs-body)/var(--lh-body) var(--font-sans); }
.company-operations { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); padding: var(--space-4) 0; }
.company-operations:empty { display: none; }
.company-status-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--surface-sunken); color: var(--text); }
.company-status-actions small { color: var(--text-strong); }
.reservation-box { display: flex; flex: 1 1 100%; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-2) var(--space-4); border-radius: var(--radius-md); background: var(--surface-sunken); color: var(--text); }
.detail-description { color: var(--text-strong); font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); }
.detail-meta { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); padding: var(--space-3) 0; border-top: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft); color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.detail-meta > span:not(.priority-label):not(.status-pill) { display: inline-flex; align-items: center; gap: var(--space-1); }
.detail-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); padding: var(--space-4) 0; }
.detail-actions .card-step-controls { width: auto; min-width: 280px; border: 1px solid var(--border-soft); border-radius: var(--radius-md); }
.comments-area { padding-top: var(--space-4); }
.comments-area h3, .card-timeline h3 { display: flex; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-3); color: var(--text); font: 700 var(--fs-lead)/var(--lh-lead) var(--font-sans); }
.comments-list, .activities-list, .timeline-list { display: grid; gap: var(--space-3); max-height: 240px; overflow-y: auto; overscroll-behavior: contain; padding-right: var(--space-2); scrollbar-width: thin; scrollbar-color: var(--mp-cinza-500) var(--surface-sunken); }
.timeline-list { display: block; max-height: 280px; }
.comment-row { display: flex; align-items: flex-start; gap: var(--space-3); }
.comment-row > div { flex: 1; display: grid; grid-template-columns: auto 1fr; gap: 0 var(--space-2); }
.comment-row b { color: var(--text); font: 700 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.comment-row small { color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.comment-row p { grid-column: 1 / -1; margin: 0; color: var(--text); font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); overflow-wrap: anywhere; }
.comment-form { display: flex; gap: var(--space-2); margin-top: var(--space-4); }
.comment-form input { min-width: 0; flex: 1; }
.comment-form .button-primary { width: var(--touch); min-width: var(--touch); padding: 0; }
.card-timeline { padding: var(--space-4) 0 0; border-top: 1px solid var(--border-soft); margin-top: var(--space-4); }
.timeline-row { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: var(--space-3); align-items: center; padding: var(--space-3) 0; border-top: 1px solid var(--border-soft); }
.timeline-row > span:nth-child(2) { display: grid; gap: 0; }
.timeline-row b { color: var(--text); font: 700 var(--fs-body)/var(--lh-body) var(--font-sans); }
.timeline-row small { color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.timeline-row strong { color: var(--brand-strong); font: 700 var(--fs-caption)/var(--lh-caption) var(--font-sans); white-space: nowrap; }

/* ============================ Login, invitation and setup screens ============================ */
.login-screen { min-height: 100vh; min-height: 100dvh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(440px, .95fr); background: var(--surface-raised); }
.login-art { position: relative; overflow: hidden; min-height: 100vh; min-height: 100dvh; background: var(--mp-verde-escuro); }
.login-art-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
/* Decorative arcs echo the rounded line work of the brand icon (low-contrast, purely ornamental). */
.login-panel { display: flex; flex-direction: column; justify-content: center; width: 100%; max-width: 560px; margin: auto; padding: var(--space-12) var(--space-16); }
.login-brand { display: none; margin-bottom: var(--space-12); }
.login-brand .brand-logo { width: 220px; }
.login-copy { margin: 0 0 var(--space-8); }
.login-copy .eyebrow { margin-bottom: var(--space-3); }
.login-copy h1 { margin: 0; color: var(--text); font: 700 40px/46px var(--font-sans); letter-spacing: -0.01em; }
.login-copy h1 em { color: var(--brand-strong); font-style: normal; }
.login-copy p:not(.eyebrow) { max-width: 44ch; margin: var(--space-4) 0 0; color: var(--text-strong); font: 400 var(--fs-lead)/var(--lh-lead) var(--font-sans); }
.auth-form { display: grid; gap: 0; }
.auth-form .form-label { margin: 0 0 var(--space-4); }
.auth-form .login-button { width: 100%; min-height: 52px; margin-top: var(--space-2); cursor: pointer; font-size: var(--fs-lead); }
.login-button [data-label] { font-size: inherit; }
.auth-hint { margin: 0 0 var(--space-4); color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.auth-error { margin: 0 0 var(--space-3); }
.login-footnote { margin: var(--space-6) 0 0; color: var(--text-strong); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
.legacy-login-link { display: block; margin-top: var(--space-4); color: var(--brand-strong); text-align: center; text-decoration: underline; text-underline-offset: 3px; }
.setup-screen { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: var(--space-6) var(--space-4); background: var(--surface-page); text-align: center; }
.setup-screen .brand-logo { margin: 0 auto var(--space-6); }
.setup-screen h1 { margin: 0 0 var(--space-2); color: var(--text); font: 700 var(--fs-h1)/var(--lh-h1) var(--font-sans); }
.setup-screen p:not(.eyebrow) { max-width: 52ch; color: var(--text-strong); font: 400 var(--fs-body)/var(--lh-body) var(--font-sans); }
.setup-screen .setup-help, .setup-help { max-width: 52ch; color: var(--text-strong); font-size: var(--fs-caption); }
.setup-logo { width: 220px; }

/* ============================ Responsive ============================ */
@media (max-width: 1180px) {
  .page-content, .page-content.kanban-page-content, .topbar { padding-left: var(--space-6); padding-right: var(--space-6); }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-charts, .cadastro-indicators-grid { grid-template-columns: minmax(0, 1fr); }
  .company-fields-grid, .company-details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .board-title-row, .board-toolbar { flex-wrap: wrap; }
  .login-panel { padding: var(--space-12) var(--space-8); }
}

@media (max-width: 860px) {
  .app-shell { flex-direction: column; }
  .sidebar { width: 100%; height: auto; flex: 0 0 auto; flex-direction: row; flex-wrap: wrap; align-items: center; padding: var(--space-2) var(--space-4) 0; overflow: visible; }
  .sidebar-brand { order: 1; flex: 1 1 auto; padding: 0; }
  .sidebar-brand .brand-logo { width: 148px; }
  .sidebar-bottom { order: 2; margin: 0; padding: 0; }
  .sidebar-profile { min-height: var(--touch); padding: 0 var(--space-1); background: transparent; }
  .profile-info { display: none; }
  .sidebar-nav { order: 3; display: flex; flex: 0 0 100%; gap: var(--space-2); margin: 0 calc(var(--space-4) * -1); padding: var(--space-2) var(--space-4) var(--space-3); overflow-x: auto; scrollbar-width: none; }
  .sidebar-nav::-webkit-scrollbar { display: none; }
  .nav-link { width: auto; flex: 0 0 auto; min-height: var(--touch); padding: 0 var(--space-4); white-space: nowrap; }
  .sidebar-nav { gap: 2px; }
  /* Inactive items collapse to icon-only (label stays available to screen readers). */
  .nav-link.active { padding: 0 var(--space-3); }
  .nav-link:not(.active) { width: var(--touch); padding: 0; justify-content: center; }
  .nav-link:not(.active) > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .nav-link { position: relative; }
  .main-area { width: 100%; height: auto; flex: 1 1 0; }
  .topbar { display: none; }
  .page-content, .page-content.kanban-page-content { padding: var(--space-4) var(--space-4) var(--space-12); }
  .main-area-requests { overflow-y: auto; }
  .page-content.requests-page-content { height: auto; overflow: visible; padding-bottom: var(--space-12); }
  .requests-panel { padding: 0; overflow: visible; border: 0; background: transparent; box-shadow: none; }
  .welcome-row { align-items: flex-start; flex-direction: column; gap: var(--space-3); }
  .board-title-actions { width: 100%; }
  .board-title-actions > * { flex: 1 1 auto; }
  .panel { padding: var(--space-4); }
  .page-content.kanban-page-content { height: auto; min-height: 0; }
  .kanban-board { flex: none !important; height: 72dvh; min-height: 480px; scroll-snap-type: x proximity; margin: 0 calc(var(--space-4) * -1); padding: 0 var(--space-4) var(--space-3); scroll-padding: var(--space-4); }
  .kanban-column { flex: 0 0 min(86vw, 340px); scroll-snap-align: start; }
  .board-filters { flex: 1 1 100%; }
  .board-filters .search-box { flex: 1 1 100%; min-width: 0; }
  .multi-filter { flex: 1 1 calc(50% - var(--space-2)); }
  .multi-filter > summary { width: 100%; overflow: hidden; text-overflow: ellipsis; }
  .kanban-controls > span { margin-left: 0; white-space: normal; }
  .request-list-head { display: none; }
  .request-row { grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; gap: var(--space-2) var(--space-4); margin-bottom: var(--space-3); padding: var(--space-4); border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: var(--shadow-sutil); }
  .request-row > :first-child, .request-row > :nth-child(10) { grid-column: 1 / -1; }
  .request-row > :nth-child(n+2)::before { display: block; color: var(--text-muted); font: 400 var(--fs-caption)/var(--lh-caption) var(--font-sans); }
  .request-row > :nth-child(2)::before { content: "Documento"; }
  .request-row > :nth-child(3)::before { content: "Cidade"; }
  .request-row > :nth-child(4)::before { content: "Unidade"; }
  .request-row > :nth-child(5)::before { content: "Vencimento"; }
  .request-row > :nth-child(6)::before { content: "Status"; }
  .request-row > :nth-child(7)::before { content: "Urgência"; }
  .request-row > :nth-child(8)::before { content: "Tipo de avaliação"; }
  .request-row > :nth-child(9)::before { content: "Etapa"; }
  .request-row > :nth-child(10)::before { content: "Tags"; display: block; width: 100%; color: var(--text-muted); }
  .request-tags { align-items: flex-start; }
  .invite-form, .account-create-form, .reset-password-form, .tag-create-form, .admin-page-content .tag-create-form { grid-template-columns: minmax(0, 1fr); }
  .invite-form .button-primary { margin-bottom: 0; }
  .account-sector-picker > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-credentials dl { grid-template-columns: minmax(0, 1fr); }
  .tag-admin-main { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .tag-admin-actions { justify-content: flex-start; }
  .team-row .role-select, .team-row .position-select { flex: 1 1 100%; max-width: none; }
  .sector-chart-row { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .login-screen { grid-template-columns: minmax(0, 1fr); }
  .login-art { display: none; }
  .login-panel { max-width: 520px; padding: var(--space-8) var(--space-4) var(--space-12); }
  .login-brand { display: flex; margin-bottom: var(--space-8); }
  .login-brand .brand-logo { width: 180px; }
  .login-copy h1 { font-size: var(--fs-h1); line-height: var(--lh-h1); }
}

@media (max-width: 440px) {
  .nav-count { display: none; }
}

@media (max-width: 600px) {
  .modal-backdrop { padding: var(--space-3); align-items: end; }
  .modal-card { max-height: 94dvh; padding: var(--space-5); border-radius: var(--radius-lg); }
  .modal-footer { align-items: stretch; flex-direction: column-reverse; }
  .modal-footer .button-primary { width: 100%; white-space: normal; }
  .modal-footer.urgency-confirm-actions, .modal-footer.backup-restore-actions { flex-direction: column-reverse; }
  .form-two, .company-fields-grid, .company-details-grid { grid-template-columns: minmax(0, 1fr); }
  .company-form-sections { max-height: none; }
  .detail-actions .card-step-controls { width: 100%; min-width: 0; }
  .toast-error { right: var(--space-4); bottom: var(--space-4); left: var(--space-4); max-width: none; }
  .priority-metric-value > strong { font-size: 48px; line-height: 54px; }
  .metric-grid { grid-template-columns: minmax(0, 1fr); }
  .company-import-selection .button-primary { margin-left: 0; width: 100%; }
  .attention-kanban-button { flex: 1 1 100%; }
  .dashboard-filters label { width: 100%; justify-content: space-between; }
  .dashboard-filters select { flex: 1; }
  .external-evaluation-row { grid-template-columns: minmax(90px, 1fr) minmax(60px, 1fr) 32px; }
}

/* ============================ Reduced motion ============================ */
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
