.lod-olympus { box-sizing:border-box; max-width:1200px; margin:0 auto; color:#212b39; font:inherit; }
.lod-olympus * { box-sizing:border-box; }
.lod-olympus h1,.lod-olympus h2 { line-height:1.25; }
.lod-intro { margin:0 0 1rem; }
.lod-sort { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:0 0 14px; }
.lod-sort select { min-width:90px; max-width:100%; padding:7px 10px; }
.lod-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:14px; }
.lod-card { min-width:0; padding:17px; border:1px solid #d5dbe4; border-radius:12px; background:#fff; box-shadow:0 2px 8px #1322380c; }
.lod-card h3 { margin:0 0 13px; font-size:1.15rem; overflow-wrap:anywhere; }
.lod-stats,.lod-detail { display:grid; gap:8px; margin:0; }
.lod-stats>div,.lod-detail>div { display:flex; justify-content:space-between; gap:12px; align-items:baseline; }
.lod-stats dt,.lod-detail dt { font-weight:400; }
.lod-stats dd,.lod-detail dd { margin:0; font-weight:700; text-align:right; font-variant-numeric:tabular-nums; }
.lod-stats .lod-primary { padding:7px 9px; border-radius:6px; background:#f0f5fb; font-weight:700; }
.lod-card details { margin-top:14px; border-top:1px solid #e1e5eb; padding-top:10px; }
.lod-card summary { cursor:pointer; font-weight:600; }
.lod-detail { margin-top:11px; font-size:.92em; }
.lod-config { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,255px),1fr)); gap:12px; margin:18px 0; }
.lod-config label { display:flex; flex-direction:column; gap:5px; font-weight:600; }
.lod-config input { width:100%; max-width:none; padding:9px; }
.lod-admin-scroll { width:100%; overflow-x:auto; }
.lod-olympus-admin .lod-admin-table { min-width:720px; }
.lod-admin-table input[type="text"],.lod-admin-table input[type="number"] { width:100%; min-width:125px; }
.lod-admin-table td { vertical-align:middle; }
.lod-success { padding:12px; border-left:4px solid #248447; background:#e7f6e9; }
.lod-warning { padding:12px; border-left:4px solid #ae531d; background:#fff2e2; }
@media(max-width:600px){.lod-cards{grid-template-columns:1fr}.lod-card{padding:14px}.lod-olympus{width:100%;max-width:100%;}.lod-stats>div{gap:8px}}

/* Full-width Divi row on the Olympus management page. */
body.toplevel_page_lod-olympus #wpcontent,
body.toplevel_page_lod-olympus #wpbody,
body.toplevel_page_lod-olympus #wpbody-content,
body.toplevel_page_lod-olympus #wpfooter {
    background:#000000 !important;
}
body.toplevel_page_lod-olympus .lod-olympus-admin { color:#d4d4d4; }
.lod-olympus-admin { width:100%; max-width:1200px; margin-inline:auto; }
.lod-olympus-admin,.lod-olympus-admin * {
    font-family:"Open Sans",sans-serif !important; font-size:16px !important;
    font-weight:400; box-sizing:border-box;
}
.lod-olympus-admin h1 { color:#5ec962 !important; font-size:18px !important; line-height:1.4; }
.lod-olympus-admin .lod-config label,.lod-olympus-admin .lod-import>label { color:#d4d4d4 !important; }
.lod-olympus-admin .lod-control,.lod-olympus-admin .lod-control * {
    font-family:"Open Sans",sans-serif !important; font-size:12px !important;
    font-weight:400 !important; color:#d4d4d4 !important;
}
.lod-olympus-admin .lod-config input,
.lod-olympus-admin .lod-sort select,
.lod-olympus-admin .lod-admin-table input[type="text"],
.lod-olympus-admin .lod-admin-table input[type="number"],
.lod-olympus-admin .lod-import input[type="file"] {
    background:#230000 !important; color:#5ec962 !important;
    border:1px solid #666666 !important; border-radius:4px;
    font-weight:400 !important; height:44px !important;
    min-height:44px !important; max-height:44px !important;
    line-height:22px !important; padding:8px 10px !important;
}
.lod-olympus-admin .lod-config input:focus,
.lod-olympus-admin .lod-sort select:focus,
.lod-olympus-admin .lod-admin-table input:focus,
.lod-olympus-admin .lod-import input:focus { outline:2px solid #5ec962; outline-offset:2px; }
.lod-olympus-admin .lod-admin-table {
    width:100%; border:1px solid #666666 !important;
    border-collapse:collapse; background:#000000; color:#d4d4d4;
}
.lod-olympus-admin .lod-admin-table th,
.lod-olympus-admin .lod-admin-table td {
    border:1px solid #666666 !important; padding:9px;
    background:#000000 !important; color:#d4d4d4;
}
.lod-olympus-admin .lod-admin-table th {
    color:#fff700 !important; font-weight:700 !important;
    text-align:left; white-space:normal;
}
.lod-olympus-admin .lod-admin-table tbody td {
    border-left:0 !important; border-right:0 !important;
    border-top:1px solid #666666 !important;
    border-bottom:1px solid #666666 !important;
}
.lod-olympus-admin .lod-admin-table td.lod-calculated { color:#5ec962 !important; }
.lod-olympus-admin .lod-admin-table tbody tr.lod-excluded td,
.lod-olympus-admin .lod-admin-table tbody tr.lod-excluded td * {
    color:#d4d4d4 !important;
}
.lod-olympus-admin .lod-admin-scroll { margin-top:100px; }
.lod-olympus-admin .lod-config .lod-sort {
    color:#d4d4d4 !important; margin:0; display:flex;
    flex-direction:column; align-items:stretch; gap:5px;
    font-weight:400; min-width:0;
}
.lod-olympus-admin .lod-config .lod-sort select { width:100%; max-width:none; }
.lod-olympus-admin .lod-config .lod-sort-actions {
    grid-column:1 / -1; display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    align-items:end; gap:12px;
}
.lod-olympus-admin .lod-sort-actions .lod-save-button {
    min-height:44px !important;
}
.lod-olympus-admin .lod-sort-actions>button { width:100%; min-height:44px !important; }
.lod-olympus-admin .lod-actions { margin-top:100px; display:flex; flex-wrap:wrap; gap:12px; }
.lod-olympus-admin .lod-archive-box {
    margin-top:24px; padding:16px; border:1px solid #666666;
    color:#d4d4d4; background:#000000;
}
.lod-olympus-admin .lod-archive-box p { margin:0 0 12px; color:#d4d4d4; }
.lod-olympus-admin .lod-admin-table input[type="checkbox"] { accent-color:#5ec962; }
.lod-olympus-admin button.button,
.lod-olympus-admin button.button-primary {
    background:#230000 !important; color:#5ec962 !important;
    border:1px solid #666666 !important; border-radius:4px;
    font-family:"Open Sans",sans-serif !important; font-size:16px !important;
    font-weight:700 !important; line-height:1.4 !important;
    padding:10px 16px !important; height:auto !important;
    box-shadow:none !important; cursor:pointer;
}
.lod-olympus-admin button.button:hover,.lod-olympus-admin button.button:focus {
    background:#380606 !important; color:#5ec962 !important;
}
.lod-olympus-admin button.lod-save-button,
.lod-olympus-admin button.lod-save-button:hover,
.lod-olympus-admin button.lod-save-button:focus {
    background:#5ec962 !important; color:#000000 !important;
    border-color:#666666 !important;
}
.lod-olympus-admin button.lod-add-button,
.lod-olympus-admin button.lod-add-button:hover,
.lod-olympus-admin button.lod-add-button:focus {
    background:#fff700 !important; color:#000000 !important;
    border-color:#666666 !important;
}
.lod-olympus-admin button.lod-save-button:hover,
.lod-olympus-admin button.lod-add-button:hover { filter:brightness(1.12); }
.lod-olympus-admin button.lod-reset-button,
.lod-olympus-admin button.lod-reset-button:hover,
.lod-olympus-admin button.lod-reset-button:focus {
    background:#3d2b00 !important; color:#fff700 !important; border-color:#fff700 !important;
}
.lod-olympus-admin button.lod-clear-button,
.lod-olympus-admin button.lod-clear-button:hover,
.lod-olympus-admin button.lod-clear-button:focus {
    background:#510b0b !important; color:#ffffff !important; border-color:#da5959 !important;
}
.lod-olympus-admin button.lod-save-button:focus-visible,
.lod-olympus-admin button.lod-add-button:focus-visible {
    outline:2px solid #ffffff !important; outline-offset:2px;
}
.lod-olympus-admin button.lod-archive-button,
.lod-olympus-admin button.lod-archive-button:hover,
.lod-olympus-admin button.lod-archive-button:focus {
    background:#303030 !important; color:#fff700 !important;
    border-color:#fff700 !important;
}
.lod-olympus-admin .lod-import {
    margin-top:22px; padding:16px; border:1px solid #666666;
    display:flex; flex-wrap:wrap; align-items:center; gap:12px;
}
.lod-olympus-admin .lod-import>label { width:100%; }
.lod-olympus-admin .lod-import-form,
.lod-olympus-admin .lod-export-form {
    display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:0;
}
.lod-olympus-admin .lod-import p { width:100%; margin:0; color:#d4d4d4; }
.lod-olympus-admin .lod-import input[type="file"] { max-width:100%; }
.lod-olympus-admin .lod-success,.lod-olympus-admin .lod-warning { border:1px solid #666666; }
@media(max-width:600px){
    .lod-olympus-admin .lod-admin-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
    .lod-olympus-admin .lod-config { grid-template-columns:1fr; }
    .lod-olympus-admin .lod-config .lod-sort-actions { grid-template-columns:1fr; gap:20px; }
    .lod-olympus-admin .lod-sort-actions .lod-save-button { justify-self:start; }
}

/* Olympus player page: retain the website theme's page background. */
body:has(.lod-olympus-public) .et-l--body .et_pb_post_content {
    width:100% !important; max-width:1200px !important;
    margin-inline:auto !important;
}
body:has(.lod-olympus-public) .et-l--post .et_pb_row {
    width:100% !important; max-width:1200px !important;
    margin-inline:auto !important;
}
body:has(.lod-olympus-public) .et-l--post .et_pb_code {
    padding-inline:0 !important;
}
/* The existing Divi description sits directly before this shortcode module. */
.et-l--post .et_pb_text:has(+ .et_pb_code .lod-olympus-public) {
    display:none !important;
}
.lod-olympus-public,
.lod-olympus-public * { font-family:"Open Sans",sans-serif !important; box-sizing:border-box; }
.lod-olympus-public { width:100%; max-width:1200px; padding-inline:14px; color:#d4d4d4 !important; font-size:16px; }
.lod-olympus-public .lod-description { color:#d4d4d4 !important; font-size:16px; margin:0 0 4px !important; line-height:1.5; }
.lod-olympus-public .lod-description-heading { color:#5ec962 !important; font-size:22px !important; font-weight:400 !important; }
.lod-olympus-public .lod-history-selector {
    margin:0 0 4px !important; color:#d4d4d4;
}
.lod-olympus-public .lod-history-selector select {
    min-height:44px; padding:8px 10px; background:#230000 !important;
    color:#5ec962 !important; border:1px solid #666666 !important;
    border-radius:4px; font-size:16px !important;
    width:min(100%,480px); max-width:100%;
}
.lod-olympus-public .lod-history-banner { color:#fff700 !important; margin:0 0 12px; }
.lod-olympus-public .lod-intro { margin:0 0 32px; }
.lod-olympus-public .lod-intro,
.lod-olympus-public .lod-intro strong { color:#d4d4d4 !important; }
.lod-olympus-public .lod-pool-overview {
    display:grid; grid-template-columns:1fr; gap:14px;
    margin:0 0 10px;
}
.lod-olympus-public .lod-pool {
    min-width:0; padding:12px 14px; background:#230000;
    border:1px solid #666666; border-radius:4px;
    color:#d4d4d4 !important; overflow-wrap:anywhere;
}
.lod-olympus-public .lod-pool strong { color:#fff700 !important; }
.lod-olympus-public .lod-pool-note { margin:0 0 16px; color:#d4d4d4 !important; font-size:16px; }
.lod-olympus-public .lod-sort { color:#d4d4d4 !important; margin-top:32px; }
.lod-olympus-public .lod-sort select {
    background:#230000 !important; color:#5ec962 !important;
    border:1px solid #666666 !important; border-radius:4px;
    min-height:44px; font-size:16px !important;
}
.lod-olympus-public .lod-card {
    background:#000000 !important; color:#d4d4d4 !important;
    border:1px solid #666666 !important; box-shadow:none;
}
.lod-olympus-public .lod-card h3 { color:#fff700 !important; font-size:16px; font-weight:700 !important; }
.lod-olympus-public .lod-card.lod-excluded h3 { color:#d4d4d4 !important; }
.lod-olympus-public .lod-stats>div.lod-primary {
    display:grid; grid-template-columns:minmax(0,165px) max-content;
    justify-content:start; align-items:center; gap:12px; min-height:44px;
    padding:8px 10px; background:#230000 !important;
    border:1px solid #666666; border-radius:4px;
}
.lod-olympus-public .lod-stats dt { min-width:0; color:#d4d4d4 !important; }
.lod-olympus-public .lod-stats dd { color:#5ec962 !important; white-space:nowrap; text-align:left; }
.lod-olympus-public .lod-card details { border-top:1px solid #666666; }
.lod-olympus-public .lod-card summary { color:#d4d4d4 !important; }
.lod-olympus-public .lod-detail dt { color:#d4d4d4 !important; }
.lod-olympus-public .lod-detail dd { color:#5ec962 !important; }
@media(max-width:600px){
    .lod-olympus-public .lod-stats>div.lod-primary { gap:8px; }
    .lod-olympus-public .lod-pool-overview { grid-template-columns:1fr; }
}
@media(max-width:360px){
    .lod-olympus-public .lod-stats>div.lod-primary { grid-template-columns:minmax(0,1fr) auto; }
}

/* Paid fragments: highlight the complete management row immediately. */
.lod-olympus-admin .lod-admin-table tbody tr.lod-paid > td {
    background:#123b22 !important;
}
.lod-olympus-admin .lod-admin-table tbody tr.lod-paid > td:first-child {
    box-shadow:inset 5px 0 #5ec962;
}
.lod-olympus-admin .lod-paid-label { white-space:nowrap; }

/* Explicit contrast in both WordPress and Divi management views. */
.lod-olympus.lod-olympus-admin p.lod-success,
.lod-olympus.lod-olympus-admin p.lod-success * {
    color:#12351f !important; background:#e7f6e9 !important;
    font-weight:600 !important; text-shadow:none !important; opacity:1 !important;
}
.lod-olympus.lod-olympus-admin p.lod-warning,
.lod-olympus.lod-olympus-admin p.lod-warning * {
    color:#542900 !important; background:#fff2e2 !important;
    font-weight:600 !important; text-shadow:none !important; opacity:1 !important;
}
.lod-olympus.lod-olympus-admin p.lod-success { border:1px solid #248447 !important; border-left-width:5px !important; padding:12px 16px !important; }
.lod-olympus.lod-olympus-admin p.lod-warning { border:1px solid #ae531d !important; border-left-width:5px !important; padding:12px 16px !important; }
.lod-olympus-admin .lod-coin-summary { padding:12px 16px; border:1px solid #666; background:#17251b !important; color:#eef6ef !important; }
.lod-olympus-admin .lod-coin-summary strong { color:#a9edaa !important; }
.lod-olympus-admin .lod-name-field { display:flex; align-items:center; gap:8px; }
.lod-olympus-admin .lod-name-field input { flex:1; }
.lod-olympus .lod-position { display:inline-block; min-width:2.5em; flex-shrink:0; font-variant-numeric:tabular-nums; }

/* Selected event requirements on the public player page. */
.lod-olympus-public .lod-event-requirements {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
    gap:12px; margin:0 0 18px; padding:0;
}
.lod-olympus-public .lod-event-requirements > div {
    min-width:0; padding:12px 14px; background:#230000 !important;
    border:1px solid #666666; border-radius:4px;
}
.lod-olympus-public .lod-event-requirements dt {
    margin:0 0 6px; color:#d4d4d4 !important; overflow-wrap:anywhere;
}
.lod-olympus-public .lod-event-requirements dd {
    margin:0; color:#5ec962 !important; font-weight:700;
    font-variant-numeric:tabular-nums;
}
