/* Deadly Fear v21.2.4 — Full UI / Visual Polish Pass */
:root{
  --df24-bg:#07090d;--df24-surface:#0d1118;--df24-surface-2:#121821;--df24-surface-3:#171e28;
  --df24-line:#28313d;--df24-line-strong:#394655;--df24-text:#eef3f8;--df24-muted:#8190a3;
  --df24-red:#ff4058;--df24-red-deep:#8f1429;--df24-green:#56df8b;--df24-amber:#efb84f;
  --df24-blue:#64a7ff;--df24-purple:#a779ff;--df24-cyan:#52d5ff;--df24-radius:14px;
  --df24-shadow:0 18px 48px rgba(0,0,0,.28);--df24-soft-shadow:0 10px 28px rgba(0,0,0,.20);
}
html{scroll-behavior:smooth}body.df-shell{background:radial-gradient(circle at 50% -10%,rgba(124,18,39,.10),transparent 35%),#07090d;color:var(--df24-text)}
.mcc-content-frame{position:relative}
.mcc-content-frame>style+*{position:relative}

/* Consistent typography hierarchy */
.mcc-content-frame h1,.mcc-content-frame h2,.mcc-content-frame h3{letter-spacing:-.015em}
.mcc-content-frame h1{font-weight:900;line-height:1.04}.mcc-content-frame h2{font-weight:850}.mcc-content-frame p{line-height:1.6}
.df-page-kicker,.m210-k,.kicker,.world-kicker,.gang-kicker,.casino-kicker,.staff-kicker,.bm .k,.ws .k{
  display:inline-flex;align-items:center;gap:7px;color:#ff7185!important;font-size:9px!important;font-weight:900!important;
  letter-spacing:1.45px!important;text-transform:uppercase!important
}

/* Shared hero/header treatment across core pages */
.df-hero,.m210-hero,.ft>.hero,.bm>.hero,.df-world>.world-hero,.gang-hero,.casino-hero,.ws>.hero,.staff-hero{
  border-radius:var(--df24-radius)!important;box-shadow:var(--df24-shadow)!important;overflow:hidden;position:relative
}
.df-hero:before,.m210-hero:before,.ft>.hero:before,.bm>.hero:before,.df-world>.world-hero:before,.gang-hero:before,.casino-hero:before,.ws>.hero:before,.staff-hero:before{
  content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,rgba(255,255,255,.025),transparent 28%,transparent 72%,rgba(255,64,88,.025))
}
.df-hero h1,.m210-hero h1,.ft>.hero h1,.bm>.hero h1,.df-world>.world-hero h1,.gang-hero h1,.casino-hero h1,.ws>.hero h1,.staff-hero h1{font-size:clamp(25px,3vw,38px)!important;margin-top:7px!important}
.df-hero p,.m210-hero p,.ft>.hero p,.bm>.hero p,.df-world>.world-hero p,.gang-hero p,.casino-hero p,.ws>.hero p,.staff-hero p{color:var(--df24-muted)!important;font-size:10px!important;line-height:1.65!important}

/* Status chips */
.df-status-chip,.chip,.tag,.diff,.status-chip,.gang-chip,.casino-rule{
  border-radius:999px!important;font-weight:850!important;letter-spacing:.25px
}
.df-status-chip{display:inline-flex;align-items:center;gap:6px;min-height:25px;padding:4px 9px;border:1px solid var(--df24-line);background:#0b1016;color:#a9b5c4;font-size:8px;text-transform:uppercase}
.df-status-chip.success{border-color:#2a6140;background:#0d1d14;color:#72e39a}.df-status-chip.warning{border-color:#715723;background:#211a0d;color:#f1c66e}.df-status-chip.danger{border-color:#6d2b39;background:#251017;color:#ff8597}.df-status-chip.progress{border-color:#3d4773;background:#12172b;color:#b6a2ff}
.df-status-chip.info{border-color:#2c526d;background:#0c1720;color:#83cfff}

/* Card system — aliases existing page cards into one language */
.df-card,.contract,.mission,.ft .panel,.ft .battle,.ft .territory,.bm .item,.bm .stat,.df-world .rank-panel,.df-world .local-panel,.df-world .leader-panel,.df-world .district,.df-world .rank-card,.gang-panel,.gang-card,.gang-member,.casino-game-card,.casino-table,.casino-side,.casino-recent,.ws .panel,.ws .card,.ws .mat,.staff-card,.staff-metric,.sm-panel,.sm-stat{
  border-color:var(--df24-line)!important;border-radius:var(--df24-radius)!important;box-shadow:var(--df24-soft-shadow);background-color:var(--df24-surface)!important
}
.df-card:hover,.contract:hover,.mission:hover,.bm .item:hover,.df-world .district:hover,.gang-card:hover,.casino-game-card:hover,.ws .card:hover,.staff-tool:hover{
  transform:translateY(-2px);border-color:var(--df24-line-strong)!important;box-shadow:0 16px 34px rgba(0,0,0,.26);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease
}

/* Unified buttons */
.df-btn,.btn,.gang-btn,.enter-btn,.claim-btn,.service,.casino-tab,.casino-play,.casino-submit,.staff-btn,.sj-btn-link,.so-btn,.bm .buy button,.ws .btn{
  border-radius:9px!important;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:900!important;
  letter-spacing:.25px;text-decoration:none;transition:transform .15s ease,filter .15s ease,border-color .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent
}
.df-btn:hover,.btn:hover,.gang-btn:hover,.enter-btn:hover,.claim-btn:hover,.service:hover,.casino-tab:hover,.casino-play:hover,.casino-submit:hover,.staff-btn:hover,.sj-btn-link:hover,.so-btn:hover,.bm .buy button:hover,.ws .btn:hover{transform:translateY(-1px);filter:brightness(1.07)}
.df-btn:active,.btn:active,.gang-btn:active,.enter-btn:active,.claim-btn:active,.service:active,.casino-tab:active,.casino-play:active,.casino-submit:active,.staff-btn:active,.sj-btn-link:active,.so-btn:active,.bm .buy button:active,.ws .btn:active{transform:translateY(1px) scale(.99)}
.df-btn-primary,.btn.primary,.gang-btn.primary,.enter-btn,.bm .buy button{background:linear-gradient(180deg,#d92f48,#8d1428)!important;border-color:#ef5268!important;color:#fff!important;box-shadow:0 8px 20px rgba(223,42,68,.12)}
.df-btn-secondary,.btn:not(.primary):not(.good):not(.red),.gang-btn:not(.primary):not(.gold),.service{background:#141b24!important;border-color:#34404e!important;color:#dce5ef!important}
.df-btn-success,.btn.good,.so-btn.green{background:#153421!important;border-color:#34714a!important;color:#82e4a4!important}
.df-btn-danger,.btn.red,.staff-btn.red{background:#35121a!important;border-color:#7b2c3c!important;color:#ff91a1!important}
button:disabled,.btn:disabled,.enter-btn:disabled,.claim-btn:disabled{opacity:.42!important;filter:saturate(.6);cursor:not-allowed!important;transform:none!important}

/* Sidebar player identity */
.df-player-card{padding:12px!important;border:1px solid #3a2630!important;border-radius:14px!important;background:radial-gradient(circle at 20% 10%,rgba(255,64,88,.10),transparent 35%),linear-gradient(145deg,#121720,#090d12)!important;box-shadow:var(--df24-soft-shadow)!important}
.df-player-top{align-items:center!important;gap:12px!important}.df-player-card .df-avatar{position:relative;width:68px!important;height:68px!important;min-width:68px;border-radius:16px!important;border:1px solid #823145!important;padding:3px;background:linear-gradient(145deg,#461523,#10151d);box-shadow:0 0 0 3px rgba(255,64,88,.05),0 10px 26px rgba(0,0,0,.35)}
.df-player-card .df-avatar:after{content:"";position:absolute;inset:-4px;border:1px solid rgba(255,72,96,.16);border-radius:19px;pointer-events:none}.df-player-card .df-avatar img,.df-player-card .df-avatar-fallback{border-radius:12px!important}
.df-player-name{font-size:15px!important;letter-spacing:.25px}.df-player-meta{margin-top:4px!important;color:#8e99a8!important;font-size:8px!important}.df-world-rep{display:inline-flex!important;align-items:center;margin-top:6px;padding:4px 7px;border:1px solid #3b3959;border-radius:999px;background:#121327;color:#bca8ff!important;font-size:7.5px!important;font-weight:900!important;line-height:1.2}.df-status{margin-top:6px!important}
.df-wallet{gap:7px!important}.df-wallet-item{border-radius:10px!important;border-color:#252f3a!important;background:#0b1016!important}.df-wallet-label{font-size:8px!important;color:#788698!important}.df-wallet-value{font-size:11px!important}

/* Animated HUD bars and over-cap treatment */
.df-meter{position:relative;margin-bottom:10px!important}.df-meter-track,.df-track,.progbar,.progress{overflow:hidden!important;background:#080c11!important;border:1px solid #202833!important;box-shadow:inset 0 1px 5px rgba(0,0,0,.45)}
.df-meter-fill,.df-fill,.progbar i,.progress i{transition:width .75s cubic-bezier(.2,.75,.2,1),filter .3s ease!important;position:relative}
.df-meter-fill:after,.df-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.18) 42%,transparent 60%);transform:translateX(-120%);animation:df24-shimmer 4.2s ease-in-out infinite}
@keyframes df24-shimmer{0%,72%{transform:translateX(-120%)}88%,100%{transform:translateX(130%)}}
.df-meter.is-overcap .df-meter-value,.df-bar.is-overcap .df-bar-head span:last-child{color:#ffd56e!important}.df-meter.is-overcap .df-meter-track,.df-bar.is-overcap .df-track{border-color:#715927!important;box-shadow:0 0 0 2px rgba(239,184,79,.05),inset 0 1px 5px rgba(0,0,0,.45)}
.df-overcap-badge{display:inline-flex;margin-left:5px;padding:2px 5px;border:1px solid #745922;border-radius:999px;background:#21190b;color:#f0c76b;font-size:6.5px;font-weight:900;vertical-align:middle;letter-spacing:.2px}

/* Semantic state colors */
.df-state-success,.good,.success{--df24-state:var(--df24-green)}.df-state-warning,.warn,.warning{--df24-state:var(--df24-amber)}.df-state-danger,.danger,.locked{--df24-state:var(--df24-red)}.df-state-progress,.progression{--df24-state:var(--df24-purple)}

/* Empty states */
.df-empty-state,.df-empty,.gang-empty,.casino-empty,.sj-empty,.sm-empty{
  min-height:96px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center!important;padding:22px!important;
  border:1px dashed #36414e!important;border-radius:12px!important;background:linear-gradient(145deg,#0b1016,#080c11)!important;color:#748194!important
}
.df-empty-state:before,.df-empty:before,.gang-empty:before,.casino-empty:before,.sj-empty:before{content:"◇";font-size:20px;color:#aa5363;line-height:1}
.df-empty-action{display:inline-flex;margin-top:3px;padding:8px 11px;border:1px solid #713042;border-radius:8px;background:#2b1119;color:#ff8ea0!important;font-size:8px;font-weight:900;text-decoration:none}

/* Locked content cards show requirements clearly */
.mission.locked,.district.locked,.item.locked,.df-locked-card{opacity:1!important;filter:saturate(.72);border-color:#4e2932!important;background:linear-gradient(145deg,#151016,#0c0f14)!important}
.locked-reason,.df-lock-reasons{display:flex!important;gap:5px;flex-wrap:wrap;margin-top:10px!important;color:inherit!important}.locked-reason{padding:8px 9px;border:1px solid #5d2b35;border-radius:8px;background:#211016;color:#ff91a0!important}.df-lock-pill{display:inline-flex;padding:4px 7px;border:1px solid #65303a;border-radius:999px;background:#251118;color:#ff91a0;font-size:7px;font-weight:900}

/* Toasts */
#df-toast-stack{position:fixed;z-index:6000;top:max(14px,env(safe-area-inset-top,0px));right:max(14px,env(safe-area-inset-right,0px));width:min(390px,calc(100vw - 28px));display:grid;gap:8px;pointer-events:none}
.df-toast{pointer-events:auto;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid #34404b;border-left:4px solid var(--df24-blue);border-radius:12px;background:rgba(13,17,24,.97);box-shadow:0 22px 55px rgba(0,0,0,.48);backdrop-filter:blur(12px);animation:df24-toast-in .24s ease both;color:#dce4ed}
.df-toast.success{border-left-color:var(--df24-green)}.df-toast.error,.df-toast.danger{border-left-color:var(--df24-red)}.df-toast.warning{border-left-color:var(--df24-amber)}.df-toast-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#111923;color:#9ac8ff;font-weight:900}.df-toast.success .df-toast-icon{color:#77e5a0;background:#102219}.df-toast.error .df-toast-icon{color:#ff8b9b;background:#251017}.df-toast strong{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.5px}.df-toast p{margin:2px 0 0!important;color:#8d99a8!important;font-size:9px!important;line-height:1.45!important}.df-toast-close{border:0;background:transparent;color:#667385;font-size:18px;cursor:pointer}
@keyframes df24-toast-in{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}

/* Confirmation modal */
.df-modal-backdrop{position:fixed;z-index:6500;inset:0;display:none;place-items:center;padding:18px;background:rgba(0,0,0,.72);backdrop-filter:blur(5px)}.df-modal-backdrop.open{display:grid}.df-modal{width:min(460px,100%);border:1px solid #49313a;border-radius:16px;background:linear-gradient(145deg,#151a22,#0b0f14);box-shadow:0 30px 90px rgba(0,0,0,.62);overflow:hidden}.df-modal-head{display:flex;align-items:center;gap:10px;padding:16px 17px;border-bottom:1px solid #282f39}.df-modal-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#271018;color:#ff7185;font-weight:900}.df-modal-head h3{margin:0!important;font-size:14px!important}.df-modal-body{padding:16px 17px;color:#9aa6b4;font-size:10px;line-height:1.6}.df-modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:13px 17px;border-top:1px solid #282f39;background:#0a0e13}.df-modal-actions button{min-height:40px;padding:0 14px;border-radius:9px;border:1px solid #37414d;background:#151b23;color:#dce4ed;font-weight:900;font-size:9px;cursor:pointer}.df-modal-actions .confirm{border-color:#7b2d3d;background:#3b131c;color:#ff98a7}

/* Responsive tables -> mobile cards (JS supplies data-label) */
.df-table-stack{width:100%}.df-table-stack td,.df-table-stack th{vertical-align:top}

/* Page identities */
body.df-page-black_market .mcc-content-frame{background:radial-gradient(circle at 90% 5%,rgba(216,32,88,.08),transparent 32%)}body.df-page-black_market .bm>.hero{border-color:#653044!important;box-shadow:0 18px 55px rgba(167,22,67,.13)!important}
body.df-page-world .mcc-content-frame{background-image:linear-gradient(rgba(73,110,150,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(73,110,150,.035) 1px,transparent 1px);background-size:34px 34px}body.df-page-world .world-hero{border-color:#32485d!important}
body.df-page-territories .mcc-content-frame{background:radial-gradient(circle at 80% 10%,rgba(225,39,67,.07),transparent 30%)}body.df-page-territories .battle{box-shadow:0 0 0 1px rgba(255,64,88,.04),0 16px 38px rgba(0,0,0,.25)!important}
body.df-page-casino .casino-hero{box-shadow:0 22px 70px rgba(198,146,40,.12)!important}body.df-page-casino .casino-game-card{border-color:#3b3424!important}
body.df-page-workshop .mcc-content-frame{background:repeating-linear-gradient(135deg,rgba(255,255,255,.012) 0 1px,transparent 1px 18px)}body.df-page-workshop .ws>.hero{border-color:#5c4a29!important}body.df-page-workshop .ws .panel{border-color:#383a36!important}

/* Staff visual separation */
body.df-staff-page{--df24-red:#ff6178;background:radial-gradient(circle at 30% -20%,rgba(55,102,160,.12),transparent 35%),#07090d}body.df-staff-page .df-sidebar{border-right-color:rgba(83,134,193,.22)!important;background:linear-gradient(180deg,#08101a,#070a0e)!important}body.df-staff-page .df-staff-mode-card{border-color:#365879!important;background:linear-gradient(145deg,#0d1b29,#0a1018)!important}body.df-staff-page .staff-hero,body.df-staff-page .sm-hero,body.df-staff-page .sj-hero,body.df-staff-page .so-hero{border-color:#354b62!important;background:radial-gradient(circle at 90% 0,rgba(82,144,215,.14),transparent 34%),linear-gradient(145deg,#111a24,#0a0e14)!important}body.df-staff-page .df-nav-link.staff.active{border-color:#3e678e!important;background:#0e1b28!important;color:#a8d5ff!important}

/* Dashboard at-a-glance */
.df-glance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 14px}.df-glance-card{display:flex;align-items:center;gap:10px;min-height:78px;padding:12px;border:1px solid var(--df24-line);border-radius:12px;background:linear-gradient(145deg,#10161e,#0a0e13);box-shadow:var(--df24-soft-shadow);text-decoration:none}.df-glance-card:hover{transform:translateY(-2px);border-color:#465463}.df-glance-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#17111a;color:#ff7084;font-size:16px}.df-glance-card span{display:block;color:#6f7d8f;font-size:7px;text-transform:uppercase;font-weight:900}.df-glance-card strong{display:block;margin-top:4px;color:#e9eef4;font-size:10px}.df-glance-card small{display:block;margin-top:2px;color:#778596;font-size:7px}

/* Attack page polish */
body.df-combat-polish .hero{grid-template-columns:210px minmax(0,1fr)!important;border-radius:16px!important;background:radial-gradient(circle at 10% 10%,rgba(82,213,255,.07),transparent 24%),linear-gradient(145deg,#121822,#090d13)!important}body.df-combat-polish .portrait{height:190px!important;border-radius:14px!important;box-shadow:0 14px 34px rgba(0,0,0,.34)}body.df-combat-polish .target{border-radius:12px!important}body.df-combat-polish .target:hover{box-shadow:0 12px 28px rgba(0,0,0,.24)}body.df-combat-polish .attack-btn{border-radius:9px!important;box-shadow:0 8px 18px rgba(218,39,67,.13)}body.df-combat-polish .combat-feed,body.df-combat-polish #combat-feed{border-radius:13px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.02),0 14px 30px rgba(0,0,0,.22)}

/* Consistent inline icon tiles generated by JS */
.df-nav-icon svg,.df-ui-svg{width:18px;height:18px;display:block;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.df-nav-icon{color:#8f9aab}.df-nav-link.active .df-nav-icon,.df-nav-link:hover .df-nav-icon{color:#ff6078}

@media(max-width:980px){.df-glance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
  .mcc-content-frame{padding-left:11px!important;padding-right:11px!important}
  .df-hero,.m210-hero,.ft>.hero,.bm>.hero,.df-world>.world-hero,.gang-hero,.casino-hero,.ws>.hero,.staff-hero{padding:16px!important;border-radius:12px!important}
  .df-btn,.btn,.gang-btn,.enter-btn,.claim-btn,.service,.casino-tab,.casino-play,.casino-submit,.staff-btn,.sj-btn-link,.so-btn,.bm .buy button,.ws .btn{min-height:44px}
  .df-glance-grid{grid-template-columns:1fr 1fr;gap:7px}.df-glance-card{min-height:70px;padding:10px}
  #df-toast-stack{left:10px;right:10px;top:max(10px,env(safe-area-inset-top,0px));width:auto}
  .df-table-stack thead{display:none}.df-table-stack tbody,.df-table-stack tr,.df-table-stack td{display:block;width:100%}.df-table-stack tr{margin:0 0 10px;padding:8px 10px;border:1px solid #2b3541;border-radius:11px;background:#0c1117;box-shadow:0 10px 24px rgba(0,0,0,.17)}.df-table-stack td{display:grid;grid-template-columns:minmax(92px,38%) minmax(0,1fr);gap:10px;padding:7px 2px!important;border-bottom:1px solid #202833!important;text-align:left!important;min-width:0!important}.df-table-stack td:last-child{border-bottom:0!important}.df-table-stack td:before{content:attr(data-label);color:#6f7d8f;font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.45px}.df-table-stack td[colspan]{display:block;text-align:center!important}.df-table-stack td[colspan]:before{display:none}
  body.df-combat-polish .hero{grid-template-columns:1fr!important}body.df-combat-polish .portrait{height:160px!important}
}
@media(max-width:430px){.df-glance-grid{grid-template-columns:1fr}.df-player-card .df-avatar{width:62px!important;height:62px!important;min-width:62px}.df-modal-actions{display:grid;grid-template-columns:1fr 1fr}.df-modal-actions button{width:100%}}

/* v21.2.4 additional aliases for economy / legacy / navigation */
.m-hero,.sm-hero,.sj-hero,.so-hero,.ann-hero,.profile-hero,.mail-hero,.inv-hero,.crime-hero,.gym-hero,.forum-hero,.hosp-hero,.jail-hero{
  border-radius:var(--df24-radius)!important;box-shadow:var(--df24-shadow)!important
}
.m-card,.m-panel,.m-stat,.m-mini,.so-card,.sj-card,.ann-card,.profile-card,.inv-card,.crime-card,.gym-card,.forum-card{
  border-radius:var(--df24-radius)!important;border-color:var(--df24-line)!important;box-shadow:var(--df24-soft-shadow)
}
.m-btn,.ann-btn,.profile-btn,.crime-btn,.gym-btn,.forum-btn{
  border-radius:9px!important;min-height:38px;transition:transform .15s ease,filter .15s ease,border-color .15s ease
}
.m-btn:hover,.ann-btn:hover,.profile-btn:hover,.crime-btn:hover,.gym-btn:hover,.forum-btn:hover{transform:translateY(-1px);filter:brightness(1.06)}
.m-btn:active,.ann-btn:active,.profile-btn:active,.crime-btn:active,.gym-btn:active,.forum-btn:active{transform:translateY(1px) scale(.99)}
.df-player-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:5px!important}.df-player-meta .df-status{margin-top:0!important}
.df-action-icon.df-nav-icon{width:34px!important;height:34px!important;display:grid!important;place-items:center!important;border-radius:9px;background:#15111a!important;color:#ff6d83!important}.df-action-icon.df-nav-icon svg{width:19px;height:19px}
.df-legacy-page{font-family:Arial,Helvetica,sans-serif!important;color:var(--df24-text)!important}.df-legacy-page h1:first-of-type{padding:15px 17px!important;margin:0 0 14px!important;border:1px solid #343e4a;border-left:4px solid #507dab!important;border-radius:12px!important;background:linear-gradient(145deg,#111923,#0a0e14)!important;box-shadow:var(--df24-soft-shadow);font-size:clamp(22px,3vw,31px)!important;text-transform:none!important;letter-spacing:-.02em!important}.df-legacy-page h1:first-of-type:before{content:'DEADLY FEAR // CONTROL MODULE';display:block;margin-bottom:5px;color:#7db9ef;font-size:8px;letter-spacing:1.3px;text-transform:uppercase}
.df-site-footer{border-color:#202832!important;color:#566171!important}
@media(max-width:720px){.m-btn,.ann-btn,.profile-btn,.crime-btn,.gym-btn,.forum-btn{min-height:44px}.df-player-meta{gap:4px}}
.df-action-svg{width:18px;height:18px;display:inline-grid;place-items:center;flex:0 0 18px;color:currentColor}.df-action-svg svg{width:18px;height:18px;display:block;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.casino-tab,.m-tabs a,.bm .nav a,.ws .nav a,.gang-hero-actions a,.staff-nav a,.combat-toplinks a,.combat-more-grid a,.service{align-items:center!important;gap:7px!important}


/* v21.2.4 semantic button/state finishing pass */
.btn.green,.gang-btn.green,.m-btn.green,.df-btn.success,.btn.success{
  border-color:#287849!important;background:linear-gradient(180deg,#1b6439,#13472a)!important;color:#c9f7d9!important;box-shadow:0 8px 20px rgba(32,164,91,.12)!important
}
.btn.gold,.gang-btn.gold,.m-btn.gold,.df-btn.warning,.btn.warning{
  border-color:#785d27!important;background:linear-gradient(180deg,#5b431b,#3a2b13)!important;color:#ffe0a0!important;box-shadow:0 8px 20px rgba(190,137,38,.11)!important
}
.btn.red,.gang-btn.red,.m-btn.red,.df-btn.danger,.btn.danger{
  border-color:#7e3040!important;background:linear-gradient(180deg,#5d1d2a,#3d141c)!important;color:#ffbdc7!important;box-shadow:0 8px 20px rgba(224,44,71,.12)!important
}
.tag.hot,.tag.red,.m-badge.contraband{border-color:#6d2d3a!important;background:#281118!important;color:#ff91a1!important}
.tag.good,.m-badge.success{border-color:#295d3e!important;background:#102018!important;color:#79e4a0!important}
.tag.warn{border-color:#6b5428!important;background:#211a0e!important;color:#efca76!important}

/* Bring Gang Upgrades into the shared card/header system */
.gu-hero{border-radius:var(--df24-radius)!important;border-color:#3a3038!important;box-shadow:var(--df24-shadow)!important}
.df-gu .panel,.df-gu .upgrade{border-radius:var(--df24-radius)!important;border-color:var(--df24-line)!important;box-shadow:var(--df24-soft-shadow)!important}
.df-gu .head{background:linear-gradient(180deg,#121923,#0e141c)!important}.df-gu .head h2{font-size:12px!important;letter-spacing:.15px}
.df-gu .gu-btn,.df-gu .upgrade button{transition:transform .15s ease,border-color .15s ease,filter .15s ease}.df-gu .gu-btn:hover,.df-gu .upgrade button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.08)}

/* Section-title icon treatment, supplied by visual-polish.js */
.df-section-title{display:flex!important;align-items:center;gap:8px!important}.df-section-title .df-section-icon{width:24px;height:24px;flex:0 0 24px;display:grid;place-items:center;border:1px solid #3b4653;border-radius:7px;background:#111923;color:#8dbcec}.df-section-title .df-section-icon svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* Forms and combat touch targets */
body.df-combat-polish .attack-btn,body.df-combat-polish button,.df-modal-actions button{touch-action:manipulation}
@media(max-width:720px){
  .df-gu .gu-btn,.df-gu .upgrade button{min-height:44px}.df-modal-actions{display:grid;grid-template-columns:1fr 1fr}.df-modal-actions button{width:100%}
}
