/* ==========================================
   DESIGN SYSTEM - Edital Destravado
   ========================================== */

:root {
    /* ==========================================
       DARK MODE - THEME VARIABLES
       ========================================== */

    /* Background Colors */
    --bg-primary: #f8fafb;
    --bg-secondary: #ffffff;
    --bg-tertiary: #f1f5f9;
    --bg-overlay: rgba(0, 0, 0, 0.5);

    /* Text Colors */
    --text-primary: #1e293b;
    --text-secondary: #64748b;
    --text-tertiary: #94a3b8;
    --text-inverse: #ffffff;

    /* Border Colors */
    --border-color: #e2e8f0;
    --border-hover: #cbd5e1;
    --border-focus: #10b981;

    /* Card Styles */
    --card-bg: #ffffff;
    --card-shadow: rgba(0, 0, 0, 0.05);
    --card-hover-shadow: rgba(0, 0, 0, 0.1);

    /* Input Styles */
    --input-bg: #ffffff;
    --input-border: #e2e8f0;
    --input-text: #1e293b;
    --input-placeholder: #94a3b8;

    /* Colors - Green Focus Palette */
    --color-primary: #10b981;
    --color-primary-dark: #059669;
    --color-primary-light: #34d399;
    --color-primary-alpha: rgba(16, 185, 129, 0.1);

    --color-secondary: #6366f1;
    --color-secondary-alpha: rgba(99, 102, 241, 0.1);

    --color-success: #10b981;
    --color-warning: #f59e0b;
    --color-danger: #ef4444;
    --color-info: #3b82f6;

    /* Neutrals */
    --color-white: #ffffff;
    --color-gray-50: #f9fafb;
    --color-gray-100: #f3f4f6;
    --color-gray-200: #e5e7eb;
    --color-gray-300: #d1d5db;
    --color-gray-400: #9ca3af;
    --color-gray-500: #6b7280;
    --color-gray-600: #4b5563;
    --color-gray-700: #374151;
    --color-gray-800: #1f2937;
    --color-gray-900: #111827;

    /* Typography */
    --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    /* Spacing */
    --spacing-xs: 0.5rem;
    --spacing-sm: 0.75rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-2xl: 3rem;
    --spacing-3xl: 4rem;

    /* Border Radius */
    --radius-sm: 0.5rem;
    --radius-md: 0.75rem;
    --radius-lg: 1rem;
    --radius-xl: 1.5rem;
    --radius-full: 9999px;

    /* Shadows */
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    --shadow-glow: 0 0 20px rgba(16, 185, 129, 0.3);

    /* Transitions */
    --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================
   DARK MODE THEME
   ========================================== */

[data-theme="dark"] {
    /* Background Colors */
    --bg-primary: #0f172a;
    --bg-secondary: #1e293b;
    --bg-tertiary: #334155;
    --bg-overlay: rgba(0, 0, 0, 0.7);

    /* Text Colors */
    --text-primary: #f1f5f9;
    --text-secondary: #cbd5e1;
    --text-tertiary: #94a3b8;
    --text-inverse: #0f172a;

    /* Border Colors */
    --border-color: #334155;
    --border-hover: #475569;
    --border-focus: #10b981;

    /* Card Styles */
    --card-bg: #1e293b;
    --card-shadow: rgba(0, 0, 0, 0.3);
    --card-hover-shadow: rgba(0, 0, 0, 0.5);

    /* Input Styles */
    --input-bg: #334155;
    --input-border: #475569;
    --input-text: #f1f5f9;
    --input-placeholder: #64748b;

    /* Adjust gray scale for dark mode */
    --color-gray-50: #1e293b;
    --color-gray-100: #334155;
    --color-gray-200: #475569;
    --color-gray-300: #64748b;
}

/* ==========================================
   DARK MODE - TEXT COLOR OVERRIDES
   ========================================== */

[data-theme="dark"] .card-title,
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .card-subtitle,
[data-theme="dark"] p,
[data-theme="dark"] span:not(.plan-badge):not(.filter-chip):not(.priority-badge) {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .hero-title,
[data-theme="dark"] .onboarding-title {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .hero-subtitle,
[data-theme="dark"] .onboarding-subtitle {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .topic-card h4,
[data-theme="dark"] .topic-name {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .topic-meta,
[data-theme="dark"] .topic-info {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .checklist-item-title {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .checklist-item-date {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .user-name {
    color: var(--text-primary) !important;
}

[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
    background: var(--input-bg) !important;
    color: var(--input-text) !important;
    border-color: var(--input-border) !important;
}

[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .dashboard-header {
    background: var(--bg-secondary) !important;
    border-bottom-color: var(--border-color) !important;
}

[data-theme="dark"] .user-profile {
    background: var(--bg-tertiary) !important;
}

/* Additional Dark Mode Fixes */
[data-theme="dark"] .info-label,
[data-theme="dark"] label,
[data-theme="dark"] .form-label {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .info-value,
[data-theme="dark"] .stat-value,
[data-theme="dark"] .countdown-value {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .header-info-item label,
[data-theme="dark"] .header-info-item span {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .header-info-item .info-value {
    color: var(--text-primary) !important;
    font-weight: 600;
}

[data-theme="dark"] .topic-card,
[data-theme="dark"] .checklist-item {
    background: var(--card-bg) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .topic-card *:not(.priority-badge):not(.filter-chip):not(button),
[data-theme="dark"] .checklist-item * {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .topic-subject,
[data-theme="dark"] .topic-time,
[data-theme="dark"] .topic-weight {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .notes-textarea {
    background: var(--input-bg) !important;
    color: var(--input-text) !important;
    border-color: var(--input-border) !important;
}

[data-theme="dark"] .modal-content {
    background: var(--card-bg) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .modal-title {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .lesson-content,
[data-theme="dark"] .lesson-content p,
[data-theme="dark"] .lesson-content h1,
[data-theme="dark"] .lesson-content h2,
[data-theme="dark"] .lesson-content h3,
[data-theme="dark"] .lesson-content li {
    color: var(--text-primary) !important;
}

/* Comprehensive Dark Mode - Catch All */
[data-theme="dark"] * {
    border-color: var(--border-color);
}

[data-theme="dark"] .exam-info *,
[data-theme="dark"] .header-info *,
[data-theme="dark"] .info-item * {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .cargo-btn,
[data-theme="dark"] #cargo-display-text {
    color: white !important;
}

[data-theme="dark"] .countdown-item *,
[data-theme="dark"] .stat-item * {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .dashboard-card * {
    color: var(--text-primary);
}

[data-theme="dark"] .dashboard-card .card-subtitle,
[data-theme="dark"] .dashboard-card p:not(.card-title) {
    color: var(--text-secondary) !important;
}

/* Force white text on dark backgrounds */
[data-theme="dark"] div[style*="background: #"],
[data-theme="dark"] div[style*="background:#"] {
    color: var(--text-primary) !important;
}

/* ==========================================
   RESET & BASE STYLES
   ========================================== */
/* Prevent FOUC - Hide screens until JS loads */
body.loading .screen {
    display: none !important;
}


/* 1. O PULO DO GATO: O Container que quebra as barreiras */
/* Este código faz a div ignorar a largura do site e pegar a tela toda */
.dashboard-mockup {
    width: 120%;
    max-width: 1702px;
    /* Aumentei um pouco para ficar mais imponente ("Wide") */
    margin: 0 auto 0 auto;
    /* Espaço maior no topo e centralizado horizontalmente */
    position: relative;
    z-index: 1;
    text-align: center;
    /* Garante alinhamento em alguns browsers */
    overflow: hidden;
    /* SEGURANÇA: Impede que a imagem vaze lateralmente */
}



/* A Imagem em si */
.dashboard-mockup {
    display: block;
    /* Transforma em bloco para aceitar margem automática */
    margin: 0 auto;
    /* CENTRALIZAÇÃO FORÇADA da imagem */
    width: 120%;
    margin-left: -145px;
    margin-right: 835px;
    margin-top: -39px;
    /* Ocupa a largura do container pai */
    height: auto;
    /* Mantém a proporção */
    /* Removi o max-width de 900px da imagem para ela poder crescer até o limite do container (1200px) */

    /* Efeito de Fade Out na base */
    mask-image: linear-gradient(to bottom, black 50%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, black 50%, transparent 100%);
    opacity: 0.95;

    /* Pequeno ajuste para a imagem "nascer" de baixo */
    transform: translateY(20px);
}

body.loading::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

/* Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: var(--font-family);
    background: var(--bg-primary);
    color: var(--text-primary);
    line-height: 1.6;
    overflow-x: hidden;
    transition: background-color var(--transition-base), color var(--transition-base);
}

/* ==========================================
   SCREEN MANAGEMENT
   ========================================== */

.screen {
    display: none !important;
    min-height: 100vh;
    opacity: 0;
    transition: opacity var(--transition-slow);
}

.screen.active {
    display: block !important;
    opacity: 1;
    animation: fadeIn var(--transition-slow) ease-in;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =================================================================
   BACKGROUND MESH & GRID (A "Alma" do Design)
   ================================================================= */

#landing-screen {
    position: relative;
    width: 100%;
    min-height: 100vh;

    /* 1. O Gradiente Malha (Azul Celeste -> Laranja Suave) */
    background: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 25%, #fed7aa 60%, #fdba74 100%);

    overflow-x: hidden;
    /* Importante para não vazar rolagem lateral */
    z-index: 0;
}

/* 2. A Textura de Grid (Papel Quadriculado Técnico) */
#landing-screen::before {
    content: '';
    position: absolute;
    inset: 0;
    /* Aumentei levemente a opacidade para 0.08 para ficar visível */
    background-image:
        repeating-linear-gradient(0deg, rgba(30, 58, 138, 0.08) 0px, transparent 1px, transparent 40px, rgba(30, 58, 138, 0.08) 41px),
        repeating-linear-gradient(90deg, rgba(30, 58, 138, 0.08) 0px, transparent 1px, transparent 40px, rgba(30, 58, 138, 0.08) 41px);
    pointer-events: none;
    z-index: 1;
}

/* 3. O Blob (Mancha de Luz) Laranja no Canto Inferior */
#landing-screen::after {
    content: '';
    position: absolute;
    width: 900px;
    height: 900px;
    background: radial-gradient(circle, rgba(251, 146, 60, 0.5) 0%, transparent 70%);
    bottom: -300px;
    right: -200px;
    filter: blur(120px);
    z-index: 0;
    pointer-events: none;
}

/* SEGURANÇA: Garante que os containers filhos não tapem o fundo */
.landing-container {
    background: transparent !important;
    /* Força transparência */
    position: relative;
    z-index: 2;
    /* Garante que o conteúdo fique acima do Grid */
}

/* ==========================================
   LANDING PAGE
   ========================================== */

/* Discrete Hero Section */
.discrete-hero {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0) 0%, rgba(99, 102, 241, 0.1) 100%);
    padding: var(--spacing-lg) 0;
    border-bottom: 1px solid var(--color-gray-200);
}

.discrete-hero-content {
    max-width: 1057px;
    margin: 0 auto;
    padding: 0 var(--spacing-lg);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.discrete-logo {
    height: 75px;
    width: auto;
    transition: transform var(--transition-base);
}

.discrete-logo:hover {
    transform: scale(1.05);
}

.btn-hero-login {
    padding: var(--spacing-sm) var(--spacing-xl);
    background: var(--color-white);
    color: var(--color-primary);
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-full);
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-base);
    font-family: var(--font-family);
}

.btn-hero-login:hover {
    background: var(--color-primary);
    color: var(--color-white);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

@media (max-width: 768px) {
    .discrete-hero-content {
        padding: 0 var(--spacing-md);
    }

    .discrete-logo {
        height: 40px;
    }

    .btn-hero-login {
        padding: var(--spacing-xs) var(--spacing-lg);
        font-size: 0.875rem;
    }
}

/* =================================================================
   CORREÇÃO DE LARGURA (WIDE LAYOUT)
   ================================================================= */

/* 4. Garantia no Container Pai */
.landing-container {
    max-width: 1400px !important;
    /* Garante que o pai deixe os filhos crescerem */
    width: 100%;
    margin: 0 auto;
    padding: 0 24px 99px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* 1. O Container da Seção Hero (Abre o espaço geral) */
.hero-section {
    text-align: center;
    padding: var(--spacing-3xl) 0;
    width: 100%;
    max-width: 1280px !important;
    /* Força bruta para 1280px */
    margin: 0 auto;
    position: relative;
    z-index: 10;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-xs) var(--spacing-md);
    background: var(--color-primary-alpha);
    color: var(--color-primary-dark);
    border-radius: var(--radius-full);
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: var(--spacing-lg);
    animation: float 3s ease-in-out infinite;
}

@keyframes float {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}

/* 2. O Título (Permite que fique em 2 ou 3 linhas no máximo) */
.hero-title {
    font-size: clamp(5.5rem, 5vw, 4rem);
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: var(--spacing-lg);
    letter-spacing: -0.02em;
    color: #1e293b;
    margin-top: -10px;

    /* Aumentado para o título não quebrar tanto */
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

.gradient-text {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* 3. O Subtítulo (Permite frases mais longas) */
.hero-subtitle {
    font-size: 1.5rem;
    color: #64748b;
    line-height: 1.5;
    margin: 0 auto var(--spacing-lg);
    max-width: 900px;
    /* Margem inferior ajustada */

    /* Aumentado de 600px para 900px para ficar mais largo */
    max-width: 900px;
}

/* Upload Zone */
.upload-zone {
    max-width: 600px;
    margin: 0 auto var(--spacing-3xl);
    padding: var(--spacing-3xl);
    background: var(--color-white);
    border: 2px dashed var(--color-gray-300);
    border-radius: var(--radius-xl);
    cursor: pointer;
    transition: all var(--transition-base);
    position: relative;
    overflow: hidden;
}

.upload-zone::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--color-primary-alpha) 0%, var(--color-secondary-alpha) 100%);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.upload-zone:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-glow);
    transform: translateY(-2px);
}

.upload-zone:hover::before {
    opacity: 1;
}

.upload-zone.dragging {
    border-color: var(--color-primary);
    background: var(--color-primary-alpha);
    transform: scale(1.02);
}

.upload-content {
    position: relative;
    z-index: 1;
}

.upload-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--spacing-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary-alpha);
    border-radius: var(--radius-full);
    color: var(--color-primary);
    transition: all var(--transition-base);
}

.upload-zone:hover .upload-icon {
    transform: scale(1.1) rotate(5deg);
}

.upload-content h3 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
    color: var(--color-gray-900);
}

.upload-content p {
    color: var(--color-gray-600);
    margin-bottom: var(--spacing-md);
}

.file-hint {
    display: inline-block;
    padding: var(--spacing-xs) var(--spacing-md);
    background: var(--color-gray-100);
    border-radius: var(--radius-full);
    font-size: 0.875rem;
    color: var(--color-gray-600);
}

/* Upload Progress */
.upload-progress {
    text-align: center;
    position: relative;
    z-index: 1;
}

.upload-progress.hidden {
    display: none;
}

.progress-ring {
    position: relative;
    width: 80px;
    height: 80px;
    margin: 0 auto var(--spacing-lg);
}

.progress-ring svg {
    transform: rotate(-90deg);
}

#progress-circle {
    transition: stroke-dashoffset 0.3s ease;
}

#progress-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-primary);
}

.progress-label {
    color: var(--color-gray-600);
    font-weight: 500;
}

/* Features Grid */
.features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    /* 3 Colunas Fixas */
    gap: 24px;
    max-width: 1000px;
    margin: 44px auto 60px auto;
    position: relative;
    z-index: 50;
    /* Número alto para garantir que fique por cima */
}

/* =================================================================
   AJUSTE DOS CARDS DE BENEFÍCIOS
   ================================================================= */

.feature-card {
    background: white;
    padding: 24px;
    border-radius: 16px;
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    height: 100%;
    /* Garante altura igual */
}

.feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

/* Container para alinhar Ícone + Título na mesma linha */
.feature-header {
    display: flex;
    align-items: center;
    gap: 12px;
    /* Espaço entre ícone e título */
    margin-bottom: 12px;
}

.feature-icon {
    font-size: 1.5rem;
    /* Tamanho do emoji */
    line-height: 1;
    margin: 0;
    /* Remove margens antigas */
}

.feature-card h4 {
    font-size: 1.125rem;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
    /* Remove margens para alinhar com o ícone */
}

.feature-card p {
    color: #64748b;
    font-size: 0.95rem;
    line-height: 1.5;
    margin: 0;
}

/* ==========================================
   UNIFIED FORM (New Design from Reference Image)
   ========================================== */

/* 2. CÁPSULA UNIFICADA (Estilo Pílula Branca) */
.search-capsule {
    background-color: #ffffff;
    border-radius: 100px;
    /* Pílula completa */
    padding: 8px 8px 8px 24px;
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 900px;
    /* Bem larga */
    margin: 55px auto 10px auto;
    box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.1);
    gap: 16px;
    border: 2px solid rgba(0, 0, 0, 0.05);
    border-color: #fff;
    /* Borda sutil */
}

/* 3. INPUT TRANSPARENTE (Sem borda) */
.search-capsule input.input-cargo {
    flex-grow: 1;
    border: !important;
    outline: none !important;
    background: transparent !important;
    font-size: 1.1rem;
    color: #333;
    height: 100%;
    padding: 12px 20px;
    margin: 0;
    box-shadow: none !important;
    font-family: var(--font-family);
    border-radius: 30px;
    border-color: #d4d4d440;
}

/* 4. BOTÃO ANEXAR (Cinza e Redondo) */
@keyframes pulse-soft {
    0% {
        box-shadow: 0 0 0 0 rgba(75, 85, 99, 0.2);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(75, 85, 99, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(75, 85, 99, 0);
    }
}

.btn-attach {
    background: #F3F4F6;
    color: #4B5563;
    border: none;
    border-radius: 30px;
    /* Redondo */
    padding: 12px 20px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.2s ease;
    font-family: var(--font-family);
    font-size: 0.9375rem;
    animation: pulse-soft 2s infinite;
    /* Animação de Pulsar */
}

.btn-attach:hover {
    background: #E5E7EB;
    transform: translateY(-1px);
}

.btn-attach.has-file {
    background: rgba(16, 185, 129, 0.1);
    color: var(--color-success);
}

.btn-attach svg {
    flex-shrink: 0;
}

/* 5. BOTÃO CONTINUAR (Gradiente e Redondo) */
.btn-continue {
    background: linear-gradient(135deg, #FF8C00 0%, #FF5F00 100%);
    color: white;
    font-weight: 700;
    border: none;
    border-radius: 30px;
    /* Redondo */
    padding: 14px 36px;
    cursor: pointer;
    font-size: 1rem;
    box-shadow: 0 10px 20px rgba(255, 140, 0, 0.3);
    transition: all 0.3s ease;
    font-family: var(--font-family);
    white-space: nowrap;
}

.btn-continue:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 15px 30px rgba(255, 140, 0, 0.4);
}

.btn-continue:disabled {
    background: #fc9919;
    cursor: not-allowed;
    opacity: 0.8;
    box-shadow: none;
}

.form-hint {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: 0.875rem;
    color: var(--color-gray-600);
    margin-top: var(--spacing-md);
    justify-content: center;
}

.form-hint {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: 0.875rem;
    color: var(--color-gray-600);
    margin-top: var(--spacing-md);
}

.form-hint svg {
    flex-shrink: 0;
    color: var(--color-primary);
}

.upload-progress-unified {
    max-width: 700px;
    margin: 0 auto var(--spacing-3xl);
    padding: var(--spacing-2xl);
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    text-align: center;
    min-height: 200px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

@keyframes pulse-text {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }
}

.progress-label-unified {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-gray-900);
    margin-top: var(--spacing-lg);
    animation: pulse-text 1.5s infinite ease-in-out;
    /* Added animation */
}

/* ==========================================
   ONBOARDING
   ========================================== */

/* =================================================================
   NOVO ONBOARDING IMERSIVO (Sem Cards)
   ================================================================= */

/* O Container agora é apenas um alinhador invisível */
.onboarding-container {
    position: absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -45%);
    /* Ligeiramente mais para cima */
    width: 100%;
    max-width: 700px;
    /* Mais largo para respirar */
    padding: 20px;
    z-index: 10;

    /* GARANTE QUE NÃO TEM FUNDO BRANCO */
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    backdrop-filter: none !important;
    text-align: center;
}

.onboarding-header {
    text-align: center;
    margin-bottom: var(--spacing-3xl);
}

.step-indicator {
    display: flex;
    gap: var(--spacing-sm);
    justify-content: center;
    margin-bottom: var(--spacing-xl);
}

.step {
    width: 60px;
    height: 4px;
    background: var(--color-gray-200);
    border-radius: var(--radius-full);
    transition: all var(--transition-base);
}

.step.active {
    background: var(--color-primary);
}

/* Títulos Gigantes e Impactantes */
.onboarding-title {
    font-size: 3.1rem;
    /* Bem maior */
    font-weight: 900;
    color: #0f172a;
    /* Azul marinho profundo */
    margin-bottom: 15px;
    /* Sombra branca suave para garantir leitura no fundo colorido */
    text-shadow: 0 4px 20px rgba(255, 255, 255, 0.8);
}

.onboarding-subtitle {
    font-size: 1.2rem;
    color: #334155;
    font-weight: 500;
    max-width: 80%;
    margin: 0 auto 20px auto;
    /* Espaço grande abaixo */
}

.onboarding-form {
    background: transparent !important;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
}

.question-card {
    display: none;
    animation: slideIn var(--transition-base) ease-out;
}

.question-card.active {
    display: block;
}

@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateX(20px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.question-label {
    display: block;
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: var(--spacing-lg);
    color: var(--color-gray-900);
    margin-top: -54px;
}

.modal-form .form-input {
    width: 100%;
}

#modal-attach-label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 280px;
    display: inline-block;
    vertical-align: middle;
}

/* Small Progress Ring for Modal */
.form-input {
    width: 100%;
    padding: var(--spacing-md) var(--spacing-lg);
    font-size: 1rem;
    border: 2px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    transition: all var(--transition-base);
    font-family: var(--font-family);
}

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

/* --- SUPER SLIDER --- */

.slider-container {
    padding: 20px 0;
    position: relative;
}

/* O Trilho (A barra onde corre) */
.slider {
    -webkit-appearance: none;
    width: 100%;
    height: 20px;
    /* Bem mais grossa */
    border-radius: 20px;
    /* Gradiente sutil no trilho */
    background: linear-gradient(to right, #e2e8f0 0%, #cbd5e1 100%);
    outline: none;
    box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.1);
    /* Profundidade interna */
}

/* O Botão de Arrastar (Thumb) - Chrome/Safari */
.slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 45px;
    /* Gigante */
    height: 45px;
    border-radius: 50%;
    background: #10b981;
    /* Verde vibrante */
    cursor: grab;

    /* Borda branca grossa e sombra colorida para parecer que brilha */
    border: 5px solid #ffffff;
    box-shadow:
        0 0 0 4px rgba(16, 185, 129, 0.3),
        /* Halo verde */
        0 10px 25px rgba(16, 185, 129, 0.5);
    /* Sombra de projeção */

    transition: all 0.2s ease;
}

.slider::-webkit-slider-thumb:active {
    cursor: grabbing;
    transform: scale(1.1);
    /* Cresce ao clicar */
    box-shadow:
        0 0 0 8px rgba(16, 185, 129, 0.4),
        0 15px 35px rgba(16, 185, 129, 0.6);
}

/* Firefox */
.slider::-moz-range-thumb {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background: #10b981;
    cursor: grab;
    border: 5px solid #ffffff;
    box-shadow:
        0 0 0 4px rgba(16, 185, 129, 0.3),
        0 10px 25px rgba(16, 185, 129, 0.5);
    transition: all 0.2s ease;
}

.slider::-moz-range-thumb:active {
    cursor: grabbing;
    transform: scale(1.1);
    box-shadow:
        0 0 0 8px rgba(16, 185, 129, 0.4),
        0 15px 35px rgba(16, 185, 129, 0.6);
}

/* O Valor Numérico (Placar) */
.slider-value {
    font-size: 3.2rem;
    /* Enorme */
    font-weight: 900;
    color: #10b981;
    display: block;
    margin-top: 30px;
    font-variant-numeric: tabular-nums;
    text-shadow: 0 5px 15px rgba(16, 185, 129, 0.3);
    /* Brilho verde */
}

/* --- POWER CARDS DE NÍVEL --- */

.level-options {
    display: flex;
    gap: 25px;
    justify-content: center;
    margin-top: 40px;
}

/* O Card Individual */
.level-btn {
    flex: 1;
    background: rgba(255, 255, 255, 0.7);
    /* Vidro fosco branco */
    backdrop-filter: blur(15px);
    border: 3px solid transparent;
    /* Borda invisível por padrão */
    border-radius: 24px;
    padding: 5px 22px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    /* Efeito elástico */
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;

    /* Sombra suave para flutuar */
    box-shadow: 0 15px 35px -10px rgba(0, 0, 0, 0.1);
}

/* Efeito Hover */
.level-btn:hover {
    transform: translateY(-10px);
    /* Sobe bastante */
    background: rgba(255, 255, 255, 0.9);
}

/* --- ESTADO SELECIONADO (O Pulo do Gato) --- */
.level-btn.selected {
    background: #ffffff;
    border-color: #10b981;
    /* Borda verde grossa */

    /* Efeito de "Item Mágico Selecionado" */
    box-shadow:
        0 20px 50px -15px rgba(16, 185, 129, 0.5),
        /* Sombra verde grande */
        0 0 0 5px rgba(16, 185, 129, 0.2);
    /* Halo */

    transform: translateY(-15px) scale(1.05);
    /* Sobe e cresce */
}

/* Ícone */
.level-icon {
    font-size: 3.5rem;
    margin-bottom: 20px;
    filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.15));
    /* Sombra no emoji */
}

/* Texto Forte */
.level-info strong {
    display: block;
    font-size: 1.3rem;
    margin-bottom: 8px;
    color: #1e293b;
    font-weight: 800;
}

/* Texto Secundário */
.level-info small {
    font-size: 0.9rem;
    line-height: 1.4;
    color: #64748b;
    display: block;
}

/* Form Actions */
.form-actions {
    display: flex;
    gap: var(--spacing-md);
    margin-top: var(--spacing-2xl);
}

.btn {
    flex: 1;
    padding: var(--spacing-md) var(--spacing-xl);
    font-size: 1rem;
    font-weight: 600;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-base);
    font-family: var(--font-family);
}

.btn-primary {
    background: var(--color-primary);
    color: var(--color-white);
}

.btn-primary:hover:not(:disabled) {
    background: var(--color-primary-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

.btn-secondary {
    background: var(--color-gray-100);
    color: var(--color-gray-700);
}

.btn-secondary:hover:not(:disabled) {
    background: var(--color-gray-200);
}

.btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.hidden {
    display: none !important;
}

/* ==========================================
   BUILDING PLAN SCREEN (LOADING)
   ========================================== */

.building-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: var(--spacing-lg);
    background: var(--color-white);
}

/* Logo Section */
.brand-logo-container {
    display: flex;
    justify-content: center;
    margin-bottom: var(--spacing-xl);
}

.brand-logo {
    max-width: 280px;
    height: auto;
}

/* Landing Header */
.landing-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-2xl);
    gap: var(--spacing-lg);
}

.logo-container {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--color-gray-900);
}

.logo-highlight {
    color: var(--color-primary);
}

.btn-auth-header {
    padding: var(--spacing-sm) var(--spacing-lg);
    background: transparent;
    border: 2px solid var(--color-primary);
    color: var(--color-primary);
    border-radius: var(--radius-full);
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-base);
    font-family: var(--font-family);
}

.btn-auth-header:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

/* Hero Section */
.hero-section {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.building-content {
    text-align: center;
    max-width: 500px;
    margin: 0 auto;
}

/* Social Proof Section */
.social-proof-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-2xl);
    margin-bottom: var(--spacing-2xl);
}

.avatars-group {
    display: flex;
    justify-content: center;
    align-items: center;
}

.avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 3px solid var(--color-white);
    margin-left: -12px;
    object-fit: cover;
}

.avatar:first-child {
    margin-left: 0;
}

.social-proof-text {
    font-size: 0.9375rem;
    color: var(--color-gray-600);
    text-align: center;
}

/* Trending Section */
.trending-section {
    text-align: center;
    margin-top: var(--spacing-xl);
    padding-top: var(--spacing-xl);
    border-top: 1px solid var(--color-gray-200);
}

.trending-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-gray-900);
    margin-bottom: var(--spacing-md);
}

.trending-tags {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.trending-tag {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-xs) var(--spacing-md);
    background: var(--color-gray-100);
    border-radius: var(--radius-full);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gray-700);
    transition: all var(--transition-base);
}

.trending-tag:hover {
    background: var(--color-gray-200);
    transform: translateY(-1px);
}

.ai-loader {
    position: relative;
    width: 120px;
    height: 120px;
    margin: 0 auto var(--spacing-2xl);
}

.loader-ring {
    position: absolute;
    inset: 0;
    border: 4px solid var(--color-gray-100);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: spin 1.5s linear infinite;
}

.loader-core {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    animation: pulse 2s ease-in-out infinite;
}

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

@keyframes pulse {

    0%,
    100% {
        transform: scale(0.9);
        opacity: 0.8;
    }

    50% {
        transform: scale(1.1);
        opacity: 1;
    }
}

.building-title {
    font-size: 2rem;
    font-weight: 800;
    margin-bottom: var(--spacing-sm);
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.building-subtitle {
    color: var(--color-gray-600);
    font-size: 1.125rem;
    margin-bottom: var(--spacing-2xl);
}

.building-steps {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    text-align: left;
}

.build-step {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md);
    background: var(--color-gray-50);
    border-radius: var(--radius-lg);
    border: 2px solid transparent;
    transition: all var(--transition-base);
    opacity: 0.5;
}

.build-step.active {
    opacity: 1;
    background: var(--color-white);
    border-color: var(--color-primary);
    box-shadow: var(--shadow-lg);
    transform: scale(1.02);
}

.step-icon {
    font-size: 1.5rem;
}

.step-text {
    font-weight: 600;
    color: var(--color-gray-800);
}

/* ==========================================
   DASHBOARD
   ========================================== */

.dashboard-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: var(--spacing-xl) var(--spacing-lg);
    min-height: 100vh;
}

.dashboard-header {
    margin-bottom: var(--spacing-2xl);
}

.header-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-lg);
}

.dashboard-title {
    font-size: 2.5rem;
    font-weight: 900;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1.2;
    margin: 0;
}

.header-actions {
    display: flex;
    gap: var(--spacing-sm);
    align-items: center;
    flex-shrink: 0;
    margin-top: 33px;
}

/* User Profile Section */
.user-profile {
    display: flex;
    align-items: center;
    gap: 42px;
    padding: 8px 16px;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    margin-right: 12px;
}

.user-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--color-primary);
}

.user-name {
    font-weight: 600;
    color: var(--color-text);
    font-size: 14px;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.btn-logout {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-base);
    color: var(--color-text-secondary);
}

.btn-logout:hover {
    background: var(--color-danger-alpha);
    color: var(--color-danger);
}

/* ==========================================
   DARK MODE TOGGLE BUTTON
   ========================================== */

.dark-mode-toggle {
    background: var(--bg-tertiary);
    border: 2px solid var(--border-color);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    color: var(--text-primary);
    margin-left: 8px;
}

.dark-mode-toggle:hover {
    background: var(--color-primary);
    color: white;
    transform: scale(1.1) rotate(15deg);
    border-color: var(--color-primary);
}

.dark-mode-toggle .sun-icon,
.dark-mode-toggle .moon-icon {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.dark-mode-toggle .hidden {
    display: none;
}

.dark-mode-toggle:active {
    transform: scale(0.95);
}

.btn-icon {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-white);
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-base);
    box-shadow: var(--shadow-sm);
}

.btn-icon:hover {
    background: var(--color-primary);
    color: var(--color-white);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn-emergency {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-lg);
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
    border: 2px solid var(--color-warning);
    border-radius: var(--radius-md);
    font-size: 0.875rem;
    font-weight: 700;
    cursor: pointer;
    transition: all var(--transition-base);
    box-shadow: var(--shadow-sm);
    font-family: var(--font-family);
    color: var(--color-gray-900);
    white-space: nowrap;
}

.btn-emergency:hover {
    background: linear-gradient(135deg, #fde68a 0%, #fcd34d 100%);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn-emergency svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.exam-info {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--spacing-lg);
    padding: var(--spacing-xl);
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    margin-top: 36px;
}

.info-item {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.info-label {
    font-size: 0.875rem;
    color: var(--color-gray-600);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.info-value {
    font-size: 2.3rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.countdown {
    color: var(--color-primary);
}

/* Dashboard Grid - Two Row Layout */
.dashboard-grid {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* Top Row: 3-Column Grid */
.dashboard-grid-top {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
}

/* Left Column: Stacked Cards */
.left-column-stack {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* Bottom Row: Full-Width Notes */
.dashboard-grid-bottom {
    width: 100%;
}

.dashboard-grid-bottom .dashboard-card {
    height: auto;
    min-height: 435px;
}


.dashboard-card {
    background: var(--card-bg);
    border-radius: var(--radius-xl);
    padding: var(--spacing-xl);
    box-shadow: 0 4px 6px -1px var(--card-shadow);
    transition: all var(--transition-base);
    height: 1175px;
    /* Fixed height for middle and right columns */
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-color);
}

/* Specific heights for stacked cards in left column */
.left-column-stack .priority-card {
    height: 740px;
    /* ~60% of total height */
}

.left-column-stack .dominio-card {
    height: 410px;
    margin-top: 2rem;
    /* ~40% of total height */
}


.dashboard-card:hover {
    box-shadow: 0 10px 15px -3px var(--card-hover-shadow);
}

.card-header {
    margin-bottom: var(--spacing-lg);
}

.card-title {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: 1.5rem;
    font-weight: 800;
    margin-bottom: var(--spacing-md);
    margin-top: 57px;
}

.title-icon {
    font-size: 1.75rem;
}

/* Priority Filters */
.priority-filters {
    display: flex;
    gap: 4px;
    /* Even smaller gap */
    flex-wrap: wrap;
    margin-top: 22px;
    margin-bottom: -22px;
    padding-bottom: 12px;
}

.filter-chip {
    padding: 2px 10px;
    /* Even smaller padding */
    background: var(--color-gray-100);
    border: none;
    border-radius: var(--radius-full);
    font-size: 0.7rem;
    /* Tiny font */
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-base);
    font-family: var(--font-family);
    white-space: nowrap;
    /* Prevent text wrapping inside chip */
}

.filter-chip:hover {
    background: var(--color-gray-200);
}

.filter-chip.active {
    background: var(--color-primary);
    color: var(--color-white);
}

/* Topics List */
.topics-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    flex-grow: 1;
    overflow-y: auto;
    padding-right: var(--spacing-sm);
}

/* ==========================================
   DONUT CHART WIDGET (Domínio do Edital)
   ========================================== */

.dominio-card {
    display: flex;
    flex-direction: column;
}

.donut-chart-container {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    flex-grow: 1;
    padding: 20px;
    margin-top: 30px;
}

.donut-chart {
    width: 292px;
    height: 293px;
    transform: scale(1);
    transition: transform 0.3s ease;
    margin-top: -56px;
}

.donut-chart:hover {
    transform: scale(1.05);
}

.donut-chart circle {
    transition: stroke-dashoffset 0.5s ease, stroke 0.3s ease;
}

.chart-center-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    pointer-events: none;
}

.chart-percentage {
    font-size: 2.5rem;
    font-weight: 800;
    color: #00C897;
    line-height: 1;
    margin-bottom: 4px;
}

.chart-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}


/* Unified Content Containers (Timeline, Checklist, Notes) */
.timeline-container,
.checklist-items,
.notes-container {
    flex-grow: 1;
    overflow-y: auto;
    padding-right: var(--spacing-sm);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.topic-item {
    padding: var(--spacing-lg);
    background: var(--color-gray-50);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--color-gray-300);
    transition: all var(--transition-base);
    cursor: pointer;
}

.topic-item:hover {
    background: var(--color-white);
    transform: translateX(4px);
    box-shadow: var(--shadow-md);
}

.topic-item.completed {
    background-color: #F1F8E9 !important;
    /* Light green background */
    border: 2px solid #4CAF50 !important;
    /* Solid green border */
    border-left: 4px solid #4CAF50 !important;
    /* Thicker left border */
    opacity: 1;
    /* Full opacity, not faded */
    transition: all 0.3s ease;
}

.topic-item.completed .topic-name {
    color: #2E7D32 !important;
    /* Dark green text */
    text-decoration: none !important;
    /* Remove strikethrough */
    font-weight: 600;
}

.topic-item.completed .topic-meta {
    color: #558B2F;
    /* Medium green for meta text */
}

/* Enhanced check icon for completed items */
.topic-item.completed::after {
    content: '✓';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.25rem;
    color: white;
    background-color: #4CAF50;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    box-shadow: 0 2px 8px rgba(76, 175, 80, 0.3);
    line-height: 32px;
    text-align: center;
}

/* ==========================================
   STATUS BADGES (PROGRESS INDICATORS)
   ========================================== */

.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.status-badge.completed {
    background: #D1FAE5;
    color: #065F46;
    border: 1px solid #10B981;
}

.status-badge.in-progress {
    background: #FEF3C7;
    color: #92400E;
    border: 1px solid #F59E0B;
}

/* In-Progress Card Styling */
.topic-item.in-progress {
    background-color: #FFFBEB !important;
    border: 2px solid #F59E0B !important;
    border-left: 4px solid #F59E0B !important;
}

.topic-item.in-progress .topic-name {
    color: #92400E !important;
    font-weight: 600;
}

.topic-item.in-progress .topic-meta {
    color: #B45309;
}


/* NOVO: Botão de Rever Aula */
.btn-revisit {
    background: white;
    border: 1px solid #10B981;
    color: #10B981;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
    position: absolute;
    right: 50px;
    /* Ao lado do check */
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
}

.btn-revisit:hover {
    background: #10B981;
    color: white;
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

/* Priority border colors for non-completed items */
.topic-item.priority-high:not(.completed) {
    border-left-color: var(--color-success);
}

.topic-item.priority-medium:not(.completed) {
    border-left-color: var(--color-warning);
}

.topic-item.priority-low:not(.completed) {
    border-left-color: var(--color-gray-400);
}

/* Ajuste para não sobrepor o texto */
.topic-item {
    position: relative;
    /* Necessário para posicionar o botão */
    padding-right: 20px;
    /* Abre espaço na direita para os ícones */
}

.topic-name {
    font-weight: 700;
    color: var(--color-gray-900);
    flex: 1;
}

.priority-badge {
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
}

.priority-badge.high {
    background: rgba(16, 185, 129, 0.2);
    color: var(--color-success);
}

.priority-badge.medium {
    background: rgba(245, 158, 11, 0.2);
    color: var(--color-warning);
}

.priority-badge.low {
    background: rgba(156, 163, 175, 0.2);
    color: var(--color-gray-600);
}

.topic-meta {
    display: flex;
    gap: var(--spacing-md);
    font-size: 0.875rem;
    color: var(--color-gray-600);
}

/* Timeline */
/* =================================================================
   TIMELINE "ROADMAP" (Visual de Trilha Conectada)
   ================================================================= */

.timeline-container {
    display: flex;
    flex-direction: column;
    gap: 30px;
    /* Espaço entre semanas */
    padding: 10px 0 10px 10px;
}

/* Semana (Grupo) */
.timeline-week {
    position: relative;
    background: transparent;
    /* Remove background cinza antigo */
    padding: 0;
}

.week-header {
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    /* Cinza suave */
    font-weight: 800;
    margin-bottom: 20px;
    padding-left: 45px;
    /* Alinha com o texto dos cards */
}

/* Container dos dias com a linha vertical */
.timeline-days {
    position: relative;
    padding-left: 20px;
    /* Espaço para a linha */
    border-left: 2px solid #e2e8f0;
    /* A Linha Vertical */
    margin-left: 10px;
    display: flex;
    flex-direction: column;
    gap: 0;
    /* Reset gap antigo */
}

/* O Card do Dia */
.timeline-day {
    position: relative;
    margin-bottom: 24px;
    background: #fff;
    border: 1px solid #f1f5f9;
    border-radius: 16px;
    padding: 20px;
    margin-left: 25px;
    /* Afasta da linha vertical */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02);
    transition: all 0.2s ease;
    cursor: pointer;
}

.timeline-day:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05);
    border-color: #3b82f6;
}

/* A "Bolinha" (Nó da Linha do Tempo) */
.timeline-day::before {
    content: '';
    position: absolute;
    left: -34px;
    /* Posiciona exatamente em cima da linha vertical */
    top: 24px;
    /* Alinha com o título */
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid #cbd5e1;
    /* Cinza padrão */
    z-index: 2;
    transition: all 0.3s ease;
}

/* ESTADO: CONCLUÍDO (Verde) */
.timeline-day.completed {
    border-left: 4px solid #10b981;
    /* Borda lateral verde */
    background: #f0fdf4;
    /* Fundo verde bem clarinho */
    opacity: 1;
    /* Reset opacity antiga */
}

.timeline-day.completed::before {
    background: #10b981;
    border-color: #10b981;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2);
    /* Halo verde */
}

/* ESTADO: HOJE (Destaque Azul Pulsante) */
.timeline-day.is-today {
    border-color: #3b82f6;
    border-left-width: 4px;
}

.timeline-day.is-today::before {
    background: #3b82f6;
    border-color: #3b82f6;
    animation: pulse-dot 2s infinite;
}

/* Conteúdo Interno do Card */
.day-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.day-date {
    font-size: 0.85rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
}

.day-topics {
    font-size: 1rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.5;
}

.timeline-day.completed .day-topics {
    text-decoration: line-through;
    opacity: 0.6;
}

/* Esconde o checkbox antigo (agora usamos o card inteiro) */
.day-checkbox {
    display: none;
}

/* Animação de Pulso para "Hoje" */
@keyframes pulse-dot {
    0% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(59, 130, 246, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
    }
}



.day-date {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--color-gray-700);
}

.day-topics {
    font-size: 0.875rem;
    color: var(--color-gray-600);
    line-height: 1.5;
}

/* New Timeline Day Card Styles (for plano_semanal) */
.timeline-day-card {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-md);
    box-shadow: var(--shadow-md);
    border-left: 4px solid var(--color-primary);
    transition: all var(--transition-base);
}

.timeline-day-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
}

.day-card-header {
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--color-gray-200);
}

.day-card-date {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: var(--spacing-xs);
}

.day-card-focus {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-gray-900);
}

.day-card-tasks {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.task-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--color-gray-50);
    border-radius: var(--radius-sm);
    transition: all var(--transition-base);
}

.task-item:hover {
    background: var(--color-gray-100);
}

.task-item.task-teoria {
    border-left: 3px solid #3b82f6;
}

.task-item.task-questões {
    border-left: 3px solid #f59e0b;
}

.task-item.task-revisão {
    border-left: 3px solid #10b981;
}

.task-icon {
    font-size: 1.25rem;
    flex-shrink: 0;
}

.task-title {
    flex: 1;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gray-700);
}

.task-time {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-gray-500);
    background: var(--color-white);
    padding: 2px 8px;
    border-radius: var(--radius-sm);
}

/* Checklist */
.checklist-items {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.checklist-item {
    padding: var(--spacing-lg);
    background: var(--color-gray-50);
    border-radius: var(--radius-md);
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all var(--transition-base);
}

.checklist-item:hover {
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}

.checklist-item.urgent {
    background: rgba(239, 68, 68, 0.1);
    border-left: 4px solid var(--color-danger);
}

.checklist-content h4 {
    font-weight: 700;
    margin-bottom: var(--spacing-xs);
    color: var(--color-gray-900);
}

.checklist-content p {
    font-size: 0.875rem;
    color: var(--color-gray-600);
}

.checklist-countdown {
    font-weight: 800;
    font-size: 1.25rem;
    color: var(--color-primary);
}

.checklist-item.urgent .checklist-countdown {
    color: var(--color-danger);
}

/* ==========================================
   TOAST NOTIFICATIONS
   ========================================== */

.toast-container {
    position: fixed;
    top: var(--spacing-lg);
    right: var(--spacing-lg);
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.toast {
    min-width: 300px;
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--color-white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xl);
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    animation: slideInRight var(--transition-base) ease-out;
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(100%);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.toast.success {
    border-left: 4px solid var(--color-success);
}

.toast.error {
    border-left: 4px solid var(--color-danger);
}

.toast.info {
    border-left: 4px solid var(--color-info);
}

/* ==========================================
   RESPONSIVE
   ========================================== */

/* Tablet: 2-column layout for medium screens */
@media (max-width: 1024px) and (min-width: 769px) {
    .dashboard-grid-top {
        grid-template-columns: 1fr 1fr;
    }

    .left-column-stack {
        grid-column: 1 / -1;
        flex-direction: row;
        gap: 24px;
    }

    .left-column-stack .dashboard-card {
        flex: 1;
    }

    .donut-chart {
        width: 180px;
        height: 180px;
    }
}

@media (max-width: 768px) {

    .landing-container,
    .onboarding-container,
    .dashboard-container {
        padding: var(--spacing-lg);
    }

    .hero-title {
        font-size: 40px;
        margin-top: -54px;
        line-height: 1.2;

    }

    .hero-subtitle {
        font-size: 1.3rem;
        margin-top: 31px;
    }

    .upload-zone {
        padding: var(--spacing-xl);
    }

    .features-grid {
        grid-template-columns: 1fr;
    }

    /* Dashboard Header Mobile Fixes */
    .header-top {
        flex-direction: column;
        align-items: stretch;
        gap: var(--spacing-md);
    }

    .dashboard-title {
        font-size: 1.75rem;
        text-align: left;
    }

    .header-actions {
        flex-wrap: wrap;
        justify-content: center;
    }

    .btn-emergency {
        flex: 1;
        min-width: 200px;
        justify-content: center;
    }

    .exam-info {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
        padding: var(--spacing-md);
    }

    /* Dashboard: Stack all columns on mobile */
    .dashboard-grid-top {
        grid-template-columns: 1fr;
    }

    .left-column-stack .dashboard-card {
        min-height: 300px;
        margin-top: 8rem;
    }

    .donut-chart {
        width: 276px;
        height: 264px;
    }

    .chart-percentage {
        font-size: 2rem;
    }

    .notes-container {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    }

    .exam-info {
        flex-direction: column;
        gap: var(--spacing-md);
        height: 4rem;
    }

    .form-actions {
        flex-direction: column-reverse;
    }

    .toast-container {
        left: var(--spacing-lg);
        right: var(--spacing-lg);
    }

    .toast {
        min-width: auto;
    }
}

/* ==========================================
   FREEMIUM & PAYWALL
   ========================================== */

/* Modal Base */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
    animation: fadeIn 0.3s ease;
}

.modal.hidden {
    display: none;
}

.modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
}

.modal-content {
    position: relative;
    background: var(--color-white);
    padding: var(--spacing-2xl);
    border-radius: var(--radius-xl);
    max-width: 500px;
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: slideUp 0.3s ease;
}

.modal-close {
    position: absolute;
    top: var(--spacing-md);
    right: var(--spacing-md);
    width: 32px;
    height: 32px;
    border: none;
    background: var(--color-gray-100);
    border-radius: 50%;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    transition: all var(--transition-base);
    color: var(--color-gray-600);
}

.modal-close:hover {
    background: var(--color-gray-200);
    transform: rotate(90deg);
}

/* Paywall Specific */
.paywall-content {
    text-align: center;
}

.paywall-icon {
    font-size: 4rem;
    margin-bottom: var(--spacing-lg);
}

.paywall-title {
    font-size: 1.75rem;
    font-weight: 900;
    margin-bottom: var(--spacing-sm);
    color: var(--color-gray-900);
}

.paywall-subtitle {
    font-size: 1rem;
    color: var(--color-gray-600);
    margin-bottom: var(--spacing-2xl);
}

.paywall-features {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-2xl);
    text-align: left;
}

.feature-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm);
    background: var(--color-gray-50);
    border-radius: var(--radius-md);
}

.feature-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 50%;
    font-size: 0.875rem;
    font-weight: 700;
    flex-shrink: 0;
}

.feature-text {
    font-size: 0.875rem;
    color: var(--color-gray-700);
    font-weight: 500;
}

.paywall-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: var(--spacing-xs);
    margin-bottom: var(--spacing-xl);
    padding: var(--spacing-lg);
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border-radius: var(--radius-lg);
}

.price-label {
    font-size: 0.875rem;
    color: var(--color-gray-600);
}

.price-value {
    font-size: 2.5rem;
    font-weight: 900;
    color: var(--color-primary);
}

.price-period {
    font-size: 0.875rem;
    color: var(--color-gray-600);
}

.btn-premium {
    width: 100%;
    padding: var(--spacing-lg) var(--spacing-2xl);
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: var(--color-white);
    border: none;
    border-radius: var(--radius-md);
    font-size: 1.125rem;
    font-weight: 700;
    cursor: pointer;
    transition: all var(--transition-base);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
    font-family: var(--font-family);
}

.btn-premium:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4);
}

.paywall-guarantee {
    margin-top: var(--spacing-md);
    font-size: 0.875rem;
    color: var(--color-gray-500);
}

/* Locked Topic Cards */
.topic-item.locked {
    position: relative;
    cursor: not-allowed;
    opacity: 0.8;
}

.topic-item.locked .topic-name {
    filter: blur(5px);
    user-select: none;
    pointer-events: none;
}

.topic-item.locked::after {
    content: '🔒';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 2rem;
    opacity: 0.9;
    pointer-events: none;
}

.topic-item.locked:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Free Topic Badge - REMOVED */
/* .topic-item.free {
    border: 2px solid var(--color-primary);
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
    position: relative;
    margin-top: 20px;
}

.topic-item.free::before {
    content: 'GRÁTIS';
    position: absolute;
    top: -12px;
    right: 12px;
    background: var(--color-primary);
    color: var(--color-white);
    padding: 4px 12px;
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
} */

/* Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes slideUp {
    from {
        transform: translateY(30px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* ==========================================
   SCROLLBAR STYLING
   ========================================== */

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--color-gray-100);
    border-radius: var(--radius-full);
}

::-webkit-scrollbar-thumb {
    background: var(--color-gray-300);
    border-radius: var(--radius-full);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--color-gray-400);
}

/* ==========================================
   LOGIN SCREEN
   ========================================== */

.login-container {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    padding: var(--spacing-2xl);
}

.login-card {
    background: var(--color-white);
    padding: var(--spacing-3xl);
    border-radius: var(--radius-2xl);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
    max-width: 480px;
    width: 100%;
    text-align: center;
}

.login-icon {
    font-size: 4rem;
    margin-bottom: var(--spacing-lg);
}

.login-title {
    font-size: 2rem;
    font-weight: 900;
    color: var(--color-gray-900);
    margin-bottom: var(--spacing-sm);
}

.login-subtitle {
    font-size: 1rem;
    color: var(--color-gray-600);
    margin-bottom: var(--spacing-2xl);
    line-height: 1.6;
}

.login-benefits {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-2xl);
    text-align: left;
}

.benefit-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm);
    background: var(--color-gray-50);
    border-radius: var(--radius-md);
}

.benefit-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 50%;
    font-size: 0.75rem;
    font-weight: 700;
    flex-shrink: 0;
}

.btn-google-login {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 12px 24px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-300);
    border-radius: var(--radius-full);
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-gray-700);
    cursor: pointer;
    transition: all var(--transition-base);
    font-family: 'Roboto', sans-serif;
    /* Google standard font */
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.btn-google-login:hover {
    background: var(--color-gray-50);
    border-color: var(--color-gray-400);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.google-icon {
    width: 20px;
    height: 20px;
}

.login-privacy {
    margin-top: var(--spacing-lg);
    font-size: 0.875rem;
    color: var(--color-gray-500);
}

@media (max-width: 768px) {
    .login-container {
        padding: var(--spacing-lg);
    }

    .login-card {
        padding: var(--spacing-2xl);
    }

    .login-title {
        font-size: 1.5rem;
    }
}

/* ==========================================
   POST-ITS / QUICK NOTES
   ========================================== */

.notes-card .card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.btn-add-note {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-base);
    box-shadow: var(--shadow-sm);
}

.btn-add-note:hover {
    background: var(--color-primary-dark);
    transform: translateY(-2px) rotate(90deg);
    box-shadow: var(--shadow-md);
}

.notes-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 16px;
    min-height: 100px;
}

.sticky-note {
    position: relative;
    background: #FEF3C7;
    padding: var(--spacing-lg);
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1),
        0 4px 12px rgba(0, 0, 0, 0.05);
    min-height: 150px;
    cursor: move;
    transition: all var(--transition-base);
    animation: noteAppear 0.3s ease-out;
}

.sticky-note::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 20px;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 0%, transparent 100%);
    border-radius: 4px 4px 0 0;
}

.sticky-note:hover {
    transform: translateY(-4px) rotate(0deg);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15),
        0 8px 24px rgba(0, 0, 0, 0.1);
}

.sticky-note:nth-child(odd) {
    transform: rotate(-1deg);
}

.sticky-note:nth-child(even) {
    transform: rotate(1deg);
}

.sticky-note.color-yellow {
    background: #FEF3C7;
}

.sticky-note.color-pink {
    background: #FCE7F3;
}

.sticky-note.color-blue {
    background: #DBEAFE;
}

.sticky-note.color-green {
    background: #D1FAE5;
}

/* Drag and Drop States */
.sticky-note.dragging {
    opacity: 0.5;
    transform: rotate(5deg);
    cursor: grabbing !important;
}

.sticky-note {
    cursor: grab;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.sticky-note:active {
    cursor: grabbing;
}

.note-content {

    resize: none;
    /* Remove o puxador de tamanho no canto */
    font-family: 'Caveat', 'Kalam', cursive, sans-serif;
    /* Fonte manuscrita */
    font-size: 1.3rem;
    line-height: 1.4;
    color: #374151;
    overflow: hidden;
    /* Esconde barra de rolagem feia */
}

/* Removemos toda a "casca" do input para parecer que está escrevendo no papel */
.note-textarea {
    width: 100%;
    height: 100%;
    background: transparent;
    border: none;
    outline: none;
    resize: none;
    /* Remove o puxador de tamanho no canto */
    font-family: 'Caveat', 'Kalam', cursive, sans-serif;
    /* Fonte manuscrita */
    font-size: 1.3rem;
    line-height: 1.4;
    color: #374151;
    overflow: hidden;
    /* Esconde barra de rolagem feia */
}

.note-textarea::placeholder {
    color: rgba(0, 0, 0, 0.25);
    font-style: italic;
}


.btn-delete-note {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(239, 68, 68, 0.9);
    color: var(--color-white);
    border: none;
    border-radius: 50%;
    font-size: 0.875rem;
    font-weight: 700;
    cursor: pointer;
    opacity: 0;
    transition: all var(--transition-base);
    z-index: 10;
}

.sticky-note:hover .btn-delete-note {
    opacity: 1;
}

.btn-delete-note:hover {
    background: var(--color-danger);
    transform: scale(1.15) rotate(90deg);
}

@keyframes noteAppear {
    from {
        opacity: 0;
        transform: scale(0.8) rotate(0deg);
    }

    to {
        opacity: 1;
        transform: scale(1) rotate(var(--note-rotation, -1deg));
    }
}

.notes-container:empty::after {
    content: 'Clique no botão + para adicionar sua primeira nota! 📝';
    display: block;
    text-align: center;
    color: var(--color-gray-400);
    font-style: italic;
    padding: var(--spacing-2xl);
    grid-column: 1 / -1;
}

@media (max-width: 768px) {
    .notes-container {
        grid-template-columns: 1fr;
    }

    .sticky-note {
        transform: rotate(0deg) !important;
    }

    .sticky-note:hover {
        transform: translateY(-2px) rotate(0deg) !important;
    }
}

/* Main Hero Logo */
.hero-brand-container {
    display: flex;
    justify-content: center;
    margin-bottom: var(--spacing-lg);
}

.hero-main-logo {
    max-width: 150px;
    height: auto;
    display: block;
}

@media (max-width: 768px) {
    .hero-main-logo {
        max-width: 200px;
    }
}

/* ==========================================
   INLINE CONTEXT SELECTOR (Refactor)
   ========================================== */

.cargo-dropdown-wrapper {
    position: relative;
    display: inline-block;
}

.cargo-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: var(--radius-md);
    font-family: var(--font-family);
    font-size: 1.125rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all var(--transition-base);
    box-shadow: var(--shadow-md);
}

.cargo-btn:hover {
    background: var(--color-primary-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

.cargo-btn .chevron-icon {
    width: 24px;
    height: 24px;
    color: var(--color-white);
    transition: transform var(--transition-base);
    stroke-width: 3px;
}

.cargo-btn.active .chevron-icon {
    transform: rotate(180deg);
}

/* Rotate chevron when active (handled by JS class) */
.cargo-btn.active .chevron-icon {
    transform: rotate(180deg);
}

/* Inline Dropdown Styles */
.inline-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 0.5rem;
    background: white;
    border-radius: 12px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--color-gray-200);
    min-width: 280px;
    z-index: 50;
    padding: 0.5rem;
    animation: slideDown 0.2s ease-out;
}

.inline-dropdown .dropdown-item {
    width: 100%;
    text-align: left;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.9rem;
    color: var(--color-gray-700);
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
    /* To space out delete button if needed */
}

.inline-dropdown .dropdown-item:hover {
    background-color: var(--color-gray-50);
    color: var(--color-primary);
}

.inline-dropdown .dropdown-item.active {
    background-color: var(--color-primary-light);
    color: var(--color-primary);
    font-weight: 600;
}

.inline-dropdown .dropdown-divider {
    height: 1px;
    background-color: var(--color-gray-200);
    margin: 0.5rem 0;
}

.inline-dropdown .new-item {
    color: var(--color-primary);
    font-weight: 500;
    justify-content: center;
    gap: 0.5rem;
}

.inline-dropdown .new-item:hover {
    background-color: var(--color-primary);
    color: white;
}

/* Delete Button in Dropdown Item */
.delete-plan-btn {
    padding: 4px;
    border-radius: 4px;
    color: var(--color-gray-400);
    transition: all 0.2s;
    opacity: 0;
    /* Hidden by default */
}

.dropdown-item:hover .delete-plan-btn {
    opacity: 1;
    /* Show on hover */
}

.delete-plan-btn:hover {
    background-color: #fee2e2;
    color: #ef4444;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Mobile Responsiveness for Search Capsule */
@media (max-width: 768px) {
    .search-capsule {
        flex-direction: column;
        border-radius: 24px;
        padding: 20px;
        gap: 12px;
    }

    .search-capsule input.input-cargo {
        width: 100%;
        text-align: center;
        padding: 10px 0;
        margin-top: 3px;
        font-size: 0.9rem;
    }

    .btn-attach,
    .btn-continue {
        width: 100%;
        justify-content: center;
    }



    /* =================================================================
   AJUSTE MOBILE CORRIGIDO: MOCKUP DASHBOARD FULL-WIDTH
   Substitua o bloco mobile anterior por este.
   ================================================================= */

    @media (max-width: 768px) {

        /* Container da Imagem no Mobile */
        .dashboard-mockup-container {
            margin: 0px 0 auto;
            /* Margem superior */
            padding: 0 !important;
            /* REMOVE TODO O ESPAÇAMENTO LATERAL */
            width: 150% !important;
            /* Garante largura total */
            max-width: 150% !important;
            /* Remove a limitação de 1200px */
            overflow: hidden;
            /* Segurança extra */
        }

        /* A Imagem em si no Mobile */
        .dashboard-mockup {
            width: 187% !important;
            /* Força a imagem a ocupar 100% da tela */
            height: auto !important;
            /* Mantém a proporção */
            max-width: none !important;
            /* Garante que não haja limite */
            display: block;
            /* Garante comportamento de bloco */
            margin: 0;
            /* Remove margens da imagem */

            /* Ajuste do fade para mobile */
            mask-image: linear-gradient(to bottom, black 70%, transparent 100%);
            -webkit-mask-image: linear-gradient(to bottom, black 70%, transparent 100%);

            transform: translateY(0);
            margin-left: -239px;
            margin-top: -46px;
            /* Reset de posição */
        }
    }

}

.file-name-text {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* =================================================================
   ESTILO MODERNO PARA O MODAL "NOVA ANÁLISE"
   ================================================================= */

/* Ajuste do Container do Modal */
.new-analysis-content {
    max-width: 480px;
    width: 90%;
    padding: 32px;
    border-radius: 24px;
    text-align: center;
}

/* Cabeçalho */
.modal-header-center {
    margin-bottom: 24px;
}

.modal-icon-badge {
    width: 50px;
    height: 50px;
    background: #eff6ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin: 0 auto 16px auto;
}

.modal-title {
    font-size: 1.5rem;
    color: #111827;
    margin-bottom: 8px;
    font-weight: 800;
}

.modal-subtitle {
    color: #6b7280;
    font-size: 0.95rem;
    line-height: 1.4;
}

/* Formulário */
.modal-form-body {
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.form-label {
    font-size: 0.9rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 4px;
    display: block;
}

/* Zona de Upload (Drag & Drop Style) */
.upload-drop-zone {
    border: 2px dashed #D1D5DB;
    border-radius: 12px;
    background: #F9FAFB;
    padding: 24px;
    text-align: center;
    cursor: pointer;
    position: relative;
    transition: all 0.2s ease;
}

.upload-drop-zone:hover {
    border-color: #3b82f6;
    background: #eff6ff;
}

.drop-icon {
    font-size: 2rem;
    margin-bottom: 8px;
    display: block;
}

.drop-text {
    font-size: 0.95rem;
    color: #4B5563;
    margin-bottom: 4px;
}

.drop-text strong {
    color: #3b82f6;
}

.drop-subtext {
    font-size: 0.8rem;
    color: #9CA3AF;
}

/* Input de arquivo invisível mas clicável */
.file-input-hidden {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

/* Input de Texto Estilizado */
.modal-input-styled {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #D1D5DB;
    border-radius: 12px;
    font-size: 1rem;
    transition: all 0.2s;
    outline: none;
    font-family: inherit;
}

.modal-input-styled:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

/* Botão de Ação Full Width */
.btn-continue-full {
    width: 100%;
    padding: 14px;
    background: linear-gradient(90deg, #FF8C00, #EA580C);
    color: white;
    font-weight: 700;
    font-size: 1rem;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    margin-top: 8px;
    transition: transform 0.2s, opacity 0.2s;
}

.btn-continue-full:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(234, 88, 12, 0.3);
}

.btn-continue-full:disabled {
    background: #E5E7EB;
    color: #9CA3AF;
    cursor: not-allowed;
}

/* Display do nome do arquivo */
.file-selected {
    background: #ECFDF5;
    color: #065F46;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #A7F3D0;
}

.file-icon-small {
    font-size: 1.2rem;
}

.file-name-text {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* =================================================================
   MODAL DE LOGIN "HIGH CONVERSION"
   ================================================================= */

.login-card {
    background: #FFFFFF;
    padding: 40px;
    border-radius: 24px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
    max-width: 450px;
    width: 100%;
    text-align: center;
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* Faixa decorativa no topo */
.login-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 6px;
    background: linear-gradient(90deg, #FF8C00, #3b82f6);
}

.login-header {
    margin-bottom: 32px;
}

.login-icon-wrapper {
    font-size: 3.5rem;
    margin-bottom: 16px;
    filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
    animation: float 3s ease-in-out infinite;
}

@keyframes float {

    0%,
    100% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-10px);
    }
}

.login-title {
    font-size: 1.75rem;
    font-weight: 800;
    color: #111827;
    margin-bottom: 8px;
    line-height: 1.2;
}

.login-subtitle {
    font-size: 1rem;
    color: #6B7280;
    margin-bottom: 0;
    line-height: 1.5;
}

.login-subtitle strong {
    color: #3b82f6;
    font-weight: 600;
}

/* Lista de Benefícios */
.login-benefits-grid {
    text-align: left;
    background: #F9FAFB;
    padding: 20px;
    border-radius: 16px;
    margin-bottom: 32px;
    border: 1px solid #F3F4F6;
}

.benefit-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}

.benefit-row:last-child {
    margin-bottom: 0;
}

.check-icon {
    background: #DCFCE7;
    color: #10B981;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 1rem;
    flex-shrink: 0;
}

.benefit-row div strong {
    display: block;
    font-size: 0.95rem;
    color: #374151;
    margin-bottom: 2px;
    font-weight: 600;
}

.benefit-row div p {
    font-size: 0.85rem;
    color: #9CA3AF;
    margin: 0;
}

/* Botão Google Premium */
.btn-google-premium {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 14px 24px;
    background: #FFFFFF;
    border: 2px solid #E5E7EB;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

.btn-google-premium:hover {
    background: #F9FAFB;
    border-color: #D1D5DB;
    transform: translateY(-2px);
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
}

.btn-google-premium img {
    width: 20px;
    height: 20px;
}

.login-footer {
    margin-top: 20px;
    font-size: 0.75rem;
    color: #9CA3AF;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.login-footer svg {
    flex-shrink: 0;
}

/* ==========================================
   LESSON SCREEN - SKELETON LOADING & STEPPER
   ========================================== */

/* Container da Aula */
.lesson-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 24px;
    font-family: 'Inter', sans-serif;
    font-size: 1.3rem;
}

/* Header da Aula */
.lesson-header {
    text-align: center;
    margin-bottom: 40px;
}

.lesson-badge {
    background: #e0f2fe;
    color: #0284c7;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: inline-block;
    margin-bottom: 16px;
}

.lesson-title {
    font-size: 2rem;
    font-weight: 800;
    color: #1e293b;
    line-height: 1.3;
}

/* SKELETON LOADING (O Efeito Mágico) */
.skeleton-wrapper {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 40px;
}

.skeleton-line {
    height: 16px;
    background: #e2e8f0;
    border-radius: 4px;
    width: 100%;
    /* Animação de brilho */
    background-image: linear-gradient(90deg, #e2e8f0 0px, #f1f5f9 40px, #e2e8f0 80px);
    background-size: 600px;
    animation: shimmer 1.5s infinite linear;
}

.skeleton-line.short {
    width: 60%;
}

.skeleton-line.medium {
    width: 80%;
}

.skeleton-block {
    height: 150px;
    border-radius: 12px;
}

@keyframes shimmer {
    0% {
        background-position: -100px;
    }

    100% {
        background-position: 100px;
    }
}

/* STATUS STEPPER (O que a IA está fazendo) */
.ai-steps-container {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 24px;
    margin-bottom: 40px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

.ai-step {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    color: #64748b;
    transition: all 0.3s ease;
}

.ai-step.active {
    color: #0f172a;
    font-weight: 600;
}

.step-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    background: #f1f5f9;
}

.ai-step.active .step-icon {
    background: #3b82f6;
    color: white;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
}

.ai-step.done .step-icon {
    background: #10b981;
    color: white;
}

/* Spinner animation for active step */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.animate-spin {
    animation: spin 1s linear infinite;
}

/* ==========================================
   GUEST PREVIEW MODE
   ========================================== */

.guest-sticky-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    color: white;
    padding: 1rem;
    z-index: 9999;
    box-shadow: 0 -4px 6px -1px rgba(0, 0, 0, 0.1), 0 -2px 4px -1px rgba(0, 0, 0, 0.06);
    transform: translateY(0);
    transition: transform 0.3s ease;
    opacity: 0.9;
    height: 61px;
    margin-bottom: 1px;
    padding-top: 5px;
}

.guest-sticky-banner.hidden {
    transform: translateY(100%);
}

.banner-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.banner-text {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.banner-icon {
    font-size: 1.5rem;
    flex-shrink: 0;
}

.banner-text strong {
    display: block;
    font-size: 1rem;
    margin-bottom: 0.25rem;
}

.banner-text p {
    margin: 0;
    font-size: 0.875rem;
    color: #cbd5e1;
}

.btn-primary-sm {
    background: var(--color-primary);
    color: white;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 0.5rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
    font-family: var(--font-family);
}

.btn-primary-sm:hover {
    background: var(--color-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
}

/* Preview Mode - Add padding to body to prevent content from being hidden */
body.preview-mode {
    padding-bottom: 100px;
}

@media (max-width: 768px) {
    .banner-content {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
    }

    .banner-text {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        flex: 1;
    }

    .banner-icon {
        font-size: 1.25rem;
    }

    .banner-text strong {
        font-size: 0.9rem;
    }

    .banner-text p {
        font-size: 0.75rem;
        display: none;
        /* Hide subtitle on very small screens */
    }

    .btn-primary-sm {
        padding: 0.6rem 1rem;
        font-size: 0.85rem;
        white-space: nowrap;
        flex-shrink: 0;
    }

    body.preview-mode {
        padding-bottom: 100px;
    }

    .guest-sticky-banner {
        padding: 0.75rem;
        height: auto;
        min-height: 60px;
    }

    .level-btn {}

    .onboarding-title {
        font-size: 2.1rem;
        margin-top: 53px;
    }

    .level-options {
        display: grid;
    }

    .onboarding-title {
        margin-top: 5px;
    }

    .level-icon {
        margin-bottom: 2px;
        font-size: 3.1rem;
    }

    .card-subtitle {
        font-size: 1.2rem;
    }

    .day-header {
        display: flow-root list-item;
    }

    @media (max-width: 768px) {
        .task-item {
            display: flow-root list-item;
        }
    }

    /* =================================================================
   ESTILO DO LOADER "AI CORE"
   ================================================================= */

    /* Container Central */
    .ai-core-container {
        position: relative;
        width: 120px;
        height: 120px;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 24px;
    }

    /* O Chip Central (Coração) */
    .ai-chip {
        width: 64px;
        height: 64px;
        background: linear-gradient(135deg, #FF8C00, #F59E0B);
        /* Gradiente Laranja da Marca */
        border-radius: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 10;
        box-shadow: 0 0 20px rgba(255, 140, 0, 0.4);
        animation: corePulse 2s infinite ease-in-out;
    }

    /* As Ondas (Ripples) */
    .ai-ripple {
        position: absolute;
        border: 2px solid transparent;
        border-radius: 50%;
        opacity: 0;
        animation: rippleAnim 3s infinite linear;
    }

    .r1 {
        width: 64px;
        height: 64px;
        border-color: rgba(255, 140, 0, 0.6);
        animation-delay: 0s;
    }

    .r2 {
        width: 64px;
        height: 64px;
        border-color: rgba(16, 185, 129, 0.5);
        animation-delay: 1s;
    }

    .r3 {
        width: 64px;
        height: 64px;
        border-color: rgba(59, 130, 246, 0.4);
        animation-delay: 2s;
    }

    /* Textos */
    .ai-text-container {
        text-align: center;
    }

    .ai-title {
        font-size: 1.25rem;
        font-weight: 800;
        color: #111827;
        margin-bottom: 8px;
    }

    .ai-status {
        font-size: 0.95rem;
        color: #6B7280;
        font-family: 'Courier New', monospace;
        min-height: 20px;
        transition: opacity 0.3s ease;
    }

    /* Animações Keyframes */
    @keyframes corePulse {
        0% {
            transform: scale(1);
            box-shadow: 0 0 20px rgba(255, 140, 0, 0.4);
        }

        50% {
            transform: scale(1.1);
            box-shadow: 0 0 40px rgba(255, 140, 0, 0.7);
        }

        100% {
            transform: scale(1);
            box-shadow: 0 0 20px rgba(255, 140, 0, 0.4);
        }
    }

    @keyframes rippleAnim {
        0% {
            width: 64px;
            height: 64px;
            opacity: 0.8;
            border-width: 2px;
        }

        100% {
            width: 200px;
            height: 200px;
            opacity: 0;
            border-width: 0px;
        }
    }


    @media (max-width: 768px) {



        /* Exemplo 1: Diminuir o tamanho de um título */

        .dashboard-card {

            width: 401px;
            margin-left: -18px;

        }

        .info-label {
            margin-top: 11px;

        }

        .search-capsule {

            margin: 22px auto 10px auto;

        }


    }

    .card-subtitle {
        font-size: 0.85rem;
        color: #94a3b8;
        /* Cinza claro */
        margin-top: -10px;
        /* Puxa pra perto do título */
        margin-bottom: 15px;
        font-weight: 400;
    }

    /* =================================================================
   CORREÇÃO DO LOADER (REMOVER CAIXA BRANCA)
   ================================================================= */

    #upload-progress-unified {
        /* Estilo Card Branco (Igual ao Modal) */
        background: #FFFFFF !important;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15) !important;
        border-radius: 24px !important;
        border: 1px solid rgba(0, 0, 0, 0.05) !important;

        /* Centraliza na tela */
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 50;

        /* Tamanho */
        width: 90%;
        max-width: 450px;
        padding: 40px;
        text-align: center;
    }

    /* Ajuste do Texto do Loader para dar leitura no fundo */
    /* Ajuste do Texto do Loader */
    .ai-status-text {
        font-size: 1.25rem;
        font-weight: 700;
        color: #111827;
        margin-top: 24px;
        margin-bottom: 8px;
    }

    .ai-subtext {
        font-size: 0.95rem;
        color: #6B7280;
        line-height: 1.5;
    }

    /* Ajuste do Título "IA Analisando" */
    .ai-title {
        font-size: 1.5rem;
        color: #0f172a;
        text-shadow: 0 2px 15px rgba(255, 255, 255, 1);
    }

    /* =================================================================
   LOADER IMERSIVO "DARK ENERGY" (O visual da sua imagem)
   ================================================================= */

    /* O Fundo Escuro com Blur */
    #fullscreen-loader {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background-color: rgba(15, 23, 42, 0.9);
        /* Azul noturno bem escuro e transparente */
        backdrop-filter: blur(15px);
        /* O desfoque mágico no fundo */
        z-index: 9999;
        /* Fica acima de tudo */
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.5s ease;
    }

    /* Classe para ativar */
    #fullscreen-loader.active {
        opacity: 1;
        pointer-events: all;
    }

    /* O ANEL DE ENERGIA (Simulando o efeito visual) */
    .energy-ring-container {
        position: relative;
        width: 120px;
        height: 120px;
        margin-bottom: 40px;
    }

    .energy-ring {
        position: absolute;
        inset: 0;
        border-radius: 50%;
        border: 4px solid transparent;
        border-top-color: #a855f7;
        /* Roxo */
        border-right-color: #3b82f6;
        /* Azul */
        filter: drop-shadow(0 0 10px rgba(168, 85, 247, 0.6));
        animation: spinEnergy 2s linear infinite;
    }

    .energy-ring::before {
        content: '';
        position: absolute;
        top: 10px;
        left: 10px;
        right: 10px;
        bottom: 10px;
        border-radius: 50%;
        border: 4px solid transparent;
        border-top-color: #ec4899;
        /* Rosa */
        border-left-color: #6366f1;
        /* Indigo */
        animation: spinEnergy 3s linear infinite reverse;
        opacity: 0.8;
    }

    .energy-core {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 60%;
        height: 60%;
        background: radial-gradient(circle, rgba(255, 255, 255, 0.9) 0%, rgba(168, 85, 247, 0.1) 70%);
        border-radius: 50%;
        filter: blur(10px);
        animation: pulseCore 1.5s ease-in-out infinite alternate;
    }

    @keyframes spinEnergy {
        0% {
            transform: rotate(0deg);
        }

        100% {
            transform: rotate(360deg);
        }
    }

    @keyframes pulseCore {
        0% {
            opacity: 0.3;
            transform: translate(-50%, -50%) scale(0.8);
        }

        100% {
            opacity: 0.8;
            transform: translate(-50%, -50%) scale(1.1);
        }
    }

    /* TEXTOS IMPACTANTES */
    .loader-title-destaque {
        font-size: 1.2rem;
        font-weight: 900;
        color: #F59E0B;
        /* Laranja Ouro */
        text-transform: uppercase;
        letter-spacing: 2px;
        margin-bottom: 10px;
        text-shadow: 0 0 20px rgba(245, 158, 11, 0.5);
    }

    .loader-main-text {
        font-size: 1.4rem;
        font-weight: 800;
        color: #ffffff;
        line-height: 1.2;
        max-width: 600px;
        margin-bottom: 20px;
        text-transform: uppercase;
    }

    .loader-status-text {
        font-size: 1rem;
        color: #94a3b8;
        /* Cinza azulado */
        font-family: monospace;
        background: rgba(255, 255, 255, 0.1);
        padding: 8px 16px;
        border-radius: 50px;
        border: 1px solid rgba(255, 255, 255, 0.1);
    }








    /* =================================================================
   REDECORAÇÃO PREMIUM (SEÇÕES "COMO FUNCIONA" E "DEPOIMENTOS")
   ================================================================= */

    /* 1. Limpeza Geral do Fundo */
    .how-it-works-section,
    .testimonials-section {
        background: #ffffff;
        /* Fundo Branco Limpo */
        padding: 100px 0;
        position: relative;
    }

    /* Adiciona um detalhe sutil de fundo (opcional) */
    .how-it-works-section::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: radial-gradient(circle at 50% 50%, #f8fafc 0%, #ffffff 70%);
        z-index: 0;
    }

    /* 2. Títulos e Badges */
    .section-badge {
        background: rgba(59, 130, 246, 0.1);
        color: #3b82f6;
        font-size: 0.75rem;
        font-weight: 800;
        text-transform: uppercase;
        padding: 6px 16px;
        border-radius: 50px;
        letter-spacing: 1px;
        display: inline-block;
        margin-bottom: 16px;
    }

    .section-title {
        font-size: 2.5rem;
        font-weight: 900;
        color: #0f172a;
        margin-bottom: 20px;
        position: relative;
        z-index: 1;
    }

    /* 3. Cards "Como Funciona" (Estilo Vidro + Sombra Suave) */
    .step-card {
        background: #ffffff;
        border: 1px solid #e2e8f0;
        border-radius: 24px;
        padding: 40px 30px;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
        /* Sombra elegante */
        position: relative;
        z-index: 1;
    }

    .step-card:hover {
        transform: translateY(-10px);
        box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1);
        border-color: #3b82f6;
    }

    /* Ícone do Passo */
    .step-icon-wrapper {
        width: 80px;
        height: 80px;
        margin: 0 auto 24px;
        background: linear-gradient(135deg, #eff6ff, #dbeafe);
        border-radius: 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 2rem;
        color: #3b82f6;
    }

    /* Número Gigante ao Fundo (01, 02, 03) */
    .step-number-bg {
        position: absolute;
        top: 10px;
        right: 20px;
        font-size: 4rem;
        font-weight: 900;
        color: #f1f5f9;
        /* Cinza quase invisível */
        opacity: 0.5;
        z-index: -1;
    }

    /* 4. Depoimentos (Cards Limpos) */
    .testimonial-card {
        background: #ffffff;
        border: 1px solid #f1f5f9;
        border-radius: 16px;
        padding: 30px;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02);
        transition: transform 0.2s;
    }

    .testimonial-card:hover {
        border-color: #e2e8f0;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05);
    }

    .stars {
        color: #F59E0B;
        /* Amarelo Ouro */
        font-size: 1.1rem;
        margin-bottom: 16px;
    }

    .user-info {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-top: 20px;
        border-top: 1px solid #f8fafc;
        padding-top: 20px;
    }

    .user-avatar-img {
        width: 48px;
        height: 48px;
        border-radius: 50%;
        object-fit: cover;
        border: 2px solid #ffffff;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    }


    /* --- FORÇAR CARROSSEL MOBILE --- */
    @media (max-width: 768px) {

        /* 1. O Container: Desliga o Grid e Força Flexbox Horizontal */
        .testimonials-grid {
            display: flex !important;
            /* Mata o display: grid */
            flex-direction: row !important;
            /* Força linha horizontal */
            flex-wrap: nowrap !important;
            /* Proíbe quebrar para a linha de baixo */
            overflow-x: auto !important;
            /* Habilita a rolagem */

            /* Ajustes de espaçamento */
            gap: 20px !important;
            padding: 10px 20px 40px 20px !important;
            /* Espaço extra embaixo para a sombra */
            align-items: stretch;
            /* Faz todos terem a mesma altura */

            /* Snap (Imã) */
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            /* Rolagem suave no iPhone */
        }

        /* 2. Os Cards: Tamanho fixo para caber na tela */
        .testimonial-card {
            flex: 0 0 85vw !important;
            /* Trava a largura em 85% da tela */
            width: 85vw !important;
            max-width: 350px !important;
            margin-bottom: 0 !important;
            /* Remove margem de baixo se houver */
            scroll-snap-align: center;
            /* Centraliza ao soltar */
        }


    }

    @media (max-width: 768px) {
        .testimonials-grid {
            /* 1. OBRIGA a começar da esquerda */
            justify-content: flex-start !important;

            /* 2. Configurações do Carrossel */
            display: flex !important;
            flex-direction: row !important;
            flex-wrap: nowrap !important;
            /* Proíbe quebrar linha */
            overflow-x: auto !important;

            /* 3. Espacinho nas pontas para não colar na borda */
            padding-left: 20px !important;
            padding-right: 20px !important;
            gap: 15px !important;

            /* 4. Comportamento de Imã */
            scroll-snap-type: x mandatory;
        }

        .testimonial-card {
            /* Tamanho do card */
            flex: 0 0 85vw !important;
            width: 85vw !important;
            max-width: 350px !important;

            /* Centraliza o card na tela ao soltar o dedo */
            scroll-snap-align: center;
            margin-bottom: 0 !important;
        }

        .card-header {
            margin-top: -46px;
        }
    }


    /* --- PROTEÇÃO CONTRA SELEÇÃO DE TEXTO --- */
    body {
        -webkit-user-select: none;
        /* Safari */
        -moz-user-select: none;
        /* Firefox */
        -ms-user-select: none;
        /* IE10+/Edge */
        user-select: none;
        /* Padrão */
    }

    /* Permite selecionar texto APENAS nos campos de input (para o usuário poder digitar) */
    input,
    textarea {
        -webkit-user-select: text;
        -moz-user-select: text;
        -ms-user-select: text;
        user-select: text;
    }

    /* =================================================================
   LOADER OPTION 2: VISUAL STEPS (REFINED)
   ================================================================= */
    .loader-option-2 {
        max-width: 600px;
        margin: 40px auto;
        background: transparent;
        /* Remove white bg from container */
        padding: 0;
        box-shadow: none;
        border: none;
    }

    .steps-container {
        display: flex;
        flex-direction: column;
        gap: 16px;
        /* Space between cards */
    }

    /* Remove vertical line */
    .steps-container::before {
        display: none;
    }

    .step-item {
        display: flex;
        align-items: center;
        gap: 20px;
        padding: 24px;
        background: #FAFAFA;
        /* Light gray for pending */
        border-radius: 16px;
        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        border: 2px solid transparent;
        opacity: 0.6;
        /* Faded for pending */
    }

    /* Active State - The Green Card */
    .step-item.active {
        background: #ECFDF5;
        /* Light green bg */
        border-color: #10B981;
        /* Green border */
        opacity: 1;
        transform: scale(1.02);
        box-shadow: 0 10px 30px -10px rgba(16, 185, 129, 0.2);
    }

    /* Completed State */
    .step-item.completed {
        background: #FAFAFA;
        opacity: 1;
    }

    .step-icon {
        width: 48px;
        height: 48px;
        border-radius: 12px;
        /* Rounded square */
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 24px;
        background: white;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
        transition: all 0.3s ease;
    }

    /* Active Icon */
    .step-item.active .step-icon {
        background: #10B981;
        color: white;
        font-size: 28px;
        box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
    }

    /* Completed Icon */
    .step-item.completed .step-icon {
        background: #10B981;
        /* Green background for check */
        color: white;
    }

    .step-content {
        flex: 1;
        text-align: left;
    }

    .step-title {
        font-weight: 700;
        color: #1e293b;
        font-size: 1.05rem;
        margin-bottom: 4px;
    }

    .step-desc {
        font-size: 0.9rem;
        color: #64748b;
    }

    /* Spinner - Right side */
    .step-spinner {
        width: 24px;
        height: 24px;
        border: 3px solid #A7F3D0;
        /* Light green track */
        border-top-color: #10B981;
        /* Dark green spinner */
        border-radius: 50%;
        animation: spin 1s linear infinite;
        display: none;
    }

    .step-item.active .step-spinner {
        display: block;
    }

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

    /* --- NOVA ROTA DA APROVAÇÃO (SMART TIMELINE) --- */

    /* Container geral */
    .timeline-container {
        display: flex;
        flex-direction: column;
        gap: 16px;
        max-height: 500px;
        overflow-y: auto;
        padding-right: 5px;
    }

    /* 1. O CARD DE DESTAQUE (HOJE) */
    .mission-card-today {
        background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
        border: 2px solid #F29F05;
        /* Laranja da marca para chamar atenção */
        border-radius: 16px;
        padding: 20px;
        box-shadow: 0 10px 25px -5px rgba(242, 159, 5, 0.15);
        position: relative;
        overflow: hidden;
        transition: transform 0.2s;
    }

    .mission-card-today:hover {
        transform: translateY(-2px);
    }

    .mission-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 12px;
    }

    .mission-badge {
        background: #FFF8E1;
        color: #F29F05;
        font-weight: 800;
        font-size: 0.75rem;
        padding: 4px 10px;
        border-radius: 20px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .mission-date {
        font-size: 0.9rem;
        font-weight: 600;
        color: #64748b;
    }

    .mission-title {
        font-size: 1.1rem;
        font-weight: 700;
        color: #1e293b;
        margin-bottom: 8px;
        line-height: 1.4;
    }

    .mission-focus {
        font-size: 0.9rem;
        color: #475569;
        margin-bottom: 20px;
        display: flex;
        align-items: center;
        gap: 6px;
    }

    /* Botão de Ação Principal */
    .btn-start-mission {
        width: 100%;
        padding: 12px;
        background: #F29F05;
        color: white;
        border: none;
        border-radius: 10px;
        font-weight: 700;
        font-size: 0.95rem;
        cursor: pointer;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 8px;
        transition: all 0.2s;
        box-shadow: 0 4px 12px rgba(242, 159, 5, 0.3);
    }

    .btn-start-mission:hover {
        background: #e09200;
        transform: scale(1.02);
    }

    /* 2. LISTA COMPACTA (PRÓXIMOS DIAS) */
    .upcoming-list {
        display: flex;
        flex-direction: column;
        gap: 10px;
        border-top: 1px solid #e2e8f0;
        padding-top: 15px;
    }

    .upcoming-header {
        font-size: 0.85rem;
        font-weight: 700;
        color: #94a3b8;
        text-transform: uppercase;
        margin-bottom: 5px;
    }

    .upcoming-item {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 12px;
        background: white;
        border: 1px solid #e2e8f0;
        border-radius: 12px;
        opacity: 0.8;
    }

    .upcoming-date {
        background: #f1f5f9;
        padding: 6px 10px;
        border-radius: 8px;
        font-size: 0.8rem;
        font-weight: 700;
        color: #64748b;
        min-width: 50px;
        text-align: center;
    }

    .upcoming-info {
        display: flex;
        flex-direction: column;
    }

    .upcoming-title {
        font-size: 0.9rem;
        font-weight: 600;
        color: #334155;
    }

    .upcoming-topic {
        font-size: 0.8rem;
        color: #94a3b8;
    }

    /* Estado de Concluído */
    .mission-card-today.completed {
        border-color: #10b981;
        background: #f0fdf4;
    }

    .mission-card-today.completed .btn-start-mission {
        background: #10b981;
        box-shadow: none;
        cursor: default;
    }

    /* ==========================================
   BOTÃO DE ÁUDIO (TEXT-TO-SPEECH)
   ========================================== */

    /* Botão de Ouvir Aula */
    .btn-audio {
        display: flex;
        align-items: center;
        gap: 6px;
        background: rgba(59, 130, 246, 0.1);
        /* Azul clarinho */
        color: #3b82f6;
        border: none;
        padding: 6px 12px;
        border-radius: 20px;
        font-size: 0.85rem;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .btn-audio:hover {
        background: rgba(59, 130, 246, 0.2);
        transform: scale(1.05);
    }

    /* Estado: Ouvindo (Pulsando) */
    .btn-audio.audio-active {
        background: #3b82f6;
        color: white;
        box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.3);
        animation: pulseAudio 1.5s infinite;
    }

    @keyframes pulseAudio {
        0% {
            box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
        }

        70% {
            box-shadow: 0 0 0 6px rgba(59, 130, 246, 0);
        }

        100% {
            box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
        }
    }

    /* ==========================================
   LESSON LOADING STATE - ANIMATED STEPS
   ========================================== */

    .steps-container {
        display: flex;
        flex-direction: column;
        gap: 16px;
        max-width: 500px;
        margin: 0 auto;
    }

    .step-item {
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 16px;
        background: #f8fafc;
        border-radius: 12px;
        transition: all 0.3s ease;
        opacity: 0.3;
    }

    .step-item.active {
        opacity: 1;
        background: #ecfdf5;
        border: 2px solid #10b981;
    }

    .step-item.completed {
        opacity: 0.6;
        background: #f0fdf4;
    }

    .step-icon {
        width: 40px;
        height: 40px;
        border-radius: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
        background: white;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
        flex-shrink: 0;
    }

    .step-item.active .step-icon {
        background: #10b981;
        animation: pulse 1.5s ease-in-out infinite;
    }

    .step-item.completed .step-icon {
        background: #10b981;
    }

    @keyframes pulse {

        0%,
        100% {
            transform: scale(1);
        }

        50% {
            transform: scale(1.1);
        }
    }

    .step-content {
        flex: 1;
    }

    .step-title {
        font-weight: 600;
        color: #1e293b;
        font-size: 0.95rem;
    }

    .step-desc {
        font-size: 0.8rem;
        color: #64748b;
        margin-top: 2px;
    }

    .step-spinner {
        width: 20px;
        height: 20px;
        border: 2px solid #e2e8f0;
        border-top-color: #10b981;
        border-radius: 50%;
        animation: spin 0.8s linear infinite;
        flex-shrink: 0;
    }

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