:root {
    --navy-950: #08111f;
    --navy-900: #0d1728;
    --navy-800: #142238;
    --blue-700: #1d4ed8;
    --blue-600: #2563eb;
    --blue-500: #3b82f6;
    --cyan-500: #06b6d4;
    --violet-500: #8b5cf6;
    --green-600: #16a34a;
    --amber-600: #d97706;
    --red-600: #dc2626;
    --slate-900: #0f172a;
    --slate-800: #1e293b;
    --slate-700: #334155;
    --slate-600: #475569;
    --slate-500: #64748b;
    --slate-400: #94a3b8;
    --slate-300: #cbd5e1;
    --slate-200: #e2e8f0;
    --slate-100: #f1f5f9;
    --slate-50: #f8fafc;
    --white: #fff;
    --surface: rgba(255,255,255,.92);
    --border: rgba(15,23,42,.09);
    --shadow-sm: 0 8px 20px rgba(15,23,42,.06);
    --shadow-md: 0 18px 45px rgba(15,23,42,.10);
    --shadow-lg: 0 28px 70px rgba(15,23,42,.15);
    --radius-sm: 10px;
    --radius: 16px;
    --radius-lg: 24px;
    --primary-color: var(--navy-900);
    --accent-color: var(--blue-600);
    --accent-hover: var(--blue-700);
    --bg-color: #f4f7fb;
    --card-bg: var(--surface);
    --text-main: var(--slate-900);
    --text-muted: var(--slate-500);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
    min-height: 100vh;
    color: var(--text-main);
    background:
      radial-gradient(circle at top left, rgba(59,130,246,.08), transparent 34%),
      radial-gradient(circle at 90% 20%, rgba(139,92,246,.06), transparent 30%),
      var(--bg-color);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.55;
    overflow-x: hidden;
}
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }

/* ---------- utilidades ---------- */
.container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.muted { color: var(--text-muted); }
.small { font-size: .86rem; }
.text-right { text-align: right; }
.stack { display: flex; flex-direction: column; gap: 16px; }
.inline { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.spacer { flex: 1; }
.mt-1 { margin-top: 8px; }
.mt-2 { margin-top: 16px; }
.mt-3 { margin-top: 24px; }
.mb-1 { margin-bottom: 8px; }
.mb-2 { margin-bottom: 16px; }
.mb-3 { margin-bottom: 24px; }

/* ---------- topbar pública ---------- */
.navbar {
    width: 100%;
    min-height: 76px;
    padding: 14px max(20px, 5vw);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(255,255,255,.88);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(15,23,42,.07);
}
.logo {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: 1.4rem;
    font-weight: 900;
    letter-spacing: -.04em;
    text-decoration: none;
    color: var(--navy-900);
}
.logo span { color: var(--blue-600); }
.logo-badge {
    margin-left: 10px;
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--slate-100);
    color: var(--slate-600);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .02em;
}
.nav-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.nav-link { text-decoration: none; color: var(--slate-600); font-weight: 700; font-size: .93rem; padding: 10px 12px; border-radius: 10px; }
.nav-link:hover { background: var(--slate-100); color: var(--navy-900); }

/* ---------- botões ---------- */
.btn-primary, .btn-secondary, .btn-outline, .btn-danger, .btn-success, .btn-register, .btn-login {
    border: 0;
    border-radius: 11px;
    padding: 11px 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none;
    font-weight: 800;
    font-size: .92rem;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.btn-primary, .btn-register {
    color: #fff !important;
    background: linear-gradient(135deg, var(--blue-600), var(--violet-500));
    box-shadow: 0 10px 25px rgba(37,99,235,.23);
}
.btn-primary:hover, .btn-register:hover { transform: translateY(-1px); box-shadow: 0 14px 30px rgba(37,99,235,.32); }
.btn-secondary { background: var(--navy-900); color: #fff; }
.btn-secondary:hover { background: #16243a; transform: translateY(-1px); }
.btn-outline, .btn-login { background: #fff; color: var(--slate-700); border: 1px solid var(--slate-200); }
.btn-outline:hover, .btn-login:hover { border-color: var(--blue-500); color: var(--blue-700); background: #f8fbff; }
.btn-danger { background: #fff1f2; color: #be123c; border: 1px solid #fecdd3; }
.btn-danger:hover { background: #ffe4e6; }
.btn-success { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.btn-success:hover { background: #d1fae5; }
.btn-sm { padding: 7px 10px; border-radius: 9px; font-size: .8rem; }
.btn-full { width: 100%; }

/* ---------- hero pública ---------- */
.hero {
    position: relative;
    color: #fff;
    overflow: hidden;
    background:
      radial-gradient(circle at 15% 20%, rgba(59,130,246,.34), transparent 32%),
      radial-gradient(circle at 82% 30%, rgba(139,92,246,.30), transparent 28%),
      linear-gradient(135deg, #07101d 0%, #101b31 46%, #14213a 100%);
}
.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(to bottom, #000, transparent 88%);
    pointer-events: none;
}
.hero-inner {
    width: min(1180px, calc(100% - 40px));
    min-height: 520px;
    margin: 0 auto;
    padding: 86px 0 112px;
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    align-items: center;
    gap: 60px;
    position: relative;
    z-index: 2;
}
.hero-kicker { display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; background: rgba(255,255,255,.07); color: #dbeafe; font-size: .82rem; font-weight: 800; margin-bottom: 20px; }
.hero h1 { max-width: 760px; font-size: clamp(2.7rem, 5vw, 5.1rem); line-height: .98; letter-spacing: -.055em; margin-bottom: 22px; }
.hero p { max-width: 680px; color: #cbd5e1; font-size: clamp(1rem, 1.5vw, 1.18rem); }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.hero .btn-outline { color: #fff; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18); }
.hero .btn-outline:hover { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.32); }
.hero-panel { border: 1px solid rgba(255,255,255,.12); border-radius: 26px; padding: 22px; background: rgba(255,255,255,.065); backdrop-filter: blur(18px); box-shadow: 0 25px 70px rgba(0,0,0,.2); }
.hero-panel-label { color: #93c5fd; font-size: .78rem; font-weight: 900; text-transform: uppercase; letter-spacing: .12em; }
.hero-metric { padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.09); display: flex; justify-content: space-between; gap: 20px; align-items: end; }
.hero-metric:last-child { border-bottom: 0; }
.hero-metric strong { font-size: 2rem; letter-spacing: -.04em; }
.hero-metric span { color: #cbd5e1; font-size: .82rem; text-align: right; }

/* ---------- seções públicas ---------- */
.section { padding: 76px 0; }
.section-soft { background: rgba(255,255,255,.66); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.section-header { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.section-eyebrow { color: var(--blue-600); font-weight: 900; text-transform: uppercase; font-size: .76rem; letter-spacing: .13em; }
.section-title { font-size: clamp(1.8rem, 3vw, 2.55rem); letter-spacing: -.04em; line-height: 1.1; margin-top: 6px; }
.section-description { max-width: 620px; color: var(--text-muted); margin-top: 8px; }
.job-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.job-card {
    position: relative;
    padding: 24px;
    min-height: 280px;
    background: var(--surface);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 20px;
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    transition: .2s ease;
}
.job-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: rgba(37,99,235,.18); }
.job-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 28px; }
.company-avatar { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; background: linear-gradient(135deg,#dbeafe,#ede9fe); color: var(--blue-700); font-weight: 900; overflow: hidden; flex: 0 0 auto; }
.company-avatar img { width: 100%; height: 100%; object-fit: cover; }
.job-title { font-size: 1.18rem; font-weight: 900; letter-spacing: -.025em; line-height: 1.25; }
.job-company { color: var(--blue-700); font-size: .88rem; font-weight: 800; margin-top: 5px; }
.job-desc { color: var(--slate-500); font-size: .9rem; margin: 14px 0 22px; flex: 1; }
.job-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.meta-pill { padding: 6px 9px; border-radius: 8px; background: var(--slate-100); color: var(--slate-600); font-size: .77rem; font-weight: 800; }

/* ---------- CTA ---------- */
.cta-empresas { padding: 76px 20px; }
.cta-content { width: min(1050px, 100%); margin: 0 auto; border-radius: 28px; padding: 48px; color: #fff; background: linear-gradient(135deg, #0f172a, #172554 58%, #312e81); box-shadow: var(--shadow-lg); }
.cta-content h2 { font-size: clamp(2rem, 4vw, 3.1rem); letter-spacing: -.045em; line-height: 1.05; }
.cta-content p { color: #cbd5e1; margin: 12px 0 24px; max-width: 700px; }
.feature-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin: 24px 0 30px; }
.feature-item { padding: 14px; border: 1px solid rgba(255,255,255,.11); background: rgba(255,255,255,.06); border-radius: 14px; color: #e2e8f0; font-size: .88rem; font-weight: 700; }

.footer { padding: 32px 20px; color: var(--slate-500); text-align: center; font-size: .85rem; border-top: 1px solid var(--border); }
.footer strong { color: var(--slate-700); }

/* ---------- autenticação ---------- */
.auth-shell { min-height: calc(100vh - 76px); display: grid; grid-template-columns: 1fr 1fr; }
.auth-visual { padding: 64px; background: linear-gradient(145deg, #08111f, #111c32 55%, #1e1b4b); color: #fff; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.auth-visual::after { content:""; position:absolute; width:460px; height:460px; border-radius:50%; background: radial-gradient(circle, rgba(59,130,246,.35), transparent 65%); right:-120px; bottom:-100px; }
.auth-visual h2 { max-width: 600px; font-size: clamp(2.5rem,4vw,4.2rem); line-height: .98; letter-spacing: -.055em; position: relative; z-index: 2; }
.auth-visual p { max-width: 560px; color: #cbd5e1; margin-top: 18px; position: relative; z-index: 2; }
.auth-proof { display:flex; gap:10px; flex-wrap:wrap; position:relative; z-index:2; }
.auth-proof span { padding:9px 12px; border:1px solid rgba(255,255,255,.13); border-radius:999px; color:#dbeafe; font-size:.78rem; font-weight:800; background:rgba(255,255,255,.06); }
.auth-panel { display: grid; place-items: center; padding: 48px 28px; }
.auth-card { width: min(520px, 100%); background: #fff; border: 1px solid var(--border); border-radius: 24px; padding: 34px; box-shadow: var(--shadow-md); }
.auth-title { font-size: 2rem; letter-spacing: -.04em; line-height: 1.1; }
.auth-subtitle { color: var(--text-muted); margin-top: 8px; margin-bottom: 26px; }
.auth-alt { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--slate-200); color: var(--slate-500); text-align: center; font-size: .88rem; }
.auth-alt a { color: var(--blue-700); font-weight: 800; text-decoration: none; }

/* ---------- formulários ---------- */
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.form-group { margin-bottom: 16px; }
.form-group.span-2 { grid-column: span 2; }
.form-label { display:block; color: var(--slate-700); font-size:.83rem; font-weight:800; margin-bottom:7px; }
.form-control { width:100%; min-height:46px; border:1px solid var(--slate-200); border-radius:11px; background:#fff; color:var(--slate-900); padding:10px 12px; outline:none; transition:.18s ease; }
textarea.form-control { min-height: 112px; resize: vertical; }
.form-control:focus { border-color: var(--blue-500); box-shadow: 0 0 0 4px rgba(59,130,246,.10); }
.form-help { color: var(--slate-500); font-size:.77rem; margin-top:5px; }
.checkbox-group { display:flex; align-items:flex-start; gap:10px; color:var(--slate-600); font-size:.84rem; margin: 10px 0 18px; }
.checkbox-group input { margin-top:4px; }

/* ---------- alertas/badges ---------- */
.alert { padding: 13px 15px; border-radius: 12px; border: 1px solid; font-size: .88rem; font-weight: 700; margin-bottom: 18px; }
.alert-success { color:#047857; background:#ecfdf5; border-color:#a7f3d0; }
.alert-error { color:#be123c; background:#fff1f2; border-color:#fecdd3; }
.alert-warning { color:#a16207; background:#fffbeb; border-color:#fde68a; }
.alert-info { color:#1d4ed8; background:#eff6ff; border-color:#bfdbfe; }
.badge { display:inline-flex; align-items:center; gap:5px; padding:6px 9px; border-radius:999px; font-size:.72rem; line-height:1; font-weight:900; white-space:nowrap; }
.badge-success { color:#047857; background:#ecfdf5; }
.badge-warning { color:#a16207; background:#fffbeb; }
.badge-danger { color:#be123c; background:#fff1f2; }
.badge-neutral { color:#475569; background:#f1f5f9; }
.badge-info { color:#1d4ed8; background:#eff6ff; }

/* ---------- dashboards ---------- */
.dashboard-shell { min-height:100vh; display:grid; grid-template-columns: 258px minmax(0,1fr); }
.sidebar { position:fixed; inset:0 auto 0 0; width:258px; padding:22px 16px; background:linear-gradient(180deg,#091321,#0d1728 58%,#101827); color:#fff; display:flex; flex-direction:column; z-index:1200; border-right:1px solid rgba(255,255,255,.06); }
.sidebar .logo { color:#fff; padding: 8px 10px 22px; }
.sidebar .logo span { color:#60a5fa; }
.sidebar-role { margin:0 10px 18px; color:#64748b; font-size:.69rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.sidebar-menu { display:flex; flex-direction:column; gap:6px; }
.sidebar-menu a { display:flex; align-items:center; gap:11px; padding:11px 12px; border-radius:10px; color:#94a3b8; text-decoration:none; font-weight:750; font-size:.88rem; }
.sidebar-menu a:hover, .sidebar-menu a.active { color:#fff; background:rgba(255,255,255,.08); }
.sidebar-menu a.active { box-shadow: inset 3px 0 0 #3b82f6; }
.sidebar-footer { margin-top:auto; padding-top:16px; border-top:1px solid rgba(255,255,255,.08); }
.sidebar-user { padding: 10px 11px 16px; }
.sidebar-user strong { display:block; font-size:.88rem; }
.sidebar-user span { color:#64748b; font-size:.76rem; }
.dashboard-main { grid-column:2; min-width:0; padding: 26px 30px 46px; }
.dashboard-topbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.dashboard-title h1 { font-size: clamp(1.8rem,3vw,2.45rem); letter-spacing:-.04em; }
.dashboard-title p { color:var(--text-muted); font-size:.9rem; margin-top:4px; }
.dashboard-actions { display:flex; gap:9px; flex-wrap:wrap; justify-content:flex-end; }
.metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:22px; }
.metric-card { background:#fff; border:1px solid var(--border); border-radius:17px; padding:19px; box-shadow:var(--shadow-sm); }
.metric-icon { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; background:#eff6ff; color:#1d4ed8; font-weight:900; margin-bottom:16px; }
.metric-value { font-size:2rem; font-weight:900; letter-spacing:-.05em; line-height:1; }
.metric-label { color:var(--slate-500); font-size:.78rem; font-weight:800; margin-top:7px; }
.content-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr); gap:20px; }
.panel { background:#fff; border:1px solid var(--border); border-radius:18px; box-shadow:var(--shadow-sm); overflow:hidden; }
.panel-header { padding:18px 20px; border-bottom:1px solid var(--slate-100); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.panel-header h2 { font-size:1.05rem; letter-spacing:-.02em; }
.panel-body { padding:20px; }
.panel-empty { padding:34px 20px; text-align:center; color:var(--slate-500); }
.quick-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.quick-card { padding:16px; border:1px solid var(--slate-200); border-radius:13px; text-decoration:none; transition:.18s; }
.quick-card:hover { border-color:#93c5fd; background:#f8fbff; transform:translateY(-1px); }
.quick-card strong { display:block; font-size:.9rem; }
.quick-card span { display:block; color:var(--slate-500); font-size:.76rem; margin-top:4px; }

/* ---------- tabelas ---------- */
.table-wrap { width:100%; overflow:auto; }
.data-table { width:100%; border-collapse:collapse; min-width:760px; }
.data-table th { padding:12px 14px; color:var(--slate-500); background:#f8fafc; font-size:.72rem; font-weight:900; letter-spacing:.05em; text-transform:uppercase; text-align:left; border-bottom:1px solid var(--slate-200); }
.data-table td { padding:14px; border-bottom:1px solid var(--slate-100); font-size:.85rem; vertical-align:middle; }
.data-table tbody tr:hover { background:#fbfdff; }
.data-table tbody tr:last-child td { border-bottom:0; }
.table-title { font-weight:850; color:var(--slate-800); }
.table-sub { color:var(--slate-500); font-size:.76rem; margin-top:2px; }
.actions-cell { display:flex; gap:6px; flex-wrap:wrap; }

/* ---------- filtros e páginas internas ---------- */
.page-card { background:#fff; border:1px solid var(--border); border-radius:18px; box-shadow:var(--shadow-sm); padding:20px; }
.filter-bar { display:flex; gap:10px; flex-wrap:wrap; align-items:end; margin-bottom:18px; }
.filter-bar .form-group { margin:0; min-width:180px; flex:1; }
.two-col { display:grid; grid-template-columns: 360px minmax(0,1fr); gap:20px; align-items:start; }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.detail-item { padding:13px; border-radius:12px; background:#f8fafc; border:1px solid var(--slate-100); }
.detail-item span { display:block; color:var(--slate-500); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.detail-item strong { display:block; margin-top:4px; font-size:.88rem; }

/* ---------- página da vaga ---------- */
.job-detail-shell { width:min(1040px,calc(100% - 40px)); margin:42px auto 72px; display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:22px; }
.job-detail-main, .job-detail-side { background:#fff; border:1px solid var(--border); border-radius:20px; box-shadow:var(--shadow-sm); }
.job-detail-main { padding:30px; }
.job-detail-side { padding:22px; height:max-content; position:sticky; top:98px; }
.job-detail-title { font-size:clamp(2rem,4vw,3rem); letter-spacing:-.05em; line-height:1.05; margin:14px 0 8px; }
.job-detail-company { color:var(--blue-700); font-weight:850; }
.job-content h3 { margin:25px 0 8px; font-size:1rem; }
.job-content p { color:var(--slate-600); white-space:pre-line; }

/* ---------- responsividade ---------- */
@media (max-width: 1100px) {
    .job-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .content-grid { grid-template-columns:1fr; }
    .two-col { grid-template-columns:1fr; }
}
@media (max-width: 900px) {
    .hero-inner { grid-template-columns:1fr; min-height:auto; padding:72px 0 92px; }
    .hero-panel { display:none; }
    .auth-shell { grid-template-columns:1fr; }
    .auth-visual { min-height:330px; padding:46px 28px; }
    .dashboard-shell { grid-template-columns:1fr; }
    .sidebar { position:relative; width:100%; min-height:auto; padding:14px 18px; flex-direction:row; align-items:center; overflow:auto; }
    .sidebar .logo { padding:0 14px 0 0; flex:0 0 auto; }
    .sidebar-role, .sidebar-user { display:none; }
    .sidebar-menu { flex-direction:row; flex:0 0 auto; }
    .sidebar-menu a { white-space:nowrap; }
    .sidebar-footer { margin:0 0 0 auto; padding:0 0 0 12px; border-top:0; border-left:1px solid rgba(255,255,255,.08); }
    .dashboard-main { grid-column:1; padding:22px 20px 40px; }
    .job-detail-shell { grid-template-columns:1fr; }
    .job-detail-side { position:static; }
}
@media (max-width: 680px) {
    .navbar { padding:12px 16px; }
    .navbar .nav-link { display:none; }
    .nav-actions { gap:6px; }
    .nav-actions .btn-login, .nav-actions .btn-register { padding:9px 10px; font-size:.78rem; }
    .logo { font-size:1.18rem; }
    .container { width:min(100% - 28px,1180px); }
    .hero-inner { width:min(100% - 28px,1180px); padding:58px 0 78px; }
    .hero h1 { font-size:2.65rem; }
    .job-grid, .feature-list, .metric-grid, .quick-grid, .form-grid, .detail-grid { grid-template-columns:1fr; }
    .form-group.span-2 { grid-column:span 1; }
    .section { padding:54px 0; }
    .section-header, .dashboard-topbar { align-items:flex-start; flex-direction:column; }
    .dashboard-actions { justify-content:flex-start; }
    .cta-content { padding:30px 22px; }
    .auth-panel { padding:28px 14px; }
    .auth-card { padding:25px 20px; }
    .auth-visual { min-height:280px; }
    .sidebar { gap:8px; }
    .sidebar-menu a { font-size:0; gap:0; padding:10px; }
    .sidebar-menu a::first-letter { font-size:1rem; }
    .dashboard-main { padding:18px 14px 34px; }
    .job-detail-shell { width:min(100% - 24px,1040px); margin-top:24px; }
    .job-detail-main { padding:22px; }
}

@keyframes fadeUp { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.animate-up { animation: fadeUp .45s ease both; }
.delay-1 { animation-delay:.08s; }
.delay-2 { animation-delay:.16s; }
.delay-3 { animation-delay:.24s; }

/* ==========================================================
   VAGAS.TECH - SLIDER DE DESTAQUES + 5 DESIGNS DE VAGAS
   ========================================================== */
.hero-compact .hero-inner { min-height: 470px; padding-top: 72px; padding-bottom: 92px; }
.showcase-section { padding: 62px 0 24px; }
.showcase-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:22px; }
.showcase-arrows { display:flex; gap:8px; }
.slider-arrow { width:42px; height:42px; border-radius:12px; border:1px solid var(--slate-200); background:#fff; color:var(--slate-700); font-size:1.1rem; font-weight:900; box-shadow:var(--shadow-sm); transition:.18s ease; }
.slider-arrow:hover { transform:translateY(-2px); color:var(--blue-700); border-color:#93c5fd; }

.job-showcase { position:relative; }
.job-showcase-track { position:relative; min-height:520px; }
.job-showcase-slide {
    --slide-accent:#2563EB;
    position:absolute;
    inset:0;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
    min-height:520px;
    border-radius:30px;
    overflow:hidden;
    opacity:0;
    pointer-events:none;
    transform:translateX(24px) scale(.985);
    transition:opacity .55s ease, transform .55s cubic-bezier(.2,.8,.2,1);
    box-shadow:0 30px 80px rgba(15,23,42,.16);
    isolation:isolate;
}
.job-showcase-slide.is-active { opacity:1; pointer-events:auto; transform:none; z-index:2; }
.showcase-media { position:relative; overflow:hidden; min-height:100%; background:linear-gradient(145deg,#dbeafe,#ede9fe); }
.showcase-media img { width:100%; height:100%; object-fit:cover; transition:transform 8s ease; }
.job-showcase-slide.is-active .showcase-media img { transform:scale(1.055); }
.showcase-art { position:absolute; inset:0; display:grid; place-items:center; overflow:hidden; background:linear-gradient(145deg,var(--slide-accent),#111827); }
.showcase-art::before,.showcase-art::after,.showcase-art span { content:""; position:absolute; border-radius:999px; border:1px solid rgba(255,255,255,.13); }
.showcase-art::before { width:420px; height:420px; right:-110px; top:-150px; background:rgba(255,255,255,.05); }
.showcase-art::after { width:280px; height:280px; left:-90px; bottom:-100px; background:rgba(255,255,255,.04); }
.showcase-art span:nth-child(1){ width:170px;height:170px;right:18%;bottom:14%; }
.showcase-art span:nth-child(2){ width:80px;height:80px;left:15%;top:15%;background:rgba(255,255,255,.08); }
.showcase-art strong { position:relative; z-index:2; width:100px;height:100px;border-radius:28px;display:grid;place-items:center;background:rgba(255,255,255,.14);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:2rem;letter-spacing:-.05em; }
.showcase-content { position:relative; z-index:3; padding:48px; display:flex; flex-direction:column; justify-content:center; }
.showcase-topline { display:flex; align-items:center; gap:10px; margin-bottom:18px; }
.showcase-badge { display:inline-flex; padding:7px 11px; border-radius:999px; background:var(--slide-accent); color:#fff; font-size:.72rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.showcase-template-name { color:var(--slate-500); font-size:.73rem; font-weight:850; }
.showcase-company-row { display:flex; align-items:center; gap:10px; font-size:.84rem; font-weight:850; color:var(--slate-600); margin-bottom:14px; }
.showcase-company-logo { width:34px;height:34px;border-radius:10px;background:#fff;display:grid;place-items:center;overflow:hidden;color:var(--slide-accent);font-size:.72rem;font-weight:900;border:1px solid rgba(15,23,42,.08); }
.showcase-company-logo img { width:100%;height:100%;object-fit:cover; }
.showcase-content h3 { max-width:650px; font-size:clamp(2.25rem,4.1vw,4.5rem); line-height:.98; letter-spacing:-.055em; }
.showcase-description { max-width:650px; color:var(--slate-600); font-size:1rem; margin-top:18px; }
.showcase-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.showcase-meta span { padding:7px 10px; border-radius:9px; background:rgba(15,23,42,.06); color:var(--slate-700); font-size:.76rem; font-weight:850; }
.showcase-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:28px; }
.showcase-primary,.showcase-secondary { min-height:46px; padding:11px 17px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; gap:14px; text-decoration:none; font-size:.88rem; font-weight:900; transition:.18s ease; }
.showcase-primary { background:var(--slide-accent); color:#fff; box-shadow:0 12px 28px color-mix(in srgb,var(--slide-accent) 28%,transparent); }
.showcase-primary:hover { transform:translateY(-2px); filter:brightness(.95); }
.showcase-secondary { border:1px solid rgba(15,23,42,.12); background:rgba(255,255,255,.72); color:var(--slate-700); }
.showcase-dots { display:flex; justify-content:center; gap:7px; margin-top:17px; }
.showcase-dot { width:8px;height:8px;border:0;border-radius:999px;background:#cbd5e1;transition:.25s ease;padding:0; }
.showcase-dot.is-active { width:28px;background:var(--blue-600); }

/* Corporate */
.showcase-corporate { background:#fff; border:1px solid rgba(15,23,42,.08); }
.showcase-corporate .showcase-media { grid-column:2; grid-row:1; }
.showcase-corporate .showcase-content { grid-column:1; grid-row:1; background:linear-gradient(135deg,#fff 0%,#f8fbff 100%); }
.showcase-corporate .showcase-content::after { content:""; position:absolute; width:180px;height:180px;border-radius:50%;left:-70px;bottom:-80px;background:color-mix(in srgb,var(--slide-accent) 9%,transparent); }

/* Tech Glass */
.showcase-tech { color:#fff; background:radial-gradient(circle at 15% 20%,color-mix(in srgb,var(--slide-accent) 42%,transparent),transparent 30%),linear-gradient(135deg,#06101f,#0f172a 55%,#172554); }
.showcase-tech::before { content:""; position:absolute; inset:0; z-index:-1; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:38px 38px; }
.showcase-tech .showcase-media { order:2; margin:30px; border-radius:22px; min-height:calc(100% - 60px); box-shadow:0 25px 60px rgba(0,0,0,.34); border:1px solid rgba(255,255,255,.12); }
.showcase-tech .showcase-content { color:#fff; }
.showcase-tech .showcase-template-name,.showcase-tech .showcase-company-row,.showcase-tech .showcase-description { color:#cbd5e1; }
.showcase-tech .showcase-company-logo { background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.14); }
.showcase-tech .showcase-meta span { background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);color:#e2e8f0;backdrop-filter:blur(8px); }
.showcase-tech .showcase-secondary { color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14); }

/* Minimal */
.showcase-minimal { background:#fff; border:1px solid var(--slate-200); grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr); box-shadow:0 22px 60px rgba(15,23,42,.08); }
.showcase-minimal::before { content:""; position:absolute; left:0;top:0;bottom:0;width:7px;background:var(--slide-accent); }
.showcase-minimal .showcase-content { padding-left:64px; }
.showcase-minimal .showcase-content h3 { font-family:Georgia,"Times New Roman",serif; font-weight:600; letter-spacing:-.045em; }
.showcase-minimal .showcase-media { margin:34px 34px 34px 0; border-radius:18px; min-height:calc(100% - 68px); }
.showcase-minimal .showcase-badge { background:transparent;color:var(--slide-accent);border:1px solid color-mix(in srgb,var(--slide-accent) 28%,#fff); }

/* Cinematic */
.showcase-cinematic { display:block; color:#fff; background:#08111f; }
.showcase-cinematic .showcase-media { position:absolute; inset:0; }
.showcase-cinematic .showcase-media::after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,10,20,.92) 0%,rgba(5,10,20,.68) 48%,rgba(5,10,20,.18) 100%),linear-gradient(0deg,rgba(5,10,20,.55),transparent 55%); }
.showcase-cinematic .showcase-content { min-height:520px; width:min(730px,72%); padding:54px; }
.showcase-cinematic .showcase-template-name,.showcase-cinematic .showcase-company-row,.showcase-cinematic .showcase-description { color:#dbe4f0; }
.showcase-cinematic .showcase-company-logo { background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.16);backdrop-filter:blur(10px); }
.showcase-cinematic .showcase-meta span { background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.10);color:#fff;backdrop-filter:blur(10px); }
.showcase-cinematic .showcase-secondary { color:#fff;background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.17); }

/* Split */
.showcase-split { background:#fff; grid-template-columns:1fr 1fr; }
.showcase-split .showcase-media { grid-column:1; }
.showcase-split .showcase-content { grid-column:2; background:linear-gradient(180deg,#fff,#f8fafc); }
.showcase-split .showcase-content::before { content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--slide-accent); }

/* cards recentes */
.job-card-modern { padding:0; overflow:hidden; min-height:410px; }
.job-card-visual { height:170px; position:relative; display:block; overflow:hidden; text-decoration:none; background:linear-gradient(145deg,color-mix(in srgb,var(--card-accent) 76%,#fff),#111827); }
.job-card-visual img { width:100%;height:100%;object-fit:cover;transition:transform .45s ease; }
.job-card-modern:hover .job-card-visual img { transform:scale(1.05); }
.card-abstract { position:absolute;inset:0;display:grid;place-items:center;color:#fff;overflow:hidden; }
.card-abstract::before,.card-abstract span { content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.16); }
.card-abstract::before { width:240px;height:240px;right:-50px;top:-90px;background:rgba(255,255,255,.05); }
.card-abstract span { width:130px;height:130px;left:-30px;bottom:-55px;background:rgba(255,255,255,.04); }
.card-abstract strong { position:relative;z-index:2;width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18); }
.job-card-template { position:absolute;left:13px;top:13px;padding:6px 9px;border-radius:999px;color:#fff;background:rgba(8,17,31,.62);backdrop-filter:blur(12px);font-size:.68rem;font-weight:900; }
.job-card-content-modern { padding:20px 22px 22px; display:flex;flex-direction:column;flex:1; }
.job-card-content-modern .job-card-top { margin-bottom:18px; }

/* editor visual de vaga */
.job-editor-card { max-width:1080px; }
.editor-section-head { display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:22px; }
.editor-section-head > div { display:flex;align-items:center;gap:10px; }
.editor-section-head h2 { font-size:1.18rem;letter-spacing:-.025em; }
.editor-section-head p { color:var(--slate-500);font-size:.82rem;max-width:430px;text-align:right; }
.step-chip { display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:#eff6ff;color:#1d4ed8;font-size:.72rem;font-weight:900; }
.editor-divider { height:1px;background:var(--slate-100);margin:30px 0; }
.design-picker { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px; }
.design-choice { position:relative;cursor:pointer; }
.design-choice input { position:absolute;opacity:0;pointer-events:none; }
.design-choice-card { position:relative;display:block;padding:9px;border:1px solid var(--slate-200);border-radius:15px;background:#fff;transition:.18s ease;min-height:166px; }
.design-choice:hover .design-choice-card { transform:translateY(-2px);box-shadow:var(--shadow-sm); }
.design-choice input:checked + .design-choice-card { border-color:#60a5fa;box-shadow:0 0 0 3px rgba(59,130,246,.11); }
.design-choice-card strong { display:block;margin:9px 3px 0;font-size:.8rem; }
.design-choice-card small { display:block;margin:2px 3px 0;color:var(--slate-500);font-size:.68rem;line-height:1.3; }
.design-check { position:absolute;right:8px;top:8px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#2563eb;color:#fff;font-size:.65rem;font-weight:900;opacity:0;transform:scale(.7);transition:.18s; }
.design-choice input:checked + .design-choice-card .design-check { opacity:1;transform:none; }
.design-thumb { position:relative;height:88px;border-radius:10px;overflow:hidden;display:block;padding:12px; }
.design-thumb span { display:block;border-radius:999px; }
.design-thumb .thumb-kicker { width:34%;height:5px;margin-bottom:10px;background:currentColor;opacity:.62; }
.design-thumb .thumb-title { width:70%;height:8px;margin-bottom:6px;background:currentColor; }
.design-thumb .thumb-line { width:52%;height:4px;margin-bottom:13px;background:currentColor;opacity:.32; }
.design-thumb .thumb-button { width:30%;height:10px;background:currentColor;opacity:.9; }
.design-thumb-corporate { color:#1d4ed8;background:linear-gradient(90deg,#f8fbff 0 62%,#c7d2fe 62%); }
.design-thumb-tech { color:#dbeafe;background:radial-gradient(circle at 80% 25%,#4338ca,transparent 30%),linear-gradient(135deg,#07111f,#172554);border:1px solid #1e3a8a; }
.design-thumb-minimal { color:#111827;background:#fff;border:1px solid #e2e8f0;box-shadow:inset 4px 0 0 #2563eb; }
.design-thumb-cinematic { color:#fff;background:linear-gradient(90deg,rgba(5,10,20,.88),rgba(5,10,20,.18)),linear-gradient(135deg,#475569,#0f172a); }
.design-thumb-split { color:#1e293b;background:linear-gradient(90deg,#94a3b8 0 49%,#fff 49%);border:1px solid #e2e8f0;padding-left:54%; }
.design-settings-grid { display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:start; }
.upload-zone { position:relative;border:1px dashed #94a3b8;border-radius:13px;background:#f8fafc;padding:18px;display:flex;align-items:center;gap:14px;transition:.18s; }
.upload-zone:hover { border-color:#3b82f6;background:#f5f9ff; }
.upload-zone input { position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%; }
.upload-zone::before { content:"＋";width:38px;height:38px;border-radius:11px;background:#fff;border:1px solid var(--slate-200);display:grid;place-items:center;color:#2563eb;font-size:1.1rem;font-weight:900; }
.upload-zone strong { display:block;font-size:.84rem; }
.upload-zone span { display:block;color:var(--slate-500);font-size:.72rem;margin-top:2px; }
.current-image-box,.image-preview-box { margin-top:10px;border:1px solid var(--slate-200);border-radius:13px;overflow:hidden;background:#fff; }
.current-image-box img,.image-preview-box img { width:100%;height:190px;object-fit:cover; }
.checkbox-group.compact { margin:0;padding:10px 12px; }
.color-field { display:flex;align-items:center;gap:12px;padding:9px;border:1px solid var(--slate-200);border-radius:11px;background:#fff; }
.color-field input[type=color] { width:54px;height:34px;border:0;background:none;padding:0;cursor:pointer; }
.color-field span { color:var(--slate-500);font-size:.75rem; }
.checkbox-card { display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid var(--slate-200);border-radius:12px;background:#f8fafc;cursor:pointer; }
.checkbox-card input { margin-top:4px; }
.checkbox-card strong,.checkbox-card small { display:block; }
.checkbox-card strong { font-size:.82rem; }
.checkbox-card small { color:var(--slate-500);font-size:.7rem;margin-top:3px; }
.editor-tip { padding:13px 15px;border-radius:12px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-size:.8rem; }
.editor-actions { display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;padding-top:18px;border-top:1px solid var(--slate-100); }

/* detalhe da vaga com imagem */
.job-detail-cover { position:relative;overflow:hidden;border-radius:18px;margin:-10px -10px 26px;height:260px;background:linear-gradient(145deg,#1d4ed8,#111827); }
.job-detail-cover img { width:100%;height:100%;object-fit:cover; }
.job-detail-cover::after { content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,17,31,.3),transparent 60%); }

@media (max-width:1100px){
    .job-showcase-slide { grid-template-columns:1fr 1fr; }
    .showcase-content { padding:38px; }
    .showcase-content h3 { font-size:clamp(2.15rem,5vw,3.6rem); }
    .design-picker { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:850px){
    .showcase-heading { align-items:flex-start; }
    .job-showcase-track { min-height:650px; }
    .job-showcase-slide,.showcase-minimal,.showcase-split { grid-template-columns:1fr;grid-template-rows:250px 1fr;min-height:650px; }
    .job-showcase-slide .showcase-media,.showcase-corporate .showcase-media,.showcase-split .showcase-media { grid-column:1;grid-row:1;margin:0;border-radius:0;min-height:250px; }
    .job-showcase-slide .showcase-content,.showcase-corporate .showcase-content,.showcase-split .showcase-content { grid-column:1;grid-row:2;padding:32px; }
    .showcase-tech .showcase-media { margin:20px 20px 0;border-radius:18px;min-height:230px; }
    .showcase-tech { grid-template-rows:270px 1fr; }
    .showcase-minimal .showcase-content { padding-left:38px; }
    .showcase-minimal .showcase-media { margin:20px 20px 0; }
    .showcase-cinematic { display:block;min-height:650px; }
    .showcase-cinematic .showcase-media { position:absolute;inset:0;min-height:100%; }
    .showcase-cinematic .showcase-content { position:absolute;inset:auto 0 0;width:100%;min-height:auto;padding:34px; }
    .showcase-cinematic .showcase-media::after { background:linear-gradient(0deg,rgba(5,10,20,.94) 0%,rgba(5,10,20,.54) 55%,rgba(5,10,20,.08) 100%); }
    .design-settings-grid { grid-template-columns:1fr; }
}
@media (max-width:680px){
    .showcase-section { padding-top:42px; }
    .showcase-heading { flex-direction:column; }
    .job-showcase-track { min-height:670px; }
    .job-showcase-slide,.showcase-minimal,.showcase-split { min-height:670px;grid-template-rows:220px 1fr;border-radius:22px; }
    .job-showcase-slide .showcase-media,.showcase-corporate .showcase-media,.showcase-split .showcase-media { min-height:220px; }
    .job-showcase-slide .showcase-content,.showcase-corporate .showcase-content,.showcase-split .showcase-content { padding:26px 22px; }
    .showcase-content h3 { font-size:2.35rem; }
    .showcase-description { font-size:.88rem;margin-top:13px; }
    .showcase-meta { margin-top:16px; }
    .showcase-actions { margin-top:20px; }
    .showcase-primary,.showcase-secondary { width:100%; }
    .showcase-tech { grid-template-rows:240px 1fr; }
    .showcase-tech .showcase-media,.showcase-minimal .showcase-media { min-height:200px;margin:14px 14px 0; }
    .showcase-cinematic { min-height:670px; }
    .showcase-cinematic .showcase-content { padding:24px 22px 28px; }
    .design-picker { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .editor-section-head { flex-direction:column;gap:8px; }
    .editor-section-head p { text-align:left; }
    .editor-actions > * { width:100%; }
}
