/* Mzansi Hustle 2026-10-17: accessible midnight-gold presentation layer.
   This stylesheet is appended after existing styling so gameplay code remains intact. */
:root{
 color-scheme:dark;
 --paper:#101620;--dark:#eaf0f6;--muted:#aebdc8;--line:#334354;
 --green:#a1ddca;--gold:#f0c276;--mint:#243c40;
 --mh-bg:#0f151e;--mh-panel:#1a2532;--mh-panel-2:#243446;
 --mh-text:#f2f5f7;--mh-text-sub:#b5c4d1;--mh-accent:#f0bf71;
}
body{background:radial-gradient(ellipse at 65% -14%,#19333c 0,transparent 45%),#0f151e!important;color:var(--mh-text);}
.main,.content{background:transparent!important;color:var(--mh-text);}
.layout{background:transparent;}
.sidebar{background:linear-gradient(180deg,#111c29,#0a1019)!important;color:#eaf1f8!important;border-right:1px solid #324252;}
.sidebar .brand,.sidebar .brand strong,.sidebar .brand b{color:#f8d499!important;}
.sidebar .edition,.sidebar .nav-group summary{color:#d8e2ed!important;}
.sidebar .nav button,.sidebar .nav-group>button,.sidebar .nav-map,.sidebar .simple-nav-item{
 color:#dce7ef!important;background:transparent!important;border:1px solid transparent!important;
 min-height:43px!important;font-weight:650;
}
.sidebar .nav button:hover,.sidebar .nav-group>button:hover,.sidebar .nav-map:hover,
.sidebar .simple-nav-item:hover{background:#294255!important;color:#fff!important;border-color:#627e8e!important;}
.sidebar .nav .active,.sidebar .nav .selected,.sidebar .simple-nav-item.active{
 background:#314b56!important;color:#ffe7b3!important;border-color:#d6a663!important;
}
.sidebar .sidebar-note{background:#20313f!important;border:1px solid #527180!important;color:#e2edf7!important;}
.sidebar .sidebar-note strong{color:#f1c37b!important;}
.topbar,.weather-clock{background:#162432!important;color:#f2f6f8!important;border-color:#364a57!important;}
.topbar .breadcrumb,.topbar .breadcrumb strong,.topbar small,.topbar .wallet,
.topbar .money{color:#ebf3fa!important;}
.weather-clock small{color:#c7d9de!important;}
h1,h2,h3,h4{color:#f2f6f8;}
.subtitle,.subtext,.small-note,.bottomtip,.sectionheading p{color:#b7c7d4!important;}
.pageheading .eyebrow,.eyebrow{color:#ecc17a;}
/* Common game panels: preserve existing layout, improve text contrast. */
:where(.business,.stat,.reward-card,.loyalty-card,.collection-info,.activity-panel,
.settings-panel,.account-card,.map-destinations,.op-rank,.destination,.full-guide,
.fishing-spot,.grocery-shop,.nutrition-panel,.room-finishes,.story-card,.mission-row,
.progress-panel,.panel,.feature-card,.player-ribbon,.modal-inner,.branch,.world-location,
.mission-controls,.career-panel,.learning-meter,.sports-card25,.sport-card25,
.life-card,.market-card,.inventory-card,.crew-card,.clothing-card,.opportunity-card,
.neighbour,.garage-panel,.opportunity-row,.frontier-card,.catalogue-card) {
 background:var(--mh-panel)!important;color:var(--mh-text)!important;
 border-color:#40515d!important;
}
:where(.business,.stat,.reward-card,.loyalty-card,.collection-info,.activity-panel,
.settings-panel,.account-card,.map-destinations,.op-rank,.destination,.full-guide,
.fishing-spot,.grocery-shop,.nutrition-panel,.room-finishes,.story-card,.mission-row,
.progress-panel,.panel,.feature-card,.player-ribbon,.modal-inner,.branch,.world-location,
.mission-controls,.career-panel,.learning-meter,.sports-card25,.sport-card25,
.life-card,.market-card,.inventory-card,.crew-card,.clothing-card,.opportunity-card,
.neighbour,.garage-panel,.opportunity-row,.frontier-card,.catalogue-card) :where(h2,h3,h4,strong,b){color:#f3f6fa;}
:where(.business,.stat,.reward-card,.loyalty-card,.collection-info,.activity-panel,
.settings-panel,.account-card,.map-destinations,.op-rank,.destination,.full-guide,
.fishing-spot,.grocery-shop,.nutrition-panel,.room-finishes,.story-card,.mission-row,
.progress-panel,.panel,.feature-card,.player-ribbon,.modal-inner,.branch,.world-location,
.mission-controls,.career-panel,.learning-meter,.sports-card25,.sport-card25,
.life-card,.market-card,.inventory-card,.crew-card,.clothing-card,.opportunity-card,
.neighbour,.garage-panel,.opportunity-row,.frontier-card,.catalogue-card) :where(p,small,span,em){color:#c7d3db;}
:where(.nav-group,.business,.reward-card,.play-choice,.map-pin,.mh-map-venue) :focus-visible,
:where(button,a,select,input,[role="button"]) :focus-visible{outline:3px solid #f3cb7d;outline-offset:3px;}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.map-pin:focus-visible{outline:3px solid #f3cb7d!important;outline-offset:3px;}
button.primary, .primary{background:#efbb66!important;color:#142433!important;border:1px solid #ebbc77!important;font-weight:750;}
button.secondary,.secondary{background:#284252!important;color:#f6ebd8!important;border:1px solid #587382!important;}
button.primary:hover,.primary:hover{background:#ffd58e!important;}
button.secondary:hover,.secondary:hover{background:#355569!important;}
button:disabled{opacity:.55;cursor:not-allowed;}
select,input:not([type="range"]),textarea{background:#243446!important;color:#f2f6f9!important;border:1px solid #748998!important;}
option{background:#233241!important;color:#eef4f8!important;}
:where(.badge,.filter,.pill,.tab):not(.active):not(.selected){background:#2e4552!important;color:#e9edf3!important;border-color:#5d7584!important;}
:where(.badge,.filter,.pill,.tab).active,:where(.badge,.filter,.pill,.tab).selected{background:#5e4a2a!important;color:#ffe5ac!important;}
#player-sticky26{background:#182535!important;color:#f2f5fa!important;border-color:#af956e!important;}
#player-sticky26 strong,#player-sticky26 small,#player-sticky26 span{color:#eaf1f7!important;}
body:has(#player-sticky26) .player-ribbon{display:none!important;}
.map-destinations h2,.map-destinations .subtitle{color:#f5eee6!important;}
.map-destinations .destination{border-color:#3d5562!important;}
.travel-map.detailed-map{border:1px solid #56747c!important;}
.map-tooltip{background:#1d3442!important;color:#fff!important;}
/* Map extension: connected, visual and keyboard-accessible, below the map. */
.mh-city-explorer{margin:24px 0 34px;border:1px solid #3d5363;border-radius:19px;overflow:hidden;background:#172331;box-shadow:0 12px 40px #040b1426;}
.mh-map-banner{display:grid;grid-template-columns:minmax(230px,43%) 1fr;min-height:220px;background:linear-gradient(115deg,#20393a,#142332);}
.mh-map-banner img{width:100%;height:100%;max-height:310px;min-height:220px;object-fit:cover;object-position:50% 49%;}
.mh-map-banner>div{padding:27px 30px;align-self:center;}
.mh-map-banner small{font-size:11px;letter-spacing:.15em;font-weight:800;color:#f2c885;}
.mh-map-banner h3{font-size:clamp(21px,2.2vw,29px);line-height:1.13;margin:13px 0;color:#fff;}
.mh-map-banner p{font-size:14px;line-height:1.65;color:#d2e1e8;max-width:690px;}
.mh-map-stats{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:13px 23px;color:#e5f0ec;background:#254038;border-top:1px solid #496357;}
.mh-map-stats strong{color:#ffe0a5;}
.mh-map-guide{padding:20px 24px;border-bottom:1px solid #3c4f5c;}
.mh-map-guide p{font-size:15px;font-weight:750;color:#f4d194;}
.mh-map-guide ul{display:flex;gap:20px;flex-wrap:wrap;padding:10px 0 0 18px;line-height:1.6;}
.mh-map-guide li{color:#d3e0ea;flex:1 1 195px;}
.mh-map-guide button{margin-top:14px;}
.mh-map-venue-title{padding:24px 24px 8px;}
.mh-map-venue-title h3{font-size:22px;color:#f3f6fa;}
.mh-map-venue-title p{color:#bcd0d9;margin-top:8px;font-size:14px;}
.mh-map-venues{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding:16px 24px 26px;}
.mh-map-venue{display:flex;gap:12px;min-height:115px;padding:12px;background:#223344;border:1px solid #4d6270;border-radius:13px;color:#eef4f6;text-align:left;transition:background .16s,transform .16s;}
.mh-map-venue:hover:not(:disabled){background:#2d4756;transform:translateY(-2px);border-color:#d0a76f;}
.mh-map-venue:disabled{opacity:.75;background:#182733;cursor:not-allowed;}
.mh-map-venue img{width:96px;height:91px;flex:none;border-radius:8px;object-fit:cover;object-position:50% 50%;}
.mh-map-venue span{display:flex;flex-direction:column;gap:5px;min-width:0;}
.mh-map-venue strong{font-size:14px;color:#f3efe8;}
.mh-map-venue small{font-size:12px;color:#bbcbd7;line-height:1.45;}
.mh-map-venue em{font-style:normal;font-size:11px;font-weight:750;color:#f4c98d;margin-top:auto;}
/* Soundtrack control: never captures a native game data-action. */
.mh-audio-panel{position:fixed;right:14px;bottom:14px;z-index:101;width:min(445px,calc(100vw - 28px));border-radius:16px;background:#152332f0;backdrop-filter:blur(16px);color:#f0f6fa;border:1px solid #6c8190;box-shadow:0 16px 40px #0205098c;padding:11px 13px 12px;}
.mh-audio-row{display:flex;gap:7px;align-items:center;}
.mh-audio-text{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px;padding-left:3px;}
.mh-audio-text small{font-size:10px;color:#e5c37f;letter-spacing:.16em;font-weight:850;}
.mh-audio-text strong{font-size:14px;color:#fcf7ed;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
.mh-audio-text span{font-size:12px;color:#b6cbd8;}
.mh-audio-panel button{background:#31465a;border:1px solid #668195;color:#ffe4b1;border-radius:9px;min-width:34px;height:35px;padding:6px;display:grid;place-items:center;}
.mh-audio-panel button:hover{background:#49627a;}
.mh-audio-extras{padding-top:11px;}
.mh-audio-collapsed .mh-audio-extras{display:none;}
.mh-audio-seek{display:flex;align-items:center;gap:9px;font-size:11px;font-variant-numeric:tabular-nums;}
.mh-audio-seek input{flex:1;min-width:0;accent-color:#f6c477;height:14px;}
.mh-audio-volume{display:flex;align-items:center;gap:10px;margin-top:4px;font-size:11px;}
.mh-audio-volume label{color:#e7d4a8;}
.mh-audio-volume input{width:70px;accent-color:#f6c477;}
.mh-audio-volume [data-mh-status]{color:#b2c9d4;flex:1;text-align:right;}
.mh-festival-priority .mh-audio-panel{bottom:110px;}
/* Image guardrails: let meaningful art fit, don't stretch sources. */
.mh-map-venue img,.mh-map-banner img,.still-picture img,.business-img img,.card-art img{object-fit:cover;}
.business .atlas,.reward-card .atlas,.story-card .atlas{overflow:hidden;border-radius:10px;}
@media(max-width:1100px){.mh-map-venues{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:720px){.mh-map-banner{grid-template-columns:1fr}.mh-map-banner img{height:210px;min-height:0}.mh-map-banner>div{padding:21px}.mh-map-venues{grid-template-columns:1fr;padding:14px}.mh-map-venue-title{padding:20px 17px 4px}.mh-map-guide{padding:16px}.mh-map-stats{padding:12px 16px}.content{padding-bottom:235px!important}.mh-audio-panel{right:10px;bottom:9px;width:calc(100vw - 20px)}.mh-map-venue{min-height:100px}.mh-map-venue img{width:86px;height:82px}}
@media(prefers-reduced-motion:reduce){.mh-map-venue{transition:none;}}
