/* ============================================================================
   PRODEVSTECH — DESIGN SYSTEM
   Foundation tokens · Light + Dark · MudBlazor-aligned
   Linha de sistemas médicos: MedSched · MedSafe · MedLife
   Typography: Plus Jakarta Sans · Primary: Teal #0E8C81 · Secondary: Indigo #312E81
   ============================================================================ */

@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&family=JetBrains+Mono:wght@400;500&display=swap");

:root {
  /* ---------- BRAND / PRIMARY (ProdevsTech Teal — tecnologia + saúde) ---------- */
  --pt-primary-50:  #E7F5F3;
  --pt-primary-100: #C4E8E3;
  --pt-primary-200: #92D5CD;
  --pt-primary-300: #55BDB2;
  --pt-primary-400: #1FA598;
  --pt-primary-500: #0E8C81; /* brand anchor */
  --pt-primary-600: #0B7369;
  --pt-primary-700: #0E5F57;
  --pt-primary-800: #134E4A; /* teal do logo */
  --pt-primary-900: #123F3C;
  --pt-primary: var(--pt-primary-500);
  --pt-on-primary: #FFFFFF;

  /* ---------- SECONDARY (Indigo do logo) ---------- */
  --pt-secondary-50:  #ECECF7;
  --pt-secondary-100: #D6D5EE;
  --pt-secondary-200: #B0AEDD;
  --pt-secondary-300: #837FC8;
  --pt-secondary-400: #5C57AF;
  --pt-secondary-500: #423E96; /* anchor */
  --pt-secondary-600: #312E81; /* indigo do logo */
  --pt-secondary-700: #2A2870;
  --pt-secondary-800: #23215B;
  --pt-secondary-900: #1B1A48;
  --pt-secondary: var(--pt-secondary-600);
  --pt-on-secondary: #FFFFFF;

  /* ---------- NEUTRAL SCALE (Cool Gray levemente esverdeado) ---------- */
  --pt-neutral-50:  #F2F5F4;
  --pt-neutral-100: #E4E9E8;
  --pt-neutral-200: #C8D2D0;
  --pt-neutral-300: #A6B4B1;
  --pt-neutral-400: #84938F;
  --pt-neutral-500: #64726E;
  --pt-neutral-600: #53615D;
  --pt-neutral-700: #43504C;
  --pt-neutral-800: #333D3A;
  --pt-neutral-900: #222A28;

  /* ---------- SEMANTIC / FEEDBACK ---------- */
  --pt-success-50:  #E9F6EF;
  --pt-success-100: #D3ECE0;
  --pt-success-500: #1F9D63;
  --pt-success-600: #1B8A57;
  --pt-success-700: #17764A;
  --pt-success: var(--pt-success-500);

  --pt-warning-50:  #FDF6EA;
  --pt-warning-100: #F8EBCF;
  --pt-warning-500: #D69412;
  --pt-warning-600: #BE8210;
  --pt-warning-700: #A6710E;
  --pt-warning: var(--pt-warning-500);

  --pt-error-50:  #FCF0F0;
  --pt-error-100: #F7DEDE;
  --pt-error-500: #D64545;
  --pt-error-600: #BD3C3C;
  --pt-error-700: #A43333;
  --pt-error: var(--pt-error-500);

  --pt-info-50:  #E8F5F7;
  --pt-info-100: #CFEAEF;
  --pt-info-500: #0E9BB8;
  --pt-info-600: #0C88A2;
  --pt-info-700: #0A748B;
  --pt-info: var(--pt-info-500);

  /* ---------- CATEGORICAL PALETTE (data viz · segmentos · ícones) ---------- */
  --pt-cat-1: #0E8C81; /* brand teal */
  --pt-cat-2: #312E81; /* brand indigo */
  --pt-cat-3: #1FA598; /* teal light */
  --pt-cat-4: #5C57AF; /* indigo light */
  --pt-cat-5: #2FB57C; /* emerald */
  --pt-cat-6: #E0A106; /* amber */
  --pt-cat-7: #E26D9B; /* pink */
  --pt-cat-8: #0E9BB8; /* cyan */

  /* ---------- PRODUCT ACCENTS (linha médica) ---------- */
  --pt-medsched: #0E8C81; /* Agendamento — teal da marca */
  --pt-medsafe:  #312E81; /* Perícia Médica — indigo da marca */
  --pt-medlife:  #1F9D63; /* Medicina do Trabalho — verde saúde */

  /* ---------- LIGHT THEME SURFACES & TEXT (default) ---------- */
  --pt-background:        #F4F7F6; /* app canvas */
  --pt-surface:           #FFFFFF; /* cards, paper */
  --pt-surface-2:         #F7FAF9; /* subtle raised / table header */
  --pt-surface-inverse:   #123F3C;
  --pt-border:            #E2E9E7;
  --pt-border-strong:     #CBD6D3;
  --pt-divider:           #EDF2F1;

  --pt-text-primary:      #14231F;
  --pt-text-secondary:    #4E5F5A;
  --pt-text-disabled:     #97A6A1;
  --pt-text-on-color:     #FFFFFF;

  --pt-action-hover:      rgba(14,140,129,0.08);
  --pt-action-selected:   rgba(14,140,129,0.12);
  --pt-action-disabled-bg:#EDF1F0;
  --pt-overlay:           rgba(15,31,28,0.48);

  /* ---------- shadcn-flavored helpers ---------- */
  --pt-muted:             #F3F6F5;
  --pt-muted-foreground:  #64726E;
  --pt-ring:              rgba(14,140,129,0.40);
  --pt-card:              #FFFFFF;

  /* ---------- SPACING (base 8 · meio-passo 4) ---------- */
  --pt-space-0: 0px;
  --pt-space-1: 4px;
  --pt-space-2: 8px;
  --pt-space-3: 12px;
  --pt-space-4: 16px;
  --pt-space-5: 20px;
  --pt-space-6: 24px;
  --pt-space-8: 32px;
  --pt-space-10: 40px;
  --pt-space-12: 48px;
  --pt-space-16: 64px;
  --pt-space-20: 80px;

  /* ---------- BORDER RADIUS (base 10–12) ---------- */
  --pt-radius-xs: 4px;
  --pt-radius-sm: 6px;
  --pt-radius-md: 8px;   /* botões, inputs, chips densos */
  --pt-radius-lg: 10px;  /* base / cards, painéis */
  --pt-radius-xl: 14px;  /* containers de destaque, hero */
  --pt-radius-pill: 999px;
  --pt-radius-card: 12px; /* card padrão */
  --pt-radius-default: var(--pt-radius-lg);

  /* ---------- ELEVATION (muito discretas) ---------- */
  --pt-elevation-none: none;
  --pt-elevation-low:  0 1px 2px rgba(18,63,60,0.05);
  --pt-elevation-med:  0 1px 3px rgba(18,63,60,0.09), 0 1px 2px -1px rgba(18,63,60,0.07);
  --pt-elevation-high: 0 12px 26px rgba(18,63,60,0.13), 0 6px 10px -6px rgba(18,63,60,0.09);

  /* ---------- TYPOGRAPHY ---------- */
  --pt-font-sans: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --pt-font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;

  --pt-weight-light: 300;
  --pt-weight-regular: 400;
  --pt-weight-medium: 500;
  --pt-weight-semibold: 600;
  --pt-weight-bold: 700;

  /* ---------- LAYOUT ---------- */
  --pt-appbar-height: 64px;
  --pt-drawer-width: 264px;
  --pt-drawer-mini: 72px;
  --pt-content-max: 1440px;
}

/* ============================================================================
   DARK THEME — derivado da marca (teal navy), sem preto puro, contraste AA
   ============================================================================ */
:root.pf-v5-theme-dark,
[data-theme="dark"] {
  --pt-background:        #07191A; /* deep teal-charcoal */
  --pt-surface:           #0D2528;
  --pt-surface-2:         #123033;
  --pt-surface-inverse:   #E8F4F1;
  --pt-border:            #1D3A3B;
  --pt-border-strong:     #2A4E4C;
  --pt-divider:           #102A2C;

  --pt-text-primary:      #E8F4F1;
  --pt-text-secondary:    #97B7B0;
  --pt-text-disabled:     #566E6A;
  --pt-text-on-color:     #FFFFFF;

  /* eleva o teal para legibilidade em superfícies escuras */
  --pt-primary:           #23B0A2;
  --pt-on-primary:        #052E2A;

  --pt-action-hover:      rgba(35,176,162,0.12);
  --pt-action-selected:   rgba(35,176,162,0.18);
  --pt-action-disabled-bg:#182B2C;
  --pt-overlay:           rgba(4,12,12,0.64);

  --pt-muted:             #102A2C;
  --pt-muted-foreground:  #8FAFA8;
  --pt-ring:              rgba(35,176,162,0.45);
  --pt-card:              #0D2528;

  /* categórica — levemente clareada para o escuro */
  --pt-cat-1: #23B0A2;
  --pt-cat-2: #8886DA;
  --pt-cat-3: #45C7BB;
  --pt-cat-4: #9C98E0;
  --pt-cat-5: #45C58C;
  --pt-cat-6: #EBB53A;
  --pt-cat-7: #ED85AC;
  --pt-cat-8: #3EC0D6;

  --pt-medsched: #23B0A2;
  --pt-medsafe:  #8886DA;
  --pt-medlife:  #46C58C;

  --pt-elevation-low:  0 1px 2px rgba(0,0,0,0.40);
  --pt-elevation-med:  0 1px 3px rgba(0,0,0,0.50), 0 1px 2px -1px rgba(0,0,0,0.40);
  --pt-elevation-high: 0 12px 28px rgba(0,0,0,0.55), 0 8px 10px -6px rgba(0,0,0,0.5);
}

/* ============================================================================
   TYPOGRAPHY HELPERS (apply the scale)
   ============================================================================ */
.pt-display-lg { font: var(--pt-weight-bold) 57px/1.05 var(--pt-font-sans); letter-spacing: -1.2px; }
.pt-display-md { font: var(--pt-weight-bold) 45px/1.10 var(--pt-font-sans); letter-spacing: -0.7px; }
.pt-display-sm { font: var(--pt-weight-semibold) 36px/1.15 var(--pt-font-sans); letter-spacing: -0.4px; }
.pt-h1 { font: var(--pt-weight-semibold) 32px/1.20 var(--pt-font-sans); letter-spacing: -0.4px; }
.pt-h2 { font: var(--pt-weight-semibold) 28px/1.25 var(--pt-font-sans); letter-spacing: -0.2px; }
.pt-h3 { font: var(--pt-weight-semibold) 24px/1.30 var(--pt-font-sans); letter-spacing: -0.1px; }
.pt-h4 { font: var(--pt-weight-medium) 20px/1.35 var(--pt-font-sans); letter-spacing: 0; }
.pt-h5 { font: var(--pt-weight-medium) 18px/1.40 var(--pt-font-sans); letter-spacing: 0; }
.pt-h6 { font: var(--pt-weight-semibold) 16px/1.45 var(--pt-font-sans); letter-spacing: 0.1px; }
.pt-body-lg { font: var(--pt-weight-regular) 16px/1.55 var(--pt-font-sans); letter-spacing: 0.1px; }
.pt-body-md { font: var(--pt-weight-regular) 14px/1.55 var(--pt-font-sans); letter-spacing: 0.1px; }
.pt-body-sm { font: var(--pt-weight-regular) 13px/1.50 var(--pt-font-sans); letter-spacing: 0.1px; }
.pt-caption { font: var(--pt-weight-regular) 12px/1.40 var(--pt-font-sans); letter-spacing: 0.2px; }
.pt-overline { font: var(--pt-weight-semibold) 11px/1.30 var(--pt-font-sans); letter-spacing: 1px; text-transform: uppercase; }
.pt-button-text { font: var(--pt-weight-semibold) 14px/1 var(--pt-font-sans); letter-spacing: 0.2px; }

/* Base reset usable in cards/mockups */
.pt-root {
  font-family: var(--pt-font-sans);
  color: var(--pt-text-primary);
  background: var(--pt-background);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
