#modal.tactical-dialog{width:min(1120px,96vw);max-width:1120px;height:92dvh;max-height:92dvh}.tactical-dialog .modal-head{padding:16px 24px}.tactical-dialog .modal-body{padding:20px 24px}.tactical-report{font-size:14px;color:#e3edf2;line-height:1.6}.report-tabs{display:flex;gap:6px;position:sticky;top:0;background:#10191f;z-index:3;padding:8px 0;overflow-x:auto}.report-tabs button{background:#1c2a36;border:1px solid #415462;padding:8px 16px;border-radius:7px;color:#c4d2df;white-space:nowrap}.report-tabs button.selected{border-color:#ffb363;color:#ffb363}.report-tabs small{margin-left:8px}.report-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0}.report-hero h2{font-size:25px;margin:8px 0}.report-hero>strong{font-size:42px;color:#ffb363;white-space:nowrap}.report-hero p{margin:4px 0;color:#aabcc9}.report-panel{background:#17232d;border:1px solid #314654;border-radius:12px;padding:18px;margin:0 0 16px}.report-panel h3{font-size:18px;margin:0 0 14px}.report-panel h3 small{font-size:12px;font-weight:400;color:#aabcc9;margin-left:8px}.report-panel h4{margin:8px 0 12px;font-size:14px}.report-panel p{margin:7px 0}.report-note{font-size:12px;color:#9bafbd;line-height:1.7}.report-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.report-two>div,.report-two>section{min-width:0}.report-table{width:100%;border-collapse:collapse;font-size:13px}.report-table th,.report-table td{text-align:center;padding:8px 6px;border-bottom:1px solid #2b414e}.report-table th:first-child,.report-table td:first-child{text-align:left}.report-table th{color:#a8bdcc;font-weight:500}.report-table tbody tr:last-child>*{border-bottom:0}.report-table meter{display:block;width:100%;height:5px;margin:6px auto 0;accent-color:#ffb363}.report-table-scroll{overflow-x:auto}.box-report{min-width:830px}.report-player{display:inline-block;padding:3px 7px;border-radius:5px;font-weight:600}.report-player small{font-size:11px;font-weight:400}.mvp{border-top:1px solid #3e505b;margin-top:16px;padding-top:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.mvp>span:first-child{color:#ffbd74;font-weight:700}.mvp button{background:none;color:#b8ccda;border:0;font-size:12px;padding:6px}.chart-legend{display:flex;gap:20px;font-size:13px}.team-0{color:#ffb363;stroke:#ffb363}.team-1{color:#89bfff;stroke:#89bfff}.score-chart{width:100%;display:block;overflow:visible;margin-top:16px}.chart-grid{stroke:#2b414e;stroke-width:1}.score-chart text{fill:#9db3c3;font-size:11px}.chart-line{fill:none;stroke-width:2.5}.chart-dot{fill:transparent;stroke:transparent;cursor:pointer}.chart-dot:hover,.chart-dot:focus{fill:#fff;stroke:#fff;r:5;outline:none}.forecast-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.forecast-grid>div{border-left:3px solid #ffb363;padding-left:16px}.forecast-grid>div+div{border-color:#89bfff}.forecast-grid strong{display:block;font-size:29px}.forecast-grid strong small{font-size:12px;font-weight:400;margin-left:8px;color:#aabcc9}.evidence-row{display:grid;grid-template-columns:80px 1fr 55px;gap:12px;text-align:left;width:100%;background:none;color:#d7e3ed;border:0;border-top:1px solid #2b414e;padding:11px 0;font-size:13px;align-items:start}.evidence-row time{color:#9db3c3;font-variant-numeric:tabular-nums}.evidence-row b{text-align:right}.evidence-row:hover{background:#223442}.report-evidence{position:sticky;top:62px;z-index:4;padding:14px 18px;background:#203a4a;border:1px solid #7aa7bc;border-radius:10px;box-shadow:0 8px 25px #0008}.report-evidence button{float:right;background:none;border:0;color:#fff;font-size:22px}.report-panel summary{cursor:pointer;font-size:16px;font-weight:600}.profile-evidence{border-bottom:1px solid #314654;padding:12px 0}.profile-evidence small{color:#aabcc9;font-size:12px}.profile-evidence p{font-size:13px}@media(max-width:700px){.report-two{grid-template-columns:1fr}.report-hero{display:block}.report-hero h2{font-size:20px}.report-hero>strong{font-size:34px}.tactical-dialog .modal-body{padding:12px}.evidence-row{grid-template-columns:62px 1fr 45px;gap:8px;font-size:12px}.forecast-grid{gap:8px}.report-panel{padding:14px}}

.report-player.rarity{background:linear-gradient(125deg,var(--card-top),var(--card-bottom));border:1px solid var(--card-edge);color:var(--card-ink)}
/* A report is a portrait reading surface at every screen width. */
#modal.tactical-dialog{width:min(520px,100vw);max-width:520px;height:96dvh;max-height:96dvh;margin:auto;overflow:hidden}
.tactical-dialog .modal-head{padding:12px 14px;gap:8px}.tactical-dialog .modal-head h2{font-size:19px}.tactical-dialog .modal-actions{gap:4px}.tactical-dialog .modal-head button{min-height:44px;font-size:14px;padding:6px 9px}
.tactical-dialog .modal-body{padding:0 12px 20px;overflow-y:auto;overflow-x:hidden}.tactical-report{font-size:15px;overflow-wrap:anywhere}.tactical-report *{box-sizing:border-box;min-width:0}
.report-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;gap:5px;padding:8px 0}.report-tabs button{min-height:48px;padding:5px 2px;font-size:14px}.report-tabs small{display:block;margin:0;font-size:12px}
.report-hero{display:block;padding:18px 3px}.report-hero h2{font-size:23px}.report-hero>strong{display:block;font-size:42px}.report-two{grid-template-columns:1fr;gap:12px}.report-panel{padding:14px;margin-bottom:12px}.report-panel h3{font-size:18px;margin:4px 0 14px}.report-panel h3 small{display:block;margin:3px 0 0;font-size:13px}.report-panel h4{font-size:15px}.report-note{font-size:13px}.report-panel p{line-height:1.75}
.report-table{font-size:13px;table-layout:fixed}.report-table th,.report-table td{padding:9px 4px}.forecast-grid{gap:12px}.forecast-grid>div{padding-left:9px}.forecast-grid strong small{display:block;margin:0}.report-player small{display:block;font-size:12px}.mvp{display:grid;gap:8px}.mvp button,.mechanism-proof{font-size:13px;min-height:44px;padding:8px 0;color:#ffbd74;background:none;border:0;text-align:left}.chart-legend{font-size:14px;gap:14px;flex-wrap:wrap}.score-chart text{font-size:13px}.score-chart{overflow:hidden}
.evidence-row{grid-template-columns:58px minmax(0,1fr);font-size:14px;gap:4px 8px;min-height:48px}.evidence-row b{grid-column:2;text-align:left;color:#ffbd74}.evidence-row time{font-size:12px}.report-evidence{position:relative;top:auto;padding:12px}.report-evidence>button{min-width:44px;min-height:44px}.report-evidence small{display:block}.report-panel summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:15px}
.mechanism-card{padding:14px 0;border-top:1px solid #354957}.mechanism-card:last-child{padding-bottom:0}.mechanism-heading{display:flex;gap:8px;justify-content:space-between;align-items:start;flex-wrap:wrap}.mechanism-heading b{font-size:16px}.mechanism-heading>span{font-size:13px}.mechanism-status{color:#ffbd74;border:1px solid #705539;padding:2px 7px;border-radius:5px}.unformed .mechanism-status{color:#9daeb8;border-color:#465360}.mechanism-plan{color:#ffce91;font-weight:600}.mechanism-plan small{display:block;font-size:12px;color:#aabcc9;font-weight:400}.fit-roles{display:grid;gap:7px;margin:12px 0}.fit-roles>div{display:grid;grid-template-columns:1fr auto;padding:8px 10px;background:#20313c;border-radius:5px;border-left:3px solid #7db1a5;font-size:14px}.fit-roles small{grid-column:1/-1;color:#b4c6d1;font-size:12px;margin-top:3px}.fit-roles .missing{border-color:#e6a86d}.fit-roles .missing>span,.missing-reason{color:#e6b78c}.missing-reason{font-size:13px}.effect-line{display:grid;gap:4px;border-top:1px solid #354957;padding:12px 0}.effect-line>b{font-size:14px}.effect-line>small{font-size:12px}.effect-deltas{display:grid;gap:4px;font-size:13px}.effect-deltas>span{display:flex;justify-content:space-between;gap:8px}.effect-deltas b{color:#cfdee5;white-space:nowrap}.rule-detail{font-size:13px;color:#acbfcc}.rule-detail summary{font-size:13px;min-height:44px}.rule-detail p{padding-left:5px}.pair-card{padding:12px 0;border-top:1px solid #354957}.pair-card>b{font-size:15px}.pair-card>p{font-size:13px;color:#afc0cd}.pair-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pair-numbers span{font-size:12px;color:#b4c5d0}.pair-numbers b{display:block;color:#eef3f5;font-size:22px}.influence-rules ol{padding-left:20px}.influence-rules li{margin:9px 0}.influence-rules p{font-size:14px}
.box-player{border-top:1px solid #354957;padding:7px 0}.box-player summary{display:flex;justify-content:space-between;gap:10px;min-height:60px}.box-player .report-player{font-size:14px;flex:1}.box-key{display:flex;gap:10px}.box-key>b{font-size:19px;text-align:center}.box-key small{display:block;font-size:11px;font-weight:400;color:#aabcc9}.box-extra{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px 2px}.box-extra span{font-size:12px;color:#b7c6cf}.box-extra b{display:block;font-size:15px;color:#e3edf2}.tactical-dialog .box-grids{grid-template-columns:1fr}.tactical-dialog .report-title{flex-wrap:wrap}
@media(max-width:540px){#modal.tactical-dialog{height:100dvh;max-height:100dvh;width:100vw;max-width:100vw;border-radius:0;border:0}.tactical-dialog .modal-head{padding-top:max(10px,env(safe-area-inset-top))}.tactical-dialog .modal-body{padding-bottom:max(20px,env(safe-area-inset-bottom))}}
@media(max-width:350px){.report-panel{padding:11px}.tactical-dialog .modal-body{padding-left:8px;padding-right:8px}.box-key{gap:6px}.box-player summary{gap:6px}.mechanism-heading{display:grid}.effect-deltas>span{flex-wrap:wrap}}
#modal.tactical-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
.tactical-dialog .modal-head{position:static}.tactical-dialog .modal-body{min-height:0}
.tactical-report p{font-size:15px}.tactical-report p.report-note,.tactical-report .rule-detail p,.tactical-report .missing-reason{font-size:13px}.tactical-report .mechanism-plan{font-size:14px}.tactical-report .pair-card>p{font-size:13px}.tactical-report .report-table th{font-size:13px}.tactical-report .report-table td:first-child,.tactical-report .report-table th:first-child{white-space:normal;max-width:none;overflow:visible}.tactical-report .report-table td{font-size:13px}.tactical-report .profile-evidence p{font-size:13px}
.report-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:15px}.report-shortcuts button{background:#1c2c38;border:1px solid #3b5364;border-radius:6px;min-height:44px;padding:8px 4px;color:#c5d8e6;font-size:14px}.tactical-report .probability-result{font-size:14px;color:#d4e5ee}.probability-result b{color:#ffbd74}
/* Activated mechanisms are green circles; rarity remains a separate readable label. */
.trigger-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px;margin:12px 0 20px;align-items:start}
.trigger-badge{display:block}.trigger-badge[open]{grid-column:1/-1}.trigger-badge[open]>summary{max-width:128px;margin:auto}.trigger-badge>summary{display:block;list-style:none;text-align:center;cursor:pointer;grid-row:auto;font-size:12px}.trigger-badge>summary::-webkit-details-marker{display:none}.badge-circle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;aspect-ratio:1;width:100%;max-width:128px;margin:auto;padding:11px 8px;border:2px solid #77d9a3;border-radius:50%;background:#173e32;color:#d7f9e5;box-shadow:inset 0 0 0 4px #173029}.badge-circle small{font-size:10px;color:#9ce7bd}.badge-circle b{font-size:12px;line-height:1.35}.badge-circle strong{font-size:17px;color:#b5ffd1}.badge-tier{display:block;font-size:11px;margin-top:7px}.tier-high .badge-tier{color:#ffd080}.tier-medium .badge-tier{color:#98dfae}.tier-basic .badge-tier{color:#f3f5f5}.trigger-badge>summary:focus-visible .badge-circle,.trigger-badge[open]>summary .badge-circle{outline:2px solid #ffca7b;outline-offset:3px}.badge-detail{margin-top:14px;grid-column:1/-1;border-left:3px solid #77d9a3;padding:12px;background:#10251f;border-radius:0 8px 8px 0}.trigger-badge:not([open])>.badge-detail{display:none}.badge-detail p{margin:8px 0}.badge-detail h4{color:#b5ffd1}.badge-proof{display:flex;flex-wrap:wrap;gap:6px}.system-factor{display:flex;align-items:center;gap:15px;margin:12px 0}.system-factor strong{font-size:30px;color:#ffd080}.system-factor small{display:block;font-size:12px;color:#abbfcf}.multiplier-formula{padding:12px;background:#102d3b;border-left:3px solid #ffc273;margin:12px 0}.multiplier-formula b{display:block;color:#ffd080;font-size:19px}.multiplier-formula span{font-size:13px}.coach-tier-5{color:#ffd080}.coach-tier-3{color:#98dfae}.coach-tier-1{color:#f3f5f5}
@media(max-width:370px){.trigger-grid{gap:12px 6px}.badge-circle{padding:7px 5px;gap:2px}.badge-circle b{font-size:11px}.badge-circle strong{font-size:15px}}

.badge-circle{padding:6px;gap:3px}.badge-circle small{font-size:9px;line-height:1.2}.badge-circle b{font-size:11px;line-height:1.25}.badge-circle strong{font-size:15px;line-height:1.2;white-space:nowrap}
@media(max-width:370px){.trigger-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.badge-circle{padding:6px;gap:3px}}
/* Overview keeps both opponents aligned, including on a phone. Details live in tabs. */
.report-sections{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:8px 0 4px}
.report-sections button,.report-back{min-height:44px;padding:8px 3px;background:#1c2c38;border:1px solid #3b5364;border-radius:6px;color:#c5d8e6;font-size:12px}
.report-sections button.selected{color:#ffd080;border-color:#e4ab64;background:#332c22}.report-back{padding:8px 12px;margin:12px 0}
.report-comparison-hero{padding:12px 2px 18px}.report-comparison-hero .overline{font-size:11px}.report-comparison-hero>p{font-size:12px;text-align:center}
.report-score-pair{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:8px 0;text-align:center}.report-score-pair strong{font-size:32px;color:#ffbd74;white-space:nowrap}.report-score-pair>b{font-size:15px}
.overview-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.overview-team-head{padding:0 0 10px;border-bottom:1px solid #3b5364;position:relative}.overview-team-head b{font-size:14px}
.overview-section .overview-row h4{font-size:12px;color:#a5bac8;font-weight:500;margin:12px 0 5px}.overview-row+.overview-row{border-top:1px solid #2b414e;margin-top:12px;padding-top:2px}
.overview-cell{font-size:13px}.overview-cell+.overview-cell{border-left:1px solid #314654;padding-left:12px}.overview-cell small{display:block;font-size:11px;color:#a9bfcd;line-height:1.7}.tactical-report .overview-cell p{font-size:13px;line-height:1.6;margin:4px 0}.overview-cell b{font-size:13px}
.overview-badges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-items:center;gap:14px;padding:8px 0}.overview-badge{width:100%;max-width:116px;border:0;background:none;padding:0;color:inherit;cursor:pointer}.overview-badge:focus-visible{outline:2px solid #ffca7b;outline-offset:4px;border-radius:6px}.overview-badge .badge-circle b{font-size:11px}.overview-section .overview-conclusion{font-size:14px;padding-top:12px;border-top:1px solid #3b5364}
@media(max-width:370px){.overview-pair{gap:8px}.overview-cell+.overview-cell{padding-left:8px}.overview-cell,.overview-cell b,.tactical-report .overview-cell p{font-size:12px}.report-score-pair{gap:5px}.report-score-pair strong{font-size:27px}.report-score-pair>b{font-size:13px}.report-sections button{font-size:11px}}
.overview-more{display:block;width:100%;padding:8px 2px;min-height:44px;background:none;border:0;color:#ffbd74;font-size:12px}.overview-badge{max-width:100px}
.overview-trait-read{display:block;font-size:12px;line-height:1.6;margin:3px 0;color:#c3d5df}
.tactical-report button.overview-badge>.badge-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.tactical-report button.overview-badge>.badge-circle>b,.tactical-report button.overview-badge>.badge-circle>strong{display:block}

/* A dark enamel centre and a metallic rim distinguish actual triggered tiers. */
.tactical-report .tier-high{--badge-rim:linear-gradient(140deg,#fff1bd 0%,#c89235 23%,#ffdf85 44%,#79551e 68%,#eac776 88%,#fff1bd);--badge-text:#ffe3a3;--badge-shadow:#b38b4533}
.tactical-report .tier-medium{--badge-rim:linear-gradient(140deg,#d6efff,#4077b9 23%,#8ccaff 44%,#204b7b 68%,#95c8f0);--badge-text:#c1e2ff;--badge-shadow:#508bd433}
.tactical-report .tier-basic{--badge-rim:linear-gradient(140deg,#fff,#9eaebb 25%,#f4f8ff 48%,#6b7c89 72%,#e5eef4);--badge-text:#edf3fa;--badge-shadow:#b6c3d322}
.tactical-report :is(.overview-badge,.trigger-badge) .badge-circle{border:3px solid transparent;background:linear-gradient(145deg,#223343,#101b26) padding-box,var(--badge-rim,linear-gradient(#9aabba,#6f8190)) border-box;color:var(--badge-text,#e3edf2);box-shadow:inset 0 0 0 2px #ffffff0a,0 3px 12px var(--badge-shadow,#0003)}
.tactical-report .badge-circle :is(small,b,strong){color:inherit}.tactical-report .badge-tier{color:var(--badge-text,#e3edf2)}
.series-hero{margin-top:0}.series-overview .overview-pair{grid-template-columns:repeat(2,minmax(0,1fr))}.series-overview .overview-cell{min-width:0;overflow-wrap:anywhere}.series-overview .overview-cell details summary{min-height:44px;cursor:pointer}
.series-badges{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px 8px}.badge-games{display:block;font-size:10px;color:#aebfcc;margin-top:3px}.series-effect-game{border-top:1px solid #405364;padding-top:12px;margin-top:16px}.series-effect-game h4 small{font-size:12px;font-weight:400;display:block;color:#afc1ce}
.series-games{border-top:2px solid #476079;margin-top:24px;padding-top:20px;scroll-margin-top:8px}.series-report .report-sections{grid-template-columns:repeat(3,minmax(0,1fr))}.series-report .report-tabs{position:static;flex-wrap:wrap}.series-report .report-tabs button{flex:1 0 20%;min-height:52px}.series-report .overview-team-head{position:static}
@media(max-width:520px){.series-overview .overview-pair{gap:10px}.series-overview .overview-cell+.overview-cell{padding-left:10px}.series-overview .report-score-pair strong{font-size:32px}.series-overview .overview-cell p{font-size:12px}.series-overview .overview-cell small{font-size:10px}.series-overview .report-panel{padding:14px 10px}}
/* All badge families share gold / silver / bronze, with dark enamel centres. */
.tactical-report .tier-medium{--badge-rim:linear-gradient(140deg,#fff,#8e9ba6 23%,#e6edf3 44%,#596a78 68%,#dbe4ed);--badge-text:#e2e9f0;--badge-shadow:#adbac833}
.tactical-report .tier-basic{--badge-rim:linear-gradient(140deg,#f7d0b0,#9b5832 23%,#dfa47a 44%,#63371f 68%,#cd9168);--badge-text:#e9ba99;--badge-shadow:#a36b4233}
.tactical-report .tier-weakness{--badge-rim:linear-gradient(140deg,#e9b1a7,#8f4142,#d68779);--badge-text:#efb4ac;--badge-shadow:#a4444433}
.tactical-report .coach-tier-3,.team-player-name .coach-tier-3{color:#dce5ed}.tactical-report .coach-tier-1,.team-player-name .coach-tier-1{color:#e4b18d}
.team-factor-chain{display:flex;flex-direction:column;gap:8px;font-size:13px}.team-factor-chain span{display:flex;justify-content:space-between;gap:8px}.team-factor-chain .factor-negative{color:#efb4ac}.team-factor-chain .factor-total{border-top:1px solid #526272;padding-top:10px;color:#ffe3a3}
.more-personal{grid-column:1/-1;width:100%}.more-personal>summary{font-size:12px;color:#c9d4dd;cursor:pointer}
.badge-player{display:block;font-size:11px;line-height:1.5;color:#d4dce4;margin-top:4px}

/* Series navigation stays visible; individual games belong only to the data page. */
.series-report .series-navigation{position:sticky;top:0;z-index:5;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 12px;padding:10px 0;background:#10171d;box-shadow:0 5px 8px #0002}
.series-navigation button{font-size:12px;min-height:46px;white-space:nowrap}
.series-report .series-games{border:0;margin:0;padding:0}
.series-report .report-tabs{position:static}
.series-report .report-evidence{position:relative;top:auto;scroll-margin-top:80px;z-index:4}
.series-page [data-series-section]{scroll-margin-top:80px}

/* Both sides keep three badges per row, including expanded personal badges. */
.overview-badges{align-items:start;gap:16px 6px}.overview-badges>.report-note{grid-column:1/-1;justify-self:start}
.tactical-report .overview-badge{display:block;text-align:center;container-type:inline-size}
.tactical-report .overview-badge>.badge-circle{padding:3px;border-width:2px;gap:2px}
.tactical-report .overview-badge>.badge-circle small{font-size:8px;line-height:1.2;white-space:nowrap}
.tactical-report .overview-badge>.badge-circle strong{font-size:clamp(10px,23cqi,15px)}
.tactical-report .overview-badge>.badge-name{display:block;font-size:11px;line-height:1.4;margin-top:7px;word-break:normal;overflow-wrap:anywhere}
.tactical-report .overview-badge>.badge-tier{font-size:10px;line-height:1.4;margin-top:4px}
.tactical-report .overview-badge :is(.badge-player,.badge-games){font-size:10px;line-height:1.4;margin-top:4px}
.more-personal>.overview-badges{padding-top:10px}

.tactical-report .overview-badge>.badge-name{min-height:2.8em}
.tactical-report .overview-badge>.badge-player{min-height:4.2em}

.overview-cell:has(>.overview-badges):first-child{padding-right:12px;border-right:1px solid transparent}
@media(max-width:520px){.series-overview .overview-cell:has(>.overview-badges):first-child{padding-right:10px}}
@media(max-width:370px){.overview-cell:has(>.overview-badges):first-child{padding-right:8px}.series-overview .overview-cell:has(>.overview-badges):first-child{padding-right:10px}}
