/* ============================================ PRF Design System — Tokens Versão 1.1 (2026) Manual de Identidade Visual da PRF ============================================ */ :root { /* — Cores institucionais oficiais (alinhadas ao MIV 7.0, Caderno 05 pág. 189) — */ --prf-azul: #000D4B; /* Azul-marinho VIBRANTE / Pantone 19-4027 TPX */ --prf-amarelo: #FFC900; /* SOL ESPLÊNDIDO / Pantone 14-0852 TPX */ --prf-branco: #FFFFFF; /* Branco / Gelo */ /* — Escala neutra (auxiliar, não institucional) — Atualizada na v1.1: --neutral-50 alterado de #F7F7F8 para #F5F5F5 conforme orientação CGCOM (reduz fadiga visual em uso prolongado). */ --neutral-0: #FFFFFF; --neutral-50: #F5F5F5; /* ← v1.1: era #F7F7F8 */ --neutral-100: #ECEDEF; --neutral-200: #DCDEE3; --neutral-300: #C2C5CD; --neutral-400: #8E94A1; --neutral-500: #5B6373; --neutral-600: #3C4252; --neutral-700: #272B38; --neutral-800: #181B25; --neutral-900: #0B0D14; /* — Tonalidades de azul (variações controladas do azul institucional) — */ --azul-95: #F1F2F8; --azul-90: #DCDFEC; --azul-80: #B5BBD3; --azul-60: #6973A0; --azul-40: #2D3877; --azul-30: #19245F; --azul-20: #0A1656; --azul-10: #000935; /* — Tonalidades de amarelo (destaques e alertas) — */ --amarelo-100: #FFC900; --amarelo-90: #FFD64D; --amarelo-80: #FFE17A; --amarelo-60: #FFEDB0; --amarelo-40: #FFF6D9; --amarelo-20: #FFFCEF; /* — Estados (derivados, para uso em UI) — */ --status-success: #1F7A3A; --status-warning: #B26B00; --status-danger: #B32020; --status-info: #1E4FB2; /* — Tipografia — v1.1: família primária alterada de Fira Sans para Inter, conforme orientação CGCOM (otimização para UI digital). Inter v4.0 é livre (OFL), auto-hospedável e desenhada especificamente para interfaces de tela. */ --font-sans: "Inter", "Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace; /* — Iconografia — v1.1: família oficial: Material Symbols (Google), livre, OFL-equivalente, auto-hospedável. Estilo: Outlined, 24x24, weight 400, grade 0, fill 0. */ --font-icons: "Material Symbols Outlined", system-ui, sans-serif; /* Escala tipografica (modular, base 16) */ --fs-12: 0.75rem; --fs-13: 0.8125rem; --fs-14: 0.875rem; --fs-16: 1rem; --fs-18: 1.125rem; --fs-20: 1.25rem; --fs-24: 1.5rem; --fs-28: 1.75rem; --fs-32: 2rem; --fs-40: 2.5rem; --fs-48: 3rem; --fs-56: 3.5rem; --fs-72: 4.5rem; /* — Espacamento (base 4) — */ --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px; --sp-8: 32px; --sp-10: 40px; --sp-12: 48px; --sp-16: 64px; --sp-20: 80px; --sp-24: 96px; /* — Raios — */ --r-0: 0; --r-2: 2px; --r-4: 4px; --r-6: 6px; --r-8: 8px; --r-pill: 999px; /* — Sombras — institucionais, contidas */ --sh-sm: 0 1px 2px rgba(0, 13, 75, 0.06); --sh-md: 0 2px 8px rgba(0, 13, 75, 0.08), 0 1px 2px rgba(0, 13, 75, 0.04); --sh-lg: 0 8px 28px rgba(0, 13, 75, 0.10), 0 2px 6px rgba(0, 13, 75, 0.05); /* — Aliases semanticos (tema claro) — v1.1: --bg agora aponta para --neutral-50 (#F5F5F5), nao mais para --prf-branco (#FFFFFF). Branco puro fica reservado para superficies elevadas (cards, modais, popovers). */ --bg: var(--neutral-50); /* <- v1.1: era --prf-branco */ --bg-elevated: var(--prf-branco); /* <- v1.1: novo token */ --bg-subtle: var(--neutral-100); --bg-muted: var(--neutral-200); --fg: var(--neutral-900); --fg-muted: var(--neutral-500); --fg-subtle: var(--neutral-400); --border: var(--neutral-200); --border-strong: var(--neutral-300); --accent: var(--prf-azul); --accent-fg: var(--prf-branco); --highlight: var(--prf-amarelo); } [data-theme="dark"] { --bg: #060814; --bg-elevated: #0B0F1F; --bg-subtle: #0B0F1F; --bg-muted: #131830; --fg: #ECEEF5; --fg-muted: #9DA3B5; --fg-subtle: #6A7088; --border: #1F2540; --border-strong: #2D3458; --accent: var(--prf-amarelo); --accent-fg: var(--prf-azul); --highlight: var(--prf-amarelo); } [data-density="compact"] { --sp-4: 12px; --sp-6: 16px; --sp-8: 24px; --sp-10: 32px; --sp-12: 36px; --sp-16: 48px; --sp-20: 60px; --sp-24: 72px; } [data-density="spacious"] { --sp-4: 20px; --sp-6: 32px; --sp-8: 44px; --sp-10: 56px; --sp-12: 64px; --sp-16: 88px; --sp-20: 112px; --sp-24: 144px; } /* — Variantes de typeface (opcional, para experimentacao) — v1.1: padrao e Inter; Fira Sans mantida como variante para contextos impressos institucionais. */ [data-typeface="fira"] { --font-sans: "Fira Sans", system-ui, sans-serif; } [data-typeface="ibm-plex"] { --font-sans: "IBM Plex Sans", system-ui, sans-serif; } [data-typeface="archivo"] { --font-sans: "Archivo", system-ui, sans-serif; } [data-typeface="source-sans"] { --font-sans: "Source Sans 3", system-ui, sans-serif; } /* ============================================ Reset + base ============================================ */ *, *::before, *::after { box-sizing: border-box; } html, body { margin: 0; padding: 0; background: var(--bg); color: var(--fg); font-family: var(--font-sans); font-size: var(--fs-16); line-height: 1.5; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "cv02", "cv03", "cv04", "cv11"; /* recursos opentype do Inter */ } h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 700; letter-spacing: -0.01em; color: var(--fg); } p { margin: 0; } code, pre, .mono { font-family: var(--font-mono); } /* — Material Symbols (icone unico, herda currentColor) — */ .material-symbols-outlined { font-family: var(--font-icons); font-weight: normal; font-style: normal; font-size: 24px; line-height: 1; letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap; word-wrap: normal; direction: ltr; -webkit-font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; } /* ============================================ Page-level utilities used in the doc ============================================ */ .shell { max-width: 1280px; margin: 0 auto; padding: 0 var(--sp-10); } .eyebrow { font-family: var(--font-mono); font-size: var(--fs-12); font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--fg-muted); } .section { padding: var(--sp-24) 0; border-top: 1px solid var(--border); } .section-head { display: grid; grid-template-columns: 1fr 2fr; gap: var(--sp-10); margin-bottom: var(--sp-16); align-items: end; } .section-head h2 { font-size: var(--fs-48); line-height: 1.05; letter-spacing: -0.025em; } .section-head .lede { color: var(--fg-muted); font-size: var(--fs-18); line-height: 1.55; max-width: 56ch; } .section-num { font-family: var(--font-mono); font-size: var(--fs-13); letter-spacing: 0.18em; text-transform: uppercase; color: var(--prf-azul); display: flex; align-items: center; gap: var(--sp-3); margin-bottom: var(--sp-3); } [data-theme="dark"] .section-num { color: var(--prf-amarelo); } .rule-yellow { height: 4px; background: var(--prf-amarelo); width: 56px; border: 0; margin: 0 0 var(--sp-6) 0; } @media (max-width: 880px) { .section-head { grid-template-columns: 1fr; } .section-head h2 { font-size: var(--fs-32); } }