
/* --- ESTILO DOS CRACHÁS (LISTA) --- */
.module-list-upscale,
#module-list {
    text-transform: uppercase;
}

/* --- BOTÕES PADRÃO (estilo do "Voltar") --- */
.btn-soft {
    height: 42px;
    padding: 0 24px;
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    color: #4b5563;
    font-weight: 900;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
    transition: all 180ms ease;
}

.btn-soft:hover {
    border-color: rgba(211, 47, 47, 0.30);
    color: #D32F2F;
    background: #FFFFFF;
}

.btn-soft:active {
    transform: translateY(0.5px);
}

.btn-soft-square {
    width: 42px;
    padding: 0;
}

.btn-soft-mini {
    height: 32px;
    padding: 0 12px;
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    color: #4b5563;
    font-weight: 900;
    font-size: 10px;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
    transition: all 180ms ease;
}

.btn-soft-mini:hover {
    border-color: rgba(211, 47, 47, 0.30);
    color: #111827;
}

.btn-soft-mini-square {
    width: 32px;
    padding: 0;
    font-size: 12px;
    line-height: 1;
}
.pro-card {
    background: white; border-radius: 1rem; border: 1px solid #e5e7eb; overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); display: flex; flex-direction: column;
}
.pro-card:hover { transform: translateY(-5px); box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1); border-color: #D32F2F; }

/* Header Minimalista (Transparente com Bordinha) */
.pro-card-header { 
    height: 0px; /* Remove altura do bloco */
    background: transparent; /* Fundo transparente */
    position: relative; 
    border-top: none; /* remove linha preta do topo */
}

.pro-card-avatar-wrap { 
    margin-top: 25px; /* Espaçamento para o avatar "respirar" */
    display: flex; 
    justify-content: center; 
}

.pro-card-avatar { 
    width: 104px; 
    height: 104px; 
    border-radius: 18px; 
    border: 3px solid white; 
    object-fit: cover; 
    background: #f3f4f6; 
    box-shadow: 0 5px 15px rgba(0,0,0,0.1); /* Sombra para destaque no branco */
}

.pro-card-status { 
    position: absolute; top: 12px; right: 12px; padding: 2px 8px; border-radius: 20px; 
    font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.5px;
    z-index: 10; /* Garante que fique sobre o conteúdo se necessário */
}
.status-active { background: #F3F4F6; color: #111827; border: 1px solid #E5E7EB; }
.status-inactive { background: #F3F4F6; color: #111827; border: 1px solid #E5E7EB; }

.status-pill {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    border-radius: 9999px;
    font-size: 0.7rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}


/* --- ESTILO DO EDITOR (HORIZONTAL & FLASH MENU) --- */
.editor-pro-header {
    background: #FFFFFF;
    backdrop-filter: none;
    border-bottom: none !important;
    box-shadow: none !important;
    position: relative;
}
.editor-pro-header::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
    background: #FFFFFF;
    pointer-events: none;
}
.editor-pro-header-inner { display: flex; flex-direction: column; }
.editor-pro-controls-row {
    position: relative;
}

.editor-actions {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 50;
}

.editor-nav-wrap { position: relative; z-index: 1; }

.editor-horizontal-nav {
    display: flex;
    gap: 8px;
    background: #F3F4F6;
    padding: 5px;
    border-radius: 16px;
    border: 1px solid #E5E7EB;
    box-shadow: 0 10px 20px -16px rgba(15, 23, 42, 0.18), 0 4px 6px -1px rgba(15, 23, 42, 0.06);
    position: static;
    transform: none;
}

.editor-pro-controls-row > .relative { margin-left: auto; }

.nav-tab-pro { 
    display: flex; align-items: center; gap: 0.6rem; padding: 0.6rem 1.2rem;
    font-size: 0.7rem; font-weight: 800; color: #64748b; border-radius: 0.75rem;
    transition: all 0.2s; cursor: pointer; text-transform: uppercase;
}
.nav-tab-pro svg {
    width: 16px;
    height: 16px;
    stroke: #64748B;
    transition: all 0.2s;
    flex-shrink: 0;
}
.nav-tab-pro:hover { background: white; color: #111827; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
.nav-tab-pro:hover svg { stroke: #111827; }
.nav-tab-pro.active { background: white; color: #111827; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1); }
.nav-tab-pro.active svg { stroke: #111827; }

.flash-btn-container-new {
    position: relative;
    z-index: 100;
    width: 42px;
    height: 42px;
}

.flash-btn-container-new .flash-card {
    position: absolute;
    top: 0;
    left: 0;
    transform-origin: top left;
}

.flash-btn-container {
    position: absolute;
    top: calc(100% + 15px);
    right: 20px; /* Movido para a direita com margem de segurança */
    z-index: 100;
    perspective: 1200px;
}

.flash-card {
    width: 42px; /* Largura compacta para o ícone */
    height: 42px; /* Altura de pílula */
    background: #E53935; /* Vermelho mais vivo */
    border-radius: 14px;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2), 0 4px 6px -2px rgba(0, 0, 0, 0.1);
    transition: width 0.6s cubic-bezier(0.34, 1.56, 0.64, 1),
                height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1),
                background-color 0.25s ease,
                box-shadow 0.25s ease,
                border-color 0.25s ease;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    display: flex;
    flex-direction: column;
}

.flash-card.active {
    width: 280px;
    height: 460px;
    background: rgba(255, 255, 255, 0.99);
    backdrop-filter: blur(25px);
    border: 1px solid #e2e8f0;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    border-radius: 24px;
    cursor: default;
}

.flash-card.active::after {
    content: "";
    position: absolute;
    inset: -6px;
    border-radius: 26px;
    pointer-events: none;
    z-index: -1;
    opacity: 0.85;
    mix-blend-mode: screen;
    transform-origin: 18px 18px; /* “saindo” do ícone no topo */
    background:
        radial-gradient(circle at 14% 18%, rgba(245, 158, 11, 0.95) 0 2px, rgba(245, 158, 11, 0) 7px),
        radial-gradient(circle at 22% 26%, rgba(229, 57, 53, 0.95) 0 2px, rgba(229, 57, 53, 0) 8px),
        radial-gradient(circle at 78% 18%, rgba(229, 57, 53, 0.90) 0 2px, rgba(229, 57, 53, 0) 8px),
        radial-gradient(circle at 86% 30%, rgba(245, 158, 11, 0.90) 0 2px, rgba(245, 158, 11, 0) 8px),
        radial-gradient(circle at 90% 78%, rgba(229, 57, 53, 0.85) 0 2px, rgba(229, 57, 53, 0) 8px),
        radial-gradient(circle at 72% 88%, rgba(245, 158, 11, 0.85) 0 2px, rgba(245, 158, 11, 0) 8px),
        radial-gradient(circle at 18% 86%, rgba(229, 57, 53, 0.85) 0 2px, rgba(229, 57, 53, 0) 8px),
        radial-gradient(circle at 10% 70%, rgba(245, 158, 11, 0.85) 0 2px, rgba(245, 158, 11, 0) 8px);
    filter: drop-shadow(0 0 10px rgba(245, 158, 11, 0.25)) drop-shadow(0 0 12px rgba(229, 57, 53, 0.25));
    animation: flash-particles-orbit 1.9s linear infinite;
}

@keyframes flash-particles-orbit {
    0% { transform: rotate(0deg); opacity: 0.65; }
    50% { opacity: 0.95; }
    100% { transform: rotate(360deg); opacity: 0.65; }
}

.flash-card-header {
    width: 100%;
    height: 42px;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 0;
    background: transparent;
    transition: height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1),
                background-color 0.35s ease,
                background 0.35s ease,
                border-color 0.35s ease,
                padding 0.35s ease;
}

.flash-card.active .flash-card-header {
    height: 70px;
    min-height: 70px;
    border-bottom: 1px solid #f1f5f9;
    justify-content: flex-start;
    padding: 0 24px;
    background: linear-gradient(
        90deg,
        rgba(229, 57, 53, 0.92) 0%,
        rgba(148, 163, 184, 0.22) 52%,
        rgba(255, 255, 255, 0.95) 100%
    );
}

.flash-logo-svg {
    width: 34px;
    height: 34px;
    transition: all 0.5s;
    /* 3 camadas: dourado + vermelho + dourado */
    filter:
        drop-shadow(0 0 6px rgba(245, 158, 11, 0.55))
        drop-shadow(0 0 10px rgba(211, 47, 47, 0.55))
        drop-shadow(0 0 14px rgba(245, 158, 11, 0.35));
}

.bolt-core { fill: rgba(33, 33, 33, 0.35); }
.bolt-line-red { fill: #E53935; }
.bolt-line-yellow { fill: #F59E0B; }

.flash-card.active .flash-logo-svg {
    position: absolute;
    top: 50%;
    left: 20px;
    transform: translateY(-50%) rotate(0deg);
    animation: flash-bolt-sweep 0.75s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes flash-bolt-sweep {
    0% {
        left: 20px;
        transform: translateY(-50%) rotate(0deg);
    }
    100% {
        left: calc(100% - 20px - 34px);
        transform: translateY(-50%) rotate(-12deg);
    }
}

.flash-card.active .flash-logo-svg .bolt-line-red {
    animation: flash-bolt-color-red 0.75s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.flash-card.active .flash-logo-svg .bolt-line-yellow {
    animation: flash-bolt-color-gold 0.75s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes flash-bolt-color-red {
    0% { fill: #E53935; filter: none; }
    100% { fill: #FF1F1F; filter: drop-shadow(0 0 6px rgba(255, 31, 31, 0.45)); }
}

@keyframes flash-bolt-color-gold {
    0% { fill: #F59E0B; opacity: 0.75; }
    100% { fill: #FBBF24; opacity: 1; filter: drop-shadow(0 0 8px rgba(251, 191, 36, 0.55)); }
}

.flash-title {
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    color: white; /* Texto branco na pílula preta */
    transition: all 0.4s;
    white-space: nowrap;
    letter-spacing: 0.5px;
}

.flash-card.active .flash-title {
    color: #1e293b; /* Texto escuro no card branco */
    font-size: 0.75rem;
}

.flash-card-body {
    flex: 1;
    padding: 16px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);
    transition: all 0.5s 0.2s;
    overflow-y: auto;
    width: 100%;
}

.flash-card.active .flash-card-body {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.flash-item {
    padding: 12px 16px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 8px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
}

.flash-item:hover {
    background: #D32F2F;
    border-color: #D32F2F;
    transform: translateX(4px);
    box-shadow: 0 4px 12px rgba(211, 47, 47, 0.3);
}

.flash-item:hover .flash-item-icon {
    background: #FFFFFF;
}

.flash-item:hover .flash-item-icon svg {
    stroke: #D32F2F;
}

.flash-item:hover .flash-item-label,
.flash-item:hover .flash-item-desc {
    color: #FFFFFF;
}

.flash-item-icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F5F5F5;
    transition: all 0.3s;
}

.flash-item-icon svg {
    width: 20px;
    height: 20px;
    stroke: #212121;
    transition: all 0.3s;
}

.flash-item-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.flash-item-label {
    font-size: 0.75rem;
    font-weight: 700;
    color: #212121;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    transition: all 0.3s;
}

.flash-item-desc {
    font-size: 0.65rem;
    font-weight: 500;
    color: #64748B;
    transition: all 0.3s;
}

/* --- ESTILO DO EDITOR (SIDEBAR) --- */

#dossier-sidebar .nav-tab-pro { 
    display: flex; align-items: center; gap: 0.75rem; padding: 0.85rem 1rem;
    font-size: 0.75rem; font-weight: 800; color: #64748b; border-radius: 0.75rem;
    transition: all 0.2s; cursor: pointer; margin-bottom: 0.25rem; text-transform: uppercase;
}
#dossier-sidebar .nav-tab-pro svg {
    width: 18px;
    height: 18px;
    stroke: #64748B;
    transition: all 0.2s;
    flex-shrink: 0;
}
#dossier-sidebar .nav-tab-pro:hover svg { stroke: #111827; }
#dossier-sidebar .nav-tab-pro:hover { background: #FFFFFF; color: #111827; }
#dossier-sidebar .nav-tab-pro.active { background: #FFFFFF; color: #111827; box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.08); border: 1px solid #E5E7EB; }
#dossier-sidebar .nav-tab-pro.active svg { stroke: #111827; }

.nav-icon {
    width: 18px;
    height: 18px;
    stroke: #64748B;
    flex-shrink: 0;
}

/* --- UPLOAD DE FOTO NO EDITOR --- */
.editor-avatar-container {
    position: relative;
    cursor: pointer;
    margin-bottom: 1rem;
}
.editor-avatar-container:hover .avatar-overlay {
    opacity: 1;
}
.avatar-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s;
    border: 4px solid white;
}
.avatar-overlay svg {
    color: white;
    width: 24px;
    height: 24px;
}

/* --- COMPONENTES DE FORMULÁRIO --- */
.pro-input { 
    width: 100%; 
    border: 1.5px solid #e2e8f0; 
    border-radius: 0.75rem; 
    padding: 0.625rem 1rem; 
    font-size: 0.875rem; 
    outline: none; 
    transition: all 0.2s; 
    background: #fff;
    font-weight: 500 !important; /* padroniza e remove negrito herdado de classes tailwind */
    text-transform: uppercase !important; /* tudo digitado em CAIXA ALTA */
}
.pro-input:focus { border-color: #D32F2F; ring: 3px rgba(211, 47, 47, 0.1); }

.pro-label { 
    display: block;
    font-size: 0.65rem;
    font-weight: 900;
    color: #64748B; /* mesmo cinza dos nav-tabs "normais" */
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    text-transform: uppercase; /* FORÇA LABEL EM CAIXA ALTA */
    margin-bottom: 0.35rem;
    letter-spacing: 0.5px;
}

.pro-card-section { 
    background: #F3F4F6;
    border-radius: 16px;
    border: 1px solid #E5E7EB;
    padding: 2.5rem;
    box-shadow:
        0 10px 20px -16px rgba(15, 23, 42, 0.18),
        0 4px 6px -1px rgba(15, 23, 42, 0.06);
}

/* --- PERSONAL (EDITOR) - layout no estilo do print --- */
.editor-personal-frame {
    background: #F3F4F6;
    border-color: transparent;
}
.editor-personal-header {
    display: grid;
    grid-template-columns: 118px 1fr;
    gap: 18px;
    align-items: start;
}
.editor-personal-photo {
    position: relative;
    width: 118px;
    height: 118px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(226, 232, 240, 0.9);
    border-radius: 18px;
    box-shadow: 0 14px 28px -18px rgba(0,0,0,0.25);
    display: grid;
    place-items: center;
    cursor: pointer;
}
.editor-personal-avatar {
    width: 84px;
    height: 84px;
    border-radius: 9999px;
    border: 3px solid #D32F2F;
    object-fit: cover;
    background: #f8fafc;
}
.editor-personal-photo-btn {
    position: absolute;
    right: 10px;
    bottom: 10px;
    width: 34px;
    height: 34px;
    border-radius: 9999px;
    border: 1px solid rgba(226, 232, 240, 0.95);
    background: white;
    box-shadow: 0 10px 18px -14px rgba(0,0,0,0.35);
    display: grid;
    place-items: center;
    color: #111827;
}
.editor-personal-photo-btn svg { width: 16px; height: 16px; }
.editor-personal-name { min-width: 0; }
.editor-personal-name-input {
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 18px -16px rgba(0,0,0,0.25);
    border-color: rgba(226, 232, 240, 0.95);
}

@media (max-width: 768px) {
    .editor-pro-controls-row { display: flex; flex-direction: column; align-items: stretch; gap: 12px; }
    .editor-actions { position: static; transform: none; right: auto; justify-content: flex-end; margin-left: auto; }
    .editor-horizontal-nav { justify-content: center; }
    .editor-personal-header { grid-template-columns: 1fr; }
    .editor-personal-photo { margin: 0 auto; }
}

/* --- DOSSIÊ PAPER VIEW --- */
.paper-dossier-container {
    scroll-behavior: smooth;
}

/* Botão de imprimir fora do widget flutuante */
.dossier-top-actions {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 120;
    display: flex;
    align-items: center;
    gap: 10px;
}

html.exporting-dossier-pdf .dossier-top-actions {
    display: none !important;
}

.paper-dossier {
    background: #FFFFFF;
    width: 100%;
    max-width: 210mm; 
    min-height: 297mm;
    padding: 2.5rem;
    box-shadow: 0 20px 50px rgba(0,0,0,0.15);
    position: relative;
    font-family: 'Courier New', Courier, monospace;
    color: #212121;
    border: 1px solid #E2E8F0;
    margin: 2rem auto;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Tema "vintage" (documento antigo / carimbo) */
.paper-dossier.paper-dossier--vintage {
    background:
        radial-gradient(1200px 800px at 20% 10%, rgba(0, 0, 0, 0.06), rgba(255, 255, 255, 0) 55%),
        radial-gradient(900px 600px at 80% 20%, rgba(0, 0, 0, 0.05), rgba(255, 255, 255, 0) 60%),
        radial-gradient(700px 500px at 30% 85%, rgba(0, 0, 0, 0.05), rgba(255, 255, 255, 0) 65%),
        repeating-linear-gradient(0deg, rgba(0,0,0,0.012), rgba(0,0,0,0.012) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0) 6px),
        #F7F7F7;
    /* Cabe em telas menores sem “estourar” */
    max-width: min(210mm, calc(100vw - 24px));
    min-height: auto;
    margin: 16px auto;
    padding: clamp(16px, 3vw, 28px);

    border: 2px solid rgba(0, 0, 0, 0.85);
    box-shadow: 0 26px 70px rgba(0,0,0,0.22);
    color: #000;
    font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
    font-size: 14px;
}

/* Preto e branco + CAIXA ALTA */
.paper-dossier.paper-dossier--vintage,
.paper-dossier.paper-dossier--vintage * {
    color: #000 !important;
    text-transform: uppercase;
}

/* Remove qualquer ícone/visual colorido */
.paper-dossier.paper-dossier--vintage svg {
    display: none !important;
}

/* Padronização total de tipografia (evita text-[..], text-2xl etc.) */
.paper-dossier.paper-dossier--vintage p,
.paper-dossier.paper-dossier--vintage span,
.paper-dossier.paper-dossier--vintage div,
.paper-dossier.paper-dossier--vintage td,
.paper-dossier.paper-dossier--vintage th,
.paper-dossier.paper-dossier--vintage li,
.paper-dossier.paper-dossier--vintage small,
.paper-dossier.paper-dossier--vintage h3,
.paper-dossier.paper-dossier--vintage h4,
.paper-dossier.paper-dossier--vintage h5 {
    font-size: 1rem !important;
    font-weight: 500 !important;
    font-style: normal !important;
    letter-spacing: 0 !important;
}

.paper-dossier.paper-dossier--vintage .paper-field-label,
.paper-dossier.paper-dossier--vintage .paper-table th,
.paper-dossier.paper-dossier--vintage .paper-section-bar,
.paper-dossier.paper-dossier--vintage .paper-title h2,
.paper-dossier.paper-dossier--vintage .paper-stamp {
    font-weight: 900 !important;
    letter-spacing: 1px !important;
}

/* Garante que nada pinte fundos por inline style/classe */
.paper-dossier.paper-dossier--vintage [class*="bg-"] {
    background: transparent !important;
}
.paper-dossier.paper-dossier--vintage .grid,
.paper-dossier.paper-dossier--vintage .paper-row,
.paper-dossier.paper-dossier--vintage .paper-dashed-box {
    gap: 12px !important;
}
.paper-dossier.paper-dossier--vintage .grid > *,
.paper-dossier.paper-dossier--vintage .paper-row > *,
.paper-dossier.paper-dossier--vintage .paper-dashed-box > * {
    min-width: 0;
}
.paper-dossier.paper-dossier--vintage p,
.paper-dossier.paper-dossier--vintage span,
.paper-dossier.paper-dossier--vintage td,
.paper-dossier.paper-dossier--vintage th,
.paper-dossier.paper-dossier--vintage div {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.paper-dossier.paper-dossier--vintage [class*="border-"] {
    border-color: #000 !important;
}
.paper-dossier.paper-dossier--vintage .paper-section-bar {
    background: transparent !important;
}
.paper-dossier.paper-dossier--vintage .paper-title p {
    color: #000 !important;
}
.paper-dossier.paper-dossier--vintage .paper-stamp {
    border-color: #000 !important;
    color: #000 !important;
}
.paper-dossier.paper-dossier--vintage .paper-table thead tr {
    background: transparent !important;
}
.paper-dossier.paper-dossier--vintage .paper-table td,
.paper-dossier.paper-dossier--vintage .paper-table th {
    background: transparent !important;
}

.paper-dossier.paper-dossier--vintage .paper-field,
.paper-dossier.paper-dossier--vintage .paper-section-bar,
.paper-dossier.paper-dossier--vintage .paper-table th,
.paper-dossier.paper-dossier--vintage .paper-table td {
    border-color: #000 !important;
}

.paper-dossier.paper-dossier--vintage::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(0,0,0,0.04), rgba(255,255,255,0) 18%, rgba(0,0,0,0.05) 100%),
        radial-gradient(600px 260px at 50% 0%, rgba(0,0,0,0.06), rgba(255,255,255,0) 55%),
        radial-gradient(400px 240px at 0% 40%, rgba(0,0,0,0.05), rgba(255,255,255,0) 55%),
        radial-gradient(450px 260px at 100% 55%, rgba(0,0,0,0.05), rgba(255,255,255,0) 55%);
    mix-blend-mode: multiply;
    opacity: 0.55;
}

.paper-stamp {
    position: absolute;
    top: 40px;
    right: 40px;
    border: 3px double #b71c1c;
    color: #b71c1c;
    padding: 8px 16px;
    font-size: 1.3rem;
    font-weight: 900;
    text-transform: uppercase;
    transform: rotate(-12deg);
    opacity: 0.5;
    letter-spacing: 2px;
    pointer-events: none;
    z-index: 10;
}

.paper-dossier.paper-dossier--vintage .paper-stamp {
    border: 3px double rgba(185, 28, 28, 0.85);
    color: rgba(185, 28, 28, 0.85);
    opacity: 0.42;
    filter: saturate(1.1);
}

.paper-header {
    border-bottom: 2px solid rgba(17, 24, 39, 0.85);
    padding-bottom: 1.25rem;
    margin-bottom: 2rem;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.paper-title h2 { font-size: 1.2rem; font-weight: 900; text-transform: uppercase; letter-spacing: 1px; color: #000; margin: 0; }
.paper-title p { font-size: 1rem; font-weight: 600; color: #000; margin-top: 4px; }

.paper-summary-grid {
    margin: -0.5rem 0 2rem;
}

.paper-summary-grid-top {
    margin-bottom: 0.65rem;
}

.paper-employee-name-block {
    margin: -0.5rem 0 1.25rem;
}

.paper-employee-name-label {
    font-size: 0.85rem;
    font-weight: 900 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #000;
    opacity: 0.85;
    margin-bottom: 0.25rem;
}

.paper-dossier.paper-dossier--vintage .paper-employee-name-label {
    font-weight: 900 !important;
    opacity: 1 !important;
}

.paper-employee-name {
    font-size: 1.1rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #000;
}

.paper-photo-frame {
    width: 110px;
    height: 130px;
    border: 2px solid rgba(17, 24, 39, 0.85);
    padding: 5px;
    background: rgba(255, 255, 255, 0.65);
    transform: rotate(1deg);
    box-shadow: 6px 6px 18px rgba(0,0,0,0.10);
}
.paper-photo-frame img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.35) contrast(1.2); }

.paper-dashed-box {
    border: 1.5px dashed #E2E8F0;
    padding: 1.25rem;
    background: rgba(255,255,255,0.6);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin-bottom: 2rem;
}

.paper-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin-bottom: 0.65rem;
}

.paper-field {
    border: 2px solid rgba(17, 24, 39, 0.85);
    background: rgba(255, 255, 255, 0.55);
    padding: 10px 12px;
    display: grid;
    grid-template-columns: clamp(120px, 28%, 190px) minmax(0, 1fr);
    align-items: start;
    column-gap: 12px;
    row-gap: 6px;
    min-width: 0;
}

.paper-field-label { font-size: 1rem; font-weight: 900; color: #111827; text-transform: uppercase; white-space: normal; line-height: 1.2; }
.paper-field-value { font-size: 1rem; font-weight: 500; color: #111827; text-transform: uppercase; }

.paper-dossier.paper-dossier--vintage .paper-field-label {
    padding-right: 10px;
    border-right: 2px solid rgba(17, 24, 39, 0.85);
}

/* No vintage: sempre "título em cima, dado embaixo" */
.paper-dossier.paper-dossier--vintage .paper-field {
    grid-template-columns: 1fr;
    row-gap: 6px;
}
.paper-dossier.paper-dossier--vintage .paper-field .paper-field-label {
    border-right: none !important;
    padding-right: 0 !important;
}

.paper-field.paper-field--stack {
    grid-template-columns: 1fr;
    row-gap: 6px;
}

.paper-field.paper-field--stack .paper-field-label {
    border-right: none !important;
    padding-right: 0 !important;
}

.paper-field.paper-field--equal {
    min-height: 84px;
}

.paper-dossier.paper-dossier--vintage .paper-field-value {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.25;
}

.paper-section-bar {
    background: transparent;
    color: #111827;
    padding: 8px 14px;
    font-size: 1.15rem;
    font-weight: 900;
    text-transform: uppercase;
    margin-top: 2rem;
    margin-bottom: 1.25rem;
    letter-spacing: 1px;
    border: 2px solid rgba(17, 24, 39, 0.85);
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.paper-section-bar.red,
.paper-section-bar.blue,
.paper-section-bar.orange,
.paper-section-bar.green { background: transparent; }

.paper-table { width: 100%; border-collapse: collapse; font-size: 1rem; margin-bottom: 1.5rem; }
.paper-table th { text-align: left; border-bottom: 2px solid rgba(17, 24, 39, 0.85); padding: 10px; text-transform: uppercase; color: #111827; font-weight: 900; }
.paper-table td { border-bottom: 1px solid rgba(17, 24, 39, 0.18); padding: 10px; font-weight: 600; color: #111827; }

.paper-dossier.paper-dossier--vintage .paper-table {
    table-layout: fixed;
}

.paper-dossier.paper-dossier--vintage .paper-table th,
.paper-dossier.paper-dossier--vintage .paper-table td {
    vertical-align: top;
    white-space: normal;
    overflow-wrap: anywhere;
}

.paper-footer {
    margin-top: 3rem;
    padding-top: 1rem;
    border-top: 2px solid rgba(17, 24, 39, 0.35);
    display: flex;
    justify-content: space-between;
    font-size: 0.65rem;
    font-weight: bold;
    color: rgba(17, 24, 39, 0.75);
    text-transform: uppercase;
}

/* --- PAINEL DE VARIAÇÃO SALARIAL --- */
.salary-variation-panel {
    border-radius: 12px;
    font-family: 'Courier New', Courier, monospace;
}

/* --- CUSTOM SCROLL --- */
.custom-scroll::-webkit-scrollbar { width: 6px; height: 6px; }
.custom-scroll::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 10px; }
.custom-scroll::-webkit-scrollbar-thumb { background: #E2E8F0; border-radius: 10px; border: 1px solid #F5F5F5; }
.custom-scroll::-webkit-scrollbar-thumb:hover { background: #b71c1c; }

/* Mantém espaço do scrollbar (não “some”) e garante fino no Firefox */
#dossier-pages-container.custom-scroll {
    scrollbar-gutter: stable;
    scrollbar-width: thin;
}

/* --- LAYOUT UNIFICADO COM HEADER GLOBAL --- */
#main-container {
    min-height: calc(100vh - 120px);
}

/* Ajuste para compatibilidade com global-layout */
@media (min-width: 768px) {
    body.sidebar-expanded #main-container {
        margin-left: 0;
    }
}

/* --- TABLE VIEW (LISTA) --- */
.employees-table-container {
    @apply overflow-x-auto;
}
.employees-table {
    @apply min-w-full;
}
.employees-table thead th {
    @apply px-4 py-3 text-center text-xs font-black uppercase tracking-wider text-gray-400 bg-gray-50/60 border-b border-gray-100;
}
.employees-table tbody td {
    @apply px-4 py-3.5 text-center whitespace-nowrap text-sm text-gray-600 border-b border-gray-50/60;
}
.employees-table tbody tr {
    @apply hover:bg-gray-50/50 transition-colors;
}
.employees-table .employee-row-clickable {
    @apply cursor-pointer;
}

/* --- TABELA DA LISTA (employees-pro.html) --- */
#table-container table thead th {
    text-align: center !important;
}
#table-container table tbody td {
    text-align: center !important;
}

/* --- NOVA SIDEBAR DINÂMICA DO DOSSIER --- */
.dossier-sidebar {
    width: 80px;
    min-width: 80px;
    z-index: 50;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.dossier-sidebar.expanded {
    width: auto;
    min-width: 220px;
    max-width: 360px;
}

.dossier-sidebar.collapsed .dossier-identity-content {
    max-height: 0;
    opacity: 0;
    margin-top: 0;
    overflow: hidden;
}

.dossier-sidebar.expanded .dossier-identity-content {
    max-height: 300px;
    opacity: 1;
    margin-top: 1rem;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.dossier-sidebar.expanded .dossier-expand-hint {
    display: none;
}

.dossier-sidebar.collapsed .nav-text {
    display: none;
}

.dossier-sidebar.expanded .nav-text {
    display: inline;
}

.dossier-sidebar.collapsed #dossier-tabs-nav .nav-tab-pro {
    justify-content: center;
    padding: 0.85rem 0.5rem;
}

.dossier-sidebar.expanded #dossier-tabs-nav .nav-tab-pro {
    justify-content: flex-start;
    padding: 0.85rem 1rem;
    flex-wrap: wrap;
    align-items: center;
}

.dossier-identity-block {
    cursor: pointer;
    transition: background 0.2s;
}

.dossier-identity-block:hover {
    background: #F5F5F5;
}

.dossier-tech-info {
    font-size: 9px;
}

.dossier-print-btn {
    justify-content: center;
}

.dossier-sidebar.expanded .dossier-print-btn {
    justify-content: flex-start;
}

/* --- WIDGET FLUTUANTE DE ACESSO RÁPIDO (DOSSIER) --- */
.dossier-flash-widget {
    position: absolute;
    top: 20px;
    left: 20px;
    right: auto;
    z-index: 100;
    perspective: 1200px;
}

.dossier-flash-card:not(.flash-card) {
    width: 48px;
    height: 48px;
    background: #E53935;
    border-radius: 16px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.2);
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    overflow: hidden;
    cursor: pointer;
    display: flex;
    flex-direction: column;
}

.dossier-flash-card:not(.flash-card):hover {
    transform: scale(1.05);
}

.dossier-flash-card:not(.flash-card).active {
    width: 360px;
    height: 640px;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(20px);
    border: 1px solid #e5e7eb;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    border-radius: 24px;
}

.dossier-flash-header:not(.flash-card-header) {
    height: 48px;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.3s;
}

.dossier-flash-card:not(.flash-card).active .dossier-flash-header {
    height: 64px;
    min-height: 64px;
    border-bottom: 1px solid #f1f5f9;
    justify-content: flex-start;
    padding: 0 20px;
    background: transparent;
}

.dossier-flash-logo:not(.flash-logo-svg) {
    width: 20px;
    height: 20px;
    filter: drop-shadow(0 0 10px rgba(211, 47, 47, 0.55));
    transition: all 0.4s;
}

.dossier-flash-card:not(.flash-card).active .dossier-flash-logo {
    width: 26px;
    height: 26px;
    transform: rotate(-10deg);
}

.dossier-flash-title:not(.flash-title) {
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    color: white;
    white-space: nowrap;
    letter-spacing: 0.5px;
    transition: all 0.3s;
    display: none;
}

.dossier-flash-card:not(.flash-card).active .dossier-flash-title {
    display: block;
    color: #1e293b;
    font-size: 0.7rem;
}

.dossier-flash-body:not(.flash-card-body) {
    flex: 1;
    padding: 12px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.4s 0.15s;
    overflow-y: auto;
}

.dossier-widget-identity {
    border: 1px solid #E2E8F0;
    background: #FFFFFF;
    border-radius: 18px;
    padding: 12px;
    box-shadow: 0 18px 30px -26px rgba(0,0,0,0.25);
}
.dossier-widget-identity-top {
    display: flex;
    align-items: center;
    gap: 12px;
}
.dossier-widget-avatar {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    border: 2px solid #E53935;
    object-fit: cover;
    background: #F3F4F6;
    flex-shrink: 0;
}
.dossier-widget-name {
    font-size: 0.85rem;
    font-weight: 900;
    color: #212121;
    text-transform: uppercase;
    font-style: italic;
    line-height: 1.1;
    word-break: break-word;
}
.dossier-widget-tags { margin-top: 4px; display: flex; flex-direction: column; gap: 4px; }
.dossier-widget-tag {
    display: inline-block;
    width: fit-content;
    background: #F5F5F5;
    border: 1px solid #E2E8F0;
    border-radius: 9999px;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 900;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    color: #64748B;
}
.dossier-widget-sub {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #64748B;
    line-height: 1.2;
}
.dossier-widget-meta {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #E2E8F0;
}
.dossier-widget-meta-line {
    font-size: 10px;
    font-weight: 900;
    color: #212121;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dossier-widget-meta-line--muted { color: #64748B; font-weight: 800; }
.dossier-widget-section-title {
    margin-top: 12px;
    margin-bottom: 8px;
    font-size: 11px;
    font-weight: 900;
    color: #212121;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}
.dossier-widget-divider {
    height: 1px;
    background: #E2E8F0;
    margin: 12px 0;
}
.dossier-widget-nav .nav-tab-pro {
    padding: 0.65rem 0.75rem;
    border-radius: 14px;
    font-size: 0.68rem;
    color: #64748B;
    background: transparent;
}
.dossier-widget-nav .nav-tab-pro:hover { background: #F5F5F5; color: #D32F2F; }
.dossier-widget-nav .nav-tab-pro:hover { background: #FFFFFF; color: #111827; }
.dossier-widget-nav .nav-tab-pro:hover svg { stroke: #111827; }
.dossier-widget-nav .nav-tab-pro.active { background: #FFFFFF; color: #111827; border: 1px solid #E5E7EB; box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.08); }
.dossier-widget-nav .nav-tab-pro.active svg { stroke: #111827; }
.dossier-widget-print.dossier-print-btn { justify-content: flex-start; }

@media (max-width: 420px) {
    .dossier-flash-card:not(.flash-card).active { width: min(360px, calc(100vw - 24px)); height: min(640px, calc(100vh - 24px)); }
    .dossier-flash-widget { top: 12px; left: 12px; right: auto; }
}

.dossier-flash-card:not(.flash-card).active .dossier-flash-body {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dossier-flash-item:not(.flash-item) {
    padding: 10px 14px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 4px;
    transition: all 0.25s;
    cursor: pointer;
}

.dossier-flash-item:not(.flash-item):hover {
    background: #f8fafc;
    transform: translateX(4px);
}

.dossier-flash-icon:not(.flash-item-icon) {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
    background: #F5F5F5;
    transition: all 0.3s;
}

.dossier-flash-icon:not(.flash-item-icon) svg {
    width: 18px;
    height: 18px;
    stroke: #212121;
    transition: all 0.3s;
}

.dossier-flash-item:not(.flash-item):hover .dossier-flash-icon {
    background: #FFFFFF;
}

.dossier-flash-item:not(.flash-item):hover .dossier-flash-icon svg {
    stroke: #D32F2F;
}

.dossier-flash-text:not(.flash-item-text) {
    display: flex;
    flex-direction: column;
    opacity: 0;
    transition: all 0.3s;
}

.dossier-flash-card:not(.flash-card).active .dossier-flash-text {
    opacity: 1;
}

.dossier-flash-label:not(.flash-item-label) {
    font-size: 0.7rem;
    font-weight: 800;
    color: #1e293b;
}

.dossier-flash-desc:not(.flash-item-desc) {
    font-size: 0.6rem;
    color: #94a3b8;
    font-weight: 600;
}

/* --- REGRAS DE IMPRESSÃO (PDF) --- */
@media print {
    /* A4 cheio: margens controladas no conteúdo, não no @page (evita "encolher" o layout) */
    @page { margin: 0; size: A4; }
    html, body { background: white !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
    header, aside, button, .nav-tab-pro, #btn-back-to-list, #btn-save-master, #global-header, #global-sidebar, .dossier-flash-widget { display: none !important; }
    /* Forçar remoção do header global (evita banner no topo do PDF) */
    #global-header, header#global-header, #global-page-title-band, #global-page-title { display: none !important; }
    body { padding-top: 0 !important; padding-left: 0 !important; }
    #main-container { overflow: visible !important; height: auto !important; padding: 0 !important; }
    #module-dossier { display: block !important; position: static !important; background: white !important; height: auto !important; overflow: visible !important; }
    #dossier-pages-container { padding: 0 !important; margin: 0 !important; overflow: visible !important; height: auto !important; display: flex !important; justify-content: center !important; }
    /* Margem interna do conteúdo para não encostar nas bordas do A4 */
    .paper-dossier { box-shadow: none !important; border: none !important; width: 210mm !important; max-width: 210mm !important; margin: 0 auto !important; padding: 10mm !important; background: #ffffff !important; }
    /* Imprimir somente o dossiê */
    #main-container > section:not(#module-dossier) { display: none !important; }
    #module-dossier .dossier-top-actions { display: none !important; }

    /* Paginação e organização */
    .dossier-print-section { break-inside: avoid-page; page-break-inside: avoid; margin: 0 0 10mm 0; }
    .dossier-print-section[data-print-break="page"] { break-before: page; page-break-before: always; }

    /* Remover somente a "logo"/foto do cabeçalho na impressão */
    .paper-photo-frame { display: block !important; }
    .paper-header { margin-bottom: 8mm !important; }

    .paper-table thead { display: table-header-group; }
    .paper-table tfoot { display: table-footer-group; }
    .paper-table tr { break-inside: avoid; page-break-inside: avoid; }

    /* Compactação automática (ativada via JS) */
    html.printing-dossier-compact .paper-dossier.paper-dossier--vintage { font-size: 12px !important; }
    html.printing-dossier-compact .paper-dossier.paper-dossier--vintage .paper-field { padding: 8px 10px !important; }
    html.printing-dossier-compact .paper-dossier.paper-dossier--vintage .paper-section-bar { margin-top: 10mm !important; margin-bottom: 5mm !important; }

    .paper-stamp { opacity: 0.3 !important; }
}
