
:root{--h:220;--club:hsl(var(--h) 76% 42%);--club2:hsl(calc(var(--h) + 22) 75% 23%);--bg:#f4f7fb;--text:#172033;--muted:#64748b;--line:#dfe6ef;--ok:#15803d;--warn:#b45309;--bad:#b91c1c}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}
button,input,select{font:inherit}.hidden{display:none!important}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,hsl(220 80% 94%),#f8fafc 45%,hsl(260 65% 94%))}
.login-card{width:min(460px,92vw);background:white;border:1px solid #e2e8f0;border-radius:24px;padding:28px;box-shadow:0 24px 70px #22304a22}.brand{display:flex;gap:14px;align-items:center}.crest{width:58px;height:66px;clip-path:polygon(50% 0,93% 16%,86% 75%,50% 100%,14% 75%,7% 16%);display:grid;place-items:center;background:linear-gradient(145deg,var(--club),var(--club2));color:white;font-weight:900;font-size:20px;box-shadow:inset 0 0 0 4px #ffffff55}.login h1{margin:0;font-size:24px}.sub{color:var(--muted);font-size:14px}.field{display:grid;gap:6px;margin-top:16px}.field label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#475569}.field input,.field select{border:1px solid #cbd5e1;border-radius:10px;padding:11px 12px;background:white}.primary{border:0;border-radius:10px;padding:12px 16px;color:white;background:linear-gradient(135deg,var(--club),var(--club2));font-weight:800;cursor:pointer}.ghost{border:1px solid #cbd5e1;background:white;border-radius:9px;padding:8px 11px;cursor:pointer}.hint{margin-top:15px;padding:12px;background:#f8fafc;border-radius:10px;font-size:12px;color:#475569;line-height:1.5}
.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--club2),#111827);color:white;padding:22px 16px;position:sticky;top:0;height:100vh}.club-card{text-align:center;border-bottom:1px solid #ffffff25;padding-bottom:18px}.club-card .crest{margin:auto;width:78px;height:88px}.club-card h2{font-size:17px;margin:10px 0 2px}.club-card p{margin:0;color:#ffffffaa;font-size:12px}.nav{margin-top:20px;display:grid;gap:6px}.nav button{border:0;background:transparent;color:#ffffffc7;text-align:left;padding:11px 12px;border-radius:9px;cursor:pointer}.nav button.active,.nav button:hover{background:#ffffff18;color:white}.main{min-width:0}.topbar{height:70px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}.topbar h1{font-size:20px}.tools{display:flex;gap:9px;align-items:center}.content{padding:24px 28px 50px}.hero{background:linear-gradient(120deg,var(--club2),var(--club));color:white;border-radius:20px;padding:24px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:260px;height:260px;border:45px solid #ffffff12;border-radius:50%;right:-55px;top:-80px}.manager{display:flex;gap:16px;align-items:center;z-index:1}.photo{width:82px;height:82px;border-radius:50%;border:4px solid #ffffff55;background:#ffffff24;display:grid;place-items:center;overflow:hidden;font-size:30px}.photo img{width:100%;height:100%;object-fit:cover}.hero h2{margin:0 0 3px}.hero p{margin:0;color:#ffffffbf}.money{font-size:28px;font-weight:900;z-index:1}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}.card{background:white;border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:0 5px 20px #27364b0b}.kpi b{font-size:24px;display:block}.kpi span{font-size:12px;color:var(--muted);text-transform:uppercase;font-weight:800;letter-spacing:.04em}.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
.section-head{display:flex;justify-content:space-between;align-items:center;margin:24px 0 10px}.section-head h2{font-size:18px;margin:0}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:14px}.table{border-collapse:collapse;width:max-content;min-width:100%}.table th{position:sticky;top:0;background:#eef2f7;padding:9px;font-size:11px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:7px 9px;border-bottom:1px solid #edf1f5;font-size:12px;white-space:nowrap}.table input,.table select{width:115px;border:1px solid #d7dee8;border-radius:7px;padding:6px;background:white}.table .name-input{width:180px}.sold{opacity:.78;text-decoration:line-through}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef2ff;font-size:11px;font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.panel{background:white;border:1px solid var(--line);border-radius:15px;padding:18px}.panel h3{margin:0 0 12px}.result{margin-top:15px;border-top:1px solid var(--line);padding-top:13px;display:grid;gap:7px}.result-row{display:flex;justify-content:space-between}.result-row.total{font-weight:900;font-size:18px;border-top:2px solid #cbd5e1;padding-top:10px}.status-list{display:grid;gap:8px}.status-item{display:flex;justify-content:space-between;padding:10px;border:1px solid var(--line);border-radius:10px}.modal{position:fixed;inset:0;background:#0f172acc;display:grid;place-items:center;z-index:20;padding:18px}.modal-card{background:white;border-radius:18px;padding:22px;width:min(620px,96vw);max-height:90vh;overflow:auto}.modal-card h2{margin-top:0}.admin-team{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:10px 0}.note{font-size:12px;color:var(--muted);line-height:1.5}.toast{position:fixed;bottom:20px;right:20px;background:#0f172a;color:white;padding:12px 16px;border-radius:10px;z-index:50}
@media(max-width:1000px){.grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr 1fr}.shell{grid-template-columns:210px 1fr}}
@media(max-width:760px){.shell{display:block}.sidebar{height:auto;position:relative}.nav{grid-template-columns:repeat(3,1fr)}.topbar{padding:0 14px}.content{padding:14px}.grid,.form-grid{grid-template-columns:1fr}.hero{align-items:flex-start;gap:20px;flex-direction:column}.tools select{max-width:100px}}


.stadium-hero{position:relative;min-height:360px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#080b0f;box-shadow:0 18px 45px #0007}
.stadium-hero img{width:100%;height:420px;display:block;object-fit:cover}
.stadium-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,8,12,.92) 0%,rgba(5,8,12,.48) 38%,rgba(5,8,12,.05) 72%),linear-gradient(0deg,rgba(5,8,12,.55),transparent 50%)}
.stadium-title{position:absolute;left:30px;bottom:30px;max-width:520px}
.stadium-title span{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800;color:hsl(var(--h) 92% 65%);margin-bottom:8px}
.stadium-title h2{font-size:34px;margin:0 0 8px}
.stadium-title b{font-size:20px}
@media(max-width:800px){.stadium-hero img{height:310px}.stadium-title{left:20px;bottom:20px}.stadium-title h2{font-size:27px}}


.crest-logo{background:transparent!important;border:0!important;box-shadow:none!important}
.crest-logo img{width:74px;height:74px;object-fit:contain;display:block}
.bayern-theme{--bayern-red:#dc052d;--bayern-blue:#0066b2}
.bayern-theme .sidebar{background:linear-gradient(180deg,#a3001f 0%,#520012 45%,#080b11 100%)}
.bayern-theme .primary,.bayern-theme .nav button.active{background:linear-gradient(135deg,#dc052d,#b50024)}
.bayern-theme .club-card{border-bottom-color:#ffffff35}
.bayern-theme .topbar{border-bottom-color:#dc052d55}
.danger{background:#7d1427;color:#fff;border:1px solid #a72a3d;border-radius:8px;padding:8px 12px;cursor:pointer}
.small{font-size:12px;white-space:nowrap}
.add-player-panel{border-left:4px solid hsl(var(--h) 75% 48%)}
input[readonly]{cursor:not-allowed}
.table input[readonly]{
  opacity:1;
  background:#f4f6f9;
  color:#172033;
  border-color:#d7dee8;
  -webkit-text-fill-color:#172033;
}
.table input:not([readonly]){
  background:#ffffff;
  color:#111827;
  -webkit-text-fill-color:#111827;
}
.table tr.sold input{
  color:#64748b;
  -webkit-text-fill-color:#64748b;
}
.bayern-theme .table input[readonly]{
  background:#f7f8fa;
  color:#172033;
  -webkit-text-fill-color:#172033;
}
.stadium-hero img{image-rendering:auto}

.finance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.finance-kpi b{font-size:24px}
.money small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.12em;opacity:.7;margin-bottom:4px}
.live-finance-bar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:16px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line);box-shadow:0 10px 25px #0006}
.live-finance-bar>div{background:#0b1017;padding:14px 18px}
.live-finance-bar span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;opacity:.66;margin-bottom:5px}
.live-finance-bar b{font-size:21px}
.field label{display:flex;justify-content:space-between;gap:12px;align-items:center}
.field-money{font-weight:800;color:#52cf86;white-space:nowrap}
.field-money.bad{color:#ff6b7d}
@media(max-width:1100px){.finance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.finance-grid,.live-finance-bar{grid-template-columns:1fr}.live-finance-bar{position:static}}

.choice-detail{margin:-6px 0 14px;padding:10px 12px;border-left:3px solid hsl(var(--h) 75% 52%);background:#0b1119;border-radius:6px}
.choice-detail b,.choice-detail span{display:block}.choice-detail span{font-size:12px;margin-top:4px}.choice-detail p{margin:6px 0 0;opacity:.72;font-size:12px}
.cup-prize-strip{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:16px;padding:13px 16px;border:1px solid var(--line);border-radius:10px;background:#0a0f16}
.cup-prize-strip span{padding:5px 9px;border-radius:999px;background:#151d28;font-size:12px}
.contract-actions{min-width:230px;display:grid;grid-template-columns:repeat(3,auto);gap:7px;align-items:center}
.contract-actions .note{grid-column:1/-1;white-space:normal}
.contract-actions button{grid-column:1/-1}
button:disabled{opacity:.55;cursor:not-allowed}
.total-balance{border-top:2px solid var(--line);margin-top:6px;padding-top:12px!important}

.remove-player{grid-column:1/-1;background:transparent;color:#ff9aa8;border:1px solid #743342;border-radius:8px;padding:7px 10px;cursor:pointer}
.remove-player:hover{background:#38121c;color:#fff;border-color:#b64a61}

.registration-panel{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#0c121b}
.workflow-prompt{display:flex;gap:12px;align-items:flex-start;margin:12px 0 16px;padding:13px 15px;border:1px solid hsl(var(--h) 65% 44% / .55);border-left:4px solid hsl(var(--h) 75% 55%);border-radius:9px;background:hsl(var(--h) 40% 14% / .72)}
.workflow-prompt b{white-space:nowrap}.workflow-prompt span{opacity:.85}
.workflow-banner{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px;padding:12px 15px;border:1px solid var(--line);border-radius:9px;background:#0b1119}
.squad-table{border-collapse:separate;border-spacing:0}
.squad-table th{position:sticky;top:0;z-index:3;color:#fff;border-bottom:2px solid hsl(var(--h) 70% 58%)}
.squad-table th:nth-child(3n+1),.squad-table .col-group-0{background:hsl(var(--h) 48% 20%)}
.squad-table th:nth-child(3n+2),.squad-table .col-group-1{background:hsl(calc(var(--h) + 18) 42% 24%)}
.squad-table th:nth-child(3n+3),.squad-table .col-group-2{background:hsl(calc(var(--h) + 205) 36% 22%)}
.squad-table td{border-right:1px solid #ffffff12;border-bottom:1px solid #ffffff14}
.squad-table tbody tr:nth-child(even) td{filter:brightness(1.12)}
.squad-table input{min-width:100px;font-variant-numeric:tabular-nums}
.squad-table .name-input{min-width:180px;font-weight:700}
.squad-table .number-input{text-align:right;min-width:125px}
.bayern-theme .squad-table th:nth-child(3n+1),.bayern-theme .squad-table .col-group-0{background:#741525}
.bayern-theme .squad-table th:nth-child(3n+2),.bayern-theme .squad-table .col-group-1{background:#173b70}
.bayern-theme .squad-table th:nth-child(3n+3),.bayern-theme .squad-table .col-group-2{background:#e9edf3;color:#142036}
.bayern-theme .squad-table .col-group-0 input{background:#fff4f5;color:#3c1018;-webkit-text-fill-color:#3c1018}
.bayern-theme .squad-table .col-group-1 input{background:#eef5ff;color:#112b51;-webkit-text-fill-color:#112b51}
.bayern-theme .squad-table .col-group-2 input{background:#fff;color:#172033;-webkit-text-fill-color:#172033}
.pending-row td{box-shadow:inset 0 2px 0 #f5b942,inset 0 -2px 0 #f5b942}
.badge.warn{background:#5c4310;color:#ffd978}
.sale-preview{grid-column:1/-1;display:grid;gap:3px;padding:9px;border-radius:7px;background:#0b1119;border:1px solid var(--line);font-size:11px}
.sale-preview b{font-size:13px;color:#66d995}
.admin-team-expanded{align-items:flex-start}.pending-list{display:flex;flex-direction:column;gap:7px;margin-top:9px}.pending-list span{display:block;padding:8px;background:#101722;border-radius:7px}
@media(max-width:800px){.workflow-banner,.workflow-prompt{flex-direction:column}.workflow-prompt b{white-space:normal}}

.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}
.deadline{padding:9px 11px;border-radius:8px;background:#2b1720;border:1px solid #763848}
.club-table{border-collapse:separate;border-spacing:0}
.club-table thead th{font-size:11px;padding:5px 6px;background:hsl(var(--h) 72% 25%);color:#fff;border-bottom:3px solid hsl(var(--h) 78% 55%)}
.club-table tbody tr:nth-child(odd) td{background:color-mix(in srgb,hsl(var(--h) 60% 23%) 72%,#fff 28%)}
.club-table tbody tr:nth-child(even) td{background:color-mix(in srgb,hsl(var(--h) 55% 15%) 82%,#fff 18%)}
.club-table tbody td:first-child{border-left:4px solid hsl(var(--h) 75% 52%)}
.bayern-theme .club-table thead th{font-size:11px;padding:5px 6px;background:#b6002c}
.bayern-theme .club-table tbody tr:nth-child(odd) td{background:#f4f7fb}
.bayern-theme .club-table tbody tr:nth-child(even) td{background:#dfe7f2}
.bayern-theme .club-table tbody td:first-child{border-left-color:#dc052d}
.bayern-theme .club-table input{background:#fff!important;color:#101828!important;-webkit-text-fill-color:#101828!important}
.bayern-theme .club-table tr:nth-child(even) input[readonly]{background:#edf2f8!important}
.pending-row td{box-shadow:inset 0 0 0 999px rgba(245,180,35,.10)}
.badge.pending{background:#735511;color:#ffe5a0}
.sale-preview{min-width:220px;display:grid;gap:4px}
.sale-preview b{font-size:14px;color:#16884f}
.sale-preview span,.sale-preview small{font-size:12px}
.sale-preview button{margin-top:4px}
.money-input{text-align:right;font-variant-numeric:tabular-nums}
.squad-summary{margin-bottom:16px}
@media(max-width:900px){.club-table{min-width:1900px}}

.player-identity{display:flex;align-items:center;gap:9px;min-width:150px}
.player-photo,.player-photo-fallback{width:38px;height:38px;border-radius:50%;object-fit:cover;flex:0 0 38px;border:2px solid rgba(255,255,255,.7)}
.player-photo-fallback{display:grid;place-items:center;background:#d7dee8;color:#172033;font-weight:800}
.disappear-sale{grid-column:1/-1;border-color:#7e6a2d;color:#ffe09a}
.disappear-sale:hover{background:#3c3213}
.club-table td:first-child{min-width:180px}

.reset-password{margin-left:6px}

.division-badge{display:inline-flex;align-items:center;margin-top:7px;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.12);font-size:.78rem;font-weight:800;letter-spacing:.02em}
.division-summary{display:flex;flex-direction:column;gap:3px;padding:11px 12px;margin-bottom:12px;border-radius:12px;background:rgba(255,255,255,.05)}
.division-summary span{font-size:.82rem;opacity:.78}


/* Version 15 dashboard readability and manager portrait */
.choice-detail{
 color:#f8fafc;
}
.choice-detail b{
 color:#ffffff;
}
.choice-detail span{
 color:#dbe7f5;
}
.choice-detail p{
 color:#cbd5e1;
 opacity:1;
}
.panel .field label{
 color:#334155;
}
.panel select:disabled,
.panel input:disabled{
 color:#334155;
 -webkit-text-fill-color:#334155;
 opacity:1;
 background:#f1f5f9;
}
.manager-copy{
 display:flex;
 flex-direction:column;
 align-items:flex-start;
}
.manager-upload-button{
 display:inline-flex;
 margin-top:9px;
 padding:6px 10px;
 border:1px solid rgba(255,255,255,.45);
 border-radius:8px;
 background:rgba(255,255,255,.13);
 color:#fff;
 font-size:12px;
 font-weight:800;
 cursor:pointer;
 position:relative;
 z-index:2;
}
.manager-upload-button:hover{
 background:rgba(255,255,255,.23);
}
.manager-photo{
 cursor:pointer;
 flex:0 0 auto;
}


/* Version 16 squad column views */
.squad-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.column-view-switch{display:inline-flex;padding:3px;border-radius:10px;background:rgba(15,23,42,.08);border:1px solid rgba(15,23,42,.12)}
.column-view-switch button{border:0;background:transparent;padding:7px 11px;border-radius:7px;font-weight:800;cursor:pointer;color:#475569}
.column-view-switch button.active{background:#fff;color:#0f172a;box-shadow:0 1px 4px rgba(15,23,42,.18)}


/* Version 17 squad grouping and Transfermarkt photo links */
.position-group-row th{
 position:sticky;
 left:0;
 padding:10px 14px;
 background:#dbe7f5;
 color:#0f172a;
 text-align:left;
 font-size:.82rem;
 letter-spacing:.05em;
 text-transform:uppercase;
 border-top:2px solid #94a3b8;
}
.position-group-row th span{
 display:inline-flex;
 min-width:24px;
 justify-content:center;
 margin-left:7px;
 padding:2px 7px;
 border-radius:999px;
 background:#fff;
 color:#334155;
}
.player-photo-link{
 display:inline-flex;
 flex:0 0 auto;
 text-decoration:none;
 border-radius:50%;
}
.player-photo-link:focus-visible{
 outline:3px solid rgba(37,99,235,.45);
 outline-offset:2px;
}


/* Version 18: clearer losses and readable dark squad panels */
.result-row{
 align-items:center;
 gap:14px;
 padding:8px 10px;
 border-radius:8px;
}
.result-row.amount-negative{
 background:#fee2e2;
 border:1px solid #fca5a5;
 color:#991b1b;
}
.result-row.amount-negative span,
.result-row.amount-negative b{
 color:#991b1b;
}
.result-row.amount-positive{
 background:#dcfce7;
 border:1px solid #86efac;
 color:#166534;
}
.result-row.amount-positive span,
.result-row.amount-positive b{
 color:#166534;
}
.result-row.amount-neutral{
 background:#f1f5f9;
 border:1px solid #cbd5e1;
 color:#334155;
}
.result-row.amount-neutral span,
.result-row.amount-neutral b{
 color:#334155;
}

/* Any dark squad-area background must use light text. */
.club-table td,
.squad-table td{
 color:#172033;
}
.sale-preview{
 background:#0b1119 !important;
 color:#ffffff !important;
}
.sale-preview span,
.sale-preview small{
 color:#e5edf7 !important;
 opacity:1;
}
.sale-preview .sale-value{
 color:#ffffff !important;
 font-weight:700;
}
.sale-preview .sale-deduction{
 color:#ff9aa8 !important;
 font-weight:700;
}
.sale-preview .sale-net-positive{
 color:#66d995 !important;
}
.sale-preview .sale-net-negative{
 color:#ff6b7d !important;
}
.sale-preview .ghost{
 color:#ffffff;
}
.sale-preview .remove-player{
 color:#ffb3bd;
}
.sale-preview button{
 font-weight:800;
}

/* Version 19: real stadium photographs */
.stadium-image-actions{position:absolute;right:18px;bottom:18px;z-index:3;display:flex;align-items:center;gap:9px}
.stadium-image-button,.stadium-source-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid rgba(255,255,255,.55);border-radius:9px;background:rgba(10,18,30,.82);color:#fff;font-size:.78rem;font-weight:800;text-decoration:none;cursor:pointer}
.stadium-image-notice{margin-top:10px;padding:10px 12px;border-radius:9px;background:#e8f3ff;color:#174a78;font-size:.82rem}
.stadium-image-notice.error{background:#fee2e2;color:#991b1b}


/* Version 22: contract extension dialog */
.extension-dialog{
 width:min(680px,calc(100vw - 28px));
 border:0;
 border-radius:18px;
 padding:0;
 box-shadow:0 30px 80px rgba(2,8,23,.42);
}
.extension-dialog::backdrop{background:rgba(2,8,23,.72);backdrop-filter:blur(4px)}
.extension-form{padding:22px;background:#fff;color:#172033}
.extension-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.extension-head small{font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#64748b}
.extension-head h3{margin:3px 0 0;font-size:1.45rem}
.dialog-close{border:0;background:#eef2f7;color:#172033;border-radius:999px;width:36px;height:36px;font-size:1.4rem;cursor:pointer}
.extension-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}
.extension-grid label{display:flex;flex-direction:column;gap:5px;font-weight:800}
.extension-grid label span{font-size:.72rem;font-weight:600;color:#64748b}
.extension-grid input,.extension-grid select{min-height:44px;border:1px solid #cbd5e1;border-radius:9px;padding:9px 11px;background:#fff;color:#172033;font:inherit}
.extension-preview{display:grid;grid-template-columns:1fr auto;gap:8px 18px;padding:14px;border-radius:12px;background:#eef6ff;color:#173b61}
.extension-preview b{text-align:right}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
@media(max-width:620px){.extension-grid{grid-template-columns:1fr}}


/* Version 23: neutral zero values, readable dark finance bars and sticky squad headings */
.neutral-amount{
 color:#172033 !important;
}

/* Dark end-of-season / finance bars always use high-contrast white text. */
.live-finance-bar,
.live-finance-bar > div{
 color:#ffffff;
}
.live-finance-bar span,
.live-finance-bar b,
.live-finance-bar small{
 color:#ffffff !important;
 -webkit-text-fill-color:#ffffff;
 opacity:1;
}

/* Keep the squad column labels visible while the page scrolls vertically. */
.squad-table-wrap{
 overflow-x:auto;
 overflow-y:visible;
}
.club-table thead th{font-size:11px;padding:5px 6px;
 position:sticky;
 top:70px;
 z-index:12;
 box-shadow:0 2px 0 rgba(255,255,255,.18),0 5px 12px rgba(15,23,42,.18);
}
.club-table .position-group-row th{
 top:104px;
 z-index:11;
}

/* The older squad workflow table receives the same sticky behavior. */
.squad-table-wrap .squad-table thead th{font-size:11px;padding:4px 6px;
 top:70px;
 z-index:12;
}


/* Version 24: repeat squad headings after every three players */
.repeated-squad-header th{
 background:#172033 !important;
 color:#ffffff !important;
 font-size:.76rem;
 font-weight:800;
 white-space:nowrap;
 border-top:8px solid #eef2f7;
 border-bottom:1px solid rgba(255,255,255,.24);
}
.extension-now{
 margin-top:5px;
}
.undo-extension{
 margin-top:5px;
 border-color:#f59e0b !important;
 color:#fff !important;
}


/* Version 25: readable squad actions and complete sale preview */
.club-table th:last-child,
.club-table td:last-child{
 min-width:310px;
 width:310px;
 max-width:360px;
 vertical-align:top;
}

.club-table .sale-preview{
 display:flex;
 flex-direction:column;
 align-items:stretch;
 gap:7px;
 min-width:280px;
 white-space:normal;
 overflow:visible;
}

.sale-preview-summary{
 display:grid;
 grid-template-columns:1fr;
 gap:4px;
 padding:9px 10px;
 border-radius:10px;
 background:#f8fafc;
 border:1px solid #dbe3ec;
 color:#172033;
}

.sale-preview-summary span,
.sale-preview-summary b{
 white-space:normal;
 overflow-wrap:anywhere;
}

.club-table .sale-preview button{
 width:100%;
 min-height:34px;
 white-space:normal;
 line-height:1.2;
 padding:7px 9px;
}

/* Explicit high-contrast action button colors */
.club-table .sell-now{
 background:#b91c1c !important;
 border-color:#b91c1c !important;
 color:#ffffff !important;
 -webkit-text-fill-color:#ffffff !important;
}

.club-table .disappear-sale{
 background:#7c2d12 !important;
 border-color:#7c2d12 !important;
 color:#ffffff !important;
 -webkit-text-fill-color:#ffffff !important;
}

.club-table .extension-now{
 background:#15803d !important;
 border-color:#15803d !important;
 color:#ffffff !important;
 -webkit-text-fill-color:#ffffff !important;
}

.club-table .undo-extension{
 background:#f59e0b !important;
 border-color:#d97706 !important;
 color:#172033 !important;
 -webkit-text-fill-color:#172033 !important;
}

.club-table .approve-player{
 background:#1d4ed8 !important;
 border-color:#1d4ed8 !important;
 color:#ffffff !important;
 -webkit-text-fill-color:#ffffff !important;
}

.club-table .remove-player{
 background:#991b1b !important;
 border-color:#991b1b !important;
 color:#ffffff !important;
 -webkit-text-fill-color:#ffffff !important;
}

/* Keep the full final action column reachable on narrower screens. */
.squad-repeat-wrap{
 overflow-x:auto;
 padding-bottom:8px;
}
.squad-repeat-wrap .club-table{
 min-width:max-content;
}


/* Version 26: full sale/action box and persistent horizontal squad navigation */
.club-table th:last-child,
.club-table td:last-child{
 min-width:390px !important;
 width:390px !important;
 max-width:none !important;
 overflow:visible !important;
 box-sizing:border-box;
}

.club-table td:last-child{
 padding-right:18px !important;
}

.club-table .sale-preview{
 min-width:350px !important;
 width:100%;
 max-width:none !important;
 box-sizing:border-box;
 overflow:visible !important;
}

.club-table .sale-preview-summary{
 width:100%;
 box-sizing:border-box;
}

.squad-repeat-wrap{
 padding-right:28px;
 padding-bottom:72px;
 scroll-behavior:smooth;
 scrollbar-gutter:stable;
}

.squad-scroll-dock{
 position:fixed;
 left:50%;
 bottom:12px;
 transform:translateX(-50%);
 z-index:1000;
 display:grid;
 grid-template-columns:44px minmax(220px,560px) 44px;
 align-items:center;
 gap:9px;
 width:min(720px,calc(100vw - 28px));
 padding:9px 11px;
 border:1px solid rgba(255,255,255,.2);
 border-radius:16px;
 background:rgba(15,23,42,.94);
 box-shadow:0 14px 36px rgba(2,8,23,.38);
 backdrop-filter:blur(10px);
}

.squad-scroll-dock button{
 width:44px;
 height:38px;
 border:1px solid rgba(255,255,255,.28);
 border-radius:10px;
 background:#ffffff;
 color:#172033;
 font-size:1.05rem;
 font-weight:900;
 cursor:pointer;
}

.squad-scroll-dock button:hover{
 background:#e8eef7;
}

.squad-scroll-track{
 position:relative;
 height:14px;
 border-radius:999px;
 background:rgba(255,255,255,.2);
 cursor:pointer;
 overflow:hidden;
}

.squad-scroll-thumb{
 position:absolute;
 top:2px;
 left:0;
 height:10px;
 min-width:42px;
 border-radius:999px;
 background:#ffffff;
 will-change:transform;
}

.squad-scroll-dock.inactive{
 opacity:.45;
}

.squad-scroll-dock.inactive button,
.squad-scroll-dock.inactive .squad-scroll-track{
 cursor:default;
}

@media(max-width:700px){
 .club-table th:last-child,
 .club-table td:last-child{
  min-width:340px !important;
  width:340px !important;
 }
 .club-table .sale-preview{
  min-width:302px !important;
 }
 .squad-scroll-dock{
  grid-template-columns:42px minmax(120px,1fr) 42px;
 }
}


/* Version 27: season lifecycle, deadlines, review and archive */
.contract-deadline-banner,
.eos-access-banner{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:18px;
 padding:13px 16px;
 margin:0 0 16px;
 border-radius:13px;
 border:1px solid #cbd5e1;
 background:#f8fafc;
 color:#172033;
}
.contract-deadline-banner.active,.eos-access-banner.open{border-color:#16a34a;background:#f0fdf4}
.contract-deadline-banner.expired{border-color:#dc2626;background:#fef2f2}
.contract-deadline-banner.unset,.eos-access-banner.locked{border-color:#f59e0b;background:#fffbeb}
.eos-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}
.eos-status{padding:7px 10px;border-radius:999px;font-weight:800;background:#e2e8f0;color:#172033}
.eos-status.submitted{background:#dbeafe;color:#1e40af}
.eos-status.confirmed{background:#dcfce7;color:#166534}
.eos-status.rejected{background:#fee2e2;color:#991b1b}
.eos-submit{margin-top:14px;width:100%;min-height:46px}
.eos-lock-note,.eos-admin-note{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fff7ed;color:#7c2d12}
.admin-season-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;padding:22px;border-radius:18px;background:#172033;color:#fff}
.admin-season-hero>div{display:flex;flex-direction:column}.admin-season-hero small,.admin-season-hero span{color:#cbd5e1}.admin-season-hero b{font-size:2rem}
.next-season-button,.archive-season-button{min-height:58px;padding:14px 24px;border:0;border-radius:14px;background:#16a34a;color:#fff;font-size:1.05rem;font-weight:900;cursor:pointer}
.archive-season-button{width:100%;margin-top:14px;background:#1d4ed8}
.next-season-button:disabled,.archive-season-button:disabled{opacity:.35;cursor:not-allowed}
.admin-stat-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #e2e8f0}
.archive-list{display:flex;flex-direction:column;gap:7px;margin-top:18px;padding-top:14px;border-top:1px solid #e2e8f0}
.eos-club-review{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid #e2e8f0}
.eos-club-review>div:first-child{display:flex;flex-direction:column;gap:3px}
.eos-club-review em{font-style:normal;color:#b45309}
.eos-club-review.confirmed{border-left:5px solid #16a34a;padding-left:12px}
.eos-club-review.submitted{border-left:5px solid #2563eb;padding-left:12px}
.eos-club-review.rejected{border-left:5px solid #dc2626;padding-left:12px}
@media(max-width:800px){
 .contract-deadline-banner,.eos-access-banner,.admin-season-hero,.eos-club-review{align-items:flex-start;flex-direction:column}
 .next-season-button{width:100%}
}


/* Version 28: admin confirmation queue for extensions and sales */
.contract-action-review{border:2px solid #cbd5e1}
.contract-review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:8px}
.pending-count{padding:8px 12px;border-radius:999px;background:#fff7ed;color:#9a3412;font-weight:900;white-space:nowrap}
.contract-review-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0;border-top:1px solid #e2e8f0}
.contract-review-row.extension{border-left:5px solid #16a34a;padding-left:13px}
.contract-review-row.sale{border-left:5px solid #dc2626;padding-left:13px}
.contract-review-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.contract-review-main>b{font-size:1.05rem}
.contract-review-main small{line-height:1.45;color:#334155}
.contract-review-actions{display:flex;gap:8px;flex-shrink:0}
.source-links{display:flex;gap:7px;flex-wrap:wrap}
.source-links span{font-size:.75rem;padding:4px 7px;border-radius:999px;background:#e2e8f0;color:#334155}
.empty-review{padding:18px 0;color:#64748b}
@media(max-width:850px){
 .contract-review-head,.contract-review-row{flex-direction:column;align-items:stretch}
 .contract-review-actions button{flex:1}
}


/* Version 29: explicit automatic division bonus in end-of-season settlement */
#divisionBonusMoney{
 font-weight:900;
 color:#166534;
}


/* Version 31: stadium on homepage and reversible expansion */
.homepage-stadium{margin:16px 0}
.homepage-stadium-head,.stadium-expansion-controls,.stadium-undo-panel{
 display:flex;justify-content:space-between;align-items:center;gap:18px
}
.homepage-stadium-head small{font-weight:800;text-transform:uppercase;color:#64748b}
.homepage-stadium-head h3{margin:3px 0}
.stadium-manager-picture{position:relative;margin-top:14px;border-radius:14px;overflow:hidden;background:#0f172a}
.stadium-manager-picture img{width:100%;height:280px;object-fit:cover;display:block}
.stadium-manager-picture span{position:absolute;left:12px;top:12px;padding:7px 10px;border-radius:999px;background:rgba(15,23,42,.82);color:#fff;font-weight:800}
.stadium-interior-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.stadium-interior-pair figure{margin:0;border:1px solid #cbd5e1;border-radius:13px;overflow:hidden;background:#fff}
.stadium-interior-pair img{width:100%;height:220px;object-fit:cover;display:block}
.stadium-figure-title{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:#0f172a;color:#fff}
.stadium-expansion-controls{margin-top:12px;padding:13px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;flex-wrap:wrap}
.stadium-expansion-controls>div:not(.stadium-control-buttons){display:flex;flex-direction:column;gap:3px}
.stadium-expansion-controls span{font-size:.78rem;color:#64748b;text-transform:uppercase;font-weight:700}
.stadium-control-buttons{display:flex;gap:8px}
.stadium-choice-notice{margin-top:10px;padding:11px 12px;border-radius:10px;background:#fff7ed;color:#9a3412}
.stadium-undo-panel{margin-top:16px}
@media(max-width:800px){
 .stadium-interior-pair{grid-template-columns:1fr}
 .homepage-stadium-head,.stadium-undo-panel{align-items:stretch;flex-direction:column}
 .stadium-control-buttons{width:100%}
 .stadium-control-buttons button{flex:1}
}


/* Version 33: stadium content is restricted to the Stadium tab */
.homepage-stadium{display:none!important}


/* Version 34: manager-editable player roles */
.club-table input[data-k="role"]:not([readonly]){
 font-weight:800;
 color:#111827;
 background:#f0fdf4;
 border-color:#86efac;
}

/* Version 35: personal stadium upload and provisional player scouting */
.stadium-upload-hero{position:relative;min-height:340px;border-radius:16px;overflow:hidden;background:#111827}
.stadium-upload-hero>img{display:block;width:100%;height:420px;object-fit:cover}
.stadium-empty-image{height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#e5e7eb;background:linear-gradient(135deg,#111827,#334155)}
.stadium-empty-image b{font-size:1.25rem}.stadium-empty-image span{color:#cbd5e1}
.stadium-upload-actions{display:flex;gap:8px;flex-wrap:wrap}
.club-table tr.pending-row td{font-style:italic;background:#fff7ed}
.club-table tr.pending-row .player-identity b{font-style:italic}
.club-table tr.pending-row .badge.pending{font-style:normal;white-space:normal;min-width:150px}


/* Version 36: visible application version on login */
.login-version{
 display:inline-flex;
 margin-top:7px;
 padding:5px 9px;
 border-radius:999px;
 background:#e2e8f0;
 color:#0f172a;
 font-size:.76rem;
 font-weight:900;
 letter-spacing:.03em;
 text-transform:uppercase;
}

/* Version 37: manual player fallback */
.player-add-method{padding:14px;border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc}
.player-add-method h4,.manual-player-panel h4{margin:0 0 12px}
.manual-player-toggle{margin-top:12px}
.manual-player-panel{margin-top:12px;padding:16px;border:1px dashed #94a3b8;border-radius:12px;background:#fff}
.manual-player-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
@media(max-width:760px){.manual-player-grid{grid-template-columns:1fr}}
.field small{display:block;margin-top:5px;color:#64748b;font-size:.78rem}

/* Version 38: account details and email login */
.login-or{display:flex;align-items:center;gap:10px;margin:13px 0 8px;color:#64748b;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.login-or:before,.login-or:after{content:"";height:1px;background:#cbd5e1;flex:1}
.nav button[data-v="security"]{margin-top:2px}


/* Version 39: expired-contract warning in squad table */
.club-table tbody tr.expired-contract-row td{
 border-top:3px solid #dc2626;
 border-bottom:3px solid #dc2626;
 box-shadow:inset 0 0 0 999px rgba(220,38,38,.08);
}
.club-table tbody tr.expired-contract-row td:first-child{
 border-left:3px solid #dc2626;
 border-top-left-radius:14px;
 border-bottom-left-radius:14px;
}
.club-table tbody tr.expired-contract-row td:last-child{
 border-right:3px solid #dc2626;
 border-top-right-radius:14px;
 border-bottom-right-radius:14px;
}
.expired-contract-row .player-identity{
 flex-wrap:wrap;
}
.expired-contract-label{
 display:inline-flex;
 align-items:center;
 padding:4px 8px;
 border-radius:999px;
 background:#dc2626;
 color:#fff;
 font-size:.7rem;
 font-weight:900;
 line-height:1;
 text-transform:uppercase;
 letter-spacing:.04em;
 white-space:nowrap;
}
.club-table input.expired-contract-years{
 background:#dc2626!important;
 color:#fff!important;
 -webkit-text-fill-color:#fff!important;
 border:3px solid #7f1d1d!important;
 border-radius:10px!important;
 font-size:1.05rem!important;
 font-weight:950!important;
 text-align:center!important;
 box-shadow:0 0 0 4px rgba(220,38,38,.22),0 0 14px rgba(220,38,38,.45)!important;
}
.bayern-theme .club-table input.expired-contract-years{
 background:#dc2626!important;
 color:#fff!important;
 -webkit-text-fill-color:#fff!important;
}


/* Version 40: projected sales and reversible pending sales */
.expected-sale-card{border:2px solid rgba(22,163,74,.35)}
.pending-sales-dashboard,.pending-sale-undo-panel{margin-top:16px}
.pending-sales-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.pending-sales-head h3{margin:0 0 4px}
.pending-sales-head> b{font-size:1.35rem;color:#16884f;white-space:nowrap}
.pending-sales-list,.pending-sale-undo-list{display:grid;gap:8px;margin-top:12px}
.pending-sales-list>div,.pending-sale-undo-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid #d7dee8;border-radius:10px;background:rgba(255,255,255,.55)}
.pending-sales-list span,.pending-sale-undo-list span{display:grid;gap:3px}
.pending-sales-list small,.pending-sale-undo-list small{color:#64748b}
.pending-sales-list strong{color:#16884f;font-variant-numeric:tabular-nums}
@media(max-width:700px){.pending-sales-head,.pending-sales-list>div,.pending-sale-undo-list>div{align-items:stretch;flex-direction:column}.pending-sales-head> b{text-align:left}}

.extension-total-cost{margin-top:14px;padding:12px;border:2px solid #d33;background:#ffeaea;border-radius:10px}
.extension-total-cost span{display:block;font-weight:700;color:#900}
.extension-total-cost b{font-size:1.4rem;color:#b00020}


/* Version 42: readable cup prize guide and reversible confirmed sales */
.cup-prize-strip{color:#f8fafc!important;background:#0a0f16!important}
.cup-prize-strip b{color:#ffffff!important}
.cup-prize-strip span{color:#f8fafc!important;background:#263244!important;border:1px solid rgba(255,255,255,.12)}
.confirmed-sale-review{border:1px solid rgba(239,68,68,.28)}
.confirmed-sale-row{background:rgba(239,68,68,.035)}


/* Version 43: Wikimedia Commons stadium links */
.stadium-image-separator{display:flex;align-items:center;gap:12px;margin:16px 0;color:#64748b;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}
.stadium-image-separator::before,.stadium-image-separator::after{content:"";height:1px;background:#d7dee8;flex:1}
.stadium-source-link{display:inline-flex;margin-top:12px;font-weight:700;text-decoration:none}


/* Version 44: expanded administration squad recovery/editing */
.inactive-player-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.admin-reactivate-player{white-space:nowrap}

/* Version 45: previous-season wealth separated from current transfers */
.previous-season-wealth-card{border:2px solid rgba(59,130,246,.32)}
.previous-season-wealth-card small{max-width:28ch}


/* Version 46: complete visual and content optimisation */
.preseason-wishes,.form-grid .panel:first-child{color:#172033;background:#fff}
.form-grid .panel:first-child h3,.form-grid .panel:first-child label,.form-grid .panel:first-child p{color:#172033}
.form-grid .panel:first-child .choice-detail{background:#eef4fb;color:#172033;border-color:#cbd8e8}
.form-grid .panel:first-child .choice-detail b,.form-grid .panel:first-child .choice-detail span{color:#172033}
.season-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0 0 18px;padding:14px 18px;background:#fff;border:1px solid #d9e1ec;border-radius:16px;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.season-step{position:relative;display:flex;align-items:center;gap:8px;color:#94a3b8}.season-step:not(:last-child):after{content:"";height:3px;background:#dbe3ed;position:absolute;left:38px;right:8px;top:14px}.season-step span{z-index:1;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e8eef5;color:#64748b;font-weight:800}.season-step.active span,.season-step.done span{background:hsl(var(--h),70%,45%);color:white}.season-step.active b,.season-step.done b{color:#172033}
.club-cockpit-hero{position:relative;overflow:hidden}.club-context{display:flex;flex-wrap:wrap;gap:8px;position:absolute;right:22px;bottom:18px}.club-context span{padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.16);color:white;font-size:.78rem;font-weight:700}
.cockpit-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin:16px 0}.section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.section-title small{text-transform:uppercase;letter-spacing:.09em;color:#64748b}.section-title h3{margin:2px 0}.attention-count,.section-title>span{min-width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:#eef2f7;font-weight:800}.attention-list{display:grid;gap:8px;margin-top:12px}.attention-item{width:100%;display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;text-align:left;border:1px solid #dce4ed;background:#fff;color:#172033;padding:11px 12px;border-radius:10px}.attention-item i{width:9px;height:9px;border-radius:50%}.attention-item.danger i{background:#dc2626}.attention-item.warning i{background:#f59e0b}.attention-item.success i{background:#16a34a}.value-breakdown{display:grid;gap:8px;margin-top:14px}.value-breakdown div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #e7edf4}
.financial-timeline{margin:16px 0}.timeline-track{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:18px}.timeline-node{position:relative;padding:36px 10px 12px;border-radius:12px;background:#f4f7fb;text-align:center}.timeline-node>span{position:absolute;top:8px;left:50%;transform:translateX(-50%);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#64748b;color:#fff;font-size:.72rem}.timeline-node small{display:block;color:#64748b;margin-bottom:5px}.timeline-node.positive b{color:#16884f}.timeline-node.negative b{color:#c62828}.timeline-node.positive>span{background:#16884f}.timeline-node.negative>span{background:#c62828}
.squad-insights{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:16px 0}.squad-insights>div{padding:14px;background:#fff;border:1px solid #dae3ed;border-radius:12px}.squad-insights span{display:block;color:#64748b;font-size:.78rem}.squad-insights b{display:block;font-size:1.25rem;margin-top:4px}
.transfer-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.transfer-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e4eaf1}.transfer-row>div{display:grid;gap:3px;flex:1}.transfer-row small{color:#64748b}.status-pill{font-size:.72rem;font-weight:800;padding:5px 8px;border-radius:999px}.status-pill.warning{background:#fff2cc;color:#865b00}.confirmed-transfer-panel{margin-top:16px}.empty-state{color:#64748b;padding:14px 0}.page-heading{margin-bottom:16px}.page-heading h2{margin:3px 0}
.squad-display-toggle{display:flex;gap:6px;margin:12px 0}.squad-display-toggle button{border:1px solid #ccd7e4;background:#fff;color:#334155;padding:8px 12px;border-radius:9px}.squad-display-toggle button.active{background:hsl(var(--h),70%,42%);color:#fff}.player-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.player-card{background:#fff;border:1px solid #d9e2ed;border-radius:15px;padding:15px;box-shadow:0 8px 22px rgba(15,23,42,.05)}.player-card-head{display:flex;justify-content:space-between;gap:10px}.player-card-head h3{margin:3px 0}.player-card-head small{color:#64748b}.player-card .ovr{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:#172033;color:#fff;font-size:1.15rem;font-weight:900}.player-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.player-card-stats div{padding:8px;background:#f5f8fb;border-radius:8px}.player-card-stats span{display:block;font-size:.7rem;color:#64748b}.player-card details{border-top:1px solid #e5ebf2;padding-top:10px}.player-card summary{cursor:pointer;font-weight:700}.player-card li{margin:6px 0;color:#475569}.hidden{display:none!important}
.ok{color:#16884f!important}.bad{color:#c62828!important}.neutral-amount{color:#334155!important}
@media(max-width:900px){.cockpit-grid,.transfer-columns{grid-template-columns:1fr}.timeline-track{grid-template-columns:1fr 1fr}.squad-insights{grid-template-columns:1fr 1fr}.season-progress{grid-template-columns:1fr 1fr;gap:12px}.season-step:after{display:none}.club-context{position:static;margin-top:12px}}

/* Version 51: dashboard profiles and customizer */
.dashboard-view-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.04)}
.dashboard-view-toolbar small{display:block;color:var(--muted);margin-top:3px}.dashboard-profile-switch{display:flex;gap:8px;flex-wrap:wrap}.dashboard-profile-switch button.active{background:var(--accent);color:#fff;border-color:transparent}.dashboard-module-hidden{display:none!important}
.dashboard-customizer{position:fixed;inset:0;z-index:1000;background:rgba(4,8,18,.72);display:grid;place-items:center;padding:20px}.dashboard-customizer.hidden{display:none}.dashboard-customizer-card{width:min(560px,100%);max-height:85vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 24px 80px rgba(0,0,0,.45)}.dashboard-customizer-card>label{display:flex;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid var(--line)}.dashboard-customizer-card>.primary{margin-top:18px;width:100%}
@media(max-width:760px){.dashboard-view-toolbar{align-items:flex-start;flex-direction:column}.dashboard-profile-switch{width:100%}.dashboard-profile-switch button{flex:1}}

/* Version 53 */
.compact-preseason-summary{margin:14px 0 18px;padding:18px}.compact-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.compact-choice-grid>div{border:1px solid var(--line);border-radius:14px;padding:14px;background:rgba(255,255,255,.035)}.compact-choice-grid span,.compact-choice-grid small{display:block;color:var(--muted)}.compact-choice-grid b{display:block;margin:5px 0;font-size:1.05rem}.compact-choice-edit{width:100%}@media(max-width:760px){.compact-choice-grid{grid-template-columns:1fr}}

/* Version 55 */
.approval-note{margin:8px 0 14px;padding:10px 12px;border-radius:10px;font-size:.9rem}.approval-note.approved{background:rgba(34,197,94,.14);color:#dcfce7;border:1px solid rgba(34,197,94,.35)}.approval-note.pending{background:rgba(245,158,11,.14);color:#fef3c7;border:1px solid rgba(245,158,11,.35)}
.preseason-approval-panel .preseason-approval-actions{display:flex;justify-content:flex-end;margin:12px 0}.contract-review-row.preseason{align-items:center}.contract-review-row.preseason .contract-review-actions{display:flex;align-items:center;gap:10px}

/* Version 57: compact dashboard squad-rule check */
.compact-squad-rules{margin:0 0 16px}
.squad-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.squad-rule-item{padding:13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.035);display:grid;gap:4px}
.squad-rule-item span{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.squad-rule-item b{font-size:1.15rem}
.squad-rule-item small{line-height:1.35;color:var(--muted)}
.squad-rule-item.ok{border-color:rgba(34,197,94,.35)}
.squad-rule-item.bad{border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.08)}
@media(max-width:800px){.squad-rule-grid{grid-template-columns:1fr}}

/* Version 65 administration grid */
.admin-v65-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px;margin-top:14px}.admin-v65-club{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--panel-soft)}.admin-v65-club-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.admin-v65-club-head span{font-size:.85rem;color:var(--muted)}.admin-v65-money-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.admin-v65-money-grid label{font-size:.78rem;color:var(--muted)}.admin-v65-money-grid input{width:100%;margin-top:4px}@media(max-width:640px){.admin-v65-money-grid{grid-template-columns:1fr}}

/* Version 67: compact squad overview through "Seasons in squad" */
.squad-repeat-wrap{
  width:100%;
  overflow-x:auto;
}
.club-table{
  table-layout:fixed;
  border-spacing:0;
  font-size:12px;
  line-height:1.15;
}
.club-table th,
.club-table td{
  padding:5px 6px !important;
  height:auto;
  vertical-align:middle;
  white-space:nowrap;
}
.club-table input{
  min-width:0 !important;
  width:100%;
  height:29px;
  padding:4px 5px;
  font-size:12px;
  line-height:1.1;
  box-sizing:border-box;
}
.club-table .player-identity{
  gap:5px;
  min-width:0;
}
.club-table .player-identity img{
  width:28px;
  height:28px;
  flex:0 0 28px;
}
.club-table .player-identity b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.club-table .badge{
  padding:4px 6px;
  font-size:10px;
  line-height:1.05;
  white-space:normal;
}

/* Fixed widths keep the complete sporting overview visible on common laptop screens. */
.club-table th:nth-child(1),.club-table td:nth-child(1){width:150px;min-width:150px;max-width:150px}
.club-table th:nth-child(2),.club-table td:nth-child(2){width:76px;min-width:76px;max-width:76px}
.club-table th:nth-child(3),.club-table td:nth-child(3){width:68px;min-width:68px;max-width:68px}
.club-table th:nth-child(4),.club-table td:nth-child(4){width:92px;min-width:92px;max-width:92px}
.club-table th:nth-child(5),.club-table td:nth-child(5){width:48px;min-width:48px;max-width:48px}
.club-table th:nth-child(6),.club-table td:nth-child(6){width:104px;min-width:104px;max-width:104px}
.club-table th:nth-child(7),.club-table td:nth-child(7){width:58px;min-width:58px;max-width:58px}
.club-table th:nth-child(8),.club-table td:nth-child(8){width:92px;min-width:92px;max-width:92px}
.club-table th:nth-child(9),.club-table td:nth-child(9){width:104px;min-width:104px;max-width:104px}
.club-table th:nth-child(10),.club-table td:nth-child(10){width:108px;min-width:108px;max-width:108px}
.club-table th:nth-child(11),.club-table td:nth-child(11){width:88px;min-width:88px;max-width:88px}
.club-table th:nth-child(12),.club-table td:nth-child(12){width:82px;min-width:82px;max-width:82px}
.club-table th:nth-child(13),.club-table td:nth-child(13){width:76px;min-width:76px;max-width:76px}
.club-table th:nth-child(14),.club-table td:nth-child(14){width:78px;min-width:78px;max-width:78px}

/* Keep the player name visible while scrolling to sale / extension actions. */
.club-table thead th:first-child,
.club-table tbody tr:not(.position-group-row) > td:first-child,
.club-table .repeated-squad-header > th:first-child{
  position:sticky;
  left:0;
  z-index:15;
  box-shadow:2px 0 5px rgba(15,23,42,.18);
}
.club-table tbody tr:not(.position-group-row) > td:first-child{
  background:#fff;
}
.club-table tbody tr:nth-child(even):not(.position-group-row) > td:first-child{
  background:#f7f9fc;
}
.club-table tr.sold > td:first-child,
.club-table tr.pending-row > td:first-child{
  background:inherit;
}
.club-table thead th:first-child,
.club-table .repeated-squad-header > th:first-child{
  background:#172033 !important;
  color:#fff !important;
}

/* Action area remains full-size and deliberately sits beyond the first viewport. */
.club-table th:last-child,
.club-table td:last-child{
  width:390px !important;
  min-width:390px !important;
  max-width:390px !important;
  white-space:normal;
}

@media(max-width:1200px){
  .club-table{font-size:11px}
  .club-table th,.club-table td{padding:4px !important}
  .club-table input{font-size:11px;height:27px;padding:3px 4px}
}

/* Version 69: two-line headers and click-to-open player actions */
.club-table thead th,
.club-table .repeated-squad-header th{
  font-size:9px !important;
  line-height:1.05 !important;
  letter-spacing:.01em;
  white-space:normal !important;
  overflow-wrap:normal;
  word-break:normal;
  text-align:center;
  padding:4px 3px !important;
  height:31px;
}
.club-table thead th small,
.club-table .repeated-squad-header th small{
  display:block;
  font-size:8px;
  line-height:1;
  opacity:.82;
  font-weight:600;
}
.club-table tbody td{
  padding:2px 4px !important;
  height:33px;
}
.club-table input{
  height:25px !important;
  min-height:25px;
  padding:2px 4px !important;
  font-size:11px !important;
}
.club-table .player-identity{
  min-height:27px;
  gap:4px;
}
.club-table .player-identity img{
  width:24px;
  height:24px;
  flex-basis:24px;
}
.player-inline-state{
  flex:0 0 auto;
  padding:2px 4px;
  border-radius:999px;
  font-size:8px;
  line-height:1;
  font-weight:800;
}
.player-inline-state.pending{background:#fff2cc;color:#865b00}
.player-inline-state.inactive{background:#fee2e2;color:#991b1b}

/* Status column removed: widths now begin with Player, then sporting data. */
.club-table th:nth-child(1),.club-table td:nth-child(1){width:156px!important;min-width:156px!important;max-width:156px!important}
.club-table th:nth-child(2),.club-table td:nth-child(2){width:58px!important;min-width:58px!important;max-width:58px!important}
.club-table th:nth-child(3),.club-table td:nth-child(3){width:76px!important;min-width:76px!important;max-width:76px!important}
.club-table th:nth-child(4),.club-table td:nth-child(4){width:42px!important;min-width:42px!important;max-width:42px!important}
.club-table th:nth-child(5),.club-table td:nth-child(5){width:92px!important;min-width:92px!important;max-width:92px!important}
.club-table th:nth-child(6),.club-table td:nth-child(6){width:48px!important;min-width:48px!important;max-width:48px!important}
.club-table th:nth-child(7),.club-table td:nth-child(7){width:82px!important;min-width:82px!important;max-width:82px!important}
.club-table th:nth-child(8),.club-table td:nth-child(8){width:92px!important;min-width:92px!important;max-width:92px!important}
.club-table th:nth-child(9),.club-table td:nth-child(9){width:105px!important;min-width:105px!important;max-width:105px!important}
.club-table th:nth-child(10),.club-table td:nth-child(10){width:78px!important;min-width:78px!important;max-width:78px!important}
.club-table th:nth-child(11),.club-table td:nth-child(11){width:58px!important;min-width:58px!important;max-width:58px!important}
.club-table th:nth-child(12),.club-table td:nth-child(12){width:58px!important;min-width:58px!important;max-width:58px!important}

.club-table th:last-child,
.club-table td:last-child{
  width:76px!important;
  min-width:76px!important;
  max-width:76px!important;
}
.player-actions-cell{position:relative;overflow:visible!important;text-align:center}
.player-actions-menu{position:relative;display:inline-block}
.player-actions-menu>summary{
  list-style:none;
  cursor:pointer;
  user-select:none;
  border:1px solid #cbd5e1;
  border-radius:7px;
  background:#fff;
  color:#334155;
  font-size:10px;
  line-height:1;
  font-weight:800;
  padding:6px 7px;
}
.player-actions-menu>summary::-webkit-details-marker{display:none}
.player-actions-menu>summary:after{content:" ▾";font-size:8px}
.player-actions-menu[open]>summary:after{content:" ▴"}
.player-actions-menu[open]{z-index:60}
.player-actions-menu[open]>.sale-preview,
.player-actions-menu[open]>.inactive-player-actions{
  position:absolute;
  z-index:70;
  top:calc(100% + 5px);
  right:0;
  width:330px;
  box-sizing:border-box;
  box-shadow:0 16px 36px rgba(15,23,42,.35);
  border-radius:10px;
}
.player-actions-menu[open]>.inactive-player-actions{
  background:#fff;
  border:1px solid #cbd5e1;
  padding:10px;
}
.player-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.player-action-buttons button{margin:0!important;min-height:28px}
.player-action-buttons .disappear-sale,
.player-action-buttons .remove-player{grid-column:1/-1}

/* Keep popovers visible and prevent the first player row from being covered by headers. */
.squad-repeat-wrap{overflow-x:auto;overflow-y:visible;padding-bottom:230px;margin-bottom:-215px}
.club-table tbody tr{position:relative}
.club-table .position-group-row th{height:26px!important;padding:4px 7px!important;font-size:10px!important}

@media(max-width:1200px){
 .club-table thead th,.club-table .repeated-squad-header th{font-size:8.5px!important}
 .club-table tbody td{padding:2px 3px!important}
}

.table.club-table tbody tr{height:42px}.table.club-table tbody td{padding-top:8px;padding-bottom:8px}.squad-repeat-wrap{padding-top:8px}

/* Version 71: roomier 15-inch squad layout, ten-player header intervals,
   and a non-floating primary header so the first player is never covered. */
.club-table thead th{
  top:auto !important;
}
.club-table thead th,
.club-table .repeated-squad-header th{
  font-size:10.5px !important;
  line-height:1.12 !important;
  padding:6px 5px !important;
  height:38px !important;
}
.club-table thead th small,
.club-table .repeated-squad-header th small{
  font-size:9px !important;
  line-height:1.05 !important;
}
.club-table tbody tr{
  height:46px !important;
}
.club-table tbody td{
  padding:5px 6px !important;
  height:46px !important;
  font-size:12px !important;
}
.club-table input{
  height:30px !important;
  min-height:30px !important;
  padding:4px 6px !important;
  font-size:12px !important;
}
.club-table .player-identity{
  min-height:32px !important;
  gap:6px !important;
}
.club-table .player-identity img{
  width:29px !important;
  height:29px !important;
  flex-basis:29px !important;
}
.club-table th:nth-child(1),.club-table td:nth-child(1){width:180px!important;min-width:180px!important;max-width:180px!important}
.club-table th:nth-child(2),.club-table td:nth-child(2){width:72px!important;min-width:72px!important;max-width:72px!important}
.club-table th:nth-child(3),.club-table td:nth-child(3){width:92px!important;min-width:92px!important;max-width:92px!important}
.club-table th:nth-child(4),.club-table td:nth-child(4){width:52px!important;min-width:52px!important;max-width:52px!important}
.club-table th:nth-child(5),.club-table td:nth-child(5){width:112px!important;min-width:112px!important;max-width:112px!important}
.club-table th:nth-child(6),.club-table td:nth-child(6){width:58px!important;min-width:58px!important;max-width:58px!important}
.club-table th:nth-child(7),.club-table td:nth-child(7){width:98px!important;min-width:98px!important;max-width:98px!important}
.club-table th:nth-child(8),.club-table td:nth-child(8){width:112px!important;min-width:112px!important;max-width:112px!important}
.club-table th:nth-child(9),.club-table td:nth-child(9){width:124px!important;min-width:124px!important;max-width:124px!important}
.club-table th:nth-child(10),.club-table td:nth-child(10){width:92px!important;min-width:92px!important;max-width:92px!important}
.club-table th:nth-child(11),.club-table td:nth-child(11){width:72px!important;min-width:72px!important;max-width:72px!important}
.club-table th:nth-child(12),.club-table td:nth-child(12){width:72px!important;min-width:72px!important;max-width:72px!important}
.club-table th:last-child,.club-table td:last-child{width:88px!important;min-width:88px!important;max-width:88px!important}
.club-table .position-group-row th{
  height:30px!important;
  padding:5px 8px!important;
  font-size:11px!important;
}
.squad-repeat-wrap{
  padding-top:0 !important;
}
@media(max-width:1200px){
  .club-table thead th,.club-table .repeated-squad-header th{font-size:10px!important}
  .club-table tbody td{font-size:11.5px!important;padding:4px 5px!important}
}

/* Version 72: prevent adjacent player rows from overlapping.
   Expired-contract badges no longer force a wrapped player identity inside a fixed-height row. */
.club-table tbody tr{
  height:auto !important;
  min-height:46px !important;
}
.club-table tbody td{
  height:auto !important;
  min-height:46px !important;
  overflow:hidden;
}
.club-table .player-identity,
.expired-contract-row .player-identity{
  flex-wrap:nowrap !important;
  min-height:34px !important;
  overflow:hidden;
}
.club-table .player-identity b{
  min-width:0;
  flex:1 1 auto;
}
/* The red row frame and red contract-years field already communicate expiry.
   Hiding the extra badge keeps Dennis Seimen and the following goalkeeper row fully separate. */
.club-table .expired-contract-label{
  display:none !important;
}
.club-table tbody tr + tr td,
.club-table tbody tr + tr th{
  position:relative;
}

/* Version 73: one shared FC Bayern-inspired colour system plus manager-selectable variants. */
.theme-classic-red{
  --club:#dc052d;--club2:#650018;--accent:#dc052d;--panel:#ffffff;--panel-soft:#f7f9fc;
}
.theme-midnight-blue{
  --club:#2563eb;--club2:#0b1f48;--accent:#2563eb;--panel:#ffffff;--panel-soft:#f5f8ff;
}
.theme-emerald-green{
  --club:#059669;--club2:#064e3b;--accent:#059669;--panel:#ffffff;--panel-soft:#f3fbf7;
}
.theme-graphite{
  --club:#475569;--club2:#111827;--accent:#64748b;--panel:#ffffff;--panel-soft:#f5f6f8;
}
.theme-classic-red .sidebar{background:linear-gradient(180deg,#a3001f 0%,#520012 45%,#080b11 100%)}
.theme-midnight-blue .sidebar{background:linear-gradient(180deg,#173f8f 0%,#0b1f48 48%,#070d18 100%)}
.theme-emerald-green .sidebar{background:linear-gradient(180deg,#08775b 0%,#064e3b 48%,#07130f 100%)}
.theme-graphite .sidebar{background:linear-gradient(180deg,#374151 0%,#1f2937 48%,#090d13 100%)}
.theme-classic-red .primary,.theme-classic-red .nav button.active{background:linear-gradient(135deg,#dc052d,#b50024)}
.theme-midnight-blue .primary,.theme-midnight-blue .nav button.active{background:linear-gradient(135deg,#2563eb,#173f8f)}
.theme-emerald-green .primary,.theme-emerald-green .nav button.active{background:linear-gradient(135deg,#059669,#08775b)}
.theme-graphite .primary,.theme-graphite .nav button.active{background:linear-gradient(135deg,#64748b,#374151)}
.theme-classic-red .topbar{border-bottom-color:#dc052d55}.theme-midnight-blue .topbar{border-bottom-color:#2563eb55}.theme-emerald-green .topbar{border-bottom-color:#05966955}.theme-graphite .topbar{border-bottom-color:#64748b55}
.theme-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}
.theme-preview{display:flex;align-items:center;gap:9px;border:1px solid #cbd5e1;background:#fff;border-radius:10px;padding:9px;cursor:pointer;text-align:left}
.theme-preview i{width:34px;height:24px;border-radius:7px;display:block;box-shadow:inset 0 0 0 1px #ffffff55}
.theme-preview.classic-red i{background:linear-gradient(135deg,#dc052d,#650018)}.theme-preview.midnight-blue i{background:linear-gradient(135deg,#2563eb,#0b1f48)}.theme-preview.emerald-green i{background:linear-gradient(135deg,#059669,#064e3b)}.theme-preview.graphite i{background:linear-gradient(135deg,#64748b,#111827)}
.theme-preview.selected{border-color:var(--club);box-shadow:0 0 0 2px color-mix(in srgb,var(--club) 22%,transparent)}

/* Version 73: normalize every squad row so individual names never drift vertically. */
.club-table{border-spacing:0!important}
.club-table tbody tr:not(.position-group-row):not(.repeated-squad-header){height:50px!important;min-height:50px!important}
.club-table tbody tr:not(.position-group-row):not(.repeated-squad-header)>td{height:50px!important;min-height:50px!important;padding:5px 6px!important;vertical-align:middle!important;line-height:1.15!important}
.club-table .player-identity,.expired-contract-row .player-identity{display:grid!important;grid-template-columns:30px minmax(0,1fr)!important;align-items:center!important;column-gap:7px!important;height:38px!important;min-height:38px!important;max-height:38px!important;margin:0!important;padding:0!important;overflow:hidden!important}
.club-table .player-identity img{grid-column:1;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;object-fit:cover!important;align-self:center!important;margin:0!important}
.club-table .player-identity b,.club-table .player-identity span,.club-table .player-identity small{grid-column:2;min-width:0!important;margin:0!important;align-self:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;line-height:1.15!important}
.club-table tbody td input,.club-table tbody td select,.club-table tbody td button{vertical-align:middle!important;margin-top:0!important;margin-bottom:0!important}
.club-table .player-actions-menu{margin:0!important;align-self:center!important}

/* Version 74: definitive squad-row geometry fix.
   Remove floating grey position separators and all negative overflow spacing. */
.squad-repeat-wrap{
  overflow-x:auto!important;
  overflow-y:visible!important;
  padding:0 0 14px!important;
  margin:0!important;
}
.club-table .position-group-row{display:none!important}
.club-table tbody tr:not(.repeated-squad-header){
  height:56px!important;
  min-height:56px!important;
  max-height:56px!important;
}
.club-table tbody tr:not(.repeated-squad-header)>td{
  box-sizing:border-box!important;
  height:56px!important;
  min-height:56px!important;
  max-height:56px!important;
  padding:7px 7px!important;
  vertical-align:middle!important;
  overflow:hidden!important;
  position:static!important;
}
.club-table .repeated-squad-header{
  position:static!important;
  height:42px!important;
  transform:none!important;
  z-index:auto!important;
}
.club-table .repeated-squad-header th{
  position:static!important;
  height:42px!important;
  min-height:42px!important;
  padding:6px 5px!important;
  background:#e9edf3!important;
  box-shadow:none!important;
  transform:none!important;
}
.club-table .player-identity,.expired-contract-row .player-identity{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr)!important;
  height:40px!important;
  min-height:40px!important;
  max-height:40px!important;
  align-items:center!important;
  overflow:hidden!important;
}
.club-table .player-photo-link,.club-table .player-photo,.club-table .player-photo-fallback{
  width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
}
.player-photo-fallback{display:grid;place-items:center;background:#e5e7eb;border:1px solid #cbd5e1;border-radius:50%;color:#64748b}
.player-photo-fallback svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.club-table tbody tr+tr td{position:static!important}

/* Version 75: repeated squad table headers use the same high-contrast dark style. */
.club-table .repeated-squad-header th{
  background:#111827!important;
  color:#fff!important;
  border-bottom:3px solid var(--club, #dc052d)!important;
}

/* Version 76: readable, viewport-anchored squad action popovers. */
.player-actions-menu>summary{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  font-size:0!important;
  border-radius:8px!important;
  background:#ffffff!important;
  color:#111827!important;
  border:1px solid #94a3b8!important;
  box-shadow:0 1px 2px rgba(15,23,42,.10)!important;
}
.player-actions-menu>summary:before{content:"⋮";font-size:21px;line-height:1;font-weight:900;color:#111827}
.player-actions-menu>summary:after{display:none!important}
.player-actions-menu[open]>.sale-preview,
.player-actions-menu[open]>.inactive-player-actions{
  position:fixed!important;
  top:var(--actions-top,80px)!important;
  left:var(--actions-left,80px)!important;
  right:auto!important;
  width:min(350px,calc(100vw - 24px))!important;
  max-height:min(520px,calc(100vh - 24px))!important;
  overflow:auto!important;
  z-index:10000!important;
  background:#fff!important;
  color:#111827!important;
  border:1px solid #94a3b8!important;
  box-shadow:0 18px 50px rgba(15,23,42,.38)!important;
  border-radius:12px!important;
  padding:12px!important;
}
.player-actions-menu[open]>.sale-preview *,
.player-actions-menu[open]>.inactive-player-actions *{color:inherit}
.player-actions-menu[open]>.sale-preview .sale-deduction{color:#991b1b!important}
.player-actions-menu[open]>.sale-preview .sale-net-positive{color:#166534!important}
.player-actions-menu[open]>.sale-preview .sale-net-negative{color:#991b1b!important}
.player-actions-menu[open]>.sale-preview button,
.player-actions-menu[open]>.inactive-player-actions button{color:inherit}
.player-actions-menu[open]>.sale-preview button.primary{color:#fff!important}
.player-actions-menu[open]>.sale-preview button.danger{color:#fff!important}
.player-actions-menu[open]>.sale-preview button.remove-player{color:#fff!important}

/* v80: nationality flags in squad table */
.nationality-cell{text-align:center;vertical-align:middle;min-width:72px}
.nationality-flags{border:0;background:transparent;padding:4px 6px;margin:0;min-width:46px;font-size:22px;line-height:1.15;letter-spacing:1px;cursor:default;border-radius:7px;white-space:nowrap}
.nationality-flags.editable{cursor:pointer}
.nationality-flags.editable:hover,.nationality-flags.editable:focus-visible{background:rgba(255,255,255,.12);outline:1px solid rgba(255,255,255,.35)}

/* Version 81: dark, high-contrast squad action popover. */
.player-actions-menu[open] > .sale-preview,
.player-actions-menu[open] > .inactive-player-actions{
  background:#111827!important;
  color:#f8fafc!important;
  border-color:#374151!important;
  box-shadow:0 18px 50px rgba(0,0,0,.58)!important;
}
.player-actions-menu[open] > .sale-preview .sale-preview-summary{
  background:#0b1220!important;
  border-color:#374151!important;
}
/* Keep the requested “Current sale value” text black by placing it on a light inset. */
.player-actions-menu[open] > .sale-preview .sale-value{
  display:block!important;
  background:#f8fafc!important;
  color:#111827!important;
  border:1px solid #cbd5e1!important;
  border-radius:7px!important;
  padding:7px 9px!important;
}
.player-actions-menu[open] > .sale-preview .sale-value,
.player-actions-menu[open] > .sale-preview .sale-value *{
  color:#111827!important;
}
.player-actions-menu[open] > .sale-preview small{
  color:#e2e8f0!important;
}
.player-actions-menu[open] > .sale-preview .sale-deduction{
  color:#fca5a5!important;
}
.player-actions-menu[open] > .sale-preview .sale-net-positive{
  color:#86efac!important;
}
.player-actions-menu[open] > .sale-preview .sale-net-negative{
  color:#fca5a5!important;
}
.player-actions-menu[open] > .sale-preview button.ghost,
.player-actions-menu[open] > .inactive-player-actions button.ghost{
  background:#1f2937!important;
  color:#f8fafc!important;
  border-color:#64748b!important;
}

/* Version 82: stadium economy */
.stadium-v82-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.stadium-v82-summary>div{padding:12px;border:1px solid var(--line);border-radius:12px;display:flex;justify-content:space-between;gap:12px;background:rgba(255,255,255,.035)}
.stadium-entry-v82 .field-money{font-size:.75rem;opacity:.75}
.stadium-financial-breakdown-v82{margin-top:16px}
@media(max-width:700px){.stadium-v82-summary{grid-template-columns:1fr}}

/* Supabase authentication shell */
.mml-auth-loading,.mml-auth-error{max-width:680px;margin:64px auto;padding:26px;border-radius:16px;background:#0f172a;color:#f8fafc;font-family:Arial,sans-serif;text-align:center}
#mml-session-bar{position:fixed;right:16px;bottom:16px;z-index:99999;display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(148,163,184,.28);border-radius:12px;background:rgba(15,23,42,.94);color:#e2e8f0;font:13px Arial,sans-serif;box-shadow:0 10px 28px rgba(0,0,0,.28)}
#mml-session-bar button{border:0;border-radius:8px;padding:8px 10px;background:#ef4444;color:white;font-weight:700;cursor:pointer}

/* Step 3.8: visible assigned-team access context */
.assigned-team-access{display:flex;align-items:center;gap:10px;margin:10px 14px 14px;padding:10px 12px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.06);color:#fff}
.assigned-team-access>span{font-size:18px}
.assigned-team-access b{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.assigned-team-access small{display:block;margin-top:2px;color:rgba(255,255,255,.68);font-size:11px}

/* Step 3.10: nationality transition and compliance */
.nationality-transition-banner{margin:10px 14px;padding:11px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#2d333b;color:#fff;display:grid;gap:3px}
.nationality-transition-banner b{font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.nationality-transition-banner small{font-size:11px;color:rgba(255,255,255,.75)}
.nationality-transition-banner.transition{border-color:#d8a72e;background:#44391f}
.nationality-transition-banner.deadline_passed,.nationality-transition-banner.non_compliant{border-color:#cf5c5c;background:#452727}
.nationality-transition-banner.compliant{border-color:#4fa66c;background:#23412d}
.nationality-compliance-card{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:14px;margin:12px 0;padding:12px 14px;border-radius:10px;border:1px solid #4b5563;background:#2d333b;color:#fff}
.nationality-compliance-card>div{display:grid;gap:3px}.nationality-compliance-card span,.nationality-compliance-card small{display:block;color:#cbd5e1;font-size:12px}
.nationality-compliance-card.transition{border-color:#d8a72e;background:#44391f}.nationality-compliance-card.deadline_passed,.nationality-compliance-card.non_compliant{border-color:#cf5c5c;background:#452727}.nationality-compliance-card.compliant{border-color:#4fa66c;background:#23412d}
.nationality-compliance-card button{white-space:nowrap}
.identity-form label small{display:block;margin-top:5px;color:#94a3b8;font-size:11px}
@media(max-width:720px){.nationality-compliance-card{align-items:flex-start;flex-direction:column}}


/* v4.0.0-alpha2 account-state screens */
.mml-account-state { width:min(620px,calc(100% - 32px)); margin:clamp(90px,14vh,180px) auto 40px; padding:34px; border:1px solid #303735; border-radius:18px; background:linear-gradient(145deg,#171a1a,#0d0f0f); color:#f6f8f7; box-shadow:0 24px 80px rgba(0,0,0,.42); text-align:center; }
.mml-account-state__mark { display:grid; place-items:center; width:72px; height:72px; margin:0 auto 18px; border:2px solid #8cff1a; border-radius:18px; color:#8cff1a; font-weight:950; letter-spacing:.08em; box-shadow:0 0 32px rgba(140,255,26,.12); }
.mml-account-state__eyebrow { margin:0 0 8px!important; color:#8cff1a!important; font-size:11px!important; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.mml-account-state h1 { margin:0 0 14px; color:#fff; font-size:clamp(28px,5vw,48px); }
.mml-account-state>p { color:#b8c0bd; line-height:1.65; }
.mml-account-state button,.mml-account-state a { display:inline-flex; justify-content:center; margin-top:12px; border:0; border-radius:10px; background:#8cff1a; color:#071000; padding:12px 18px; font-weight:900; text-decoration:none; }
.mml-account-state--rejected,.mml-account-state--suspended { border-color:rgba(255,88,88,.4); }
.mml-account-state--rejected .mml-account-state__mark,.mml-account-state--suspended .mml-account-state__mark { border-color:#ff5858; color:#ff8585; }
