:root {
    --teal-950: #063d40;
    --teal-900: #07585a;
    --teal-800: #086a6c;
    --teal-700: #0a7d7f;
    --teal-600: #168f91;
    --teal-500: #3e999b;
    --teal-100: #dceeee;
    --teal-050: #f1f8f8;
    --ink: #152326;
    --muted: #5e6b6e;
    --line: #d7e0e0;
    --surface: #ffffff;
    --surface-alt: #f5f7f7;
    --warning: #9a6100;
    --warning-bg: #fff4d9;
    --danger: #a32626;
    --danger-bg: #fff0f0;
    --success: #176b45;
    --success-bg: #e9f7ef;
    --shadow: 0 18px 50px rgba(4, 48, 50, .12);
    --radius: 18px;
    --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--surface);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--teal-800); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--teal-950); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { line-height: 1.15; margin-top: 0; color: var(--ink); }
h1 { font-size: clamp(2.35rem, 5vw, 4.8rem); letter-spacing: -.045em; }
h2 { font-size: clamp(1.8rem, 3.3vw, 3rem); letter-spacing: -.03em; }
h3 { font-size: 1.25rem; }
p { margin-top: 0; }
.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.narrow { width: min(calc(100% - 2rem), 780px); margin-inline: auto; }
.section { padding: clamp(4rem, 8vw, 7rem) 0; }
.section-sm { padding: 3rem 0; }
.section-alt { background: var(--surface-alt); }
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: var(--teal-800);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}
.eyebrow::before { content: ""; width: 2.2rem; height: 3px; background: var(--teal-600); border-radius: 3px; }
.lead { font-size: clamp(1.05rem, 1.6vw, 1.28rem); color: var(--muted); max-width: 52rem; }
.small { font-size: .9rem; color: var(--muted); }
.muted { color: var(--muted); }
.sr-only, .skip-link:not(:focus) {
    position: absolute !important; width: 1px !important; height: 1px !important;
    padding: 0 !important; margin: -1px !important; overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}
.skip-link:focus { position: fixed; z-index: 9999; top: 1rem; left: 1rem; padding: .75rem 1rem; background: #fff; color: #000; border-radius: 8px; }

.utility-bar { background: var(--teal-950); color: #eaf8f8; font-size: .78rem; }
.utility-inner { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.utility-inner div { display: flex; gap: 1.2rem; }
.utility-inner a { color: #eaf8f8; text-decoration: none; }
.site-header {
    position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.96);
    border-bottom: 1px solid rgba(215,224,224,.85); backdrop-filter: blur(16px);
}
.nav-wrap { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: block; width: min(380px, 42vw); }
.brand img { display: block; width: 100%; }
.main-nav { display: flex; align-items: center; gap: 1.25rem; }
.main-nav > a { color: var(--ink); text-decoration: none; font-weight: 650; font-size: .91rem; padding: .55rem .1rem; }
.main-nav > a:hover, .main-nav > a.active { color: var(--teal-800); }
.main-nav .nav-cta, .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    min-height: 48px; padding: .72rem 1.25rem; border-radius: 999px; border: 1px solid transparent;
    background: var(--teal-800); color: #fff; text-decoration: none; font-weight: 750;
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.main-nav .nav-cta { padding: .6rem 1.05rem; min-height: 42px; }
.btn:hover, .main-nav .nav-cta:hover { color: #fff; background: var(--teal-950); transform: translateY(-1px); box-shadow: 0 10px 25px rgba(6,61,64,.2); }
.btn-secondary { background: #fff; color: var(--teal-900); border-color: rgba(255,255,255,.4); }
.btn-secondary:hover { background: var(--teal-050); color: var(--teal-950); }
.btn-outline { background: transparent; color: var(--teal-800); border-color: var(--teal-700); }
.btn-outline:hover { background: var(--teal-800); color: #fff; }
.btn-danger { background: var(--danger); }
.btn-sm { min-height: 38px; padding: .48rem .9rem; font-size: .88rem; }
.menu-toggle { display: none; border: 0; background: transparent; padding: .65rem; }
.menu-toggle > span:not(.sr-only) { display: block; width: 25px; height: 2px; margin: 5px 0; background: var(--ink); }

.hero {
    position: relative; min-height: 690px; display: grid; align-items: center; overflow: hidden;
    color: #fff; background: var(--teal-950);
}
.hero::before {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(4,36,38,.96) 0%, rgba(5,59,61,.88) 42%, rgba(5,52,54,.28) 75%, rgba(4,36,38,.1) 100%),
                url("../img/hero.jpg") center/cover no-repeat;
}
.hero::after {
    content: ""; position: absolute; width: 720px; height: 720px; border-radius: 50%;
    right: -390px; bottom: -330px; border: 1px solid rgba(255,255,255,.2);
    box-shadow: 0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.018);
}
.hero-content { position: relative; z-index: 1; padding: 6rem 0; max-width: 780px; }
.hero h1 { color: #fff; margin-bottom: 1.2rem; }
.hero .lead { color: #e8f3f3; max-width: 46rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .9rem; margin: 2rem 0; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 2.5rem; font-size: .9rem; color: #d6eeee; }
.hero-trust span { display: inline-flex; align-items: center; gap: .5rem; }
.hero-trust span::before { content: "✓"; display: grid; place-items: center; width: 1.45rem; height: 1.45rem; border-radius: 50%; background: rgba(255,255,255,.13); }
.page-hero { padding: 6rem 0 4.5rem; color: #fff; background: linear-gradient(120deg, var(--teal-950), var(--teal-700)); }
.page-hero h1 { color: #fff; max-width: 880px; margin-bottom: 1rem; }
.page-hero .lead { color: #e4f2f2; }

.stats-strip { margin-top: -2.5rem; position: relative; z-index: 2; }
.stats-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; box-shadow: var(--shadow);
    border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line);
}
.stat { padding: 1.7rem; border-right: 1px solid var(--line); }
.stat:last-child { border-right: 0; }
.stat strong { display: block; color: var(--teal-800); font-size: 1.15rem; }
.stat span { color: var(--muted); font-size: .88rem; }

.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.25rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1.15rem; }
.card {
    background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.6rem;
    box-shadow: 0 7px 24px rgba(20,50,51,.05);
}
.card h3 { margin-bottom: .65rem; }
.card p:last-child { margin-bottom: 0; }
.card-link { display: block; color: inherit; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.card-link:hover { color: inherit; transform: translateY(-4px); box-shadow: var(--shadow); }
.icon-box {
    width: 3.1rem; height: 3.1rem; display: grid; place-items: center; border-radius: 14px;
    background: var(--teal-100); color: var(--teal-900); font-weight: 900; margin-bottom: 1rem;
}
.image-frame { border-radius: 26px; overflow: hidden; min-height: 420px; box-shadow: var(--shadow); }
.image-frame img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; display: block; }
.image-panel { min-height: 330px; border-radius: var(--radius); overflow: hidden; position: relative; }
.image-panel img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; display: block; }
.image-panel::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%,rgba(3,35,37,.48)); }
.check-list { list-style: none; padding: 0; margin: 1.5rem 0; }
.check-list li { position: relative; padding-left: 2rem; margin: .8rem 0; }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--teal-700); font-weight: 900; }
.number-list { counter-reset: step; list-style: none; padding: 0; }
.number-list li { counter-increment: step; position: relative; padding: 0 0 1.2rem 3.5rem; border-left: 1px solid var(--line); margin-left: 1.25rem; }
.number-list li::before { content: counter(step, decimal-leading-zero); position: absolute; left: -1.35rem; top: -.2rem; width: 2.7rem; height: 2.7rem; display:grid; place-items:center; border-radius:50%; background:var(--teal-800); color:#fff; font-weight:800; }
.number-list li:last-child { border-left-color: transparent; }
.pill-list { display: flex; flex-wrap: wrap; gap: .65rem; padding: 0; list-style: none; }
.pill-list li { padding: .55rem .85rem; border-radius: 999px; background: var(--teal-050); border: 1px solid var(--teal-100); color: var(--teal-900); font-size: .9rem; font-weight: 700; }

.cta-band { color: #fff; background: linear-gradient(120deg, var(--teal-950), var(--teal-700)); border-radius: 26px; padding: clamp(2rem,5vw,4rem); display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.cta-band h2 { color:#fff; margin-bottom:.7rem; }
.cta-band p { color:#dceeee; max-width:44rem; margin-bottom:0; }

.notice { padding: 1rem 1.15rem; border-radius: 12px; border: 1px solid var(--line); background: var(--surface-alt); margin: 1rem 0; }
.notice-warning { border-color: #efd79f; background: var(--warning-bg); color: #6d4807; }
.notice-danger { border-color: #efb8b8; background: var(--danger-bg); color: #792222; }
.notice-success { border-color: #b8e2ca; background: var(--success-bg); color: #145438; }
.alert-card { border-left: 5px solid var(--teal-700); }
.alert-card.warning { border-left-color: #d28a0c; }
.alert-card.critical { border-left-color: #b42a2a; }
.tag { display:inline-flex; padding:.3rem .58rem; border-radius:999px; font-size:.72rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; background:var(--teal-100); color:var(--teal-950); }
.tag.warning { background:var(--warning-bg); color:var(--warning); }
.tag.critical { background:var(--danger-bg); color:var(--danger); }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
table { border-collapse: collapse; width: 100%; min-width: 720px; }
th, td { padding: 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
th { background: var(--teal-050); font-size: .78rem; letter-spacing:.05em; text-transform:uppercase; color:var(--teal-950); }
tr:last-child td { border-bottom:0; }
.table-actions { display:flex; gap:.5rem; flex-wrap:wrap; }

.filter-bar { display:grid; grid-template-columns: 2fr 1fr 1fr auto; gap:.8rem; align-items:end; margin:1.5rem 0; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.form-group { display:flex; flex-direction:column; gap:.4rem; }
.form-group.full { grid-column:1/-1; }
label { font-weight:750; font-size:.9rem; }
input, select, textarea {
    width:100%; border:1px solid #bfcaca; border-radius:10px; padding:.78rem .9rem; background:#fff; color:var(--ink);
}
input:focus, select:focus, textarea:focus { outline:3px solid rgba(22,143,145,.18); border-color:var(--teal-700); }
textarea { min-height:140px; resize:vertical; }
.help { color:var(--muted); font-size:.82rem; }
.required::after { content:" *"; color:var(--danger); }
.checkbox-row { display:flex; gap:.65rem; align-items:flex-start; }
.checkbox-row input { width:auto; margin-top:.3rem; }
.honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.document-list { display:grid; gap:.8rem; }
.document-item {
    display:grid; grid-template-columns:auto 1fr auto; gap:1rem; align-items:center; padding:1rem 1.15rem;
    border:1px solid var(--line); border-radius:14px; background:#fff;
}
.document-icon { width:2.8rem; height:2.8rem; border-radius:10px; display:grid; place-items:center; background:var(--teal-100); color:var(--teal-950); font-size:.72rem; font-weight:900; }
.document-meta { color:var(--muted); font-size:.82rem; display:flex; gap:.8rem; flex-wrap:wrap; }
.empty-state { text-align:center; padding:3rem 1.5rem; border:1px dashed #bfcaca; border-radius:var(--radius); background:#fff; }
.breadcrumbs { font-size:.85rem; color:var(--muted); margin-bottom:1rem; }
.breadcrumbs a { color:inherit; }
.page-hero .breadcrumbs { color:#d7eeee; }
.page-hero .breadcrumbs a { color:#fff; text-decoration:underline; text-underline-offset:.18em; font-weight:700; }
.page-hero .breadcrumbs a:hover,
.page-hero .breadcrumbs a:focus { color:#ffffff; text-decoration-thickness:2px; }

.site-footer { background:#082e30; color:#d8e8e8; padding-top:4rem; }
.footer-grid { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:2.5rem; }
.footer-grid h2 { color:#fff; font-size:1rem; }
.footer-grid a { display:block; color:#d8e8e8; text-decoration:none; margin:.45rem 0; }
.footer-grid a:hover { color:#fff; text-decoration:underline; }
.footer-logo { width:min(330px,100%); filter:brightness(0) invert(1); opacity:.95; margin-bottom:1rem; }
.risk-note { border-top:1px solid rgba(255,255,255,.12); margin-top:3rem; padding-top:1.5rem; font-size:.8rem; color:#b7cbcb; }
.footer-bottom { display:flex; justify-content:space-between; gap:1rem; padding:1.5rem 0 2rem; font-size:.78rem; color:#a9c0c0; }

/* Privileged interfaces */
.auth-body { min-height:100vh; display:grid; place-items:center; padding:2rem; background:linear-gradient(135deg,var(--teal-950),var(--teal-700)); }
.auth-card { width:min(100%,460px); background:#fff; border-radius:22px; padding:2rem; box-shadow:var(--shadow); }
.auth-logo { display:block; width:100%; margin:0 auto 1.7rem; }
.auth-card h1 { font-size:1.8rem; letter-spacing:-.02em; }
.admin-shell { min-height:100vh; background:var(--surface-alt); }
.admin-header { background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.admin-header-inner { min-height:70px; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.admin-brand { font-weight:900; color:var(--teal-950); text-decoration:none; }
.admin-user { display:flex; align-items:center; gap:.8rem; font-size:.85rem; }
.admin-layout { display:grid; grid-template-columns:240px minmax(0,1fr); min-height:calc(100vh - 70px); }
.admin-nav { background:#0a4042; padding:1.5rem 1rem; }
.admin-nav a { display:block; color:#d9eded; text-decoration:none; padding:.72rem .8rem; border-radius:9px; margin:.2rem 0; }
.admin-nav a:hover, .admin-nav a.active { background:rgba(255,255,255,.1); color:#fff; }
.admin-main { padding:2rem; min-width:0; }
.admin-main h1 { font-size:2rem; }
.dashboard-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin:1.5rem 0; }
.metric { background:#fff; border:1px solid var(--line); border-radius:14px; padding:1.2rem; }
.metric strong { display:block; font-size:1.8rem; color:var(--teal-800); }
.status-list { display:grid; gap:.7rem; }
.status-item { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:.8rem 1rem; background:#fff; border:1px solid var(--line); border-radius:10px; }
.status-ok { color:var(--success); font-weight:850; }
.status-pending { color:var(--danger); font-weight:850; }
.pagination { display:flex; gap:.4rem; margin-top:1.5rem; }
.pagination a, .pagination span { display:grid; place-items:center; min-width:38px; height:38px; padding:0 .6rem; border:1px solid var(--line); border-radius:8px; text-decoration:none; background:#fff; }
.pagination .current { background:var(--teal-800); color:#fff; }

@media (max-width: 1050px) {
    .menu-toggle { display:block; }
    .main-nav {
        position:absolute; top:100%; left:0; right:0; display:none; flex-direction:column; align-items:stretch;
        padding:1rem; background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--shadow);
    }
    .main-nav.open { display:flex; }
    .main-nav > a { padding:.75rem .4rem; }
    .main-nav .nav-cta { align-self:flex-start; padding-inline:1.1rem; }
    .brand { width:min(360px,65vw); }
    .grid-4 { grid-template-columns:repeat(2,1fr); }
    .footer-grid { grid-template-columns:repeat(2,1fr); }
    .dashboard-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 760px) {
    .utility-inner > span { display:none; }
    .utility-inner { justify-content:flex-end; }
    .hero { min-height:620px; }
    .stats-grid { grid-template-columns:repeat(2,1fr); }
    .stat:nth-child(2) { border-right:0; }
    .stat:nth-child(-n+2) { border-bottom:1px solid var(--line); }
    .grid-2, .grid-3, .grid-4, .form-grid { grid-template-columns:1fr; }
    .form-group.full { grid-column:auto; }
    .filter-bar { grid-template-columns:1fr; }
    .cta-band { display:block; }
    .cta-band .btn { margin-top:1.2rem; }
    .footer-grid { grid-template-columns:1fr; }
    .footer-bottom { display:block; }
    .document-item { grid-template-columns:auto 1fr; }
    .document-item > .btn { grid-column:1/-1; }
    .admin-layout { grid-template-columns:1fr; }
    .admin-nav { display:flex; overflow-x:auto; padding:.7rem; }
    .admin-nav a { white-space:nowrap; }
    .admin-main { padding:1rem; }
}
@media (max-width: 480px) {
    .stats-grid { grid-template-columns:1fr; }
    .stat, .stat:nth-child(2) { border-right:0; border-bottom:1px solid var(--line); }
    .stat:last-child { border-bottom:0; }
    .dashboard-grid { grid-template-columns:1fr; }
    h1 { font-size:2.45rem; }
}

/* BODIVA market widget */
.market-top-strip { background:linear-gradient(90deg, #0d2a45 0%, #202428 18%, #222 82%, #0d2a45 100%); color:#e9f4f4; overflow:hidden; min-height:52px; display:flex; align-items:center; }
.market-top-track { display:flex; align-items:center; gap:2rem; width:100%; white-space:nowrap; padding:.8rem clamp(1rem,4vw,3.2rem); font-size:.96rem; }
.market-top-track > strong { color:#fff; letter-spacing:.02em; font-weight:900; flex:0 0 auto; }
.market-strip-viewport { flex:1 1 auto; min-width:0; overflow:hidden; display:block; }
.market-strip-run { display:inline-flex; align-items:center; gap:2.4rem; min-width:max-content; animation:market-marquee 42s linear infinite; will-change:transform; }
.market-top-strip:hover .market-strip-run { animation-play-state:paused; }
.market-strip-item { display:inline-flex; align-items:center; gap:.65rem; flex:0 0 auto; color:#f4f6f6; }
.market-strip-item strong { color:#fff; font-weight:900; }
.market-strip-item .variation.up { color:#008d77; font-weight:900; }
.market-strip-item .variation.down { color:#ff202d; font-weight:900; }
.market-strip-item .variation.flat { color:#f0b429; font-weight:900; }
.bodiva-market-section { background:linear-gradient(180deg, #fff, var(--teal-050)); }
.market-widget { background:#fff; border:1px solid var(--line); border-radius:24px; padding:clamp(1.2rem,3vw,2rem); box-shadow:var(--shadow); }
.market-widget-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.market-widget-header h2 { margin-bottom:.35rem; }
.market-status { margin:.8rem 0; }
.market-ticker { display:flex; gap:.7rem; overflow-x:auto; padding:.9rem; margin:1rem 0; border-radius:16px; background:#0b2638; color:#fff; scrollbar-width:thin; }
.market-ticker:empty { display:none; }
.market-ticker-item { display:flex; align-items:center; gap:.45rem; white-space:nowrap; padding:.45rem .65rem; border-radius:999px; background:rgba(255,255,255,.08); font-size:.86rem; }
.market-ticker-item strong { color:#fff; letter-spacing:.03em; }
.market-ticker-item .price { color:#eef7f7; }
.market-ticker-item .variation.up { color:#20ba67; }
.market-ticker-item .variation.down { color:#ff4747; }
.market-ticker-item .variation.flat { color:#f0b429; }
.market-table-wrap { margin-top:1rem; }
.market-table td:first-child { font-weight:800; color:#49b719; letter-spacing:.02em; }
.market-table .variation.up { color:#078a20; font-weight:800; }
.market-table .variation.down { color:#d71920; font-weight:800; }
.market-table .variation.flat { color:#d99800; font-weight:800; }
.market-disclaimer { margin-top:.9rem; margin-bottom:0; }
@media (max-width:760px) {
    .market-top-track { gap:1.2rem; padding:.75rem 1rem; }
    .market-strip-run { gap:1.4rem; animation-duration:34s; }
    .market-widget-header { display:block; }
    .market-widget-header .btn { margin-top:1rem; }
}

@keyframes market-marquee {
    from { transform:translateX(0); }
    to { transform:translateX(-50%); }
}

@media (prefers-reduced-motion:reduce) {
    .market-strip-run { animation:none; }
}
