:root{
  --mk-navy:#263f66;
  --mk-purple:#63389a;
  --mk-purple-dark:#4c2b80;
  --mk-teal:#147b82;
  --mk-gold:#ffc857;
  --mk-soft:#f5f2fa;
  --mk-ink:#1f2933;
}
html{scroll-behavior:smooth}
body{min-height:100vh;color:var(--mk-ink);background:#fff}
a{color:var(--mk-purple-dark)}a:hover{color:var(--mk-teal)}
.site-navbar{background:linear-gradient(100deg,#17253d,#263f66 55%,#4c2b80);box-shadow:0 2px 12px rgba(15,23,42,.18);min-height:76px}
.brand-panel{display:inline-flex;background:#fff;border-radius:12px;padding:.3rem .65rem;margin-right:.75rem;box-shadow:0 3px 14px rgba(0,0,0,.18)}
.brand-panel img{display:block;width:230px;height:auto;max-height:52px}
.admin-badge{color:var(--mk-purple-dark)!important}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.83);font-weight:600}.navbar-dark .navbar-nav .nav-link:hover{color:#fff}
.hero{background:radial-gradient(circle at 12% 20%,rgba(20,123,130,.45),transparent 32%),linear-gradient(135deg,#17253d,#4c2b80 65%,#63389a);color:#fff;padding:5rem 0 4.5rem;overflow:hidden}
.hero-logo-panel{display:inline-block;background:#fff;border-radius:18px;padding:.55rem 1rem;box-shadow:0 16px 45px rgba(0,0,0,.22);margin-bottom:1.5rem}.hero-logo-panel img{width:min(520px,82vw);height:auto}
.hero .form-control,.hero .form-select{min-height:49px}.hero-search{border:0;border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.btn-primary{--bs-btn-bg:var(--mk-purple);--bs-btn-border-color:var(--mk-purple);--bs-btn-hover-bg:var(--mk-purple-dark);--bs-btn-hover-border-color:var(--mk-purple-dark)}
.btn-warning{--bs-btn-bg:var(--mk-gold);--bs-btn-border-color:var(--mk-gold);color:#1f2933}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.1rem}.section-heading p{margin-bottom:0;color:#687281}
.card-show{height:100%;border:1px solid #e7e2ef;border-radius:16px;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.card-show:hover{transform:translateY(-3px);box-shadow:0 .75rem 1.75rem rgba(38,63,102,.13)}
.card-media{height:145px;background:linear-gradient(135deg,#f4f1f9,#e8f4f4);display:flex;align-items:center;justify-content:center;overflow:hidden}.card-media img{width:100%;height:100%;object-fit:contain;padding:15px}.card-media img.photo{object-fit:cover;padding:0}.card-media .fallback-note{width:82px;height:82px;opacity:.82}
.event-card{border-top:5px solid var(--mk-teal)}.event-card.contest{border-top-color:var(--mk-gold)}
.badge-premium{background:linear-gradient(110deg,var(--mk-purple),var(--mk-teal));color:#fff}.badge-lifetime{background:linear-gradient(110deg,#a66a00,#ffc857);color:#2a210b}.event-badge{background:var(--mk-teal);color:#fff}.contest-badge{background:#8d5d00;color:#fff}
.admin-stat{border-left:5px solid var(--mk-purple);border-radius:12px}.prewrap{white-space:pre-wrap}.table-actions form{display:inline}.required:after{content:' *';color:#b02a37}.empty-state{padding:4rem 1rem;text-align:center;color:#6c757d}.detail-hero{background:linear-gradient(120deg,#f6f3fb,#eef7f7);border-bottom:1px solid #e0d9eb}.form-section{border:1px solid #e5e0ea;border-radius:.85rem;padding:1.25rem;margin-bottom:1.25rem;background:#fff}.form-section h2{color:var(--mk-navy)}
.profile-portrait{width:150px;height:150px;border-radius:50%;object-fit:cover;background:#fff;border:5px solid #fff;box-shadow:0 8px 25px rgba(38,63,102,.18)}.profile-logo{width:170px;height:120px;object-fit:contain;background:#fff;border-radius:14px;padding:10px;border:1px solid #ddd6e8}.venue-logo{width:170px;height:150px;object-fit:contain;background:#fff;border-radius:16px;padding:12px;border:1px solid #ddd6e8;box-shadow:0 8px 25px rgba(38,63,102,.12)}
.upload-preview{max-width:210px;max-height:160px;object-fit:contain;border:1px solid #ddd;border-radius:12px;background:#f8f9fa;padding:8px}.upload-preview.portrait{width:150px;height:150px;border-radius:50%;object-fit:cover;padding:0}
.special-event-panel{border:1px solid #d6e7e8;border-left:5px solid var(--mk-teal);border-radius:14px;background:#f7fbfb}.contest-panel{border-left-color:#b77b08;background:#fffaf0}
.site-footer{background:#17253d;color:#fff}.site-footer img{background:#fff;border-radius:10px}.footer-note{color:rgba(255,255,255,.72)}
.login-logo{display:block;width:min(360px,80%);margin:0 auto 1.5rem}.admin-login-card{border:0;border-radius:18px;box-shadow:0 15px 45px rgba(38,63,102,.18)}
@media (max-width:991px){.brand-panel img{width:190px}.site-navbar{min-height:68px}.navbar-collapse{padding-top:.75rem}.hero{padding:3.5rem 0}.profile-portrait{width:120px;height:120px}.venue-logo{width:135px;height:120px}}
@media (max-width:575px){.brand-panel{padding:.25rem .45rem}.brand-panel img{width:155px}.hero h1{font-size:2.35rem}.section-heading{display:block}.section-heading a{display:inline-block;margin-top:.4rem}}


/* v1.2 KJ directory, account portal, and compact administration */
.kj-card{border:1px solid #e3ddea;border-radius:16px;box-shadow:0 8px 24px rgba(38,63,102,.07)}
.kj-card-photo{width:88px;height:88px;object-fit:cover;border-radius:50%;border:3px solid #fff;box-shadow:0 5px 15px rgba(38,63,102,.15);background:#f5f2fa}
.kj-card-fallback{object-fit:contain;padding:14px}
.service-chip{display:inline-flex;align-items:center;padding:.28rem .6rem;border-radius:999px;background:#eef7f7;color:#235f64;font-size:.78rem;font-weight:600;border:1px solid #d6e7e8}
.service-chip-lg{font-size:.9rem;padding:.42rem .75rem}
.venue-mini-card{border:1px solid #e6e0ed;color:var(--mk-ink)}.venue-mini-card:hover{box-shadow:0 8px 22px rgba(38,63,102,.1)}
.venue-mini-logo{width:58px;height:58px;object-fit:contain}
.booking-card{border-top:5px solid var(--mk-purple);box-shadow:0 10px 25px rgba(38,63,102,.1)}
.admin-table-card{border:1px solid #e2dce9;border-radius:14px;overflow:hidden}
.admin-table-card thead th{background:#f5f2fa;color:var(--mk-navy);white-space:nowrap}
.admin-thumb{width:48px;height:48px;object-fit:contain;background:#fff;border:1px solid #e5dfeb;border-radius:8px}
.admin-actions{min-width:190px}.admin-actions form{margin:0}.admin-actions .dropdown-item{width:100%;text-align:left;border:0;background:transparent}
.status-pill{display:inline-flex;padding:.28rem .62rem;border-radius:999px;font-size:.78rem;font-weight:700;background:#eef0f2;color:#52606d}
.status-published,.status-active,.status-approved{background:#d1e7dd;color:#0f5132}
.status-pending,.status-pending_admin,.status-pending_email,.status-more_info,.status-in_review,.status-new{background:#fff3cd;color:#664d03}
.status-rejected,.status-expired{background:#f8d7da;color:#842029}
.status-draft,.status-archived,.status-suspended{background:#e2e3e5;color:#41464b}
@media(max-width:767px){.admin-table-card table{min-width:820px}.kj-card-photo{width:72px;height:72px}}

.kj-home-cta{background:linear-gradient(120deg,#eef7f7,#f5f2fa);box-shadow:0 12px 32px rgba(38,63,102,.09)}

/* v1.2.1 submissions, multi-day schedules, and owner access */
.schedule-day-grid{display:grid;grid-template-columns:repeat(7,minmax(72px,1fr));gap:.55rem}
.schedule-day{position:relative;margin:0}.schedule-day input{position:absolute;opacity:0;pointer-events:none}.schedule-day span{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #d9d1e4;border-radius:10px;background:#fff;font-weight:700;color:var(--mk-navy);cursor:pointer;transition:.15s ease}.schedule-day input:checked+span{background:var(--mk-purple);border-color:var(--mk-purple);color:#fff;box-shadow:0 5px 14px rgba(99,56,154,.22)}.schedule-day input:focus-visible+span{outline:3px solid rgba(20,123,130,.25)}
.submission-cell{min-width:370px}.submission-details summary{list-style:none;display:inline-block}.submission-details summary::-webkit-details-marker{display:none}.submission-detail-panel{border:1px solid #e2dce9;border-radius:12px;background:#fbfafd;padding:1rem}.submission-detail-grid{display:grid;grid-template-columns:minmax(130px,38%) 1fr;gap:.45rem .9rem}.submission-detail-grid dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.035em;color:#667085}.submission-detail-grid dd{margin:0;overflow-wrap:anywhere}.submission-notes{border-left:4px solid var(--mk-teal);background:#fff;padding:.8rem;border-radius:8px}
.badge-owner{background:linear-gradient(110deg,#17253d,#63389a);color:#fff}.admin-revoke-box{width:290px;padding:.8rem;border:1px solid #e7c7ca;border-radius:10px;background:#fff8f8}
@media(max-width:767px){.schedule-day-grid{grid-template-columns:repeat(4,1fr)}.submission-cell{min-width:320px}.submission-detail-grid{grid-template-columns:1fr}.submission-detail-grid dt{margin-top:.35rem}}

/* v1.3 collaborative KJ workflows, scoped administration, and submission review */
.admin-tools-link{color:#ffe7a8!important;font-weight:800!important}
.site-navbar .dropdown-menu{border:0;border-radius:12px;box-shadow:0 14px 35px rgba(15,23,42,.22);padding:.55rem}
.site-navbar .dropdown-item{border-radius:8px;padding:.55rem .75rem}.site-navbar .dropdown-item:hover{background:#f3eef9;color:var(--mk-purple-dark)}
.companion-section{border:1px dashed #b9a8cf;border-radius:14px;background:#fbf9fd;padding:1rem}.companion-section.is-active{border-style:solid;box-shadow:0 8px 22px rgba(99,56,154,.08)}
.submission-review-card{border:1px solid #dfd8e8;border-radius:15px;overflow:hidden;box-shadow:0 7px 20px rgba(38,63,102,.06)}
.submission-review-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;background:linear-gradient(110deg,#f7f4fb,#f2f8f8);padding:1rem 1.15rem}
.submission-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.submission-info-group{border:1px solid #e6dfed;border-radius:12px;background:#fff;padding:.9rem 1rem}
.submission-info-group h2{font-size:.82rem;text-transform:uppercase;letter-spacing:.055em;color:var(--mk-purple-dark);margin:0 0 .65rem;border-bottom:1px solid #eee8f3;padding-bottom:.5rem}
.submission-info-group dl{margin:0}.submission-info-group dl>div{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:.65rem;padding:.36rem 0;border-bottom:1px solid #f2eef5}.submission-info-group dl>div:last-child{border-bottom:0}
.submission-info-group dt{font-size:.76rem;text-transform:uppercase;letter-spacing:.025em;color:#667085}.submission-info-group dd{margin:0;overflow-wrap:anywhere;font-weight:500}
.permission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.permission-list .list-group-item{border-radius:9px!important;border:1px solid #e5dfeb}
@media(max-width:767px){.submission-review-header{display:block}.submission-review-header>div:last-child{text-align:left!important;margin-top:.6rem}.submission-group-grid,.permission-list{grid-template-columns:1fr}.submission-info-group dl>div{grid-template-columns:1fr;gap:.12rem}}

/* v1.4 maps and messaging */
.show-map{height:520px;border-radius:16px;border:1px solid #d7dce5;overflow:hidden}.message-list-item.unread{border-left:5px solid #63389a;background:#faf7ff}.message-body{white-space:pre-wrap}.message-bubble{border-radius:14px;padding:1rem;background:#f1f4f8}.message-bubble.external{background:#eef7ff}.message-bubble.internal_note{background:#fff8db;border:1px dashed #d5a800}.message-bubble.admin_message{background:#f5efff}.thread-meta{font-size:.875rem;color:#687281}@media(max-width:767px){.show-map{height:420px}}


/* v1.4.1 automatic venue mapping and informative markers */
.mk-map-marker{width:27px;height:27px;cursor:pointer;filter:drop-shadow(0 4px 5px rgba(20,30,45,.3));outline:none}
.mk-map-marker:focus-visible .mk-map-label{outline:3px solid rgba(99,56,154,.35)}
.mk-map-pin{position:relative;display:block;width:27px;height:27px;border-radius:50% 50% 50% 0;background:var(--mk-teal);border:3px solid #fff;transform:rotate(-45deg)}
.mk-map-pin:after{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:#fff;left:7px;top:7px}
.mk-map-label{position:absolute;left:35px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;width:max-content;max-width:190px;padding:.34rem .55rem;border:1px solid rgba(23,37,61,.16);border-radius:9px;background:rgba(255,255,255,.96);color:var(--mk-ink);font-size:.78rem;font-weight:800;line-height:1.1;box-shadow:0 3px 10px rgba(15,23,42,.16)}
.mk-map-label small{margin-top:.18rem;color:#687281;font-size:.68rem;font-weight:600}
.mk-map-popup h3{font-size:1.05rem;margin:0 0 .25rem}.mk-map-popup-location,.mk-map-popup-distance{font-size:.8rem;color:#5f6b78;margin-bottom:.3rem}.mk-map-popup-distance{font-weight:700;color:var(--mk-teal)}
.mk-map-popup ul{list-style:none;padding:0;margin:.65rem 0}.mk-map-popup li{padding:.55rem 0;border-top:1px solid #ece7f1;font-size:.78rem}.mk-map-popup li:first-child{border-top:0;padding-top:0}.mk-map-popup li div{margin-top:.12rem;color:#5f6b78}
.mk-map-popup-actions{display:flex;gap:.8rem;padding-top:.45rem;border-top:1px solid #ece7f1;font-weight:700}.mapboxgl-popup-content{border-radius:13px!important;padding:1rem!important;box-shadow:0 10px 28px rgba(15,23,42,.22)!important}
@media(max-width:767px){.mk-map-label{display:none}.mk-map-pin{width:30px;height:30px}.mk-map-pin:after{left:8px;top:8px}}

/* v1.4.2 Mapbox Standard basemap and visible diagnostics */
.show-map{position:relative;background:#eef1f4}.mk-map-status{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);max-width:min(620px,calc(100% - 2rem));padding:.85rem 1rem;border:1px solid #cfd6df;border-radius:12px;background:rgba(255,255,255,.96);color:#394555;text-align:center;font-weight:700;box-shadow:0 8px 24px rgba(15,23,42,.14)}.mk-map-status.is-error{border-color:#d9aeb2;background:#fff7f7;color:#7b2630}.mk-map-status.d-none{display:none!important}

/* v1.4.3: preserve Mapbox marker positioning; labels no longer change the coordinate anchor */
