:root {
    --bg: #eef4f1;
    --bg-elevated: #fbfdfb;
    --surface: #ffffff;
    --surface-subtle: #f7f7f4;
    --surface-strong: #20242a;
    --text: #181b20;
    --text-soft: #68707a;
    --text-muted: #8b929a;
    --line: rgba(24, 27, 32, 0.12);
    --line-strong: rgba(24, 27, 32, 0.2);
    --gold: #b98a42;
    --gold-soft: #ead8b9;
    --wine: #8f2d3b;
    --emerald: #0f7662;
    --emerald-dark: #0d3f39;
    --emerald-soft: #dcefeb;
    --emerald-pale: #f4faf8;
    --ink: #252a31;
    --danger: #b64242;
    --warning: #b27a22;
    --shadow-soft: 0 10px 28px rgba(24, 27, 32, 0.08);
    --shadow-strong: 0 24px 60px rgba(24, 27, 32, 0.16);
    --radius: 8px;
}

* {
    box-sizing: border-box;
}

[hidden] {
    display: none !important;
}

html {
    min-width: 0;
}

body {
    margin: 0;
    font-family: "Inter", "Segoe UI", sans-serif;
    color: var(--text);
    background:
        radial-gradient(circle at 12% -10%, rgba(15, 118, 98, 0.16), transparent 34%),
        linear-gradient(180deg, #fbfdfb 0%, var(--bg) 48%, #e6efeb 100%);
}

.login-body {
    --login-copy: #f4fbff;
    --login-copy-soft: rgba(215, 228, 237, 0.64);
    --login-field: rgba(4, 16, 25, 0.72);
    --login-field-border: rgba(55, 214, 180, 0.36);
    --login-field-border-focus: rgba(66, 237, 201, 0.82);
    --login-overlay-left: rgba(2, 8, 14, 0.28);
    --login-overlay-right: rgba(0, 8, 13, 0.16);
    --login-mark-rotate: 0deg;
    min-height: 100vh;
    min-height: 100svh;
    position: relative;
    isolation: isolate;
    overflow-x: hidden;
    color: var(--login-copy);
    background: #020912;
}

.login-body::before {
    content: "";
    position: fixed;
    z-index: -1;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 12% 46%, rgba(10, 44, 48, 0.16), transparent 38%),
        linear-gradient(90deg, var(--login-overlay-left) 0%, rgba(1, 7, 12, 0.12) 45%, var(--login-overlay-right) 100%),
        linear-gradient(180deg, rgba(0, 4, 8, 0.12), rgba(0, 5, 9, 0.34));
}

.login-backdrop {
    --login-parallax-x: 0px;
    --login-parallax-y: 0px;
    --login-lens-x: 0px;
    --login-lens-y: 0px;
    --login-pointer-x: 72vw;
    --login-pointer-y: 50vh;
    --login-lens-opacity: 0;
    position: fixed;
    z-index: -2;
    inset: -3%;
    pointer-events: none;
    transform: translate3d(var(--login-parallax-x), var(--login-parallax-y), 0) scale(1.04);
    transition: opacity 420ms ease;
    will-change: transform;
}

.login-backdrop-image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    opacity: 0.92;
    animation: loginBackdropDrift 24s ease-in-out infinite alternate;
    will-change: transform;
}

.login-backdrop-lens {
    position: absolute;
    inset: 0;
    opacity: var(--login-lens-opacity);
    transform: translate3d(var(--login-lens-x), var(--login-lens-y), 0) scale(1.035);
    -webkit-mask-image: radial-gradient(circle 220px at var(--login-pointer-x) var(--login-pointer-y), #000 0%, rgba(0, 0, 0, 0.92) 36%, rgba(0, 0, 0, 0.38) 64%, transparent 80%);
    mask-image: radial-gradient(circle 220px at var(--login-pointer-x) var(--login-pointer-y), #000 0%, rgba(0, 0, 0, 0.92) 36%, rgba(0, 0, 0, 0.38) 64%, transparent 80%);
    mix-blend-mode: screen;
    transition: opacity 320ms ease;
    will-change: transform, opacity;
}

.login-backdrop-lens-image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    filter: brightness(1.32) saturate(1.28) contrast(1.06);
}

.login-success-transition {
    position: fixed;
    z-index: 30;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    background: #01070d;
    transition: opacity 260ms ease, visibility 0s linear 260ms;
}

.login-success-transition-image {
    width: 108%;
    height: 108%;
    display: block;
    margin: -4%;
    object-fit: cover;
    object-position: center;
    opacity: 0;
    transform: translate3d(4%, 0, 0) scale(1.14);
    filter: brightness(0.74) saturate(1.22) contrast(1.08);
    will-change: transform, opacity;
}

.login-success-brand {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    width: min(820px, 84vw);
    display: grid;
    place-items: center;
    box-sizing: border-box;
    padding: clamp(14px, 1.8vw, 24px) clamp(18px, 2.4vw, 32px);
    border: 1px solid rgba(218, 237, 247, 0.72);
    border-radius: clamp(22px, 2.5vw, 34px);
    opacity: 0;
    background: linear-gradient(135deg, rgba(241, 248, 252, 0.97), rgba(190, 218, 233, 0.92));
    box-shadow: 0 30px 90px rgba(0, 4, 9, 0.58), inset 0 1px 0 rgba(255, 255, 255, 0.8);
    transform: translate3d(-50%, -50%, 0) scale(0.78);
    will-change: transform, opacity;
}

.login-success-brand::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 5% -3%;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(126, 188, 222, 0.2) 0%, rgba(36, 103, 141, 0.09) 48%, transparent 74%);
    filter: blur(24px);
}

.login-success-brand picture,
.login-success-brand-image {
    width: 100%;
    height: auto;
    display: block;
}

.login-success-brand picture {
    position: relative;
    z-index: 1;
}

.login-success-brand-image {
    filter: contrast(1.08) saturate(1.06) drop-shadow(0 20px 38px rgba(13, 36, 52, 0.18));
}

.login-shell {
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items: center;
    padding: clamp(82px, 10vh, 118px) clamp(32px, 7vw, 112px);
    transition: opacity 300ms ease;
}

.login-body .login-card {
    width: min(520px, 45vw);
    display: grid;
    position: relative;
    z-index: 1;
    gap: clamp(30px, 4vh, 42px);
    padding: 0;
    color: var(--login-copy);
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    animation: loginPanelReveal 820ms cubic-bezier(0.2, 0.78, 0.24, 1) both;
}

.login-body .login-brand {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    align-items: start;
}

.login-body .login-brand .brand-mark {
    width: 72px;
    height: 72px;
    border-radius: 16px;
    animation: loginMarkFloat 7s ease-in-out 1.1s infinite;
    filter: drop-shadow(0 14px 28px rgba(6, 229, 184, 0.18));
    transform-origin: center;
    will-change: transform;
}

.login-body .login-brand .brand-home-svg {
    transform: rotate(var(--login-mark-rotate));
    transition: transform 220ms ease-out;
}

.login-copy {
    display: grid;
    gap: 11px;
}

.login-copy .eyebrow {
    margin: 0;
    color: #d9aa61;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.19em;
    text-transform: uppercase;
}

.login-body .login-brand h1 {
    margin: 0;
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: clamp(2.25rem, 3.45vw, 3.15rem);
    line-height: 1.04;
    letter-spacing: -0.045em;
    color: var(--login-copy);
    text-wrap: balance;
}

.login-description {
    max-width: 470px;
    margin: 2px 0 0;
    color: var(--login-copy-soft);
    font-size: clamp(0.98rem, 1.25vw, 1.08rem);
    line-height: 1.55;
    text-wrap: balance;
}

.login-form {
    width: min(480px, 100%);
    display: grid;
    gap: 14px;
    animation: loginPanelReveal 820ms cubic-bezier(0.2, 0.78, 0.24, 1) 120ms both;
}

.login-form label {
    color: rgba(239, 248, 252, 0.86);
    font-size: 0.9rem;
    font-weight: 700;
}

.login-form input[type="password"],
.login-form input[type="text"] {
    width: 100%;
    height: 56px;
    padding: 0 17px;
    color: #f4fbff;
    caret-color: #48e6c4;
    background: var(--login-field);
    border: 1px solid var(--login-field-border);
    border-radius: 9px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 12px 34px rgba(0, 0, 0, 0.16);
    outline: 0;
    transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
    backdrop-filter: blur(12px);
}

.login-form input[type="password"]:hover,
.login-form input[type="text"]:hover {
    border-color: rgba(71, 226, 194, 0.58);
    background: rgba(5, 20, 30, 0.82);
}

.login-form input[type="password"]:focus-visible,
.login-form input[type="text"]:focus-visible {
    border-color: var(--login-field-border-focus);
    box-shadow: 0 0 0 3px rgba(43, 211, 176, 0.14), 0 18px 42px rgba(0, 0, 0, 0.24);
}

.login-form input[aria-invalid="true"] {
    border-color: rgba(255, 113, 124, 0.72);
}

.login-form input:-webkit-autofill,
.login-form input:-webkit-autofill:hover,
.login-form input:-webkit-autofill:focus {
    -webkit-text-fill-color: #f4fbff;
    -webkit-box-shadow: 0 0 0 1000px #071923 inset;
    caret-color: #48e6c4;
    border-color: var(--login-field-border);
}

.login-error {
    margin: 0;
    padding: 10px 12px;
    color: #ffb0b7;
    background: rgba(116, 24, 35, 0.26);
    border: 1px solid rgba(255, 102, 114, 0.24);
    border-radius: 8px;
    font-size: 0.88rem;
    line-height: 1.45;
    animation: loginErrorReveal 220ms ease both;
}

.login-submit {
    min-height: 56px;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin-top: 3px;
    border-radius: 9px;
    color: #031510;
    background: linear-gradient(100deg, #36d7b7 0%, #19bc9d 48%, #16a985 100%);
    border-color: rgba(92, 255, 219, 0.35);
    box-shadow: 0 16px 34px rgba(15, 153, 124, 0.25), 0 0 26px rgba(38, 221, 182, 0.08);
}

.login-submit::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: -40% auto -40% -35%;
    width: 26%;
    opacity: 0;
    transform: skewX(-18deg) translateX(0);
    background: rgba(255, 255, 255, 0.42);
    transition: transform 720ms cubic-bezier(0.2, 0.75, 0.25, 1), opacity 160ms ease;
}

.login-submit span {
    position: relative;
    z-index: 1;
}

.login-submit:hover,
.login-submit:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(125, 255, 228, 0.62);
    box-shadow: 0 20px 42px rgba(15, 153, 124, 0.34), 0 0 32px rgba(38, 221, 182, 0.14);
}

.login-submit:hover::before,
.login-submit:focus-visible::before {
    opacity: 0.8;
    transform: skewX(-18deg) translateX(620%);
}

.login-submit:focus-visible {
    outline: 3px solid rgba(125, 255, 228, 0.3);
    outline-offset: 3px;
}

.login-body.is-auth-pending .login-submit {
    cursor: wait;
    opacity: 0.74;
    transform: none;
}

.login-body.is-auth-success {
    overflow: hidden;
}

.login-body.is-auth-success .login-success-transition {
    visibility: visible;
    opacity: 1;
    transition: opacity 260ms ease, visibility 0s;
}

.login-body.is-auth-success .login-success-transition-image {
    animation: loginSuccessLandscape 860ms cubic-bezier(0.18, 0.72, 0.2, 1) both;
}

.login-body.is-auth-success .login-success-brand {
    animation: loginSuccessBrand 1450ms cubic-bezier(0.16, 0.76, 0.2, 1) both;
}

.login-body.is-auth-success .login-backdrop {
    opacity: 0;
    transform: translate3d(-2.5%, 0, 0) scale(1.16);
}

.login-body.is-auth-success .login-card {
    z-index: 40;
}

.login-body.is-auth-success .login-copy,
.login-body.is-auth-success .login-form {
    animation: loginSuccessContentExit 300ms ease both;
}

.login-body.is-auth-success .login-brand .brand-mark {
    z-index: 41;
    animation: loginMarkSuccess 920ms cubic-bezier(0.2, 0.78, 0.22, 1) both;
    filter: drop-shadow(0 22px 44px rgba(31, 244, 200, 0.34));
}

@keyframes loginBackdropDrift {
    0% {
        transform: scale(1.015) translate3d(-0.35%, -0.2%, 0);
    }
    100% {
        transform: scale(1.055) translate3d(0.6%, 0.45%, 0);
    }
}

@keyframes loginPanelReveal {
    from {
        opacity: 0;
        transform: translate3d(0, 14px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes loginMarkFloat {
    0%, 100% {
        transform: translate3d(0, 0, 0);
        opacity: 0.92;
    }
    50% {
        transform: translate3d(0, -4px, 0);
        opacity: 1;
    }
}

@keyframes loginErrorReveal {
    from {
        opacity: 0;
        transform: translate3d(0, -5px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes loginSuccessLandscape {
    0% {
        opacity: 0;
        transform: translate3d(4%, 0, 0) scale(1.14);
    }
    42% {
        opacity: 0.82;
    }
    100% {
        opacity: 0.42;
        transform: translate3d(0, 0, 0) scale(1.02);
    }
}

@keyframes loginSuccessContentExit {
    to {
        opacity: 0;
        transform: translate3d(-26px, 0, 0);
    }
}

@keyframes loginMarkSuccess {
    0% {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
    }
    56% {
        opacity: 1;
        transform: translate3d(var(--login-success-mark-x, 0px), var(--login-success-mark-y, 0px), 0) scale(1.34);
    }
    100% {
        opacity: 0;
        transform: translate3d(var(--login-success-mark-x, 0px), var(--login-success-mark-y, 0px), 0) scale(0.84);
    }
}

@keyframes loginSuccessBrand {
    0%,
    30% {
        opacity: 0;
        transform: translate3d(-50%, -50%, 0) scale(0.78);
    }
    58% {
        opacity: 1;
        transform: translate3d(-50%, -50%, 0) scale(1.025);
    }
    74%,
    100% {
        opacity: 1;
        transform: translate3d(-50%, -50%, 0) scale(1);
    }
}

@media (max-width: 1023px) {
    .login-shell {
        padding-inline: clamp(28px, 6vw, 64px);
    }

    .login-body .login-card {
        width: min(470px, 53vw);
    }

    .login-backdrop-image {
        object-position: 55% center;
    }

    .login-success-brand {
        width: min(760px, 90vw);
    }
}

@media (max-width: 720px) {
    .login-body {
        --login-overlay-left: rgba(1, 7, 12, 0.58);
        --login-overlay-right: rgba(0, 7, 12, 0.38);
    }

    .login-backdrop {
        inset: -2%;
        opacity: 0.6;
    }

    .login-backdrop-lens {
        display: none;
    }

    .login-backdrop-image {
        object-position: 68% center;
    }

    .login-shell {
        align-items: center;
        padding: max(92px, calc(env(safe-area-inset-top) + 72px)) 24px max(42px, env(safe-area-inset-bottom));
    }

    .login-body .login-card {
        width: min(100%, 460px);
        gap: 30px;
    }

    .login-body .login-brand {
        gap: 18px;
    }

    .login-body .login-brand .brand-mark {
        width: 64px;
        height: 64px;
    }

    .login-body .login-brand h1 {
        font-size: clamp(2rem, 10vw, 2.7rem);
    }

    .login-description {
        max-width: 390px;
        font-size: 0.96rem;
    }
}

@media (max-width: 420px) {
    .login-shell {
        padding-inline: 18px;
    }

    .login-body .login-card {
        gap: 26px;
    }

    .login-copy {
        gap: 9px;
    }

    .login-copy .eyebrow {
        font-size: 0.71rem;
    }

    .login-form input[type="password"],
    .login-form input[type="text"],
    .login-submit {
        min-height: 54px;
        height: 54px;
    }
}

@media (max-height: 640px) {
    .login-shell {
        align-items: flex-start;
        padding-top: max(74px, calc(env(safe-area-inset-top) + 62px));
        padding-bottom: 34px;
    }

    .login-body .login-card {
        gap: 24px;
    }

    .login-body .login-brand {
        gap: 14px;
    }

    .login-body .login-brand .brand-mark {
        width: 56px;
        height: 56px;
    }

    .login-success-brand {
        width: min(660px, 94vw);
    }
}

@media (prefers-reduced-motion: reduce) {
    .login-backdrop,
    .login-backdrop-image,
    .login-backdrop-lens,
    .login-body .login-card,
    .login-body .login-brand .brand-mark,
    .login-body .login-brand .brand-home-svg,
    .login-form,
    .login-submit::before,
    .login-success-transition,
    .login-success-transition-image,
    .login-success-brand,
    .login-body.is-auth-success .login-copy,
    .login-body.is-auth-success .login-form {
        animation: none;
        transition: none;
        transform: none;
    }

    .login-backdrop-lens {
        display: none;
    }

    .login-success-brand {
        transform: translate3d(-50%, -50%, 0);
    }

    .login-body.is-auth-success .login-success-brand {
        opacity: 1;
    }

    .login-body.is-auth-success .login-brand .brand-mark {
        opacity: 0;
    }
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input {
    font: inherit;
}

.page-shell {
    width: min(1480px, calc(100% - 32px));
    margin: 0 auto;
    padding: 22px 0 48px;
}

.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 92px;
    padding: 18px 20px;
    margin-bottom: 22px;
    color: #f8f6ef;
    background:
        radial-gradient(circle at 8% 0%, rgba(94, 234, 212, 0.22), transparent 34%),
        linear-gradient(135deg, #072f2a 0%, #0d3f39 58%, #123a35 100%);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--radius);
    box-shadow: var(--shadow-strong);
}

.topbar-brand {
    display: inline-grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-width: 260px;
}

.brand-mark {
    width: 48px;
    height: 48px;
    border-radius: var(--radius);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22);
    position: relative;
    overflow: visible;
}

.brand-mark::before,
.brand-mark::after {
    content: none;
}

.brand-home-svg {
    width: 100%;
    height: 100%;
    display: block;
}

.brand-logo-picture {
    width: 100%;
    height: 100%;
    display: block;
    box-sizing: border-box;
    padding: 2px;
    border: 1px solid rgba(121, 153, 181, 0.42);
    border-radius: inherit;
    background: linear-gradient(145deg, #f8fbfd 0%, #dfe9f1 100%);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.78);
    overflow: hidden;
}

.brand-logo-image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    transform: scale(1.08);
    transform-origin: center;
    filter: contrast(1.06) saturate(1.03);
    user-select: none;
}

.brand-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.eyebrow,
.hero-label,
.meta-caption {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--gold);
}

.topbar .eyebrow {
    color: #a7f3d0;
}

.page-title {
    display: block;
    margin: 0;
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: 1.72rem;
    line-height: 1.1;
    color: #fffaf1;
    overflow-wrap: anywhere;
}

.topbar-actions,
.toolbar-actions,
.dashboard-tabs,
.mode-switcher,
.search-form {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.topbar-actions {
    justify-content: flex-end;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    border: 1px solid transparent;
    border-radius: var(--radius);
    padding: 10px 14px;
    background: var(--ink);
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

.ui-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.button:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 22px rgba(24, 27, 32, 0.16);
}

.button-primary {
    background: linear-gradient(135deg, #13a37f, var(--emerald));
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: 0 12px 24px rgba(15, 118, 98, 0.24);
}

.button-secondary {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.2);
    color: #f3fff9;
}

.button-ghost {
    background: #fff;
    border-color: var(--line-strong);
    color: var(--ink);
}

.button-excel {
    background: linear-gradient(135deg, #11836c, var(--emerald));
    border-color: rgba(15, 118, 98, 0.2);
    color: #fff;
    box-shadow: 0 12px 24px rgba(15, 118, 98, 0.2);
}

.button-mob {
    background: linear-gradient(135deg, #d7a04f, var(--gold));
    border-color: rgba(114, 78, 26, 0.24);
    color: #231a0f;
    box-shadow: 0 12px 24px rgba(185, 138, 66, 0.2);
}

.alerts {
    display: grid;
    gap: 10px;
    margin-bottom: 18px;
    transition: opacity 0.22s ease, transform 0.22s ease;
}

.alerts-hiding {
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
}

.alert {
    padding: 14px 16px;
    border-radius: var(--radius);
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
}

.alert-success {
    border-left: 4px solid var(--emerald);
}

.alert-danger {
    border-left: 4px solid var(--danger);
}

.hero,
.table-card,
.metric-card,
.import-card {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(24, 27, 32, 0.09);
    border-radius: var(--radius);
    box-shadow: 0 12px 30px rgba(24, 27, 32, 0.08);
}

.hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 22px;
    align-items: stretch;
    padding: 26px;
    margin-bottom: 24px;
    background:
        linear-gradient(120deg, rgba(15, 118, 98, 0.11), transparent 52%),
        rgba(255, 255, 255, 0.94);
}

.hero-copy {
    display: grid;
    align-content: start;
    gap: 10px;
    min-width: 0;
}

.hero h1,
.hero h2 {
    margin: 0;
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: 2rem;
    line-height: 1.12;
    font-weight: 900;
    color: var(--text);
}

.hero-text {
    margin: 0;
    max-width: 850px;
    color: var(--text-soft);
    line-height: 1.58;
}

.hero-ticker {
    width: 100%;
    min-width: 0;
    height: 52px;
    display: flex;
    align-items: center;
    overflow: hidden;
    border: 1px solid rgba(15, 118, 98, 0.14);
    border-radius: var(--radius);
    background:
        linear-gradient(90deg, rgba(15, 118, 98, 0.08), rgba(255, 255, 255, 0.72)),
        rgba(255, 255, 255, 0.7);
}

.hero-ticker-track {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 0;
    padding-left: 0;
    animation: heroTicker 24s linear infinite;
    will-change: transform;
}

.hero-ticker-group {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 28px;
    padding: 0 28px 0 18px;
}

.hero-ticker:hover .hero-ticker-track {
    animation-play-state: paused;
}

.hero-ticker-item {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--emerald-dark);
    font-size: 1rem;
    line-height: 1;
    font-weight: 800;
    white-space: nowrap;
}

.hero-ticker-item::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--emerald);
    box-shadow: 0 0 0 4px rgba(15, 118, 98, 0.09);
}

@keyframes heroTicker {
    from {
        transform: translateX(0);
    }

    to {
        transform: translate3d(-50%, 0, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-ticker-track {
        animation: none;
    }
}

.small-text {
    font-size: 0.92rem;
}

.hero-mode {
    margin: 0;
    color: var(--emerald);
    font-weight: 800;
}

.hero-meta {
    min-width: 230px;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-content: center;
    align-items: center;
    gap: 6px 10px;
    padding: 18px;
    border: 1px solid rgba(15, 118, 98, 0.18);
    border-radius: var(--radius);
    background: linear-gradient(180deg, #f6fffb, #fff);
}

.hero-meta strong {
    grid-column: 2;
    font-size: 1.05rem;
}

.hero-meta .meta-caption {
    color: var(--emerald);
}

.hero-meta-icon {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--emerald);
}

.hero.desktop-dashboard {
    align-items: center;
    gap: 18px;
    padding: 14px 24px;
    margin-bottom: 16px;
}

.hero.desktop-dashboard .hero-copy {
    align-content: center;
    gap: 0;
}

.hero.desktop-dashboard .hero-ticker {
    height: 42px;
}

.hero.desktop-dashboard .hero-ticker-track {
    gap: 24px;
    padding-left: 14px;
}

.hero.desktop-dashboard .hero-ticker-item {
    font-size: 0.96rem;
}

.hero.desktop-dashboard .hero-meta {
    min-width: 220px;
    min-height: 58px;
    padding: 12px 16px;
}

.hero.desktop-dashboard .hero-meta strong {
    font-size: 0.98rem;
}

.import-panel {
    display: grid;
    grid-template-columns: minmax(260px, 0.7fr) minmax(420px, 1.5fr);
    gap: 16px;
    align-items: stretch;
    margin-bottom: 24px;
}

.import-copy {
    display: grid;
    align-content: center;
    gap: 10px;
    padding: 4px 6px;
}

.import-copy h3 {
    margin: 0;
    font-size: 1.26rem;
}

.import-copy p {
    margin: 0;
    color: var(--text-soft);
    line-height: 1.55;
}

.import-forms {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.import-upload-form {
    display: grid;
    gap: 14px;
}

.import-actions {
    display: flex;
    justify-content: flex-end;
}

.import-actions .button {
    min-width: 280px;
}

.import-card {
    display: grid;
    gap: 14px;
    align-content: start;
    padding: 18px;
    background:
        linear-gradient(180deg, #fff 0%, #fbfaf6 100%);
}

.import-card-header {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.import-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: var(--radius);
    color: #322416;
    background: var(--gold-soft);
    border: 1px solid rgba(185, 138, 66, 0.4);
    font-weight: 800;
}

.import-card strong {
    display: block;
    margin-top: 3px;
    font-size: 1.06rem;
}

.import-card small {
    color: var(--text-soft);
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.file-input {
    width: 100%;
    min-height: 42px;
    border: 1px dashed rgba(24, 27, 32, 0.28);
    border-radius: var(--radius);
    padding: 10px;
    background: #fff;
    color: var(--text-soft);
}

.cards-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}

.compact-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.table-card.compact-grid {
    display: block;
}

.metric-card {
    min-height: 126px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: center;
    gap: 5px 12px;
    padding: 16px 14px;
    position: relative;
    overflow: hidden;
}

.metric-card.accent {
    background: linear-gradient(135deg, rgba(15, 118, 98, 0.08), rgba(255, 255, 255, 0.97));
}

.metric-card.warning {
    background: linear-gradient(135deg, rgba(143, 45, 59, 0.06), rgba(255, 255, 255, 0.97));
}

.metric-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: linear-gradient(180deg, rgba(15, 118, 98, 0.86), rgba(15, 118, 98, 0.08));
}

.metric-card.accent::before {
    background: linear-gradient(180deg, rgba(15, 118, 98, 0.9), rgba(15, 118, 98, 0.1));
}

.metric-card.warning::before {
    background: linear-gradient(180deg, rgba(143, 45, 59, 0.8), rgba(143, 45, 59, 0.08));
}

.metric-icon {
    grid-row: 1 / 3;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(15, 118, 98, 0.09);
    color: var(--emerald);
}

.metric-icon .ui-icon {
    width: 22px;
    height: 22px;
}

.metric-card.warning .metric-icon {
    background: rgba(143, 45, 59, 0.09);
    color: var(--wine);
}

.metric-label {
    color: var(--text-soft);
    font-size: 0.88rem;
    line-height: 1.3;
}

.metric-value {
    font-size: clamp(1.38rem, 1.52vw, 1.78rem);
    line-height: 1.08;
    font-weight: 900;
    color: var(--text);
    white-space: nowrap;
    overflow-wrap: normal;
    font-variant-numeric: tabular-nums;
}

.metric-long {
    font-size: clamp(0.86rem, 0.86vw, 1rem);
    line-height: 1.42;
    white-space: normal;
    overflow-wrap: anywhere;
}

.toolbar {
    display: grid;
    grid-template-columns: minmax(320px, 0.7fr) minmax(0, 1.3fr);
    align-items: start;
    gap: 16px;
    margin-bottom: 18px;
}

.toolbar-actions {
    justify-content: flex-end;
    gap: 10px;
}

.search-form {
    display: grid;
    grid-template-columns: 34px minmax(220px, 1fr) auto auto;
    align-items: center;
    gap: 8px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 8px 20px rgba(24, 27, 32, 0.05);
}

.search-form-icon {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--emerald);
}

.search-form input[type="text"] {
    min-width: 0;
    height: 42px;
    border-radius: var(--radius);
    border: 1px solid var(--line);
    padding: 0 12px;
    background: #fff;
    color: var(--text);
}

.search-form input[type="text"]:focus,
.file-input:focus {
    outline: 2px solid rgba(15, 118, 98, 0.22);
    border-color: rgba(15, 118, 98, 0.62);
}

.mode-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 12px;
    border-radius: var(--radius);
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid var(--line);
    color: var(--text-soft);
    font-weight: 700;
    transition: border-color 0.16s ease, color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}

.mode-pill:hover {
    border-color: rgba(15, 118, 98, 0.46);
    color: var(--text);
    box-shadow: 0 8px 18px rgba(24, 27, 32, 0.06);
}

.mode-pill-active {
    background: var(--emerald);
    color: #fff;
    border-color: var(--emerald);
}

.toolbar-switches {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.segmented-switch {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 3px;
    border: 1px solid rgba(15, 118, 98, 0.14);
    border-radius: var(--radius);
    background: rgba(15, 118, 98, 0.07);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.64);
}

.segmented-switch .mode-pill {
    min-width: 64px;
    border-color: transparent;
    background: transparent;
    box-shadow: none;
}

.segmented-switch .mode-pill:hover {
    border-color: rgba(15, 118, 98, 0.16);
    background: rgba(255, 255, 255, 0.72);
    box-shadow: none;
}

.segmented-switch .mode-pill-active,
.segmented-switch .mode-pill-active:hover {
    background: var(--emerald);
    color: #fff;
    border-color: var(--emerald);
    box-shadow: 0 6px 16px rgba(15, 118, 98, 0.2);
}

.table-card {
    padding: 0;
    margin-bottom: 22px;
    overflow: hidden;
}

.table-card.compact {
    padding-bottom: 0;
}

.table-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
    background:
        linear-gradient(90deg, rgba(15, 118, 98, 0.08), transparent 56%),
        #fff;
}

.table-header h3 {
    margin: 0;
    font-size: 1.06rem;
}

.table-header p {
    margin: 0;
    color: var(--text-soft);
}

.table-wrapper {
    overflow: auto;
}

.data-table {
    width: 100%;
    min-width: 1080px;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.data-table th,
.data-table td {
    padding: 13px 12px;
    border-bottom: 1px solid var(--line);
    vertical-align: middle;
    background-clip: padding-box;
}

.data-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f3faf7;
    color: var(--text-soft);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 800;
    height: 58px;
    vertical-align: middle;
    text-align: center;
    line-height: 1.25;
}

.data-table th > a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
}

.data-table th.col-rank {
    width: 4%;
}

.data-table th.col-name {
    width: 15%;
}

.data-table th.col-name,
.data-table td.tik-name {
    text-align: left;
}

.data-table th.col-name > a {
    justify-content: flex-start;
    text-align: left;
}

.data-table th.col-number,
.data-table th.col-percent {
    width: 8%;
}

.data-table th.col-district {
    width: 18%;
}

.data-table th.col-action {
    width: 7%;
}

.data-table th.col-district,
.data-table th.col-action {
    text-align: center;
}

.cell-rank,
.cell-number,
.cell-action {
    text-align: center;
}

.rank-badge {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(180deg, #12826e, #0b695a);
    color: #fff;
    font-size: 0.84rem;
    line-height: 1;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    box-shadow: 0 7px 14px rgba(15, 118, 98, 0.2);
}

.rank-badge-small {
    width: 24px;
    height: 24px;
    font-size: 0.74rem;
}

.cell-text {
    text-align: left;
    overflow-wrap: anywhere;
}

.cell-district {
    text-align: center;
    overflow-wrap: anywhere;
}

.cell-number {
    font-variant-numeric: tabular-nums;
}

.data-table tbody tr {
    transition: background 0.12s ease;
}

.data-table tbody tr:hover {
    background: rgba(15, 118, 98, 0.05);
}

.tik-name {
    font-weight: 800;
    color: var(--text);
}

.district-main-row .tik-name {
    min-width: 260px;
}

.district-toggle {
    width: 100%;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    gap: 9px;
    align-items: center;
    border: 0;
    padding: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.district-toggle:focus-visible {
    outline: 2px solid rgba(15, 118, 98, 0.26);
    outline-offset: 4px;
    border-radius: var(--radius);
}

.district-toggle-icon {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    border: 1px solid rgba(15, 118, 98, 0.26);
    background: linear-gradient(180deg, #f4fffb, #fff);
    position: relative;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.district-toggle-icon::before {
    content: "";
    position: absolute;
    left: 7px;
    top: 6px;
    width: 6px;
    height: 6px;
    border-right: 2px solid var(--emerald);
    border-bottom: 2px solid var(--emerald);
    transform: rotate(-45deg);
    transition: transform 0.16s ease, top 0.16s ease;
}

.district-toggle[aria-expanded="true"] .district-toggle-icon::before {
    top: 5px;
    transform: rotate(45deg);
}

.district-title {
    min-width: 0;
    overflow-wrap: anywhere;
}

.district-count {
    min-width: 32px;
    padding: 4px 7px;
    border-radius: 999px;
    background: rgba(15, 118, 98, 0.1);
    color: var(--emerald);
    font-size: 0.76rem;
    line-height: 1;
    font-weight: 800;
    text-align: center;
}

.district-child-row > td {
    padding: 0;
    background: #f6fbf9;
    border-bottom-color: rgba(15, 118, 98, 0.16);
}

.district-panel {
    display: grid;
    gap: 12px;
    padding: 16px 16px 18px 46px;
    border-left: 3px solid var(--emerald);
    background:
        linear-gradient(90deg, rgba(15, 118, 98, 0.08), transparent 58%),
        #f6fbf9;
}

.district-panel-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
}

.district-panel-header span {
    color: var(--text-soft);
    font-size: 0.9rem;
}

.district-panel-scroll {
    overflow: auto;
}

.district-table {
    width: 100%;
    min-width: 760px;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.district-table th,
.district-table td {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(24, 27, 32, 0.08);
    vertical-align: middle;
}

.district-table th {
    color: var(--text-muted);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 800;
    line-height: 1.25;
    text-align: center;
    white-space: normal;
    overflow-wrap: anywhere;
}

.district-table th.col-rank {
    width: 5%;
}

.district-table th.col-name,
.district-table td.tik-name {
    width: 20%;
    text-align: left;
}

.district-table th.col-number,
.district-table th.col-percent {
    width: 11%;
}

.district-table tr:last-child td {
    border-bottom: 0;
}

.results-district-table {
    min-width: 980px;
}

.results-district-table th.col-name,
.results-district-table td.tik-name {
    width: 22%;
}

.results-district-table th:nth-child(4),
.results-district-table td:nth-child(4) {
    width: 24%;
    text-align: left;
    overflow-wrap: anywhere;
}

.results-district-table th.col-action,
.results-district-table td.cell-action {
    width: 9%;
}

.text-link {
    color: var(--emerald);
    font-weight: 800;
}

.row-best td {
    background: rgba(15, 118, 98, 0.055);
}

.row-worst td {
    background: rgba(143, 45, 59, 0.045);
}

.total-row td {
    background: #edf7f3;
    border-top: 0;
    border-bottom: 2px solid var(--line-strong);
    font-weight: 800;
}

.status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 78px;
    border-radius: var(--radius);
    padding: 5px 9px;
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.status-success {
    background: rgba(15, 118, 98, 0.12);
    color: var(--emerald);
}

.status-failed,
.status-danger {
    background: rgba(182, 66, 66, 0.12);
    color: var(--danger);
}

.status-running,
.status-pending {
    background: rgba(178, 122, 34, 0.12);
    color: var(--warning);
}

.empty-state {
    text-align: center;
    color: var(--text-soft);
    padding: 34px 20px;
}

.collapsible-card {
    background: rgba(255, 255, 255, 0.86);
}

.collapsible-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    cursor: pointer;
    list-style: none;
    padding: 18px 20px;
}

.collapsible-summary::-webkit-details-marker {
    display: none;
}

.collapsible-summary h3,
.collapsible-summary p {
    margin: 0;
}

.collapsible-summary p {
    color: var(--text-soft);
    margin-top: 5px;
}

.collapsible-card:not([open]) .table-header,
.collapsible-card:not([open]) .table-wrapper {
    display: none;
}

.collapsible-card[open] .collapsible-summary {
    border-bottom: 1px solid var(--line);
}

.tv-body {
    min-height: 100vh;
    color: #f8f6ef;
    background:
        linear-gradient(120deg, rgba(185, 138, 66, 0.1), transparent 42%),
        linear-gradient(180deg, #171a1f 0%, #22262c 52%, #111418 100%);
}

.tv-shell {
    width: min(1800px, calc(100% - 48px));
    margin: 0 auto;
    padding: 30px 0 42px;
}

.tv-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: start;
    margin-bottom: 24px;
}

.tv-header h1 {
    margin: 0;
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: 3.5rem;
    line-height: 1.05;
}

.tv-subtitle {
    margin: 10px 0 0;
    color: rgba(248, 246, 239, 0.68);
    font-size: 1.04rem;
}

.tv-meta {
    min-width: 280px;
    padding: 18px;
    border-radius: var(--radius);
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.07);
}

.tv-meta strong {
    display: block;
    margin-top: 8px;
    font-size: 1.24rem;
}

.tv-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.tv-card {
    min-height: 138px;
    padding: 18px;
    border-radius: var(--radius);
    border: 1px solid rgba(255, 255, 255, 0.13);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.2);
}

.tv-card .metric-label {
    color: rgba(248, 246, 239, 0.68);
}

.tv-value {
    display: block;
    margin-top: 14px;
    font-size: 2.72rem;
    line-height: 1.06;
    font-weight: 800;
}

.tv-value-small {
    font-size: 1.34rem;
    line-height: 1.32;
}

.tv-mode-switcher {
    margin-top: 14px;
}

.tv-mode-switcher .mode-pill {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.15);
    color: rgba(248, 246, 239, 0.82);
}

.tv-mode-switcher .mode-pill-active {
    background: #f8f6ef;
    color: #181b20;
    border-color: #f8f6ef;
}

.tv-board {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.tv-column {
    border-radius: var(--radius);
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    background: rgba(255, 255, 255, 0.07);
}

.tv-column-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    margin-bottom: 14px;
}

.tv-column-header h2 {
    margin: 0;
    font-size: 1.5rem;
}

.tv-column-header span {
    color: rgba(248, 246, 239, 0.62);
}

.tv-list {
    display: grid;
    gap: 8px;
}

.tv-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    border-radius: var(--radius);
    padding: 13px 14px;
    border: 1px solid transparent;
}

.tv-row-best {
    background: rgba(15, 118, 98, 0.2);
    border-color: rgba(15, 118, 98, 0.28);
}

.tv-row-worst {
    background: rgba(143, 45, 59, 0.18);
    border-color: rgba(143, 45, 59, 0.28);
}

.tv-row-main {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.tv-row-metrics {
    display: grid;
    justify-items: end;
    gap: 4px;
    white-space: nowrap;
}

.tv-rank {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius);
    background: rgba(255, 255, 255, 0.14);
    font-weight: 800;
}

.tv-name {
    font-size: 1.05rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
    .topbar,
    .hero,
    .toolbar,
    .tv-header {
        grid-template-columns: 1fr;
    }

    .topbar {
        align-items: stretch;
    }

    .topbar-actions,
    .toolbar-actions {
        justify-content: flex-start;
    }

    .import-panel {
        grid-template-columns: 1fr;
    }

    .cards-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tv-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .page-shell,
    .tv-shell {
        width: min(100% - 20px, 100%);
        padding-top: 12px;
    }

    .topbar {
        padding: 14px;
        flex-direction: column;
        align-items: stretch;
        overflow: hidden;
    }

    .topbar-brand {
        grid-template-columns: 40px minmax(0, 1fr);
        width: 100%;
        min-width: 0;
    }

    .brand-mark {
        width: 40px;
        height: 40px;
    }

    .page-title {
        font-size: 1.28rem;
    }

    .hero {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    .hero h1,
    .hero h2 {
        font-size: 1.58rem;
    }

    .hero-meta {
        min-width: 0;
    }

    .import-forms,
    .cards-grid,
    .compact-grid,
    .tv-cards,
    .tv-board {
        grid-template-columns: 1fr;
    }

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

    .search-form,
    .toolbar-actions,
    .import-actions,
    .dashboard-tabs,
    .mode-switcher {
        align-items: stretch;
    }

    .topbar-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
        width: 100%;
        min-width: 0;
        gap: 8px;
    }

    .search-form input[type="text"],
    .search-form .button,
    .topbar-actions .button,
    .topbar-actions form,
    .topbar-actions form .button,
    .toolbar-actions .button,
    .toolbar-actions form,
    .toolbar-actions form .button,
    .import-actions .button,
    .mode-pill {
        width: 100%;
    }

    .topbar-actions .button {
        min-width: 0;
        min-height: 48px;
        padding: 10px 8px;
        white-space: normal;
        overflow-wrap: anywhere;
        text-align: center;
    }

    .table-header,
    .collapsible-summary,
    .tv-column-header,
    .tv-row {
        display: grid;
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .tv-header h1 {
        font-size: 2.2rem;
    }

    .tv-row-metrics {
        justify-items: start;
    }

    .district-main-row .tik-name {
        min-width: 220px;
    }

    .district-panel {
        padding: 14px;
    }

    .district-panel-header {
        display: grid;
    }
}

.mobile-top-actions,
.mobile-dashboard {
    display: none;
}

.mobile-icon-button {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: var(--radius);
    color: #f8f6ef;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
    cursor: pointer;
}

.mobile-icon {
    position: relative;
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.mobile-svg-icon {
    width: 24px;
    height: 24px;
    display: block;
    flex: 0 0 auto;
}

.mobile-icon-chart::before {
    content: "";
    position: absolute;
    left: 3px;
    right: 3px;
    bottom: 3px;
    height: 16px;
    border-left: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
}

.mobile-icon-chart::after {
    content: "";
    position: absolute;
    left: 8px;
    bottom: 7px;
    width: 11px;
    height: 9px;
    border-left: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: skewY(-22deg);
    box-shadow: 6px -6px 0 -4px currentColor;
}

.mobile-icon-refresh::before {
    content: "";
    position: absolute;
    inset: 4px;
    border: 2px solid currentColor;
    border-left-color: transparent;
    border-radius: 50%;
}

.mobile-icon-refresh::after {
    content: "";
    position: absolute;
    right: 2px;
    top: 4px;
    width: 7px;
    height: 7px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(35deg);
}

@media (max-width: 820px) {
    body {
        background:
            linear-gradient(180deg, rgba(7, 44, 46, 0.07), rgba(255, 255, 255, 0) 180px),
            #f6f7f4;
    }

    .page-shell {
        width: 100%;
        max-width: none;
        padding: 0 0 28px;
        overflow-x: hidden;
    }

    .alerts {
        margin: 12px 14px;
    }

    .topbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 102px;
        align-items: center;
        gap: 12px;
        min-height: 112px;
        margin: 0;
        padding: calc(16px + env(safe-area-inset-top)) 16px 16px;
        border: 0;
        border-radius: 0;
        background:
            radial-gradient(circle at 8% 0%, rgba(25, 118, 110, 0.42), transparent 36%),
            linear-gradient(135deg, #092a2d 0%, #0e3436 47%, #132028 100%);
        box-shadow: 0 12px 28px rgba(8, 28, 32, 0.22);
        overflow: hidden;
    }

    .topbar-brand {
        width: 100%;
        min-width: 0;
        grid-template-columns: 54px minmax(0, 1fr);
        gap: 12px;
    }

    .topbar .brand-mark {
        width: 54px;
        height: 54px;
        border: 0;
        background: transparent;
        box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22);
    }

    .topbar .brand-mark::before,
    .topbar .brand-mark::after {
        content: none;
    }

    .topbar .eyebrow {
        font-size: 0.68rem;
        letter-spacing: 0.12em;
        color: #a7f3d0;
    }

    .page-title {
        max-width: 210px;
        font-family: "Inter", "Segoe UI", sans-serif;
        font-size: 1.33rem;
        font-weight: 800;
        line-height: 1.12;
        color: #fff;
    }

    .topbar-actions {
        display: none;
    }

    .mobile-top-actions {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
        width: 52px;
        min-width: 0;
    }

    .mobile-top-actions form {
        margin: 0;
    }

    .desktop-dashboard {
        display: none;
    }

    .mobile-dashboard {
        display: grid;
        gap: 12px;
        padding: 14px;
    }

    .mobile-dashboard > *,
    .mobile-summary-copy,
    .mobile-update-card,
    .mobile-control-panel,
    .mobile-list-section,
    .mobile-row-card,
    .mobile-metric-card,
    .mobile-signal {
        min-width: 0;
    }

    .mobile-summary-hero,
    .mobile-control-panel,
    .mobile-list-section,
    .mobile-row-card,
    .mobile-metric-card {
        border: 1px solid rgba(24, 27, 32, 0.09);
        border-radius: var(--radius);
        background: rgba(255, 255, 255, 0.96);
        box-shadow: 0 12px 30px rgba(24, 27, 32, 0.08);
    }

    .mobile-summary-hero {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        align-items: center;
        padding: 14px;
    }

    .mobile-summary-copy {
        display: grid;
        gap: 8px;
    }

    .mobile-summary-copy h2 {
        margin: 0;
        font-size: 1.22rem;
        line-height: 1.18;
        font-weight: 800;
        color: #141821;
    }

    .mobile-summary-copy p {
        margin: 0;
        color: var(--emerald);
        font-size: 0.9rem;
        font-weight: 800;
        line-height: 1.3;
    }

    .mobile-update-card {
        display: grid;
        grid-template-columns: 18px minmax(0, 1fr);
        gap: 5px 7px;
        align-items: center;
        padding: 11px;
        border: 1px solid rgba(185, 138, 66, 0.24);
        border-radius: var(--radius);
        background: linear-gradient(180deg, #fffaf3, #fff);
    }

    .mobile-update-card span:not(.mobile-update-icon) {
        color: #a07134;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        font-size: 0.66rem;
        font-weight: 800;
        line-height: 1.2;
    }

    .mobile-update-card strong {
        grid-column: 2;
        color: #151a22;
        font-size: 0.83rem;
        line-height: 1.25;
    }

    .mobile-update-icon {
        width: 18px;
        height: 18px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #b98a42;
        position: relative;
    }

    .mobile-update-icon::before {
        content: none;
    }

    .mobile-note {
        margin: 0;
        padding: 10px 12px;
        border: 1px solid rgba(178, 122, 34, 0.24);
        border-radius: var(--radius);
        color: #704a19;
        background: rgba(255, 250, 240, 0.95);
        font-size: 0.86rem;
        line-height: 1.42;
    }

    .mobile-metric-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
        min-width: 0;
    }

    .mobile-metric-card {
        min-height: 104px;
        display: grid;
        grid-template-columns: 54px minmax(0, 1fr);
        grid-template-rows: auto auto;
        align-content: center;
        gap: 4px 10px;
        padding: 13px;
    }

    .mobile-metric-icon {
        grid-row: 1 / 3;
        width: 48px;
        height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: rgba(15, 118, 98, 0.09);
        color: var(--emerald);
        position: relative;
    }

    .mobile-metric-icon::before {
        content: none;
    }

    .mobile-metric-label {
        color: var(--text-soft);
        font-size: 0.86rem;
        line-height: 1.25;
    }

    .mobile-metric-card strong {
        color: #141821;
        font-size: 1.38rem;
        line-height: 1.08;
        font-weight: 900;
        overflow-wrap: anywhere;
    }

    .mobile-signal {
        min-height: 82px;
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr);
        grid-template-rows: auto auto;
        align-content: center;
        gap: 5px 10px;
        padding: 13px;
        border-radius: var(--radius);
    }

    .mobile-signal-good {
        border: 1px solid rgba(15, 118, 98, 0.1);
        background: linear-gradient(135deg, rgba(15, 118, 98, 0.1), rgba(255, 255, 255, 0.95));
        color: var(--emerald);
    }

    .mobile-signal-bad {
        border: 1px solid rgba(143, 45, 59, 0.1);
        background: linear-gradient(135deg, rgba(143, 45, 59, 0.1), rgba(255, 255, 255, 0.95));
        color: var(--wine);
    }

    .mobile-signal-icon {
        grid-row: 1 / 3;
        width: 36px;
        height: 36px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: relative;
    }

    .mobile-signal-icon::before {
        content: none;
    }

    .mobile-signal span:not(.mobile-signal-icon) {
        text-transform: uppercase;
        letter-spacing: 0.07em;
        font-size: 0.68rem;
        font-weight: 800;
    }

    .mobile-signal strong {
        color: #151a22;
        font-size: 0.94rem;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }

    .mobile-control-panel {
        display: grid;
        gap: 12px;
        padding: 12px;
    }

    .mobile-search-form {
        height: 58px;
        display: grid;
        grid-template-columns: 34px minmax(0, 1fr) 1px;
        align-items: center;
        gap: 8px;
        padding: 0 14px;
        border: 1px solid rgba(24, 27, 32, 0.1);
        border-radius: var(--radius);
        background: #fff;
    }

    .mobile-search-form input[type="text"] {
        min-width: 0;
        height: 100%;
        border: 0;
        outline: 0;
        color: #151a22;
        font-size: 1rem;
        background: transparent;
    }

    .mobile-search-form input[type="text"]::placeholder {
        color: #808995;
    }

    .mobile-search-form button {
        width: 1px;
        height: 1px;
        padding: 0;
        border: 0;
        opacity: 0;
        pointer-events: none;
    }

    .mobile-search-icon {
        width: 22px;
        height: 22px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #66717d;
        position: relative;
    }

    .mobile-search-icon::after {
        content: none;
    }

    .mobile-filter-row {
        display: flex;
        align-items: center;
        gap: 10px;
        min-width: 0;
        max-width: 100%;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
    }

    .mobile-filter-row::-webkit-scrollbar {
        display: none;
    }

    .mobile-pill,
    .mobile-filter-button {
        flex: 0 0 auto;
        height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 1px solid rgba(24, 27, 32, 0.1);
        border-radius: var(--radius);
        background: #fff;
        color: #4f5965;
        font-weight: 800;
        box-shadow: 0 8px 18px rgba(24, 27, 32, 0.05);
    }

    .mobile-pill {
        min-width: 70px;
        padding: 0 14px;
    }

    .mobile-pill-active {
        color: #fff;
        background: #141c24;
        border-color: #141c24;
        box-shadow: 0 10px 20px rgba(20, 28, 36, 0.18);
    }

    .mobile-segment-group {
        flex: 0 0 auto;
        display: inline-flex;
        align-items: center;
        gap: 2px;
        padding: 3px;
        border: 1px solid rgba(24, 27, 32, 0.1);
        border-radius: var(--radius);
        background: rgba(24, 27, 32, 0.05);
    }

    .mobile-segment-group .mobile-pill {
        min-width: 58px;
        height: 42px;
        padding: 0 12px;
        border-color: transparent;
        background: transparent;
        box-shadow: none;
    }

    .mobile-segment-group .mobile-pill-active {
        background: #141c24;
        border-color: #141c24;
        color: #fff;
        box-shadow: 0 8px 18px rgba(20, 28, 36, 0.18);
    }

    .mobile-filter-button {
        width: 48px;
    }

    .mobile-filter-button span {
        width: 22px;
        height: 22px;
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .mobile-filter-button span::before,
    .mobile-filter-button span::after {
        content: none;
    }

    .mobile-filter-button span::before {
        top: 3px;
    }

    .mobile-filter-button span::after {
        top: 11px;
        box-shadow: none;
    }

    .mobile-excel-link {
        min-height: 58px;
        display: grid;
        grid-template-columns: 36px minmax(0, 1fr) 16px;
        align-items: center;
        gap: 12px;
        padding: 10px 14px;
        border: 1px solid rgba(24, 27, 32, 0.1);
        border-radius: var(--radius);
        background: linear-gradient(180deg, #fff, #fbfcfb);
        color: var(--emerald);
        font-weight: 900;
    }

    .mobile-excel-icon {
        width: 32px;
        height: 32px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #fff;
        background: linear-gradient(135deg, #15865f, #0b6e4d);
        border-radius: 5px;
        box-shadow: -7px 0 0 rgba(21, 134, 95, 0.2);
    }

    .mobile-excel-icon .mobile-svg-icon {
        width: 20px;
        height: 20px;
    }

    .mobile-link-arrow {
        width: 10px;
        height: 10px;
        display: inline-block;
        border-top: 2px solid currentColor;
        border-right: 2px solid currentColor;
        transform: rotate(45deg);
    }

    .mobile-list-section {
        display: grid;
        gap: 12px;
        padding: 12px;
    }

    .mobile-list-title h3 {
        margin: 0;
        color: #151a22;
        font-size: 1rem;
        line-height: 1.2;
    }

    .mobile-row-list {
        display: grid;
        gap: 10px;
    }

    .mobile-row-card {
        display: grid;
        gap: 12px;
        padding: 12px;
    }

    .mobile-row-best {
        border-color: rgba(15, 118, 98, 0.16);
    }

    .mobile-row-worst {
        border-color: rgba(143, 45, 59, 0.14);
    }

    .mobile-row-head {
        display: grid;
        grid-template-columns: minmax(148px, 1fr) minmax(118px, 42%);
        align-items: start;
        gap: 10px;
    }

    .mobile-row-title {
        min-width: 0;
        display: grid;
        grid-template-columns: 28px minmax(0, 1fr);
        align-items: center;
        gap: 10px;
    }

    .mobile-rank {
        width: 24px;
        height: 24px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        color: #fff;
        background: var(--emerald);
        font-size: 0.78rem;
        font-weight: 900;
        font-variant-numeric: tabular-nums;
    }

    .mobile-row-title strong {
        min-width: 0;
        color: #151a22;
        font-size: 1rem;
        line-height: 1.25;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .mobile-row-side {
        min-width: 0;
        max-width: 100%;
        display: grid;
        justify-items: end;
        gap: 5px;
        color: #66717d;
        font-size: 0.84rem;
        line-height: 1.25;
        text-align: right;
    }

    .mobile-row-side span {
        max-width: 100%;
        white-space: normal;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .mobile-row-side a {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: var(--wine);
        font-size: 0.86rem;
        font-weight: 900;
    }

    .mobile-row-metrics {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0;
        border-top: 1px solid rgba(24, 27, 32, 0.06);
        padding-top: 10px;
    }

    .mobile-row-metrics div {
        display: grid;
        gap: 3px;
        min-width: 0;
        padding: 0 8px;
        border-left: 1px solid rgba(24, 27, 32, 0.08);
    }

    .mobile-row-metrics div:first-child {
        border-left: 0;
        padding-left: 0;
    }

    .mobile-row-metrics div:last-child {
        padding-right: 0;
    }

    .mobile-row-metrics span,
    .mobile-row-metrics small {
        color: #68707a;
        font-size: 0.72rem;
        line-height: 1.15;
        overflow-wrap: anywhere;
    }

    .mobile-row-metrics strong {
        color: #151a22;
        font-size: 0.88rem;
        line-height: 1.15;
        font-weight: 900;
        overflow-wrap: anywhere;
    }

    .mobile-row-details {
        border-top: 1px solid rgba(24, 27, 32, 0.08);
        padding-top: 10px;
    }

    .mobile-row-details summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        color: var(--emerald);
        font-weight: 900;
        cursor: pointer;
        list-style: none;
    }

    .mobile-row-details summary::-webkit-details-marker {
        display: none;
    }

    .mobile-row-details summary::after {
        content: "";
        width: 10px;
        height: 10px;
        border-right: 2px solid #3f4b56;
        border-bottom: 2px solid #3f4b56;
        transform: rotate(45deg);
        transition: transform 0.16s ease;
    }

    .mobile-row-details[open] summary::after {
        transform: rotate(-135deg);
    }

    .mobile-child-list {
        display: grid;
        gap: 6px;
        margin-top: 8px;
    }

    .mobile-child-row {
        display: grid;
        gap: 5px;
        padding: 7px 0;
        border-top: 1px solid rgba(24, 27, 32, 0.07);
        color: #5d6670;
        font-size: 0.78rem;
        line-height: 1.25;
    }

    .mobile-child-name {
        color: #151a22;
        font-size: 0.86rem;
        line-height: 1.14;
        overflow-wrap: break-word;
    }

    .mobile-child-metrics {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        overflow: hidden;
        border: 1px solid rgba(24, 27, 32, 0.08);
        border-radius: 8px;
        background: #fff;
    }

    .mobile-child-metrics div {
        min-width: 0;
        display: grid;
        gap: 1px;
        padding: 5px 7px;
        border-top: 1px solid rgba(24, 27, 32, 0.08);
    }

    .mobile-child-metrics div:nth-child(1),
    .mobile-child-metrics div:nth-child(2) {
        border-top: 0;
    }

    .mobile-child-metrics div:nth-child(2n) {
        border-left: 1px solid rgba(24, 27, 32, 0.08);
    }

    .mobile-child-metrics div[aria-hidden="true"] {
        background: rgba(15, 118, 98, 0.025);
    }

    .mobile-child-metrics span {
        color: #68707a;
        font-size: 0.64rem;
        line-height: 1.08;
        overflow-wrap: break-word;
    }

    .mobile-child-metrics strong {
        color: #151a22;
        font-size: 0.78rem;
        line-height: 1.08;
        font-weight: 900;
        overflow-wrap: break-word;
    }
}

@media (max-width: 420px) {
    .topbar {
        grid-template-columns: minmax(0, 1fr) 94px;
        gap: 8px;
        padding-left: 14px;
        padding-right: 14px;
    }

    .topbar-brand {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 10px;
    }

    .topbar .brand-mark,
    .mobile-icon-button {
        width: 48px;
        height: 48px;
    }

    .mobile-top-actions {
        gap: 6px;
        width: 48px;
    }

    .page-title {
        max-width: 170px;
        font-size: 1.18rem;
    }

    .mobile-dashboard {
        padding: 12px 10px;
    }

    .mobile-update-card {
        grid-template-columns: 18px minmax(0, 1fr);
    }

    .mobile-metric-card {
        grid-template-columns: 44px minmax(0, 1fr);
        padding: 11px;
    }

    .mobile-metric-icon {
        width: 40px;
        height: 40px;
    }

    .mobile-metric-card strong {
        font-size: 1.12rem;
    }

}

/* Sections landing */
.sections-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 15% 4%, rgba(167, 243, 208, 0.34), transparent 30%),
        radial-gradient(circle at 90% 24%, rgba(185, 138, 66, 0.16), transparent 26%),
        linear-gradient(180deg, #f9fcfa 0%, #eef5f2 52%, #e5efeb 100%);
}

.sections-main {
    display: grid;
    gap: 26px;
}

.sections-hero {
    min-height: 0;
    padding: clamp(22px, 3vw, 34px);
    overflow: hidden;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 22px;
    background:
        radial-gradient(circle at 100% 0%, rgba(124, 247, 200, 0.2), transparent 42%),
        radial-gradient(circle at 0% 100%, rgba(185, 138, 66, 0.16), transparent 36%),
        linear-gradient(135deg, #0d5f50 0%, #083f35 58%, #062f29 100%);
    box-shadow: 0 28px 70px rgba(7, 53, 45, 0.22);
}

.election-countdown {
    display: grid;
    grid-template-columns: minmax(220px, 0.7fr) minmax(520px, 2fr);
    align-items: center;
    gap: clamp(24px, 4vw, 58px);
    width: 100%;
    padding: clamp(18px, 2.4vw, 28px);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 24px 60px rgba(3, 31, 26, 0.22);
    backdrop-filter: blur(15px);
}

.election-countdown-copy {
    display: grid;
    gap: 10px;
    text-align: left;
}

.election-countdown-copy > p {
    margin: 0;
    color: #c7f7e5;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.election-countdown-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(78px, 1fr));
    gap: 8px;
}

.election-countdown-grid > span {
    min-width: 0;
    display: grid;
    gap: 4px;
    padding: 15px 8px 13px;
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.09);
    text-align: center;
}

.election-countdown-grid strong {
    color: #ffffff;
    font-size: clamp(1.65rem, 3.2vw, 2.6rem);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.election-countdown-grid small {
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
}

.election-countdown-copy time {
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.78rem;
}

.sections-directory {
    display: grid;
    gap: 22px;
    padding: 0 4px 28px;
}

.sections-directory-heading {
    display: grid;
    justify-items: center;
    gap: 7px;
    text-align: center;
}

.sections-directory-heading .eyebrow {
    margin: 0;
    color: var(--emerald);
}

.sections-directory-heading h1 {
    margin: 0;
    color: var(--emerald-dark);
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: clamp(2rem, 3.4vw, 3.1rem);
    line-height: 1;
}

.sections-directory-heading > p:last-child {
    margin: 2px 0 0;
    color: var(--muted);
    font-size: 0.92rem;
}

.sections-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.sections-grid .section-card {
    min-height: 126px;
    grid-template-columns: 54px minmax(0, 1fr) 12px;
    gap: 15px;
    padding: 22px;
    color: var(--ink);
    border-color: rgba(15, 118, 98, 0.12);
    border-radius: 17px;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 14px 36px rgba(27, 67, 59, 0.07);
    backdrop-filter: blur(12px);
}

.sections-grid .section-card:hover {
    border-color: rgba(15, 118, 98, 0.28);
    background: #ffffff;
    box-shadow: 0 20px 42px rgba(20, 79, 67, 0.13);
    transform: translateY(-3px);
}

.sections-grid .site-menu-item-icon {
    width: 54px;
    height: 54px;
    border-radius: 15px;
}

.sections-grid .site-menu-item-copy {
    gap: 6px;
}

.sections-grid .site-menu-item-copy strong {
    color: var(--emerald-dark);
    font-size: 1.05rem;
    line-height: 1.2;
}

.sections-grid .site-menu-item-copy small {
    font-size: 0.8rem;
}

.sections-grid .site-menu-item-arrow {
    opacity: 0.34;
}

@media (max-width: 980px) {
    .election-countdown {
        grid-template-columns: 1fr;
        gap: 18px;
        text-align: center;
    }

    .election-countdown-copy {
        justify-items: center;
        text-align: center;
    }

    .sections-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .sections-page .mobile-top-actions {
        width: 52px;
    }
}

@media (max-width: 620px) {
    .sections-hero {
        padding: 18px 14px;
        border-radius: 18px;
    }

    .election-countdown {
        padding: 18px 12px;
        border-radius: 16px;
    }

    .election-countdown-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .sections-grid .section-card {
        min-height: 104px;
        padding: 17px;
    }
}

@media (max-width: 420px) {
    .sections-page .topbar {
        grid-template-columns: minmax(0, 1fr) 48px;
    }

    .sections-page .mobile-top-actions,
    .sections-page .mobile-top-actions > .site-menu,
    .sections-page .mobile-top-actions .mobile-icon-button {
        width: 48px;
        flex-basis: 48px;
    }
}

@media (max-width: 340px) {
    .mobile-row-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 10px;
    }

    .mobile-row-metrics div:nth-child(3) {
        border-left: 0;
        padding-left: 0;
    }
}

.button-active,
.button-active:hover {
    background: #101820;
    color: #ffffff;
    border-color: #101820;
}

.mobile-icon-button-active {
    background: #101820;
    color: #ffffff;
    border-color: #101820;
}

.results-page main {
    display: grid;
    gap: 18px;
}

.results-controls {
    display: grid;
    gap: 14px;
}

.results-control-row,
.results-filter-form {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.results-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.button-reconcile {
    background: #ffffff;
    border-color: rgba(15, 118, 98, 0.22);
    color: #0d5e49;
}

.results-filter-form label {
    display: grid;
    gap: 6px;
    min-width: 240px;
    flex: 1 1 280px;
}

.results-filter-form label:first-child {
    flex: 2 1 420px;
}

.results-filter-form label > span {
    color: #68707a;
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.results-filter-form input,
.results-filter-form select {
    width: 100%;
    min-height: 44px;
    border: 1px solid rgba(16, 24, 32, 0.16);
    background: #ffffff;
    color: #151a22;
    padding: 0 12px;
    font: inherit;
    outline: none;
}

.results-filter-form select {
    cursor: pointer;
}

.results-filter-form > .button {
    align-self: end;
    min-height: 44px;
    padding: 0 20px;
    color: #fff;
    font-size: 0.92rem;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.results-filter-form > .button span {
    color: inherit;
    font: inherit;
    text-transform: none;
    letter-spacing: 0;
}

.results-filter-form > .button .ui-icon {
    color: inherit;
}

.results-view-switch {
    width: fit-content;
    max-width: 100%;
}

.results-leaderboard {
    display: grid;
    gap: 12px;
}

.results-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
}

.results-section-heading h2 {
    margin: 0;
    color: #151a22;
    font-size: 1.08rem;
    letter-spacing: 0;
}

.results-section-heading p {
    margin: 0;
    color: #68707a;
    font-size: 0.86rem;
}

.leaderboard-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.leader-card {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 4px 10px;
    align-items: center;
    min-height: 82px;
    padding: 12px;
    border: 1px solid rgba(16, 24, 32, 0.08);
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(28, 39, 50, 0.06);
}

.leader-card-top {
    border-color: rgba(20, 113, 88, 0.32);
    background: #f4fbf8;
}

.leader-rank {
    grid-row: span 2;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    color: #ffffff;
    background: #147158;
    font-weight: 900;
    font-size: 0.78rem;
}

.leader-card strong {
    min-width: 0;
    color: #151a22;
    font-size: 0.88rem;
    line-height: 1.18;
}

.leader-card span:last-child {
    color: #68707a;
    font-size: 0.78rem;
}

.results-table-card {
    overflow: hidden;
}

.results-table-note {
    margin: 0;
    color: #68707a;
    font-size: 0.82rem;
}

.results-limit-note {
    margin: 0 0 12px;
    padding: 12px 14px;
    border: 1px solid rgba(184, 129, 42, 0.26);
    background: #fff8ea;
    color: #6c4b18;
    font-size: 0.88rem;
    font-weight: 700;
}

.results-pivot-wrapper {
    max-height: calc(100vh - 260px);
    overflow: auto;
}

.results-pivot-table {
    table-layout: fixed;
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.results-col-uik {
    width: 96px;
}

.results-col-tik {
    width: 232px;
}

.results-col-total {
    width: 132px;
}

.results-col-votes {
    width: 96px;
}

.results-col-percent {
    width: 78px;
}

.results-pivot-table th {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-sizing: border-box;
}

.results-pivot-table td {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-sizing: border-box;
    font-variant-numeric: tabular-nums;
}

.results-pivot-table .cell-number {
    text-align: right;
}

.results-pivot-table .results-total-col {
    min-width: 132px;
}

.results-pivot-table .results-tik-col {
    min-width: 232px;
    max-width: 232px;
    text-align: left;
}

.results-pivot-table .results-uik-col {
    min-width: 96px;
    max-width: 96px;
}

.results-pivot-table .results-sticky-col,
.results-pivot-table .results-sticky-col-2 {
    overflow: hidden;
    text-overflow: ellipsis;
}

.results-pivot-table .results-candidate-head {
    min-width: 174px;
    border-left: 2px solid rgba(20, 113, 88, 0.34);
    border-right: 1px solid rgba(16, 24, 32, 0.12);
    background: #f3faf7;
    text-align: center;
}

.results-pivot-table .results-candidate-head-alt {
    background: #f7f9fb;
}

.results-pivot-table .results-candidate-votes {
    min-width: 96px;
    border-left: 2px solid rgba(20, 113, 88, 0.26);
    padding-left: 12px;
    padding-right: 12px;
    text-align: right;
}

.results-pivot-table .results-candidate-percent {
    min-width: 78px;
    border-left: 1px solid rgba(16, 24, 32, 0.12);
    border-right: 1px solid rgba(16, 24, 32, 0.14);
    padding-left: 10px;
    padding-right: 12px;
    text-align: right;
}

.results-pivot-table tbody .results-candidate-alt {
    background: #fafbfc;
}

.results-pivot-table tbody .results-total-row td,
.results-pivot-table tbody .results-total-row :is(.results-sticky-col, .results-sticky-col-2, .results-candidate-alt) {
    background: #e3f2ed;
}

.results-pivot-table tbody .results-candidate-winner {
    background: #e6f6ef !important;
    color: #0b5f49;
    box-shadow: inset 0 1px 0 rgba(20, 113, 88, 0.16), inset 0 -1px 0 rgba(20, 113, 88, 0.16);
}

.results-pivot-table tbody tr:hover .results-candidate-alt,
.results-pivot-table tbody tr:hover .results-candidate-votes,
.results-pivot-table tbody tr:hover .results-candidate-percent {
    background: #f3faf7;
}

.results-pivot-table tbody tr:hover .results-candidate-winner {
    background: #dff3e9 !important;
}

.results-pivot-table thead th {
    position: sticky;
    top: 0;
    z-index: 5;
}

.results-pivot-table thead .results-subhead th {
    top: 38px;
    z-index: 5;
    background: #eef2f5;
}

.results-sticky-col {
    position: sticky;
    left: 0;
    z-index: 6;
    background: #ffffff;
}

.results-pivot-table thead .results-sticky-col {
    z-index: 8;
    background: #f5f7f9;
}

.results-sticky-col-2 {
    position: sticky;
    left: 96px;
    z-index: 6;
    min-width: 180px;
    background: #ffffff;
}

.results-pivot-table thead .results-sticky-col-2 {
    z-index: 8;
    background: #f5f7f9;
}

.results-contest-table th,
.results-contest-table td {
    vertical-align: middle;
}

.reconcile-page main {
    display: grid;
    gap: 16px;
}

.reconcile-card {
    display: grid;
    gap: 22px;
    padding: 24px;
}

.reconcile-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.reconcile-heading h1 {
    margin: 4px 0 0;
    font-size: 1.8rem;
    line-height: 1.1;
    color: #151a22;
}

.reconcile-upload-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: stretch;
}

.reconcile-file-drop {
    display: grid;
    gap: 8px;
    min-height: 72px;
    padding: 14px 16px;
    border: 1px dashed rgba(15, 118, 98, 0.38);
    background: #f7fbf9;
}

.reconcile-file-title {
    color: #68707a;
    font-size: 0.76rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0;
}

.reconcile-file-name {
    min-width: 0;
    color: #151a22;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reconcile-file-drop input {
    width: 100%;
    color: #68707a;
}

.reconcile-upload-form .button {
    min-width: 210px;
}

.reconcile-progress-card {
    display: grid;
    gap: 16px;
    padding: 22px 24px;
}

.reconcile-progress-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.reconcile-progress-head h2 {
    margin: 0;
    font-size: 1.12rem;
    color: #151a22;
}

.reconcile-progress-head p {
    margin: 6px 0 0;
    color: #68707a;
}

.reconcile-progress-head strong {
    min-width: 64px;
    text-align: right;
    color: #0d5e49;
    font-size: 1.36rem;
}

.reconcile-progress-track {
    height: 14px;
    overflow: hidden;
    background: #e7efec;
    border: 1px solid rgba(15, 118, 98, 0.12);
}

.reconcile-progress-track span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #13a37f, #0f7662);
    transition: width 0.22s ease;
}

.reconcile-result-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.reconcile-error {
    padding: 12px 14px;
    color: #8f1d1d;
    background: #fad9d7;
    border: 1px solid rgba(143, 29, 29, 0.22);
    font-weight: 800;
}

@media (max-width: 1180px) {
    .leaderboard-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .topbar {
        grid-template-columns: minmax(0, 1fr) 108px;
    }

    .mobile-top-actions {
        width: 104px;
        justify-content: flex-end;
    }

    .results-page main {
        gap: 12px;
    }

    .results-control-row,
    .results-filter-form,
    .results-section-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .results-filter-form label,
    .results-filter-form label:first-child,
    .results-filter-form .button,
    .results-control-row .button,
    .results-actions,
    .results-actions .button {
        width: 100%;
        flex: 1 1 auto;
    }

    .reconcile-heading,
    .reconcile-progress-head,
    .reconcile-upload-form {
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .reconcile-upload-form .button {
        width: 100%;
        min-width: 0;
    }

    .leaderboard-strip {
        grid-template-columns: 1fr;
    }

    .results-pivot-wrapper {
        max-height: 70vh;
    }

    .results-sticky-col,
    .results-sticky-col-2 {
        position: static;
    }
}

.visually-hidden {
    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;
}

.eg-page main {
    display: grid;
    gap: 20px;
}

.eg-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 14px 24px;
    align-items: center;
    padding: 18px 20px;
    border: 1px solid rgba(15, 118, 98, 0.14);
    border-radius: var(--radius);
    background:
        radial-gradient(circle at 0% 0%, rgba(19, 163, 127, 0.17), transparent 36%),
        linear-gradient(135deg, #f7fffb 0%, #ffffff 62%, #f5f8f6 100%);
    box-shadow: 0 14px 34px rgba(24, 27, 32, 0.08);
}

.eg-hero-copy {
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 14px;
}

.eg-hero h1 {
    margin: 0;
    color: var(--text);
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: clamp(1.9rem, 3vw, 2.75rem);
    line-height: 0.98;
}

.eg-hero-copy > p:last-child {
    max-width: 510px;
    margin: 14px 0 0;
    color: var(--text-soft);
    line-height: 1.55;
}

.eg-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(150px, 1fr));
    gap: 12px;
    min-width: 0;
}

.eg-summary-card {
    min-width: 0;
    display: grid;
    align-content: center;
    gap: 7px;
    min-height: 150px;
    padding: 20px;
    border: 1px solid rgba(15, 118, 98, 0.13);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 10px 24px rgba(24, 27, 32, 0.06);
}

.eg-summary-card > span {
    color: var(--text-soft);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.eg-summary-card strong {
    color: var(--emerald-dark);
    font-size: clamp(1.75rem, 3vw, 2.8rem);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.eg-summary-card small {
    color: var(--text-soft);
}

.eg-summary-card-primary {
    color: #fff;
    border-color: rgba(5, 81, 67, 0.35);
    background:
        radial-gradient(circle at 100% 0%, rgba(167, 243, 208, 0.23), transparent 42%),
        linear-gradient(145deg, #0f7662, #095848);
    box-shadow: 0 16px 30px rgba(15, 118, 98, 0.22);
}

.eg-summary-card-primary > span,
.eg-summary-card-primary small {
    color: rgba(255, 255, 255, 0.76);
}

.eg-summary-card-primary strong {
    color: #fff;
}

.eg-summary-card-accent {
    border-color: rgba(19, 163, 127, 0.28);
    background:
        radial-gradient(circle at 100% 0%, rgba(19, 163, 127, 0.14), transparent 44%),
        linear-gradient(145deg, #f2fff9, #e8f8f1);
}

.eg-freshness {
    display: flex;
    align-items: center;
    justify-self: end;
    gap: 10px;
    min-width: 250px;
    padding: 8px 12px;
    border: 1px solid rgba(15, 118, 98, 0.12);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, 0.7);
}

.eg-freshness-icon {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: var(--emerald);
    border-radius: 50%;
    background: rgba(15, 118, 98, 0.1);
}

.eg-freshness > span:last-child {
    display: grid;
    gap: 2px;
}

.eg-freshness small {
    color: var(--text-soft);
}

.eg-freshness strong {
    color: var(--text);
}

.eg-hero-ticker {
    grid-column: 1 / -1;
    height: 44px;
    background:
        linear-gradient(90deg, rgba(15, 118, 98, 0.11), rgba(255, 255, 255, 0.82)),
        rgba(255, 255, 255, 0.76);
}

.eg-hero-ticker .hero-ticker-track {
    gap: 0;
    padding-left: 0;
    animation-duration: 16s;
}

.eg-hero-ticker-group {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 26px;
    padding: 0 8px 0 18px;
}

.eg-hero-ticker .hero-ticker-item {
    font-size: 0.96rem;
}

.eg-table-header h2 {
    margin: 0;
    font-size: 1.08rem;
}

.eg-source-note {
    display: grid;
    justify-items: end;
    gap: 3px;
    text-align: right;
}

.eg-source-note span {
    color: var(--text-soft);
    font-size: 0.82rem;
}

.eg-source-note strong {
    color: var(--emerald-dark);
    font-size: 0.86rem;
}

.eg-empty-note {
    padding: 14px 20px;
    color: var(--text-soft);
    border-bottom: 1px solid var(--line);
    background: #fbfcfb;
    text-align: center;
}

.eg-table {
    min-width: 1120px;
    table-layout: auto;
}

.eg-table th.eg-col-name {
    width: 29%;
    text-align: left;
}

.eg-table th.eg-col-electors {
    width: 14%;
}

.eg-table th.eg-col-count {
    width: 12%;
}

.eg-table th.eg-col-share {
    width: 12%;
}

.eg-sort-button {
    width: 100%;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 4px;
    border: 0;
    border-radius: 6px;
    color: inherit;
    background: transparent;
    font: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    text-align: center;
    text-transform: inherit;
    cursor: pointer;
    transition: color 0.16s ease, background 0.16s ease;
}

.eg-col-name .eg-sort-button {
    justify-content: flex-start;
    text-align: left;
}

.eg-sort-button:hover {
    color: var(--emerald-dark);
    background: rgba(15, 118, 98, 0.08);
}

.eg-sort-button:focus-visible {
    outline: 2px solid rgba(15, 118, 98, 0.48);
    outline-offset: 1px;
}

.eg-sort-indicator {
    width: 14px;
    flex: 0 0 14px;
    color: var(--text-muted);
    font-size: 0.95rem;
    line-height: 1;
}

.eg-sort-indicator::before {
    content: "↕";
    opacity: 0.56;
}

.eg-sort-button[data-sort-direction="ascending"] .eg-sort-indicator::before {
    content: "↑";
    color: var(--emerald);
    opacity: 1;
}

.eg-sort-button[data-sort-direction="descending"] .eg-sort-indicator::before {
    content: "↓";
    color: var(--emerald);
    opacity: 1;
}

.eg-table th[aria-sort="ascending"],
.eg-table th[aria-sort="descending"] {
    color: var(--emerald-dark);
    background: #e7f5f0;
}

.eg-mobile-sort-controls {
    display: none;
}

.eg-department-name {
    padding-left: 18px !important;
}

.eg-count-cell strong {
    color: var(--text);
    font-size: 1.02rem;
}

.eg-mobile-metric-label {
    display: none;
}

.eg-share-cell {
    color: var(--emerald-dark);
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.eg-share-cell > strong {
    color: var(--emerald-dark);
    font-size: 1.02rem;
}

.eg-page button:disabled {
    cursor: wait;
    opacity: 0.72;
}

@media (max-width: 1180px) {
    .eg-hero {
        grid-template-columns: minmax(0, 1fr) max-content;
    }
}

@media (max-width: 820px) {
    .topbar {
        grid-template-columns: minmax(0, 1fr) 164px;
    }

    .mobile-top-actions {
        width: 164px;
        justify-content: flex-end;
        gap: 4px;
    }

    .mobile-icon-button {
        width: 52px;
    }

    .eg-page main {
        gap: 14px;
        padding: 14px;
    }

    .eg-hero {
        gap: 12px;
        padding: 16px;
    }

    .eg-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .eg-summary-card {
        min-height: 128px;
        padding: 16px;
    }

    .eg-summary-card strong {
        font-size: 1.65rem;
    }

    .eg-table-header {
        gap: 10px;
    }

    .eg-source-note {
        justify-items: start;
        text-align: left;
    }
}

@media (max-width: 700px) {
    .eg-hero {
        grid-template-columns: 1fr;
    }

    .eg-freshness {
        justify-self: start;
        min-width: 0;
    }

    .eg-hero-ticker {
        grid-column: 1;
    }

    .eg-summary-grid {
        grid-template-columns: 1fr 1fr;
    }

    .eg-mobile-sort-controls:not([hidden]) {
        display: grid;
        gap: 7px;
        padding: 12px 14px;
        border-bottom: 1px solid var(--line);
        background: #f7fbf9;
    }

    .eg-mobile-sort-controls > label {
        color: var(--text-soft);
        font-size: 0.72rem;
        font-weight: 800;
        letter-spacing: 0.05em;
        text-transform: uppercase;
    }

    .eg-mobile-sort-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
    }

    .eg-mobile-sort-row select,
    .eg-mobile-sort-direction {
        min-width: 0;
        min-height: 42px;
        border: 1px solid rgba(15, 118, 98, 0.2);
        border-radius: var(--radius);
        color: var(--emerald-dark);
        background: #fff;
        font-weight: 700;
    }

    .eg-mobile-sort-row select {
        width: 100%;
        padding: 0 34px 0 11px;
    }

    .eg-mobile-sort-direction {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 0 12px;
        cursor: pointer;
    }

    .eg-mobile-sort-row select:focus-visible,
    .eg-mobile-sort-direction:focus-visible {
        outline: 2px solid rgba(15, 118, 98, 0.42);
        outline-offset: 1px;
    }

    .eg-mobile-sort-arrow {
        color: var(--emerald);
        font-size: 1rem;
    }

    .eg-table {
        display: block;
        min-width: 0;
    }

    .eg-table thead {
        display: none;
    }

    .eg-table tbody {
        display: grid;
    }

    .eg-table tbody tr {
        display: grid;
        grid-template-columns: 38px repeat(6, minmax(0, 1fr));
        gap: 8px 12px;
        align-items: center;
        padding: 15px 14px;
        border-bottom: 1px solid var(--line);
    }

    .eg-table tbody tr:last-child {
        border-bottom: 0;
    }

    .eg-table td {
        display: block;
        padding: 0 !important;
        border: 0;
    }

    .eg-table .cell-rank {
        grid-row: 1 / 4;
        align-self: center;
    }

    .eg-table .eg-department-name {
        grid-column: 2 / 8;
    }

    .eg-table .eg-count-cell {
        display: grid;
        gap: 2px;
        text-align: left;
    }

    .eg-table .eg-electors-cell {
        grid-column: 2 / 4;
    }

    .eg-table .eg-registered-cell {
        grid-column: 4 / 6;
        text-align: center;
    }

    .eg-table .eg-voted-cell {
        grid-column: 6 / 8;
        text-align: right;
    }

    .eg-mobile-metric-label {
        display: block;
        color: var(--text-soft);
        font-size: 0.68rem;
        font-weight: 800;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }

    .eg-table .eg-registered-share-cell {
        grid-column: 2 / 5;
        grid-row: 3;
        display: grid;
        gap: 2px;
        text-align: left;
    }

    .eg-table .eg-voted-share-cell {
        grid-column: 5 / 8;
        grid-row: 3;
        display: grid;
        gap: 2px;
        text-align: right;
    }

    .eg-table .eg-total-row .tik-name {
        grid-column: 2 / 8;
    }
}

@media (max-width: 420px) {
    .topbar {
        grid-template-columns: 1fr;
    }

    .mobile-top-actions {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .mobile-top-actions form,
    .mobile-top-actions .mobile-icon-button {
        width: 100%;
    }

    .eg-hero h1 {
        font-size: 2.1rem;
    }

    .eg-summary-card {
        min-height: 116px;
        padding: 14px;
    }

    .eg-summary-card strong {
        font-size: 1.45rem;
    }
}

/* Section menu */
.topbar {
    position: relative;
    z-index: 50;
    overflow: visible;
}

.site-menu {
    position: relative;
    flex: 0 0 auto;
}

.site-menu > summary {
    list-style: none;
}

.site-menu > summary::-webkit-details-marker {
    display: none;
}

.site-menu-trigger {
    min-width: 118px;
}

.site-menu-chevron {
    width: 8px;
    height: 8px;
    margin: -4px 0 0 2px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.site-menu[open] .site-menu-trigger {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.36);
}

.site-menu[open] .site-menu-chevron {
    margin-top: 3px;
    transform: rotate(225deg);
}

.site-menu-panel {
    position: absolute;
    z-index: 100;
    top: calc(100% + 12px);
    right: 0;
    width: min(370px, calc(100vw - 32px));
    padding: 10px;
    color: var(--ink);
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(14, 63, 57, 0.14);
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(8, 28, 32, 0.24);
    backdrop-filter: blur(18px);
}

.site-menu-heading {
    display: grid;
    gap: 3px;
    padding: 10px 12px 12px;
    border-bottom: 1px solid rgba(24, 27, 32, 0.08);
}

.site-menu-heading strong {
    color: var(--emerald-dark);
    font-size: 0.96rem;
}

.site-menu-heading small {
    color: var(--text-soft);
    font-size: 0.78rem;
}

.site-menu-list {
    display: grid;
    gap: 4px;
    padding-top: 8px;
}

.site-menu-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 10px;
    gap: 12px;
    align-items: center;
    min-width: 0;
    padding: 10px 12px;
    color: var(--ink);
    border: 1px solid transparent;
    border-radius: 13px;
    transition: background 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
}

.site-menu-item:hover {
    color: var(--emerald-dark);
    background: #f0faf6;
    border-color: rgba(15, 118, 98, 0.12);
    transform: translateX(2px);
}

.site-menu-item-active,
.site-menu-item-active:hover {
    color: #ffffff;
    background:
        radial-gradient(circle at 100% 0%, rgba(167, 243, 208, 0.2), transparent 46%),
        linear-gradient(135deg, #0f7662, #095848);
    border-color: rgba(5, 81, 67, 0.24);
    box-shadow: 0 10px 22px rgba(15, 118, 98, 0.18);
}

.site-menu-item-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--emerald);
    background: rgba(15, 118, 98, 0.09);
    border-radius: 12px;
}

.site-menu-item-active .site-menu-item-icon {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.14);
}

.site-menu-item-copy {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.site-menu-item-copy strong,
.site-menu-item-copy small {
    overflow-wrap: anywhere;
}

.site-menu-item-copy strong {
    font-size: 0.92rem;
}

.site-menu-item-copy small {
    color: var(--text-soft);
    font-size: 0.76rem;
    line-height: 1.3;
}

.site-menu-item-active .site-menu-item-copy small {
    color: rgba(255, 255, 255, 0.72);
}

.site-menu-item-arrow {
    width: 8px;
    height: 8px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.45;
}

.site-menu > summary:focus-visible,
.site-menu-item:focus-visible {
    outline: 3px solid rgba(94, 234, 212, 0.52);
    outline-offset: 3px;
}

@media (max-width: 820px) {
    .topbar {
        overflow: visible;
    }

    .mobile-top-actions {
        width: 112px;
        display: flex;
        grid-template-columns: none;
        justify-content: flex-end;
        gap: 8px;
    }

    .mobile-top-actions > .site-menu,
    .mobile-top-actions > form,
    .mobile-top-actions .mobile-icon-button {
        width: 52px;
        flex: 0 0 52px;
    }

    .site-menu-mobile {
        position: static;
    }

    .site-menu-mobile .site-menu-panel {
        top: calc(100% + 8px);
        right: 14px;
        left: 14px;
        width: auto;
    }
}

@media (max-width: 420px) {
    .topbar {
        grid-template-columns: minmax(0, 1fr) 102px;
        gap: 8px;
    }

    .mobile-top-actions {
        width: 102px;
        display: flex;
        grid-template-columns: none;
        justify-content: flex-end;
        gap: 6px;
    }

    .mobile-top-actions > .site-menu,
    .mobile-top-actions > form,
    .mobile-top-actions .mobile-icon-button {
        width: 48px;
        flex-basis: 48px;
    }

}
