/* Franchise foundation: scoped independently from all Draft presentation. */
.franchise-shell { width:100%; max-width:1100px; margin:auto; padding:24px; border:1px solid #283047; border-radius:20px; background:linear-gradient(145deg,#17172d,#090e1b 65%); color:#e5e7eb; }
.franchise-shell h2 { font-size:clamp(24px,4vw,34px); font-weight:900; margin:8px 0; }
.franchise-shell h3 { font-size:16px; font-weight:800; margin-bottom:12px; }
.franchise-kicker { color:#a5b4fc; font-size:10px; letter-spacing:.18em; font-weight:900; }
.franchise-muted { color:#9ca3af; font-size:12px; line-height:1.6; }
.franchise-panel { background:#101626; border:1px solid #283047; border-radius:14px; padding:18px; margin:16px 0; }
.franchise-actions { display:flex; gap:10px; flex-wrap:wrap; margin:20px 0; }
.franchise-shell button { border:1px solid #374151; border-radius:10px; padding:11px 16px; background:#141b2d; color:#e5e7eb; font-size:11px; font-weight:800; transition:background .16s, border-color .16s; }
.franchise-shell button:not(:disabled):hover { background:#242644; border-color:#818cf8; }
.franchise-shell button:focus-visible { outline:2px solid #c4b5fd; outline-offset:3px; }
.franchise-shell button.franchise-primary { background:#4f46e5; border-color:#6366f1; }
.franchise-actions button:disabled { opacity:.4; cursor:not-allowed; }
.franchise-actions small { display:block; font-size:9px; font-weight:400; margin-top:3px; }
.franchise-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:24px; align-items:start; }
.franchise-options { display:grid; gap:8px; margin-top:14px; }
.franchise-shell .franchise-option { text-align:left; }
.franchise-shell .franchise-selected,.franchise-shell .franchise-target { border-color:#a5b4fc; box-shadow:0 0 0 1px #818cf8; background:#222347; }
.franchise-formation { padding:16px; background:#0a101d; border:1px solid #283047; border-radius:14px; display:grid; gap:14px; margin:16px 0; }
.franchise-two,.franchise-three { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.franchise-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.franchise-centres { width:85%; margin:auto; }
.franchise-shell .franchise-slot { min-width:0; padding:12px 8px; min-height:90px; overflow-wrap:anywhere; }
.franchise-slot:disabled { cursor:default; }
.franchise-position { display:block; color:#a5b4fc; font-size:10px; margin-bottom:8px; }
.franchise-rating { font-size:20px; font-weight:900; color:#c4b5fd; }
.franchise-rating small { font-size:9px; color:#9ca3af; }
.franchise-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.franchise-metrics strong { display:block; font-size:18px; margin-top:8px; overflow-wrap:anywhere; }
.franchise-cap-warning { color:#fbbf24; font-size:12px; font-weight:800; }
.franchise-rolling { padding:40px 10px; text-align:center; color:#c4b5fd; font-weight:900; letter-spacing:.12em; animation:franchise-roll .25s ease-in-out infinite alternate; }
@keyframes franchise-roll { from { opacity:.45; transform:translateY(2px); } to { opacity:1; transform:translateY(-2px); } }
@media(max-width:760px) { .franchise-workspace { grid-template-columns:1fr; } .franchise-shell { padding:16px; } .franchise-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } .franchise-slot .franchise-muted { font-size:10px; } }
@media(prefers-reduced-motion:reduce) { .franchise-rolling { animation:none; } .franchise-shell button { transition:none; } }

.franchise-value { color:#c4b5fd; font-size:12px; font-weight:800; display:block; margin:6px 0; }
.franchise-salary { display:flex; flex-wrap:wrap; gap:12px 24px; padding:16px; margin:16px 0; border:1px solid #374151; border-radius:12px; background:#12182a; font-size:12px; }
.franchise-salary small { flex-basis:100%; color:#9ca3af; }
.franchise-trade-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:16px 0; }
.franchise-trade-grid button { text-align:left; }

/* Franchise management presentation — strictly scoped to this mode. */
.franchise-shell { background:#0c1120; padding:24px; border-color:#282d43; box-shadow:0 20px 60px -35px #000; }
.franchise-header { display:flex; align-items:center; gap:24px; padding-bottom:20px; margin-bottom:24px; border-bottom:1px solid #2b3045; }
.franchise-brand { color:#c7d2fe; font-size:24px; font-weight:950; line-height:1; letter-spacing:-.04em; border-right:1px solid #34394e; padding-right:24px; }
.franchise-brand span { display:block; font-size:9px; letter-spacing:.16em; margin-top:7px; }
.franchise-header-name { display:grid; gap:5px; flex:1; min-width:0; }
.franchise-header-name strong { font-size:18px; overflow-wrap:anywhere; }
.franchise-header-name span,.franchise-header-metrics { font-size:12px; color:#a1a9bf; }
.franchise-header-metrics { display:grid; gap:6px; text-align:right; }
.franchise-header-metrics strong { font-size:22px; color:#e0e7ff; padding-left:8px; }
.franchise-shell h2 { font-size:26px; letter-spacing:-.025em; }
.franchise-section-title { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin:20px 0 12px; }
.franchise-section-title h3 { margin:0; }
.franchise-section-title > span { font-size:10px; font-weight:800; color:#a5b4fc; letter-spacing:.08em; }
.franchise-panel { background:#121827; border-color:#2b3045; padding:18px; box-shadow:inset 0 1px 0 #ffffff04; }
.franchise-workspace { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:18px; }
.franchise-workspace > .franchise-panel { margin-top:0; }
.franchise-options { gap:10px; }
.franchise-shell .franchise-option { padding:14px; background:#171e30; }
.franchise-player-card { --player-accent:#a5b4fc; text-align:left; min-width:0; }
.franchise-player-card[data-franchise-variant="grass"] { --player-accent:#6ee7a0; }
.franchise-player-card[data-franchise-variant="fergus"] { --player-accent:#f9a8c4; }
.franchise-player-card[data-franchise-variant="poty"] { --player-accent:#c4b5fd; }
.franchise-player-card[data-franchise-variant="gold"] { --player-accent:#fcd584; }
.franchise-player-top { display:flex; gap:12px; align-items:center; }
.franchise-player-top .franchise-rating { font-size:30px; line-height:1; color:var(--player-accent); border-left:3px solid var(--player-accent); padding-left:9px; flex-shrink:0; }
.franchise-player-top .franchise-rating small { display:block; font-size:8px; letter-spacing:.12em; margin-top:5px; }
.franchise-player-identity { display:grid; gap:4px; min-width:0; }
.franchise-player-identity strong { font-size:15px; font-weight:850; line-height:1.2; overflow-wrap:anywhere; }
.franchise-player-identity span { color:#bec6d9; font-size:12px; }
.franchise-player-identity small { color:#8e99af; }
.franchise-player-value { color:#f1f5f9; font-size:17px; font-weight:800; margin:12px 0 9px; font-variant-numeric:tabular-nums; }
.franchise-player-value small { font-size:9px; letter-spacing:.09em; color:#a1a9bf; font-weight:600; }
.franchise-player-origin { color:#b4bed2; font-size:11px; font-weight:500; padding-top:9px; border-top:1px solid #ffffff09; line-height:1.5; }
.franchise-player-origin span { display:block; color:#8e99af; font-size:10px; }
.franchise-select-label { display:block; margin-top:10px; color:#a5b4fc; font-size:9px; letter-spacing:.09em; }
.franchise-shell .franchise-selected { border-color:#a5b4fc; background:#222942; box-shadow:0 0 0 1px #818cf860; }
.franchise-shell button { min-height:44px; transition:transform 180ms ease,background 180ms ease,border-color 180ms ease; }
.franchise-shell button:active:not(:disabled) { transform:scale(.99); }
.franchise-shell button:disabled { cursor:default; }
.franchise-progress { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:6px; margin:18px 0; }
.franchise-progress > span { border:1px solid #2b3045; border-radius:8px; padding:9px 4px; text-align:center; font-size:13px; color:#a1a9bf; font-weight:800; }
.franchise-progress small { display:block; font-size:9px; font-weight:500; margin-top:3px; }
.franchise-progress .is-complete { background:#1d2540; color:#c7d2fe; border-color:#454976; }
.franchise-progress .is-current { border-color:#a5b4fc; color:#fff; }
.franchise-cap { --cap-color:#818cf8; padding:18px; margin:18px 0; background:#131a2c; border:1px solid #2d344b; border-radius:12px; }
.franchise-cap[data-cap-status="warning"] { --cap-color:#d9b66f; }
.franchise-cap[data-cap-status="danger"] { --cap-color:#ef8c95; border-color:#713b49; }
.franchise-cap-heading,.franchise-cap-footer { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; align-items:center; }
.franchise-cap-heading > span { font-size:10px; letter-spacing:.12em; color:#a1a9bf; font-weight:800; }
.franchise-cap-heading strong { font-size:18px; font-variant-numeric:tabular-nums; }
.franchise-cap-heading small { color:#929db4; font-size:12px; }
.franchise-cap-track { height:7px; border-radius:8px; background:#252d42; overflow:hidden; margin:13px 0; }
.franchise-cap-fill { height:100%; border-radius:inherit; background:var(--cap-color); transition:width 250ms ease; }
.franchise-cap-footer strong { color:var(--cap-color); font-size:11px; letter-spacing:.04em; }
.franchise-cap-footer span { color:#a1a9bf; font-size:11px; }
.franchise-dashboard { display:grid; grid-template-columns:1.2fr 1fr; gap:24px; align-items:stretch; }
.franchise-season-status { padding:22px; border:1px solid #323650; border-radius:12px; background:linear-gradient(115deg,#22233e,#141a29); }
.franchise-season-status button { margin-top:18px; opacity:.6; }
.franchise-season-status small { margin-left:10px; }
.franchise-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; gap:10px; }
.franchise-stat { padding:14px; }
.franchise-stat > span { display:block; font-size:10px; color:#a1a9bf; letter-spacing:.08em; }
.franchise-stat > strong { display:block; font-size:28px; line-height:1.25; color:#e0e7ff; margin-top:10px; font-variant-numeric:tabular-nums; }
.franchise-nav { display:flex; gap:8px; margin:22px 0; overflow-x:auto; padding-bottom:5px; }
.franchise-nav button { flex:1; min-width:110px; text-align:left; padding:12px; }
.franchise-nav small { display:block; font-weight:400; margin-top:6px; font-size:10px; color:#a1a9bf; }
.franchise-nav button:disabled { opacity:.5; }
.franchise-formation { background:radial-gradient(ellipse at center,#172137,#0d1422); border-color:#29354a; padding:18px; gap:16px; }
.franchise-shell .franchise-slot { background:#171e2e; border-color:#354057; padding:12px; }
.franchise-slot .franchise-position { text-align:left; font-size:10px; font-weight:900; color:#c7d2fe; border-bottom:1px solid #ffffff09; padding-bottom:6px; }
.franchise-slot .franchise-rating { font-size:24px; }
.franchise-slot .franchise-player-identity strong { font-size:13px; }
.franchise-slot .franchise-player-top { gap:7px; flex-wrap:wrap; }
.franchise-slot .franchise-player-value { font-size:15px; }
.franchise-shell .franchise-target { border-color:#a5b4fc; background:#242e4b; }
.franchise-warning { border-left:3px solid #ef8c95; padding:12px 18px; margin:20px 0; background:#39212b55; border-radius:0 10px 10px 0; }
.franchise-warning .franchise-kicker { color:#efb0b7; }
.franchise-trade-out { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:center; margin:18px 0; }
.franchise-trade-grid button { background:#171e30; }
.franchise-entry { border-color:#414263; }
.franchise-feature-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:16px; }
.franchise-feature-tags span { padding:5px 7px; font-size:8px; font-weight:700; letter-spacing:.04em; color:#b6b5d6; background:#26233f; border:1px solid #3c3658; border-radius:5px; }
.franchise-options > button { animation:franchise-card-enter 200ms ease-out; }
.franchise-rolling { animation:none; color:#c4b5fd; }
@keyframes franchise-card-enter { from { opacity:.5; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media(hover:hover) { .franchise-options > button:hover,.franchise-trade-grid > button:hover { transform:translateY(-2px); } }
@media(max-width:1000px) { .franchise-workspace { grid-template-columns:1fr; } .franchise-options { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); } }
@media(max-width:700px) {
 .franchise-header { gap:12px; flex-wrap:wrap; } .franchise-brand { padding-right:12px; font-size:20px; }
 .franchise-header-metrics { width:100%; display:flex; justify-content:space-between; text-align:left; }
 .franchise-dashboard { grid-template-columns:1fr; gap:10px; } .franchise-summary { border-bottom:1px solid #2b3045; }
 .franchise-progress { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .franchise-formation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:10px; }
 .franchise-formation > div { display:contents; } .franchise-formation > div > span { display:none; }
 .franchise-shell .franchise-slot { min-height:100px; }
 .franchise-trade-out { grid-template-columns:1fr; gap:10px; }
 .franchise-stat { padding:12px 5px; } .franchise-stat > strong { font-size:24px; }
}
@media(prefers-reduced-motion:reduce) { .franchise-options > button { animation:none; } .franchise-cap-fill,.franchise-shell button { transition:none; } }

/* Franchise competition: results, table and playoff presentation. */
.franchise-league-scroll { overflow-x:auto; margin:20px 0; border:1px solid #30394f; border-radius:12px; }
.franchise-league-table { width:100%; min-width:650px; border-collapse:collapse; font-size:12px; }
.franchise-league-table caption { text-align:left; padding:14px; color:#a5b4fc; font-size:11px; }
.franchise-league-table th,.franchise-league-table td { padding:12px 9px; text-align:right; border-bottom:1px solid #252e42; }
.franchise-league-table th:nth-child(2),.franchise-league-table td:nth-child(2) { text-align:left; }
.franchise-league-table th { font-size:10px; color:#9ba9c2; }
.franchise-league-table small,.franchise-score-row small { display:block; font-size:10px; font-weight:400; color:#a1adc5; }
.franchise-user-row { background:#44458033; color:#e0e7ff; font-weight:800; }
.franchise-cutoff td { border-bottom:2px solid #8582c0; }
.franchise-score-row { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:16px; padding:16px 0; }
.franchise-score-row > span:last-of-type { text-align:right; }
.franchise-score-row > span { overflow-wrap:anywhere; }
.franchise-score-row > strong { font-size:22px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.franchise-result { margin:20px 0; padding:24px; border:1px solid #404964; border-radius:14px; background:#171f32; }
.franchise-result-win { border-color:#427b6a; background:#18312a55; }
.franchise-result-loss { border-color:#884654; background:#38232b66; }
.franchise-result-draw { border-color:#8b7849; background:#38322255; }
.franchise-grand-final { border-color:#b4a2e8; box-shadow:inset 0 2px 0 #c4b5fd; }
.franchise-fixture-list details { border:1px solid #30394f; border-radius:10px; padding:12px; margin:10px 0; }
.franchise-fixture-list summary { cursor:pointer; color:#bfc8e8; font-size:12px; font-weight:800; padding:8px; }
.franchise-history-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.franchise-summary small { display:block; color:#9ba9c2; font-size:10px; margin-top:8px; }
@media(max-width:650px) { .franchise-history-grid { grid-template-columns:1fr; } .franchise-score-row { gap:8px; font-size:12px; } .franchise-score-row > strong { font-size:19px; } .franchise-result { padding:16px; } }

.franchise-team-badge { display:inline-flex; vertical-align:middle; align-items:center; justify-content:center; flex-shrink:0; width:28px; height:32px; background:var(--team-primary); border:1px solid var(--team-secondary); border-bottom:4px solid var(--team-secondary); border-radius:5px 5px 10px 10px; color:#fff; text-shadow:0 1px 3px #000; font-size:9px; font-weight:900; margin-right:5px; }
.franchise-badge-large { width:44px; height:48px; font-size:13px; }
.franchise-offer-cap { display:grid; grid-template-columns:1fr; gap:3px; margin:16px 0; }
.franchise-offer-cap dt { color:#9ca3af; font-size:9px; letter-spacing:.05em; }
.franchise-offer-cap dd { color:#e0e7ff; font-size:13px; font-weight:700; margin:0 0 8px; }
.franchise-trade-grid button:disabled { opacity:.5; cursor:not-allowed; }

.franchise-xp { font-size:11px; color:#c4b5fd; margin:16px 0; }
.franchise-xp .franchise-cap-track { margin:8px 0; }
.franchise-xp > span { color:#a1a9bf; }
.franchise-player-origin > strong { display:block; font-size:12px; color:#c7d2fe; }

/* Franchise presentation: scoped to the management shell, including reduced motion. */
.franchise-shell {
 --cap-color:#638bff; --franchise-line:#637fd43b;
 position:relative; isolation:isolate; box-sizing:border-box; max-width:1440px; width:100%; min-width:0;
 background:radial-gradient(ellipse at 8% 0%,#4338ca28,transparent 48%),radial-gradient(ellipse at 100% 30%,#0891b21a,transparent 45%),#0d1425;
 border:1px solid var(--franchise-line); box-shadow:0 20px 60px #02061755,inset 0 1px #a5b4fc12;
 border-radius:20px; padding:clamp(14px,2.5vw,32px); color:#e8edff;
}
.franchise-shell::before { content:""; pointer-events:none; position:absolute; inset:0; z-index:-1; border-radius:inherit; background:linear-gradient(90deg,#7188ee04 1px,transparent 1px),linear-gradient(#7188ee04 1px,transparent 1px); background-size:40px 40px; }
.franchise-shell * { box-sizing:border-box; }
.franchise-shell h2 { font-size:clamp(22px,2.5vw,32px); font-weight:850; letter-spacing:-.035em; }
.franchise-shell h3 { letter-spacing:-.015em; }
.franchise-shell .franchise-kicker { color:#8fbeff; font-size:10px; letter-spacing:.14em; font-weight:800; }
.franchise-shell .franchise-muted { color:#aebbd4; line-height:1.65; }
.franchise-header { display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding-bottom:22px; border-bottom:1px solid var(--franchise-line); }
.franchise-header .franchise-brand { color:#f2f5ff; border-color:var(--franchise-line); }
.franchise-header .franchise-brand span { color:#81acff; }
.franchise-header-name { flex:1; min-width:160px; }
.franchise-header-name > span { display:block; color:#a7b9d9; margin-top:5px; font-size:11px; }
.franchise-header-metrics { display:grid; grid-template-columns:repeat(4,minmax(80px,1fr)); gap:7px; text-align:left; margin-left:auto; }
.franchise-header-metrics > span { display:block; padding:12px; border:1px solid #7d9cff24; border-radius:10px; background:linear-gradient(145deg,#26376199,#182139); font-size:9px; font-weight:750; color:#aebddb; letter-spacing:.06em; }
.franchise-header-metrics strong { display:block; font-size:21px; letter-spacing:-.03em; color:#f1f5ff; font-variant-numeric:tabular-nums; }
.franchise-header-metrics small { font-size:9px; }
.franchise-shell .franchise-panel,.franchise-shell .franchise-season-status,.franchise-shell .franchise-cap {
 background:linear-gradient(135deg,#24345a99,#151f3699); border:1px solid var(--franchise-line); border-radius:14px;
 box-shadow:inset 0 1px #b8c9ff0a,0 7px 20px #00000015;
}
.franchise-shell .franchise-panel { min-width:0; padding:18px; }
.franchise-shell .franchise-season-status { padding:24px; position:relative; overflow:hidden; border-top:2px solid #6a8cf5; }
.franchise-season-status .franchise-score-row { padding:24px 0; font-size:18px; }
.franchise-season-status .franchise-team-badge,.franchise-result .franchise-team-badge { width:44px; height:49px; font-size:13px; }
.franchise-season-status button:not(:disabled) { opacity:1; }
.franchise-nav { gap:8px; overflow:visible; }
.franchise-nav button { position:relative; min-width:0; background:#1b274399; border:1px solid #627fc52b; border-radius:10px; font-size:11px; overflow:hidden; }
.franchise-nav button::after { content:""; position:absolute; bottom:0; left:12px; right:12px; height:2px; background:linear-gradient(90deg,#818cf8,#38bdf8); transform:scaleX(0); transition:transform 200ms ease; }
.franchise-nav button[aria-current="page"] { background:linear-gradient(120deg,#38427d,#203d65); border-color:#818cf880; box-shadow:0 3px 16px #5265f220; color:#fff; }
.franchise-nav button[aria-current="page"]::after { transform:scaleX(1); }
.franchise-nav-icon { display:inline-block; margin-right:8px; font-size:17px; color:#9ac4ff; vertical-align:middle; }
.franchise-nav small { color:#b2c0da; line-height:1.4; }
.franchise-shell button { transition:transform 180ms ease,background 180ms ease,border-color 180ms ease,box-shadow 180ms ease; }
.franchise-shell button:focus-visible { outline:2px solid #67e8f9; outline-offset:3px; }
.franchise-shell .franchise-primary { background:linear-gradient(115deg,#4f46d0,#2563b3); border:1px solid #8ba9ff77; color:#fff; box-shadow:0 4px 14px #3156cb22; font-weight:800; letter-spacing:.035em; }
.franchise-shell button:disabled { opacity:.55; }
.franchise-shell .franchise-slot:disabled { opacity:1; }
.franchise-dashboard-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:18px 0; }
.franchise-dashboard-details strong { display:block; font-size:18px; margin-top:14px; }
.franchise-dashboard-details small { display:block; margin-top:9px; color:#a5b6d4; font-size:11px; line-height:1.5; }
.franchise-form { display:flex; flex-wrap:wrap; gap:7px; margin:14px 0 6px; }
.franchise-form > span { display:grid; place-items:center; width:29px; height:29px; border-radius:9px; font-size:11px; font-weight:850; }
.franchise-form-W { background:#164e43; color:#8ee4bd; border:1px solid #3d967775; }
.franchise-form-L { background:#4b263b; color:#ffa4b3; border:1px solid #a24b6d75; }
.franchise-form-D { background:#4e4125; color:#f6d887; border:1px solid #ad8b4a75; }
.franchise-shell .franchise-summary,.franchise-roster-summary { border:1px solid var(--franchise-line); border-radius:13px; background:#1a264455; margin:16px 0; }
.franchise-roster-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.franchise-roster-summary .franchise-stat > strong { font-size:clamp(16px,2vw,25px); }
.franchise-stat { min-width:0; }
.franchise-stat > strong { overflow-wrap:anywhere; }
.franchise-shell .franchise-formation { background:linear-gradient(180deg,#17394b66,#14233a),repeating-linear-gradient(0deg,transparent 0 80px,#ffffff04 80px 160px); border:1px solid #3c68825c; border-radius:16px; }
.franchise-shell .franchise-slot { border:1px solid #7599ca38; background:linear-gradient(145deg,#253b53,#18253b); border-radius:12px; min-width:0; }
.franchise-player-card { --rating-accent:#bdc8dd; min-width:0; text-align:left; }
.franchise-player-card[data-ovr-tier="good"] { --rating-accent:#7eb6ff; }
.franchise-player-card[data-ovr-tier="elite"] { --rating-accent:#c5a6ff; }
.franchise-player-card[data-ovr-tier="superstar"] { --rating-accent:#efce83; }
.franchise-player-card .franchise-rating { color:var(--rating-accent); border-left:3px solid var(--rating-accent); padding-left:8px; font-size:32px; font-weight:900; line-height:1; }
.franchise-player-card .franchise-rating small { display:block; font-size:8px; margin-top:5px; letter-spacing:.1em; }
.franchise-player-card:is([data-franchise-variant="grass"],[data-franchise-variant="fergus"],[data-franchise-variant="poty"],[data-franchise-variant="gold"]) .franchise-rating { color:var(--player-accent); border-color:var(--player-accent); }
.franchise-player-identity { min-width:0; }
.franchise-player-identity strong { overflow-wrap:anywhere; }
.franchise-player-identity > span { display:inline-block; padding:4px 6px; border-radius:5px; background:#93acff12; margin-top:7px; }
.franchise-player-value { border-top:1px solid #869fcc20; padding-top:12px; font-variant-numeric:tabular-nums; }
.franchise-player-origin { line-height:1.5; overflow-wrap:anywhere; }
.franchise-player-origin .franchise-team-badge { width:21px; height:24px; font-size:7px; }
.franchise-player-origin strong .franchise-team-badge { display:inline-flex; color:#fff; }
.franchise-shell .franchise-cap-track { background:#080f2299; height:8px; box-shadow:inset 0 1px 3px #0003; }
.franchise-shell .franchise-cap-fill { background:linear-gradient(90deg,var(--cap-color),#93c5fd); }
.franchise-cap[data-cap-status="warning"] .franchise-cap-fill { background:linear-gradient(90deg,#b78a35,#f1ce79); }
.franchise-cap[data-cap-status="danger"] { border-color:#e5737366; }
.franchise-cap[data-cap-status="danger"] .franchise-cap-fill { background:linear-gradient(90deg,#b4445f,#fb899d); }
.franchise-xp { margin:12px 0 6px; font-size:10px; }
.franchise-xp-label { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px; color:#c6d4f2; }
.franchise-xp-label span { color:#9cb4dc; }
.franchise-xp .franchise-cap-fill { background:linear-gradient(90deg,#7377f0,#60c5ed); }
.franchise-max { color:#efce83; border-top:1px solid #d8b87530; padding-top:10px; }
.franchise-max span { display:block; margin-top:4px; }
.franchise-lock { display:block; color:#d6b97e; font-size:9px; margin-top:8px; }
.franchise-training-intro { display:flex; align-items:center; gap:18px; margin:18px 0; }
.franchise-training-intro p { margin-bottom:0; }
.franchise-training-intro strong { font-size:23px; }
.franchise-training-card { display:flex; flex-direction:column; }
.franchise-training-card button { margin-top:auto; width:100%; }
.franchise-session-gain { color:#8ad5db; display:block; margin:12px 0; font-size:11px; }
.franchise-training-result { max-width:800px; margin:24px auto; }
.franchise-xp-award { color:#9ac7ff; font-size:36px; font-weight:900; }
.franchise-training-result .franchise-xp { font-size:13px; margin:24px 0; }
.franchise-training-result .franchise-cap-track { height:12px; }
.franchise-ovr-change { font-size:42px; font-weight:900; color:#efce83; }
.franchise-ovr-change small { font-size:13px; color:#bfcbe3; }
.franchise-xp-gained { animation:franchise-xp-progress 350ms ease-out both; }
@keyframes franchise-xp-progress { 0% { width:var(--xp-start); } 65% { width:var(--xp-mid); } 100% { width:var(--xp-end); } }
.franchise-trade-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:14px; }
.franchise-trade-grid > button { min-width:0; }
.franchise-trade-delta,.franchise-result-stats { display:flex; flex-wrap:wrap; gap:20px; border-top:1px solid var(--franchise-line); padding-top:14px; margin-top:16px; }
.franchise-trade-delta span,.franchise-result-stats span { font-size:9px; letter-spacing:.06em; color:#aebbd4; }
.franchise-trade-delta strong,.franchise-result-stats strong { display:block; font-size:18px; margin-top:4px; letter-spacing:0; }
.franchise-positive { color:#88dfb8; }
.franchise-negative { color:#ffa0b1; }
.franchise-league-table tbody tr:nth-child(even) { background:#6a86cf08; }
.franchise-league-table tbody .franchise-user-row { background:linear-gradient(90deg,#414ac54a,#307cc52a); }
.franchise-league-table tbody tr:nth-child(-n+4) td:first-child { color:#9bafff; border-left:3px solid #818cf8; }
.franchise-league-table td:nth-child(2) { min-width:150px; }
.franchise-league-table .franchise-team-badge { box-shadow:-4px 0 0 -2px var(--team-secondary); }
.franchise-shell .franchise-result { animation:franchise-card-enter 250ms ease-out; }
.franchise-result .franchise-score-row > strong { font-size:clamp(26px,4vw,44px); letter-spacing:-.035em; }
.franchise-result-win h2 { color:#86deb6; }
.franchise-result-loss h2 { color:#ffa0b1; }
.franchise-result-draw h2 { color:#efce83; }
.franchise-other-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
.franchise-other-results > h3 { grid-column:1/-1; }
.franchise-other-results .franchise-score-row { border-top:1px solid var(--franchise-line); gap:8px; font-size:11px; }
.franchise-other-results .franchise-score-row > strong { font-size:17px; }
.franchise-round-summary { margin:16px 0; }
.franchise-round-summary > strong,.franchise-round-summary > span { display:block; margin-top:10px; font-size:12px; }
.franchise-celebration { border-color:#c9b16e88 !important; box-shadow:inset 0 2px #e6c87955,0 0 24px #7565db1a !important; animation:franchise-celebrate 350ms ease-out; }
@keyframes franchise-celebrate { from { opacity:.65; filter:brightness(1.2); transform:translateY(4px); } to { opacity:1; filter:brightness(1); transform:none; } }
@media(hover:hover) {
 .franchise-shell button:hover:not(:disabled) { transform:translateY(-2px); border-color:#9aaffc88; box-shadow:0 5px 18px #5364dd22; }
 .franchise-nav button:hover:not(:disabled)::after { transform:scaleX(1); }
 .franchise-training-card { transition:transform 180ms ease,border-color 180ms ease; }
 .franchise-training-card:hover { transform:translateY(-2px); border-color:#8aa5ff66; }
}
@media(max-width:1100px) {
 .franchise-header-metrics { width:100%; }
 .franchise-dashboard-details { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .franchise-dashboard-details > :last-child { grid-column:1/-1; }
}
@media(max-width:700px) {
 .franchise-header { gap:10px; }
 .franchise-header-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .franchise-header-metrics > span { padding:10px; }
 .franchise-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
 .franchise-nav button { padding:9px; font-size:10px; }
 .franchise-nav-icon { font-size:14px; margin-right:5px; }
 .franchise-dashboard-details,.franchise-other-results { grid-template-columns:1fr; }
 .franchise-roster-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .franchise-shell .franchise-panel,.franchise-shell .franchise-season-status { padding:15px; }
 .franchise-league-table { min-width:0; font-size:10px; }
 .franchise-league-table th,.franchise-league-table td { padding:9px 4px; }
 .franchise-league-table th:nth-child(7),.franchise-league-table td:nth-child(7),.franchise-league-table th:nth-child(8),.franchise-league-table td:nth-child(8) { display:none; }
 .franchise-league-table td:nth-child(2) { min-width:100px; overflow-wrap:anywhere; }
 .franchise-league-table .franchise-team-badge { width:20px; height:24px; font-size:7px; }
 .franchise-league-table small { font-size:8px; }
 .franchise-result .franchise-score-row,.franchise-season-status .franchise-score-row { font-size:12px; gap:7px; }
 .franchise-result .franchise-team-badge,.franchise-season-status .franchise-team-badge { display:flex; margin:0 0 8px; width:32px; height:36px; font-size:10px; }
 .franchise-score-row > span:last-of-type .franchise-team-badge { margin-left:auto; }
 .franchise-training-intro { align-items:flex-start; gap:10px; }
 .franchise-training-result .franchise-xp-label { flex-direction:column; }
}
@media(max-width:380px) {
 .franchise-formation { grid-template-columns:1fr; }
 .franchise-league-table th:nth-child(9),.franchise-league-table td:nth-child(9) { display:none; }
}
@media(prefers-reduced-motion:reduce) {
 .franchise-shell *,.franchise-shell *::before,.franchise-shell *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* Franchise release screens extend the existing management design. */
.franchise-release-title { padding:26px 0; }
.franchise-release-title p { color:#b1bed6; }
.franchise-news { margin:20px 0; }
.franchise-news article { display:flex; align-items:flex-start; gap:16px; border-top:1px solid #7b9ddd25; padding:13px 0; }
.franchise-news-category { flex:0 0 65px; color:#9ebaff; font-size:9px; font-weight:800; padding-top:4px; letter-spacing:.08em; }
.franchise-news article p { margin:0 0 5px; font-size:13px; line-height:1.5; }
.franchise-news article small { color:#879bbd; font-size:9px; }
.franchise-awards-night { background:radial-gradient(ellipse at 50% 5%,#8d794528,transparent 50%),#0d1425; }
.franchise-awards-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:20px 0; }
.franchise-shell .franchise-award-card { border-top:2px solid #d7be7c; background:linear-gradient(140deg,#323351,#152137); padding:24px; }
.franchise-award-card > .franchise-kicker { color:#e8ce8e; margin-bottom:22px; }
.franchise-award-growth { display:block; font-size:24px; color:#ecd28a; margin-top:16px; }
.franchise-match-centre { background:radial-gradient(ellipse at 50% 5%,#306db54d,transparent 55%),linear-gradient(180deg,#192644,#0c1728); }
.franchise-match-clock { background:#182e4b; border:1px solid #70a6e95c; border-radius:12px; padding:14px 20px; color:#93d4f3; font-size:27px; font-variant-numeric:tabular-nums; }
.franchise-live-score { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:22px; align-items:center; padding:40px 24px; margin:20px 0; border:1px solid #739dc743; border-radius:18px; box-shadow:inset 0 1px #c5deff12; background:linear-gradient(120deg,#243c6455,#17243d55); }
.franchise-live-score > div { text-align:center; min-width:0; }
.franchise-live-score > div > strong { display:block; margin-top:14px; font-size:19px; overflow-wrap:anywhere; }
.franchise-live-score .franchise-team-badge { width:66px; height:75px; font-size:19px; box-shadow:0 0 22px #79a8e51c; }
.franchise-live-numbers { font-size:clamp(32px,6vw,70px); letter-spacing:-.055em; font-weight:900; font-variant-numeric:tabular-nums; white-space:nowrap; }
.franchise-live-numbers span { color:#788caf; padding:0 10px; }
.franchise-momentum > div:first-child { display:flex; justify-content:space-between; gap:8px; font-size:10px; color:#aec2df; }
.franchise-momentum small { font-size:8px; text-align:center; color:#8397b6; }
.franchise-momentum .franchise-cap-track { height:10px; background:#66538b; }
.franchise-momentum .franchise-cap-fill { background:linear-gradient(90deg,#387fb2,#75c9e2); }
.franchise-match-feed { height:300px; overflow-y:auto; margin:26px 0; border-top:1px solid #739dc72e; scrollbar-width:thin; }
.franchise-match-feed article { display:flex; align-items:center; gap:12px; padding:15px; border-bottom:1px solid #739dc72e; font-size:12px; }
.franchise-match-feed article > div { flex:1; }
.franchise-match-feed article > div > span { display:block; margin-top:4px; color:#a5b8d3; font-size:10px; }
.franchise-match-feed .is-latest { background:linear-gradient(90deg,#39517c55,#23324b33); border-left:3px solid #8abeff; animation:franchise-card-enter 250ms ease-out; }
.franchise-match-centre .franchise-actions small { color:#98abc8; font-size:10px; }
.franchise-legacy-hero { display:flex; gap:26px; align-items:center; margin:24px 0; padding:28px; border:1px solid #ccb66b66; border-radius:16px; background:radial-gradient(ellipse at 0% 0%,#b6a05b22,transparent 65%),#1a2440; }
.franchise-trophy { font-size:70px; color:#e5c985; text-shadow:0 0 24px #e5c98522; }
.franchise-legacy-hero p { color:#bdb393; font-size:11px; }
.franchise-legacy-hero p strong { color:#f2db9c; font-size:32px; margin-left:12px; }
.franchise-legacy-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid #637fd43b; border-radius:12px; }
.franchise-legacy-stats .franchise-stat strong { font-size:24px; }
.franchise-feats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:20px 0 28px; }
.franchise-feats article > span { color:#95a9c7; font-size:9px; }
.franchise-feats h3 { margin:12px 0 8px; font-size:13px; }
.franchise-feats p { color:#aab7cd; font-size:11px; line-height:1.5; }
.franchise-feats small { color:#b9a879; font-size:9px; }
.franchise-shell .franchise-feats .is-unlocked { border-color:#c7b77566; background:linear-gradient(135deg,#39364966,#1a2944); }
.franchise-feats .is-unlocked > span { color:#efcf83; }
.franchise-feats .is-locked { opacity:.7; }
.franchise-season-history details { margin:14px 0; padding:18px; border:1px solid #7b9ddd33; border-radius:12px; }
.franchise-season-history summary { cursor:pointer; color:#c6d6ef; font-size:12px; line-height:1.6; }
.franchise-season-history details > p { margin-top:12px; }
.franchise-legends { display:grid; gap:14px; }
.franchise-legends article { display:flex; gap:20px; align-items:center; }
.franchise-legends article > div { flex:1; min-width:0; }
.franchise-legends h3 { color:#e6cd91; }
.franchise-legends p { font-size:13px; }
.franchise-legends small { color:#a1b2ce; font-size:11px; }
.franchise-medal { font-size:36px; color:#cdbb89; }
.franchise-history-preview { border:1px solid #7c6e473f; border-radius:16px; padding:22px; background:linear-gradient(135deg,#29283b66,#131c2d); }
.franchise-history-preview h2 { color:#dccc9f; font-size:15px; font-weight:800; }
.franchise-history-preview button { color:#b8c8e4; font-size:10px; }
.franchise-legends-preview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; }
.franchise-legends-preview-grid > button { display:flex; flex-direction:column; gap:8px; text-align:left; padding:14px; border:1px solid #8ca2c32c; border-radius:10px; background:#28324b55; transition:transform 180ms ease; }
.franchise-legends-preview-grid strong { color:#e5cc8c; }
.franchise-legends-preview-grid p { color:#95a6c1; font-size:12px; }
.franchise-history-preview button:focus-visible { outline:2px solid #93c5fd; outline-offset:3px; }
@media(hover:hover) { .franchise-legends-preview-grid > button:hover { transform:translateY(-2px); border-color:#c8b07366; } }
@media(max-width:900px) { .franchise-legacy-stats { grid-template-columns:repeat(3,minmax(0,1fr)); } .franchise-feats { grid-template-columns:repeat(2,minmax(0,1fr)); } .franchise-nav { flex-wrap:wrap; } }
@media(max-width:600px) {
 .franchise-awards-grid { grid-template-columns:1fr; }
 .franchise-live-score { gap:8px; padding:24px 8px; }
 .franchise-live-score .franchise-team-badge { width:40px; height:46px; font-size:12px; }
 .franchise-live-score > div > strong { font-size:11px; }
 .franchise-live-numbers { font-size:32px; }
 .franchise-live-numbers span { padding:0 2px; }
 .franchise-match-feed article { padding:12px 6px; gap:7px; }
 .franchise-match-clock { font-size:20px; padding:10px; }
 .franchise-legacy-hero { padding:18px; gap:12px; }
 .franchise-trophy { font-size:42px; }
 .franchise-legacy-hero h2 { font-size:22px; }
 .franchise-legacy-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .franchise-feats { grid-template-columns:1fr; }
 .franchise-legends article { flex-wrap:wrap; gap:12px; }
 .franchise-legends article > button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .franchise-match-feed .is-latest { animation:none; } .franchise-legends-preview-grid > button { transition:none; transform:none; } }


/* =========================================================================
   UNR SHOP V1 / PLAYER BANNERS
   ========================================================================= */
[data-cosmetic-banner] {
    position: relative;
    isolation: isolate;
    --banner-c1: #818cf8;
    --banner-c2: #22d3ee;
    --banner-c3: #c084fc;
    border-radius: 14px;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--banner-c1) 62%, transparent), 0 0 20px -10px var(--banner-c2);
}
[data-cosmetic-banner]::before {
    content: "";
    position: absolute;
    z-index: 4;
    pointer-events: none;
    inset: -3px;
    border-radius: inherit;
    padding: 2px;
    background: linear-gradient(135deg, var(--banner-c1), var(--banner-c2), var(--banner-c3), var(--banner-c1));
    background-size: 220% 220%;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: .9;
}
[data-cosmetic-banner="fire"] { --banner-c1:#fb923c; --banner-c2:#ef4444; --banner-c3:#facc15; box-shadow:0 0 0 1px #fb923c99,0 0 24px -8px #ef444499; }
[data-cosmetic-banner="fire"]::before { animation:banner-fire 2.8s ease-in-out infinite; background-image:linear-gradient(145deg,#fb923c,#ef4444 36%,#facc15 52%,#ef4444 72%,#fb923c); }
[data-cosmetic-banner="snow"] { --banner-c1:#e0f2fe; --banner-c2:#7dd3fc; --banner-c3:#60a5fa; box-shadow:0 0 0 1px #bae6fdcc,0 0 26px -10px #7dd3fccc; }
[data-cosmetic-banner="snow"]::before { animation:banner-snow 5s linear infinite; background-image:repeating-linear-gradient(120deg,#e0f2fe 0 10%,#7dd3fc 10% 19%,#ffffff 19% 23%,#60a5fa 23% 34%); }
[data-cosmetic-banner="lightning"] { --banner-c1:#67e8f9; --banner-c2:#818cf8; --banner-c3:#c084fc; box-shadow:0 0 0 1px #67e8f9aa,0 0 30px -8px #818cf8cc; }
[data-cosmetic-banner="lightning"]::before { animation:banner-lightning 3.8s steps(1,end) infinite; background-image:linear-gradient(118deg,#67e8f9 0 18%,#312e81 18% 23%,#c084fc 23% 46%,#fff 46% 48%,#818cf8 48% 71%,#22d3ee 71%); }
[data-cosmetic-banner="nature"] { --banner-c1:#86efac; --banner-c2:#22c55e; --banner-c3:#14532d; box-shadow:0 0 0 1px #22c55e99,0 0 24px -9px #16a34aaa; }
[data-cosmetic-banner="nature"]::before { animation:banner-nature 5.5s ease-in-out infinite; background-image:repeating-linear-gradient(145deg,#14532d 0 12%,#86efac 12% 18%,#22c55e 18% 31%,#166534 31% 44%); }
[data-cosmetic-banner]:not([data-cosmetic-banner="fire"]):not([data-cosmetic-banner="snow"]):not([data-cosmetic-banner="lightning"]):not([data-cosmetic-banner="nature"])::before {
    background-image:linear-gradient(135deg,var(--banner-c1) 0 30%,var(--banner-c2) 30% 66%,var(--banner-c3) 66% 100%);
}

@keyframes banner-fire { 0%,100%{filter:brightness(.92);background-position:0% 50%} 50%{filter:brightness(1.25);background-position:100% 50%} }
@keyframes banner-snow { from{background-position:0 0} to{background-position:180px 0} }
@keyframes banner-lightning { 0%,86%,100%{filter:brightness(1)} 87%{filter:brightness(1.8)} 89%{filter:brightness(.95)} 91%{filter:brightness(1.55)} 93%{filter:brightness(1)} }
@keyframes banner-nature { 0%,100%{background-position:0% 50%;filter:saturate(.9)} 50%{background-position:100% 50%;filter:saturate(1.25)} }

.unr-shop-shell { width:100%; max-width:1150px; margin:0 auto; display:grid; gap:22px; animation:fadeIn .22s ease; }
.unr-shop-hero { position:relative; overflow:hidden; display:flex; justify-content:space-between; gap:24px; align-items:center; padding:26px; border:1px solid #334155; border-radius:22px; background:radial-gradient(circle at 80% 0%,#0891b225,transparent 34%),linear-gradient(145deg,#111827ee,#07111fee); box-shadow:0 28px 70px -48px #22d3ee99,inset 0 1px 0 #ffffff0c; }
.unr-shop-hero::after { content:""; position:absolute; inset:auto -90px -120px auto; width:300px; height:300px; border-radius:50%; border:1px solid #67e8f922; box-shadow:0 0 80px #22d3ee12; pointer-events:none; }
.unr-shop-kicker,.unr-shop-section-title span { font-size:9px; font-weight:950; letter-spacing:.17em; color:#67e8f9; }
.unr-shop-hero h2 { margin:6px 0; font-size:clamp(30px,5vw,52px); line-height:.95; font-weight:950; letter-spacing:-.055em; color:#f8fafc; }
.unr-shop-hero p { max-width:610px; color:#9ca3af; font-size:13px; line-height:1.65; }
.unr-shop-wallet { min-width:190px; display:grid; gap:5px; padding:16px 18px; border:1px solid #f59e0b33; border-radius:15px; background:#0b1220cc; box-shadow:inset 0 1px 0 #ffffff08; }
.unr-shop-wallet small { font-size:8px; font-weight:900; letter-spacing:.14em; color:#64748b; }
.unr-shop-wallet strong { color:#fbbf24; font-size:25px; }
.unr-shop-wallet span { color:#94a3b8; font-size:10px; }
.unr-shop-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.unr-shop-toolbar > div { display:flex; gap:7px; flex-wrap:wrap; }
.shop-filter,.shop-home-button,.shop-action { border:1px solid #334155; border-radius:10px; background:#0f172acc; color:#94a3b8; font-size:9px; font-weight:900; letter-spacing:.09em; padding:10px 13px; transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease; }
.shop-filter.is-active { color:#cffafe; border-color:#22d3ee66; background:#0891b21a; box-shadow:0 0 18px -12px #22d3ee; }
.shop-home-button { color:#cbd5e1; }
.unr-shop-section-title { display:flex; justify-content:space-between; align-items:end; gap:14px; margin-top:8px; padding-bottom:10px; border-bottom:1px solid #1f2937; }
.unr-shop-section-title h3 { margin-top:4px; color:#f1f5f9; font-size:18px; font-weight:900; }
.unr-shop-section-title p { color:#64748b; font-size:10px; }
.unr-shop-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.unr-shop-grid-elements { grid-template-columns:repeat(4,minmax(0,1fr)); }
.unr-shop-item { min-width:0; display:grid; gap:12px; padding:14px; border:1px solid #263244; border-radius:16px; background:linear-gradient(155deg,#111827dd,#07111fde); box-shadow:inset 0 1px 0 #ffffff08; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.unr-shop-item.is-equipped { border-color:#22d3ee66; box-shadow:0 0 26px -18px #22d3ee,inset 0 1px 0 #fff1; }
.cosmetic-preview-wrap { min-height:126px; display:grid; place-items:center; border:1px solid #1f2937; border-radius:12px; background:radial-gradient(circle at 50% 20%,#33415544,transparent 60%),#050b16; overflow:visible; padding:16px; }
.cosmetic-preview-card { width:min(100%,190px); min-height:82px; display:flex; align-items:center; gap:12px; padding:13px; border:1px solid #334155; border-radius:11px; background:linear-gradient(145deg,#182235,#0a1220); color:#e5e7eb; }
.cosmetic-preview-card > * { position:relative; z-index:5; }
.cosmetic-preview-card strong { display:block; font-size:13px; font-weight:950; }
.cosmetic-preview-card span { display:block; margin-top:5px; font-size:9px; color:#94a3b8; }
.cosmetic-preview-ovr { min-width:45px; padding-left:8px; border-left:3px solid var(--banner-c1); font-size:27px; line-height:1; font-weight:950; color:var(--banner-c1); }
.cosmetic-preview-ovr small { display:block; margin-top:4px; font-size:7px; letter-spacing:.12em; color:#94a3b8; }
.unr-shop-item-head { display:flex; align-items:start; justify-content:space-between; gap:10px; }
.unr-shop-item-head span { font-size:7px; font-weight:900; letter-spacing:.14em; color:#64748b; }
.unr-shop-item-head h3 { margin-top:3px; color:#f1f5f9; font-size:13px; font-weight:900; overflow-wrap:anywhere; }
.unr-shop-item-head b { flex:0 0 auto; color:#fbbf24; font-size:9px; }
.shop-action { width:100%; color:#cffafe; border-color:#22d3ee40; background:#0891b216; }
.shop-action.is-equipped { color:#86efac; border-color:#22c55e44; background:#16a34a14; }
.unr-shop-empty { padding:30px; border:1px dashed #334155; border-radius:15px; text-align:center; color:#64748b; }
.unr-shop-toast-host { position:fixed; z-index:9999; right:18px; top:18px; display:grid; gap:8px; pointer-events:none; }
.unr-shop-toast { min-width:240px; max-width:360px; display:grid; gap:4px; padding:13px 15px; border:1px solid #334155; border-radius:12px; background:#0b1220ee; box-shadow:0 18px 50px -24px #000; animation:shop-toast-in .25s ease; }
.unr-shop-toast strong { font-size:10px; letter-spacing:.1em; color:#e2e8f0; }
.unr-shop-toast span { font-size:11px; color:#94a3b8; }
.unr-shop-toast-success { border-color:#22c55e55; }
.unr-shop-toast-error { border-color:#ef444455; }
@keyframes shop-toast-in { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:none} }

@media (hover:hover) {
    .unr-shop-item:hover { transform:translateY(-3px); border-color:#475569; box-shadow:0 16px 36px -28px #22d3ee88,inset 0 1px 0 #ffffff0c; }
    .shop-filter:hover,.shop-home-button:hover,.shop-action:hover { transform:translateY(-1px); border-color:#67e8f966; color:#e0f2fe; }
}
@media (max-width:900px) { .unr-shop-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:680px) {
    .unr-shop-hero { align-items:stretch; flex-direction:column; padding:20px; }
    .unr-shop-wallet { min-width:0; }
    .unr-shop-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .unr-shop-section-title { align-items:start; flex-direction:column; }
}
@media (max-width:430px) { .unr-shop-grid { grid-template-columns:1fr; } .unr-shop-toolbar,.unr-shop-toolbar>div { width:100%; } .shop-filter { flex:1; } }
@media (prefers-reduced-motion:reduce) {
    [data-cosmetic-banner]::before,.unr-shop-item,.shop-filter,.shop-home-button,.shop-action,.unr-shop-toast { animation:none!important; transition:none!important; }
}

/* Franchise History dashboard replaces the ambiguous "Franchise Legends" surface. */
.franchise-history-dashboard-shell{border:1px solid rgba(55,65,81,.72);border-radius:18px;padding:20px;background:radial-gradient(circle at 92% 0%,rgba(99,102,241,.11),transparent 34%),linear-gradient(145deg,rgba(17,24,39,.78),rgba(3,7,18,.68))}
.franchise-history-kicker{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:900;letter-spacing:.16em;color:#818cf8}.franchise-history-kicker span{width:7px;height:7px;border-radius:50%;background:#6366f1;box-shadow:0 0 14px rgba(99,102,241,.5)}
.franchise-history-dashboard{display:flex;flex-direction:column;gap:8px}.franchise-dashboard-run{display:grid;grid-template-columns:42px minmax(150px,1fr) 82px 70px 82px auto;gap:12px;align-items:center;padding:12px;border:1px solid rgba(75,85,99,.5);border-radius:12px;background:rgba(3,7,18,.4)}.franchise-dashboard-run>div{display:flex;flex-direction:column;min-width:0}.franchise-dashboard-run strong{color:#f3f4f6}.franchise-dashboard-run b{color:#a5b4fc;font-size:16px}.franchise-dashboard-run small{font-size:8px;color:#6b7280;letter-spacing:.08em}.franchise-dashboard-rank{font-weight:900;text-align:center}.franchise-dashboard-run button{border:1px solid rgba(99,102,241,.35);background:rgba(79,70,229,.1);color:#c7d2fe;border-radius:8px;padding:8px 10px;font-size:9px;font-weight:900;letter-spacing:.06em}
.franchise-card-status{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:-4px 0 12px}.franchise-card-status span{border:1px solid rgba(250,204,21,.45);background:rgba(113,63,18,.28);color:#fde047;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:900;letter-spacing:.05em}.franchise-match-feed article.is-yellow-card{border-color:rgba(250,204,21,.45);background:rgba(113,63,18,.2)}.franchise-match-feed article.is-yellow-card b{color:#fde047}
@media(max-width:760px){.franchise-dashboard-run{grid-template-columns:36px 1fr auto}.franchise-dashboard-run>div:nth-of-type(n+2){display:none}.franchise-dashboard-run button{grid-column:2/4}}

