:root {
    color-scheme: light;
    --ink: #17211f;
    --muted: #63706c;
    --line: #dbe4df;
    --paper: #f7f8f4;
    --surface: #ffffff;
    --teal: #0f766e;
    --teal-strong: #0b5d56;
    --coral: #c75d4b;
    --amber: #d99a2b;
    --blue: #315c8f;
    --shadow: 0 18px 50px rgba(23, 33, 31, .08);
}

* {
    box-sizing: border-box;
}

html {
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: var(--paper);
    color: var(--ink);
    letter-spacing: 0;
}

body {
    margin: 0;
    min-width: 320px;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

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

img {
    display: block;
    max-width: 100%;
}

main {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
    flex: 1 0 auto;
}

.site-footer {
    flex: 0 0 auto;
    margin-top: 56px;
    padding: 72px clamp(16px, 4vw, 44px);
    background: #303333;
    color: #fff;
    text-align: left;
}

.site-footer p {
    margin: 0;
    font-size: .92rem;
    font-weight: 400;
    line-height: 1.55;
}

.site-footer p + p {
    margin-top: 6px;
    color: rgba(255, 255, 255, .86);
    font-weight: 400;
}

.site-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 18px;
}

.site-footer-links a {
    color: #fff;
    font-size: .92rem;
    font-weight: 400;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.site-footer-links a:hover,
.site-footer-links a:focus-visible {
    color: rgba(255, 255, 255, .82);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 16px clamp(16px, 4vw, 44px);
    background: rgba(247, 248, 244, .92);
    border-bottom: 1px solid rgba(219, 228, 223, .72);
    backdrop-filter: blur(18px);
}

.brand,
.nav-links,
.hero-actions,
.action-row,
.meta-row,
.card-topline,
.inline-actions,
.run-tabs,
.filter-form {
    display: flex;
    align-items: center;
}

.directory-filter-panel {
    display: grid;
    gap: 18px;
    margin: 0 0 28px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.directory-search-label,
.directory-filter-group {
    display: grid;
    gap: 9px;
}

.directory-search-label span,
.directory-filter-group > span {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.directory-search-label input {
    width: 100%;
}

.directory-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.directory-filter-chips button {
    padding: 8px 11px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    font: inherit;
    font-size: .85rem;
    font-weight: 800;
}

.directory-filter-chips-compact {
    gap: 6px;
}

.directory-filter-chips-compact button {
    padding: 6px 9px;
    font-size: .78rem;
}

.directory-filter-chips .directory-filter-reset-chip {
    border-color: rgba(159, 45, 32, .22);
    background: #fff2ef;
    color: #8d2f24;
}

.directory-filter-chips .directory-filter-reset-chip:hover,
.directory-filter-chips .directory-filter-reset-chip:focus-visible {
    border-color: rgba(159, 45, 32, .38);
    background: #ffe5df;
    color: #75251d;
}

.directory-filter-chips button:hover,
.directory-filter-chips button:focus-visible,
.directory-filter-chips button.is-active {
    border-color: var(--accent);
    background: #e3f1ec;
    color: #0b4a45;
}

.photographer-filter-empty {
    margin-top: 18px;
}

.brand {
    gap: 10px;
    font-weight: 800;
    font-size: 1rem;
}

.brand-mark,
.brand-logo,
.avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 8px;
    color: #fff;
    background: var(--ink);
    font-weight: 800;
    font-size: .82rem;
    flex: 0 0 auto;
}

.brand-logo {
    width: 30px;
    height: 30px;
    border-radius: 6px;
    background: transparent;
    object-fit: contain;
}

.nav-links {
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.nav-links a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    padding: 9px 12px;
    color: var(--muted);
    font-weight: 700;
    font-size: .92rem;
    border-radius: 8px;
}

.nav-link-with-badge {
    position: relative;
}

.pending-members-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 5px;
    border-radius: 999px;
    background: #b42318;
    color: #fff;
    font-size: .72rem;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.nav-link-with-badge .pending-members-badge {
    position: absolute;
    top: -8px;
    right: -8px;
}

.owner-page-title-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.owner-page-title-row h1 {
    margin-bottom: 0;
}

.owner-page-pending-badge {
    flex: 0 0 auto;
}

.owner-club-card-badges {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.nav-links a:hover {
    color: var(--ink);
    background: #edf2ee;
}

.admin-nav-link {
    gap: 7px;
}

.admin-nav-link.has-pending {
    color: #9f2d20;
}

.admin-pending-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: #b42318;
    color: #fff;
    font-size: .72rem;
    font-weight: 900;
    line-height: 1;
}

.nav-links a.button-primary,
.nav-links a.button-primary:hover {
    color: #fff;
}

.nav-links a.button-primary:hover {
    background: var(--teal-strong);
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border: 1px solid transparent;
    border-radius: 8px;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.button:hover {
    transform: translateY(-1px);
}

.button-primary {
    background: var(--teal);
    color: #fff;
    box-shadow: 0 10px 24px rgba(15, 118, 110, .18);
}

.button-primary:hover {
    background: var(--teal-strong);
}

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

.button-subtle {
    background: #eaf0ec;
    color: var(--ink) !important;
}

.button-danger {
    background: #9f2d20;
    color: #fff;
}

.button-danger:hover {
    background: #842318;
}

.button:disabled {
    cursor: not-allowed;
    opacity: .45;
    transform: none;
}

.button.small {
    min-height: 34px;
    padding: 7px 11px;
    font-size: .86rem;
}

.button.full {
    width: 100%;
}

.flash {
    width: min(1180px, calc(100% - 32px));
    margin: 20px auto 0;
    padding: 14px 16px;
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 8px;
    color: var(--teal-strong);
    background: #e8f3ef;
    font-weight: 700;
}

.hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
    gap: clamp(28px, 6vw, 74px);
    min-height: calc(100vh - 110px);
    align-items: center;
    padding: 44px 0 56px;
}

.hero-copy h1,
.page-head h1,
.auth-copy h1 {
    margin: 0;
    max-width: 820px;
    font-size: clamp(2.4rem, 7vw, 5.7rem);
    line-height: .98;
    letter-spacing: 0;
}

.news-article-head h1 {
    margin: 0;
    max-width: 820px;
    font-size: clamp(2.1rem, 4.2vw, 3.4rem);
    line-height: .98;
    letter-spacing: 0;
}

.hero-copy h1 {
    max-width: 760px;
}

.directory-hero .hero-copy h1 {
    max-width: 720px;
    font-size: clamp(2.2rem, 5vw, 4.25rem);
    line-height: 1.04;
}

.lead,
.page-head p,
.auth-copy p,
.section-heading p {
    color: var(--muted);
    line-height: 1.7;
}

.lead {
    max-width: 640px;
    font-size: 1.16rem;
}

.eyebrow {
    margin: 0 0 12px;
    color: var(--coral);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.hero-actions,
.action-row {
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}

.hero-panel {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.photo-stack {
    min-height: 430px;
    position: relative;
    background-image: url("../img/hero-photohub-au.webp");
    background-size: cover;
    background-position: center;
}

.photo-stack::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0) 42%, rgba(23,33,31,.58));
}

.photo-card {
    display: none;
}

.directory-hero {
    display: block;
    min-height: auto;
    padding: 0 0 54px;
}

.directory-hero-image {
    width: 100vw;
    height: clamp(300px, 38vw, 450px);
    margin-left: calc(50% - 50vw);
    margin-bottom: 42px;
    background-image: url("../img/hero-photohub-au.webp");
    background-size: cover;
    background-position: center;
    background-color: #e3e8e3;
}

.directory-hero .hero-copy h1 {
    max-width: 980px;
}

.directory-hero .lead {
    max-width: 920px;
}

.home-hero.directory-hero {
    padding-bottom: 0;
}

.home-hero .directory-hero-image {
    height: clamp(340px, 42vw, 500px);
    margin-bottom: 0;
}

.home-hero-container {
    margin-top: 0;
}

.home-detail-surface {
    padding-top: 0;
}

.home-secondary-actions {
    margin-top: 12px;
}

.home-standout {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: clamp(68px, 8vw, 104px) max(16px, calc((100vw - 1180px) / 2));
    background: #17211f;
    color: #f7f8f4;
}

.home-standout-competitions {
    background: #0b5d56;
}

.home-standout-inner {
    display: grid;
    gap: clamp(44px, 6vw, 72px);
}

.home-feature-section {
    display: grid;
    gap: 28px;
}

.home-feature-heading h2,
.home-facebook-callout h2 {
    margin: 0 0 14px;
    font-size: clamp(1.9rem, 4vw, 3rem);
    line-height: 1.05;
    letter-spacing: 0;
}

.home-feature-heading p:not(.eyebrow),
.home-feature-box p,
.home-feature-connector,
.home-facebook-callout p {
    color: rgba(247, 248, 244, .78);
    line-height: 1.7;
}

.home-feature-boxes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.home-feature-box {
    min-height: 100%;
    padding: clamp(24px, 3vw, 34px);
    border: 1px solid rgba(247, 248, 244, .14);
    border-radius: 8px;
    background: rgba(255, 255, 255, .06);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .18);
}

.home-feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 24px;
    border-radius: 8px;
    color: #f7d28c;
    background: rgba(217, 154, 43, .14);
}

.home-feature-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.home-feature-box h3 {
    margin: 0 0 12px;
    font-size: clamp(1.22rem, 2vw, 1.45rem);
    line-height: 1.18;
    letter-spacing: 0;
}

.home-feature-box p {
    margin: 0;
}

.home-feature-connector {
    max-width: 860px;
    margin: 0 auto;
    padding: 22px 28px;
    border-top: 1px solid rgba(247, 248, 244, .16);
    border-bottom: 1px solid rgba(247, 248, 244, .16);
    text-align: center;
    font-size: 1.14rem;
    font-weight: 800;
}

.home-facebook-callout {
    display: grid;
    grid-template-columns: minmax(240px, .45fr) minmax(0, 1fr);
    gap: clamp(24px, 5vw, 64px);
    align-items: center;
    padding: clamp(28px, 4vw, 42px);
    border: 1px solid rgba(247, 210, 140, .34);
    border-radius: 8px;
    background: #24332f;
}

.home-facebook-callout p {
    margin: 0;
    font-size: 1.06rem;
}

.directory-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 26px;
    max-width: 920px;
}

.directory-stats span {
    padding: 14px;
    border: 1px solid rgba(219, 228, 223, .86);
    border-radius: 8px;
    background: rgba(255, 255, 255, .62);
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.35;
}

.directory-stats strong {
    display: block;
    color: var(--ink);
    font-size: 1.55rem;
    line-height: 1;
}

.directory-panel {
    align-self: stretch;
    display: grid;
    grid-template-rows: 1fr auto;
}

.listing-preview {
    min-height: 500px;
    display: flex;
    align-items: end;
    padding: 22px;
}

.listing-overlay {
    position: relative;
    z-index: 1;
    width: min(100%, 360px);
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .36);
    border-radius: 8px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 18px 42px rgba(23, 33, 31, .18);
}

.listing-overlay h2 {
    margin: 14px 0 4px;
    font-size: 1.45rem;
    line-height: 1.08;
}

.listing-overlay p {
    margin: 0;
    color: var(--muted);
    font-weight: 800;
}

.listing-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 16px;
}

.listing-tags span,
.listing-tags a {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    background: #f2f5f1;
    color: var(--ink);
    font-size: .76rem;
    font-weight: 900;
    text-decoration: none;
}

.listing-tags a:hover,
.listing-tags a:focus-visible {
    background: #e3f1ec;
    color: #0b4a45;
}

.club-header-image,
.photographer-header-image,
.competition-header-image {
    width: 100vw;
    height: clamp(320px, 34vw, 660px);
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    background: #e3e8e3;
}

.club-header-image img,
.photographer-header-image img,
.competition-header-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.club-logo-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: min(160px, 42vw);
    height: min(160px, 42vw);
    margin-bottom: 20px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: 0 10px 28px rgba(23, 33, 31, .08);
}

.club-logo-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.club-profile-page-head {
    display: grid;
    gap: 0 clamp(18px, 3vw, 34px);
    align-items: start;
}

.club-profile-page-head.has-club-logo {
    grid-template-columns: minmax(112px, 148px) minmax(0, 1fr);
}

.club-page-logo-column {
    grid-column: 1;
    grid-row: 1;
}

.club-profile-page-head .club-logo-mark {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    margin: 0;
    padding: 12px;
}

.club-profile-page-head .club-page-intro > p:not(.eyebrow) {
    margin-top: 25px;
    font-size: 1.08rem;
}

.club-page-intro {
    grid-column: 2;
    min-width: 0;
}

.club-profile-page-head.no-club-logo .club-page-intro {
    grid-column: 1 / -1;
}

.club-list-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: var(--surface);
}

.club-list-logo img {
    object-fit: contain;
}

.metric-row {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--line);
}

.metric-row span {
    padding: 18px 16px;
    color: var(--muted);
    border-right: 1px solid var(--line);
    font-size: .9rem;
}

.metric-row span:last-child {
    border-right: 0;
}

.metric-row strong {
    display: block;
    color: var(--ink);
    font-size: 1.4rem;
}

.section,
.split-section,
.page-head,
.auth-shell,
.dashboard-grid,
.card-grid,
.judge-list {
    padding: 54px 0;
}

.legal-page {
    max-width: 860px;
}

.legal-page .page-head {
    padding-bottom: 28px;
}

.legal-updated {
    margin: 16px 0 0;
    color: var(--muted);
    font-size: .98rem;
}

.legal-content {
    padding: 0 0 64px;
    line-height: 1.72;
}

.legal-content h2 {
    margin: 42px 0 12px;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    line-height: 1.18;
}

.legal-content h3 {
    margin: 26px 0 10px;
    font-size: 1.05rem;
    line-height: 1.3;
}

.legal-content p {
    margin: 0 0 16px;
    color: var(--muted);
}

.legal-content ul {
    margin: 0 0 18px;
    padding-left: 22px;
    color: var(--muted);
}

.legal-content li + li {
    margin-top: 7px;
}

.section-heading {
    max-width: 720px;
    margin-bottom: 24px;
}

.directory-intro .section-heading {
    max-width: none;
}

.section-heading h2,
.panel h2,
.form-card h2 {
    margin: 0 0 14px;
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    line-height: 1.08;
    letter-spacing: 0;
}

.section-heading.compact h2,
.panel h2,
.form-card h2 {
    font-size: 1.4rem;
}

.feature-grid,
.card-grid,
.dashboard-grid,
.split-section,
.entry-grid {
    display: grid;
    gap: 18px;
}

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

.owner-new-club-overview {
    margin-bottom: 18px;
}

.owner-new-club-overview .section-heading,
.pricing-features .section-heading {
    max-width: 820px;
}

.owner-new-club-overview h3,
.pricing-features h3 {
    margin: 0 0 8px;
    font-size: 1.12rem;
}

.owner-new-club-upgrade {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 18px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.owner-new-club-upgrade h2 {
    margin-bottom: 8px;
}

.owner-new-club-upgrade p:last-child {
    margin-bottom: 0;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    padding: 0 0 54px;
}

.pricing-card {
    display: flex;
    flex-direction: column;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 10px 28px rgba(23, 33, 31, .04);
}

.pricing-card h2 {
    margin: 0 0 8px;
    font-size: 1.35rem;
}

.pricing-card p {
    color: var(--muted);
}

.pricing-card .eyebrow {
    margin-bottom: 10px;
}

.pricing-price {
    margin: 0 0 12px;
    color: var(--ink) !important;
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
}

.pricing-price span {
    color: var(--muted);
    font-size: .9rem;
    font-weight: 700;
}

.pricing-price-note {
    margin: -4px 0 12px;
    color: var(--muted);
    font-size: .82rem;
}

.pricing-card ul {
    display: grid;
    gap: 9px;
    margin: 10px 0 24px;
    padding-left: 20px;
    color: var(--muted);
}

.pricing-card .button {
    width: 100%;
    margin-top: auto;
}

.pricing-card-featured {
    border-color: rgba(15, 118, 110, .45);
    box-shadow: 0 14px 32px rgba(15, 118, 110, .1);
}

.pricing-features {
    margin-bottom: 54px;
}

.feature,
.club-card,
.competition-card,
.panel,
.form-card,
.judge-entry,
.entry-thumb {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 10px 28px rgba(23, 33, 31, .04);
}

.feature,
.club-card,
.competition-card,
.panel,
.form-card {
    padding: 22px;
}

.owner-club-card {
    display: block;
    color: var(--ink);
    text-decoration: none;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.owner-club-card:hover,
.owner-club-card:focus-visible {
    border-color: rgba(15, 118, 110, .42);
    box-shadow: 0 14px 32px rgba(23, 33, 31, .1);
    transform: translateY(-2px);
}

.owner-card-link-note {
    display: block;
    margin-top: 18px;
    color: var(--teal-strong);
    font-weight: 900;
}

.feature-icon {
    display: inline-flex;
    margin-bottom: 28px;
    color: var(--blue);
    font-weight: 900;
}

.feature h3,
.club-card h2,
.competition-card h2 {
    margin: 0 0 10px;
    font-size: 1.22rem;
    letter-spacing: 0;
}

.feature h3.feature-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.34rem;
}

.feature-title-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    color: var(--teal-strong);
    background: #e8f3ef;
    flex: 0 0 auto;
}

.feature-title-icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.feature p,
.club-card p,
.competition-card p,
.form-note,
.empty,
.empty-list {
    color: var(--muted);
    line-height: 1.62;
}

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

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

.directory-lists {
    align-items: start;
}

.list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 70px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.list-item:hover {
    border-color: rgba(15, 118, 110, .32);
}

.dashboard-membership-item {
    display: grid;
    gap: 0;
}

.dashboard-membership-item > summary {
    cursor: pointer;
    list-style: none;
}

.dashboard-membership-item > summary::-webkit-details-marker {
    display: none;
}

.dashboard-membership-item > summary::after {
    content: '+';
    flex: 0 0 auto;
    color: var(--teal-strong);
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 1;
}

.dashboard-membership-item[open] > summary::after {
    content: '−';
}

.dashboard-membership-details {
    display: grid;
    gap: 16px;
    padding: 16px;
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0 0 8px 8px;
    background: #f7faf7;
}

.dashboard-membership-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 20px;
}

.dashboard-membership-meta > div,
.dashboard-membership-history {
    display: grid;
    gap: 5px;
}

.dashboard-membership-meta span,
.dashboard-membership-history > span {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.dashboard-membership-meta strong,
.dashboard-membership-history p {
    margin: 0;
    font-size: .92rem;
    line-height: 1.5;
}

.dashboard-membership-history p + p {
    margin-top: 4px;
}

.dashboard-membership-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.membership-renewal-warning {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 10px;
    padding: 12px 14px;
    border: 1px solid #e4b25c;
    border-radius: 8px;
    color: #704b08;
    background: #fff8e8;
    line-height: 1.5;
}

.membership-renewal-warning a {
    color: #704b08;
    font-weight: 900;
}

.profile-completion-warning {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    flex: 1 1 100%;
    padding: 12px 14px;
    border: 1px solid rgba(15, 118, 110, .2);
    border-radius: 8px;
    color: var(--teal-strong);
    background: #e8f3ef;
    line-height: 1.5;
}

.profile-completion-warning strong,
.profile-completion-warning span {
    flex: 1 1 auto;
}

.profile-completion-warning .button {
    flex: 0 0 auto;
}

.list-item strong,
.list-item small {
    display: block;
}

.list-item-main {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.entry-list-item .list-item-main {
    flex: 1 1 auto;
    color: inherit;
}

.entry-list-item form {
    flex: 0 0 auto;
}

.list-thumb {
    flex: 0 0 auto;
    width: 64px;
    height: 48px;
    overflow: hidden;
    border-radius: 8px;
    background: #e3e8e3;
}

.list-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.list-item small {
    margin-top: 4px;
    color: var(--muted);
}

.dashboard-competition-entry-groups,
.dashboard-entry-list {
    display: grid;
    gap: 14px;
}

.dashboard-competition-entry-group {
    display: grid;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7faf7;
}

.dashboard-competition-entry-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px;
    cursor: pointer;
    list-style: none;
}

.dashboard-competition-entry-heading::-webkit-details-marker {
    display: none;
}

.dashboard-competition-entry-heading::after {
    content: '+';
    flex: 0 0 auto;
    color: var(--teal-strong);
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 1;
}

.dashboard-competition-entry-group[open] > .dashboard-competition-entry-heading::after {
    content: '−';
}

.dashboard-competition-entry-heading > div {
    min-width: 0;
}

.dashboard-competition-entry-content {
    display: grid;
    gap: 12px;
    padding: 0 14px 14px;
}

.dashboard-competition-entry-actions {
    display: flex;
    justify-content: flex-end;
}

.dashboard-competition-pay-button {
    margin-left: auto;
}

.dashboard-competition-entry-heading h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 900;
}

.dashboard-competition-entry-heading p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .92rem;
}

.dashboard-competition-payment {
    margin: 0;
    color: var(--ink);
    font-weight: 800;
}

.dashboard-competition-payment a {
    color: var(--teal-strong);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.dashboard-competition-payment strong {
    color: var(--teal-strong);
}

.dashboard-competition-payment span {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: .86rem;
    font-weight: 700;
}

.dashboard-entry-item summary {
    min-height: 64px;
    padding: 10px 12px;
}

.dashboard-entry-edit-form {
    padding-top: 6px;
}

.dashboard-entry-delete-form {
    display: flex;
    padding: 0 16px 16px;
    margin: -4px 0 0;
}

.dashboard-entry-result-label {
    color: var(--teal-strong);
    font-weight: 900;
    text-transform: capitalize;
}

.dashboard-entry-results {
    display: grid;
    grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
    gap: 18px;
    padding: 24px;
    border-top: 1px solid var(--line);
    background: #fff;
}

.dashboard-entry-result-image {
    overflow: hidden;
    border-radius: 8px;
    background: #e3e8e3;
    aspect-ratio: 4 / 3;
}

.dashboard-entry-result-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dashboard-entry-result-copy {
    display: grid;
    align-content: start;
    gap: 18px;
    padding: 4px 2px;
}

.dashboard-entry-result-field {
    display: grid;
    gap: 8px;
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
}

.dashboard-entry-result-field strong {
    color: var(--ink);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.dashboard-entry-result-field span {
    overflow-wrap: anywhere;
}

.dashboard-entry-result-copy .competition-result-labels {
    margin-bottom: 0;
}

.dashboard-entry-result-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 2px;
}

.empty-list {
    margin: 0;
    padding: 16px;
    border: 1px dashed var(--line);
    border-radius: 8px;
}

.spotlight-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 58px;
    padding: 28px;
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 8px;
    background: #e8f3ef;
}

.spotlight-strip .section-heading {
    margin-bottom: 0;
}

.spotlight-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    color: var(--teal-strong);
    background: #e8f3ef;
    font-weight: 800;
    font-size: .78rem;
    white-space: nowrap;
}

.muted-pill {
    color: var(--muted);
    background: var(--soft);
}

.admin-pending-pill {
    color: #9f2d20;
    background: #fde7e5;
}

.admin-pending-review-row td:first-child {
    border-left: 4px solid #b42318;
}

.access-pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-width: 260px;
}

.page-head {
    max-width: 900px;
}

.page-head h1 {
    font-size: clamp(2.2rem, 6vw, 4.4rem);
}

.club-page-head {
    max-width: none;
    padding-bottom: 46px;
}

.club-page-head h1 {
    max-width: none;
}

.club-page-head.club-profile-page-head h1 {
    font-size: clamp(1.9rem, 4.4vw, 3.2rem);
}

.club-page-head > p:not(.eyebrow) {
    margin-top: 18px;
    font-size: 1.08rem;
}

.listing-page-head,
.club-page-head,
.photographer-page-head,
.owner-page-head {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 54px max(16px, calc((100vw - 1180px) / 2)) 46px;
    background: #fafbf6;
}

.photographer-page-head {
    max-width: none;
}

.photographer-page-head .photographer-profile-intro {
    width: 100%;
    min-width: 0;
}

.photographer-profile-intro > span:last-child {
    flex: 1 1 auto;
    min-width: 0;
}

.photographer-page-head h1 {
    max-width: none;
    overflow-wrap: normal;
    word-break: normal;
}

.club-detail-surface {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 30px max(16px, calc((100vw - 1180px) / 2)) 64px;
    background: var(--surface);
    font-size: 1.05rem;
}

.club-detail-surface > .section {
    padding: 34px 0 0;
}

.club-feature-section {
    padding-top: 34px;
}

.club-feature-layout {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(260px, 3fr);
    gap: clamp(20px, 3vw, 36px);
    align-items: start;
}

.club-feature-layout.no-links,
.club-feature-layout.no-gallery {
    grid-template-columns: minmax(0, 1fr);
}

.club-about-section,
.club-listing-section {
    margin-top: 34px;
    padding-top: 34px;
    border-top: 1px solid var(--line);
}

.club-listing-section .section-heading {
    margin-bottom: 14px;
}

.club-detail-surface .section-heading p,
.club-detail-surface .club-card p,
.club-detail-surface .competition-card p,
.club-detail-surface .empty,
.club-about-text {
    font-size: 1.06rem;
}

.club-about-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(24px, 4vw, 52px);
    align-items: start;
}

.club-about-layout.no-gallery {
    grid-template-columns: minmax(0, 1fr);
}

.club-about-text {
    color: var(--muted);
    line-height: 1.62;
}

.club-about-text p {
    margin: 0;
}

.club-members-highlight {
    margin: 0 0 30px;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--line);
}

.club-member-avatar-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 0;
    padding-left: 14px;
}

.club-member-avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-left: -14px;
    border: 2px solid var(--surface);
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    box-shadow: 0 0 0 1px var(--line);
    outline: none;
    transition: transform .16s ease, box-shadow .16s ease;
}

.club-member-avatar:hover,
.club-member-avatar:focus {
    z-index: 6;
    transform: translateY(-2px);
}

.club-member-avatar:focus-visible {
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .22);
}

.club-member-avatar img,
.club-member-avatar .avatar {
    width: 100%;
    height: 100%;
    border-radius: 50%;
}

.club-member-avatar img {
    object-fit: cover;
}

.club-member-avatar .avatar {
    font-size: .78rem;
}

.club-member-avatar::after {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    z-index: 5;
    width: max-content;
    max-width: 220px;
    padding: 6px 8px;
    border-radius: 8px;
    background: var(--ink);
    color: #fff;
    content: attr(data-name);
    font-size: .76rem;
    font-weight: 800;
    line-height: 1.25;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 4px);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
    visibility: hidden;
}

.club-member-avatar:hover::after,
.club-member-avatar:focus::after {
    opacity: 1;
    transform: translate(-50%, 0);
    visibility: visible;
}

.club-member-more {
    cursor: pointer;
}

.club-member-more svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.club-member-more::after {
    content: 'Show all members';
}

.club-fee-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0 0;
}

.club-fee-join-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
    margin-top: 24px;
}

.club-fee-join-layout .club-fee-list {
    grid-template-columns: 1fr;
    margin: 0;
}

.club-fee-join-column {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.club-fee-list div {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 10px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fafbf6;
}

.club-fee-list dt {
    margin: 0;
    color: var(--ink);
    font-weight: 900;
    white-space: nowrap;
}

.club-fee-list dd {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 10px;
    min-width: 0;
    margin: 0;
    color: var(--muted);
}

.club-fee-list dd span {
    display: inline;
}

.club-fee-join-button {
    margin-top: 0;
}

.membership-payment-button {
    background: #d92d20;
    border-color: #d92d20;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(217, 45, 32, .22);
}

.membership-payment-button:hover,
.membership-payment-button:focus-visible {
    background: #b42318;
    border-color: #b42318;
}

.membership-request-confirmation {
    flex-basis: 100%;
    color: var(--teal-strong);
    font-size: .95rem;
    font-weight: 800;
}

.club-about-gallery {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: var(--surface);
    box-shadow: var(--shadow);
    aspect-ratio: 16 / 9;
}

.club-about-gallery figure {
    margin: 0;
    overflow: hidden;
    background: #e3e8e3;
    aspect-ratio: 16 / 9;
}

.club-about-gallery.is-enhanced figure {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity .75s ease;
}

.club-about-gallery.is-enhanced figure.is-active {
    opacity: 1;
    pointer-events: auto;
}

.club-about-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.club-gallery-button {
    position: absolute;
    top: 50%;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, .6);
    border-radius: 999px;
    color: #fff;
    background: rgba(15, 23, 42, .55);
    cursor: pointer;
    font: inherit;
    font-size: 2rem;
    line-height: 1;
    transform: translateY(-50%);
    transition: background-color .2s ease, border-color .2s ease;
}

.club-gallery-button:hover,
.club-gallery-button:focus-visible {
    border-color: rgba(255, 255, 255, .8);
    background: rgba(15, 23, 42, .75);
}

.club-gallery-button.previous {
    left: 12px;
}

.club-gallery-button.next {
    right: 12px;
}

.club-profile-links {
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}

.club-feature-layout .club-profile-links {
    align-self: stretch;
    margin-top: 0;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fafbf6;
    box-shadow: 0 10px 28px rgba(23, 33, 31, .04);
}

.club-profile-links .section-heading {
    margin-bottom: 14px;
}

.club-profile-links dl {
    display: grid;
    gap: 9px;
    margin: 0;
}

.club-profile-links div {
    display: grid;
    gap: 3px;
}

.club-profile-links dt {
    color: var(--ink);
    font-weight: 900;
}

.club-profile-links dd {
    margin: 0;
    color: var(--muted);
    overflow-wrap: anywhere;
}

.club-profile-links a {
    color: var(--teal-strong);
    font-weight: 400;
}

.club-profile-contact-link {
    margin: 18px 0 0;
}

.club-embedded-heading {
    margin-top: 42px;
    margin-bottom: 14px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}

.club-news-heading {
    margin-bottom: 14px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}

.page-head .strong {
    margin-top: 18px;
    font-weight: 800;
}

.competition-theme {
    display: grid;
    gap: 4px;
    margin-top: 22px;
}

.competition-theme span {
    color: var(--coral);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.competition-theme strong {
    color: var(--ink);
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.2;
}

.competition-info-card {
    display: grid;
    gap: 16px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7faf7;
    box-shadow: 0 10px 28px rgba(23, 33, 31, .04);
}

.competition-user-entry-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 24px;
    padding: 18px 22px;
    border: 1px solid rgba(15, 118, 110, .2);
    border-radius: 8px;
    background: #e8f3ef;
}

.competition-user-entry-copy {
    min-width: 0;
}

.competition-user-entry-copy .eyebrow {
    margin-bottom: 6px;
    color: var(--teal-strong);
}

.competition-user-entry-copy h2,
.competition-user-entry-copy p {
    margin: 0;
}

.competition-user-entry-copy h2 {
    font-size: 1.2rem;
}

.competition-user-entry-copy p:not(.eyebrow) {
    margin-top: 5px;
    color: var(--muted);
}

.competition-user-entry-copy a {
    color: var(--teal-strong);
    font-weight: 900;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.competition-user-entry-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.competition-user-entry-thumb {
    display: block;
    width: 64px;
    height: 48px;
    overflow: hidden;
    border: 1px solid rgba(15, 118, 110, .2);
    border-radius: 6px;
    background: #dce9e4;
}

.competition-user-entry-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.competition-user-entry-actions {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
}

.competition-info-card h2 {
    margin: 0;
    font-size: 1.4rem;
    line-height: 1.1;
}

.competition-info-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

.competition-info-links a {
    color: var(--teal-strong);
    font-size: .9rem;
    font-weight: 850;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.competition-detail-panel {
    grid-column: 1 / -1;
}

.competition-detail-panel .section-heading {
    margin-bottom: 18px;
}

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

.competition-terms-grid article {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfdfc;
}

.competition-terms-grid h3 {
    margin: 0 0 10px;
    font-size: 1.05rem;
}

.competition-requirements-card {
    grid-column: 1 / -1;
}

.competition-requirements-card .section-heading {
    margin-bottom: 18px;
}

.competition-recognition-card .section-heading {
    margin-bottom: 18px;
}

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

.competition-recognition-grid article {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfdfc;
}

.competition-recognition-grid h3 {
    margin: 12px 0 8px;
    font-size: 1.05rem;
}

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

.competition-requirements-grid article {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfdfc;
}

.competition-requirements-grid h3 {
    margin: 0 0 10px;
    font-size: 1.05rem;
}

.competition-copy {
    color: var(--muted);
    line-height: 1.65;
    white-space: normal;
}

.competition-info-list {
    display: grid;
    gap: 0;
    margin: 0;
}

.competition-info-list div {
    display: grid;
    grid-template-columns: minmax(112px, .8fr) minmax(0, 1fr);
    gap: 14px;
    padding: 12px 0;
    border-top: 1px solid var(--line);
}

.competition-info-list dt {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.competition-info-list dd {
    margin: 0;
    color: var(--ink);
    font-weight: 850;
}

.competition-info-list dd span,
.competition-payment-link {
    display: block;
}

.competition-payment-link {
    width: fit-content;
    margin-top: 6px;
    color: var(--teal-strong);
    font-size: .88rem;
    font-weight: 900;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.competition-payment-note {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.45;
}

.payment-member-id {
    color: #b42318;
    font-weight: 900;
}

.competition-payment-received {
    display: block;
    margin-top: 6px;
    color: var(--teal-strong);
}

.auth-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 430px);
    gap: 42px;
    align-items: start;
}

.coming-soon-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
    gap: clamp(28px, 7vw, 92px);
    align-items: center;
    min-height: min(640px, calc(100vh - 180px));
    padding: clamp(48px, 9vw, 110px) 0;
}

.coming-soon-copy {
    max-width: 640px;
}

.coming-soon-copy h1 {
    max-width: 620px;
    margin: 0 0 22px;
    font-size: clamp(3rem, 7vw, 6.4rem);
    line-height: .96;
    letter-spacing: -.055em;
}

.coming-soon-copy > p:not(.eyebrow):not(.form-note) {
    max-width: 560px;
    margin: 0;
    color: var(--muted);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    line-height: 1.65;
}

.coming-soon-copy .hero-actions {
    margin-top: 30px;
}

.coming-soon-copy .form-note {
    margin-top: 14px;
}

.coming-soon-card {
    position: relative;
    display: grid;
    align-content: center;
    justify-items: start;
    gap: 16px;
    min-height: 360px;
    padding: 42px;
    overflow: hidden;
    border-radius: 18px;
    background: linear-gradient(145deg, #173f3b, #0f766e 58%, #92c1a9);
    box-shadow: var(--shadow);
}

.coming-soon-card::before,
.coming-soon-card::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 50%;
}

.coming-soon-card::before {
    width: 360px;
    height: 360px;
    right: -170px;
    top: -110px;
}

.coming-soon-card::after {
    width: 260px;
    height: 260px;
    right: -85px;
    bottom: -135px;
}

.coming-soon-card .brand-mark {
    position: relative;
    z-index: 1;
    width: 72px;
    height: 72px;
    border-radius: 14px;
    background: #fff;
    color: var(--teal-strong);
    font-size: 1.1rem;
}

.coming-soon-card-line {
    position: relative;
    z-index: 1;
    display: block;
    width: 72%;
    height: 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .86);
}

.coming-soon-card-line.short {
    width: 46%;
    background: rgba(255, 255, 255, .46);
}

.coming-soon-card-dot {
    position: absolute;
    z-index: 1;
    right: 42px;
    top: 46%;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #f5c76c;
    box-shadow: 0 0 0 10px rgba(245, 199, 108, .16);
}

.form-card {
    display: grid;
    gap: 16px;
}

.profile-form {
    align-items: start;
}

.avatar-upload {
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr);
    gap: 14px;
    align-items: center;
}

.profile-avatar {
    width: 120px;
    height: 120px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #e3e8e3;
}

.profile-avatar img,
.profile-avatar .avatar {
    width: 100%;
    height: 100%;
}

.profile-avatar img {
    object-fit: cover;
}

.profile-avatar .avatar {
    border-radius: 999px;
    font-size: 1.55rem;
}

.profile-style-fieldset {
    margin: 0;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.profile-style-fieldset legend {
    padding: 0 6px;
    color: var(--ink);
    font-weight: 900;
    font-size: .95rem;
}

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

.profile-style-group {
    display: grid;
    gap: 10px;
    align-content: start;
}

.profile-style-group strong {
    font-size: .88rem;
}

.profile-style-options {
    display: grid;
    gap: 8px;
}

.checkbox-option {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 9px;
    color: var(--muted);
    font-weight: 700;
    line-height: 1.35;
}

.checkbox-option input {
    width: 16px;
    height: 16px;
    margin-top: 2px;
}

.checkbox-label {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    color: var(--muted);
    font-weight: 800;
}

.checkbox-label input {
    width: 16px;
    height: 16px;
}

.feature-toggle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 14px 0 26px;
}

.feature-toggle {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px;
    align-items: center;
    gap: 14px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
}

.feature-toggle > span:first-child {
    display: grid;
    gap: 3px;
}

.feature-toggle small {
    color: var(--muted);
    font-weight: 600;
}

.feature-toggle-status {
    color: var(--teal) !important;
}

.feature-toggle-status.is-saving {
    color: var(--blue) !important;
}

.feature-toggle-status.is-error {
    color: var(--coral) !important;
}

.feature-toggle.is-saving {
    opacity: .72;
}

.feature-toggle input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.feature-toggle-control {
    position: relative;
    width: 48px;
    height: 26px;
    border-radius: 999px;
    background: #a9b2ad;
    transition: background 160ms ease;
}

.feature-toggle-control::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgb(0 0 0 / 22%);
    transition: transform 160ms ease;
}

.feature-toggle input:checked + .feature-toggle-control {
    background: var(--teal);
}

.feature-toggle input:checked + .feature-toggle-control::after {
    transform: translateX(22px);
}

.feature-toggle input:focus-visible + .feature-toggle-control {
    outline: 3px solid rgb(49 92 143 / 30%);
    outline-offset: 2px;
}

@media (max-width: 680px) {
    .feature-toggle-grid {
        grid-template-columns: 1fr;
    }
}

.profile-header-upload {
    display: grid;
    gap: 12px;
}

.profile-header-preview {
    overflow: hidden;
    border-radius: 8px;
    background: #e3e8e3;
    aspect-ratio: 5 / 2;
}

.profile-header-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

label {
    display: grid;
    gap: 7px;
    color: var(--ink);
    font-weight: 800;
    font-size: .9rem;
}

input,
textarea,
select {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 12px 13px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-weight: 400;
}

textarea {
    resize: vertical;
}

input:focus,
textarea:focus,
select:focus {
    outline: 3px solid rgba(15, 118, 110, .14);
    border-color: var(--teal);
}

.form-note {
    margin: 0;
    font-size: .9rem;
}

.form-note a {
    color: var(--teal-strong);
    font-weight: 800;
}

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

.admin-grid {
    display: grid;
    gap: 18px;
    padding: 32px 0 64px;
}

.site-settings-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 430px);
    gap: 28px;
    align-items: end;
    margin-top: 24px;
}

.site-settings-panel .section-heading {
    margin-bottom: 0;
}

.site-settings-panel .section-heading p:last-child {
    margin-bottom: 0;
}

.site-setting-form {
    display: grid;
    gap: 12px;
}

.site-settings-r2-panel {
    margin-top: 24px;
}

.site-settings-head-code-panel {
    margin-top: 24px;
}

.site-settings-brevo-panel {
    margin-top: 40px;
}

.site-settings-time-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 430px);
    gap: 28px;
    align-items: end;
    margin-top: 24px;
}

.site-settings-time-panel .section-heading {
    margin-bottom: 0;
}

.site-time-form {
    gap: 18px;
}

.site-time-fields {
    display: grid;
    gap: 14px;
}

.site-time-preview {
    display: grid;
    gap: 4px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7faf7;
}

.site-time-preview span,
.site-time-preview small {
    color: var(--muted);
}

.site-time-preview span {
    font-size: .76rem;
    font-weight: 900;
    text-transform: uppercase;
}

.site-time-preview strong {
    font-size: 1.1rem;
}

.site-setting-toggle {
    margin: 0;
}

.admin-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0 0 20px;
}

.admin-tabs a,
.admin-tabs .is-disabled {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--muted);
    font-weight: 900;
}

.admin-tabs .is-disabled {
    cursor: not-allowed;
    opacity: .45;
}

.admin-tabs a.active {
    border-color: var(--ink);
    background: var(--ink);
    color: #fff;
}

.owner-section-tabs {
    margin: 0 0 22px;
}

.owner-section-tabs a.active {
    border-color: var(--teal);
    background: var(--teal);
    color: #fff;
    box-shadow: 0 10px 24px rgba(15, 118, 110, .18);
}

.owner-section-tab-badge {
    margin-left: 2px;
}

.member-access-guide {
    margin-top: 24px;
}

.member-access-guide-body {
    display: grid;
    gap: 18px;
    padding: 22px;
}

.member-access-guide h2 {
    margin: 0;
}

.member-access-guide-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 24px;
}

.member-access-guide-grid p {
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
}

.member-access-guide-grid strong,
.member-access-subscription-notice strong {
    color: var(--ink);
}

.member-access-subscription-notice {
    display: grid;
    gap: 5px;
    padding: 16px 18px;
    border-left: 4px solid var(--teal);
    border-radius: 0 8px 8px 0;
    background: #e8f3ef;
}

.member-access-subscription-notice p {
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
}

.feature-disabled-notice {
    display: grid;
    gap: 5px;
    margin-bottom: 18px;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f1f4f1;
    color: var(--muted);
}

.feature-disabled-notice strong {
    color: var(--ink);
}

.summary-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 10px;
}

.summary-strip > div {
    display: grid;
    gap: 3px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.summary-strip strong,
.summary-strip span {
    display: block;
}

.summary-strip strong {
    color: var(--ink);
    font-size: 1.6rem;
    line-height: 1;
}

.summary-strip span {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.member-identifier-panel {
    display: grid;
    grid-template-columns: minmax(190px, 260px) minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    margin: -30px 0 0;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 8px 20px rgba(23, 33, 31, .03);
}

.member-identifier-panel div {
    display: grid;
    gap: 5px;
}

.member-identifier-panel span {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.member-identifier-panel strong {
    color: var(--ink);
    font-size: clamp(1.5rem, 3vw, 2.15rem);
    line-height: 1;
}

.member-identifier-panel p {
    margin: 0;
    color: var(--muted);
    font-size: .95rem;
    font-weight: 650;
}

.admin-stats {
    margin: 0 0 22px;
}

.owner-head-stats {
    margin: 24px 0 0;
}

.pending-members-stat.has-pending strong,
.pending-members-stat.has-pending span {
    color: #b42318;
}

.admin-pending-stat.has-pending strong,
.admin-pending-stat.has-pending span {
    color: #b42318;
}

.owner-workspace-surface {
    padding-top: 30px;
}

.admin-table-wrap {
    overflow-x: auto;
}

.admin-users-toolbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.admin-users-toolbar .section-heading {
    margin-bottom: 0;
}

.admin-user-search {
    display: grid;
    gap: 7px;
    min-width: min(100%, 430px);
}

.admin-user-search label {
    color: var(--muted);
    font-size: .76rem;
    text-transform: uppercase;
}

.admin-user-search > div {
    display: flex;
    align-items: center;
    gap: 8px;
}

.admin-user-search input {
    min-width: 220px;
}

.admin-table-sort-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: inherit;
    text-decoration: none;
}

.admin-table-sort-link span {
    color: var(--teal-strong);
    font-size: .9rem;
    line-height: 1;
}

.admin-table-sort-link:hover,
.admin-table-sort-link:focus-visible {
    color: var(--ink);
}

.admin-table-sort-link:focus-visible {
    outline: 3px solid rgba(15, 118, 110, .14);
    outline-offset: 4px;
    border-radius: 3px;
}

.admin-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-top: 18px;
}

.admin-pagination p {
    margin: 0;
}

.admin-pagination nav {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.admin-pagination-gap {
    padding: 0 2px;
    color: var(--muted);
}

@media (max-width: 760px) {
    .admin-users-toolbar,
    .admin-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-user-search {
        min-width: 0;
    }

    .admin-user-search > div,
    .admin-pagination nav {
        justify-content: flex-start;
    }

    .admin-user-search input {
        min-width: 0;
    }
}

.admin-table {
    width: 100%;
    min-width: 1120px;
    border-collapse: collapse;
}

.admin-table th,
.admin-table td {
    padding: 14px 12px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: middle;
}

.admin-table th {
    color: var(--muted);
    font-size: .78rem;
    text-transform: uppercase;
}

.member-table-sort-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-transform: inherit;
    cursor: pointer;
}

.member-table-sort-button::after {
    content: '↕';
    color: var(--muted);
    font-size: .9rem;
    line-height: 1;
}

.member-table-sort-button[data-sort-direction="ascending"]::after {
    content: '↑';
    color: var(--teal-strong);
}

.member-table-sort-button[data-sort-direction="descending"]::after {
    content: '↓';
    color: var(--teal-strong);
}

.member-table-sort-button:focus-visible {
    outline: 3px solid rgba(15, 118, 110, .14);
    outline-offset: 4px;
    border-radius: 3px;
}

.admin-table td strong,
.admin-table td small {
    display: block;
}

.admin-table td small {
    margin-top: 4px;
    color: var(--muted);
}

.admin-paypal-status {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fafbf6;
}

.admin-paypal-status small {
    color: var(--muted);
}

.admin-paypal-status.is-ready {
    border-color: rgba(15, 118, 110, .24);
    background: #eef8f5;
}

.admin-paypal-status.is-warning {
    border-color: rgba(199, 93, 75, .25);
    background: #fff2ef;
}

.admin-paypal-link-form {
    display: grid;
    gap: 16px;
}

.admin-paypal-generated-link {
    display: grid;
    gap: 16px;
    margin-top: 24px;
}

.admin-paypal-link-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 10px;
    align-items: center;
}

.admin-paypal-link-row input {
    min-width: 0;
}

.admin-paypal-transactions {
    margin-top: 24px;
}

.admin-paypal-transactions-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    max-width: none;
}

.admin-paypal-transactions-heading form,
.admin-paypal-transactions-heading label {
    display: grid;
    gap: 6px;
}

.admin-paypal-transactions-heading label {
    color: var(--muted);
    font-size: .76rem;
    font-weight: 900;
    text-transform: uppercase;
}

.admin-paypal-transactions-heading select {
    min-width: 90px;
}

.admin-paypal-table td strong,
.admin-paypal-table td small {
    max-width: 220px;
    overflow-wrap: anywhere;
}

.admin-inline-form {
    display: grid;
    gap: 10px;
    align-items: center;
}

.user-role-form {
    grid-template-columns: minmax(150px, 220px) auto;
}

.group-admin-form {
    grid-template-columns: minmax(160px, 1.2fr) minmax(110px, .7fr) 74px minmax(210px, 1.1fr) minmax(120px, .7fr) minmax(120px, .7fr) auto;
}

.member-access-form {
    grid-template-columns: minmax(190px, 1fr);
}

.member-access-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.member-delete-icon {
    width: 36px;
    min-width: 36px;
    height: 36px;
    padding: 0;
    justify-content: center;
}

.member-delete-icon svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
}

.member-delete-form {
    display: none;
}

.member-access-table {
    min-width: 760px;
}

.member-status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 800;
    white-space: nowrap;
}

.member-status-pill.is-unfinancial {
    color: #9f2d20;
    background: #fff0ed;
}

.member-status-pill.is-financial {
    color: var(--teal-strong);
    background: #e8f3ef;
}

.member-name-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ink);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.member-name-toggle:hover strong,
.member-name-toggle:focus-visible strong {
    color: var(--teal-strong);
}

.member-name-toggle:focus-visible {
    outline: 3px solid rgba(15, 118, 110, .14);
    outline-offset: 4px;
    border-radius: 4px;
}

.member-name-disclosure {
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--teal-strong);
    border-bottom: 2px solid var(--teal-strong);
    transform: rotate(45deg);
    transition: transform .18s ease;
}

.member-name-toggle[aria-expanded="true"] .member-name-disclosure {
    transform: rotate(225deg);
}

.member-detail-row td {
    padding: 0 12px 18px;
    background: #f7faf7;
}

.member-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px 24px;
    padding: 18px;
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 8px;
    background: var(--surface);
}

.member-detail-grid > div {
    display: grid;
    gap: 5px;
    align-content: start;
}

.member-detail-grid span {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.member-detail-grid strong,
.member-detail-grid a,
.member-detail-grid p {
    margin: 0;
    overflow-wrap: anywhere;
    font-size: .92rem;
    line-height: 1.5;
}

.member-detail-grid a {
    color: var(--teal-strong);
    font-weight: 800;
}

.member-detail-links,
.member-detail-bio {
    grid-column: 1 / -1;
}

.member-detail-links p {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
}

.member-detail-bio p {
    white-space: pre-line;
}

.member-detail-loading,
.member-detail-error {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--muted);
    font-weight: 700;
}

.member-detail-error {
    color: #9f2d20;
}

.member-detail-membership,
.member-detail-history {
    grid-column: 1 / -1;
    display: grid;
    gap: 14px;
}

.member-detail-membership {
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
}

.member-detail-membership h3,
.member-detail-history h3 {
    margin: 0;
    color: var(--ink);
    font-size: 1rem;
}

.member-membership-form,
.member-history-form {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7faf7;
}

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

.member-membership-edit-grid label {
    display: grid;
    gap: 5px;
}

.member-membership-edit-grid label.full-field {
    grid-column: 1 / -1;
}

.member-history-table td:last-child,
.member-history-table th:last-child {
    text-align: right;
}

.member-history-table {
    border-collapse: separate;
    border-spacing: 0 10px;
}

.member-history-table .member-subscription-row td {
    background: var(--surface);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    vertical-align: middle;
}

.member-history-table .member-subscription-row td:first-child {
    border-left: 1px solid var(--line);
    border-radius: 8px 0 0 8px;
}

.member-history-table .member-subscription-row td:last-child {
    border-right: 1px solid var(--line);
    border-radius: 0 8px 8px 0;
}

.member-history-table .member-subscription-row.is-current td {
    background: #eef8f5;
    border-color: rgba(15, 118, 110, .2);
}

.member-history-table .member-subscription-row.is-expired td {
    background: #fff2ef;
    border-color: rgba(199, 93, 75, .2);
}

.member-history-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.member-history-edit-form {
    display: grid;
    gap: 12px;
    padding: 12px;
    background: #f7faf7;
}

.member-history-edit-form .form-actions {
    justify-content: flex-start;
}

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

.competition-entry-upload-list {
    display: grid;
    gap: 12px;
    margin: 16px 0;
}

.competition-entry-layout {
    grid-template-columns: minmax(0, 1fr);
}

.competition-entry-upload-row {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr) auto;
    align-items: end;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fbfdfc;
}

.competition-entry-image-preview {
    display: flex;
    align-items: center;
    gap: 10px;
    grid-column: 1 / -1;
    color: var(--muted);
    font-size: .82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.competition-entry-image-preview[hidden] {
    display: none;
}

.competition-entry-image-preview img {
    display: block;
    width: 112px;
    height: 76px;
    object-fit: cover;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #e8efeb;
}

.competition-entry-upload-row .button {
    margin-bottom: 1px;
}

.competition-entry-total {
    display: grid;
    gap: 4px;
    margin: 18px 0;
    padding: 16px;
    border-radius: 10px;
    background: #eef8f5;
}

.competition-entry-total span,
.competition-entry-total small,
.competition-fee-breakdown {
    color: var(--muted);
}

.competition-entry-total strong {
    color: var(--ink);
    font-size: 1.35rem;
}

.competition-fee-breakdown {
    display: block;
    margin-top: 4px;
    font-size: .82rem;
}

.full-field {
    grid-column: 1 / -1;
}

.form-check-label {
    display: flex;
    align-items: center;
    gap: 10px;
}

.form-check-label input[type="checkbox"] {
    width: auto;
    flex: 0 0 auto;
}

.form-check-list {
    display: grid;
    gap: 10px;
    margin: 20px 0;
}

.form-check-list label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    line-height: 1.45;
}

.form-check-list input[type="checkbox"] {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    margin: 2px 0 0;
}

.recognition-items-list {
    display: grid;
    gap: 12px;
}

.recognition-item-row {
    display: grid;
    grid-template-columns: minmax(130px, .7fr) minmax(180px, 1fr) minmax(220px, 1.4fr) auto;
    align-items: end;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fbfdfc;
}

.recognition-item-row .button {
    margin-bottom: 1px;
}

.inner-heading {
    margin-top: 22px;
}

.form-actions,
.row-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.form-actions {
    margin-top: 6px;
}

.row-actions form {
    margin: 0;
}

.danger-card {
    border-color: rgba(159, 45, 32, .25);
    background: #fff8f6;
}

.remove-membership-form {
    justify-content: flex-start;
    margin-top: 10px;
}

.delete-inline-form {
    justify-content: flex-start;
    margin-top: 10px;
}

.dashboard-grid.align-start {
    align-items: start;
}

.wide {
    grid-column: 1 / -1;
}

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

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

.photographer-grid {
    align-items: stretch;
}

.card-topline,
.meta-row,
.inline-actions {
    justify-content: space-between;
    gap: 12px;
}

.photographer-card {
    display: grid;
    grid-template-rows: auto auto auto 1fr auto auto;
    gap: 12px;
    min-width: 0;
    align-content: start;
}

.photographer-card.is-filtered-out {
    display: none !important;
}

.photographer-card-head,
.photographer-profile-intro {
    display: flex;
    align-items: center;
    gap: 16px;
}

.photographer-card-head h2 {
    margin-bottom: 3px;
    overflow-wrap: anywhere;
}

.photographer-card-head small {
    color: var(--muted);
    font-weight: 700;
}

.photographer-card .news-image {
    margin-bottom: 4px;
}

.photographer-card p {
    margin: 0;
}

.photographer-card .listing-tags {
    margin-top: 0;
}

.photographer-level-pill {
    justify-self: start;
    max-width: 100%;
}

.photographer-card-avatar,
.photographer-profile-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex: 0 0 auto;
    border-radius: 999px;
    background: #e3e8e3;
}

.photographer-card-avatar,
.photographer-card-avatar .avatar {
    width: 56px;
    height: 56px;
}

.photographer-profile-avatar,
.photographer-profile-avatar .avatar {
    width: 120px;
    height: 120px;
}

.photographer-card-avatar img,
.photographer-profile-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.photographer-profile-avatar .avatar {
    border-radius: 999px;
    font-size: 1.55rem;
}

.photographer-profile-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: clamp(24px, 4vw, 52px);
    align-items: start;
}

.photographer-profile-layout.no-panel {
    grid-template-columns: minmax(0, 1fr);
}

.photographer-location-block {
    margin-bottom: 28px;
}

.photographer-location-block h2 {
    margin: 4px 0 0;
    font-size: 1.45rem;
}

.photographer-clubs-block,
.photographer-links-block,
.photographer-gallery-block,
.photographer-entries-block {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}

.photographer-clubs-block .section-heading,
.photographer-links-block .section-heading,
.photographer-gallery-block .section-heading,
.photographer-entries-block .section-heading {
    margin-bottom: 14px;
}

.photographer-masonry-gallery {
    column-count: 3;
    column-gap: 16px;
}

.photographer-gallery-item {
    display: block;
    position: relative;
    width: 100%;
    break-inside: avoid;
    margin: 0 0 16px;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 8px;
    background: #e3e8e3;
    cursor: zoom-in;
}

.photographer-gallery-item img {
    display: block;
    width: 100%;
    height: auto;
}

.photographer-gallery-item:hover img {
    filter: brightness(.96);
}

.photographer-gallery-item:focus-visible {
    outline: 3px solid var(--teal);
    outline-offset: 3px;
}

.photographer-gallery-lightbox .entry-lightbox-copy span {
    color: rgba(255, 255, 255, .72);
    font-size: .84rem;
    font-weight: 800;
}

.photographer-gallery-like-form {
    margin: 0;
}

.photographer-gallery-manager {
    display: grid;
    gap: 18px;
}

.photographer-gallery-upload {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 16px;
    align-items: end;
}

.photographer-gallery-upload .form-note,
.photographer-gallery-upload .owner-gallery-count {
    grid-column: 1 / -1;
    margin: 0;
}

.photographer-gallery-manage-grid .photographer-gallery-item form {
    position: absolute;
    right: 8px;
    bottom: 8px;
    margin: 0;
}

.photographer-gallery-sort-note {
    margin: 0;
}

.photographer-gallery-sort-note span {
    color: var(--teal);
    font-weight: 900;
}

.photographer-gallery-sort-note span.is-error {
    color: var(--coral);
}

.photographer-gallery-manage-grid .photographer-gallery-item {
    cursor: grab;
}

.photographer-gallery-manage-grid .photographer-gallery-item.is-dragging {
    opacity: .38;
    cursor: grabbing;
}

.photographer-gallery-manage-grid .photographer-gallery-item.is-drag-target {
    outline: 3px solid var(--teal);
    outline-offset: 3px;
}

.photographer-gallery-drag-handle {
    position: absolute;
    top: 8px;
    right: 8px;
    padding: 6px 9px;
    border-radius: 999px;
    color: #fff;
    background: rgba(17, 22, 21, .78);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
    pointer-events: none;
    user-select: none;
}

.photographer-club-list {
    display: grid;
    gap: 10px;
}

.photographer-club-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 68px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.photographer-club-item:hover {
    border-color: rgba(15, 118, 110, .32);
}

.photographer-club-item strong,
.photographer-club-item small {
    display: block;
}

.photographer-club-item small {
    margin-top: 3px;
    color: var(--muted);
}

.photographer-club-item-copy {
    min-width: 0;
    flex: 1 1 auto;
}

.photographer-club-item > .pill {
    margin-left: auto;
    flex: 0 0 auto;
}

.photographer-profile-panel {
    display: grid;
    gap: 20px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--paper);
}

.photographer-profile-panel p {
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
}

.photographer-profile-panel .eyebrow {
    margin-bottom: 8px;
    color: var(--coral);
}

.photographer-profile-panel .listing-tags span,
.photographer-profile-panel .listing-tags a {
    border: 1px solid rgba(11, 93, 86, .28);
    background: #e3f1ec;
    color: #0b4a45;
}

.profile-badge-block {
    display: grid;
    gap: 12px;
}

.profile-badge-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.profile-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 7px 10px 7px 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font-size: .86rem;
    font-weight: 900;
    line-height: 1.2;
    outline: none;
}

.profile-badge:focus-visible {
    border-color: var(--badge-color);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .16);
}

.profile-badge-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--badge-color) 12%, #fff);
    color: var(--badge-color);
}

.profile-badge-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 3.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.profile-badge-tooltip {
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    z-index: 5;
    width: max-content;
    max-width: min(260px, 72vw);
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--ink);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
    box-shadow: var(--shadow);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 4px);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
    visibility: hidden;
}

.profile-badge-tooltip::after {
    position: absolute;
    top: 100%;
    left: 50%;
    width: 10px;
    height: 10px;
    background: var(--ink);
    content: "";
    transform: translate(-50%, -5px) rotate(45deg);
}

.profile-badge:hover .profile-badge-tooltip,
.profile-badge:focus .profile-badge-tooltip,
.profile-badge:focus-within .profile-badge-tooltip {
    opacity: 1;
    transform: translate(-50%, 0);
    visibility: visible;
}

.photographer-link-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.photographer-link-list a {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--teal-strong);
    background: var(--surface);
    font-weight: 900;
}

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

.photographer-entry-card {
    display: grid;
    align-content: start;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    box-shadow: 0 10px 28px rgba(23, 33, 31, .04);
}

.photographer-entry-card:hover {
    border-color: rgba(15, 118, 110, .32);
}

.photographer-entry-card span {
    display: grid;
    gap: 4px;
    padding: 14px;
}

.photographer-entry-card strong {
    overflow-wrap: anywhere;
    font-size: .92rem;
}

.photographer-entry-card small {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.35;
}

.photographer-entry-card small a {
    color: var(--teal-strong);
}

.event-card-actions {
    display: grid;
    gap: 8px;
    margin-top: 4px;
}

.event-card-actions form {
    margin: 0;
}

.event-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    align-items: stretch;
}

.event-list-card {
    overflow: hidden;
    border-radius: 8px;
    background: #f3f4f2;
}

.event-list-image {
    overflow: hidden;
    aspect-ratio: 2 / 1;
    background: #e3e8e3;
}

.event-list-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.event-list-body {
    display: grid;
    gap: 18px;
    padding: clamp(22px, 3vw, 34px);
}

.event-schedule-label {
    margin: 0;
    color: var(--ink);
    font-size: clamp(1.1rem, 1.8vw, 1.35rem);
    line-height: 1.25;
    font-weight: 900;
}

.event-meta-line {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 24px;
    color: #3e4542;
    font-size: 1.05rem;
    line-height: 1.35;
}

.event-meta-line span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.photographer-meta-line {
    display: grid;
    gap: 8px;
}

.event-list-meta-line {
    display: grid;
    gap: 8px;
}

.competition-results-link {
    color: var(--teal-strong);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.competition-results-link:hover,
.competition-results-link:focus-visible {
    color: var(--coral);
}

.event-meta-line svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex: 0 0 auto;
}

.event-list-card h2 {
    margin: 0;
    font-size: clamp(1.45rem, 2.1vw, 1.9rem);
    line-height: 1.1;
}

.event-list-card p {
    margin: 0;
    color: #202523;
    font-size: 1rem;
    line-height: 1.55;
}

.event-list-card .event-schedule-label {
    color: var(--ink);
    font-size: clamp(1.1rem, 1.8vw, 1.35rem);
    line-height: 1.25;
    font-weight: 900;
}

.event-list-card .event-audience-note {
    margin-top: 2px;
}

.directory-list-card.is-filtered-out {
    display: none !important;
}

.directory-card-title-row {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.directory-card-title-row h2 {
    min-width: 0;
    overflow-wrap: anywhere;
}

.event-list-actions {
    margin-top: 4px;
}

.event-list-actions .button {
    width: fit-content;
    border-radius: 0;
    border-color: #202523;
    color: #202523;
    background: transparent;
    box-shadow: none;
}

.event-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: clamp(24px, 4vw, 52px);
    align-items: start;
}

.event-detail-panel {
    display: grid;
    gap: 20px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--paper);
}

.event-detail-panel h2,
.event-detail-panel p {
    margin: 0;
}

.event-detail-panel h2 {
    font-size: 1.15rem;
}

.event-detail-panel p:not(.eyebrow) {
    color: var(--muted);
    line-height: 1.55;
}

.event-rsvp-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 0;
    margin-top: 12px;
    padding-left: 14px;
    max-width: 100%;
}

.event-rsvp-avatar {
    position: relative;
    display: inline-flex;
    width: 38px;
    height: 38px;
    border: 2px solid var(--surface);
    border-radius: 50%;
    background: var(--ink);
    box-shadow: 0 0 0 1px var(--line);
    outline: none;
    margin-left: -14px;
}

.event-rsvp-avatar:hover,
.event-rsvp-avatar:focus {
    z-index: 6;
}

.event-rsvp-avatar:focus-visible {
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .22);
}

.event-rsvp-avatar img,
.event-rsvp-avatar .avatar {
    width: 100%;
    height: 100%;
    border-radius: 50%;
}

.event-rsvp-avatar img {
    object-fit: cover;
}

.event-rsvp-avatar .avatar {
    font-size: .72rem;
}

.event-rsvp-avatar::after {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    z-index: 5;
    width: max-content;
    max-width: 220px;
    padding: 6px 8px;
    border-radius: 8px;
    background: var(--ink);
    color: #fff;
    content: attr(data-name);
    font-size: .76rem;
    font-weight: 800;
    line-height: 1.25;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 4px);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
    visibility: hidden;
}

.event-rsvp-avatar:hover::after,
.event-rsvp-avatar:focus::after {
    opacity: 1;
    transform: translate(-50%, 0);
    visibility: visible;
}

.meta-row {
    flex-wrap: wrap;
    margin: 16px 0;
    color: var(--muted);
    font-size: .9rem;
}

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

.competition-results-intro {
    margin: -4px 0 0;
    padding-bottom: 24px;
    color: var(--muted);
}

.competition-results-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
}

.competition-result-card .entry-image-button img {
    aspect-ratio: 3 / 2;
}

.competition-result-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.result-pill {
    color: var(--teal-strong);
    background: #e7f3ef;
}

.result-pill-muted {
    color: var(--muted);
    background: #edf0ed;
}

.contact-links .list-item {
    min-height: 48px;
    overflow-wrap: anywhere;
}

.owner-gallery-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: start;
    min-height: 30px;
    margin: 0;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--teal-strong);
    background: #e8f3ef;
    font-size: .82rem;
    font-weight: 900;
}

.owner-gallery-count.is-over-limit {
    color: #9f2d20;
    background: #fff0ec;
}

.owner-gallery-upload-form {
    gap: 12px;
    padding: 18px;
}

.owner-gallery-upload-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.owner-gallery-upload-heading h2 {
    margin: 0;
}

.owner-gallery-file-field,
.owner-gallery-upload-button {
    width: fit-content;
    max-width: 100%;
    justify-self: start;
}

.owner-gallery-file-field input {
    width: auto;
    max-width: 100%;
}

.club-news-heading {
    margin-top: 42px;
}

.owner-header-preview {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    aspect-ratio: 1920 / 660;
    background: #e3e8e3;
}

.owner-header-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.owner-logo-preview {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 150px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7faf6;
}

.owner-logo-preview img {
    width: auto;
    max-width: 240px;
    height: auto;
    max-height: 180px;
    object-fit: contain;
}

.owner-club-visibility {
    display: grid;
    grid-template-columns: minmax(180px, .7fr) minmax(240px, 1.3fr);
    gap: 18px 28px;
    align-items: start;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7faf6;
}

.owner-club-visibility > div {
    display: grid;
    gap: 8px;
}

.owner-club-visibility a {
    overflow-wrap: anywhere;
    color: var(--teal-strong);
    font-weight: 800;
}

.owner-competition-preview {
    overflow: hidden;
    margin: 0 16px 14px;
    border-radius: 8px;
    background: #e3e8e3;
    aspect-ratio: 16 / 7;
}

.owner-competition-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

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

.owner-gallery-item {
    display: grid;
    gap: 10px;
}

.owner-gallery-item img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 8px;
    background: #e3e8e3;
}

.editable-list-item {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.editable-list-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 70px;
    padding: 14px 16px;
    cursor: pointer;
    list-style: none;
}

.editable-list-item summary::-webkit-details-marker {
    display: none;
}

.editable-list-item summary strong,
.editable-list-item summary small {
    display: block;
}

.editable-list-item summary small {
    margin-top: 4px;
    color: var(--muted);
}

.stacked-edit-form {
    display: grid;
    gap: 14px;
    padding: 0 16px 16px;
}

.competition-manager {
    display: grid;
    gap: 28px;
}

.dashboard-section-stack {
    gap: 18px;
}

.dashboard-section-body {
    display: grid;
    gap: 20px;
    padding: 24px;
    border-top: 1px solid var(--line);
}

.dashboard-account-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.dashboard-account-meta > div {
    display: grid;
    gap: 5px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7faf7;
}

.dashboard-account-meta span {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.dashboard-account-meta strong {
    color: var(--ink);
    font-size: 1.15rem;
}

.dashboard-account-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}

.dashboard-account-form .button {
    justify-self: start;
}

.passkey-panel {
    display: grid;
    gap: 18px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.passkey-panel-heading,
.passkey-add-row,
.passkey-list-item,
.passkey-list-actions form {
    display: flex;
    align-items: center;
}

.passkey-panel-heading {
    justify-content: space-between;
    gap: 18px;
}

.passkey-panel-heading h2 {
    margin: 0 0 5px;
    font-size: 1.2rem;
}

.passkey-panel-heading .form-note {
    margin: 0;
    max-width: 640px;
}

.passkey-badge {
    flex: 0 0 auto;
    padding: 5px 9px;
    border-radius: 999px;
    background: #e3f1ec;
    color: var(--teal-strong);
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.passkey-add-row {
    align-items: end;
    gap: 14px;
}

.passkey-add-row label {
    flex: 1 1 320px;
}

.passkey-add-row .button {
    flex: 0 0 auto;
}

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

.passkey-list-item {
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7faf7;
}

.passkey-list-icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    font-size: 1.35rem;
}

.passkey-list-details {
    display: grid;
    min-width: 160px;
    gap: 3px;
    margin-right: auto;
}

.passkey-list-details small,
.passkey-empty {
    color: var(--muted);
    font-size: .82rem;
}

.passkey-list-actions {
    display: grid;
    gap: 7px;
}

.passkey-list-actions form {
    justify-content: end;
    gap: 7px;
}

.passkey-list-actions input {
    width: min(230px, 28vw);
    min-height: 34px;
    padding: 7px 10px;
    font-size: .86rem;
}

.passkey-empty,
.passkey-panel > .form-note.is-error,
.passkey-login-note {
    margin: 0;
}

.auth-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--muted);
    font-size: .8rem;
    text-transform: uppercase;
}

.auth-divider::before,
.auth-divider::after {
    content: '';
    height: 1px;
    flex: 1;
    background: var(--line);
}

.form-note.is-error {
    color: #9f2d20;
}

.owner-profile-gallery-body,
.owner-profile-contacts-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    align-items: start;
    padding: 24px;
    border-top: 1px solid var(--line);
}

.competition-create-card,
.competition-list-panel {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 10px 28px rgba(23, 33, 31, .04);
}

.competition-create-card {
    overflow: hidden;
    border-color: rgba(15, 118, 110, .24);
}

.competition-create-summary {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 18px;
    gap: 14px;
    align-items: center;
    min-height: 88px;
    padding: 18px 22px;
    cursor: pointer;
    list-style: none;
    background: #f7faf7;
}

.competition-create-summary::-webkit-details-marker,
.competition-item > summary::-webkit-details-marker {
    display: none;
}

.competition-create-summary:hover,
.competition-item > summary:hover {
    background: #f4f8f5;
}

.competition-create-summary strong,
.competition-create-summary small {
    display: block;
}

.competition-create-summary strong {
    color: var(--ink);
    font-size: 1.16rem;
}

.competition-create-summary small {
    margin-top: 3px;
    color: var(--muted);
    font-weight: 650;
}

.competition-summary-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 8px;
    color: #fff;
    background: var(--teal);
    font-size: 1.7rem;
    font-weight: 500;
    line-height: 1;
    transition: transform .18s ease;
}

.competition-create-card[open] .competition-summary-icon {
    transform: rotate(45deg);
}

.competition-disclosure {
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--teal-strong);
    border-bottom: 2px solid var(--teal-strong);
    transform: rotate(45deg);
    transition: transform .18s ease;
}

.competition-create-card[open] .competition-disclosure,
.competition-item[open] > summary .competition-disclosure {
    transform: rotate(225deg);
}

.competition-create-form,
.competition-edit-form {
    display: grid;
    gap: 20px;
}

.competition-create-form {
    padding: 24px;
    border-top: 1px solid var(--line);
}

.competition-status-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
    gap: 18px;
    align-items: end;
    padding: 16px 18px;
    border: 1px solid rgba(15, 118, 110, .28);
    border-radius: 8px;
    background: #f0f8f5;
}

.competition-status-panel .eyebrow {
    margin-bottom: 4px;
}

.competition-status-panel strong,
.competition-status-panel p {
    display: block;
}

.competition-status-panel strong {
    margin-bottom: 4px;
}

.competition-status-panel p {
    color: var(--muted);
}

.competition-approved-banner {
    display: flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-top: 18px;
    padding: 11px 15px;
    border: 1px solid rgba(15, 118, 110, .35);
    border-radius: 8px;
    background: #e3f1ec;
    color: var(--teal-strong);
}

.competition-approved-banner strong {
    white-space: nowrap;
}

.competition-approved-inline {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 10px 14px;
    border-radius: 8px;
    background: #e3f1ec;
    color: var(--teal-strong);
    font-weight: 850;
}

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

.competition-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7faf7;
}

.competition-help {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 24px;
    padding: 16px 18px;
    border-left: 3px solid var(--teal);
    border-radius: 0 8px 8px 0;
    background: #f7faf7;
}

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

.competition-help p {
    margin: 0;
    color: var(--muted);
    font-size: .86rem;
    line-height: 1.5;
}

.competition-list-panel {
    padding: 22px;
}

.competition-list-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.competition-list-heading p {
    margin: 0 0 5px;
}

.competition-list-heading h2 {
    margin: 0;
    font-size: 1.4rem;
}

.competition-count {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 10px;
    border-radius: 999px;
    color: var(--teal-strong);
    background: #e8f3ef;
    font-size: .8rem;
    font-weight: 900;
    white-space: nowrap;
}

.competition-item-list {
    gap: 12px;
}

.competition-item {
    overflow: hidden;
}

.competition-item > summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 18px;
    min-height: 88px;
    padding: 15px 18px;
    transition: background .16s ease;
}

.competition-item[open] > summary {
    border-bottom: 1px solid var(--line);
    background: #f7faf7;
}

.competition-summary-copy {
    min-width: 0;
}

.competition-summary-copy > strong {
    color: var(--ink);
    font-size: 1rem;
}

.competition-summary-meta {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    margin-top: 7px;
}

.competition-summary-meta > span {
    padding: 3px 8px;
    border-radius: 999px;
    color: var(--muted);
    background: #f0f3f0;
    font-size: .74rem;
    font-weight: 800;
    line-height: 1.35;
}

.competition-summary-meta .competition-status {
    color: var(--teal-strong);
    background: #e8f3ef;
}

.competition-summary-meta .competition-meta-alert {
    color: #9f2d20;
    background: #fff0ec;
}

.competition-manage-label {
    color: var(--teal-strong);
    font-size: .82rem;
    font-weight: 900;
}

.competition-item-body {
    padding: 22px;
}

.competition-item .owner-competition-preview {
    margin: 0 0 22px;
}

.competition-delete-form {
    margin: 18px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.news-image {
    overflow: hidden;
    margin: -22px -22px 16px;
    border-radius: 8px 8px 0 0;
    background: #e3e8e3;
    aspect-ratio: 3 / 2;
}

.news-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news-article {
    max-width: 860px;
    margin: 0 auto;
    overflow: hidden;
}

.news-article-section {
    padding-top: 40px;
}

.news-article-head {
    margin: 0 0 22px;
}

.news-article-image {
    overflow: hidden;
    margin: -22px -22px 22px;
    background: #e3e8e3;
    height: clamp(280px, 48vw, 420px);
}

.news-article-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.news-article-body {
    color: var(--muted);
    font-size: 1.06rem;
    line-height: 1.7;
}

.news-article-body p {
    margin: 0;
}

.entry-thumb {
    overflow: hidden;
}

.entry-image-button {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.entry-image-button img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    background: #e3e8e3;
}

.entry-image-button:hover img,
.entry-image-button:focus-visible img {
    outline: 2px solid var(--teal);
    outline-offset: -2px;
}

.entry-thumb-body {
    padding: 14px;
}

.entry-thumb strong,
.entry-thumb small {
    display: block;
}

.entry-thumb small {
    margin-top: 4px;
    color: var(--muted);
}

.entry-thumb-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
}

.entry-entrant-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    color: var(--muted);
    font-size: .92rem;
    font-weight: 800;
}

.entry-entrant-link > span:last-child {
    min-width: 0;
    overflow-wrap: anywhere;
}

.entry-entrant-avatar,
.entry-entrant-avatar .avatar {
    width: 34px;
    height: 34px;
}

.entry-entrant-avatar {
    display: inline-flex;
    overflow: hidden;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #e3e8e3;
    flex: 0 0 auto;
}

.entry-entrant-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.entry-like-form {
    margin: 0;
    flex: 0 0 auto;
}

.entry-like-button {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    padding: 7px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--teal-strong);
    background: var(--surface);
    font-size: .82rem;
    font-weight: 900;
    cursor: pointer;
}

.entry-like-button.is-liked {
    border-color: rgba(15, 118, 110, .34);
    background: #e8f3ef;
}

.entry-lightbox[hidden] {
    display: none;
}

.entry-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: 0;
}

.entry-lightbox-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(0, 0, 0, .78);
    cursor: zoom-out;
}

.entry-lightbox-dialog {
    position: relative;
    z-index: 1;
    display: grid;
    width: 100%;
    height: 100%;
    max-height: none;
    overflow: hidden;
    border-radius: 0;
    background: #111615;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .38);
}

.entry-lightbox-dialog > img {
    display: block;
    width: 100%;
    max-height: calc(100vh - 104px);
    padding-top: 14px;
    object-fit: contain;
    background: #050706;
}

.entry-lightbox-close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 999px;
    color: #fff;
    background: rgba(17, 22, 21, .8);
    font: inherit;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}

.entry-lightbox-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 48px;
    height: 58px;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 8px;
    color: #fff;
    background: rgba(17, 22, 21, .78);
    font: inherit;
    font-size: 2.3rem;
    line-height: 1;
    cursor: pointer;
    transform: translateY(-50%);
}

.entry-lightbox-nav.previous {
    left: 14px;
}

.entry-lightbox-nav.next {
    right: 14px;
}

.entry-lightbox-nav:disabled {
    cursor: not-allowed;
    opacity: .34;
}

.entry-lightbox-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 16px 18px;
    color: #fff;
}

.entry-lightbox-copy {
    display: grid;
    min-width: 0;
    gap: 8px;
}

.entry-lightbox-copy > strong {
    overflow-wrap: anywhere;
    font-size: 1.05rem;
}

.entry-lightbox-result {
    margin-left: 2px;
}

.entry-lightbox-entrant > [data-entry-lightbox-name] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.entry-lightbox-entrant {
    color: rgba(255, 255, 255, .78);
}

.entry-lightbox-entrant .entry-entrant-avatar {
    width: 38px;
    height: 38px;
    background: #e3e8e3;
}

.entry-lightbox-entrant .entry-entrant-avatar img {
    display: block;
    border-radius: 999px;
}

.entry-lightbox-entrant .entry-entrant-avatar img[hidden],
.entry-lightbox-entrant .entry-entrant-avatar .avatar[hidden] {
    display: none;
}

.entry-lightbox-entrant .entry-entrant-avatar .avatar {
    width: 100%;
    height: 100%;
    border-radius: 999px;
    background: var(--teal);
}

.entry-lightbox .entry-like-button {
    border-color: rgba(255, 255, 255, .22);
    color: #fff;
    background: rgba(255, 255, 255, .08);
}

.entry-lightbox .entry-like-button.is-liked {
    border-color: rgba(114, 211, 190, .55);
    background: rgba(15, 118, 110, .36);
}

.entry-lightbox-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
}

.judge-page {
    background: #202323;
}

.judge-page .site-header {
    display: none;
}

.judge-page main {
    width: 100%;
    margin: 0;
}

.judge-page .flash {
    width: min(100% - 32px, 1680px);
    margin-top: 14px;
}

.judge-room {
    --judge-bg: #ffffff;
    --judge-panel: #ffffff;
    --judge-panel-soft: #f6f7f4;
    --judge-text: #17211f;
    --judge-muted: #63706c;
    --judge-line: rgba(23, 33, 31, .14);
    min-height: 100vh;
    padding: 18px clamp(18px, 2.6vw, 44px) 28px;
    background: var(--judge-bg);
    color: var(--judge-text);
}

.judge-room-bar,
.judge-control-strip {
    display: flex;
    align-items: center;
}

.judge-room-bar {
    justify-content: space-between;
    gap: 24px;
    margin: 0 auto 18px;
    max-width: 1680px;
}

.judge-room-title {
    min-width: 0;
}

.judge-room-title .eyebrow {
    margin-bottom: 5px;
}

.judge-room-title h1 {
    margin: 0;
    color: var(--judge-text);
    font-size: clamp(1.8rem, 3.2vw, 3.6rem);
    line-height: 1.12;
}

.judge-room-title p:not(.eyebrow) {
    max-width: 920px;
    margin: 8px 0 0;
    color: var(--judge-muted);
    line-height: 1.65;
}

.judge-methods {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    max-width: 1680px;
    margin: 0 auto 14px;
}

.judge-method {
    display: grid;
    gap: 5px;
    min-height: 72px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.judge-method.active {
    border-color: var(--teal);
    box-shadow: inset 0 0 0 1px var(--teal);
}

.judge-method strong {
    color: var(--judge-text);
}

.judge-method span {
    color: var(--judge-muted);
    line-height: 1.45;
}

.judge-control-strip {
    justify-content: space-between;
    gap: 16px;
    max-width: 1680px;
    margin: 0 auto 20px;
    padding: 0;
    background: transparent;
}

.judge-top-meta {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-left: auto;
    color: var(--judge-muted);
    font-size: .84rem;
    font-weight: 900;
}

.judge-top-meta strong {
    min-width: 66px;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #fff;
    background: var(--coral);
}

.judge-top-meta .judge-nav-button {
    min-height: 38px;
    padding: 7px 12px;
}

.run-tabs {
    gap: 6px;
    flex-wrap: wrap;
}

.run-tabs a {
    padding: 9px 12px;
    border-radius: 8px;
    color: var(--judge-muted, var(--muted));
    border: 1px solid var(--line);
    font-weight: 900;
}

.run-tabs a.active {
    color: #fff;
    background: var(--ink);
}

.judge-category-filter {
    display: flex;
    align-items: end;
    gap: 10px;
    margin-left: auto;
}

.judge-category-filter label {
    min-width: 210px;
    color: var(--judge-muted);
    font-size: .74rem;
    font-weight: 900;
    text-transform: uppercase;
}

.judge-category-filter select {
    min-height: 38px;
    padding: 7px 10px;
    text-transform: none;
}

.judge-room input,
.judge-room textarea,
.judge-room select {
    border-color: var(--judge-line);
    color: var(--judge-text);
    background: var(--judge-panel-soft);
}

.judge-entry-category {
    margin: 0 0 10px;
    color: var(--judge-muted);
    font-size: .82rem;
    font-weight: 800;
}

.judge-progress-strip {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
    color: var(--judge-text);
}

.judge-progress-strip span {
    color: var(--judge-muted);
    font-size: .84rem;
}

.judge-slide-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 10px;
    margin-top: 2px;
}

.judge-slide-nav > span {
    grid-column: 1 / -1;
    order: -1;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0;
    border: 0;
    color: var(--judge-text);
    background: transparent;
    font-weight: 900;
}

.judge-nav-button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--judge-line);
    border-radius: 8px;
    padding: 9px 14px;
    color: var(--judge-text);
    background: var(--judge-panel);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
    transition: transform .15s ease, opacity .15s ease, background .15s ease;
}

.judge-nav-button:last-child {
    justify-content: center;
}

.judge-nav-button:first-child {
    justify-content: center;
}

.judge-nav-button:hover:not(:disabled) {
    transform: translateY(-1px);
    background: var(--judge-panel-soft);
}

.judge-nav-button:disabled {
    cursor: not-allowed;
    opacity: .42;
}

.judge-nav-button svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.judge-list {
    display: grid;
    max-width: none;
    margin: 0 auto;
    padding: 0;
}

.judge-entry {
    display: grid;
    grid-template-columns: minmax(0, 82fr) minmax(220px, 18fr);
    gap: clamp(12px, 1.4vw, 24px);
    align-items: start;
    min-height: calc(100vh - 270px);
    margin-bottom: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.judge-entry[hidden] {
    display: none;
}

.judge-image-viewport {
    position: relative;
    align-self: start;
    justify-self: center;
    display: grid;
    place-items: start center;
    width: min(94%, 100%);
    height: calc(100vh - 270px);
    overflow: visible;
}

.judge-image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    padding: 0;
    object-fit: contain;
    object-position: center top;
    background: transparent;
}

.judge-image-arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 999px;
    color: #fff;
    background: rgba(23, 33, 31, .45);
    box-shadow: 0 10px 26px rgba(0, 0, 0, .16);
    cursor: pointer;
    opacity: 0;
    transform: translateY(-50%);
    transition: opacity .16s ease, background .16s ease, transform .16s ease;
}

.judge-image-arrow.previous {
    left: 14px;
}

.judge-image-arrow.next {
    right: 14px;
}

.judge-image-viewport:hover .judge-image-arrow,
.judge-image-viewport:focus-within .judge-image-arrow {
    opacity: 1;
}

.judge-image-arrow:hover:not(:disabled),
.judge-image-arrow:focus-visible:not(:disabled) {
    background: rgba(23, 33, 31, .68);
    transform: translateY(-50%) scale(1.04);
}

.judge-image-arrow:disabled {
    cursor: not-allowed;
    opacity: 0;
}

.judge-image-arrow svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.judge-after-space {
    height: 220px;
    background: #fff;
}

.judge-entrant-roster {
    display: grid;
    gap: 18px;
    max-width: 1680px;
    margin: 0 auto;
}

.judge-roster-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--judge-line);
}

.judge-roster-heading h2 {
    margin: 0;
    color: var(--judge-text);
    font-size: clamp(1.6rem, 3vw, 2.5rem);
    line-height: 1.1;
}

.judge-roster-heading p:not(.eyebrow) {
    max-width: 900px;
    margin: 8px 0 0;
    color: var(--judge-muted);
    line-height: 1.62;
}

.judge-roster-actions {
    display: grid;
    gap: 10px;
    justify-items: end;
}

.judge-competition-status-form {
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
}

.judge-competition-status-form label {
    min-width: 180px;
    color: var(--judge-muted);
    font-size: .74rem;
    text-transform: uppercase;
}

.judge-competition-status-form select {
    min-height: 38px;
    padding: 7px 10px;
    text-transform: none;
}

.judge-roster-search {
    display: grid;
    gap: 8px;
    max-width: 520px;
    color: var(--judge-muted);
    font-size: .82rem;
    font-weight: 900;
    text-transform: uppercase;
}

.judge-roster-search input {
    border-color: var(--judge-line);
    background: var(--judge-panel);
    color: var(--judge-text);
    text-transform: none;
}

.judge-roster-search input::placeholder {
    color: var(--judge-muted);
}

.judge-roster-groups {
    display: grid;
    gap: 18px;
}

.judge-roster-group {
    display: grid;
    gap: 10px;
}

.judge-roster-group-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.judge-roster-group-heading h3 {
    margin: 0;
    color: var(--judge-text);
    font-size: 1.08rem;
}

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

.judge-roster-entry {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--judge-line);
    border-radius: 8px;
    background: var(--judge-panel);
}

.judge-roster-thumb {
    display: block;
    width: 92px;
    padding: 0;
    border: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 8px;
    background: var(--judge-panel-soft);
    cursor: zoom-in;
}

.judge-roster-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.judge-roster-thumb:hover img,
.judge-roster-thumb:focus-visible img {
    outline: 2px solid var(--teal);
    outline-offset: -2px;
}

.judge-roster-entry-main {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.judge-roster-entry-main strong,
.judge-roster-entry-main small {
    overflow-wrap: anywhere;
}

.judge-roster-entry-main small {
    color: var(--judge-muted);
}

.payment-toggle {
    display: inline-flex;
    align-items: center;
    padding: 3px;
    border: 1px solid var(--judge-line);
    border-radius: 8px;
    background: var(--judge-panel-soft);
}

.payment-toggle button {
    min-height: 34px;
    padding: 6px 11px;
    border: 0;
    border-radius: 6px;
    color: var(--judge-muted);
    background: transparent;
    font: inherit;
    font-size: .84rem;
    font-weight: 900;
    cursor: pointer;
}

.payment-toggle button.active {
    color: #fff;
    background: var(--teal);
}

.payment-toggle button:disabled {
    cursor: default;
}

.simple-results {
    display: grid;
    gap: 12px;
    max-width: 1680px;
    margin: 0 auto;
}

.simple-result-row {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr) minmax(360px, .75fr);
    gap: 16px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
}

.simple-result-thumb {
    display: block;
    width: 140px;
    aspect-ratio: 4 / 3;
    padding: 0;
    border: 0;
    background: var(--judge-panel-soft);
    cursor: zoom-in;
}

.simple-result-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.simple-result-thumb:hover img,
.simple-result-thumb:focus-visible img {
    outline: 2px solid var(--teal);
    outline-offset: 2px;
}

.result-image-modal[hidden] {
    display: none;
}

.result-image-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: 28px;
}

.result-image-modal-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(0, 0, 0, .78);
    cursor: zoom-out;
}

.result-image-modal-dialog {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 10px;
    width: min(96vw, 1400px);
    max-height: 94vh;
    place-items: center;
}

.result-image-modal-dialog img {
    max-width: 100%;
    max-height: calc(94vh - 54px);
    object-fit: contain;
    background: #111;
}

.result-image-modal-dialog p {
    margin: 0;
    color: #fff;
    font-weight: 800;
    text-align: center;
}

.result-image-modal-close {
    position: absolute;
    top: -18px;
    right: -18px;
    z-index: 2;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 999px;
    color: #fff;
    background: rgba(23, 33, 31, .86);
    font: inherit;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}

.modal-open {
    overflow: hidden;
}

.simple-result-main {
    display: grid;
    gap: 4px;
}

.simple-result-main strong,
.simple-result-main small,
.simple-result-main span {
    display: block;
}

.simple-result-main span a {
    color: var(--judge-text);
    text-decoration: underline;
    text-decoration-color: rgba(23, 33, 31, .28);
    text-underline-offset: 3px;
}

.simple-result-main span a:hover {
    color: var(--teal);
    text-decoration-color: currentColor;
}

.simple-result-main small,
.simple-result-main span {
    color: var(--judge-muted);
}

.simple-result-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    align-items: end;
}

.simple-results-save {
    justify-self: end;
    margin-top: 12px;
}

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

.simple-results-actions .simple-results-save {
    margin-top: 12px;
}

.judge-results-reset-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    max-width: 1680px;
    margin: 28px auto 0;
    padding: 18px;
    border: 1px solid var(--judge-line);
    border-radius: 8px;
    background: var(--judge-panel-soft);
}

.judge-results-reset-panel h2,
.judge-results-reset-panel p,
.judge-reset-dialog h2,
.judge-reset-dialog p {
    margin: 0;
}

.judge-results-reset-panel p,
.judge-reset-dialog p {
    margin-top: 5px;
    color: var(--judge-muted);
    line-height: 1.5;
}

.judge-results-reset-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.judge-results-reset-actions form {
    margin: 0;
}

.judge-reset-dialog {
    width: min(520px, calc(100% - 32px));
    padding: 0;
    border: 1px solid var(--judge-line);
    border-radius: 8px;
    color: var(--judge-text);
    background: var(--judge-panel);
    box-shadow: 0 28px 80px rgba(0, 0, 0, .34);
}

.judge-reset-dialog::backdrop {
    background: rgba(0, 0, 0, .72);
}

.judge-reset-dialog > form {
    display: grid;
    gap: 20px;
    padding: 24px;
}

.judge-reset-dialog .form-actions {
    margin: 0;
}

.judge-form {
    display: grid;
    gap: 14px;
    padding: clamp(4px, .8vw, 12px);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.judge-title-row {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 14px;
}

.judge-entry-count {
    display: block;
    margin-bottom: 6px;
    color: var(--judge-muted);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.judge-title-row h2 {
    margin: 0;
    color: var(--judge-text);
    font-size: 1.25rem;
    line-height: 1.2;
}

.judge-title-row p {
    margin: 4px 0 0;
    color: var(--judge-muted);
}

.score-badge {
    min-width: 66px;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 8px;
    color: #fff;
    background: var(--coral);
    font-weight: 900;
}

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

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

.judge-form .score-grid.single {
    grid-template-columns: 1fr;
}

.judge-form .score-grid.detailed {
    gap: 8px;
}

.judge-form .score-grid.detailed label {
    line-height: 1.35;
}

.score-total-note {
    margin: -4px 0 0;
    color: var(--judge-muted);
    font-size: .86rem;
    font-weight: 800;
}

.detailed-score-list {
    display: grid;
    gap: 4px;
}

.detailed-score-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 8px;
    align-items: center;
}

.detailed-score-row > span {
    color: var(--judge-text);
    font-size: .84rem;
    font-weight: 800;
    line-height: 1.25;
}

.detailed-score-row .simple-score-buttons {
    grid-column: 1 / -1;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4px;
}

.detailed-score-row .simple-score-button {
    min-height: 30px;
    padding: 0;
    border-radius: 6px;
    font-size: .82rem;
}

.detailed-score-row small {
    color: var(--judge-muted);
    font-size: .7rem;
    font-weight: 800;
    text-align: right;
    white-space: nowrap;
}

.simple-score {
    display: grid;
    gap: 8px;
}

.simple-score > span {
    color: var(--judge-text);
    font-weight: 800;
    font-size: .9rem;
}

.simple-score-buttons {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
}

.simple-score-button {
    min-height: 42px;
    border: 1px solid var(--judge-line);
    border-radius: 8px;
    color: var(--judge-text);
    background: var(--judge-panel-soft);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.simple-score-button.is-selected {
    color: #fff;
    border-color: var(--teal);
    background: var(--teal);
}

.simple-score small {
    min-height: 18px;
    color: var(--judge-muted);
}

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

@media (max-width: 920px) {
    .judge-roster-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .judge-roster-actions {
        justify-items: start;
    }

    .judge-results-reset-panel {
        align-items: flex-start;
        flex-direction: column;
    }

    .judge-results-reset-actions {
        justify-content: flex-start;
    }

    .site-header,
    .hero,
    .auth-shell,
    .coming-soon-shell,
    .site-settings-panel,
    .site-settings-time-panel,
    .split-section,
    .dashboard-grid,
    .competition-status-panel,
    .member-identifier-panel,
    .judge-entry,
    .photographer-profile-layout,
    .event-detail-layout,
    .directory-stats,
    .member-access-guide-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-membership-meta,
    .member-membership-edit-grid,
    .owner-club-visibility {
        grid-template-columns: 1fr;
    }

    .spotlight-strip {
        display: grid;
    }

    .spotlight-actions {
        justify-content: flex-start;
    }

    .photographer-masonry-gallery {
        column-count: 2;
    }

    .site-header {
        display: grid;
        align-items: start;
    }

    .nav-links {
        justify-content: start;
    }

    .feature-grid,
    .home-feature-boxes,
    .home-facebook-callout,
    .card-grid,
    .card-grid.two,
    .event-card-grid,
    .photographer-grid,
    .avatar-upload,
    .club-about-layout,
    .club-fee-join-layout,
    .club-fee-list,
    .club-feature-layout,
    .edit-form-grid,
    .entry-grid,
    .profile-style-grid,
    .score-grid {
        grid-template-columns: 1fr;
    }

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

    .owner-new-club-upgrade {
        align-items: flex-start;
        flex-direction: column;
    }

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

    .hero {
        min-height: auto;
    }

    .photo-stack {
        min-height: 330px;
    }

    .listing-preview {
        min-height: 420px;
    }

    .judge-methods {
        grid-template-columns: 1fr;
    }

    .judge-entry {
        min-height: auto;
    }

    .judge-roster-entry {
        grid-template-columns: 82px minmax(0, 1fr);
    }

    .judge-roster-group-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .payment-toggle {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .judge-slide-nav {
        grid-template-columns: 1fr;
    }

    .judge-nav-button,
    .judge-nav-button:last-child {
        justify-content: center;
    }

    .judge-image-viewport {
        width: 94%;
        height: 64vh;
        max-height: 64vh;
    }

    .judge-top-meta {
        justify-content: space-between;
        margin-left: 0;
    }

    .simple-result-row,
    .simple-result-form {
        grid-template-columns: 1fr;
    }

    .simple-result-thumb {
        width: min(260px, 100%);
    }

    .dashboard-entry-results {
        grid-template-columns: 1fr;
    }

}

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

    .passkey-panel-heading,
    .passkey-add-row,
    .passkey-list-item {
        align-items: stretch;
        flex-direction: column;
    }

    .passkey-add-row .button {
        width: 100%;
    }

    .passkey-list-actions input {
        width: 100%;
    }

    .passkey-list-actions form {
        justify-content: stretch;
    }

    .passkey-list-actions form .button {
        flex: 0 0 auto;
    }

    .owner-gallery-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-account-meta,
    .dashboard-account-form {
        grid-template-columns: 1fr;
    }

    .competition-form-grid,
    .competition-options,
    .competition-help,
    .competition-help.compact {
        grid-template-columns: 1fr;
    }

    .competition-create-summary {
        grid-template-columns: 38px minmax(0, 1fr) 16px;
        padding: 16px;
    }

    .competition-summary-icon {
        width: 38px;
        height: 38px;
    }

    .competition-create-form,
    .competition-item-body,
    .competition-list-panel {
        padding: 16px;
    }

    .competition-item > summary {
        grid-template-columns: minmax(0, 1fr) 16px;
        padding: 14px;
    }

    .competition-item > summary .list-thumb,
    .competition-manage-label {
        display: none;
    }

    .competition-list-heading {
        align-items: start;
        flex-direction: column;
    }
}

@media (max-width: 620px) {
    main,
    .flash {
        width: min(100% - 20px, 1180px);
    }

    .club-detail-surface {
        padding-right: 10px;
        padding-left: 10px;
    }

    .hero-copy h1,
    .page-head h1,
    .auth-copy h1 {
        font-size: 2.2rem;
        line-height: 1.05;
    }

    .club-profile-page-head.has-club-logo {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 0 14px;
    }

    .news-article-head h1 {
        font-size: 2.1rem;
        line-height: 1.05;
    }

    .metric-row {
        grid-template-columns: 1fr;
    }

    .metric-row span {
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .judge-room-bar,
    .judge-control-strip,
    .filter-form,
    .dashboard-competition-entry-heading,
    .list-item,
    .judge-title-row {
        align-items: stretch;
        flex-direction: column;
    }

    .photographer-entry-grid {
        grid-template-columns: 1fr;
    }

    .photographer-masonry-gallery {
        column-count: 1;
    }

    .photographer-gallery-upload {
        grid-template-columns: 1fr;
    }

    .dashboard-entry-delete-form,
    .dashboard-entry-delete-form .button {
        width: 100%;
    }

    .competition-info-list div {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .entry-list-item form,
    .entry-list-item .button {
        width: 100%;
    }

    .entry-lightbox {
        padding: 0;
    }

    .entry-lightbox-dialog > img {
        max-height: calc(100vh - 150px);
    }

    .entry-lightbox-meta {
        align-items: stretch;
        flex-direction: column;
    }

    .entry-lightbox-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .entry-lightbox .entry-like-form,
    .entry-lightbox .entry-like-button,
    .entry-lightbox .button {
        width: 100%;
    }

    .judge-room {
        padding: 12px 10px 20px;
    }

    .judge-room-title h1 {
        font-size: 2.2rem;
    }

    .judge-image-viewport {
        width: 96%;
        height: 54vh;
        max-height: 54vh;
    }

    .listing-preview {
        min-height: 360px;
        padding: 12px;
    }

    .listing-overlay {
        padding: 16px;
    }

    .spotlight-strip {
        padding: 20px;
    }

    .club-profile-links div {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .competition-requirements-grid {
        grid-template-columns: 1fr;
    }

    .competition-terms-grid {
        grid-template-columns: 1fr;
    }

    .competition-recognition-grid {
        grid-template-columns: 1fr;
    }

    .competition-entry-upload-row {
        grid-template-columns: 1fr;
    }

    .recognition-item-row {
        grid-template-columns: 1fr;
    }

    .filter-form label {
        width: 100%;
    }
}
