:root {
    color-scheme: light;
    --bg: #f5f6f3;
    --surface: #ffffff;
    --surface-subtle: #f8f9f7;
    --surface-muted: #eef1ed;
    --text: #1e2824;
    --text-muted: #66716c;
    --text-faint: #8a938f;
    --line: #dfe4e0;
    --line-strong: #cbd3ce;
    --forest: #18352d;
    --forest-2: #24493e;
    --forest-soft: #e7efeb;
    --moss: #7e9a65;
    --moss-soft: #edf2e8;
    --warning: #8a641f;
    --warning-soft: #fbf2dd;
    --danger: #a8473f;
    --danger-soft: #f8e9e6;
    --info: #3f6874;
    --info-soft: #e9f0f2;
    --shadow: 0 1px 2px rgba(18, 35, 29, .04), 0 8px 24px rgba(18, 35, 29, .05);
    --shadow-large: 0 18px 48px rgba(18, 35, 29, .09);
    --radius-small: 6px;
    --radius: 10px;
    --radius-large: 14px;
    --page: 1220px;
    --font: "Segoe UI Variable Text", "Segoe UI", Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); scroll-behavior: smooth; }
body {
    min-height: 100vh;
    margin: 0;
    color: var(--text);
    background: var(--bg);
    font-family: var(--font);
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body::selection { color: #fff; background: var(--forest-2); }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
form { margin: 0; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--text); line-height: 1.2; }

/* Header */
.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    min-height: 64px;
    padding: 0 max(20px, calc((100vw - var(--page)) / 2));
    color: #fff;
    background: var(--forest);
    border-bottom: 1px solid rgba(255,255,255,.09);
}
.brand-wrap { display: inline-flex; align-items: center; gap: 10px; width: fit-content; }
.brand-mark {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    color: var(--forest);
    background: #c9daa9;
    border-radius: 8px;
}
.brand-mark img { width: 100%; height: 100%; object-fit: cover; }
.brand-copy { display: grid; gap: 0; }
.brand { font-size: .95rem; font-weight: 750; letter-spacing: -.01em; }
.tagline { color: rgba(255,255,255,.54); font-size: .61rem; font-weight: 600; }
.primary-nav { display: flex; align-items: stretch; height: 64px; }
.primary-nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 0 15px;
    color: rgba(255,255,255,.68);
    font-size: .8rem;
    font-weight: 650;
}
.primary-nav a:hover { color: #fff; }
.primary-nav a.active { color: #fff; }
.primary-nav a.active::after {
    content: "";
    position: absolute;
    left: 15px;
    right: 15px;
    bottom: 0;
    height: 2px;
    background: #b8c99a;
}
.header-actions { justify-self: end; display: flex; align-items: center; }
.header-logout, .header-login {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 7px 12px;
    color: #fff;
    background: transparent;
    border: 1px solid rgba(255,255,255,.23);
    border-radius: 7px;
    font-size: .77rem;
    font-weight: 650;
}
.header-logout:hover, .header-login:hover { background: rgba(255,255,255,.08); }

.container { width: min(var(--page), calc(100% - 36px)); margin: 28px auto 64px; }
.site-footer {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    width: min(var(--page), calc(100% - 36px));
    margin: 0 auto;
    padding: 22px 0 30px;
    color: var(--text-faint);
    border-top: 1px solid var(--line);
    font-size: .72rem;
}
.site-footer span:first-child { color: var(--text); font-weight: 700; }
.site-footer small { color: var(--text-faint); font-weight: 500; }

/* Typography */
.eyebrow, .section-index {
    display: inline-block;
    color: var(--text-muted);
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .04em;
}
.eyebrow.light, .section-index.light { color: rgba(255,255,255,.62); }
.section-meta { color: var(--text-muted); font-size: .8rem; font-weight: 600; }
.section-block { margin-top: 34px; }
.section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}
.section-heading h2 { margin: 5px 0 0; font-size: 1.45rem; font-weight: 700; letter-spacing: -.025em; }
.back-link {
    display: inline-flex;
    align-items: center;
    margin-bottom: 13px;
    color: var(--forest-2);
    font-size: .8rem;
    font-weight: 650;
}
.back-link::before { content: "‹"; margin-right: 6px; font-size: 1.2rem; line-height: .8; }

/* Buttons */
.button, button:not(.header-logout):not(.icon-button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 40px;
    padding: 9px 14px;
    color: #fff;
    background: var(--forest-2);
    border: 1px solid var(--forest-2);
    border-radius: 7px;
    font-size: .8rem;
    font-weight: 650;
    line-height: 1.2;
    transition: background .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.button:hover, button:not(.header-logout):not(.icon-button):hover {
    background: var(--forest);
    border-color: var(--forest);
    box-shadow: 0 5px 14px rgba(24,53,45,.14);
}
.button-primary { color: #fff !important; background: var(--forest-2) !important; border-color: var(--forest-2) !important; }
.button-primary:hover { background: var(--forest) !important; border-color: var(--forest) !important; }
.button-secondary, button.secondary {
    color: var(--text) !important;
    background: var(--surface) !important;
    border-color: var(--line-strong) !important;
    box-shadow: none !important;
}
.button-secondary:hover, button.secondary:hover { background: var(--surface-subtle) !important; border-color: #abb7b0 !important; }
.button-tertiary {
    color: var(--forest-2) !important;
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}
.button-tertiary:hover { color: var(--forest) !important; background: var(--forest-soft) !important; }
.button-dark { color: #fff !important; background: var(--forest) !important; border-color: var(--forest) !important; }
.button-xl { min-height: 48px !important; padding: 12px 17px !important; font-size: .84rem !important; }
.button.small { min-height: 34px; padding: 7px 10px; font-size: .74rem; }
.button.full, .full { width: 100%; }
.button-disabled { cursor: not-allowed; color: var(--text-faint) !important; background: var(--surface-muted) !important; border-color: var(--line) !important; box-shadow: none !important; }
button:disabled { opacity: .68; cursor: wait; }
.icon-button {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 0;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--line-strong);
    border-radius: 7px;
}
.form-actions { display: flex; justify-content: flex-start; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; }

/* Forms */
.stack { display: grid; gap: 15px; }
.compact-stack { gap: 11px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.form-grid-large { gap: 18px; }
label { display: grid; gap: 6px; color: #46534e; font-size: .73rem; font-weight: 650; }
input, select, textarea {
    width: 100%;
    min-width: 0;
    padding: 10px 11px;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--line-strong);
    border-radius: 7px;
    outline: none;
    transition: border-color .14s ease, box-shadow .14s ease;
}
input, select { min-height: 42px; }
textarea { resize: vertical; line-height: 1.5; }
input:focus, select:focus, textarea:focus { border-color: #739386; box-shadow: 0 0 0 3px rgba(36,73,62,.1); }
input::placeholder, textarea::placeholder { color: #a1aaa6; }
.input-with-unit { position: relative; }
.input-with-unit input { padding-right: 42px; }
.input-with-unit b { position: absolute; right: 11px; top: 50%; transform: translateY(-50%); color: var(--text-faint); font-size: .72rem; font-weight: 650; }
.form-hint { margin: -2px 0 0; color: var(--text-muted); font-size: .71rem; line-height: 1.5; }

/* Surfaces */
.panel, .quick-card, .event-card, .challenge-ticket, .photo-card, .submission-facts, .decision-card, .security-note, .submit-bar, .calendar-info-card, .calendar-event-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-large);
    box-shadow: var(--shadow);
}
.panel { padding: 21px; }
.panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 17px; }
.panel-header h2, .quick-card h2, .ranking-panel-head h2, .decision-head h2, .workbench-head h2 { margin: 5px 0 5px; font-size: 1.35rem; font-weight: 700; letter-spacing: -.02em; }
.panel-header p, .quick-card p, .decision-head p { margin: 0; color: var(--text-muted); font-size: .84rem; }
.quick-card { padding: 20px; }
.quick-card > p { margin-bottom: 17px; }

/* Feedback and status */
.flash {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    padding: 12px 14px;
    color: var(--info);
    background: var(--info-soft);
    border: 1px solid #d2e0e4;
    border-radius: var(--radius);
    font-size: .84rem;
    font-weight: 600;
}
.flash.success { color: var(--forest-2); background: var(--forest-soft); border-color: #ceddd6; }
.flash.error { color: var(--danger); background: var(--danger-soft); border-color: #ebcbc7; }
.flash-symbol { display: grid; place-items: center; width: 22px; height: 22px; flex: 0 0 auto; color: #fff; background: currentColor; border-radius: 50%; font-size: .68rem; }
.badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 4px 7px;
    border-radius: 5px;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .02em;
}
.badge.open, .badge.accepted { color: #2c6655; background: #e4f0eb; }
.badge.pending { color: var(--warning); background: var(--warning-soft); }
.badge.closed, .badge.rejected { color: var(--danger); background: var(--danger-soft); }
.status-line { display: inline-flex; align-items: center; gap: 7px; color: var(--forest-2); font-size: .74rem; font-weight: 650; }
.status-line i { width: 7px; height: 7px; border-radius: 50%; background: #6d8f58; }

/* Page headers */
.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    min-height: 150px;
    padding: 28px 30px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-left: 4px solid var(--forest-2);
    border-radius: var(--radius-large);
    box-shadow: var(--shadow);
}
.page-header h1 { margin: 5px 0 8px; font-size: clamp(2rem, 4vw, 3rem); font-weight: 720; letter-spacing: -.04em; }
.page-header p { max-width: 720px; margin: 0; color: var(--text-muted); font-size: .92rem; }
.control-status {
    display: grid;
    gap: 12px;
    min-width: 190px;
    padding: 15px 16px;
    background: var(--surface-subtle);
    border: 1px solid var(--line);
    border-radius: var(--radius);
}
.control-date { display: grid; color: var(--text-muted); font-size: .71rem; }
.control-date strong { color: var(--text); font-size: 1.05rem; }
.event-detail-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.review-hero-meta { display: grid; justify-items: end; gap: 9px; color: var(--text-muted); font-size: .83rem; }

/* Metrics */
.metric-ribbon {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 14px 0 30px;
}
.metric-ribbon article {
    padding: 15px 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
}
.metric-ribbon article span { color: var(--text-muted); font-size: .68rem; font-weight: 650; }
.metric-ribbon article strong { display: block; margin: 5px 0 1px; font-size: 1.65rem; line-height: 1.05; letter-spacing: -.03em; }
.metric-ribbon article small { color: var(--text-faint); font-size: .69rem; }

/* Admin dashboard */
.workspace-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .75fr); gap: 18px; align-items: start; }
.workspace-side { display: grid; gap: 18px; }
.panel-command { padding: 0; overflow: hidden; }
.panel-command .panel-header { padding: 20px 21px 17px; margin: 0; border-bottom: 1px solid var(--line); }
.queue-count { display: grid; place-items: center; min-width: 30px; height: 30px; color: #fff; background: var(--forest-2); border-radius: 6px; font-size: .74rem; font-weight: 700; }
.submission-list { display: grid; }
.submission-item {
    display: grid;
    grid-template-columns: 72px 1fr auto auto;
    gap: 15px;
    align-items: center;
    padding: 14px 17px;
    border-bottom: 1px solid var(--line);
}
.submission-item:last-child { border-bottom: 0; }
.submission-item:hover { background: var(--surface-subtle); }
.submission-time { display: grid; color: var(--text-muted); font-size: .68rem; }
.submission-time strong { color: var(--text); font-size: .91rem; }
.submission-person { display: flex; align-items: center; gap: 10px; min-width: 0; }
.avatar { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 auto; color: #fff; background: #53766a; border-radius: 50%; font-size: .72rem; font-weight: 700; }
.submission-person > div, .rank-person > div { display: grid; min-width: 0; }
.submission-person strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .84rem; }
.submission-person small, .rank-person small { color: var(--text-muted); font-size: .69rem; }
.submission-catch { display: grid; justify-items: end; color: var(--text-muted); font-size: .69rem; }
.submission-catch strong { color: var(--text); font-size: .84rem; }
.submission-action { color: var(--forest-2); font-size: .75rem; font-weight: 650; }
.zero-state { padding: 38px 24px; color: var(--text-muted); text-align: center; }
.zero-state h3 { margin: 10px 0 4px; font-size: 1rem; }
.zero-state p { margin: 0; font-size: .83rem; }
.zero-icon { display: grid; place-items: center; width: 36px; height: 36px; margin: 0 auto; color: var(--forest-2); background: var(--forest-soft); border-radius: 50%; font-weight: 700; }
.wide { grid-column: 1 / -1; }

/* Event cards */
.event-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.participant-events { grid-template-columns: 1fr; }
.event-card { display: flex; flex-direction: column; min-height: 218px; padding: 19px; }
.event-topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.event-main { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin: 21px 0 18px; }
.event-main h3 { margin: 0; font-size: 1.25rem; font-weight: 700; letter-spacing: -.02em; }
.event-location { margin: 5px 0 0; color: var(--text-muted); font-size: .78rem; }
.event-date { display: grid; flex: 0 0 auto; justify-items: end; color: var(--text-muted); font-size: .7rem; }
.event-date strong { color: var(--text); font-size: .88rem; }
.species-line { display: flex; flex-wrap: wrap; gap: 7px; }
.species-line span { padding: 5px 8px; color: #42524c; background: var(--surface-muted); border-radius: 5px; font-size: .7rem; font-weight: 600; }
.event-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: auto; padding-top: 17px; border-top: 1px solid var(--line); color: var(--text-muted); font-size: .71rem; }
.event-footer > div { display: flex; align-items: center; gap: 6px; }

/* Participant */
.identity-ticket {
    display: grid;
    min-width: 230px;
    padding: 15px 18px;
    color: var(--forest);
    background: var(--moss-soft);
    border: 1px solid #d9e3cf;
    border-radius: var(--radius);
}
.identity-ticket span, .identity-ticket small { color: #5d7252; font-size: .66rem; font-weight: 650; }
.identity-ticket strong { margin: 2px 0; font-size: 1.6rem; letter-spacing: .02em; }

/* Tables */
.table-wrap { overflow: auto; }
table { width: 100%; border-collapse: collapse; background: var(--surface); }
th, td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; white-space: nowrap; }
th { color: var(--text-muted); background: var(--surface-subtle); font-size: .67rem; font-weight: 700; }
td { font-size: .79rem; }
td small { color: var(--text-muted); }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: #fbfcfa; }
.empty-state { color: var(--text-muted); text-align: center; }
.fish-entry { display: inline-flex; gap: 7px; align-items: center; }
.rank-person { display: flex; align-items: center; gap: 9px; }
.small-avatar { width: 31px; height: 31px; font-size: .65rem; }

/* Settings */
.settings-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 18px; margin-bottom: 18px; align-items: start; }
.rule-stack { display: grid; gap: 8px; }
.premium-rule-row {
    display: grid;
    grid-template-columns: minmax(135px, 1fr) repeat(3, minmax(86px, .65fr)) auto;
    gap: 9px;
    align-items: end;
    padding: 11px;
    background: var(--surface-subtle);
    border: 1px solid var(--line);
    border-radius: var(--radius);
}
.rule-identity { display: flex; align-items: center; gap: 9px; min-height: 42px; }
.rule-identity span { display: grid; place-items: center; width: 27px; height: 27px; color: var(--forest-2); background: var(--forest-soft); border-radius: 6px; font-size: .69rem; font-weight: 700; }
.rule-identity strong { font-size: .82rem; }
.new-rule { border-style: dashed; }

/* Fang submission */
.challenge-ticket {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) auto minmax(300px, 1.3fr);
    align-items: center;
    gap: 24px;
    margin: 14px 0;
    padding: 19px 21px;
}
.challenge-label { display: grid; }
.challenge-label span { color: var(--text-muted); font-size: .68rem; }
.challenge-label strong { margin-top: 2px; font-size: .9rem; }
.challenge-code { padding: 9px 15px; color: #fff; background: var(--forest); border-radius: 7px; font-size: 1.5rem; font-weight: 750; letter-spacing: .12em; }
.challenge-instruction p { margin: 7px 0 0; color: var(--text-muted); font-size: .78rem; }
.challenge-id { display: inline-flex; padding: 4px 7px; color: var(--forest-2); background: var(--forest-soft); border-radius: 5px; font-size: .72rem; font-weight: 700; }
.process-line { display: grid; grid-template-columns: 1fr 22px 1fr 22px 1fr; align-items: center; margin: 14px 0 18px; }
.process-line article { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.process-line article > span { display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 auto; color: var(--forest-2); background: var(--forest-soft); border-radius: 50%; font-size: .7rem; font-weight: 700; }
.process-line article div { display: grid; }
.process-line article strong { font-size: .79rem; }
.process-line article small { color: var(--text-muted); font-size: .66rem; }
.process-line > i { height: 1px; background: var(--line-strong); }
.submit-form { display: grid; gap: 16px; }
.security-label { padding: 5px 8px; color: var(--forest-2); background: var(--forest-soft); border-radius: 5px; font-size: .68rem; font-weight: 650; }
.upload-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.file-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 330px;
    padding: 17px;
    overflow: hidden;
    cursor: pointer;
    background: var(--surface-subtle);
    border: 1px dashed #b9c5be;
    border-radius: var(--radius-large);
    box-shadow: none;
}
.file-card:hover { border-color: #718e82; background: #f6f8f5; }
.file-card input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.file-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.file-number { display: grid; place-items: center; width: 28px; height: 28px; color: #fff; background: var(--forest-2); border-radius: 6px; font-size: .72rem; font-weight: 700; }
.file-required { color: var(--text-muted); font-size: .67rem; font-weight: 650; }
.file-placeholder { display: grid; justify-items: center; align-content: center; flex: 1; gap: 9px; padding: 18px 8px; text-align: center; }
.file-placeholder strong { font-size: 1rem; }
.file-placeholder > span:not(.file-visual) { max-width: 360px; color: var(--text-muted); font-size: .75rem; }
.file-placeholder em { color: var(--forest-2); font-size: .76rem; font-style: normal; font-weight: 650; }
.file-visual { position: relative; display: flex; align-items: flex-end; justify-content: center; width: 112px; height: 72px; margin-bottom: 4px; color: var(--forest-2); background: var(--forest-soft); border-radius: 10px; }
.ruler-visual i { width: 1px; height: 27px; margin: 0 8px; background: #7a958a; }
.ruler-visual i:nth-child(even) { height: 18px; }
.identity-visual { align-items: center; justify-content: space-around; }
.identity-visual i { width: 27px; height: 27px; border: 2px solid #6b897d; border-radius: 50%; }
.identity-visual b { padding: 4px 6px; color: var(--forest); background: #d8e5c8; border-radius: 4px; font-size: .65rem; }
.file-preview { display: none; width: 100%; height: 230px; margin: 12px 0 9px; object-fit: contain; background: #e7ebe8; border-radius: 8px; }
.video-preview { display: none; }
.single-upload { grid-template-columns: minmax(0, 760px); }
.photo-card video { display: block; width: 100%; max-height: 560px; background: #101b17; }
.file-card.has-preview .file-placeholder { display: none; }
.file-card.has-preview .file-preview { display: block; }
.file-name { overflow: hidden; color: var(--text-muted); font-size: .69rem; text-overflow: ellipsis; white-space: nowrap; }
.security-note { padding: 14px 16px; margin-top: 14px; background: var(--surface-subtle); box-shadow: none; }
.security-note strong { font-size: .82rem; }
.security-note p { margin: 3px 0 0; color: var(--text-muted); font-size: .75rem; }
.submit-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; }
.submit-bar span { color: var(--text-muted); font-size: .7rem; }
.submit-bar strong { display: block; margin-top: 2px; font-size: .88rem; }

/* Ranking */
.ranking-refresh { display: flex; align-items: center; gap: 13px; }
.ranking-refresh > div { display: grid; justify-items: end; }
.ranking-refresh span { color: var(--text-muted); font-size: .68rem; }
.ranking-refresh strong { color: var(--text); font-size: .86rem; }
.top-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 14px 0 18px; }
.top-three-card { display: grid; gap: 13px; padding: 17px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.top-three-card.leader { border-color: #b8c8ad; background: #f6f8f2; }
.top-three-rank { color: var(--text-muted); font-size: .69rem; font-weight: 650; }
.top-three-card .rank-person h2 { margin: 0; font-size: .98rem; }
.top-three-points { font-size: 1.4rem; letter-spacing: -.02em; }
.top-three-points small { color: var(--text-muted); font-size: .68rem; font-weight: 600; }
.ranking-panel { padding: 0; overflow: hidden; }
.ranking-panel-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; padding: 20px 21px 16px; border-bottom: 1px solid var(--line); }
.ranking-table th small { display: block; margin-top: 2px; font-size: .58rem; font-weight: 500; text-transform: none; }
.ranking-table tr.prize td { background: #fbfcf9; }
.position-number { display: grid; place-items: center; width: 31px; height: 31px; color: var(--text-muted); background: var(--surface-muted); border-radius: 6px; font-weight: 700; }
.position-number.top { color: var(--forest); background: #dfe9d6; }
.length-value { display: inline-flex; min-width: 48px; justify-content: center; padding: 4px 7px; color: #3e534b; background: var(--surface-muted); border-radius: 5px; font-weight: 650; }
.empty-length { color: #a7afab; }
.total { background: #f7f9f6; }
.total strong { display: block; font-size: .92rem; }
.total small { font-size: .61rem; }

/* Review */
.review-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .65fr); gap: 18px; margin-top: 18px; align-items: start; }
.review-media-column { display: grid; gap: 18px; }
.photo-workbench { padding: 20px; background: #202a27; border-radius: var(--radius-large); }
.workbench-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 14px; color: rgba(255,255,255,.6); font-size: .72rem; }
.workbench-head h2 { color: #fff; }
.photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.photo-card { margin: 0; overflow: hidden; background: #17201d; border-color: rgba(255,255,255,.1); box-shadow: none; }
.photo-card img { width: 100%; height: 360px; object-fit: contain; background: #0e1311; }
.photo-card figcaption { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 13px; color: #fff; border-top: 1px solid rgba(255,255,255,.1); }
.photo-card figcaption div { display: grid; }
.photo-card figcaption span, .photo-card figcaption small { color: rgba(255,255,255,.5); font-size: .64rem; }
.photo-card figcaption strong { font-size: .78rem; }
.integrity-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.integrity-item { display: flex; align-items: flex-start; gap: 9px; padding: 10px 11px; border-radius: 7px; font-size: .76rem; }
.integrity-item.check { color: var(--forest-2); background: var(--forest-soft); }
.integrity-item.warning { color: var(--warning); background: var(--warning-soft); }
.integrity-item.info { color: var(--info); background: var(--info-soft); }
.integrity-icon { display: grid; place-items: center; width: 20px; height: 20px; flex: 0 0 auto; border: 1px solid currentColor; border-radius: 50%; font-size: .59rem; font-weight: 700; }
.review-sidebar { display: grid; gap: 18px; }
.submission-facts { padding: 18px; color: #fff; background: var(--forest); border-color: var(--forest); }
.submission-facts dl { display: grid; margin: 13px 0 0; }
.submission-facts dl > div { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.submission-facts dl > div:last-child { border-bottom: 0; }
.submission-facts dt { color: rgba(255,255,255,.5); font-size: .66rem; }
.submission-facts dd { margin: 0; font-size: .72rem; text-align: right; }
.code-value { color: #d9e5bf; font-weight: 700; }
.decision-card { padding: 19px; }

/* Calendar */
.calendar-layout { display: grid; grid-template-columns: minmax(0, 1fr) 285px; gap: 18px; margin-top: 18px; align-items: start; }
.calendar-main { padding: 0; overflow: hidden; }
.calendar-toolbar { display: grid; grid-template-columns: 38px 1fr 38px; align-items: center; gap: 14px; padding: 17px 18px; border-bottom: 1px solid var(--line); }
.calendar-toolbar > div { text-align: center; }
.calendar-toolbar h2 { margin: 2px 0 0; font-size: 1.2rem; }
.calendar-nav { display: grid; place-items: center; width: 36px; height: 36px; color: var(--forest-2); background: var(--surface); border: 1px solid var(--line-strong); border-radius: 7px; font-size: 1.25rem; }
.calendar-nav:hover { background: var(--forest-soft); }
.calendar-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); background: var(--surface-subtle); border-bottom: 1px solid var(--line); }
.calendar-weekdays span { padding: 8px; color: var(--text-muted); font-size: .64rem; font-weight: 650; text-align: center; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-day { min-height: 118px; padding: 9px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day.outside { background: #fafbfa; }
.calendar-day.outside .calendar-day-number { opacity: .38; }
.calendar-day.today { background: #f7faf5; box-shadow: inset 0 0 0 2px #b8c9ae; }
.calendar-day-number { display: flex; align-items: center; justify-content: space-between; color: var(--text-muted); font-size: .7rem; }
.calendar-day-number small { color: var(--forest-2); font-size: .57rem; font-weight: 650; }
.calendar-day-events { display: grid; gap: 5px; margin-top: 8px; }
.calendar-event-chip { display: grid; gap: 1px; padding: 5px 6px; color: #2f4d43; background: var(--forest-soft); border-left: 2px solid #759283; border-radius: 4px; font-size: .59rem; }
.calendar-event-chip strong { font-size: .58rem; }
.calendar-event-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event-chip i { color: #6b7e76; font-size: .54rem; font-style: normal; }
.calendar-info-card { padding: 18px; }
.calendar-info-card h2 { margin: 5px 0 8px; font-size: 1.15rem; }
.calendar-info-card p { margin: 0; color: var(--text-muted); font-size: .79rem; }
.calendar-event-list { display: grid; gap: 11px; }
.calendar-event-card { display: grid; grid-template-columns: 80px 1fr minmax(190px, auto); gap: 18px; align-items: center; padding: 17px; }
.event-calendar-date { display: grid; justify-items: center; padding: 10px 8px; background: var(--surface-muted); border-radius: 8px; }
.event-calendar-date span { color: var(--forest-2); font-size: .63rem; font-weight: 700; text-transform: uppercase; }
.event-calendar-date strong { font-size: 1.7rem; line-height: 1.05; }
.event-calendar-date small { color: var(--text-muted); font-size: .65rem; }
.event-calendar-topline { display: flex; align-items: center; gap: 9px; color: var(--text-muted); font-size: .7rem; }
.event-calendar-content h3 { margin: 7px 0 3px; font-size: 1.15rem; }
.event-calendar-content p { margin: 0 0 10px; color: var(--text-muted); font-size: .78rem; }
.event-calendar-booking { display: grid; justify-items: end; gap: 4px; }
.event-calendar-booking > span { color: var(--text-muted); font-size: .65rem; }
.event-calendar-booking > strong { font-size: .9rem; }
.event-calendar-actions { display: flex; gap: 6px; margin-top: 8px; }

/* Login */
.login-page { background: var(--bg); }
.login-page .site-header { position: absolute; inset: 0 0 auto 0; background: transparent; border-color: rgba(255,255,255,.12); }
.login-page .primary-nav, .login-page .header-actions, .login-page .site-footer { display: none; }
.login-page .container { width: 100%; margin: 0; }
.login-shell { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(420px, .85fr); min-height: 100vh; }
.login-stage {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    min-height: 100vh;
    padding: 120px max(50px, 7vw) 70px;
    color: #fff;
    background: var(--forest);
}
.login-intro { position: relative; z-index: 1; width: min(680px, 100%); }
.login-intro h1 { max-width: 650px; margin: 9px 0 18px; color: #fff; font-size: clamp(2.8rem, 5.4vw, 5.2rem); font-weight: 700; line-height: 1.03; letter-spacing: -.055em; }
.login-intro > p { max-width: 590px; margin: 0; color: rgba(255,255,255,.7); font-size: 1rem; line-height: 1.65; }
.login-benefits { display: grid; max-width: 610px; margin-top: 38px; border-top: 1px solid rgba(255,255,255,.14); }
.login-benefits article { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.login-benefits article > span { color: #b9cc9b; font-size: .7rem; font-weight: 700; }
.login-benefits article div { display: grid; }
.login-benefits strong { font-size: .85rem; }
.login-benefits small { margin-top: 2px; color: rgba(255,255,255,.58); font-size: .72rem; }
.login-watermark { position: absolute; right: 4%; bottom: -9%; width: min(520px, 58%); overflow: hidden; border-radius: 28px; opacity: .1; }
.login-watermark img { width: 100%; height: auto; }
.login-panel { display: grid; place-items: center; min-height: 100vh; padding: 110px 7vw 60px; background: var(--bg); }
.login-panel-inner { width: min(400px, 100%); padding: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-large); box-shadow: var(--shadow-large); }
.login-heading { margin-bottom: 25px; }
.login-heading h2 { margin: 6px 0 8px; font-size: 2rem; font-weight: 700; letter-spacing: -.035em; }
.login-heading p { margin: 0; color: var(--text-muted); font-size: .85rem; }
.login-form { gap: 14px; }
.login-form input { min-height: 48px; }
.demo-access { margin-top: 18px; color: var(--text-muted); font-size: .71rem; }
.demo-access summary { cursor: pointer; font-weight: 650; }
.demo-access > div { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; align-items: center; margin-top: 7px; padding: 8px 9px; background: var(--surface-muted); border-radius: 6px; }
.demo-access code { color: var(--text); font-size: .67rem; }

/* Error */
.error-card { max-width: 650px; margin: 8vh auto; padding: 36px; text-align: center; }
.error-symbol { display: grid; place-items: center; width: 46px; height: 46px; margin: 0 auto 17px; color: var(--danger); background: var(--danger-soft); border-radius: 50%; font-weight: 750; }
.error-card h1 { margin: 7px 0 10px; font-size: 1.8rem; }
.error-card p { color: var(--text-muted); }
.error-card .actions { justify-content: center; margin-top: 22px; }

/* Responsive */
@media (max-width: 1080px) {
    .workspace-grid, .settings-grid, .review-layout, .calendar-layout { grid-template-columns: 1fr; }
    .workspace-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .login-shell { grid-template-columns: 1fr; }
    .login-stage { min-height: 650px; }
    .login-panel { min-height: auto; padding: 54px 24px; }
    .calendar-side { display: none; }
}

@media (max-width: 820px) {
    .site-header { grid-template-columns: 1fr auto; padding: 0 14px; }
    .primary-nav { display: none; }
    .container, .site-footer { width: min(100%, calc(100% - 24px)); }
    .page-header { align-items: flex-start; flex-direction: column; min-height: 0; padding: 23px; }
    .control-status, .identity-ticket { width: 100%; min-width: 0; }
    .review-hero-meta { justify-items: start; }
    .event-detail-actions { justify-content: flex-start; }
    .metric-ribbon { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .event-grid { grid-template-columns: 1fr; }
    .workspace-side { grid-template-columns: 1fr; }
    .challenge-ticket { grid-template-columns: 1fr; gap: 13px; }
    .challenge-code { width: fit-content; }
    .process-line { grid-template-columns: 1fr; gap: 8px; }
    .process-line > i { display: none; }
    .upload-grid, .photo-grid { grid-template-columns: 1fr; }
    .top-three { grid-template-columns: 1fr; }
    .premium-rule-row { grid-template-columns: 1fr 1fr; }
    .rule-identity { grid-column: 1 / -1; }
    .premium-rule-row button { width: 100%; }
    .calendar-event-card { grid-template-columns: 70px 1fr; }
    .event-calendar-booking { grid-column: 1 / -1; justify-items: start; padding-top: 12px; border-top: 1px solid var(--line); }
    .ranking-refresh { width: 100%; justify-content: space-between; }
    .ranking-refresh > div { justify-items: start; }
}

@media (max-width: 580px) {
    .site-header { min-height: 60px; }
    .tagline { display: none; }
    .container { margin-top: 18px; }
    .form-grid { grid-template-columns: 1fr; }
    .metric-ribbon { gap: 8px; }
    .metric-ribbon article { padding: 13px; }
    .metric-ribbon article strong { font-size: 1.45rem; }
    .section-heading { align-items: flex-start; flex-direction: column; }
    .event-main { flex-direction: column; gap: 10px; }
    .event-date { justify-items: start; }
    .event-footer { align-items: flex-start; flex-direction: column; }
    .event-footer > div { width: 100%; flex-wrap: wrap; }
    .submission-item { grid-template-columns: 54px 1fr auto; }
    .submission-catch { display: none; }
    .submit-bar { align-items: stretch; flex-direction: column; }
    .submit-bar .button { width: 100%; }
    .login-stage { min-height: 610px; padding: 100px 24px 55px; }
    .login-intro h1 { font-size: 2.65rem; }
    .login-panel { padding: 38px 16px; }
    .login-panel-inner { padding: 22px; }
    .calendar-day { min-height: 88px; padding: 6px; }
    .calendar-event-chip span, .calendar-event-chip i { display: none; }
    .calendar-event-card { grid-template-columns: 60px 1fr; gap: 12px; padding: 13px; }
    .event-calendar-actions { flex-wrap: wrap; }
    .photo-card img { height: 280px; }
    .site-footer { flex-direction: column; gap: 4px; }
}

/* v1.0 rule engine and administration */
.detail-header { min-height: 150px; }
.header-button-row { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.section-nav { position: sticky; top: 68px; z-index: 20; display: flex; gap: 4px; margin: 16px 0; padding: 6px; overflow-x: auto; background: rgba(246,248,246,.94); border: 1px solid var(--line); border-radius: 9px; backdrop-filter: blur(12px); }
.section-nav a { padding: 8px 11px; color: var(--text-muted); border-radius: 6px; font-size: .72rem; font-weight: 650; white-space: nowrap; }
.section-nav a:hover { color: var(--forest); background: var(--surface); }
.section-panel { margin-top: 16px; }
.form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.check-row { display: flex; grid-template-columns: none; align-items: flex-start; gap: 9px; padding: 10px 11px; color: var(--text); background: var(--surface-muted); border: 1px solid var(--line); border-radius: 7px; font-size: .75rem; font-weight: 500; }
.check-row input { width: 16px; height: 16px; min-height: 0; margin: 1px 0 0; flex: 0 0 auto; accent-color: var(--forest-2); }
.metric-text { max-width: 230px; font-size: .93rem !important; line-height: 1.2; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr); gap: 18px; margin-top: 18px; align-items: start; }
.prose-panel { padding: 24px; }
.prose-panel h3 { margin: 24px 0 8px; font-size: 1rem; }
.rule-copy { color: var(--text-muted); font-size: .86rem; line-height: 1.7; white-space: pre-wrap; }
.fact-list { display: grid; margin: 12px 0 0; }
.fact-list > div { display: grid; grid-template-columns: 1fr auto; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.fact-list dt { color: var(--text-muted); font-size: .72rem; }
.fact-list dd { margin: 0; font-size: .75rem; font-weight: 650; text-align: right; }
.rule-summary-list, .compact-list { display: grid; gap: 7px; margin-top: 12px; }
.rule-summary-list article, .compact-list article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.rule-summary-list article:last-child, .compact-list article:last-child { border-bottom: 0; }
.rule-summary-list article { display: grid; }
.rule-summary-list span, .compact-list small { color: var(--text-muted); font-size: .7rem; }
.species-editor { display: grid; gap: 12px; }
.species-editor-row { position: relative; padding: 15px; background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 9px; }
.species-editor-title { display: grid; grid-template-columns: 30px minmax(160px, 320px); align-items: center; gap: 9px; }
.species-editor-title > span { display: grid; place-items: center; width: 28px; height: 28px; color: var(--text-muted); background: var(--surface-muted); border-radius: 6px; font-size: .66rem; font-weight: 700; }
.species-editor-title input { font-size: .9rem; font-weight: 700; }
.editor-grid { display: grid; grid-template-columns: repeat(5, minmax(115px, 1fr)); gap: 9px; }
.delete-form { position: absolute; top: 15px; right: 15px; }
.inline-create { display: grid; grid-template-columns: minmax(150px, 1.5fr) repeat(4, minmax(95px, .7fr)) auto; gap: 8px; align-items: end; margin-top: 12px; }
.inline-status { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(120px, 1fr) auto; gap: 6px; }
.button-danger { color: var(--danger) !important; background: var(--danger-soft) !important; border-color: #e7b9b4 !important; }
.button-stack { display: flex; flex-wrap: wrap; gap: 8px; }
.participant-header { min-height: 150px; }
.participant-id { min-width: 240px; padding: 16px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }
.participant-id span, .participant-id small { display: block; color: var(--text-muted); font-size: .66rem; }
.participant-id strong { display: block; margin: 3px 0; color: var(--forest); font-size: 1.55rem; letter-spacing: .06em; }
.participant-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 14px 0; }
.participant-summary > div { padding: 9px; background: var(--surface-muted); border-radius: 6px; }
.participant-summary span { display: block; color: var(--text-muted); font-size: .62rem; }
.participant-summary strong { display: block; margin-top: 2px; font-size: .8rem; }
.requirement-alert { margin: 10px 0; padding: 9px 11px; color: #7a5411; background: var(--warning-soft); border-radius: 6px; font-size: .73rem; }
.valuation-label, .requirement-ok, .requirement-missing { display: inline-flex; padding: 4px 7px; border-radius: 5px; font-size: .67rem; font-weight: 650; }
.valuation-label, .requirement-ok { color: var(--forest-2); background: var(--forest-soft); }
.requirement-missing { color: var(--warning); background: var(--warning-soft); }
.ranked-catches { display: grid; gap: 5px; min-width: 290px; }
.ranked-catches > span { display: grid; grid-template-columns: minmax(90px, 1fr) auto auto auto; gap: 6px; align-items: center; padding: 6px 8px; background: var(--surface-muted); border-radius: 6px; font-size: .7rem; }
.ranked-catches em { color: var(--forest-2); font-style: normal; font-weight: 700; }
.ranked-catches small { color: var(--text-muted); }
.ranked-catches .muted { display: block; color: var(--text-muted); }
.top-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.top-three article { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.top-three article div { display: grid; }
.top-three article small { color: var(--text-muted); }
.top-rank { display: grid; place-items: center; width: 34px; height: 34px; background: var(--forest-soft); border-radius: 50%; color: var(--forest); font-weight: 700; }
.expanded-ranking th:nth-child(3) { min-width: 340px; }
.challenge-ticket > div { min-width: 0; }
.challenge-ticket > div:last-child p { margin: 5px 0 0; color: var(--text-muted); font-size: .74rem; }

@media (max-width: 1180px) {
    .editor-grid { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
    .inline-create { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
    .detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
    .section-nav { top: 60px; }
    .form-grid-3, .check-grid, .editor-grid { grid-template-columns: 1fr 1fr; }
    .inline-create, .inline-status { grid-template-columns: 1fr; }
    .participant-summary, .top-three { grid-template-columns: 1fr 1fr; }
    .delete-form { position: static; margin-top: 8px; }
    .ranked-catches { min-width: 240px; }
}
@media (max-width: 580px) {
    .form-grid-3, .check-grid, .editor-grid, .participant-summary, .top-three { grid-template-columns: 1fr; }
    .section-nav { margin-inline: -12px; border-radius: 0; }
    .participant-id { width: 100%; min-width: 0; }
}

.badge.submitted, .badge.in_review, .badge.question { color: var(--warning); background: var(--warning-soft); }
.badge.corrected, .badge.active, .badge.finalized { color: #2c6655; background: #e4f0eb; }
.badge.paused { color: #695c25; background: #f4efd8; }
.badge.blocked, .badge.disqualified { color: var(--danger); background: var(--danger-soft); }
.question-response { display: grid; gap: 6px; margin-top: 8px; min-width: 220px; }
.question-response textarea { min-height: 58px; font-size: .72rem; }
.button:disabled, button:disabled { cursor: not-allowed; opacity: .5; box-shadow: none; }

/* Public Catchboard platform */
:root { --navy: #071f27; --aqua: #2fd6d1; --aqua-dark: #0aa6a5; }
.marketing-page { background: #fff; }
.marketing-page .container { width: 100%; max-width: none; margin: 0; }
.marketing-page .site-header { position: absolute; inset: 0 0 auto; background: rgba(5,29,37,.96); }
.marketing-page .site-footer { width: 100%; max-width: none; margin: 0; padding: 32px max(24px, calc((100vw - var(--page))/2)); color: rgba(255,255,255,.68); background: var(--navy); border: 0; }
.button-aqua { color: #06242a !important; background: var(--aqua) !important; border-color: var(--aqua) !important; }
.button-outline-light { color: #fff !important; background: rgba(0,0,0,.12) !important; border-color: rgba(68,230,224,.85) !important; }
.button-soft { color: #087c7c !important; background: #dcf7f5 !important; border-color: #dcf7f5 !important; }
.marketing-hero { position: relative; min-height: 520px; display: flex; align-items: center; padding: 105px max(28px, calc((100vw - var(--page))/2)) 45px; color: #fff; background: var(--navy) url('/static/hero-lake.png') center 48%/cover no-repeat; }
.hero-shade { position:absolute; inset:0; background: linear-gradient(90deg, rgba(3,23,29,.92) 0%, rgba(3,23,29,.72) 40%, rgba(3,23,29,.1) 74%); }
.hero-content { position:relative; z-index:1; width:min(620px,100%); }
.hero-content h1 { margin: 7px 0 0; color:#fff; font-size:clamp(3.7rem,7vw,6.5rem); letter-spacing:-.065em; }
.hero-content h2 { max-width: 580px; margin:0 0 14px; color:#fff; font-size:clamp(1.65rem,3vw,2.45rem); }
.hero-content > p { max-width:570px; color:rgba(255,255,255,.82); font-size:1.05rem; }
.trust-row { display:flex; flex-wrap:wrap; justify-content:space-between; gap:18px; margin-top:48px; padding-top:20px; border-top:1px solid rgba(255,255,255,.22); color:rgba(255,255,255,.82); font-size:.72rem; text-transform:uppercase; }
.benefit-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; width:min(var(--page),calc(100% - 40px)); margin:28px auto 44px; }
.benefit-grid article { padding:24px 18px; text-align:center; border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); }
.benefit-grid i { display:grid; place-items:center; width:54px; height:54px; margin:0 auto 16px; color:var(--aqua-dark); background:#dff8f6; border-radius:50%; font-size:1.3rem; font-style:normal; }
.benefit-grid h3 { font-size:.95rem; }.benefit-grid p { margin:0; color:var(--text-muted); font-size:.76rem; }
.home-events { width:min(var(--page),calc(100% - 40px)); margin:0 auto 44px; }.home-events .section-heading p{margin:4px 0 0;color:var(--text-muted)}
.text-link { color:#087f7f; font-size:.78rem; font-weight:700; }.public-event-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.public-event-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.event-image,.event-thumb{position:relative;background:url('/static/hero-lake.png') center/cover no-repeat}.event-image{height:145px}.event-image>.badge{position:absolute;right:10px;top:10px}.event-date-tile{position:absolute;left:10px;top:10px;display:grid;justify-items:center;min-width:50px;padding:7px;color:#182823;background:#fff;border-radius:7px;font-size:.58rem;font-weight:800;text-transform:uppercase;box-shadow:var(--shadow)}.event-date-tile b{font-size:1.45rem;line-height:1}.event-date-tile small{font-size:.55rem}.event-card-body{padding:15px}.event-card-body h3{margin:0 0 8px}.event-card-body p{margin:4px 0;color:var(--text-muted);font-size:.74rem}.event-card-body .button{margin-top:12px}
.platform-cta{display:grid;grid-template-columns:1.1fr .9fr;min-height:310px;color:#fff;background:#073a40}.platform-cta>div:last-child{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:38px max(30px,calc((100vw - var(--page))/2)) 38px 50px}.platform-image{background:url('/static/cta-pike.png') center/cover no-repeat}.platform-cta h2{margin:7px 0 12px;color:#fff;font-size:2rem}.platform-cta p{max-width:540px;color:rgba(255,255,255,.78)}
.events-heading{padding:10px 0}.events-heading h1{margin:4px 0;font-size:2.5rem}.events-heading p{color:var(--text-muted)}.event-search{display:grid;grid-template-columns:1fr auto;gap:8px;max-width:760px}.filter-chips{display:flex;gap:8px;margin:14px 0 22px;overflow-x:auto}.filter-chips a{padding:7px 12px;white-space:nowrap;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:.72rem}.filter-chips a.active{color:#fff;background:var(--aqua-dark);border-color:var(--aqua-dark)}.event-list-modern{display:grid;gap:13px}.event-row-modern{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:20px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow)}.event-thumb{height:130px;border-radius:8px}.event-row-modern h2{margin:6px 0}.event-row-modern p{margin:3px 0;color:var(--text-muted);font-size:.76rem}
.legal-notice{max-height:230px;overflow:auto;padding:13px;background:#f3f8f7;border:1px solid #cde0dc;border-radius:8px;color:#43514d;font-size:.72rem}.legal-notice p{margin:7px 0}.legal-record{display:grid;gap:3px;padding:12px;color:#31564c;background:var(--forest-soft);border-radius:7px;font-size:.73rem}.legal-record span{color:var(--text-muted)}.message-history,.notification-list{display:grid;gap:8px;margin:16px 0}.message-history article,.notification-list article{padding:12px;background:var(--surface-subtle);border-left:3px solid var(--line-strong);border-radius:6px}.notification-list article.unread{border-left-color:var(--aqua-dark);background:#ebfaf8}.message-history p,.notification-list p{margin:2px 0 6px}.message-history small,.notification-list small,.notification-list article>span{color:var(--text-muted);font-size:.65rem}.notification-list h3{margin:3px 0;font-size:.88rem}.notification-count{display:inline-grid;place-items:center;min-width:24px;height:24px;color:#fff;background:var(--danger);border-radius:50%;font-size:.7rem}.mobile-bottom-nav{display:none}
@media(max-width:900px){.benefit-grid{grid-template-columns:repeat(2,1fr)}.benefit-grid article:last-child{grid-column:1/-1}.public-event-grid{grid-template-columns:repeat(2,1fr)}.event-row-modern{grid-template-columns:130px 1fr}.event-row-modern>.button{grid-column:1/-1}.platform-cta{grid-template-columns:1fr}.platform-image{min-height:260px}.platform-cta>div:last-child{padding:34px 24px}}
@media(max-width:580px){body{padding-bottom:62px}.site-header{position:sticky!important;background:var(--navy)!important}.marketing-page .container{margin:0}.marketing-hero{min-height:600px;padding:88px 22px 28px;background-position:64% center}.hero-shade{background:linear-gradient(180deg,rgba(3,23,29,.45),rgba(3,23,29,.94) 64%)}.hero-content h1{font-size:3.5rem}.hero-content h2{font-size:1.65rem}.hero-content .actions{display:grid}.trust-row{margin-top:32px}.benefit-grid{grid-template-columns:1fr;margin-top:14px}.benefit-grid article:last-child{grid-column:auto;text-align:left}.benefit-grid article{display:grid;grid-template-columns:54px 1fr;column-gap:12px;text-align:left}.benefit-grid i{grid-row:1/3}.public-event-grid{grid-template-columns:1fr}.home-events{width:calc(100% - 24px)}.platform-image{min-height:220px}.platform-cta h2{font-size:1.7rem}.event-search{grid-template-columns:1fr}.event-row-modern{grid-template-columns:102px 1fr;padding:8px}.event-thumb{height:118px}.event-row-modern h2{font-size:1rem}.event-row-modern .species-line{display:none}.mobile-bottom-nav{position:fixed;z-index:80;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);min-height:60px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(0,0,0,.08)}.mobile-bottom-nav a{display:grid;place-items:center;padding:6px;color:var(--text-muted);font-size:1rem}.mobile-bottom-nav span{font-size:.62rem}.site-footer{margin-bottom:0!important}.marketing-page .site-footer{padding:28px 20px}.marketing-page .site-header .header-actions{display:none}}
.marketing-hero { background-image: url('/static/hero-lake.jpg'); }
.event-image, .event-thumb { background-image: url('/static/hero-lake.jpg'); }
.platform-image { background-image: url('/static/cta-pike.jpg'); }

/* Event detail, participant cockpit and guided mobile submission */
.event-mobile-facts,.mobile-tournament-cockpit,.ranking-mobile-list{display:none}
.detail-tabs{display:flex;gap:4px;margin:0 0 18px;border-bottom:1px solid var(--line)}
.detail-tabs button{flex:1;padding:13px 8px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--text-muted);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}
.detail-tabs button.active{color:var(--aqua-dark);border-bottom-color:var(--aqua-dark)}
.detail-tab-panels{display:grid}.detail-tab-panels>[hidden]{display:none!important}
.ranking-visibility-card{position:relative;display:grid;gap:4px;margin-top:20px;padding:15px 72px 15px 16px;background:#eaf9f7;border-radius:10px}.ranking-visibility-card span{color:var(--text-muted);font-size:.75rem}.toggle-state{position:absolute;right:14px;top:50%;translate:0 -50%;padding:7px 10px;border-radius:999px;font-size:.65rem}.toggle-state.on{color:#fff;background:#13a79c}.toggle-state.off{color:#6e7975;background:#d8e0de}
.submission-steps{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 18px}.submission-steps button{position:relative;display:grid;justify-items:center;gap:5px;border:0;background:transparent;color:var(--text-muted);font:inherit;font-size:.7rem}.submission-steps button:after{content:"";position:absolute;z-index:-1;top:14px;left:50%;width:100%;height:2px;background:var(--line)}.submission-steps button:last-child:after{display:none}.submission-steps b{display:grid;place-items:center;width:30px;height:30px;background:#fff;border:1px solid var(--line-strong);border-radius:50%}.submission-steps .active b,.submission-steps .complete b{color:#fff;background:var(--aqua-dark);border-color:var(--aqua-dark)}.wizard-panel[hidden]{display:none!important}.wizard-actions{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.submission-review{display:grid;gap:0;margin:0}.submission-review div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.submission-review dt{color:var(--text-muted)}.submission-review dd{margin:0;font-weight:700;text-align:right}
.ranking-mobile-list{gap:6px}.ranking-mobile-list article{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--line)}.ranking-mobile-list article.current-user{background:#e7f8f6;border-radius:8px}.ranking-mobile-list article>div{display:grid}.ranking-mobile-list small{color:var(--text-muted);font-size:.65rem}.ranking-mobile-list article>b{font-size:.83rem}

@media(max-width:580px){
  .event-detail-page .back-link{margin-top:10px}.event-detail-hero{margin:0 -12px;padding:28px 18px;background:linear-gradient(180deg,rgba(3,23,29,.28),rgba(3,23,29,.88)),url('/static/hero-lake.jpg') center/cover;color:#fff;border-radius:0}.event-detail-hero h1,.event-detail-hero p{color:#fff}.event-detail-hero .header-button-row{width:100%}.event-detail-hero .button{width:100%}
  .event-mobile-facts{display:grid;gap:11px;margin:0 -12px;padding:18px;border:0;border-radius:0}.event-mobile-facts div{display:grid;grid-template-columns:24px 1fr;align-items:center;font-size:.76rem}
  .detail-tabs{position:sticky;z-index:20;top:64px;margin:0 -12px 12px;padding:0 8px;background:#fff}.detail-tab-panels .panel{border-radius:8px}.detail-tab-panels{display:block}
  .challenge-ticket{display:none}.submit-page .page-header{padding-top:8px}.submit-page .section-panel{padding:18px 14px}.submit-page .file-card{min-height:285px}.wizard-actions .button{flex:1}
  .mobile-tournament-cockpit{display:grid;gap:12px;margin:0 -12px 20px;padding:18px 14px 22px;color:#fff;background:linear-gradient(145deg,#063943,#082c34)}.cockpit-title{display:flex;justify-content:space-between;align-items:center}.cockpit-title>div{display:grid}.cockpit-title span,.cockpit-title small{color:rgba(255,255,255,.7);font-size:.68rem}.cockpit-title>a{position:relative;color:#fff;font-size:1.5rem}.cockpit-title>a b{position:absolute;right:-7px;top:-5px;display:grid;place-items:center;width:17px;height:17px;background:#ef554e;border-radius:50%;font-size:.55rem}.countdown-card{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.05)}.countdown-card>span{font-size:2rem}.countdown-card div{display:grid}.countdown-card small{color:rgba(255,255,255,.7)}.cockpit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.cockpit-grid a{display:grid;place-items:center;min-height:90px;padding:12px;color:var(--navy);background:#fff;border-radius:9px;text-align:center}.cockpit-grid b{position:relative;font-size:1.35rem}.cockpit-grid span{font-size:.7rem;font-weight:700}.cockpit-grid em{position:absolute;right:-13px;top:-8px;display:grid;place-items:center;width:18px;height:18px;color:#fff;background:#ef554e;border-radius:50%;font-size:.55rem;font-style:normal}.angler-page>.page-header,.angler-page>.section-block{display:none}
  .ranking-page .top-three{display:none}.ranking-mobile-list{display:grid}.ranking-page .ranking-panel>.table-wrap{display:none}.ranking-page .ranking-panel{padding:8px}.ranking-page .ranking-panel .panel-header{padding:10px}
}

.mobile-latest-catches{display:none}
.ranking-view-tabs{display:flex;margin:0 0 14px;border-bottom:1px solid var(--line);background:#fff}
.ranking-view-tabs a{flex:1;padding:13px 8px;color:var(--text-muted);border-bottom:3px solid transparent;font-size:.72rem;font-weight:700;text-align:center}
.ranking-view-tabs a.active{color:var(--aqua-dark);border-bottom-color:var(--aqua-dark)}

@media(max-width:580px){
  .participant-bottom-nav{grid-template-columns:repeat(4,1fr)}
  .participant-bottom-nav a{gap:1px;font-size:1.05rem}
  .participant-bottom-nav a b{font-size:1.05rem;line-height:1}
  .participant-bottom-nav a.active{color:var(--aqua-dark)}
  .participant-bottom-nav a.active:before{content:"";position:absolute;top:0;width:36px;height:3px;background:var(--aqua-dark);border-radius:0 0 3px 3px}
  .participant-bottom-nav a{position:relative}
  .mobile-latest-catches{display:block;margin:-6px -4px 18px;padding:16px;background:#fff;border-radius:10px;box-shadow:var(--shadow)}
  .mobile-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  .mobile-section-title h2{margin:0;font-size:1.05rem}
  .mobile-section-title a{color:var(--aqua-dark);font-size:.7rem;font-weight:700}
  .latest-catch-list{display:grid;gap:9px}
  .latest-catch-list article{display:grid;grid-template-columns:86px 1fr auto;align-items:center;gap:11px;padding:8px;border:1px solid var(--line);border-radius:8px}
  .latest-catch-list img,.catch-media-placeholder{width:86px;height:66px;object-fit:cover;background:linear-gradient(145deg,#d7efec,#0c5a61);border-radius:6px}
  .catch-media-placeholder{display:grid;place-items:center;color:#fff;font-size:1.3rem}
  .latest-catch-list article>div:nth-child(2){display:grid;align-content:center}
  .latest-catch-list article strong{font-size:.78rem}.latest-catch-list article b{font-size:.92rem}.latest-catch-list article small{color:var(--text-muted);font-size:.63rem}
  .latest-catch-list .badge{align-self:start;font-size:.56rem}
  .desktop-participations{display:none}
  #fanghistorie{scroll-margin-top:78px}
  .ranking-view-tabs{position:sticky;z-index:18;top:64px;margin:0 -12px 12px}
  .ranking-mobile-list{display:grid;gap:6px}
  .ranking-mobile-list details{overflow:hidden;border-bottom:1px solid var(--line);background:#fff}
  .ranking-mobile-list details.current-user{background:#e7f8f6;border-radius:8px}
  .ranking-mobile-list summary{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:12px;cursor:pointer;list-style:none}
  .ranking-mobile-list summary::-webkit-details-marker{display:none}
  .ranking-mobile-list summary>div{display:grid}.ranking-mobile-list summary small{color:var(--text-muted);font-size:.65rem}.ranking-mobile-list summary>b{font-size:.83rem}
  .ranking-mobile-list details[open] summary{border-bottom:1px solid var(--line)}
  .mobile-catch-breakdown{display:grid;padding:8px 12px 12px;background:rgba(5,93,95,.035)}
  .mobile-catch-breakdown article{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
  .mobile-catch-breakdown article span{display:grid}.mobile-catch-breakdown article small{color:var(--text-muted);font-size:.6rem}.mobile-catch-breakdown article em{color:var(--aqua-dark);font-size:.7rem;font-style:normal;font-weight:800}
  .mobile-rank-meta{display:grid;gap:3px;padding-top:10px;color:var(--text-muted);font-size:.62rem}
}

/* Feedback release 1.1.7 */
.account-card{max-width:560px;margin:36px auto;padding:28px}.account-card h1{margin:.35rem 0 .6rem}.admin-account-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-account-actions form{margin:0}.catch-media-link{display:inline-flex;align-items:center;justify-content:center;margin-top:7px;padding:6px 9px;border:1px solid #b8ded9;border-radius:8px;background:#effbf9;color:#087f78!important;font-size:.68rem!important;font-style:normal!important;font-weight:700;text-decoration:none}.mobile-catch-breakdown article{grid-template-columns:minmax(0,1fr) auto auto}.mobile-catch-breakdown .catch-media-link{grid-column:1/-1;justify-self:start}
@media(max-width:720px){.site-header{min-height:72px}.brand{font-size:1.25rem}.brand-mark{width:42px;height:42px}.container{padding-left:12px;padding-right:12px}.panel,.quick-card{border-radius:14px}.page-header h1{font-size:1.7rem}.button-xl{min-height:54px;font-size:1rem}.mobile-bottom-nav{box-shadow:0 -1px 0 rgba(11,50,63,.08)}.admin-account-actions{width:100%}.account-card{margin:16px 0;padding:20px}}
