:root {
    --portal-yellow: #f6c23d;
    --portal-yellow-strong: #ffcd39;
    --portal-yellow-pale: #fff6dc;
    --portal-gold: #a97900;
    --portal-dark: #171717;
    --portal-dark-soft: #25231f;
    --portal-red: #df2435;
    --portal-ink: #292824;
    --portal-muted: #6f706b;
    --portal-surface: #f7f6f1;
    --portal-line: #e7e3d8;
    --portal-white: #fff;
    --portal-shadow: 0 16px 42px rgba(23,23,23,.08);
    --portal-shadow-lg: 0 30px 80px rgba(23,23,23,.17);
    --portal-radius: 22px;
}

body.portal-v2 { overflow-x: hidden; color: var(--portal-ink); background: var(--portal-white); }
.portal-v2 main { min-height: 60vh; }
.portal-v2 .container { position: relative; }
.portal-v2 a:focus-visible, .portal-v2 button:focus-visible, .portal-v2 input:focus-visible, .portal-v2 select:focus-visible { outline: 3px solid rgba(223,36,53,.36); outline-offset: 3px; }

/* Header and information architecture */
.portal-header { position: sticky; top: 0; z-index: 1040; background: rgba(255,255,255,.97); border-top: 3px solid var(--portal-red); border-bottom: 1px solid var(--portal-line); box-shadow: 0 7px 28px rgba(23,23,23,.055); backdrop-filter: blur(16px); transition: box-shadow .2s ease, transform .2s ease; }
.portal-header.is-scrolled { box-shadow: 0 13px 36px rgba(23,23,23,.11); }
.portal-utility-bar { color: rgba(255,255,255,.64); background: var(--portal-dark); font-size: .66rem; font-weight: 700; }
.portal-utility-bar .container { display: flex; min-height: 30px; align-items: center; justify-content: space-between; }
.portal-utility-bar i { margin-right: 6px; color: var(--portal-yellow); }
.portal-utility-bar a:hover { color: var(--portal-yellow); }
.portal-navbar { min-height: 78px; padding: 8px 0; }
.portal-brand { display: inline-flex; align-items: center; gap: 12px; padding: 0; }
.portal-brand-mark { display: grid; width: 46px; height: 54px; padding: 4px; background: var(--portal-yellow); border: 1px solid #e7b62f; border-radius: 13px; box-shadow: 0 8px 20px rgba(185,133,0,.13); place-items: center; }
.portal-brand-mark img { max-width: 100%; max-height: 100%; object-fit: contain; }
.portal-brand-copy { display: flex; flex-direction: column; color: var(--portal-dark); line-height: 1.05; }
.portal-brand-copy strong { font-size: .94rem; }
.portal-brand-copy small { margin-top: 5px; color: var(--portal-gold); font-size: .6rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.portal-navbar .nav-link { position: relative; margin: 0 2px; padding: 12px 12px !important; color: #55534d !important; font-size: .8rem; font-weight: 800; }
.portal-navbar .nav-link::after { position: absolute; right: 12px; bottom: 5px; left: 12px; height: 2px; content: ""; background: var(--portal-red); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.portal-navbar .nav-link:hover, .portal-navbar .nav-link.active { color: var(--portal-dark) !important; }
.portal-navbar .nav-link:hover::after, .portal-navbar .nav-link.active::after { transform: scaleX(1); }
.portal-login { display: inline-flex; align-items: center; gap: 7px; padding: 11px 16px; color: #fff; background: var(--portal-dark); border: 1px solid var(--portal-dark); border-radius: 11px; font-size: .76rem; font-weight: 800; box-shadow: 0 9px 21px rgba(23,23,23,.14); }
.portal-login:hover { color: var(--portal-dark); background: var(--portal-yellow); border-color: var(--portal-yellow); transform: translateY(-1px); }
.portal-dropdown { width: 310px; padding: 11px; border: 1px solid var(--portal-line); border-radius: 16px; box-shadow: var(--portal-shadow-lg); }
.dropdown-label { display: block; padding: 5px 10px 9px; color: #98958c; font-size: .59rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.portal-dropdown .dropdown-item { display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: 11px; padding: 10px; border-radius: 11px; }
.portal-dropdown .dropdown-item:hover { color: var(--portal-dark); background: var(--portal-yellow-pale); }
.portal-dropdown .dropdown-item > i { display: grid; width: 38px; height: 38px; color: var(--portal-gold); background: var(--portal-surface); border-radius: 10px; place-items: center; }
.portal-dropdown .dropdown-item > span { display: flex; flex-direction: column; }
.portal-dropdown .dropdown-item strong { color: var(--portal-dark); font-size: .75rem; }
.portal-dropdown .dropdown-item small { margin-top: 3px; color: var(--portal-muted); font-size: .62rem; }
.portal-toggler { width: 44px; height: 42px; padding: 10px; border: 1px solid var(--portal-line); border-radius: 11px; }
.portal-toggler span { display: block; height: 2px; margin: 4px 0; background: var(--portal-dark); border-radius: 2px; }

/* Home flow */
.portal-hero { position: relative; padding: 44px 0 0; background: radial-gradient(circle at 10% 8%, rgba(255,255,255,.42), transparent 22%), linear-gradient(180deg, var(--portal-yellow) 0, var(--portal-yellow) 78%, var(--portal-white) 78%); }
.portal-hero::before { position: absolute; inset: 0; content: ""; background-image: linear-gradient(rgba(23,23,23,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(23,23,23,.04) 1px, transparent 1px); background-size: 44px 44px; mask-image: linear-gradient(to bottom, #000 0, transparent 78%); }
.portal-hero-shell { position: relative; overflow: hidden; padding: 60px 64px; color: #fff; background: radial-gradient(circle at 86% 0, rgba(246,194,61,.2), transparent 32%), linear-gradient(135deg, #121212, #28251f); border: 1px solid rgba(255,255,255,.1); border-radius: 30px; box-shadow: var(--portal-shadow-lg); }
.portal-hero-shell::after { position: absolute; bottom: 0; left: 64px; width: 95px; height: 5px; content: ""; background: var(--portal-red); border-radius: 5px 5px 0 0; }
.portal-eyebrow, .portal-kicker { color: var(--portal-gold); font-size: .68rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.portal-eyebrow { color: var(--portal-yellow); }
.portal-eyebrow i { margin-right: 6px; }
.portal-hero h1 { max-width: 720px; margin: 18px 0; color: #fff; font-size: clamp(2.65rem, 5.1vw, 5rem); font-weight: 800; letter-spacing: -.055em; line-height: .98; }
.portal-hero h1 span { color: var(--portal-yellow); }
.portal-hero-shell .col-lg-7 > p { max-width: 650px; margin-bottom: 27px; color: rgba(255,255,255,.64); font-size: 1rem; line-height: 1.75; }
.hero-search { display: flex; max-width: 720px; height: 58px; align-items: center; padding: 5px; background: #fff; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; box-shadow: 0 16px 38px rgba(0,0,0,.24); }
.hero-search > i { margin: 0 13px; color: #97938a; }
.hero-search input { min-width: 0; flex: 1; height: 100%; color: var(--portal-dark); background: transparent; border: 0; outline: none; font-size: .82rem; }
.hero-search button { height: 46px; padding: 0 17px; color: var(--portal-dark); background: var(--portal-yellow); border: 0; border-radius: 10px; font-size: .74rem; font-weight: 900; white-space: nowrap; }
.hero-search button i { margin-left: 6px; }
.hero-shortcuts { display: flex; flex-wrap: wrap; gap: 7px 14px; margin-top: 17px; color: rgba(255,255,255,.45); font-size: .67rem; }
.hero-shortcuts > span { font-weight: 800; }
.hero-shortcuts a { color: rgba(255,255,255,.68); border-bottom: 1px solid rgba(255,255,255,.18); }
.hero-shortcuts a:hover { color: var(--portal-yellow); }
.portal-hero-visual { position: relative; z-index: 1; min-height: 410px; margin-right: -66px; }
.portal-hero-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; border: 1px solid rgba(255,255,255,.1); border-radius: 27px 0 0 27px; filter: saturate(.82) contrast(1.04); }
.portal-hero-visual::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(23,23,23,.36), transparent 44%), linear-gradient(0deg, rgba(23,23,23,.32), transparent 55%); border-radius: 27px 0 0 27px; }
.visual-accent { position: absolute; top: -7px; right: 42px; z-index: 2; width: 58px; height: 8px; background: var(--portal-red); border-radius: 0 0 7px 7px; }
.visual-stat { position: absolute; z-index: 3; display: flex; align-items: center; box-shadow: 0 16px 34px rgba(0,0,0,.28); }
.visual-stat-main { bottom: -5px; left: -18px; gap: 11px; padding: 15px 18px; color: var(--portal-dark); background: var(--portal-yellow); border: 5px solid var(--portal-dark); border-radius: 17px; }
.visual-stat-main strong { font-size: 1.8rem; line-height: 1; }
.visual-stat-main span { font-size: .61rem; font-weight: 900; letter-spacing: .06em; line-height: 1.25; text-transform: uppercase; }
.visual-stat-secondary { top: 20px; left: -10px; gap: 9px; padding: 10px 13px; color: #fff; background: rgba(23,23,23,.88); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; backdrop-filter: blur(12px); }
.visual-stat-secondary i { color: var(--portal-yellow); }
.visual-stat-secondary span { font-size: .65rem; }
.visual-stat-secondary strong { color: var(--portal-yellow); }
.portal-metrics { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; margin: 22px 28px 0; background: #fff; border: 1px solid var(--portal-line); border-radius: 18px; box-shadow: var(--portal-shadow); }
.portal-metrics a { display: flex; align-items: center; gap: 12px; padding: 20px 22px; border-right: 1px solid var(--portal-line); }
.portal-metrics a:last-child { border-right: 0; }
.portal-metrics a:hover { color: var(--portal-dark); background: var(--portal-yellow-pale); }
.portal-metrics a > i { display: grid; width: 40px; height: 40px; color: var(--portal-gold); background: var(--portal-yellow-pale); border-radius: 11px; place-items: center; }
.portal-metrics span { display: flex; flex-direction: column; }
.portal-metrics strong { color: var(--portal-dark); font-size: 1.35rem; line-height: 1; }
.portal-metrics small { margin-top: 4px; color: var(--portal-muted); font-size: .65rem; }

.portal-section { padding: 84px 0; }
.portal-soft-section { background: var(--portal-surface); }
.portal-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
.portal-section-heading h2 { max-width: 720px; margin: 7px 0 0; color: var(--portal-dark); font-size: clamp(1.9rem, 3.5vw, 3rem); font-weight: 800; letter-spacing: -.04em; }
.portal-section-heading > p { max-width: 430px; margin: 0; color: var(--portal-muted); font-size: .88rem; line-height: 1.7; }
.portal-text-link { color: var(--portal-dark); font-size: .75rem; font-weight: 900; white-space: nowrap; }
.portal-text-link i { margin-left: 7px; transition: transform .2s ease; }
.portal-text-link:hover i { transform: translateX(4px); }
.portal-flow-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; }
.flow-card { position: relative; display: flex; min-height: 285px; overflow: hidden; flex-direction: column; padding: 27px; color: var(--portal-dark); background: #fff; border: 1px solid var(--portal-line); border-radius: var(--portal-radius); box-shadow: var(--portal-shadow); }
.flow-card:hover { color: var(--portal-dark); border-color: var(--portal-yellow); box-shadow: 0 20px 46px rgba(23,23,23,.12); transform: translateY(-5px); }
.flow-card > i { display: grid; width: 50px; height: 50px; color: var(--portal-gold); background: var(--portal-yellow-pale); border-radius: 14px; font-size: 1.05rem; place-items: center; }
.flow-number { position: absolute; top: 23px; right: 24px; color: #d3d0c6; font-size: .68rem; font-weight: 900; letter-spacing: .1em; }
.flow-card h3 { margin: 25px 0 9px; font-size: 1.2rem; font-weight: 800; }
.flow-card p { color: var(--portal-muted); font-size: .78rem; line-height: 1.65; }
.flow-action { margin-top: auto; font-size: .72rem; font-weight: 900; }
.flow-action i { margin-left: 6px; }
.flow-card-featured { color: #fff; background: radial-gradient(circle at 90% 0, rgba(246,194,61,.18), transparent 40%), var(--portal-dark); border-color: var(--portal-dark); }
.flow-card-featured:hover { color: #fff; }
.flow-card-featured > i { color: var(--portal-dark); background: var(--portal-yellow); }
.flow-card-featured p { color: rgba(255,255,255,.58); }
.flow-card-featured .flow-number { color: rgba(255,255,255,.25); }
.certification-track { display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; background: #fff; border: 1px solid var(--portal-line); border-radius: 23px; box-shadow: var(--portal-shadow); }
.certification-track a { position: relative; display: flex; min-height: 190px; flex-direction: column; justify-content: flex-end; padding: 26px; border-right: 1px solid var(--portal-line); }
.certification-track a:last-child { border-right: 0; }
.certification-track a::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; content: ""; background: var(--portal-yellow); transform: scaleX(.18); transform-origin: left; transition: transform .25s ease; }
.certification-track a:hover { color: var(--portal-dark); background: #fffdf8; }
.certification-track a:hover::before { transform: scaleX(1); }
.certification-track span { margin-bottom: auto; color: var(--portal-gold); font-size: .65rem; font-weight: 900; letter-spacing: .12em; }
.certification-track strong { color: var(--portal-dark); font-size: 2.55rem; line-height: 1; }
.certification-track small { margin-top: 6px; color: var(--portal-muted); }
.latest-event-grid { display: grid; gap: 12px; }
.latest-event-card { display: grid; grid-template-columns: 82px 1fr; gap: 20px; padding: 20px; background: #fff; border: 1px solid var(--portal-line); border-radius: 18px; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.latest-event-card:hover { border-color: var(--portal-yellow); box-shadow: var(--portal-shadow); transform: translateY(-2px); }
.latest-event-date { display: flex; height: 82px; flex-direction: column; align-items: center; justify-content: center; color: var(--portal-dark); background: var(--portal-yellow-pale); border-radius: 15px; }
.latest-event-date strong { font-size: 1.75rem; line-height: 1; }
.latest-event-date span { margin-top: 6px; font-size: .58rem; font-weight: 900; letter-spacing: .07em; }
.portal-tag, .portal-document-badge { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 999px; font-size: .58rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.portal-tag { color: #846300; background: var(--portal-yellow-pale); }
.portal-document-badge { gap: 5px; color: #aa2030; background: #ffe8eb; }
.latest-event-card h3 { margin: 7px 0; color: var(--portal-dark); font-size: 1.08rem; font-weight: 800; }
.latest-event-card p { margin: 0; color: var(--portal-muted); font-size: .75rem; }
.latest-event-card p i { margin-right: 5px; color: var(--portal-gold); }
.latest-event-actions { display: flex; flex-wrap: wrap; gap: 17px; margin-top: 12px; font-size: .68rem; font-weight: 900; }
.document-link { color: var(--portal-red); }
.portal-privacy-section { padding-top: 28px; }
.privacy-banner { display: grid; grid-template-columns: 76px 1fr auto; align-items: center; gap: 26px; overflow: hidden; padding: 34px; background: var(--portal-yellow); border-radius: 25px; box-shadow: 0 20px 50px rgba(185,133,0,.18); }
.privacy-banner-icon { display: grid; width: 76px; height: 76px; color: var(--portal-yellow); background: var(--portal-dark); border-radius: 20px; font-size: 1.5rem; place-items: center; }
.privacy-banner h2 { max-width: 720px; margin: 5px 0 7px; color: var(--portal-dark); font-size: clamp(1.5rem, 2.7vw, 2.2rem); font-weight: 800; letter-spacing: -.035em; }
.privacy-banner p { margin: 0; color: rgba(23,23,23,.64); font-size: .8rem; }
.portal-dark-button { padding: 13px 18px; color: #fff; background: var(--portal-dark); border-radius: 11px; font-size: .75rem; font-weight: 900; white-space: nowrap; }
.portal-dark-button:hover { color: var(--portal-dark); background: #fff; }

/* Shared page flow */
.portal-page-header { position: relative; overflow: hidden; padding: 34px 0 82px; color: #fff; background: radial-gradient(circle at 86% 10%, rgba(246,194,61,.16), transparent 28%), linear-gradient(135deg, #121212, #29261f); }
.portal-page-header::after { position: absolute; right: -100px; bottom: -180px; width: 390px; height: 390px; content: ""; border: 60px solid rgba(246,194,61,.035); border-radius: 50%; }
.portal-breadcrumbs { position: relative; z-index: 2; margin-bottom: 30px; }
.portal-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0; padding: 0; list-style: none; }
.portal-breadcrumbs li { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.48); font-size: .66rem; font-weight: 700; }
.portal-breadcrumbs li + li::before { content: "/"; color: rgba(255,255,255,.22); }
.portal-breadcrumbs a:hover { color: var(--portal-yellow); }
.portal-page-title { position: relative; z-index: 2; display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; }
.portal-page-title h1 { max-width: 860px; margin: 9px 0 10px; color: #fff; font-size: clamp(2.3rem, 4.8vw, 4.3rem); font-weight: 800; letter-spacing: -.05em; line-height: 1.02; }
.portal-page-title p { max-width: 720px; margin: 0; color: rgba(255,255,255,.58); font-size: .94rem; line-height: 1.7; }
.page-title-stat { display: flex; align-items: center; gap: 11px; padding: 14px 18px; color: var(--portal-dark); background: var(--portal-yellow); border-radius: 15px; box-shadow: 0 15px 30px rgba(0,0,0,.22); }
.page-title-stat strong { font-size: 1.8rem; line-height: 1; }
.page-title-stat span { font-size: .58rem; font-weight: 900; line-height: 1.25; letter-spacing: .07em; text-transform: uppercase; }
.portal-content-section { padding: 54px 0 82px; background: var(--portal-surface); }
.directory-content, .event-content { padding-top: 0; }
.portal-filter-panel, .event-filter-panel { position: relative; z-index: 4; margin-top: -37px; background: #fff; border: 1px solid var(--portal-line); border-radius: 19px; box-shadow: var(--portal-shadow-lg); }
.portal-filter-panel { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 17px; padding: 22px; }
.portal-filter-search label, .event-filter-panel label { display: block; margin-bottom: 7px; color: var(--portal-dark); font-size: .68rem; font-weight: 900; }
.portal-filter-search > div, .event-filter-search > div { position: relative; display: flex; }
.portal-filter-search > div > i, .event-filter-search > div > i { position: absolute; top: 50%; left: 15px; color: #98958b; transform: translateY(-50%); }
.portal-filter-search input, .event-filter-search input { width: 100%; height: 50px; padding: 0 115px 0 43px; color: var(--portal-dark); background: #faf9f5; border: 1px solid var(--portal-line); border-radius: 11px; outline: none; }
.portal-filter-search input:focus, .event-filter-search input:focus { background: #fff; border-color: var(--portal-yellow); box-shadow: 0 0 0 4px rgba(246,194,61,.15); }
.portal-filter-search button { position: absolute; top: 5px; right: 5px; height: 40px; padding: 0 18px; color: var(--portal-dark); background: var(--portal-yellow); border: 0; border-radius: 8px; font-size: .72rem; font-weight: 900; }
.filter-summary { display: flex; align-items: center; gap: 14px; min-height: 50px; color: var(--portal-muted); font-size: .7rem; }
.filter-summary > span { padding: 9px 12px; background: var(--portal-surface); border-radius: 9px; white-space: nowrap; }
.filter-summary i { margin-right: 5px; color: var(--portal-gold); }
.filter-summary a { color: var(--portal-red); font-weight: 800; white-space: nowrap; }
.filter-chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 23px 0 34px; }
.filter-chips a { padding: 9px 13px; color: var(--portal-muted); background: #fff; border: 1px solid var(--portal-line); border-radius: 999px; font-size: .68rem; font-weight: 800; }
.filter-chips a:hover, .filter-chips a.active { color: var(--portal-dark); background: var(--portal-yellow); border-color: var(--portal-yellow); }
.status-filter-chips { margin-top: -24px; }
.status-filter-chips a i { margin-right: 5px; }
.result-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.result-heading h2 { margin: 5px 0 0; color: var(--portal-dark); font-size: 1.65rem; font-weight: 800; letter-spacing: -.03em; }
.result-heading > span { color: var(--portal-muted); font-size: .7rem; font-weight: 800; }
.portal-directory-grid { gap: 12px; }
.portal-person-card { min-height: 104px; padding: 13px; background: #fff; border-radius: 17px; }
.portal-person-card .person-avatar { width: 58px; height: 58px; min-width: 58px; border-radius: 14px; }
.portal-person-card.is-inactive { background: #fcfbf9; border-color: #dedbd4; }
.person-badges { display: flex; flex-wrap: wrap; gap: 5px; margin: 1px 0 5px; }
.person-copy .person-status, .person-copy .license-validity { display: inline-flex; width: fit-content; align-items: center; gap: 4px; padding: 3px 7px; border-radius: 999px; font-size: .56rem; font-weight: 900; line-height: 1.2; }
.person-copy .person-status.is-active { color: #187545; background: #e2f5ea; }
.person-copy .person-status.is-inactive { color: #a43a43; background: #fbe8e9; }
.person-copy .person-status i, .person-copy .license-validity i { font-size: .6rem; }
.person-copy .license-validity { color: #765800; background: #fff3c7; }
.person-copy .license-validity.is-expired { color: #a43a43; background: #fbe8e9; }
.person-copy .license-validity.is-empty { color: #77736b; background: #efede8; }
.person-copy .person-meta { display: block; }
.person-card-action { display: grid; width: 34px; height: 34px; color: #aaa79d; background: var(--portal-surface); border-radius: 10px; font-size: .68rem; place-items: center; transition: background .2s ease, color .2s ease, transform .2s ease; }
.portal-person-card:hover .person-card-action { color: var(--portal-dark); background: var(--portal-yellow); transform: translateX(2px); }
.portal-pager { margin-top: 30px; }
.directory-paths { display: flex; align-items: center; gap: 10px; margin-top: 32px; padding: 15px 18px; background: #fff; border: 1px solid var(--portal-line); border-radius: 14px; }
.directory-paths > span { margin-right: auto; color: var(--portal-muted); font-size: .68rem; font-weight: 800; }
.directory-paths a { padding: 8px 11px; color: var(--portal-dark); background: var(--portal-surface); border-radius: 9px; font-size: .68rem; font-weight: 800; }
.directory-paths a:hover { background: var(--portal-yellow-pale); }
.directory-paths i { margin-right: 5px; color: var(--portal-gold); }

/* Events */
.event-filter-panel { display: grid; grid-template-columns: minmax(260px, 1fr) 190px 145px auto auto; align-items: end; gap: 10px; padding: 20px; }
.event-filter-search input { padding-right: 15px; }
.event-filter-select select { width: 100%; height: 50px; padding: 0 35px 0 13px; color: var(--portal-dark); background: #faf9f5; border: 1px solid var(--portal-line); border-radius: 11px; outline: none; }
.event-filter-submit, .event-filter-reset { display: inline-flex; height: 50px; align-items: center; justify-content: center; border: 0; border-radius: 11px; font-size: .7rem; font-weight: 900; }
.event-filter-submit { gap: 6px; padding: 0 16px; color: var(--portal-dark); background: var(--portal-yellow); }
.event-filter-reset { width: 45px; color: var(--portal-red); background: #ffe8eb; }
.portal-event-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.portal-event-card { display: flex; min-height: 310px; flex-direction: column; padding: 22px; background: #fff; border: 1px solid var(--portal-line); border-radius: 19px; box-shadow: var(--portal-shadow); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.portal-event-card:hover { border-color: var(--portal-yellow); box-shadow: 0 20px 46px rgba(23,23,23,.12); transform: translateY(-4px); }
.portal-event-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.portal-event-card-top time { display: flex; width: 70px; height: 70px; flex-direction: column; align-items: center; justify-content: center; color: var(--portal-dark); background: var(--portal-yellow); border-radius: 15px; }
.portal-event-card-top time strong { font-size: 1.55rem; line-height: 1; }
.portal-event-card-top time span { margin-top: 5px; font-size: .54rem; font-weight: 900; letter-spacing: .06em; }
.portal-event-card-top > div { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.portal-event-card-body { margin-top: 24px; }
.portal-event-card-body h2 { margin: 0 0 10px; color: var(--portal-dark); font-size: 1.2rem; font-weight: 800; line-height: 1.3; }
.portal-event-card-body p { margin: 0; color: var(--portal-muted); font-size: .72rem; }
.portal-event-card-body p i { margin-right: 5px; color: var(--portal-gold); }
.portal-event-card-footer { display: flex; flex-wrap: wrap; gap: 14px; margin-top: auto; padding-top: 19px; border-top: 1px solid var(--portal-line); font-size: .68rem; font-weight: 900; }
.portal-event-card-footer a:first-child i { margin-left: 5px; }
.event-detail-header { padding-bottom: 64px; }
.event-detail-summary { position: relative; z-index: 2; display: grid; grid-template-columns: 100px 1fr auto; align-items: center; gap: 24px; }
.event-detail-date { display: flex; height: 100px; flex-direction: column; align-items: center; justify-content: center; color: var(--portal-dark); background: var(--portal-yellow); border-radius: 21px; box-shadow: 0 15px 33px rgba(0,0,0,.24); }
.event-detail-date strong { font-size: 2.15rem; line-height: 1; }
.event-detail-date span { margin-top: 7px; font-size: .58rem; font-weight: 900; letter-spacing: .08em; }
.event-detail-copy h1 { max-width: 780px; margin: 9px 0 13px; color: #fff; font-size: clamp(2rem, 4.2vw, 3.6rem); font-weight: 800; letter-spacing: -.045em; line-height: 1.04; }
.event-detail-meta { display: flex; flex-wrap: wrap; gap: 14px 21px; color: rgba(255,255,255,.6); font-size: .72rem; }
.event-detail-meta i { margin-right: 5px; color: var(--portal-yellow); }
.event-detail-actions { display: flex; flex-direction: column; gap: 8px; }
.portal-primary-button, .portal-outline-button, .portal-outline-dark-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 12px 16px; border-radius: 11px; font-size: .7rem; font-weight: 900; }
.portal-primary-button { color: var(--portal-dark); background: var(--portal-yellow); border: 1px solid var(--portal-yellow); }
.portal-primary-button:hover { color: var(--portal-dark); background: var(--portal-yellow-strong); transform: translateY(-1px); }
.portal-outline-button { color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.22); }
.portal-outline-button:hover { color: #fff; background: rgba(255,255,255,.08); }
.portal-outline-dark-button { color: var(--portal-dark); background: #fff; border: 1px solid var(--portal-line); }
.portal-outline-dark-button:hover { color: var(--portal-dark); border-color: var(--portal-yellow); }
.document-header-icon { display: grid; width: 76px; height: 76px; color: #fff; background: var(--portal-red); border-radius: 20px; font-size: 1.7rem; box-shadow: 0 16px 34px rgba(0,0,0,.25); place-items: center; }
.document-content { padding-top: 0; }
.portal-document-card { position: relative; z-index: 3; margin-top: -35px; padding: 25px; background: #fff; border: 1px solid var(--portal-line); border-radius: 20px; box-shadow: var(--portal-shadow-lg); }
.portal-document-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: 20px; }
.portal-document-toolbar > div:first-child > span { color: var(--portal-gold); font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.portal-document-toolbar h2 { margin: 4px 0; color: var(--portal-dark); font-size: 1.15rem; font-weight: 800; }
.portal-document-toolbar p { margin: 0; color: var(--portal-muted); font-size: .7rem; }
.portal-document-toolbar > div:last-child { display: flex; gap: 8px; }
.portal-pdf-frame { height: 760px; }
.document-help { margin: 13px 0 0; color: var(--portal-muted); font-size: .68rem; }
.document-help i { margin-right: 5px; color: var(--portal-gold); }

/* Referee profile */
.profile-page-header { padding-bottom: 64px; }
.profile-summary { position: relative; z-index: 2; display: grid; grid-template-columns: 112px 1fr auto; align-items: center; gap: 25px; }
.profile-summary .profile-avatar { width: 112px; height: 112px; min-width: 112px; border-radius: 26px; }
.verified-label.is-active { color: #7ce0a6; }
.verified-label.is-inactive { color: #ff9da5; }
.profile-summary-copy h1 { margin: 7px 0 6px; color: #fff; font-size: clamp(2rem, 4.1vw, 3.7rem); font-weight: 800; letter-spacing: -.045em; }
.profile-summary-copy > p { margin: 0; color: rgba(255,255,255,.63); font-size: .85rem; }
.profile-summary-meta { display: flex; flex-wrap: wrap; gap: 14px 20px; margin-top: 12px; color: rgba(255,255,255,.55); font-size: .7rem; }
.profile-summary-meta i { margin-right: 5px; color: var(--portal-yellow); }
.profile-content { background: var(--portal-surface); }
.profile-layout { display: grid; grid-template-columns: 320px 1fr; align-items: start; gap: 18px; }
.profile-side-card, .portal-data-panel { padding: 25px; background: #fff; border: 1px solid var(--portal-line); border-radius: 19px; box-shadow: var(--portal-shadow); }
.profile-side-card { position: sticky; top: 145px; }
.profile-side-card dl { margin: 19px 0 0; }
.profile-side-card dl > div { padding: 13px 0; border-bottom: 1px solid var(--portal-line); }
.profile-side-card dt { color: var(--portal-muted); font-size: .6rem; letter-spacing: .09em; text-transform: uppercase; }
.profile-side-card dd { margin: 4px 0 0; color: var(--portal-dark); font-size: .78rem; font-weight: 800; }
.profile-status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 999px; font-size: .65rem; font-weight: 900; }
.profile-status-badge.is-active { color: #187545; background: #e2f5ea; }
.profile-status-badge.is-inactive { color: #a43a43; background: #fbe8e9; }
.profile-privacy { display: flex; gap: 11px; margin-top: 20px; padding: 14px; color: var(--portal-muted); background: var(--portal-surface); border-radius: 12px; }
.profile-privacy > i { margin-top: 2px; color: var(--portal-gold); }
.profile-privacy p { display: flex; flex-direction: column; margin: 0; font-size: .63rem; line-height: 1.55; }
.profile-privacy strong { margin-bottom: 3px; color: var(--portal-dark); }
.profile-main-column { display: grid; gap: 15px; }
.portal-data-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 19px; }
.portal-data-heading h2 { margin: 5px 0 0; color: var(--portal-dark); font-size: 1.35rem; font-weight: 800; }
.portal-data-heading > span { display: grid; width: 39px; height: 39px; color: var(--portal-dark); background: var(--portal-yellow); border-radius: 10px; font-weight: 900; place-items: center; }
.portal-qualification-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.portal-qualification-grid article { display: flex; gap: 11px; padding: 15px; background: var(--portal-surface); border: 1px solid #efede6; border-radius: 13px; }
.portal-qualification-grid article > span { display: grid; width: 37px; height: 37px; min-width: 37px; color: var(--portal-gold); background: var(--portal-yellow-pale); border-radius: 9px; place-items: center; }
.portal-qualification-grid article > div { display: flex; flex-direction: column; }
.portal-qualification-grid strong { color: var(--portal-dark); font-size: .76rem; }
.portal-qualification-grid small { margin-top: 3px; color: var(--portal-muted); font-size: .62rem; }
.portal-qualification-grid em { margin-top: 5px; color: var(--portal-gold); font-size: .6rem; font-style: normal; font-weight: 800; }
.portal-qualification-grid .qualification-validity { display: inline-flex; width: fit-content; align-items: center; gap: 5px; margin-top: 8px; padding: 5px 7px; color: #187545; background: #e2f5ea; border-radius: 7px; }
.portal-qualification-grid .qualification-validity.is-expired { color: #a43a43; background: #fbe8e9; }
.portal-qualification-grid .qualification-validity.is-empty { color: #77736b; background: #efede8; }
.profile-event-list { display: grid; gap: 1px; background: var(--portal-line); }
.profile-event-list a { display: grid; grid-template-columns: 90px 1fr auto; align-items: center; gap: 15px; padding: 14px 0; background: #fff; }
.profile-event-list time { color: var(--portal-gold); font-size: .65rem; font-weight: 900; }
.profile-event-list a > div { display: flex; flex-direction: column; }
.profile-event-list strong { color: var(--portal-dark); font-size: .75rem; }
.profile-event-list span { margin-top: 4px; color: var(--portal-muted); font-size: .62rem; }
.profile-event-list span i { margin-right: 4px; }
.profile-event-list a > i { color: #aaa79e; font-size: .7rem; }

/* Legacy data views aligned with the new shell */
.portal-v2 .page-hero { padding: 38px 0 72px; background: radial-gradient(circle at 86% 10%, rgba(246,194,61,.16), transparent 28%), linear-gradient(135deg, #121212, #29261f); }
.portal-v2 .page-hero h1 { font-size: clamp(2.2rem, 4.5vw, 3.8rem); }
.portal-v2 .page-content { background: var(--portal-surface); }
.portal-v2 .data-card, .portal-v2 .info-card { border-radius: 19px; }

/* Footer */
.portal-footer { padding: 64px 0 22px; color: rgba(255,255,255,.58); background: radial-gradient(circle at 5% 0, rgba(246,194,61,.1), transparent 25%), var(--portal-dark); }
.portal-footer-grid { display: grid; grid-template-columns: 1.55fr .75fr .75fr; gap: 45px; padding-bottom: 42px; }
.portal-footer-about p, .portal-footer-note p { margin: 18px 0 0; font-size: .7rem; line-height: 1.75; }
.portal-footer-links, .portal-footer-note { display: flex; flex-direction: column; }
.portal-footer-links > strong, .portal-footer-note > strong { margin-bottom: 15px; color: #fff; font-size: .76rem; }
.portal-footer-links a { margin: 5px 0; font-size: .68rem; }
.portal-footer-links a:hover { color: var(--portal-yellow); }
.portal-footer-note > span { margin-top: 15px; color: var(--portal-yellow); font-size: .63rem; font-weight: 800; }
.portal-footer-note > span i { margin-right: 5px; }
.portal-footer-bottom { display: flex; justify-content: space-between; padding-top: 19px; border-top: 1px solid rgba(255,255,255,.09); font-size: .63rem; }
.portal-footer-bottom a { color: var(--portal-yellow); font-weight: 800; }
.portal-footer-bottom a i { margin-left: 5px; }

[data-reveal] { transition: opacity .45s ease, transform .45s ease; }
.reveal-pending { opacity: 0; transform: translateY(14px); }
.reveal-visible { opacity: 1; transform: none; }

@media (max-width: 1199.98px) {
    .portal-flow-grid { grid-template-columns: repeat(2, 1fr); }
    .portal-event-grid { grid-template-columns: repeat(2, 1fr); }
    .event-filter-panel { grid-template-columns: minmax(260px, 1fr) 170px 130px auto; }
    .event-filter-reset { position: absolute; top: -12px; right: -8px; }
    .portal-footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
}
@media (max-width: 991.98px) {
    .portal-utility-bar { display: none; }
    .portal-navbar { min-height: 72px; }
    .portal-navbar .navbar-collapse { margin-top: 10px; padding: 12px; background: #fff; border: 1px solid var(--portal-line); border-radius: 15px; box-shadow: var(--portal-shadow); }
    .portal-navbar .nav-link { margin: 2px 0; padding: 11px !important; }
    .portal-navbar .nav-link::after { display: none; }
    .portal-navbar .nav-link.active { color: var(--portal-dark) !important; background: var(--portal-yellow-pale); border-radius: 9px; }
    .portal-dropdown { width: 100%; box-shadow: none; }
    .portal-login { display: flex; margin-top: 6px; }
    .portal-hero-shell { padding: 48px 42px; }
    .portal-hero-shell::after { left: 42px; }
    .portal-metrics { grid-template-columns: repeat(2, 1fr); }
    .portal-metrics a:nth-child(2) { border-right: 0; }
    .portal-metrics a:nth-child(-n+2) { border-bottom: 1px solid var(--portal-line); }
    .certification-track { grid-template-columns: repeat(2, 1fr); }
    .certification-track a:nth-child(2) { border-right: 0; }
    .certification-track a:nth-child(-n+2) { border-bottom: 1px solid var(--portal-line); }
    .portal-section-heading { align-items: flex-start; flex-direction: column; }
    .portal-filter-panel { grid-template-columns: 1fr; }
    .filter-summary { min-height: 0; }
    .event-filter-panel { grid-template-columns: 1fr 1fr; }
    .event-filter-search { grid-column: 1 / 3; }
    .event-filter-submit { grid-column: 1 / 3; }
    .event-detail-summary { grid-template-columns: 86px 1fr; }
    .event-detail-date { height: 86px; }
    .event-detail-actions { grid-column: 1 / 3; flex-direction: row; }
    .profile-layout { grid-template-columns: 1fr; }
    .profile-side-card { position: static; }
    .portal-footer-grid { grid-template-columns: repeat(2, 1fr); }
    .portal-footer-note { grid-column: auto; }
}
@media (max-width: 767.98px) {
    .portal-brand-mark { width: 40px; height: 48px; }
    .portal-brand-copy strong { font-size: .84rem; }
    .portal-hero { padding-top: 22px; }
    .portal-hero-shell { padding: 38px 24px; border-radius: 23px; }
    .portal-hero-shell::after { left: 24px; }
    .portal-hero h1 { font-size: 2.7rem; }
    .hero-search { height: auto; flex-wrap: wrap; padding: 7px; }
    .hero-search > i { position: absolute; margin: 16px 13px; }
    .hero-search input { width: 100%; height: 44px; padding-left: 35px; flex-basis: 100%; }
    .hero-search button { width: 100%; }
    .portal-metrics { margin-right: 0; margin-left: 0; }
    .portal-metrics a { padding: 16px; }
    .portal-section { padding: 62px 0; }
    .portal-flow-grid, .portal-event-grid { grid-template-columns: 1fr; }
    .flow-card { min-height: 245px; }
    .privacy-banner { grid-template-columns: 58px 1fr; padding: 24px; }
    .privacy-banner-icon { width: 58px; height: 58px; border-radius: 15px; }
    .privacy-banner .btn { grid-column: 1 / 3; }
    .portal-page-header { padding: 28px 0 66px; }
    .portal-page-title { align-items: flex-start; flex-direction: column; }
    .page-title-stat { align-self: flex-start; }
    .portal-filter-panel, .event-filter-panel { margin-top: -29px; }
    .filter-chips { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 6px; }
    .filter-chips a { flex: 0 0 auto; }
    .directory-paths { align-items: stretch; flex-direction: column; }
    .directory-paths > span { margin: 0 0 4px; }
    .event-filter-panel { grid-template-columns: 1fr; }
    .event-filter-search, .event-filter-submit { grid-column: auto; }
    .event-detail-summary { grid-template-columns: 74px 1fr; gap: 15px; }
    .event-detail-date { height: 74px; border-radius: 16px; }
    .event-detail-date strong { font-size: 1.7rem; }
    .event-detail-actions { flex-direction: column; }
    .portal-document-toolbar { align-items: flex-start; flex-direction: column; }
    .portal-document-toolbar > div:last-child { width: 100%; flex-direction: column; }
    .portal-pdf-frame { height: 520px; }
    .profile-summary { grid-template-columns: 86px 1fr; gap: 16px; }
    .profile-summary .profile-avatar { width: 86px; height: 86px; min-width: 86px; border-radius: 20px; }
    .profile-back-button { grid-column: 1 / 3; }
    .portal-qualification-grid { grid-template-columns: 1fr; }
    .profile-event-list a { grid-template-columns: 1fr auto; }
    .profile-event-list time { grid-column: 1 / 3; }
    .portal-footer-grid { grid-template-columns: 1fr; gap: 30px; }
    .portal-footer-bottom { align-items: flex-start; flex-direction: column; gap: 10px; }
}
@media (max-width: 479.98px) {
    .portal-brand-copy small { display: none; }
    .portal-hero h1 { font-size: 2.28rem; }
    .portal-metrics { grid-template-columns: 1fr; }
    .portal-metrics a { border-right: 0; border-bottom: 1px solid var(--portal-line); }
    .portal-metrics a:last-child { border-bottom: 0; }
    .certification-track { grid-template-columns: 1fr; }
    .certification-track a { min-height: 150px; border-right: 0; border-bottom: 1px solid var(--portal-line); }
    .latest-event-card { grid-template-columns: 65px 1fr; gap: 13px; padding: 14px; }
    .latest-event-date { width: 65px; height: 65px; }
    .portal-page-title h1 { font-size: 2.3rem; }
    .result-heading { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    [data-reveal], .reveal-pending { opacity: 1 !important; transform: none !important; transition: none !important; }
}
