/* ================================================================
   AKME DESIGN SYSTEM 2026 — CSS PURO
   Arquivo unico, autossuficiente, 100% classes, zero frameworks.

   Absorve tokens do DS V2 (foundation + akme-tokens)
   Qualidade visual inspirada no flightsim.to

   Uso:
   <link rel="stylesheet" href="akme.css">
   <html class="akme-dark">  <!-- ou sem classe para light -->

   Fontes necessarias (Google Fonts ou local):
   - Inter (400, 500, 600, 700)
   - JetBrains Mono (400, 500, 700)
   ================================================================ */


/* ================================================================
   SECAO 1 — DESIGN TOKENS
   ================================================================ */

:root {
  /* ── SURFACE (light) ──────────────────────────────────── */
  --a-bg:              #ffffff;
  --a-surface:         #f8fafc;          /* slate-50 */
  --a-surface-raised:  #f1f5f9;          /* slate-100 */
  --a-surface-hover:   #e2e8f0;          /* slate-200 */
  --a-surface-active:  #cbd5e1;          /* slate-300 */

  /* ── TEXT (light) ─────────────────────────────────────── */
  --a-text:            #0f172a;          /* slate-900 */
  --a-text-secondary:  #475569;          /* slate-600 */
  --a-text-muted:      #94a3b8;          /* slate-400 */
  --a-text-disabled:   #cbd5e1;          /* slate-300 */
  --a-text-inverse:    #f8fafc;          /* slate-50 */

  /* ── BORDERS (light) ──────────────────────────────────── */
  --a-border:          #e2e8f0;          /* slate-200 */
  --a-border-subtle:   #f1f5f9;          /* slate-100 */
  --a-border-strong:   #cbd5e1;          /* slate-300 */

  /* ── PRIMARY (blue) ───────────────────────────────────── */
  --a-primary:         #3b82f6;          /* blue-500 */
  --a-primary-hover:   #2563eb;          /* blue-600 */
  --a-primary-active:  #1d4ed8;          /* blue-700 */
  --a-primary-soft:    rgba(59, 130, 246, 0.1);
  --a-primary-text:    #2563eb;          /* blue-600 light / blue-400 dark */
  --a-primary-fg:      #ffffff;

  /* ── ACCENT (indigo) ──────────────────────────────────── */
  --a-accent:          #818cf8;          /* indigo-400 */
  --a-accent-hover:    #6366f1;          /* indigo-500 */
  --a-accent-soft:     rgba(129, 140, 248, 0.1);

  /* ── SEMANTIC ─────────────────────────────────────────── */
  --a-success:         #10b981;          /* emerald-500 */
  --a-success-soft:    rgba(16, 185, 129, 0.1);
  --a-success-text:    #059669;          /* emerald-600 */

  --a-warning:         #f59e0b;          /* amber-500 */
  --a-warning-soft:    rgba(245, 158, 11, 0.1);
  --a-warning-text:    #d97706;          /* amber-600 */

  --a-error:           #ef4444;          /* red-500 */
  --a-error-soft:      rgba(239, 68, 68, 0.1);
  --a-error-text:      #dc2626;          /* red-600 */

  --a-info:            #06b6d4;          /* cyan-500 */
  --a-info-soft:       rgba(6, 182, 212, 0.1);
  --a-info-text:       #0891b2;          /* cyan-600 */

  --a-star:            #f59e0b;          /* amber-500 */

  /* ── TYPOGRAPHY ───────────────────────────────────────── */
  --a-font:            'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --a-font-mono:       'JetBrains Mono', 'Consolas', 'Courier New', monospace;

  --a-text-xs:         0.75rem;          /* 12px */
  --a-text-sm:         0.875rem;         /* 14px */
  --a-text-base:       1rem;             /* 16px */
  --a-text-lg:         1.125rem;         /* 18px */
  --a-text-xl:         1.25rem;          /* 20px */
  --a-text-2xl:        1.5rem;           /* 24px */
  --a-text-3xl:        2rem;             /* 32px */
  --a-text-4xl:        2.5rem;           /* 40px */
  --a-text-5xl:        3rem;             /* 48px */

  --a-weight-normal:   400;
  --a-weight-medium:   500;
  --a-weight-semi:     600;
  --a-weight-bold:     700;

  --a-leading-none:    1;
  --a-leading-tight:   1.25;
  --a-leading-normal:  1.5;
  --a-leading-relaxed: 1.75;

  --a-tracking-tight:  -0.02em;
  --a-tracking-normal: 0;
  --a-tracking-wide:   0.05em;
  --a-tracking-widest: 0.1em;

  /* ── SPACING (4px grid) ───────────────────────────────── */
  --a-space-0:   0;
  --a-space-px:  1px;
  --a-space-0-5: 0.125rem;    /* 2px */
  --a-space-1:   0.25rem;     /* 4px */
  --a-space-1-5: 0.375rem;    /* 6px */
  --a-space-2:   0.5rem;      /* 8px */
  --a-space-3:   0.75rem;     /* 12px */
  --a-space-4:   1rem;        /* 16px */
  --a-space-5:   1.25rem;     /* 20px */
  --a-space-6:   1.5rem;      /* 24px */
  --a-space-8:   2rem;        /* 32px */
  --a-space-10:  2.5rem;      /* 40px */
  --a-space-12:  3rem;        /* 48px */
  --a-space-16:  4rem;        /* 64px */
  --a-space-20:  5rem;        /* 80px */
  --a-space-24:  6rem;        /* 96px */

  /* ── RADIUS ───────────────────────────────────────────── */
  --a-radius-none: 0;
  --a-radius-sm:   2px;
  --a-radius-md:   4px;
  --a-radius-lg:   6px;
  --a-radius-xl:   8px;
  --a-radius-2xl:  12px;
  --a-radius-full: 9999px;

  /* ── SHADOWS (light) ──────────────────────────────────── */
  --a-shadow-sm:         0 1px 3px rgba(0, 0, 0, 0.06);
  --a-shadow-md:         0 4px 12px rgba(0, 0, 0, 0.08);
  --a-shadow-lg:         0 8px 24px rgba(0, 0, 0, 0.10);
  --a-shadow-xl:         0 12px 36px rgba(0, 0, 0, 0.12);
  --a-shadow-card:       0 4px 20px -4px rgba(0, 0, 0, 0.08);
  --a-shadow-card-hover: 0 8px 30px -4px rgba(59, 130, 246, 0.12);
  --a-shadow-glow:       0 0 40px -10px rgba(59, 130, 246, 0.3);

  /* ── TRANSITIONS ──────────────────────────────────────── */
  --a-transition-fast:   150ms cubic-bezier(.4, 0, .2, 1);
  --a-transition-normal: 300ms cubic-bezier(.4, 0, .2, 1);
  --a-transition-slow:   500ms cubic-bezier(.4, 0, .2, 1);

  /* ── Z-INDEX ──────────────────────────────────────────── */
  --a-z-base:     0;
  --a-z-dropdown: 100;
  --a-z-sticky:   200;
  --a-z-modal:    300;
  --a-z-popover:  400;
  --a-z-tooltip:  500;
  --a-z-alert:    600;

  /* ── TOUCH TARGETS ────────────────────────────────────── */
  --a-touch-min:         44px;
  --a-touch-comfortable: 48px;
  --a-touch-large:       60px;

  /* ── LAYOUT ───────────────────────────────────────────── */
  --a-max-page:    1600px;
  --a-max-content: 1280px;
  --a-max-narrow:  768px;
  --a-nav-height:  64px;

  /* ── GRADIENTS (light) ────────────────────────────────── */
  --a-gradient-primary:  linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);
  --a-gradient-hero:     linear-gradient(135deg, #f8fafc 0%, #eff6ff 50%, #e0e7ff 100%);
  --a-gradient-card:     linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
  --a-gradient-glow:     radial-gradient(ellipse at center, rgba(59, 130, 246, 0.06) 0%, transparent 70%);
}

/* ── DARK THEME ─────────────────────────────────────────── */

.akme-dark {
  --a-bg:              #020617;          /* slate-950 */
  --a-surface:         #0f172a;          /* slate-900 */
  --a-surface-raised:  #1e293b;          /* slate-800 */
  --a-surface-hover:   #334155;          /* slate-700 */
  --a-surface-active:  #475569;          /* slate-600 */

  --a-text:            #f8fafc;          /* slate-50 */
  --a-text-secondary:  #94a3b8;          /* slate-400 */
  --a-text-muted:      #64748b;          /* slate-500 */
  --a-text-disabled:   #475569;          /* slate-600 */
  --a-text-inverse:    #020617;

  --a-border:          #334155;          /* slate-700 */
  --a-border-subtle:   #1e293b;          /* slate-800 */
  --a-border-strong:   #475569;          /* slate-600 */

  --a-primary-text:    #60a5fa;          /* blue-400 */
  --a-success-text:    #34d399;          /* emerald-400 */
  --a-warning-text:    #fbbf24;          /* amber-400 */
  --a-error-text:      #f87171;          /* red-400 */
  --a-info-text:       #22d3ee;          /* cyan-400 */
  --a-star:            #fbbf24;          /* amber-400 */

  --a-shadow-sm:         0 1px 3px rgba(0, 0, 0, 0.4);
  --a-shadow-md:         0 4px 12px rgba(0, 0, 0, 0.5);
  --a-shadow-lg:         0 8px 24px rgba(0, 0, 0, 0.5);
  --a-shadow-xl:         0 12px 36px rgba(0, 0, 0, 0.5);
  --a-shadow-card:       0 4px 20px -4px rgba(0, 0, 0, 0.4);
  --a-shadow-card-hover: 0 8px 30px -4px rgba(59, 130, 246, 0.2);
  --a-shadow-glow:       0 0 40px -10px rgba(59, 130, 246, 0.5);

  --a-gradient-primary:  linear-gradient(135deg, #3b82f6 0%, #818cf8 100%);
  --a-gradient-hero:     linear-gradient(135deg, #020617 0%, #0f172a 50%, #172554 100%);
  --a-gradient-card:     linear-gradient(180deg, #0f172a 0%, #020617 100%);
  --a-gradient-glow:     radial-gradient(ellipse at center, rgba(59, 130, 246, 0.12) 0%, transparent 70%);
}

/* Auto dark via OS preference */
@media (prefers-color-scheme: dark) {
  :root:not(.akme-light) {
    --a-bg:              #020617;
    --a-surface:         #0f172a;
    --a-surface-raised:  #1e293b;
    --a-surface-hover:   #334155;
    --a-surface-active:  #475569;
    --a-text:            #f8fafc;
    --a-text-secondary:  #94a3b8;
    --a-text-muted:      #64748b;
    --a-text-disabled:   #475569;
    --a-text-inverse:    #020617;
    --a-border:          #334155;
    --a-border-subtle:   #1e293b;
    --a-border-strong:   #475569;
    --a-primary-text:    #60a5fa;
    --a-success-text:    #34d399;
    --a-warning-text:    #fbbf24;
    --a-error-text:      #f87171;
    --a-info-text:       #22d3ee;
    --a-star:            #fbbf24;
    --a-shadow-sm:         0 1px 3px rgba(0, 0, 0, 0.4);
    --a-shadow-md:         0 4px 12px rgba(0, 0, 0, 0.5);
    --a-shadow-lg:         0 8px 24px rgba(0, 0, 0, 0.5);
    --a-shadow-xl:         0 12px 36px rgba(0, 0, 0, 0.5);
    --a-shadow-card:       0 4px 20px -4px rgba(0, 0, 0, 0.4);
    --a-shadow-card-hover: 0 8px 30px -4px rgba(59, 130, 246, 0.2);
    --a-shadow-glow:       0 0 40px -10px rgba(59, 130, 246, 0.5);
    --a-gradient-primary:  linear-gradient(135deg, #3b82f6 0%, #818cf8 100%);
    --a-gradient-hero:     linear-gradient(135deg, #020617 0%, #0f172a 50%, #172554 100%);
    --a-gradient-card:     linear-gradient(180deg, #0f172a 0%, #020617 100%);
    --a-gradient-glow:     radial-gradient(ellipse at center, rgba(59, 130, 246, 0.12) 0%, transparent 70%);
  }
}


/* ================================================================
   SECAO 2 — RESET (tudo via classes, ZERO element selectors)
   ================================================================ */

.akme-reset,
.akme-reset *,
.akme-reset *::before,
.akme-reset *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.akme-html {
  background-color: var(--a-bg);
  color: var(--a-text);
  font-family: var(--a-font);
  font-size: 16px;
  line-height: var(--a-leading-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

.akme-body {
  background-color: var(--a-bg);
  color: var(--a-text);
  min-height: 100vh;
}


/* ================================================================
   SECAO 3 — SCROLLBAR
   ================================================================ */

.akme-scrollbar::-webkit-scrollbar { width: 8px; height: 8px; }
.akme-scrollbar::-webkit-scrollbar-track { background: var(--a-bg); }
.akme-scrollbar::-webkit-scrollbar-thumb { background: var(--a-surface-hover); border-radius: 4px; }
.akme-scrollbar::-webkit-scrollbar-thumb:hover { background: var(--a-text-muted); }


/* ================================================================
   SECAO 4 — TIPOGRAFIA (classes)
   ================================================================ */

.a-font-sans  { font-family: var(--a-font); }
.a-font-mono  { font-family: var(--a-font-mono); }

.a-text-xs    { font-size: var(--a-text-xs);  line-height: 1rem; }
.a-text-sm    { font-size: var(--a-text-sm);  line-height: 1.25rem; }
.a-text-base  { font-size: var(--a-text-base); line-height: 1.5rem; }
.a-text-lg    { font-size: var(--a-text-lg);  line-height: 1.75rem; }
.a-text-xl    { font-size: var(--a-text-xl);  line-height: 1.75rem; }
.a-text-2xl   { font-size: var(--a-text-2xl); line-height: 2rem; }
.a-text-3xl   { font-size: var(--a-text-3xl); line-height: 2.25rem; }
.a-text-4xl   { font-size: var(--a-text-4xl); line-height: 2.5rem; }
.a-text-5xl   { font-size: var(--a-text-5xl); line-height: 1.1; }

.a-weight-normal  { font-weight: var(--a-weight-normal); }
.a-weight-medium  { font-weight: var(--a-weight-medium); }
.a-weight-semi    { font-weight: var(--a-weight-semi); }
.a-weight-bold    { font-weight: var(--a-weight-bold); }

.a-leading-none    { line-height: var(--a-leading-none); }
.a-leading-tight   { line-height: var(--a-leading-tight); }
.a-leading-normal  { line-height: var(--a-leading-normal); }
.a-leading-relaxed { line-height: var(--a-leading-relaxed); }

.a-tracking-tight  { letter-spacing: var(--a-tracking-tight); }
.a-tracking-normal { letter-spacing: var(--a-tracking-normal); }
.a-tracking-wide   { letter-spacing: var(--a-tracking-wide); }
.a-tracking-widest { letter-spacing: var(--a-tracking-widest); }

/* Text colors */
.a-color-text       { color: var(--a-text); }
.a-color-secondary  { color: var(--a-text-secondary); }
.a-color-muted      { color: var(--a-text-muted); }
.a-color-primary    { color: var(--a-primary-text); }
.a-color-accent     { color: var(--a-accent); }
.a-color-success    { color: var(--a-success-text); }
.a-color-warning    { color: var(--a-warning-text); }
.a-color-error      { color: var(--a-error-text); }
.a-color-info       { color: var(--a-info-text); }
.a-color-star       { color: var(--a-star); }
.a-color-inverse    { color: var(--a-text-inverse); }

/* Text utilities */
.a-uppercase  { text-transform: uppercase; }
.a-lowercase  { text-transform: lowercase; }
.a-capitalize { text-transform: capitalize; }
.a-underline  { text-decoration: underline; }
.a-no-underline { text-decoration: none; }
.a-truncate   { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.a-nowrap     { white-space: nowrap; }
.a-text-center { text-align: center; }
.a-text-left   { text-align: left; }
.a-text-right  { text-align: right; }

.a-line-clamp-1 { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.a-line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.a-line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* Compostos: label / value / unit (padrao DS V2) */
.a-label {
  font-size: var(--a-text-xs);
  font-weight: var(--a-weight-medium);
  color: var(--a-text-muted);
  text-transform: uppercase;
  letter-spacing: var(--a-tracking-widest);
}

.a-value {
  font-family: var(--a-font-mono);
  font-size: var(--a-text-2xl);
  font-weight: var(--a-weight-bold);
  color: var(--a-text);
  line-height: var(--a-leading-none);
}

.a-unit {
  font-size: var(--a-text-sm);
  color: var(--a-info-text);
}


/* ================================================================
   SECAO 5 — LAYOUT
   ================================================================ */

/* Display */
.a-hidden       { display: none; }
.a-block        { display: block; }
.a-inline-block { display: inline-block; }
.a-inline       { display: inline; }
.a-flex         { display: flex; }
.a-inline-flex  { display: inline-flex; }
.a-grid         { display: grid; }

/* Flex */
.a-flex-col     { flex-direction: column; }
.a-flex-row     { flex-direction: row; }
.a-flex-wrap    { flex-wrap: wrap; }
.a-flex-1       { flex: 1 1 0%; }
.a-flex-auto    { flex: 1 1 auto; }
.a-flex-none    { flex: none; }
.a-shrink-0     { flex-shrink: 0; }
.a-grow-0       { flex-grow: 0; }

/* Alignment */
.a-items-center   { align-items: center; }
.a-items-start    { align-items: flex-start; }
.a-items-end      { align-items: flex-end; }
.a-items-stretch  { align-items: stretch; }
.a-items-baseline { align-items: baseline; }

.a-justify-center  { justify-content: center; }
.a-justify-between { justify-content: space-between; }
.a-justify-start   { justify-content: flex-start; }
.a-justify-end     { justify-content: flex-end; }
.a-justify-around  { justify-content: space-around; }

.a-self-center { align-self: center; }
.a-self-start  { align-self: flex-start; }
.a-self-end    { align-self: flex-end; }

/* Gap */
.a-gap-0   { gap: 0; }
.a-gap-1   { gap: var(--a-space-1); }
.a-gap-1-5 { gap: var(--a-space-1-5); }
.a-gap-2   { gap: var(--a-space-2); }
.a-gap-3   { gap: var(--a-space-3); }
.a-gap-4   { gap: var(--a-space-4); }
.a-gap-5   { gap: var(--a-space-5); }
.a-gap-6   { gap: var(--a-space-6); }
.a-gap-8   { gap: var(--a-space-8); }
.a-gap-10  { gap: var(--a-space-10); }
.a-gap-12  { gap: var(--a-space-12); }

/* Grid columns */
.a-cols-1  { grid-template-columns: repeat(1, 1fr); }
.a-cols-2  { grid-template-columns: repeat(2, 1fr); }
.a-cols-3  { grid-template-columns: repeat(3, 1fr); }
.a-cols-4  { grid-template-columns: repeat(4, 1fr); }
.a-cols-5  { grid-template-columns: repeat(5, 1fr); }
.a-cols-6  { grid-template-columns: repeat(6, 1fr); }
.a-cols-12 { grid-template-columns: repeat(12, 1fr); }
.a-col-span-2  { grid-column: span 2; }
.a-col-span-3  { grid-column: span 3; }
.a-col-span-4  { grid-column: span 4; }
.a-col-span-6  { grid-column: span 6; }
.a-col-span-full { grid-column: 1 / -1; }

/* Position */
.a-relative { position: relative; }
.a-absolute { position: absolute; }
.a-fixed    { position: fixed; }
.a-sticky   { position: sticky; }
.a-inset-0  { inset: 0; }
.a-top-0    { top: 0; }
.a-right-0  { right: 0; }
.a-bottom-0 { bottom: 0; }
.a-left-0   { left: 0; }

/* Z-index */
.a-z-base     { z-index: var(--a-z-base); }
.a-z-dropdown { z-index: var(--a-z-dropdown); }
.a-z-sticky   { z-index: var(--a-z-sticky); }
.a-z-modal    { z-index: var(--a-z-modal); }
.a-z-popover  { z-index: var(--a-z-popover); }
.a-z-tooltip  { z-index: var(--a-z-tooltip); }
.a-z-alert    { z-index: var(--a-z-alert); }

/* Width / Height */
.a-w-full     { width: 100%; }
.a-w-auto     { width: auto; }
.a-h-full     { height: 100%; }
.a-h-screen   { height: 100vh; }
.a-min-h-screen { min-height: 100vh; }
.a-max-w-page    { max-width: var(--a-max-page); }
.a-max-w-content { max-width: var(--a-max-content); }
.a-max-w-narrow  { max-width: var(--a-max-narrow); }

/* Overflow */
.a-overflow-hidden { overflow: hidden; }
.a-overflow-auto   { overflow: auto; }
.a-overflow-x-auto { overflow-x: auto; }
.a-overflow-y-auto { overflow-y: auto; }

/* Containers */
.a-container {
  width: 100%;
  max-width: var(--a-max-page);
  margin-inline: auto;
  padding-inline: var(--a-space-6);
}

.a-container-content {
  width: 100%;
  max-width: var(--a-max-content);
  margin-inline: auto;
  padding-inline: var(--a-space-6);
}

.a-container-full {
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--a-space-6);
}

.a-container-narrow {
  width: 100%;
  max-width: var(--a-max-narrow);
  margin-inline: auto;
  padding-inline: var(--a-space-6);
}

/* Aspect Ratios */
.a-aspect-video  { aspect-ratio: 16 / 9; }
.a-aspect-square { aspect-ratio: 1 / 1; }
.a-aspect-4-3    { aspect-ratio: 4 / 3; }

/* Object fit */
.a-object-cover   { object-fit: cover; }
.a-object-contain { object-fit: contain; }


/* ================================================================
   SECAO 6 — SPACING (margin + padding)
   ================================================================ */

/* Padding */
.a-p-0   { padding: 0; }
.a-p-1   { padding: var(--a-space-1); }
.a-p-2   { padding: var(--a-space-2); }
.a-p-3   { padding: var(--a-space-3); }
.a-p-4   { padding: var(--a-space-4); }
.a-p-5   { padding: var(--a-space-5); }
.a-p-6   { padding: var(--a-space-6); }
.a-p-8   { padding: var(--a-space-8); }
.a-p-10  { padding: var(--a-space-10); }
.a-p-12  { padding: var(--a-space-12); }

.a-px-0  { padding-inline: 0; }
.a-px-1  { padding-inline: var(--a-space-1); }
.a-px-2  { padding-inline: var(--a-space-2); }
.a-px-3  { padding-inline: var(--a-space-3); }
.a-px-4  { padding-inline: var(--a-space-4); }
.a-px-6  { padding-inline: var(--a-space-6); }
.a-px-8  { padding-inline: var(--a-space-8); }

.a-py-0  { padding-block: 0; }
.a-py-1  { padding-block: var(--a-space-1); }
.a-py-2  { padding-block: var(--a-space-2); }
.a-py-3  { padding-block: var(--a-space-3); }
.a-py-4  { padding-block: var(--a-space-4); }
.a-py-6  { padding-block: var(--a-space-6); }
.a-py-8  { padding-block: var(--a-space-8); }
.a-py-10 { padding-block: var(--a-space-10); }
.a-py-12 { padding-block: var(--a-space-12); }
.a-py-16 { padding-block: var(--a-space-16); }
.a-py-20 { padding-block: var(--a-space-20); }
.a-py-24 { padding-block: var(--a-space-24); }

.a-pt-0  { padding-top: 0; }
.a-pt-2  { padding-top: var(--a-space-2); }
.a-pt-4  { padding-top: var(--a-space-4); }
.a-pt-6  { padding-top: var(--a-space-6); }
.a-pt-8  { padding-top: var(--a-space-8); }
.a-pt-20 { padding-top: var(--a-space-20); }

.a-pb-0  { padding-bottom: 0; }
.a-pb-2  { padding-bottom: var(--a-space-2); }
.a-pb-4  { padding-bottom: var(--a-space-4); }
.a-pb-6  { padding-bottom: var(--a-space-6); }
.a-pb-8  { padding-bottom: var(--a-space-8); }

/* Margin */
.a-m-0    { margin: 0; }
.a-m-auto { margin: auto; }
.a-mx-auto { margin-inline: auto; }

.a-mt-0  { margin-top: 0; }
.a-mt-1  { margin-top: var(--a-space-1); }
.a-mt-2  { margin-top: var(--a-space-2); }
.a-mt-3  { margin-top: var(--a-space-3); }
.a-mt-4  { margin-top: var(--a-space-4); }
.a-mt-6  { margin-top: var(--a-space-6); }
.a-mt-8  { margin-top: var(--a-space-8); }
.a-mt-10 { margin-top: var(--a-space-10); }
.a-mt-12 { margin-top: var(--a-space-12); }

.a-mb-0  { margin-bottom: 0; }
.a-mb-1  { margin-bottom: var(--a-space-1); }
.a-mb-2  { margin-bottom: var(--a-space-2); }
.a-mb-3  { margin-bottom: var(--a-space-3); }
.a-mb-4  { margin-bottom: var(--a-space-4); }
.a-mb-6  { margin-bottom: var(--a-space-6); }
.a-mb-8  { margin-bottom: var(--a-space-8); }
.a-mb-10 { margin-bottom: var(--a-space-10); }

.a-ml-auto { margin-left: auto; }
.a-mr-auto { margin-right: auto; }


/* ================================================================
   SECAO 7 — BACKGROUNDS / BORDERS / DECORATIVO
   ================================================================ */

/* Backgrounds */
.a-bg          { background-color: var(--a-bg); }
.a-bg-surface  { background-color: var(--a-surface); }
.a-bg-raised   { background-color: var(--a-surface-raised); }
.a-bg-hover    { background-color: var(--a-surface-hover); }
.a-bg-primary  { background-color: var(--a-primary); }
.a-bg-primary-soft { background-color: var(--a-primary-soft); }
.a-bg-accent-soft  { background-color: var(--a-accent-soft); }
.a-bg-success-soft { background-color: var(--a-success-soft); }
.a-bg-warning-soft { background-color: var(--a-warning-soft); }
.a-bg-error-soft   { background-color: var(--a-error-soft); }
.a-bg-info-soft    { background-color: var(--a-info-soft); }
.a-bg-transparent  { background-color: transparent; }

/* Gradients */
.a-bg-gradient-primary { background: var(--a-gradient-primary); }
.a-bg-gradient-hero    { background: var(--a-gradient-hero); }
.a-bg-gradient-card    { background: var(--a-gradient-card); }
.a-bg-gradient-glow    { background: var(--a-gradient-glow); }

/* Borders */
.a-border        { border: 1px solid var(--a-border); }
.a-border-subtle { border: 1px solid var(--a-border-subtle); }
.a-border-strong { border: 1px solid var(--a-border-strong); }
.a-border-t      { border-top: 1px solid var(--a-border); }
.a-border-b      { border-bottom: 1px solid var(--a-border); }
.a-border-l      { border-left: 1px solid var(--a-border); }
.a-border-r      { border-right: 1px solid var(--a-border); }
.a-border-none   { border: none; }
.a-border-primary { border-color: var(--a-primary); }

/* Radius */
.a-rounded-none { border-radius: var(--a-radius-none); }
.a-rounded-sm   { border-radius: var(--a-radius-sm); }
.a-rounded-md   { border-radius: var(--a-radius-md); }
.a-rounded-lg   { border-radius: var(--a-radius-lg); }
.a-rounded-xl   { border-radius: var(--a-radius-xl); }
.a-rounded-2xl  { border-radius: var(--a-radius-2xl); }
.a-rounded-full { border-radius: var(--a-radius-full); }

/* Shadow */
.a-shadow-sm   { box-shadow: var(--a-shadow-sm); }
.a-shadow-md   { box-shadow: var(--a-shadow-md); }
.a-shadow-lg   { box-shadow: var(--a-shadow-lg); }
.a-shadow-xl   { box-shadow: var(--a-shadow-xl); }
.a-shadow-card { box-shadow: var(--a-shadow-card); }
.a-shadow-glow { box-shadow: var(--a-shadow-glow); }
.a-shadow-none { box-shadow: none; }

/* Opacity */
.a-opacity-0   { opacity: 0; }
.a-opacity-30  { opacity: 0.3; }
.a-opacity-50  { opacity: 0.5; }
.a-opacity-70  { opacity: 0.7; }
.a-opacity-100 { opacity: 1; }

/* Misc */
.a-pointer       { cursor: pointer; }
.a-cursor-default { cursor: default; }
.a-no-pointer    { pointer-events: none; }
.a-select-none   { user-select: none; }
.a-transition    { transition: all var(--a-transition-normal); }
.a-transition-fast { transition: all var(--a-transition-fast); }
.a-transition-slow { transition: all var(--a-transition-slow); }

/* SR only */
.a-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}


/* ================================================================
   SECAO 8 — COMPONENTES
   ================================================================ */

/* ── 8.1 NAVBAR ─────────────────────────────────────────── */

.a-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: var(--a-z-sticky);
  height: var(--a-nav-height);
  background: color-mix(in srgb, var(--a-bg) 85%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--a-border-subtle);
  display: flex;
  align-items: center;
  padding-inline: var(--a-space-6);
}

.a-nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: var(--a-max-page);
  margin-inline: auto;
}

.a-nav-brand {
  display: flex;
  align-items: center;
  gap: var(--a-space-3);
  font-size: var(--a-text-lg);
  font-weight: var(--a-weight-bold);
  color: var(--a-text);
  text-decoration: none;
}

.a-nav-brand-img {
  height: 32px;
  width: auto;
}

.a-nav-links {
  display: flex;
  align-items: center;
  gap: var(--a-space-1);
}

.a-nav-link {
  display: flex;
  align-items: center;
  gap: var(--a-space-2);
  padding: var(--a-space-2) var(--a-space-3);
  font-size: var(--a-text-sm);
  font-weight: var(--a-weight-medium);
  color: var(--a-text-secondary);
  text-decoration: none;
  border-radius: var(--a-radius-lg);
  transition: color var(--a-transition-fast), background var(--a-transition-fast);
}

.a-nav-link:hover {
  color: var(--a-text);
  background: var(--a-surface-hover);
}

.a-nav-link-active {
  color: var(--a-primary-text);
  background: var(--a-primary-soft);
}

.a-nav-actions {
  display: flex;
  align-items: center;
  gap: var(--a-space-2);
}

/* Mobile menu toggle */
.a-nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  color: var(--a-text);
  cursor: pointer;
  border-radius: var(--a-radius-lg);
}

.a-nav-toggle:hover {
  background: var(--a-surface-hover);
}

/* Dropdown menu (navbar) */
.a-nav-dropdown {
  position: relative;
}

.a-nav-dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: var(--a-surface);
  border: 1px solid var(--a-border);
  border-radius: var(--a-radius-xl);
  box-shadow: var(--a-shadow-lg);
  padding: var(--a-space-2);
  z-index: var(--a-z-dropdown);
  opacity: 0;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity var(--a-transition-fast), transform var(--a-transition-fast);
}

.a-nav-dropdown:hover .a-nav-dropdown-menu,
.a-nav-dropdown-menu.a-active {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.a-nav-dropdown-item {
  display: flex;
  align-items: center;
  gap: var(--a-space-3);
  padding: var(--a-space-2) var(--a-space-3);
  font-size: var(--a-text-sm);
  color: var(--a-text-secondary);
  text-decoration: none;
  border-radius: var(--a-radius-lg);
  transition: color var(--a-transition-fast), background var(--a-transition-fast);
}

.a-nav-dropdown-item:hover {
  color: var(--a-text);
  background: var(--a-surface-hover);
}


/* ── 8.2 BOTOES ─────────────────────────────────────────── */

.a-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--a-space-2);
  padding: var(--a-space-2) var(--a-space-4);
  font-family: var(--a-font);
  font-size: var(--a-text-sm);
  font-weight: var(--a-weight-semi);
  border: 1px solid transparent;
  border-radius: var(--a-radius-lg);
  cursor: pointer;
  transition: all var(--a-transition-fast);
  white-space: nowrap;
  user-select: none;
  min-height: var(--a-touch-min);
  text-decoration: none;
  line-height: 1;
}

.a-btn:disabled, .a-btn-disabled {
  opacity: var(--a-opacity-disabled, 0.5);
  pointer-events: none;
}

.a-btn-primary {
  background: var(--a-gradient-primary);
  color: var(--a-primary-fg);
  border-color: var(--a-primary);
}

.a-btn-primary:hover {
  background: var(--a-primary-hover);
  box-shadow: var(--a-shadow-glow);
}

.a-btn-secondary {
  background: transparent;
  color: var(--a-text);
  border-color: var(--a-border);
}

.a-btn-secondary:hover {
  background: var(--a-surface-hover);
  border-color: var(--a-border-strong);
}

.a-btn-ghost {
  background: transparent;
  color: var(--a-text-secondary);
  border: none;
}

.a-btn-ghost:hover {
  background: var(--a-surface-hover);
  color: var(--a-text);
}

.a-btn-outline-primary {
  background: transparent;
  color: var(--a-primary-text);
  border-color: var(--a-primary);
}

.a-btn-outline-primary:hover {
  background: var(--a-primary-soft);
}

.a-btn-destructive {
  background: var(--a-error);
  color: white;
  border-color: var(--a-error);
}

.a-btn-destructive:hover {
  filter: brightness(1.1);
}

/* Sizes */
.a-btn-sm {
  padding: var(--a-space-1) var(--a-space-3);
  font-size: var(--a-text-xs);
  min-height: 32px;
}

.a-btn-lg {
  padding: var(--a-space-3) var(--a-space-6);
  font-size: var(--a-text-base);
  min-height: var(--a-touch-comfortable);
}

.a-btn-icon {
  padding: var(--a-space-2);
  width: var(--a-touch-min);
  height: var(--a-touch-min);
}

.a-btn-icon-sm {
  padding: var(--a-space-1);
  width: 32px;
  height: 32px;
  min-height: 32px;
}

.a-btn-full { width: 100%; }


/* ── 8.3 CARD ───────────────────────────────────────────── */

.a-card {
  background: var(--a-gradient-card);
  border: 1px solid var(--a-border-subtle);
  border-radius: var(--a-radius-xl);
  box-shadow: var(--a-shadow-card);
  overflow: hidden;
  transition: box-shadow var(--a-transition-normal), border-color var(--a-transition-normal), transform var(--a-transition-normal);
}

.a-card-hover:hover {
  box-shadow: var(--a-shadow-card-hover);
  border-color: rgba(59, 130, 246, 0.3);
  transform: translateY(-2px);
}

.a-card-body {
  padding: var(--a-space-6);
}

.a-card-body-sm {
  padding: var(--a-space-4);
}

.a-card-footer {
  padding: var(--a-space-3) var(--a-space-6);
  border-top: 1px solid var(--a-border-subtle);
}

.a-card-header-text {
  font-size: var(--a-text-lg);
  font-weight: var(--a-weight-semi);
  color: var(--a-text);
}

.a-card-body-text {
  font-size: var(--a-text-sm);
  color: var(--a-text-secondary);
  line-height: var(--a-leading-relaxed);
}

/* Card thumbnail (imagem com zoom hover) */
.a-card-thumb {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--a-surface-hover);
}

.a-card-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--a-transition-slow);
}

.a-card-hover:hover .a-card-thumb-img {
  transform: scale(1.08);
}

/* Card title que muda de cor no hover */
.a-card-title {
  font-size: var(--a-text-base);
  font-weight: var(--a-weight-semi);
  color: var(--a-text);
  line-height: var(--a-leading-tight);
  transition: color var(--a-transition-fast);
}

.a-card-hover:hover .a-card-title {
  color: var(--a-primary-text);
}

.a-card-subtitle {
  font-size: var(--a-text-sm);
  color: var(--a-text-muted);
}

.a-card-meta {
  display: flex;
  align-items: center;
  gap: var(--a-space-3);
  font-size: var(--a-text-xs);
  color: var(--a-text-muted);
}

.a-card-meta-item {
  display: flex;
  align-items: center;
  gap: var(--a-space-1);
}

/* Card horizontal (tipo flightsim.to search results) */
.a-card-horizontal {
  display: flex;
}

.a-card-horizontal .a-card-thumb {
  width: 280px;
  min-width: 280px;
  aspect-ratio: auto;
}

.a-card-horizontal .a-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}


/* ── 8.4 BADGE ──────────────────────────────────────────── */

.a-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--a-space-1);
  padding: var(--a-space-0-5) var(--a-space-2);
  font-size: var(--a-text-xs);
  font-weight: var(--a-weight-semi);
  border-radius: var(--a-radius-full);
  white-space: nowrap;
}

.a-badge-primary  { background: var(--a-primary-soft); color: var(--a-primary-text); }
.a-badge-accent   { background: var(--a-accent-soft);  color: var(--a-accent); }
.a-badge-success  { background: var(--a-success-soft); color: var(--a-success-text); }
.a-badge-warning  { background: var(--a-warning-soft); color: var(--a-warning-text); }
.a-badge-error    { background: var(--a-error-soft);   color: var(--a-error-text); }
.a-badge-info     { background: var(--a-info-soft);    color: var(--a-info-text); }
.a-badge-muted    { background: var(--a-surface-hover); color: var(--a-text-muted); }

/* Badge posicionado no card */
.a-badge-float {
  position: absolute;
  top: var(--a-space-2);
  left: var(--a-space-2);
  z-index: 2;
}

.a-badge-float-right {
  position: absolute;
  top: var(--a-space-2);
  right: var(--a-space-2);
  z-index: 2;
}


/* ── 8.5 RATING / STARS ─────────────────────────────────── */

.a-rating {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.a-rating-star       { color: var(--a-star); font-size: var(--a-text-sm); }
.a-rating-star-empty { color: var(--a-surface-hover); font-size: var(--a-text-sm); }
.a-rating-value      { font-size: var(--a-text-xs); font-weight: var(--a-weight-bold); color: var(--a-star); margin-left: var(--a-space-1); }
.a-rating-count      { font-size: var(--a-text-xs); color: var(--a-text-muted); margin-left: 2px; }


/* ── 8.6 INPUT / FORM ───────────────────────────────────── */

.a-input {
  width: 100%;
  background: var(--a-surface);
  color: var(--a-text);
  border: 1px solid var(--a-border);
  border-radius: var(--a-radius-lg);
  padding: var(--a-space-2) var(--a-space-3);
  font-family: var(--a-font);
  font-size: var(--a-text-sm);
  min-height: var(--a-touch-min);
  transition: border-color var(--a-transition-fast), box-shadow var(--a-transition-fast);
}

.a-input:focus {
  outline: none;
  border-color: var(--a-primary);
  box-shadow: 0 0 0 3px var(--a-primary-soft);
}

.a-input::placeholder { color: var(--a-text-muted); }

.a-input:disabled {
  background: var(--a-surface-raised);
  color: var(--a-text-disabled);
  cursor: not-allowed;
  opacity: 0.6;
}

.a-input-readonly {
  background: var(--a-surface-raised);
  border-color: var(--a-border-subtle);
  color: var(--a-text-secondary);
  cursor: default;
}

.a-textarea {
  resize: vertical;
  min-height: 100px;
}

.a-input-label {
  display: block;
  font-size: var(--a-text-sm);
  font-weight: var(--a-weight-medium);
  color: var(--a-text);
  margin-bottom: var(--a-space-1-5);
}

.a-input-hint {
  font-size: var(--a-text-xs);
  color: var(--a-text-muted);
  margin-top: var(--a-space-1);
}

.a-input-error {
  border-color: var(--a-error);
}

.a-input-error:focus {
  box-shadow: 0 0 0 3px var(--a-error-soft);
}

.a-input-error-text {
  font-size: var(--a-text-xs);
  color: var(--a-error-text);
  margin-top: var(--a-space-1);
}

/* Select */
.a-select {
  appearance: none;
  background: var(--a-surface);
  color: var(--a-text);
  border: 1px solid var(--a-border);
  border-radius: var(--a-radius-lg);
  padding: var(--a-space-2) var(--a-space-8) var(--a-space-2) var(--a-space-3);
  font-family: var(--a-font);
  font-size: var(--a-text-sm);
  min-height: var(--a-touch-min);
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  transition: border-color var(--a-transition-fast);
}

.a-select:focus {
  outline: none;
  border-color: var(--a-primary);
  box-shadow: 0 0 0 3px var(--a-primary-soft);
}

/* Checkbox / Radio visual */
.a-checkbox {
  width: 18px;
  height: 18px;
  accent-color: var(--a-primary);
  cursor: pointer;
}


/* ── 8.7 SEARCH BAR ─────────────────────────────────────── */

.a-search {
  display: flex;
  align-items: center;
  gap: var(--a-space-3);
  background: var(--a-surface);
  border: 1px solid var(--a-border);
  border-radius: var(--a-radius-xl);
  padding: var(--a-space-3) var(--a-space-4);
  transition: border-color var(--a-transition-fast), box-shadow var(--a-transition-fast);
}

.a-search:focus-within {
  border-color: var(--a-primary);
  box-shadow: 0 0 0 3px var(--a-primary-soft);
}

.a-search-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--a-text);
  font-family: var(--a-font);
  font-size: var(--a-text-sm);
}

.a-search-input::placeholder {
  color: var(--a-text-muted);
}

.a-search-icon {
  color: var(--a-text-muted);
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

/* Search hero (barra grande centralizada) */
.a-search-hero {
  padding: var(--a-space-12) 0 var(--a-space-8);
  background: var(--a-gradient-glow);
  text-align: center;
}

.a-search-hero-title {
  font-size: var(--a-text-3xl);
  font-weight: var(--a-weight-bold);
  color: var(--a-text);
  margin-bottom: var(--a-space-2);
}

.a-search-hero-subtitle {
  font-size: var(--a-text-base);
  color: var(--a-text-secondary);
  margin-bottom: var(--a-space-6);
}


/* ── 8.8 FILTERS ────────────────────────────────────────── */

.a-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--a-space-1-5);
  padding: var(--a-space-1-5) var(--a-space-3);
  font-size: var(--a-text-sm);
  font-weight: var(--a-weight-medium);
  background: var(--a-surface);
  color: var(--a-text-secondary);
  border: 1px solid var(--a-border);
  border-radius: var(--a-radius-full);
  cursor: pointer;
  transition: all var(--a-transition-fast);
}

.a-filter-chip:hover {
  background: var(--a-surface-hover);
  border-color: var(--a-primary);
}

.a-filter-chip-active {
  background: var(--a-primary-soft);
  border-color: var(--a-primary);
  color: var(--a-primary-text);
}

.a-filter-count {
  font-size: var(--a-text-xs);
  color: var(--a-text-muted);
  font-weight: var(--a-weight-semi);
}

/* Filter sidebar */
.a-filter-group {
  margin-bottom: var(--a-space-6);
}

.a-filter-group-title {
  font-size: var(--a-text-xs);
  font-weight: var(--a-weight-semi);
  text-transform: uppercase;
  letter-spacing: var(--a-tracking-widest);
  color: var(--a-text-muted);
  margin-bottom: var(--a-space-3);
}

.a-filter-option {
  display: flex;
  align-items: center;
  gap: var(--a-space-2);
  padding: var(--a-space-1-5) 0;
  font-size: var(--a-text-sm);
  color: var(--a-text-secondary);
  cursor: pointer;
  transition: color var(--a-transition-fast);
}

.a-filter-option:hover {
  color: var(--a-primary-text);
}


/* ── 8.9 TABS ───────────────────────────────────────────── */

.a-tabs {
  display: flex;
  border-bottom: 1px solid var(--a-border);
  gap: 0;
}

.a-tab {
  padding: var(--a-space-3) var(--a-space-5);
  font-size: var(--a-text-sm);
  font-weight: var(--a-weight-medium);
  color: var(--a-text-muted);
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color var(--a-transition-fast), border-color var(--a-transition-fast);
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
  font-family: var(--a-font);
}

.a-tab:hover {
  color: var(--a-text);
}

.a-tab-active {
  color: var(--a-primary-text);
  border-bottom-color: var(--a-primary);
}


/* ── 8.10 TABLE ─────────────────────────────────────────── */

.a-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--a-text-sm);
}

.a-table-head {
  text-align: left;
  padding: var(--a-space-3) var(--a-space-4);
  font-size: var(--a-text-xs);
  font-weight: var(--a-weight-semi);
  color: var(--a-text-muted);
  text-transform: uppercase;
  letter-spacing: var(--a-tracking-wide);
  border-bottom: 1px solid var(--a-border);
  background: var(--a-surface);
}

.a-table-cell {
  padding: var(--a-space-3) var(--a-space-4);
  border-bottom: 1px solid var(--a-border-subtle);
  color: var(--a-text-secondary);
}

.a-table-row:hover .a-table-cell {
  background: var(--a-surface);
}


/* ── 8.11 PAGINATION ────────────────────────────────────── */

.a-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--a-space-1);
  padding: var(--a-space-8) 0;
}

.a-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 var(--a-space-2);
  font-size: var(--a-text-sm);
  font-weight: var(--a-weight-medium);
  color: var(--a-text-muted);
  background: transparent;
  border: 1px solid var(--a-border);
  border-radius: var(--a-radius-lg);
  cursor: pointer;
  font-family: var(--a-font);
  transition: all var(--a-transition-fast);
}

.a-page-btn:hover {
  background: var(--a-surface-hover);
  color: var(--a-text);
}

.a-page-btn-active {
  background: var(--a-primary);
  color: var(--a-primary-fg);
  border-color: var(--a-primary);
}

.a-page-btn:disabled {
  opacity: 0.4;
  pointer-events: none;
}


/* ── 8.12 AVATAR ────────────────────────────────────────── */

.a-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--a-radius-full);
  overflow: hidden;
  background: var(--a-surface-hover);
  flex-shrink: 0;
}

.a-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.a-avatar-sm  { width: 24px; height: 24px; }
.a-avatar-lg  { width: 48px; height: 48px; }
.a-avatar-xl  { width: 64px; height: 64px; }


/* ── 8.13 TAG ───────────────────────────────────────────── */

.a-tag {
  display: inline-flex;
  align-items: center;
  gap: var(--a-space-1);
  padding: 3px var(--a-space-2);
  font-size: var(--a-text-xs);
  font-weight: var(--a-weight-medium);
  background: var(--a-surface-hover);
  color: var(--a-text-muted);
  border-radius: var(--a-radius-md);
  transition: background var(--a-transition-fast), color var(--a-transition-fast);
}

.a-tag:hover {
  background: var(--a-primary-soft);
  color: var(--a-primary-text);
}


/* ── 8.14 STAT ──────────────────────────────────────────── */

.a-stat { text-align: center; }

.a-stat-value {
  font-family: var(--a-font-mono);
  font-size: var(--a-text-3xl);
  font-weight: var(--a-weight-bold);
  color: var(--a-text);
  line-height: var(--a-leading-none);
}

.a-stat-label {
  font-size: var(--a-text-xs);
  color: var(--a-text-muted);
  text-transform: uppercase;
  letter-spacing: var(--a-tracking-widest);
  margin-top: var(--a-space-1);
}


/* ── 8.15 PROGRESS ──────────────────────────────────────── */

.a-progress {
  width: 100%;
  height: 6px;
  background: var(--a-surface-hover);
  border-radius: var(--a-radius-full);
  overflow: hidden;
}

.a-progress-bar {
  height: 100%;
  background: var(--a-gradient-primary);
  border-radius: var(--a-radius-full);
  transition: width var(--a-transition-slow);
}


/* ── 8.16 DIVIDER ───────────────────────────────────────── */

.a-divider {
  border: none;
  border-top: 1px solid var(--a-border);
  margin: var(--a-space-6) 0;
}

.a-divider-subtle {
  border-color: var(--a-border-subtle);
}


/* ── 8.17 ACCORDION ─────────────────────────────────────── */

.a-accordion-item {
  border-bottom: 1px solid var(--a-border-subtle);
}

.a-accordion-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--a-space-4) 0;
  font-size: var(--a-text-sm);
  font-weight: var(--a-weight-medium);
  color: var(--a-text);
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: var(--a-font);
  transition: color var(--a-transition-fast);
}

.a-accordion-trigger:hover {
  color: var(--a-primary-text);
}

.a-accordion-content {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.2s ease-out;
}

.a-accordion-open .a-accordion-content {
  max-height: 2000px;
}

.a-accordion-arrow {
  transition: transform var(--a-transition-fast);
}

.a-accordion-open .a-accordion-arrow {
  transform: rotate(180deg);
}


/* ── 8.18 SIDEBAR ───────────────────────────────────────── */

.a-sidebar {
  width: 240px;
  min-width: 240px;
  background: var(--a-surface);
  border-right: 1px solid var(--a-border-subtle);
  padding: var(--a-space-3) var(--a-space-2);
  overflow-y: auto;
}

.a-sidebar-title {
  font-size: var(--a-text-xs);
  font-weight: var(--a-weight-semi);
  text-transform: uppercase;
  letter-spacing: var(--a-tracking-widest);
  color: var(--a-text-muted);
  padding: var(--a-space-2) var(--a-space-3);
}

.a-sidebar-link {
  display: flex;
  align-items: center;
  gap: var(--a-space-3);
  padding: var(--a-space-2) var(--a-space-3);
  font-size: var(--a-text-sm);
  color: var(--a-text-secondary);
  text-decoration: none;
  border-radius: var(--a-radius-lg);
  transition: color var(--a-transition-fast), background var(--a-transition-fast);
}

.a-sidebar-link:hover {
  color: var(--a-text);
  background: var(--a-surface-hover);
}

.a-sidebar-link-active {
  color: var(--a-primary-text);
  background: var(--a-primary-soft);
}

/* Layout: sidebar + main area side by side */
.a-layout {
  display: flex;
  min-height: calc(100vh - 56px);
}

.a-layout-main {
  flex: 1;
  min-width: 0;
  padding: var(--a-space-6) var(--a-space-8);
}

/* Sidebar submenu (collapsible group) */
.a-sidebar-group {}

.a-sidebar-group-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--a-space-2) var(--a-space-3);
  font-size: var(--a-text-sm);
  font-weight: var(--a-weight-medium);
  color: var(--a-text);
  background: none;
  border: none;
  border-radius: var(--a-radius-lg);
  cursor: pointer;
  transition: background var(--a-transition-fast);
}

.a-sidebar-group-trigger:hover {
  background: var(--a-surface-hover);
}

.a-sidebar-group-trigger svg {
  transition: transform var(--a-transition-fast);
}

.a-sidebar-group.a-open .a-sidebar-group-trigger svg {
  transform: rotate(180deg);
}

.a-sidebar-group-items {
  display: none;
  padding-left: var(--a-space-4);
}

.a-sidebar-group.a-open .a-sidebar-group-items {
  display: block;
}

.a-sidebar-sublink {
  display: flex;
  align-items: center;
  gap: var(--a-space-2);
  padding: 3px var(--a-space-3);
  font-size: var(--a-text-xs);
  color: var(--a-text-muted);
  text-decoration: none;
  border-radius: var(--a-radius);
  white-space: nowrap;
  transition: color var(--a-transition-fast), background var(--a-transition-fast);
}

.a-sidebar-sublink:hover {
  color: var(--a-text);
  background: var(--a-surface-hover);
}

.a-sidebar-sublink-active {
  color: var(--a-primary-text);
}


/* ── 8.19 TOAST ─────────────────────────────────────────── */

.a-toast {
  display: flex;
  align-items: flex-start;
  gap: var(--a-space-3);
  padding: var(--a-space-4);
  background: var(--a-surface);
  border: 1px solid var(--a-border);
  border-radius: var(--a-radius-xl);
  box-shadow: var(--a-shadow-lg);
  max-width: 420px;
  animation: a-toast-in 0.3s ease-out;
}

@keyframes a-toast-in {
  from { opacity: 0; transform: translateY(1rem); }
  to   { opacity: 1; transform: translateY(0); }
}


/* ── 8.20 MODAL ─────────────────────────────────────────── */

.a-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
  z-index: var(--a-z-modal);
  animation: a-fade-in 0.2s ease-out;
}

@keyframes a-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.a-modal {
  position: fixed;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  background: var(--a-surface);
  border: 1px solid var(--a-border);
  border-radius: var(--a-radius-2xl);
  box-shadow: var(--a-shadow-xl);
  z-index: var(--a-z-modal);
  max-width: 32rem;
  width: 90%;
  animation: a-modal-in 0.2s ease-out;
}

@keyframes a-modal-in {
  from { opacity: 0; transform: translate(-50%, -50%) scale(0.95); }
  to   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

.a-modal-header { padding: var(--a-space-6) var(--a-space-6) 0; }
.a-modal-body   { padding: var(--a-space-4) var(--a-space-6); }
.a-modal-footer { padding: 0 var(--a-space-6) var(--a-space-6); display: flex; justify-content: flex-end; gap: var(--a-space-2); }


/* ── 8.21 SWITCH ────────────────────────────────────────── */

.a-switch {
  position: relative;
  width: 44px;
  height: 24px;
  background: var(--a-surface-hover);
  border-radius: var(--a-radius-full);
  cursor: pointer;
  transition: background var(--a-transition-fast);
}

.a-switch::after {
  content: '';
  position: absolute;
  top: 2px; left: 2px;
  width: 20px; height: 20px;
  background: white;
  border-radius: var(--a-radius-full);
  transition: transform var(--a-transition-fast);
}

.a-switch-on {
  background: var(--a-primary);
}

.a-switch-on::after {
  transform: translateX(20px);
}


/* ── 8.22 TOOLTIP ───────────────────────────────────────── */

.a-tooltip { position: relative; }

.a-tooltip::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  padding: var(--a-space-1-5) var(--a-space-3);
  font-size: var(--a-text-xs);
  font-weight: var(--a-weight-medium);
  white-space: nowrap;
  background: var(--a-text);
  color: var(--a-bg);
  border-radius: var(--a-radius-lg);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--a-transition-fast);
  z-index: var(--a-z-tooltip);
}

.a-tooltip:hover::after {
  opacity: 1;
}


/* ── 8.23 SKELETON ──────────────────────────────────────── */

.a-skeleton {
  background: var(--a-surface-hover);
  border-radius: var(--a-radius-md);
  animation: a-pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
}

.a-skeleton-text   { height: 12px; margin-bottom: var(--a-space-2); }
.a-skeleton-title  { height: 20px; width: 70%; margin-bottom: var(--a-space-3); }
.a-skeleton-image  { aspect-ratio: 16 / 9; border-radius: var(--a-radius-xl) var(--a-radius-xl) 0 0; }
.a-skeleton-avatar { width: 32px; height: 32px; border-radius: var(--a-radius-full); }


/* ── 8.24 BREADCRUMB ────────────────────────────────────── */

.a-breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--a-space-2);
  font-size: var(--a-text-sm);
  color: var(--a-text-muted);
}

.a-breadcrumb-link {
  color: var(--a-text-secondary);
  text-decoration: none;
  transition: color var(--a-transition-fast);
}

.a-breadcrumb-link:hover {
  color: var(--a-primary-text);
}

.a-breadcrumb-sep {
  color: var(--a-text-disabled);
}

.a-breadcrumb-current {
  color: var(--a-text);
  font-weight: var(--a-weight-medium);
}


/* ── 8.25 FOOTER ────────────────────────────────────────── */

.a-footer {
  border-top: 1px solid var(--a-border);
  padding: var(--a-space-6) 0 var(--a-space-4);
  color: var(--a-text-secondary);
  font-size: var(--a-text-xs);
}

.a-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: var(--a-space-6);
  margin-bottom: var(--a-space-4);
}

.a-footer-desc {
  color: var(--a-text-muted);
  font-size: var(--a-text-xs);
  line-height: var(--a-leading-normal);
  margin-bottom: var(--a-space-3);
  max-width: 300px;
}

.a-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--a-space-4);
  padding-top: var(--a-space-4);
  border-top: 1px solid var(--a-border-subtle);
  font-size: var(--a-text-xs);
  color: var(--a-text-muted);
}

.a-footer-title {
  font-size: var(--a-text-xs);
  font-weight: var(--a-weight-semi);
  color: var(--a-text);
  margin-bottom: var(--a-space-2);
  text-transform: uppercase;
  letter-spacing: var(--a-tracking-wide);
}

.a-footer-link {
  display: block;
  padding: 2px 0;
  color: var(--a-text-muted);
  text-decoration: none;
  font-size: var(--a-text-xs);
  transition: color var(--a-transition-fast);
}

.a-footer-link:hover {
  color: var(--a-primary-text);
}

.a-footer-social {
  display: flex;
  gap: var(--a-space-3);
}

.a-footer-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--a-radius-lg);
  color: var(--a-text-muted);
  transition: color var(--a-transition-fast), background var(--a-transition-fast);
}

.a-footer-social-link:hover {
  color: var(--a-text);
  background: var(--a-surface-hover);
}


/* ================================================================
   SECAO 9 — GRID DE RESULTADOS (LOJA / BLOG / BUSCA)
   ================================================================ */

.a-grid-results {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--a-space-6);
}

.a-grid-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--a-space-6);
}

/* Toolbar (sort, view toggle, result count) */
.a-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--a-space-4);
  padding: var(--a-space-3) 0;
  border-bottom: 1px solid var(--a-border);
  margin-bottom: var(--a-space-6);
}

.a-result-count {
  font-size: var(--a-text-sm);
  color: var(--a-text-muted);
}

.a-result-count-strong {
  color: var(--a-text);
  font-weight: var(--a-weight-semi);
}


/* ================================================================
   SECAO 10 — ANIMACOES
   ================================================================ */

@keyframes a-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.5; }
}

@keyframes a-spin {
  to { transform: rotate(360deg); }
}

@keyframes a-ping {
  75%, 100% { transform: scale(2); opacity: 0; }
}

.a-animate-pulse { animation: a-pulse 2s cubic-bezier(.4, 0, .6, 1) infinite; }
.a-animate-spin  { animation: a-spin 1s linear infinite; }
.a-animate-ping  { animation: a-ping 1s cubic-bezier(0, 0, .2, 1) infinite; }


/* ================================================================
   SECAO 11 — RESPONSIVO
   ================================================================ */

/* sm: 640px */
@media (min-width: 640px) {
  .sm-hidden      { display: none; }
  .sm-block       { display: block; }
  .sm-flex        { display: flex; }
  .sm-flex-row    { flex-direction: row; }
  .sm-cols-2      { grid-template-columns: repeat(2, 1fr); }
  .sm-text-left   { text-align: left; }
}

/* md: 768px */
@media (min-width: 768px) {
  .md-hidden      { display: none; }
  .md-block       { display: block; }
  .md-flex        { display: flex; }
  .md-flex-row    { flex-direction: row; }
  .md-cols-2      { grid-template-columns: repeat(2, 1fr); }
  .md-cols-3      { grid-template-columns: repeat(3, 1fr); }
  .md-gap-6       { gap: var(--a-space-6); }
  .md-gap-8       { gap: var(--a-space-8); }
  .md-px-8        { padding-inline: var(--a-space-8); }
  .md-text-3xl    { font-size: var(--a-text-3xl); }
  .md-text-4xl    { font-size: var(--a-text-4xl); }

  .a-grid-cards    { grid-template-columns: repeat(2, 1fr); }
  .a-nav-toggle    { display: none; }
}

/* lg: 1024px */
@media (min-width: 1024px) {
  .lg-hidden      { display: none; }
  .lg-block       { display: block; }
  .lg-flex        { display: flex; }
  .lg-flex-row    { flex-direction: row; }
  .lg-cols-3      { grid-template-columns: repeat(3, 1fr); }
  .lg-cols-4      { grid-template-columns: repeat(4, 1fr); }
  .lg-gap-8       { gap: var(--a-space-8); }

  .a-grid-cards   { grid-template-columns: repeat(3, 1fr); }
}

/* xl: 1400px */
@media (min-width: 1400px) {
  .xl-hidden      { display: none; }
  .xl-block       { display: block; }
  .xl-cols-4      { grid-template-columns: repeat(4, 1fr); }
  .xl-cols-5      { grid-template-columns: repeat(5, 1fr); }

  .a-grid-cards   { grid-template-columns: repeat(4, 1fr); }
}

/* Mobile: nav-links hidden, toggle visible */
@media (max-width: 767px) {
  .a-nav-links    { display: none; }
  .a-nav-toggle   { display: flex; }
  .a-sidebar      { display: none; }
  .a-footer-grid  { grid-template-columns: 1fr 1fr; gap: var(--a-space-4); }
  .a-card-horizontal { flex-direction: column; }
  .a-card-horizontal .a-card-thumb { width: 100%; min-width: auto; aspect-ratio: 16 / 9; }
}


/* ================================================================
   SECAO 12 — PRINT
   ================================================================ */

@media print {
  .a-nav, .a-sidebar, .a-pagination, .a-footer { display: none !important; }
  .a-card { box-shadow: none; border: 1px solid #ccc; break-inside: avoid; }
}


/* ================================================================
   SECAO 13 — ACESSIBILIDADE
   ================================================================ */

@media (prefers-reduced-motion: reduce) {
  :root {
    --a-transition-fast:   0ms;
    --a-transition-normal: 0ms;
    --a-transition-slow:   0ms;
  }
  .a-card-thumb-img { transition: none; }
}

@media (prefers-contrast: more) {
  :root {
    --a-border:          #666666;
    --a-text-secondary:  #ffffff;
    --a-text-muted:      #aaaaaa;
  }
}

/* Focus visible para teclado */
.a-btn:focus-visible,
.a-nav-link:focus-visible,
.a-tab:focus-visible,
.a-page-btn:focus-visible,
.a-sidebar-link:focus-visible,
.a-filter-chip:focus-visible {
  outline: 2px solid var(--a-primary);
  outline-offset: 2px;
}
