:root {
    --op-blue: #294094;
    --op-blue-dark: #1d2f70;
    --op-blue-soft: #e9ecf6;
    --op-red: #e0261c;
    --op-red-dark: #b91e16;
    --op-red-soft: #fde9e7;
    --op-gold: #fda302;
    --op-gold-dark: #a96800;
    --op-gold-soft: #fff3d6;
    --op-bg: #f3f5f9;
    --op-surface: #fff;
    --op-border: #dfe3eb;
    --op-text: #1c2230;
    --op-muted: #687386;
    --op-success: #278354;
    --op-success-soft: #e4f4eb;
    --topbar-height: 68px;
    --shadow-sm: 0 1px 2px rgba(24, 37, 69, .04), 0 6px 18px rgba(24, 37, 69, .05);
}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; background: var(--op-bg); }
body { margin: 0; color: var(--op-text); background: var(--op-bg); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
body::before { position: fixed; inset: 0; z-index: 0; pointer-events: none; content: ""; background: url('../img/logo-lvi-background.png') center 56% / min(1100px, 94vw) auto no-repeat; filter: grayscale(1); opacity: .3; mix-blend-mode: multiply; }
.topbar, .member-nav, .admin-nav, .content, .app-footer, .impersonation-banner, .auth-shell { position: relative; z-index: 1; }
.topbar { z-index: 30; }
.member-nav, .admin-nav { z-index: 20; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible { outline: 3px solid rgba(253, 163, 2, .7); outline-offset: 2px; }
.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; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 1000; padding: 10px 14px; color: #fff; background: var(--op-blue-dark); border-radius: 8px; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

/* Horní lišta (přihlášené i nepřihlášené stránky) */
.topbar { display: flex; min-height: var(--topbar-height); align-items: center; justify-content: space-between; gap: 18px; padding: 10px max(18px, calc((100vw - 1080px) / 2)); color: #fff; background: var(--op-blue); border-bottom: 4px solid var(--op-red); }
.topbar-start { display: flex; align-items: center; gap: 6px; min-width: 0; }
.topbar-brand { display: flex; align-items: center; gap: 10px; min-width: 0; color: #fff; text-decoration: none; }
.topbar-brand-mark { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; background: #fff; border-radius: 10px; overflow: hidden; }
.topbar-brand-mark img { display: block; max-width: 30px; max-height: 30px; object-fit: contain; }
.topbar-brand strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.topbar-actions { display: flex; align-items: center; gap: 14px; }
.topbar-user { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.topbar-user-avatar { display: grid; width: 32px; height: 32px; flex: 0 0 auto; place-items: center; color: var(--op-blue); background: #fff; border-radius: 50%; font-size: 11px; font-weight: 800; }
.topbar-user-name { font-size: 13px; font-weight: 650; }
.topbar-link { color: #fff; font-size: 13px; font-weight: 650; text-decoration: none; }
.topbar-link:hover { text-decoration: underline; }
.notification-button { position: relative; display: grid; width: 40px; height: 40px; padding: 0; place-items: center; color: var(--op-blue); background: #fff; border: 0; border-radius: 50%; cursor: pointer; }
.notification-button:hover { background: var(--op-blue-soft); }
.notification-button__bell { font-size: 18px; line-height: 1; }
.notification-button__indicator { position: absolute; top: 4px; right: 4px; width: 10px; height: 10px; background: var(--op-success); border: 2px solid #fff; border-radius: 50%; }
.notification-dialog { position: fixed; width: min(92vw, 470px); padding: 32px; color: var(--op-text); background: #fff; border: 0; border-radius: 18px; box-shadow: 0 22px 70px rgba(17,27,54,.28); }
.notification-dialog::backdrop { background: rgba(20,29,50,.56); backdrop-filter: blur(2px); }
.notification-dialog__close { position: absolute; top: 12px; right: 12px; margin: 0; }
.notification-dialog__close button { display: grid; width: 38px; height: 38px; padding: 0; place-items: center; color: var(--op-muted); background: transparent; border: 0; border-radius: 50%; font-size: 28px; line-height: 1; cursor: pointer; }
.notification-dialog__close button:hover { background: var(--op-bg); }
.notification-dialog__icon { display: grid; width: 54px; height: 54px; margin-bottom: 20px; place-items: center; color: var(--op-blue); background: var(--op-blue-soft); border-radius: 15px; font-size: 23px; }
.notification-dialog h2 { margin: 0 0 10px; font-size: 25px; }
.notification-dialog > p:not(.eyebrow) { margin: 0; color: var(--op-muted); font-size: 13px; line-height: 1.6; }
.notification-status { display: flex; margin: 22px 0; padding: 13px 14px; align-items: center; gap: 10px; color: var(--op-muted); background: #f5f6f8; border-radius: 10px; font-size: 12px; }
.notification-status > span { width: 9px; height: 9px; flex: 0 0 auto; background: #9aa2af; border-radius: 50%; }
.notification-status.is-enabled { color: #176943; background: #edf8f2; }
.notification-status.is-enabled > span { background: var(--op-success); }
.notification-dialog__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.notification-dialog__actions .button { justify-content: center; padding-inline: 12px; }
.install-help { margin-top: 16px; padding: 14px; color: #5c4a12; background: #fff8df; border: 1px solid #f1df9b; border-radius: 10px; font-size: 12px; }
.install-help strong { display: block; margin-bottom: 5px; }
.install-help p { margin: 0; line-height: 1.5; }

/* Přepínač aplikací a menu pod jménem — <details>/<summary>, funguje bez JS */
summary { cursor: pointer; list-style: none; }
summary::-webkit-details-marker { display: none; }
.app-switcher, .user-menu { position: relative; }
.app-switcher { position: fixed; top: 14px; right: 18px; z-index: 999999; }
.app-switcher-button { display: flex; min-height: 46px; align-items: center; gap: 10px; padding: 5px 9px; color: var(--op-text); background: #fff; border: 1px solid var(--op-border); border-radius: 10px; box-shadow: 0 2px 8px rgba(24,37,69,.06); text-align: left; }
.app-switcher-button:hover, details[open] > .app-switcher-button { color: var(--op-text); background: #f6f7fb; }
.app-switcher-button:focus-visible { outline: 3px solid rgba(253,163,2,.7); outline-offset: 2px; }
.app-switcher-mark { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; overflow: hidden; color: #fff; background: var(--op-blue); border-radius: 9px; font-size: 11px; font-weight: 850; }
.app-switcher-mark img { width: 100%; height: 100%; object-fit: cover; }
.app-switcher-mark svg { width: 18px; height: 18px; fill: currentColor; }
.app-switcher-copy { display: flex; min-width: 0; flex-direction: column; }
.app-switcher-copy strong { font-size: 13px; line-height: 1.2; }
.app-switcher-copy small { color: var(--op-muted); font-size: 10px; }
.app-switcher-chevron { width: 13px; height: 13px; margin-left: 2px; fill: #98a0af; transition: transform .15s ease; }
.app-switcher[open] .app-switcher-chevron { transform: rotate(180deg); }
.popover-menu { position: absolute; top: calc(100% + 9px); left: 0; z-index: 60; width: 240px; padding: 7px; background: #fff; border: 1px solid var(--op-border); border-radius: 12px; box-shadow: 0 16px 45px rgba(27,39,76,.16); }
.app-switcher .popover-menu { right: 0; left: auto; width: 280px; }
.user-popover { right: 0; left: auto; width: 180px; }
.user-popover form { margin: 0; }
.user-popover button { display: block; width: 100%; padding: 10px 13px; color: inherit; background: transparent; border: 0; text-align: left; font: inherit; cursor: pointer; }
.user-popover button:hover { background: var(--op-red-soft); color: var(--op-red-dark); }
.popover-menu a { display: flex; flex-direction: column; min-height: 42px; justify-content: center; padding: 8px 11px; color: var(--op-text); border-radius: 8px; font-size: 13px; font-weight: 650; text-decoration: none; }
.popover-menu a:hover { background: var(--op-blue-soft); }
.popover-menu a small { margin-top: 2px; color: var(--op-muted); font-size: 10px; font-weight: 500; }
.popover-menu a.is-current { background: #f6f7fb; }
.popover-menu .user-popover a:hover { background: var(--op-red-soft); color: var(--op-red-dark); }
.app-menu .app-switcher-item { display: grid; min-height: 54px; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 7px 11px; color: var(--op-text); border-radius: 8px; text-decoration: none; }
.app-menu .app-switcher-item:hover, .app-menu .app-switcher-item:focus { color: var(--op-text); background: var(--op-blue-soft); }
.app-switcher-icon { display: grid; width: 38px; height: 38px; place-items: center; overflow: hidden; color: var(--op-blue); background: #f3f5f9; border-radius: 9px; }
.app-switcher-icon svg { width: 17px; height: 17px; fill: currentColor; }
.app-switcher-icon img { width: 100%; height: 100%; object-fit: cover; }
.app-switcher-item-copy { display: flex; min-width: 0; flex-direction: column; }
.app-switcher-item-copy strong { font-size: 12px; line-height: 1.2; }
.app-menu .app-switcher-item-copy small { margin-top: 2px; color: var(--op-muted); font-size: 10px; font-weight: 500; }
.app-switcher-check { width: 17px; height: 17px; fill: var(--op-success); }

.member-nav { display: flex; align-items: center; gap: 4px; padding: 0 max(18px, calc((100vw - 1080px) / 2)); overflow: visible; background: #fff; border-bottom: 1px solid var(--op-border); }
.member-nav-link { padding: 13px 14px; color: var(--op-muted); font-size: 13px; font-weight: 650; text-decoration: none; white-space: nowrap; border-bottom: 3px solid transparent; }
.member-nav-link:hover { color: var(--op-blue); }
.member-nav-link.is-active { color: var(--op-blue); border-bottom-color: var(--op-red); }
.member-nav-dropdown { position: relative; }
.member-nav-dropdown > summary { display: flex; align-items: center; gap: 5px; list-style: none; cursor: pointer; }
.member-nav-dropdown > summary::-webkit-details-marker { display: none; }
.member-nav-dropdown.is-active > summary { color: var(--op-blue); border-bottom-color: var(--op-red); }
.member-nav-popover { top: calc(100% + 2px); left: 0; width: 190px; }
.member-nav-dropdown[open] .member-nav-popover { display: grid; }
.member-nav-popover a, .mobile-member-more .popover-menu a { padding: 11px 14px; color: var(--op-text); font-size: 13px; font-weight: 650; text-decoration: none; }
.member-nav-popover a:hover, .mobile-member-more .popover-menu a:hover { color: var(--op-blue); background: var(--op-blue-soft); }
.nav-badge { display: inline-grid; min-width: 19px; height: 19px; place-items: center; margin-left: 5px; padding: 0 5px; color: #fff; background: var(--op-red); border-radius: 10px; font-size: 10px; font-weight: 800; }
.member-nav-qr { margin-left: auto; color: var(--op-blue); }
.mobile-member-nav { display: none; }
.action-tabs, .action-filters { display: flex; gap: 5px; margin-bottom: 18px; padding: 5px; background: #fff; border: 1px solid var(--op-border); border-radius: 12px; box-shadow: var(--shadow-sm); }
.action-tabs a, .action-filters a { padding: 9px 16px; color: var(--op-muted); border-radius: 8px; font-size: 13px; font-weight: 750; text-decoration: none; }
.action-tabs a.is-active, .action-filters a.is-active { color: #fff; background: var(--op-blue); }
.action-offer-list { display: grid; }
.action-offer-list article { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 16px; padding: 18px 20px; border-top: 1px solid var(--op-border); }
.action-offer-list h3, .action-offer-list p { margin: 0; }
.action-offer-list h3 { margin: 4px 0 7px; }
.action-offer-list p:not(.eyebrow) { color: var(--op-muted); }
.action-type { padding: 5px 8px; color: var(--op-blue); background: var(--op-blue-soft); border-radius: 7px; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.action-type--ticket { color: #8a2a25; background: var(--op-red-soft); }

.ticket-event-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:18px; }
.ticket-event-card { padding:18px; background:#fff; border:1px solid var(--op-border); border-radius:12px; }
.ticket-event-card h3 { margin:0 0 6px; }
.ticket-event-card > p:not(.eyebrow) { color:var(--op-muted); }
.ticket-event-card > div { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; }
.ticket-order-list > a { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:15px 18px; border-top:1px solid var(--op-border); text-decoration:none; }
.ticket-order-list > a:first-child { border-top:0; }
.ticket-order-list span:first-child { display:flex; flex-direction:column; }
.ticket-order-list small,.ticket-category small { color:var(--op-muted); }
.ticket-category { display:grid; grid-template-columns:minmax(0,1fr) auto 100px; align-items:center; gap:16px; padding:16px 20px; border-top:1px solid var(--op-border); }
.ticket-category span { display:flex; flex-direction:column; }
.ticket-category select { min-height:42px; padding:6px 10px; border:1px solid var(--op-border); border-radius:8px; background:#fff; }
.ticket-purchase-form .form-actions { padding:18px 20px; border-top:1px solid var(--op-border); }
.ticket-order-summary { padding:20px; }
.ticket-payment,.ticket-downloads { margin-top:20px; padding-top:18px; border-top:1px solid var(--op-border); }
.ticket-downloads { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.ticket-downloads h2 { width:100%; margin:0; }
.branch-ticket-list > article { padding:16px 18px; border-top:1px solid var(--op-border); }
.branch-ticket-list > article:first-child { border-top:0; }
.branch-ticket-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.branch-ticket-heading > span { display:flex; flex-direction:column; }
.branch-ticket-heading small,.branch-ticket-list > article > p,.branch-ticket-list > article > small { color:var(--op-muted); }
.branch-ticket-files { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.branch-ticket-assignments form { display:grid; grid-template-columns:minmax(180px,1fr) minmax(220px,2fr) auto; align-items:center; gap:12px; padding:16px 18px; border-top:1px solid var(--op-border); }
.branch-ticket-assignments form:first-child { border-top:0; }
.branch-ticket-assignments label { display:flex; flex-direction:column; }
.branch-ticket-assignments small { color:var(--op-muted); }
.branch-ticket-assignments select { min-height:42px; padding:8px 11px; border:1px solid var(--op-border); border-radius:8px; background:#fff; }
.branch-ticket-assignments select:focus { border-color:var(--op-blue); box-shadow:0 0 0 3px rgba(41,64,148,.12); outline:0; }
@media (max-width:700px){.ticket-event-grid{grid-template-columns:1fr;padding:12px}.ticket-category{grid-template-columns:minmax(0,1fr) auto}.ticket-category select{grid-column:1/-1;width:100%}.ticket-order-list>a{align-items:flex-start;flex-direction:column}}
@media (max-width:700px){.branch-ticket-assignments form{grid-template-columns:1fr}.branch-ticket-assignments .button{width:100%}}
.membership-required-shell{display:grid;min-height:100vh;padding:24px;place-items:center}.membership-required-card{width:min(560px,100%);padding:36px;background:#fff;border:1px solid var(--op-border);border-radius:18px;box-shadow:var(--shadow-sm);text-align:center}.membership-required-card>img{width:72px;height:72px;object-fit:contain}.membership-required-card h1{margin:8px 0 12px;font-size:clamp(25px,5vw,34px)}.membership-required-card>p:not(.auth-eyebrow){color:var(--op-muted)}.membership-required-actions{display:flex;margin-top:24px;flex-direction:column;gap:10px}.membership-required-note{margin:22px 0 0;font-size:12px}

.topbar--admin { border-bottom-color: var(--op-gold); }
.impersonation-banner { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 9px 16px; color: #573900; background: var(--op-gold-soft); border-bottom: 1px solid #ebcd86; font-size: 13px; }
.impersonation-banner form { margin: 0; }
.admin-nav { display: flex; align-items: center; gap: 4px; padding: 0 max(18px, calc((100vw - 1080px) / 2)); overflow-x: auto; color: #fff; background: var(--op-blue-dark); }
.admin-nav-badge { margin-right: 10px; padding: 4px 9px; color: var(--op-blue-dark); background: var(--op-gold); border-radius: 999px; font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.admin-nav-link { padding: 12px 12px; color: rgba(255,255,255,.72); font-size: 13px; font-weight: 650; text-decoration: none; white-space: nowrap; border-bottom: 3px solid transparent; }
.admin-nav-link:hover { color: #fff; }
.admin-nav-link.is-active { color: #fff; border-bottom-color: var(--op-gold); }
.admin-breadcrumb { margin: 0 0 6px; color: var(--op-gold-dark); font-size: 11px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.branch-switcher { display: flex; align-items: center; gap: 8px; margin-bottom: 20px; }
.branch-switcher label { color: var(--op-muted); font-size: 12px; font-weight: 750; }
.branch-switcher select { min-height: 38px; padding: 6px 10px; color: var(--op-text); background: #fff; border: 1px solid #ccd2dd; border-radius: 8px; }

.content { width: min(1080px, calc(100% - 32px)); margin: 0 auto; padding: 36px 0 60px; }
.page-heading { margin-bottom: 24px; }
.eyebrow { margin: 0 0 5px; color: var(--op-blue); font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.page-heading h1 { margin: 0; color: var(--op-text); font-size: clamp(24px, 3vw, 32px); line-height: 1.2; letter-spacing: -.03em; }
.page-heading p { margin: 8px 0 0; color: var(--op-muted); }
.home-hero { width: fit-content; max-width: 100%; padding: 18px 22px; background: rgba(255,255,255,.88); border: 1px solid rgba(223,227,235,.9); border-radius: 14px; box-shadow: var(--shadow-sm); backdrop-filter: blur(2px); }
.dashboard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 24px; }
.dashboard-card { min-width: 0; padding: 18px 20px; background: rgba(255,255,255,.94); border: 1px solid var(--op-border); border-radius: 14px; box-shadow: var(--shadow-sm); }
.dashboard-card__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.dashboard-card__heading h2 { margin: 0; font-size: 15px; }
.dashboard-card__heading .text-link { font-size: 11px; }
.dashboard-card small { display: block; margin-top: 8px; color: var(--op-muted); font-size: 11px; }
.dashboard-card__empty { margin: 0; color: var(--op-muted); font-size: 12px; }
.dashboard-card__title { display: block; margin-top: 10px; }
.dashboard-card--urgent { border-top-color: var(--op-red); background: #fffafa; }
.dashboard-card--attention { border-top-color: var(--op-gold); }
.discount-code-list { display: grid; gap: 14px; }
.discount-code-item + .discount-code-item { padding-top: 14px; border-top: 1px solid var(--op-border); }
.discount-code-item > small:first-child { margin: 0 0 6px; font-weight: 700; }
.member-birthday-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.birthday-card { border-top-color: var(--op-gold); }
.birthday-list { margin: 0; padding: 0; list-style: none; }
.birthday-list li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--op-border); }
.birthday-list li:first-child { padding-top: 0; border-top: 0; }
.birthday-list a { min-width: 0; overflow: hidden; color: var(--op-text); font-size: 12px; font-weight: 750; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.birthday-list a:hover { color: var(--op-blue); text-decoration: underline; }
.birthday-list span { flex: 0 0 auto; color: var(--op-blue); font-size: 12px; font-weight: 750; }
.birthday-list small { display: inline; margin: 0; color: var(--op-muted); font-size: 10px; font-weight: 500; }
.branch-ranking-card { grid-column: span 2; }
.branch-ranking-card .dashboard-card__heading { align-items: flex-start; }
.branch-ranking-card .dashboard-card__heading small { margin-top: 2px; }
.branch-ranking-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.branch-ranking-list li { display: flex; min-width: 0; min-height: 76px; align-items: center; gap: 10px; padding: 12px 14px; background: var(--op-blue-soft); border: 1px solid var(--op-border); border-radius: 10px; }
.branch-ranking-list li.is-current { color: #fff; background: var(--op-blue); border-color: var(--op-blue); }
.branch-ranking-list strong { flex: 0 0 auto; color: var(--op-red); font-size: 22px; }
.branch-ranking-list .is-current strong { color: var(--op-gold); }
.branch-ranking-list span { min-width: 0; overflow: hidden; font-size: 12px; font-weight: 750; line-height: 1.25; text-overflow: ellipsis; }
.branch-ranking-list__empty { justify-content: center; color: var(--op-muted); background: transparent !important; border-style: dashed !important; }
.admin-stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.admin-stat-card { display: flex; min-width: 0; min-height: 132px; padding: 20px; flex-direction: column; justify-content: center; background: #fff; border: 1px solid var(--op-border); border-radius: 14px; box-shadow: var(--shadow-sm); }
.admin-stat-card span { color: var(--op-muted); font-size: 11px; font-weight: 750; }
.admin-stat-card strong { margin: 3px 0; color: var(--op-blue); font-size: 32px; line-height: 1.1; letter-spacing: -.04em; }
.admin-stat-card small { color: var(--op-muted); font-size: 11px; }
.admin-dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.admin-dashboard-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.admin-dashboard-print-button { flex: 0 0 auto; }
.admin-dashboard-panel { min-width: 0; margin-bottom: 0; }
.admin-dashboard-panel--wide { grid-column: 1 / -1; }
.ranking-list { margin: 0; padding: 0; list-style: none; }
.ranking-list li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 20px; border-top: 1px solid var(--op-border); }
.ranking-list li:first-child { border-top: 0; }
.ranking-list span { display: flex; min-width: 0; flex-direction: column; }
.ranking-list strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.ranking-list small { color: var(--op-muted); font-size: 10px; }
.ranking-list b { color: var(--op-blue); font-size: 18px; }
.login-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.login-stats > div { padding: 18px; text-align: center; }
.login-stats > div + div { border-left: 1px solid var(--op-border); }
.login-stats dt { color: var(--op-muted); font-size: 10px; }
.login-stats dd { margin: 5px 0 0; color: var(--op-blue); font-size: 24px; font-weight: 800; }
.recent-logins { border-top: 1px solid var(--op-border); }
.recent-logins h3 { margin: 0; padding: 14px 18px 8px; font-size: 12px; }
.recent-logins > p { margin: 0; padding: 4px 18px 16px; color: var(--op-muted); font-size: 11px; }
.recent-logins ol { margin: 0; padding: 0; list-style: none; }
.recent-logins li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 18px; border-top: 1px solid #edf0f4; }
.recent-logins li > span { display: flex; min-width: 0; flex-direction: column; }
.recent-logins strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.recent-logins small, .recent-logins time { color: var(--op-muted); font-size: 9px; }
.recent-logins time { flex: 0 0 auto; }
.fee-summary-table { min-width: 720px; }
.fee-summary-table th:not(:first-child), .fee-summary-table td:not(:first-child) { text-align: right; }
.fee-summary-table th small, .fee-summary-table td small { display: block; margin-top: 2px; color: var(--op-muted); font-size: 9px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.fee-summary-table td b { color: var(--op-blue); font-size: 16px; }
.fee-summary-table tfoot th, .fee-summary-table tfoot td { background: #f8f9fb; border-top: 2px solid var(--op-border); border-bottom: 0; }
.payment-chart-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.payment-chart-heading h2 { margin-bottom: 3px; }
.payment-chart-heading p { margin: 0; color: var(--op-muted); font-size: 10px; }
.payment-chart-heading > strong { flex: 0 0 auto; color: var(--op-blue); font-size: 13px; text-align: right; }
.payment-chart-heading > strong small { color: var(--op-muted); font-size: 9px; font-weight: 600; }
.payment-chart-scroll { padding: 8px 20px 18px; overflow-x: auto; }
.payment-chart-layout { display: grid; min-width: 780px; grid-template-columns: 50px minmax(720px, 1fr); gap: 8px; }
.payment-chart-y-axis { position: relative; display: flex; height: 220px; padding-top: 12px; align-items: flex-end; justify-content: space-between; flex-direction: column; color: var(--op-muted); font-size: 9px; text-align: right; }
.payment-chart-y-axis small { position: absolute; top: 50%; left: -32px; width: 90px; font-size: 8px; transform: rotate(-90deg); }
.payment-chart-y-axis span { width: 100%; }
.payment-chart-bars { display: grid; height: 220px; grid-template-columns: repeat(53, minmax(5px, 1fr)); align-items: end; gap: 3px; padding: 12px 0 0; border-bottom: 1px solid var(--op-border); background: repeating-linear-gradient(to bottom, transparent 0, transparent calc(25% - 1px), #edf0f4 25%); }
.payment-chart-bars span { display: block; min-height: 0; background: var(--op-blue); border-radius: 3px 3px 0 0; cursor: help; transition: background .15s ease; }
.payment-chart-bars span:hover { background: var(--op-red); }
.payment-chart-axis { display: flex; justify-content: space-between; padding-top: 7px; color: var(--op-muted); font-size: 9px; }
.age-chart-content { padding: 12px 20px 0; }
.age-chart-bars { display: grid; height: 250px; grid-template-columns: repeat(7, minmax(48px, 1fr)); align-items: end; gap: 12px; padding: 14px 8px 0; border-bottom: 1px solid var(--op-border); background: repeating-linear-gradient(to bottom, transparent 0, transparent calc(25% - 1px), #edf0f4 25%); }
.age-chart-group { display: grid; height: 100%; grid-template-rows: 22px minmax(0, 1fr) 28px; align-items: end; justify-items: center; }
.age-chart-group > strong { color: var(--op-blue); font-size: 11px; }
.age-chart-group > small { align-self: center; color: var(--op-muted); font-size: 10px; font-weight: 700; }
.age-chart-bar { width: min(54px, 78%); background: var(--op-blue); border-radius: 5px 5px 0 0; cursor: help; transition: background .15s ease; }
.age-chart-bar:hover { background: var(--op-red); }

/* Samostatný dokument pro export administračního přehledu do PDF */
.pdf-export-page { min-width: 0; background: #fff; }
.pdf-export-page::before { display: none; }
.pdf-export { width: min(1120px, calc(100% - 40px)); margin: 0 auto; padding: 28px 0; }
.pdf-export-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 3px solid var(--op-blue); }
.pdf-export-header p { margin: 0 0 3px; color: var(--op-blue); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.pdf-export-header h1 { margin: 0; font-size: 26px; line-height: 1.15; }
.pdf-export-meta { display: flex; align-items: flex-end; gap: 10px; flex-direction: column; color: var(--op-muted); font-size: 11px; }
.pdf-export-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.pdf-export-stats article, .pdf-export-panel { background: #fff; border: 1px solid #cfd5e1; border-radius: 10px; }
.pdf-export-stats article { display: flex; min-height: 92px; padding: 14px 16px; flex-direction: column; justify-content: center; }
.pdf-export-stats span, .pdf-export-stats small { color: var(--op-muted); font-size: 10px; }
.pdf-export-stats strong { margin: 2px 0; color: var(--op-blue); font-size: 24px; line-height: 1.1; }
.pdf-export-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; }
.pdf-export-panel { overflow: hidden; break-inside: avoid; page-break-inside: avoid; }
.pdf-export-panel h2 { margin: 0; padding: 12px 14px; font-size: 14px; border-bottom: 1px solid #dfe3eb; }
.pdf-export-panel table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.pdf-export-panel th, .pdf-export-panel td { padding: 8px 10px; border-bottom: 1px solid #e4e7ed; font-size: 10px; text-align: left; vertical-align: middle; overflow-wrap: anywhere; }
.pdf-export-panel tr:last-child > * { border-bottom: 0; }
.pdf-export-panel thead th { color: var(--op-muted); background: #f5f6f9; font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }
.pdf-export-panel th.number, .pdf-export-panel td.number, .pdf-export-fees th:not(:first-child) { text-align: right; }
.pdf-export-panel td.number { color: var(--op-blue); font-size: 12px; font-weight: 750; white-space: nowrap; }
.pdf-export-panel td small, .pdf-export-panel th small { display: block; margin-top: 2px; color: var(--op-muted); font-size: 8px; font-weight: 500; letter-spacing: 0; text-transform: none; white-space: normal; }
.pdf-export-fees .fee-label { width: 34%; }
.pdf-export-fees tbody td:first-child strong { font-size: 10px; }
.pdf-export-fees tfoot > tr > * { background: #eef1f7; border-top: 2px solid #cfd5e1; }
.pdf-export-chart { margin-bottom: 14px; }
.pdf-export-chart-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; border-bottom: 1px solid #dfe3eb; }
.pdf-export-chart-heading h2 { border: 0; padding-bottom: 2px; }
.pdf-export-chart-heading p { margin: 0; padding: 0 14px 10px; color: var(--op-muted); font-size: 9px; }
.pdf-export-chart-heading > strong { padding: 11px 14px 0; color: var(--op-blue); font-size: 11px; text-align: right; white-space: nowrap; }
.pdf-export-chart-heading > strong small { display: block; margin-top: 1px; color: var(--op-muted); font-size: 8px; }
.pdf-export-chart-layout { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 7px; padding: 10px 14px 9px; }
.pdf-export-chart-y { display: flex; height: 126px; padding-top: 4px; align-items: flex-end; justify-content: space-between; flex-direction: column; color: var(--op-muted); font-size: 7px; text-align: right; }
.pdf-export-chart-y span { width: 100%; }
.pdf-export-chart-bars { display: grid; height: 126px; grid-template-columns: repeat(53, minmax(2px, 1fr)); align-items: end; gap: 2px; padding-top: 4px; border-bottom: 1px solid var(--op-border); background: repeating-linear-gradient(to bottom, transparent 0, transparent calc(25% - 1px), #edf0f4 25%); }
.pdf-export-chart-bars span { display: block; background: var(--op-blue); border-radius: 2px 2px 0 0; }
.pdf-export-chart-axis { display: flex; justify-content: space-between; padding-top: 4px; color: var(--op-muted); font-size: 7px; }
.pdf-export-age-chart { margin-bottom: 14px; }
.pdf-age-chart-bars { display: grid; gap: 5px; padding: 10px 14px 8px; }
.pdf-age-chart-bars > div { display: grid; grid-template-columns: 42px minmax(0, 1fr) 36px; align-items: center; gap: 8px; font-size: 8px; }
.pdf-age-chart-bars i { display: block; height: 8px; background: #edf0f4; border-radius: 3px; overflow: hidden; }
.pdf-age-chart-bars b { display: block; height: 100%; background: var(--op-blue); }
.pdf-age-chart-bars strong { color: var(--op-blue); text-align: right; }
.pdf-age-chart-note { margin: 0; padding: 0 14px 10px; color: var(--op-muted); font-size: 8px; }

@page dashboard-pdf { size: A4 landscape; margin: 10mm; }

@page { size: A4 portrait; margin: 10mm; }

@media print {
    .pdf-export-page { page: dashboard-pdf; color: #000; font-size: 9pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .pdf-export { width: 100%; margin: 0; padding: 0; }
    .pdf-export-action { display: none !important; }
    .pdf-export-header { margin-bottom: 4mm; padding-bottom: 3mm; }
    .pdf-export-stats { gap: 3mm; margin-bottom: 3mm; }
    .pdf-export-stats article { min-height: 21mm; padding: 3mm 4mm; }
    .pdf-export-columns { gap: 3mm; margin-bottom: 3mm; }
    .pdf-export-chart { margin-bottom: 3mm; }
    .pdf-export-chart-layout { padding: 2mm 3mm; }
    .pdf-export-chart-y, .pdf-export-chart-bars { height: 30mm; }
    .pdf-export-panel h2 { padding: 2.5mm 3mm; }
    .pdf-export-panel th, .pdf-export-panel td { padding: 2mm 2.5mm; }
    html:has(.admin-dashboard-page), .admin-dashboard-page { min-width: 0; background: #fff !important; }
    .admin-dashboard-page { color: #000; font-size: 10pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .admin-dashboard-page::before, .admin-dashboard-page .skip-link, .admin-dashboard-page .topbar, .admin-dashboard-page .admin-nav, .admin-dashboard-page .admin-breadcrumb, .admin-dashboard-page .admin-dashboard-heading, .admin-dashboard-page .app-footer { display: none !important; }
    .admin-dashboard-page .content { width: 100%; margin: 0; padding: 0; }
    .admin-dashboard-page .admin-stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4mm; margin-bottom: 5mm; }
    .admin-dashboard-page .admin-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5mm; }
    .admin-dashboard-page .admin-stat-card, .admin-dashboard-page .admin-dashboard-panel { background: #fff !important; border: 1px solid #c9ced8; box-shadow: none; break-inside: avoid; page-break-inside: avoid; }
    .admin-dashboard-page .admin-stat-card { min-height: 25mm; padding: 4mm; }
    .admin-dashboard-page .admin-stat-card strong { font-size: 22pt; }
    .admin-dashboard-page .admin-dashboard-panel--wide { grid-column: 1 / -1; }
    .admin-dashboard-page .payment-chart-scroll, .admin-dashboard-page .table-scroll { overflow: visible; }
    .admin-dashboard-page .payment-chart-scroll { padding: 2mm 4mm 4mm; }
    .admin-dashboard-page .payment-chart-layout { min-width: 0; grid-template-columns: 10mm minmax(0, 1fr); }
    .admin-dashboard-page .payment-chart-y-axis, .admin-dashboard-page .payment-chart-bars { height: 45mm; }
    .admin-dashboard-page .payment-chart-bars { grid-template-columns: repeat(53, minmax(1px, 1fr)); gap: 1px; }
    .admin-dashboard-page .age-chart-content { padding: 2mm 4mm 0; }
    .admin-dashboard-page .age-chart-bars { height: 45mm; gap: 2mm; }
    .admin-dashboard-page .fee-summary-table { min-width: 0; font-size: 7.5pt; }
    .admin-dashboard-page .fee-summary-table th, .admin-dashboard-page .fee-summary-table td { padding: 2.5mm 2mm; }
    .admin-dashboard-page .fee-summary-table td b { font-size: 10pt; }
    .admin-dashboard-page .text-link { color: #000; text-decoration: none; }
}
.home-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 24px; }
.home-info-card { min-height: 150px; }
.home-info-card__title { display: block; font-size: 15px; overflow-wrap: anywhere; }
.contact-links { display: grid; gap: 4px; margin-top: 9px; }
.contact-links a { color: var(--op-blue); font-size: 12px; text-decoration: none; overflow-wrap: anywhere; }
.contact-links a:hover { text-decoration: underline; }
.latest-news-list { margin: -4px 0 0; padding: 0; list-style: none; }
.latest-news-list li + li { border-top: 1px solid var(--op-border); }
.latest-news-list a { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; text-decoration: none; }
.latest-news-list strong { min-width: 0; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.latest-news-list time { flex: 0 0 auto; color: var(--op-muted); font-size: 10px; }

.app-footer { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; padding: 18px; color: #87909e; border-top: 1px solid var(--op-border); font-size: 10px; text-align: center; }

/* Přihlašovací stránka */
.auth-page { min-height: 100vh; background: #fff; }
.auth-shell { display: grid; min-height: 100vh; grid-template-columns: minmax(360px, .9fr) minmax(420px, 1.1fr); }
.auth-brand-panel { position: relative; display: flex; min-height: 100vh; flex-direction: column; justify-content: space-between; padding: clamp(38px, 6vw, 76px); color: #fff; background: var(--op-blue); overflow: hidden; }
.auth-brand-panel::before { position: absolute; right: -28%; bottom: -20%; width: 560px; height: 560px; border: 115px solid rgba(255,255,255,.045); border-radius: 50%; content: ""; }
.auth-brand-panel::after { position: absolute; top: -150px; right: -150px; width: 340px; height: 340px; border: 70px solid rgba(253,163,2,.06); border-radius: 50%; content: ""; }
.auth-brand-content, .auth-motto { position: relative; z-index: 1; }
.auth-logo { display: grid; width: 66px; height: 66px; margin-bottom: 40px; place-items: center; background: #fff; border-radius: 18px; box-shadow: 0 16px 35px rgba(15,28,85,.28); overflow: hidden; }
.auth-logo img, .auth-mobile-logo img { display: block; max-width: 52px; max-height: 52px; object-fit: contain; }
.auth-eyebrow { margin: 0 0 12px; color: var(--op-gold); font-size: 11px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.auth-brand-panel h1 { margin: 0; font-size: clamp(32px, 4.5vw, 50px); line-height: 1.05; letter-spacing: -.045em; }
.auth-brand-panel h1 + p { max-width: 420px; margin: 22px 0 0; color: rgba(255,255,255,.72); font-size: 15px; line-height: 1.7; }
.auth-motto { margin: 40px 0 0; color: rgba(255,255,255,.58); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.auth-form-panel { display: grid; min-height: 100vh; padding: 32px; place-items: center; background: #f8f9fc; }
.auth-card { width: min(100%, 420px); padding: 42px; background: #fff; border: 1px solid var(--op-border); border-radius: 18px; box-shadow: 0 22px 65px rgba(32,47,92,.1); text-align: center; }
.auth-mobile-logo { display: none; }
.auth-card h2 { margin: 0; font-size: 26px; letter-spacing: -.03em; }
.auth-intro { margin: 8px 0 28px; color: var(--op-muted); font-size: 13px; }
.alert { display: flex; align-items: flex-start; gap: 9px; margin-bottom: 20px; padding: 11px 13px; border-radius: 9px; font-size: 12px; text-align: left; }
.alert--danger { color: #9c241d; background: var(--op-red-soft); border: 1px solid #f5cbc7; }
.alert--success { color: #1f7147; background: var(--op-success-soft); border: 1px solid #bde3cd; }

.button { display: inline-flex; min-height: 46px; width: 100%; align-items: center; justify-content: center; gap: 8px; padding: 9px 16px; border: 1px solid transparent; border-radius: 9px; font-size: 14px; font-weight: 750; text-decoration: none; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.button:hover { transform: translateY(-1px); }
.button--primary { color: #fff; background: var(--op-red); box-shadow: 0 7px 16px rgba(224,38,28,.18); }
.button--primary:hover { background: var(--op-red-dark); }
.button--secondary { color: var(--op-blue); background: #fff; border-color: var(--op-border); }
.button--secondary:hover { background: var(--op-blue-soft); border-color: #cbd2e3; }

/* Přehled členství */
.membership-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.membership-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; background: #fff; border: 1px solid var(--op-border); border-radius: 14px; box-shadow: var(--shadow-sm); }
.membership-card strong { font-size: 15px; }
.membership-card small { display: block; margin-top: 3px; color: var(--op-muted); font-size: 12px; }

.status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; color: #525c6f; background: #edf0f4; border-radius: 999px; font-size: 10px; font-weight: 750; white-space: nowrap; }
.status-badge > span { width: 6px; height: 6px; background: currentColor; border-radius: 50%; }
.status-badge--success { color: #1f7147; background: var(--op-success-soft); }
.status-badge--warning { color: #936000; background: var(--op-gold-soft); }
.status-badge--danger { color: #b42318; background: var(--op-red-soft); }
.status-badge--info { color: var(--op-blue); background: var(--op-blue-soft); }
.status-badge--neutral { color: #525c6f; background: #edf0f4; }

.empty-state { display: flex; min-height: 220px; align-items: center; justify-content: center; padding: 38px 20px; flex-direction: column; text-align: center; background: #fff; border: 1px solid var(--op-border); border-radius: 14px; }
.empty-state > span { display: grid; width: 48px; height: 48px; margin-bottom: 14px; place-items: center; color: var(--op-blue); background: var(--op-blue-soft); border-radius: 14px; font-size: 21px; }
.empty-state p { max-width: 390px; margin: 6px 0 0; color: var(--op-muted); font-size: 13px; }

.membership-list { margin-bottom: 24px; }
.panel { margin-bottom: 24px; background: #fff; border: 1px solid var(--op-border); border-radius: 14px; box-shadow: var(--shadow-sm); overflow: hidden; }
.home-hero, .dashboard-card, .admin-stat-card, .membership-card, .empty-state, .panel, .auth-card { border-top: 4px solid var(--op-red); }
.panel-heading { padding: 16px 20px; border-bottom: 1px solid var(--op-border); }
.panel-heading h2 { margin: 0; font-size: 16px; letter-spacing: -.01em; }
.panel-note { margin: 0; padding: 16px 20px; color: var(--op-muted); font-size: 12px; }
.panel-body { padding: 20px; }
.panel-body .membership-list { margin-bottom: 0; }
.detail-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.detail-list > div { padding: 16px 20px; }
.detail-list > div:not(:last-child) { border-right: 1px solid var(--op-border); }
.detail-list > .detail-list--wide { grid-column: span 3; }
.detail-list dt { color: var(--op-muted); font-size: 10px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.detail-list dd { margin: 5px 0 0; font-size: 14px; font-weight: 650; overflow-wrap: anywhere; }
.member-profile-overview { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr); align-items: stretch; gap: 18px; margin-bottom: 18px; }
.member-profile-overview > .panel { margin: 0; }
.member-profile-identity { display: flex; min-width: 0; justify-content: center; padding: 24px; flex-direction: column; }
.member-profile-identity h2 { margin: 0; color: var(--op-text); font-size: clamp(22px, 2vw, 30px); line-height: 1.16; overflow-wrap: anywhere; }
.member-profile-identity > p:last-child { margin: 8px 0 0; color: var(--op-muted); font-weight: 700; }
.member-contact-details { grid-template-columns: 2fr 1fr 1fr; }
.member-contact-details dt { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.member-contact-details .status-badge { font-size: 9px; letter-spacing: 0; text-transform: none; }
.member-contact-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; border-top: 1px solid var(--op-border); }
.member-contact-actions p { margin: 0; color: var(--op-muted); font-size: 12px; }
.member-phone-verification { display: flex; align-items: end; gap: 12px; padding: 14px 20px; background: var(--op-gold-soft); border-top: 1px solid #f1d791; flex-wrap: wrap; }
.member-phone-verification form { display: flex; align-items: end; gap: 8px; margin: 0; }
.member-phone-verification label { color: #765200; font-size: 10px; font-weight: 750; text-transform: uppercase; }
.member-phone-verification input { width: 112px; min-height: 42px; }
.text-link { color: var(--op-blue); font-weight: 650; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.table-scroll { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.data-table th { padding: 10px 20px; color: var(--op-muted); background: #f8f9fb; border-bottom: 1px solid var(--op-border); font-size: 10px; font-weight: 750; letter-spacing: .05em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.table-sort { color: inherit; text-decoration: none; }
.table-sort:hover { color: var(--op-blue); text-decoration: underline; }
.data-table td { padding: 12px 20px; border-bottom: 1px solid #edf0f4; white-space: nowrap; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.fee-status-table th:nth-child(n+2), .fee-status-table td:nth-child(n+2) { border-left: 1px solid rgba(41,64,148,.1); }
.fee-status-table th:nth-child(2) { color: #294094; background: #dfe8fb; }
.fee-status-table td:nth-child(2) { background: #eef3fd; }
.fee-status-table th:nth-child(3) { color: #765200; background: #f9e9bd; }
.fee-status-table td:nth-child(3) { background: #fff7e2; }
.fee-status-table th:nth-child(4) { color: #526171; background: #e5e9ee; }
.fee-status-table td:nth-child(4) { background: #f3f5f7; }
.members-table { min-width: 860px; table-layout: fixed; }
.members-table th, .members-table td { padding-inline: 10px; }
.members-table th:nth-child(1) { width: 14%; }
.members-table th:nth-child(2) { width: 17%; }
.members-table th:nth-child(3) { width: 7%; }
.members-table th:nth-child(4) { width: 25%; }
.members-table th:nth-child(5) { width: 20%; }
.members-table th:nth-child(6) { width: 12%; }
.members-table th:nth-child(7) { width: 44px; }
.members-table td:nth-child(2), .members-table td:nth-child(5) { overflow: hidden; text-overflow: ellipsis; }
.member-number-cell { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.member-contact { overflow: hidden; }
.member-contact a, .member-contact small { display: block; overflow: hidden; text-overflow: ellipsis; }
.member-contact a { color: var(--op-blue); text-decoration: none; }
.member-contact a:hover { text-decoration: underline; }
.member-contact small { margin-top: 2px; color: var(--op-muted); font-size: 10px; }
.member-payment strong, .member-payment small { display: block; }
.member-payment strong { color: var(--op-blue); font-size: 12px; }
.member-payment small { margin-top: 2px; color: var(--op-muted); font-size: 10px; }
.member-detail { text-align: center; }
.accounting-tabs { display:flex;gap:4px;margin-bottom:18px;padding:5px;background:#fff;border:1px solid var(--op-border);border-radius:12px;overflow-x:auto;box-shadow:var(--shadow-sm) }
.accounting-tabs a { padding:9px 12px;color:var(--op-muted);font-size:11px;font-weight:750;text-decoration:none;white-space:nowrap;border-radius:8px }
.accounting-tabs a:hover,.accounting-tabs a.is-active { color:#fff;background:var(--op-blue) }
.accounting-layout { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);align-items:start;gap:18px }
.accounting-layout:has(> section[hidden]) { grid-template-columns:1fr }
.accounting-layout .panel { margin-bottom:0 }
.inline-form { display:flex;align-items:center;gap:7px }
.inline-form label { display:grid;gap:3px;color:var(--op-muted);font-size:10px;font-weight:750 }
.inline-form input,.inline-form select { min-height:34px;padding:5px 8px;border:1px solid #ccd2dd;border-radius:7px;background:#fff }
.accounting-account-form + .accounting-account-form { border-top:1px solid var(--op-border) }
.accounting-list-toolbar { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px;background:#fff;border:1px solid var(--op-border);border-radius:10px }
.accounting-list-toolbar form,.ares-lookup-form>div { display:flex;align-items:center;gap:8px }
.accounting-list-toolbar input,.ares-lookup-form input { min-height:38px;padding:7px 10px;border:1px solid var(--op-border);border-radius:8px }
.accounting-create { margin-top:16px }.accounting-create>summary { display:inline-flex;margin:14px;list-style:none }.accounting-create>summary::-webkit-details-marker{display:none}
.ares-lookup-form { display:grid;gap:7px;padding:20px;border-bottom:1px solid var(--op-border) }.ares-lookup-form label{font-weight:750}
.data-table th a { color:inherit;text-decoration:none }.data-table th a:hover { color:var(--op-blue) }
.accounting-match-list { margin:0;padding:0;list-style:none }.accounting-match-list>li { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-top:1px solid var(--op-border) }.accounting-match-list small,.data-table td small { display:block;margin-top:3px;color:var(--op-muted) }
.accounting-match-actions { display:grid;gap:7px }.accounting-match-actions form { display:flex;gap:7px }.accounting-match-actions select { min-width:260px }
.accounting-member-search { display:flex;gap:8px;padding:12px 20px;border-top:1px solid var(--op-border) }.accounting-member-search input { flex:1;min-height:38px;padding:7px 10px;border:1px solid var(--op-border);border-radius:8px }
.accounting-row-action { position:relative }.accounting-row-action>summary { list-style:none }.accounting-row-action>summary::-webkit-details-marker{display:none}.accounting-row-action form { position:absolute;z-index:5;right:0;display:grid;min-width:230px;gap:8px;padding:12px;background:#fff;border:1px solid var(--op-border);border-radius:9px;box-shadow:var(--shadow-md) }.accounting-row-action input { min-height:36px;padding:6px 8px;border:1px solid var(--op-border);border-radius:7px }
.accounting-year-form { display:flex;align-items:center;gap:8px }
.accounting-year-form label { color:var(--op-muted);font-size:11px;font-weight:750 }
.accounting-year-form select { min-width:92px;padding:8px 30px 8px 10px;border:1px solid var(--op-border);border-radius:8px;background:#fff }
.amount-positive { color:#167443;font-weight:750 }.amount-negative { color:var(--op-red);font-weight:750 }.number{text-align:right}
.accounting-fee-stats { margin-top:18px }.fee-payment-cell { min-width:190px }.fee-payment-cell--paid { background:var(--op-success-soft) }.fee-payment-cell--unpaid { background:#fff4dc }.fee-payment-cell .status-badge { margin-top:7px }
.field--wide { grid-column:1/-1 }
.icon-link { display: inline-grid; width: 32px; height: 32px; place-items: center; color: var(--op-blue); background: var(--op-blue-soft); border-radius: 8px; }
.icon-link:hover { color: #fff; background: var(--op-blue); }
.icon-link svg { width: 17px; height: 17px; fill: currentColor; }

.panel-alert { margin: 16px 20px 0; }
.panel-list { margin: 16px 0 0; padding: 0 20px; list-style: none; }
.panel-list .membership-card:last-child { margin-bottom: 0; }
.guardian-form { display: grid; gap: 8px; padding: 16px 20px; border-top: 1px solid var(--op-border); }
.guardian-form label { font-size: 12px; font-weight: 750; }
.guardian-form small { color: var(--op-muted); font-size: 11px; }
.field-row { display: flex; gap: 8px; }
.field-row input { flex: 1; min-width: 0; min-height: 44px; padding: 9px 11px; color: var(--op-text); background: #fff; border: 1px solid #ccd2dd; border-radius: 9px; outline: 0; }
.field-row input:focus { border-color: var(--op-blue); box-shadow: 0 0 0 3px rgba(41,64,148,.12); }
.field-row .button { width: auto; white-space: nowrap; }

.code-row { display: flex; align-items: center; gap: 10px; }
.copy-button { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; padding: 5px 10px; color: var(--op-blue); background: var(--op-blue-soft); border: 0; border-radius: 7px; font-size: 11px; font-weight: 700; cursor: pointer; }
.copy-button:hover { background: #dfe4f5; }
.copy-button.is-copied { color: #1f7147; background: var(--op-success-soft); }
.copy-button--icon { width: 28px; height: 28px; justify-content: center; padding: 0; }
.copy-button--icon svg { width: 14px; height: 14px; fill: currentColor; }
.branch-chair-icon { display: inline-flex; vertical-align: -2px; color: #b7791f; }
.branch-chair-icon svg { width: 15px; height: 15px; fill: currentColor; }

.button--small { width: auto; min-height: 32px; padding: 5px 11px; font-size: 12px; }
.table-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.table-actions form { margin: 0; }
.field { display: flex; min-width: 0; flex-direction: column; }
.field label { margin-bottom: 6px; color: #394153; font-size: 12px; font-weight: 750; }
.field input, .field select { min-height: 42px; padding: 8px 11px; color: var(--op-text); background: #fff; border: 1px solid #ccd2dd; border-radius: 9px; outline: 0; }
.field input:focus, .field select:focus { border-color: var(--op-blue); box-shadow: 0 0 0 3px rgba(41,64,148,.12); }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; padding: 20px; }
.form-grid .field--actions { justify-content: flex-end; }
.search-field { display: flex; gap: 8px; margin-bottom: 16px; }
.search-field input, .search-field select { flex: 1; min-width: 0; min-height: 42px; padding: 8px 12px; border: 1px solid #ccd2dd; border-radius: 9px; }
.search-field .button { flex: 0 0 auto; width: auto; white-space: nowrap; }
.member-list-filters { display: grid; grid-template-columns: minmax(135px, .65fr) minmax(190px, .9fr) minmax(160px, .8fr) minmax(240px, 1.5fr) auto; }
.fee-status-filters { display: grid; grid-template-columns: minmax(130px, .55fr) minmax(160px, .7fr) minmax(250px, 1.5fr) auto; }
.branch-list-filters { display: grid; grid-template-columns: repeat(3, minmax(145px, 1fr)) minmax(210px, 1.4fr) auto; }
.branch-map-panel { overflow: hidden; }
.branch-map-panel .panel-heading { align-items: center; }
.branch-map { width: 100%; height: min(68vh, 680px); min-height: 460px; background: #e9edf3; }
.branch-map-popup { display: grid; min-width: 180px; gap: 3px; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.branch-map-popup strong { color: var(--op-text); font-size: 13px; }
.branch-map-popup span { color: var(--op-muted); font-size: 11px; }
.branch-map-popup a { margin-top: 5px; color: var(--op-blue); font-size: 11px; font-weight: 750; }
.branch-map-missing .panel-heading p { margin: 3px 0 0; color: var(--op-muted); font-size: 11px; }
.branch-map-missing td:last-child { text-align: right; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 16px; border-top: 1px solid var(--op-border); color: var(--op-muted); font-size: 12px; }
.pagination a { color: var(--op-blue); font-weight: 650; text-decoration: none; }
.pagination a:hover { text-decoration: underline; }

@media (max-width: 860px) {
    .auth-shell { grid-template-columns: 1fr; }
    .auth-brand-panel { display: none; }
    .auth-form-panel { min-height: 100vh; }
    .auth-mobile-logo { display: grid; width: 58px; height: 58px; margin-bottom: 26px; place-items: center; background: #fff; border: 1px solid var(--op-border); border-radius: 16px; box-shadow: var(--shadow-sm); overflow: hidden; }
    .detail-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .member-profile-overview, .member-contact-details { grid-template-columns: 1fr; }
    .member-contact-details > div { border-right: 0 !important; border-top: 1px solid var(--op-border); }
    .member-contact-details > div:first-child { border-top: 0; }
    .member-contact-actions { align-items: stretch; flex-direction: column; }
    .member-contact-actions .button { width: 100%; }
    .member-phone-verification, .member-phone-verification form { align-items: stretch; flex-direction: column; }
    .member-phone-verification input, .member-phone-verification .button { width: 100%; }
    .detail-list > div:nth-child(2n) { border-right: 0; }
    .detail-list > div:nth-child(n+3) { border-top: 1px solid var(--op-border); }
    .dashboard-grid { grid-template-columns: 1fr; }
    .member-birthday-grid { grid-template-columns: 1fr; }
    .branch-ranking-card { grid-column: auto; }
    .branch-ranking-list { grid-template-columns: 1fr; }
    .admin-stats-grid, .admin-dashboard-grid { grid-template-columns: 1fr; }
    .admin-dashboard-panel--wide { grid-column: auto; }
    .age-chart-content { overflow-x: auto; }
    .age-chart-bars { min-width: 560px; }
    .home-info-grid { grid-template-columns: 1fr; }
    .branch-list-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .member-list-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fee-status-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .accounting-layout { grid-template-columns:1fr }
    .member-list-filters input { grid-column: 1 / -1; }
    .branch-list-filters .button { width: 100%; }
}

@media (max-width: 620px) {
    .notification-dialog { padding: 28px 20px 22px; }
    .notification-dialog__actions { grid-template-columns: 1fr; }
    .impersonation-banner { align-items: stretch; flex-direction: column; text-align: center; }
    .impersonation-banner .button { width: 100%; }
    .app-switcher { top: 10px; right: 10px; }
    .app-switcher-copy { display: none; }
    .app-switcher .popover-menu { position: fixed; top: 66px; right: 10px; left: 10px; width: auto; }
    .topbar { padding-inline: 14px; }
    .topbar-user-name { display: none; }
    .member-nav { display: none; }
    .content { padding: 24px 14px 104px; }
    .app-footer { padding-bottom: 88px; }
    .mobile-member-nav { position: fixed; right: 0; bottom: 0; left: 0; z-index: 50; display: grid; grid-template-columns: repeat(5,1fr); align-items: end; min-height: 68px; padding: 6px max(4px,env(safe-area-inset-left)) max(6px,env(safe-area-inset-bottom)); background: rgba(255,255,255,.98); border-top: 1px solid var(--op-border); box-shadow: 0 -8px 24px rgba(24,37,69,.1); }
    .mobile-member-nav > a, .mobile-member-more > summary { position: relative; display: flex; min-width: 0; align-items: center; flex-direction: column; gap: 3px; padding: 7px 2px; color: var(--op-muted); font-size: 10px; font-weight: 750; text-align: center; text-decoration: none; list-style: none; }
    .mobile-member-nav > a > span, .mobile-member-more > summary > span { font-size: 18px; line-height: 1; }
    .mobile-member-nav > .is-active, .mobile-member-more.is-active > summary { color: var(--op-blue); }
    .mobile-member-nav__card { transform: translateY(-11px); color: #fff!important; background: var(--op-red); border: 4px solid #fff; border-radius: 17px; box-shadow: 0 5px 15px rgba(224,38,28,.3); }
    .mobile-member-nav .nav-badge { position: absolute; top: 2px; left: 50%; margin-left: 8px; }
    .mobile-member-more { position: relative; }
    .mobile-member-more > summary::-webkit-details-marker { display: none; }
    .mobile-member-more .popover-menu { right: 4px; bottom: 62px; left: auto; display: none; width: 190px; }
    .mobile-member-more[open] .popover-menu { display: grid; }
    .action-offer-list article { grid-template-columns: 1fr; align-items: stretch; }
    .action-offer-list .action-type { justify-self: start; }
    .action-offer-list .button { width: 100%; }
    .admin-dashboard-heading { align-items: stretch; flex-direction: column; }
    .admin-dashboard-print-button { width: 100%; }
    .pdf-export-header, .pdf-export-meta { align-items: stretch; flex-direction: column; }
    .pdf-export-stats, .pdf-export-columns { grid-template-columns: 1fr; }
    .branch-list-filters { grid-template-columns: 1fr; }
    .member-list-filters { grid-template-columns: 1fr; }
    .fee-status-filters { grid-template-columns: 1fr; }
    .member-list-filters input { grid-column: auto; }
    .member-list-filters .button { width: 100%; }
    .fee-status-filters .button { width: 100%; }
    .branch-map { min-height: 420px; height: 64vh; }
    .home-hero { width: 100%; padding: 16px; }
    .admin-stats-grid, .admin-dashboard-grid, .login-stats { grid-template-columns: 1fr; }
    .login-stats > div + div { border-left: 0; }
    .login-stats > div + div { border-top: 1px solid var(--op-border); }
    .auth-form-panel { padding: 18px; }
    .auth-card { padding: 30px 22px; border-radius: 15px; }
    .membership-card { flex-direction: column; align-items: flex-start; gap: 8px; }
    .detail-list { grid-template-columns: 1fr; }
    .detail-list > .detail-list--wide { grid-column: span 1; }
    .detail-list > div:not(:last-child) { border-right: 0; border-bottom: 1px solid var(--op-border); }
    .panel-heading, .panel-note { padding-inline: 16px; }
    .data-table th, .data-table td { padding: 10px 16px; }
    .panel-list, .guardian-form { padding-inline: 16px; }
    .panel-alert { margin-inline: 16px; }
    .field-row { flex-direction: column; }
    .field-row .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto!important; transition-duration: .01ms!important; }
}

.news-section { margin: 0 0 24px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 12px; }
.section-heading h2 { margin: 2px 0 0; }
.news-list { display: grid; gap: 14px; }
.news-card { padding: 22px; }
.news-card:target { outline: 3px solid rgba(253,163,2,.55); outline-offset: 2px; scroll-margin-top: 80px; }
.news-card h3 { margin: 8px 0 12px; font-size: 20px; }
.news-card__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; color: var(--op-muted); font-size: 11px; font-weight: 700; }
.rich-content { color: var(--op-text); font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.rich-content > :first-child { margin-top: 0; }
.rich-content > :last-child { margin-bottom: 0; }
.rich-content a { color: var(--op-blue); text-decoration: underline; text-underline-offset: 2px; }
.rich-content blockquote { margin-inline: 0; padding: 10px 16px; border-left: 4px solid var(--op-gold); background: #fff9e8; }
.news-admin-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr); align-items: start; gap: 18px; }
.news-editor-form, .news-admin-list { min-width: 0; }
.page-heading--actions, .news-editor-form .panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.page-heading--actions .button { width: auto; }
.news-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 20px; }
.field--full { grid-column: 1 / -1; }
.news-form-grid .field > span, .news-form-grid .field > label { margin-bottom: 6px; color: #394153; font-size: 12px; font-weight: 750; }
.wysiwyg { border: 1px solid var(--op-border); border-radius: 10px; overflow: hidden; }
.wysiwyg-toolbar { display: none; flex-wrap: wrap; gap: 4px; padding: 8px; background: #f5f6f8; border-bottom: 1px solid var(--op-border); }
.wysiwyg-toolbar button { min-height: 32px; padding: 5px 9px; color: var(--op-text); background: #fff; border: 1px solid var(--op-border); border-radius: 6px; cursor: pointer; }
.wysiwyg-toolbar button:hover, .wysiwyg-toolbar button:focus-visible { color: var(--op-blue); border-color: var(--op-blue); }
.wysiwyg-editor { display: none; min-height: 260px; padding: 14px; background: #fff; outline: 0; line-height: 1.6; overflow-wrap: anywhere; }
.wysiwyg-editor:focus { box-shadow: inset 0 0 0 2px var(--op-blue); }
.js .wysiwyg-toolbar, .js .wysiwyg-editor { display: flex; }
.js .wysiwyg-editor { display: block; }
.js .wysiwyg-source { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; clip: rect(0 0 0 0); overflow: hidden; white-space: nowrap; border: 0; }
.branch-targets { margin: 0; padding: 0; border: 0; }
.branch-targets legend { margin-bottom: 8px; font-size: 12px; font-weight: 750; }
.checkbox-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 260px; gap: 8px; padding: 12px; border: 1px solid var(--op-border); border-radius: 9px; overflow: auto; }
.news-admin-items { display: grid; }
.news-admin-items article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-top: 1px solid var(--op-border); }
.news-admin-items article > div { min-width: 0; }
.news-admin-items article > div:last-child { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.news-admin-items strong, .news-admin-items small { display: block; overflow-wrap: anywhere; }
.news-admin-items small { margin-top: 4px; color: var(--op-muted); }
.news-editor-form .form-actions { display: flex; justify-content: flex-end; padding: 0 20px 20px; }
.news-editor-form .form-actions .button { width: auto; }
.content-subnav{display:flex;gap:6px;margin:0 0 20px;padding:6px;overflow-x:auto;background:#eef1f8;border-radius:10px}.content-subnav a{padding:8px 13px;color:var(--op-blue-dark);font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;border-radius:7px}.content-subnav a.is-active{color:#fff;background:var(--op-blue)}
.content-hub-grid,.participation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.content-hub-card{padding:22px;color:inherit;text-decoration:none}.content-hub-card>span{color:var(--op-red);font-size:26px}.content-hub-card h2{margin:10px 0 5px}.content-hub-card p{margin:0;color:var(--op-muted)}
.branch-email-form{display:grid;gap:20px;padding:22px}.branch-email-form fieldset{margin:0;padding:0;border:0}.branch-email-form legend{margin-bottom:9px;font-weight:800}.branch-email-form fieldset>small{display:block;margin-top:8px;color:var(--op-muted)}.branch-email-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.branch-email-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:360px;gap:8px;padding:12px;border:1px solid var(--op-border);border-radius:9px;overflow:auto}.branch-email-members label{display:flex;align-items:flex-start;gap:9px;padding:8px;border-radius:7px}.branch-email-members label:has(input:checked){background:#eef1f8}.branch-email-members strong,.branch-email-members small{display:block}.branch-email-members small{margin-top:2px;color:var(--op-muted)}.branch-email-preview{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:18px}.branch-email-body{margin:0;padding:22px;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.6}.branch-email-confirm{display:grid;gap:14px;padding:22px}.branch-email-confirm h2,.branch-email-confirm p{margin:0}.branch-email-confirm form{display:grid;gap:10px}
.campaign-fields{margin:0;padding:0;border:0}.campaign-fields legend{font-weight:750}.campaign-fields>div{display:grid;grid-template-columns:1fr 150px auto;gap:8px;align-items:center;margin-top:8px}.participation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.participation-list a{display:flex;justify-content:space-between;gap:15px;padding:16px 20px;color:var(--op-text);text-decoration:none;border-top:1px solid var(--op-border)}.participation-list span{color:var(--op-blue);font-weight:700}.response-form{max-width:720px;padding:22px}.response-form form{display:grid;gap:18px}.response-form fieldset{margin:0;padding:0;border:0}.response-form legend{margin-bottom:12px;font-size:18px;font-weight:800}.vote-option{display:block;margin:8px 0;padding:12px;border:1px solid var(--op-border);border-radius:8px}

@media (max-width: 900px) {
    .news-admin-layout { grid-template-columns: 1fr; }
    .branch-email-preview { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .news-form-grid, .checkbox-grid { grid-template-columns: 1fr; }
    .news-card { padding: 17px; }
    .news-admin-items article { align-items: flex-start; flex-direction: column; }
    .news-admin-items article > div:last-child { width: 100%; justify-content: flex-start; }
    .page-heading--actions { align-items: stretch; flex-direction: column; }
    .page-heading--actions .button, .news-editor-form .form-actions .button { width: 100%; }
    .inline-form { align-items:stretch;flex-wrap:wrap }
    .inline-form label { flex:1 1 130px }
    .accounting-list-toolbar,.accounting-list-toolbar form,.ares-lookup-form>div { align-items:stretch;flex-direction:column }
    .accounting-list-toolbar .button,.accounting-list-toolbar input,.ares-lookup-form input,.ares-lookup-form .button { width:100% }
    .accounting-match-list>li,.accounting-match-actions form,.accounting-member-search { align-items:stretch;flex-direction:column }.accounting-match-actions select{min-width:0;width:100%}.accounting-row-action form{position:static;min-width:0}
    .content-hub-grid,.participation-grid,.branch-email-modes,.branch-email-members{grid-template-columns:1fr}.campaign-fields>div{grid-template-columns:1fr}.content-subnav{margin-inline:-4px}
}
.member-digital-card{overflow:hidden;max-width:760px;padding:0;background:linear-gradient(135deg,#da3839 0%,#da3839 58%,#a62027 140%);color:#fff}.member-digital-card__brand{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid rgba(255,255,255,.2)}.member-digital-card__brand img{width:42px;height:42px;object-fit:contain}.member-digital-card__brand strong{font-size:18px}.member-digital-card__body{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;padding:26px}.member-digital-card__body p{margin:0 0 4px;color:#f3d7a5;font-size:11px;font-weight:800;letter-spacing:.12em}.member-digital-card__body h2{margin:0 0 22px;font-size:clamp(25px,4vw,36px)}.member-digital-card__body dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;margin:0}.member-digital-card__body dl div{display:grid;gap:2px}.member-digital-card__body dt{color:#f3d7a5;font-size:10px;font-weight:700;text-transform:uppercase}.member-digital-card__body dd{margin:0;font-weight:750}.member-digital-card__qr{display:grid;width:204px;height:204px;place-items:center;padding:12px;background:#fff;border-radius:14px}.member-digital-card__qr img,.member-digital-card__qr canvas{max-width:180px;height:auto!important}@media(max-width:640px){.member-digital-card__body{grid-template-columns:1fr;padding:20px}.member-digital-card__body dl{grid-template-columns:1fr 1fr}.member-digital-card__qr{width:100%;height:auto;min-height:204px}}
.member-wallet-actions{display:flex;flex-wrap:wrap;gap:10px;padding:0 20px 20px}.member-wallet-actions .button{width:auto}@media(max-width:640px){.member-wallet-actions{padding-inline:16px}.member-wallet-actions .button{width:100%}}
.event-wallet-list{display:grid}.event-wallet-list article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-top:1px solid var(--op-border)}.event-wallet-list span,.event-wallet-list strong,.event-wallet-list small{display:block}.event-wallet-list small{margin-top:4px;color:var(--op-muted)}@media(max-width:640px){.event-wallet-list article{align-items:stretch;flex-direction:column}.event-wallet-list .table-actions .button{width:100%}}
.available-trip-list{display:grid}.available-trip-list article{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border-top:1px solid var(--op-border)}.available-trip-list h3,.available-trip-list p{margin:0}.available-trip-list h3{margin:4px 0 7px}.available-trip-list p:not(.eyebrow){color:var(--op-muted)}@media(max-width:640px){.available-trip-list article{align-items:stretch;flex-direction:column}.available-trip-list .button{width:100%}}
.guest-wallet-page{max-width:760px;margin:0 auto}.guest-wallet-page .panel{border-top:4px solid var(--op-blue)}
.campaign-results .panel-heading h2{margin:0}.poll-result-list{display:grid;gap:18px;padding:20px}.poll-result-list article>div:first-child{display:flex;justify-content:space-between;gap:16px;margin-bottom:7px}.poll-result-list span{color:var(--op-muted);font-size:12px}.poll-result-bar{height:12px;overflow:hidden;background:var(--op-blue-soft);border-radius:999px}.poll-result-bar span{display:block;height:100%;background:var(--op-blue);border-radius:inherit}.campaign-response-table{min-width:900px}.campaign-response-table td{max-width:360px;white-space:normal;vertical-align:top;overflow-wrap:anywhere}.campaign-response-table td small{display:block;margin-top:3px;color:var(--op-muted)}
.campaign-admin-layout{display:grid;gap:18px}.campaign-editor>summary{width:max-content;margin-bottom:0;list-style:none}.campaign-editor>summary::-webkit-details-marker{display:none}.campaign-editor[open]>summary{margin-bottom:12px}.campaign-editor .news-editor-form{max-width:760px;margin-bottom:0}.campaign-admin-layout .news-admin-list{margin-bottom:0}
.campaign-list-main{flex:1}.poll-inline-results{display:grid;min-width:min(440px,100%);gap:7px;margin-top:11px}.poll-inline-results>div{display:grid;grid-template-columns:minmax(110px,1fr) minmax(90px,1.4fr);align-items:center;gap:12px}.poll-inline-results span{display:flex;min-width:0;justify-content:space-between;gap:10px}.poll-inline-results span b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.poll-inline-results span small{flex:0 0 auto;margin:0}.poll-inline-results i{display:block;height:7px;overflow:hidden;background:var(--op-blue-soft);border-radius:999px}.poll-inline-results i b{display:block;height:100%;background:var(--op-blue);border-radius:inherit}@media(max-width:620px){.poll-inline-results{min-width:0}.poll-inline-results>div{grid-template-columns:1fr;gap:4px}}
