/* Shared ISOK admin skin; existing layouts and component behaviour stay intact. */
.isok-admin-shell {
    --isok-bg: #0f172a;
    --isok-surface: #1e293b;
    --isok-surface-soft: #172033;
    --isok-input: #111c30;
    --isok-border: #334155;
    --isok-text: #f1f5f9;
    --isok-muted: #aebbd0;
    --isok-primary: #3b82f6;
    --isok-primary-hover: #2563eb;
    --isok-accent: #10b981;
    --isok-warning: #f59e0b;
    --isok-danger: #ef4444;
    background: var(--isok-bg);
    color: var(--isok-text);
    color-scheme: var(--isok-color-scheme, dark);
    font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
    min-height: 100vh;
    margin-bottom: 0;
    padding-bottom: 0;
    display: flex;
    flex-direction: column;
}
.isok-admin-shell .isok-navigation {
    width: 100%;
    margin: 0 0 18px;
    background: var(--isok-surface);
    border-color: var(--isok-border);
    box-shadow: 0 4px 18px var(--isok-shadow, #02061720);
    color: var(--isok-text);
}
.isok-admin-shell .isok-navigation-label { padding-top: 15px; padding-bottom: 9px; color: var(--isok-text); font-size: 16px; letter-spacing: -.02em; }
.isok-admin-shell .isok-brand-icon { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: #3b82f620; color: var(--isok-blue-ink, #60a5fa); }
.isok-admin-shell .isok-admin-badge { display: inline-flex; padding: 3px 8px; border-radius: 20px; background: linear-gradient(135deg, #3b82f6, #8b5cf6); font-size: 9px; letter-spacing: .07em; text-transform: uppercase; color: #fff; }
.isok-admin-shell .isok-navigation-label > a { color: var(--isok-muted); font-weight: 500; }
.isok-admin-shell .isok-navigation-label > a:hover { color: var(--isok-ink, #fff); }
.isok-admin-shell .isok-navigation-links { padding-top: 2px; padding-bottom: 12px; gap: 4px; scrollbar-color: #475569 transparent; }
.isok-admin-shell .isok-navigation-links a { color: var(--isok-muted); border-radius: 7px; font-weight: 550; }
.isok-admin-shell .isok-navigation-links a:hover, .isok-admin-shell .isok-navigation-links a:focus-visible { color: var(--isok-ink, #fff); background: var(--isok-shade-soft, #ffffff0a); }
.isok-admin-shell .isok-navigation-links a.is-active { color: var(--isok-blue-ink, #93c5fd); background: #3b82f61f; }
.isok-admin-shell .isok-app { width: 100%; flex: 1; margin: 0 auto; color: var(--isok-text); }
.isok-admin-shell .isok-legacy-page > .container, .isok-admin-shell .isok-legacy-page > .container-fluid { max-width: none; padding-left: 0; padding-right: 0; }
.isok-admin-shell :is(h1,h2,h3,h4,h5,h6,.btn,legend), .isok-admin-shell .table .thead-dark th { font-family: inherit; }
.isok-admin-shell .isok-app :is(h1,h2,h3,h4,h5,h6), .isok-admin-shell .isok-page-heading h1 { color: var(--isok-text); }
.isok-admin-shell .isok-page-heading { margin: 0 0 20px; padding: 12px 0 20px; border-bottom: 1px solid var(--isok-border); }
.isok-admin-shell .isok-page-heading h1 { margin: 7px 0 10px; font-size: 30px; font-weight: 750; letter-spacing: -.025em; line-height: 1.25; }
.isok-admin-shell .isok-page-heading p { color: var(--isok-muted); }
.isok-admin-shell .isok-eyebrow { color: var(--isok-blue-ink, #93c5fd); }
.isok-admin-shell :is(.isok-muted,.isok-section-heading p) { color: var(--isok-muted); }
.isok-admin-shell :is(.isok-panel,.isok-kpis>div,.isok-contest-card) { background: var(--isok-surface); border-color: var(--isok-border); border-radius: 12px; box-shadow: none; }
.isok-admin-shell .isok-kpis > div { position: relative; overflow: hidden; padding: 20px 22px; }
.isok-admin-shell .isok-kpis > div::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--isok-primary); }
.isok-admin-shell .isok-kpis > div:nth-child(2)::before { background: var(--isok-accent); }
.isok-admin-shell .isok-kpis > div:nth-child(3)::before { background: #8b5cf6; }
.isok-admin-shell .isok-kpis > div:nth-child(4)::before { background: var(--isok-warning); }
.isok-admin-shell .isok-kpis span, .isok-admin-shell .isok-kpis small { color: var(--isok-muted); }
.isok-admin-shell .isok-kpis strong { color: var(--isok-blue-ink, #93c5fd); }
.isok-admin-shell .isok-kpis > div:nth-child(2) strong { color: var(--isok-green-ink, #6ee7b7); }
.isok-admin-shell .isok-kpis > div:nth-child(3) strong { color: var(--isok-blue-ink, #c4b5fd); }
.isok-admin-shell .isok-kpis > div:nth-child(4) strong { color: var(--isok-amber-ink, #fcd34d); }
.isok-admin-shell .isok-button { background: var(--isok-primary); border-color: var(--isok-primary); border-radius: 8px; }
.isok-admin-shell .isok-button:hover, .isok-admin-shell .isok-button:focus-visible { background: var(--isok-primary-hover); border-color: var(--isok-primary-hover); }
.isok-admin-shell .isok-button-secondary, .isok-admin-shell .isok-button-light { background: transparent; border-color: var(--isok-line, #475569); color: var(--isok-ink, #dbe5f3); }
.isok-admin-shell .isok-button-secondary:hover, .isok-admin-shell .isok-button-light:hover { color: var(--isok-ink, #fff); border-color: var(--isok-primary); background: #3b82f61f; }
.isok-admin-shell .isok-contest-card { color: var(--isok-blue-ink, #93c5fd); }
.isok-admin-shell .isok-contest-card:hover { color: var(--isok-blue-ink, #bfdbfe); border-color: #3b82f680; box-shadow: none; }
.isok-admin-shell .isok-contest-card p { color: var(--isok-muted); }
.isok-admin-shell .isok-contest-icon { color: var(--isok-blue-ink, #93c5fd); background: #3b82f61f; }
.isok-admin-shell .isok-tool-grid > a { background: var(--isok-surface-soft); border-color: var(--isok-border); color: var(--isok-text); }
.isok-admin-shell .isok-tool-grid > a:hover { background: #3b82f61a; border-color: #3b82f680; }
.isok-admin-shell .isok-tool-grid > a > i { color: var(--isok-blue-ink, #93c5fd); }
.isok-admin-shell .isok-tool-grid span { color: var(--isok-muted); }
.isok-admin-shell .isok-toolbar label, .isok-admin-shell .isok-participant-range > legend, .isok-admin-shell .isok-search, .isok-admin-shell .isok-host-choice > label, .isok-admin-shell .isok-add-form > label { color: var(--isok-ink, #cbd5e1); }
.isok-admin-shell .isok-app select, .isok-admin-shell .isok-app input[type=number], .isok-admin-shell .isok-app input[type=search] { background: var(--isok-input); color: var(--isok-text); border-color: var(--isok-border); }
.isok-admin-shell .isok-app input:focus, .isok-admin-shell .isok-app select:focus { outline-color: var(--isok-blue-ink, #60a5fa); }
.isok-admin-shell .isok-generate-form small { color: var(--isok-muted); }
.isok-admin-shell .isok-notice { background: #f59e0b12; color: var(--isok-amber-ink, #fcd34d); border-color: #f59e0b40; border-left: 3px solid var(--isok-warning); }
.isok-admin-shell .isok-view-tabs { border-color: var(--isok-border); }
.isok-admin-shell .isok-view-tabs a, .isok-admin-shell .isok-view-tabs > span { color: var(--isok-muted); }
.isok-admin-shell .isok-view-tabs a.is-active { color: var(--isok-blue-ink, #93c5fd); border-color: var(--isok-primary); }
.isok-admin-shell .isok-empty p { color: var(--isok-muted); }
.isok-admin-shell .isok-empty > i { color: var(--isok-blue-ink, #60a5fa); }
.isok-admin-shell .isok-map-toolbar { border-color: var(--isok-border); }
.isok-admin-shell .isok-map-toolbar label, .isok-admin-shell .isok-map-note { color: var(--isok-muted); }
.isok-admin-shell .isok-text-button { color: var(--isok-blue-ink, #93c5fd); }
.isok-admin-shell #isok-map { background: var(--isok-paper, #172033); color-scheme: light; }
.isok-admin-shell .isok-venues .isok-section-heading > span { color: var(--isok-muted); }
.isok-admin-shell .isok-venue { color: var(--isok-text); background: var(--isok-surface); border-color: var(--isok-border); }
.isok-admin-shell .isok-venue:hover { background: #3b82f60f; }
.isok-admin-shell .isok-venue-text > span, .isok-admin-shell .isok-venue-text .isok-venue-meta { color: var(--isok-muted); }
.isok-admin-shell .isok-app details > summary { color: var(--isok-ink, #dbeafe); }
.isok-admin-shell .isok-app details > p, .isok-admin-shell .isok-method > div > p { color: var(--isok-muted); }
.isok-admin-shell .isok-location-form { border-color: var(--isok-border); }
.isok-admin-shell .isok-location-form > label, .isok-admin-shell .isok-location-form small { color: var(--isok-muted); }
.isok-admin-shell .isok-group-heading p, .isok-admin-shell .isok-group-totals > span { color: var(--isok-muted); }
.isok-admin-shell .isok-group-totals > strong { color: var(--isok-text); }
.isok-admin-shell .isok-host-choice { background: var(--isok-surface-soft); border-color: var(--isok-border); }
.isok-admin-shell .isok-host-choice small { color: var(--isok-muted); }
.isok-admin-shell .isok-school-table th { background: var(--isok-surface-soft); color: var(--isok-muted); }
.isok-admin-shell .isok-school-table td { border-color: var(--isok-border); }
.isok-admin-shell .isok-school-table small { color: var(--isok-muted); }
.isok-admin-shell .isok-save-bar { background: var(--isok-paper, #172d3b); border-color: #3b82f64d; box-shadow: 0 8px 24px var(--isok-shadow, #02061740); }
.isok-admin-shell .isok-save-bar p { color: var(--isok-blue-ink, #bfdbfe); }
.isok-admin-shell .isok-unassigned { border-color: #f59e0b66; }
.isok-admin-shell .isok-map-panel.isok-map-expanded { background: var(--isok-surface); }
.isok-admin-shell input[type=checkbox], .isok-admin-shell input[type=radio] { accent-color: var(--isok-primary); }

/* Bootstrap 4 components used throughout the original administrator screens. */
.isok-admin-shell a { color: var(--isok-blue-ink, #93c5fd); }
.isok-admin-shell a:hover { color: var(--isok-blue-ink, #bfdbfe); }
.isok-admin-shell .isok-button, .isok-admin-shell .btn-primary, .isok-admin-shell .btn-success, .isok-admin-shell .btn-danger, .isok-admin-shell .btn-info { color: #fff; }
.isok-admin-shell :is(.card,.list-group-item,.modal-content) { color: var(--isok-text); background: var(--isok-surface); border-color: var(--isok-border); }
.isok-admin-shell .card { border-radius: 12px; box-shadow: none; }
.isok-admin-shell :is(.card-header,.card-footer,.modal-header,.modal-footer) { background: transparent; border-color: var(--isok-border); }
.isok-admin-shell :is(.card-title,.modal-title,legend) { color: var(--isok-text); }
.isok-admin-shell :is(.text-muted,.form-text) { color: var(--isok-muted) !important; }
.isok-admin-shell .text-dark { color: var(--isok-text) !important; }
.isok-admin-shell .text-primary { color: var(--isok-blue-ink, #93c5fd) !important; }
.isok-admin-shell .text-success { color: var(--isok-green-ink, #6ee7b7) !important; }
.isok-admin-shell .text-warning { color: var(--isok-amber-ink, #fcd34d) !important; }
.isok-admin-shell .text-danger { color: var(--isok-red-ink, #fca5a5) !important; }
.isok-admin-shell .text-info { color: var(--isok-cyan-ink, #67e8f9) !important; }
.isok-admin-shell :is(.bg-white,.bg-light) { background-color: var(--isok-surface) !important; }
.isok-admin-shell .border { border-color: var(--isok-border) !important; }
.isok-admin-shell .form-control, .isok-admin-shell .custom-select, .isok-admin-shell .input-group-text { background: var(--isok-input); color: var(--isok-text); border-color: var(--isok-border); }
.isok-admin-shell .form-control:focus, .isok-admin-shell .custom-select:focus { background: var(--isok-input); color: var(--isok-ink, #fff); border-color: var(--isok-primary); box-shadow: 0 0 0 3px var(--isok-shadow, #3b82f626); }
.isok-admin-shell .form-control::placeholder { color: var(--isok-ink-soft, #94a3b8); opacity: 1; }
.isok-admin-shell .form-control:disabled, .isok-admin-shell .form-control[readonly] { background: var(--isok-paper, #253147); color: var(--isok-ink-soft, #aebbd0); }
.isok-admin-shell select option { background: var(--isok-input); color: var(--isok-text); }
.isok-admin-shell .custom-select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23cbd5e1' d='M2 0L0 2h4zM2 5L0 3h4z'/%3E%3C/svg%3E"); }
.isok-admin-shell .btn { border-radius: 8px; font-weight: 600; }
.isok-admin-shell .btn-primary { background: var(--isok-primary); border-color: var(--isok-primary); }
.isok-admin-shell .btn-primary:hover { background: var(--isok-primary-hover); border-color: var(--isok-primary-hover); }
.isok-admin-shell .btn-outline-primary { background: transparent; color: var(--isok-blue-ink, #93c5fd); border-color: var(--isok-blue-ink, #3b82f6); }
.isok-admin-shell .btn-outline-primary:hover { color: #fff; background: #2563eb; }
.isok-admin-shell .btn-success { background: #047857; border-color: #059669; }
.isok-admin-shell .btn-success:hover { background: #065f46; border-color: #047857; }
.isok-admin-shell .btn-outline-success { color: var(--isok-green-ink, #6ee7b7); border-color: #059669; }
.isok-admin-shell .btn-outline-success:hover { background: #047857; color: #fff; }
.isok-admin-shell .btn-info { background: #0e7490; border-color: #0891b2; }
.isok-admin-shell .btn-danger { background: #b91c1c; border-color: var(--isok-red-ink, #dc2626); }
.isok-admin-shell .btn-outline-danger { color: var(--isok-red-ink, #fca5a5); border-color: var(--isok-red-ink, #dc2626); }
.isok-admin-shell .btn-outline-danger:hover { color: #fff; background: #b91c1c; }
.isok-admin-shell .btn-secondary, .isok-admin-shell .btn-light { background: var(--isok-paper, #334155); border-color: var(--isok-line, #475569); color: var(--isok-text); }
.isok-admin-shell .btn-outline-secondary { color: var(--isok-ink, #cbd5e1); border-color: var(--isok-line, #64748b); }
.isok-admin-shell .btn-outline-secondary:hover { background: #475569; color: #fff; }
.isok-admin-shell .table { color: var(--isok-text); background: transparent; }
.isok-admin-shell .table th, .isok-admin-shell .table td { border-color: var(--isok-border); }
.isok-admin-shell .table thead th { color: var(--isok-ink, #cbd5e1); background: var(--isok-surface-soft); font-size: 11px; letter-spacing: .035em; }
.isok-admin-shell .table-striped tbody tr:nth-of-type(odd) { background: var(--isok-shade-soft, #ffffff05); }
.isok-admin-shell .table-hover tbody tr:hover { color: var(--isok-ink, #fff); background: #3b82f61a; }
.isok-admin-shell .table .thead-dark th, .isok-admin-shell .table .thead-light th { background: var(--isok-surface-soft); color: var(--isok-ink, #cbd5e1); border-color: var(--isok-border); }
.isok-admin-shell :is(.table-success,.table-success>td,.table-success>th) { background: var(--isok-green-wash, #064e3b); color: var(--isok-ink, #d1fae5); }
.isok-admin-shell :is(.table-danger,.table-danger>td,.table-danger>th) { background: var(--isok-paper, #4c1d2a); color: var(--isok-ink, #ffe4e6); }
.isok-admin-shell :is(.table-warning,.table-warning>td,.table-warning>th) { background: var(--isok-paper, #422d1e); color: var(--isok-amber-ink, #fef3c7); }
.isok-admin-shell .alert { border-radius: 9px; border-width: 1px; }
.isok-admin-shell .alert-info { color: var(--isok-blue-ink, #bfdbfe); background: #3b82f61a; border-color: #3b82f63d; }
.isok-admin-shell .alert-warning { color: var(--isok-amber-ink, #fcd34d); background: #f59e0b14; border-color: #f59e0b40; }
.isok-admin-shell .alert-danger { color: var(--isok-red-ink, #fca5a5); background: #ef444414; border-color: #ef444440; }
.isok-admin-shell .alert-success { color: var(--isok-green-ink, #6ee7b7); background: #10b98114; border-color: #10b98140; }
.isok-admin-shell .alert a { color: inherit; text-decoration: underline; }
.isok-admin-shell .badge { border-radius: 6px; }
.isok-admin-shell .badge-primary { color: var(--isok-blue-ink, #bfdbfe); background: var(--isok-blue-wash, #1e3a5f); }
.isok-admin-shell .badge-success { color: var(--isok-green-ink, #a7f3d0); background: var(--isok-green-wash, #064e3b); }
.isok-admin-shell .badge-danger { color: var(--isok-red-ink, #fecdd3); background: var(--isok-paper, #4c1d2a); }
.isok-admin-shell .badge-warning { color: var(--isok-amber-ink, #fde68a); background: var(--isok-paper, #422d1e); }
.isok-admin-shell .badge-info { color: var(--isok-cyan-ink, #a5f3fc); background: var(--isok-cyan-wash, #164e63); }
.isok-admin-shell .badge-secondary, .isok-admin-shell .badge-light { color: var(--isok-ink, #cbd5e1); background: var(--isok-paper, #334155); }
.isok-admin-shell .close { color: var(--isok-ink, #cbd5e1); text-shadow: none; }
.isok-admin-shell .close:hover { color: var(--isok-ink, #fff); }
.isok-admin-shell .dropdown-menu, .isok-admin-shell .page-link { color: var(--isok-text); background: var(--isok-surface); border-color: var(--isok-border); }
.isok-admin-shell .dropdown-item { color: var(--isok-text); }
.isok-admin-shell .dropdown-item:hover, .isok-admin-shell .page-link:hover { color: var(--isok-ink, #fff); background: var(--isok-paper, #334155); }
.isok-admin-shell .page-item.active .page-link { background: var(--isok-primary); border-color: var(--isok-primary); }
.isok-admin-shell .page-item.disabled .page-link { background: var(--isok-surface-soft); color: var(--isok-ink-soft, #64748b); border-color: var(--isok-border); }
.isok-admin-shell .ui-widget { font-family: inherit; }
.isok-admin-shell .ui-widget-content, .isok-admin-shell .ui-widget-header { background: var(--isok-surface); color: var(--isok-text); border-color: var(--isok-border); }
.isok-admin-shell .ui-state-default { background: var(--isok-input); color: var(--isok-text); border-color: var(--isok-border); }
.isok-admin-shell .ui-state-hover, .isok-admin-shell .ui-state-active { background: var(--isok-primary); border-color: var(--isok-primary); color: #fff; }
.isok-admin-shell .ui-datepicker select { background: var(--isok-input); color: var(--isok-text); border-color: var(--isok-border); }
.isok-admin-shell .ui-datepicker .ui-icon { filter: brightness(0) invert(1); }
.isok-admin-shell .xdsoft_datetimepicker, .isok-admin-shell .xdsoft_datetimepicker .xdsoft_label, .isok-admin-shell .xdsoft_datetimepicker .xdsoft_select { background: var(--isok-surface); color: var(--isok-text); border-color: var(--isok-border); }
.isok-admin-shell .xdsoft_datetimepicker .xdsoft_calendar th { color: var(--isok-muted); background: var(--isok-surface-soft); border-color: var(--isok-border); }
.isok-admin-shell .xdsoft_datetimepicker .xdsoft_calendar td, .isok-admin-shell .xdsoft_datetimepicker .xdsoft_time_box > div > div { background: var(--isok-input); color: var(--isok-text); border-color: var(--isok-border); }
.isok-admin-shell .xdsoft_datetimepicker .xdsoft_time_box { border-color: var(--isok-border); }
.isok-admin-shell .xdsoft_datetimepicker :is(.xdsoft_prev,.xdsoft_next,.xdsoft_today_button), .isok-admin-shell .xdsoft_datetimepicker .xdsoft_label i { filter: brightness(0) invert(1); }
.isok-admin-shell .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today { color: var(--isok-blue-ink, #93c5fd); }
.isok-admin-shell .xdsoft_datetimepicker .xdsoft_calendar td:hover, .isok-admin-shell .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current, .isok-admin-shell .xdsoft_datetimepicker .xdsoft_time_box > div > div:hover, .isok-admin-shell .xdsoft_datetimepicker .xdsoft_time_box > div > div.xdsoft_current, .isok-admin-shell .xdsoft_datetimepicker .xdsoft_select > div > .xdsoft_option:hover, .isok-admin-shell .xdsoft_datetimepicker .xdsoft_select > div > .xdsoft_option.xdsoft_current { background: var(--isok-primary) !important; color: #fff !important; box-shadow: none; }
.isok-admin-shell .isok-admin-footer { width: 100%; padding: 18px 24px; margin-top: 28px; border-top: 1px solid var(--isok-border); background: var(--isok-surface); color: var(--isok-muted); font-size: 12px; }
.isok-admin-shell .isok-admin-footer > div { max-width: 1512px; margin: auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
.isok-admin-shell .isok-admin-footer > div > span { font-size: 10px; letter-spacing: .08em; font-weight: 700; }
.isok-admin-shell .isok-admin-footer a { color: var(--isok-blue-ink, #93c5fd); }

/* Leaflet controls retain the light map palette for a readable geographic layer. */
.isok-admin-shell .leaflet-popup-content a, .isok-admin-shell .leaflet-control-attribution a { color: #137c78; }
.isok-admin-shell .leaflet-control-zoom a { color: #183248; }
.isok-admin-shell .leaflet-popup-content { color: #183248; }

@media (max-width: 800px) {
    .isok-admin-shell .isok-page-heading { padding-top: 8px; }
    .isok-admin-shell .isok-page-heading h1 { font-size: 26px; }
    .isok-admin-shell .isok-admin-footer { padding: 16px; }
}
@media (max-width: 500px) {
    .isok-admin-shell .isok-navigation-label { font-size: 15px; }
    .isok-admin-shell .isok-navigation-label > a { font-size: 11px; }
    .isok-admin-shell .isok-page-heading h1 { font-size: 25px; }
    .isok-admin-shell .isok-legacy-page > .container-fluid { padding-left: 0; padding-right: 0; }
}
@media print {
    .isok-admin-shell { background: #fff; color: #000; color-scheme: light; display: block; }
    .isok-admin-shell .isok-navigation, .isok-admin-shell .isok-admin-footer { display: none; }
    .isok-admin-shell :is(.card,.isok-panel,.table,.table td,.table th) { color: #000; background: #fff; }
    .isok-admin-shell :is(h1,h2,h3,h4,h5,h6) { color: #000; }
}
