
:root{--bg:#252830;--panel:#30343f;--panel2:#373c49;--panel3:#282c35;--line:rgba(255,255,255,.13);--text:#f2f5fb;--soft:#dce3ef;--muted:#aeb8c8;--pink:#f962ac;--pink2:#fcacd3;--blue:#60a5fa;--red:#fb7185;--mint:#80e6c5;--gold:#ffd47a;--goodbg:rgba(25,185,125,.16);--badbg:rgba(255,80,110,.17);--warnbg:rgba(255,205,90,.15);--shadow:0 24px 70px rgba(0,0,0,.32);--r:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:var(--text);background:radial-gradient(circle at 14% 6%,rgba(249,98,172,.15),transparent 30%),radial-gradient(circle at 90% 8%,rgba(96,165,250,.12),transparent 28%),var(--bg);line-height:1.72;word-break:keep-all}.page{max-width:1220px;margin:0 auto;padding:32px 18px 72px}.hero{position:relative;overflow:hidden;min-height:360px;border:1px solid var(--line);border-radius:34px;box-shadow:var(--shadow);padding:34px;background:linear-gradient(100deg,rgba(37,40,48,.98) 0%,rgba(37,40,48,.93) 45%,rgba(37,40,48,.40) 100%),var(--splash) center right/cover no-repeat}.hero-inner{position:relative;z-index:1;max-width:940px}.eyebrow{color:var(--pink2);font-weight:900;letter-spacing:.03em;font-size:.96rem}h1{margin:10px 0 10px;font-size:clamp(1.95rem,3.05vw,3.2rem);line-height:1.04;letter-spacing:-.055em}.lead{color:var(--soft);font-size:1.08rem;max-width:800px;margin:0 0 22px}.top-row{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}.badge{display:flex;gap:13px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:20px;background:rgba(48,52,63,.75);backdrop-filter:blur(12px)}.badge .avatar{width:70px;height:70px}.badge .pos-avatar{object-fit:contain;padding:8px;background:rgba(20,24,31,.72);border-radius:16px}
.badge .pos-avatar[src$=".svg"]{padding:9px}.badge strong{display:block;font-size:1.28rem;line-height:1.15}.badge span{display:block;color:var(--muted);font-size:.9rem}.avatar,.chip-img,.inline-img,.skill-cell-icon,.skill-icon,.event-icon img,.pos-icon{object-fit:cover;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:#1f232b;box-shadow:0 8px 18px rgba(0,0,0,.17)}.result-text.win,.stat .win{color:var(--blue);font-weight:950}.result-text.loss,.stat .loss{color:var(--red);font-weight:950}.result-pill{display:inline-flex;align-items:center;border-radius:999px;padding:2px 9px;font-size:.92em;font-weight:950}.result-pill.win{color:var(--blue);background:rgba(96,165,250,.16);border:1px solid rgba(96,165,250,.42)}.result-pill.loss{color:var(--red);background:rgba(251,113,133,.13);border:1px solid rgba(251,113,133,.34)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px}.stat{position:relative;overflow:hidden;min-height:112px;border:1px solid rgba(255,255,255,.13);border-radius:20px;padding:15px 16px 14px;background:linear-gradient(145deg,rgba(48,52,63,.86),rgba(40,44,53,.64));display:flex;flex-direction:column;justify-content:space-between;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.stat::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--pink2),rgba(96,165,250,.55));opacity:.72}.stat.stat-danger::before{background:linear-gradient(180deg,var(--red),rgba(255,212,122,.65))}.stat-label{display:block;color:var(--muted);font-size:.78rem;font-weight:850;letter-spacing:-.01em}.stat-value{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;color:var(--text);font-size:clamp(1.05rem,1.6vw,1.32rem);line-height:1.18;font-weight:950;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.stat-sub{color:var(--pink2);font-size:.88em}.stat-divider{color:var(--muted);font-weight:900}.stat-note{display:block;color:var(--muted);font-size:.78rem;line-height:1.32;font-style:normal}.shell{display:grid;grid-template-columns:280px minmax(0,1fr);gap:22px;margin-top:22px;align-items:start}.toc{position:sticky;top:18px;border:1px solid var(--line);border-radius:22px;padding:16px;background:rgba(48,52,63,.88);backdrop-filter:blur(16px)}.toc-title{color:var(--pink2);font-weight:950;margin:0 0 10px}.toc a{display:block;text-decoration:none;color:var(--muted);padding:8px 10px;border-radius:12px;font-size:.93rem;line-height:1.35}.toc a:hover{color:var(--text);background:rgba(255,255,255,.07)}.card{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);box-shadow:0 14px 44px rgba(0,0,0,.16);margin-bottom:18px;overflow:hidden}.card-head{display:flex;align-items:center;gap:12px;padding:20px 22px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(249,98,172,.12),rgba(96,165,250,.05))}.num{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:14px;color:#271223;font-weight:950;background:linear-gradient(135deg,var(--pink),var(--pink2))}h2{margin:0;font-size:1.34rem;letter-spacing:-.035em}h3{margin:0 0 10px;font-size:1.08rem;letter-spacing:-.025em}.body{padding:22px}p{margin:0 0 14px;color:var(--soft)}.em-good{color:var(--mint);font-weight:900}.em-warn{color:var(--gold);font-weight:900}.em-bad{color:var(--red);font-weight:900}.em-blue{color:var(--blue);font-weight:900}.stack{display:grid;grid-template-columns:1fr;gap:14px}.subcard{border:1px solid rgba(255,255,255,.1);border-radius:20px;background:var(--panel2);padding:16px;margin:0}.subcard.good{background:linear-gradient(135deg,var(--goodbg),rgba(255,255,255,.045));border-color:rgba(128,230,197,.42)}.subcard.warn{background:linear-gradient(135deg,var(--warnbg),rgba(255,255,255,.045));border-color:rgba(255,212,122,.42)}.subcard.bad{background:linear-gradient(135deg,var(--badbg),rgba(255,255,255,.045));border-color:rgba(251,113,133,.45)}.subcard.good h3{color:var(--mint)}.subcard.warn h3{color:var(--gold)}.subcard.bad h3{color:var(--red)}.icon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.after-icon-grid{margin-top:12px}.chip{display:flex;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(255,255,255,.045);padding:10px;min-height:66px}.chip-img{width:46px;height:46px;flex:none}.rune-chip .chip-img{border-radius:999px}.chip strong{display:block;color:var(--text);line-height:1.22}.chip span{display:block;color:var(--muted);font-size:.86rem;line-height:1.32;margin-top:2px}.inline-icon{display:inline-flex;align-items:center;gap:4px;vertical-align:-5px;color:var(--text);white-space:nowrap;margin:0 2px}.inline-img{width:22px;height:22px;border-radius:6px;box-shadow:none}.skill-inline b{color:var(--pink2)}.spell-inline b{color:var(--blue)}.item-inline b{color:var(--gold)}.skill-order-wrap{overflow-x:auto;padding-bottom:4px}.skill-order{width:100%;min-width:720px;border-collapse:collapse;table-layout:fixed;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:var(--panel3)}.skill-order th,.skill-order td{border:1px solid rgba(255,255,255,.08);height:38px;text-align:center;color:var(--muted)}.skill-order thead th{background:rgba(255,255,255,.045);color:var(--soft);font-size:.78rem;font-weight:900}.skill-row-label{color:var(--pink2)!important;font-weight:950;font-size:1rem}.skill-order td.picked{background:linear-gradient(135deg,rgba(96,165,250,.32),rgba(249,98,172,.26));cursor:help}.skill-cell-icon{width:27px;height:27px;border-radius:8px;vertical-align:middle;display:inline-block}.skill-order td.picked span{display:grid;place-items:center}.skill-row-label-inner{display:inline-flex;align-items:center;justify-content:center;gap:6px}.skill-row-label-inner .skill-cell-icon{width:24px;height:24px}.skill-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:14px}.cast-box{border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(255,255,255,.045);padding:12px;display:flex;gap:10px;align-items:center}.cast-box img{width:42px;height:42px}.cast-box strong{display:block;font-size:1.12rem}.cast-box span{color:var(--muted);font-size:.84rem}.timeline{display:grid;gap:10px}.item-timeline-card h3{margin-bottom:12px}.item-timeline{margin-top:2px}.item-timeline .event{grid-template-columns:96px 46px minmax(0,1fr)}.item-timeline .event-icon img{width:44px;height:44px;border-radius:12px}.event{display:grid;grid-template-columns:92px 44px minmax(0,1fr);gap:12px;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:rgba(255,255,255,.045)}.event.good{border-color:rgba(128,230,197,.45);background:linear-gradient(90deg,var(--goodbg),rgba(255,255,255,.035))}.event.bad{border-color:rgba(251,113,133,.5);background:linear-gradient(90deg,var(--badbg),rgba(255,255,255,.035))}.event.warn{border-color:rgba(255,212,122,.45);background:linear-gradient(90deg,var(--warnbg),rgba(255,255,255,.035))}.time{color:var(--pink2);font-weight:950;line-height:1.22}.time br{display:block;content:"";margin:1px 0}.time .range-sep{display:block}.event-icon img{width:42px;height:42px}.event strong{display:block;color:var(--text)}.event > span,.event > div > span{display:block;color:var(--muted);font-size:.9rem}.grade-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:stretch}.grade-grid-flow{grid-template-columns:repeat(5,minmax(0,1fr))}.grade{display:flex;min-height:116px;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:15px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.035))}.grade strong{display:block;font-size:2.05rem;line-height:1;color:var(--pink2)}.grade span{display:flex;align-items:center;justify-content:center;min-height:2.35em;color:var(--muted);font-size:.88rem;line-height:1.25;letter-spacing:-.025em}.grade-long span{font-size:.82rem;letter-spacing:-.045em}.grade-final{border-color:rgba(252,172,211,.36);background:linear-gradient(145deg,rgba(249,98,172,.14),rgba(255,255,255,.045))}.grade-mark{font-weight:950;color:#FCACD3}.grade-grid-flow + .subcard{margin-top:20px}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.team-box{border:1px solid rgba(255,255,255,.1);border-radius:20px;background:rgba(255,255,255,.04);padding:14px}.team-title{display:flex;justify-content:space-between;color:var(--muted);font-weight:900;margin-bottom:10px}.player-card{display:flex;gap:10px;align-items:center;padding:9px;border-radius:16px}.player-card.focus{outline:1px solid rgba(252,172,211,.52);background:rgba(249,98,172,.1)}.player-card .avatar{width:46px;height:46px;flex:none}.champ-line{display:flex;gap:8px;align-items:center;line-height:1.15}.pos-icon{width:22px;height:22px;border-radius:7px;box-shadow:none}.small{color:var(--muted);font-size:.82rem;line-height:1.25}.kda{color:var(--soft);font-weight:900;font-size:.88rem}.compare-wrap{overflow:visible;padding-bottom:0}.compare-table{width:100%;min-width:0;border-collapse:separate;border-spacing:0;display:grid;gap:8px;border:0;border-radius:0;overflow:visible;background:transparent;box-shadow:none}.compare-table thead,.compare-table tbody{display:grid;gap:8px;min-width:0}.compare-table tr{display:grid;grid-template-columns:minmax(76px,.72fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.18fr);min-width:0;border:1px solid rgba(255,255,255,.12);border-radius:18px;overflow:hidden;background:var(--panel3);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}.compare-table thead tr{background:rgba(255,255,255,.055)}.compare-table th,.compare-table td{min-width:0;border-right:1px solid rgba(255,255,255,.08);padding:11px 12px;text-align:left;color:var(--soft);vertical-align:middle}.compare-table th:last-child,.compare-table td:last-child{border-right:0}.compare-table th{color:var(--text);font-weight:950;font-size:.82rem;letter-spacing:-.015em}.compare-table tbody tr:hover{background:rgba(96,165,250,.055)}.compare-time{display:block;margin:0;padding:0;background:none;border:0;border-radius:0;color:var(--muted);font-size:.84rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.32;white-space:normal}.compare-stat{display:grid;gap:2px;min-width:0}.compare-stat b{display:block;color:var(--text);font-size:clamp(.9rem,1.5vw,1.02rem);line-height:1.18;font-weight:950;font-variant-numeric:tabular-nums;letter-spacing:-.035em;overflow-wrap:anywhere}.compare-stat span{display:block;color:var(--muted);font-size:.8rem;line-height:1.25;overflow-wrap:anywhere}.diff-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}.diff-list span{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);font-size:.8rem;font-weight:900;font-variant-numeric:tabular-nums;white-space:normal;line-height:1.18}.diff-list .diff-good{color:var(--blue);background:rgba(96,165,250,.12);border-color:rgba(96,165,250,.28)}.diff-list .diff-bad{color:var(--red);background:rgba(251,113,133,.1);border-color:rgba(251,113,133,.26)}.diff-list .diff-neutral{color:var(--muted)}@media(max-width:760px){.compare-table thead{display:none}.compare-table tbody tr{grid-template-columns:1fr;gap:0;padding:4px 12px}.compare-table td{border-right:0;border-bottom:1px solid rgba(255,255,255,.08);padding:9px 0;display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:start}.compare-table td:last-child{border-bottom:0}.compare-table td::before{color:var(--muted);font-size:.78rem;font-weight:900}.compare-table td:nth-child(1)::before{content:'시점'}.compare-table td:nth-child(2)::before{content:'분석 대상'}.compare-table td:nth-child(3)::before{content:'상대'}.compare-table td:nth-child(4)::before{content:'격차'}}.compare-note{margin:16px 0 18px;padding:15px 16px;border:1px solid rgba(252,172,211,.22);border-radius:18px;background:linear-gradient(135deg,rgba(249,98,172,.08),rgba(96,165,250,.045))}.compare-note strong{display:block;color:var(--pink2);font-weight:950;margin-bottom:6px}.compare-note p{margin-bottom:10px}.compare-note p:last-child{margin-bottom:0}.player-id{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.img-fallback{display:inline-grid;place-items:center;width:46px;height:46px;flex:none;border-radius:12px;border:1px solid rgba(252,172,211,.45);background:radial-gradient(circle at 35% 25%,rgba(252,172,211,.42),rgba(96,165,250,.18) 55%,rgba(31,35,43,.95));color:var(--text);font-weight:950;font-size:.78rem;box-shadow:0 8px 18px rgba(0,0,0,.17)}.inline-icon .img-fallback{width:22px;height:22px;border-radius:6px;font-size:.62rem;box-shadow:none}.skill-order .img-fallback{width:27px;height:27px;border-radius:8px;font-size:.7rem}.print-button{position:fixed;right:18px;bottom:18px;border:0;border-radius:999px;padding:12px 18px;color:#271223;font-weight:950;cursor:pointer;background:linear-gradient(135deg,var(--pink),var(--pink2));box-shadow:0 18px 42px rgba(0,0,0,.3);z-index:10}@media(max-width:980px){.shell{grid-template-columns:1fr}.toc{position:static}.stat-grid,.team-grid,.grade-grid-flow{grid-template-columns:1fr 1fr}}@media(max-width:640px){.page{padding:18px 10px 58px}.hero{padding:24px 18px;min-height:auto}.stat-grid,.team-grid,.grade-grid-flow{grid-template-columns:1fr}.event{grid-template-columns:78px 40px minmax(0,1fr);gap:9px}.print-button{display:none}}
  



/* Robust inline champion/object icons */
.champ-inline{display:inline-flex;align-items:center;gap:0.28em;vertical-align:-0.18em;white-space:nowrap;font-weight:700;color:#f6f7fb;}
.champ-inline-icon{width:1.35em;height:1.35em;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px rgba(255,255,255,.16);background:#1d2028;flex:0 0 auto;}
#objectives .event-icon img[data-objective-icon]{object-fit:contain;padding:3px;background:linear-gradient(135deg,rgba(252,172,211,.18),rgba(96,165,250,.14));}
#grade .grade-grid + .subcard{margin-top:20px;}
img[data-report-img]{background:#1d2028;}
img[data-report-img="position"]{background:transparent;}
.pos-icon{background:transparent;}

/* Inline champion mentions must stay inside prose, even inside .event blocks. */
.event .champ-inline,
.compare-note .champ-inline,
.stat-note .champ-inline,
.task-card .champ-inline,
.subcard .champ-inline,
.card p .champ-inline,
.card li .champ-inline {
  display:inline-flex !important;
  align-items:center;
  gap:0.24em;
  margin:0 0.10em;
  vertical-align:-0.18em;
  white-space:nowrap !important;
  line-height:1;
  color:inherit;
  font-size:inherit;
  width:auto;
  max-width:none;
}
.event .champ-inline-icon,
.compare-note .champ-inline-icon,
.stat-note .champ-inline-icon,
.task-card .champ-inline-icon,
.subcard .champ-inline-icon,
.card p .champ-inline-icon,
.card li .champ-inline-icon {
  width:1.18em;
  height:1.18em;
  min-width:1.18em;
  border-radius:50%;
  object-fit:cover;
  flex:0 0 auto;
}
.event strong .champ-inline:first-child,
.event span .champ-inline:first-child { margin-left:0; }
.event strong .champ-inline:last-child,
.event span .champ-inline:last-child { margin-right:0; }



/* LoLGPT Django renderer compatibility additions */
.stat.stat-warn::before{background:linear-gradient(180deg,var(--gold),rgba(251,113,133,.65))}
.stat.stat-warn .stat-value{color:var(--gold)}
.hero-badge{display:flex;gap:13px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:20px;background:rgba(48,52,63,.75);backdrop-filter:blur(12px)}
.loadout-body{display:grid;gap:14px}.player-main{min-width:0}.item-timeline-card{margin-bottom:14px}.final-body .stack{margin-top:14px}.grade-detail-card .analysis-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.priority-badge{display:inline-flex;align-items:center;margin-right:8px;padding:2px 8px;border-radius:999px;background:rgba(252,172,211,.16);color:var(--pink2);font-size:.78rem;font-weight:950}.task-card p strong,.grade-detail-grid strong,.takeaway strong{display:block;color:var(--pink2);font-size:.82rem;font-weight:950}.check-list{display:grid;gap:6px;margin:10px 0 0;padding-left:18px}.check-list li{color:var(--soft)}.grade-badge{display:inline-grid;place-items:center;min-width:42px;border-radius:12px;padding:5px 9px;font-weight:950;background:rgba(255,255,255,.07)}.grade-good{color:var(--mint)}.grade-bad{color:var(--red)}.grade-neutral{color:var(--pink2)}
@media(max-width:640px){.skill-order-head,.skill-order-row{grid-template-columns:44px repeat(var(--skill-cols,13),minmax(0,1fr))}.skill-order-head[style],.skill-order-row[style]{grid-template-columns:44px repeat(13,minmax(0,1fr)) !important}}

/* -------------------------------------------------------------------------
   Legacy parity refinements: inline LoL tokens, real table layouts, spacing.
   ------------------------------------------------------------------------- */
.body{padding:24px 22px;}
.body > * + *{margin-top:18px;}
.stack{gap:18px;}
.stack > *{min-width:0;}
p,li,.event > div > span,.event > span,.chip span,.compare-note,.subcard{line-height:1.54;}
p{margin:0 0 10px;}
p:last-child,.subcard p:last-child,.compare-note p:last-child{margin-bottom:0;}
ul{margin:8px 0 0;padding-left:20px;}
li + li{margin-top:7px;}
.subcard{padding:18px 18px 17px;}
.subcard + .subcard,.compare-note + .subcard,.subcard + .timeline,.timeline + .subcard{margin-top:16px;}
.evidence-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;}
.evidence-list span{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);color:var(--soft);font-size:.82rem;font-weight:800;line-height:1.25;}
.takeaway{margin-top:12px;padding:11px 12px;border-radius:14px;background:rgba(252,172,211,.075);border:1px solid rgba(252,172,211,.18);}

.inline-token,.champ-inline{display:inline-flex;align-items:center;gap:4px;vertical-align:-5px;white-space:nowrap;margin:0 2px;padding:1px 5px 1px 2px;border:1px solid rgba(255,255,255,.11);border-radius:999px;background:rgba(255,255,255,.055);font-weight:900;line-height:1.15;text-decoration:none;}
.inline-token .inline-img,.champ-inline-icon{width:21px;height:21px;flex:none;border-radius:6px;object-fit:cover;border:1px solid rgba(255,255,255,.16);background:#1f232b;box-shadow:none;}
.champion-token,.champ-inline{color:#FCACD3;background:rgba(252,172,211,.08);border-color:rgba(252,172,211,.22);}
.skill-token{color:#60A5FA;background:rgba(96,165,250,.1);border-color:rgba(96,165,250,.24);}
.item-token{color:#FFD47A;background:rgba(255,212,122,.1);border-color:rgba(255,212,122,.24);}
.objective-token,.building-token{color:#80E6C5;background:rgba(128,230,197,.1);border-color:rgba(128,230,197,.24);}
.rune-token{color:#C4B5FD;background:rgba(196,181,253,.1);border-color:rgba(196,181,253,.24);}
.spell-token{color:#93C5FD;background:rgba(147,197,253,.1);border-color:rgba(147,197,253,.24);}
.rich-paragraph{line-height:1.58;}
.event strong .inline-token,.event span .inline-token,.compare-note .inline-token,.subcard .inline-token{vertical-align:-5px;}

.skill-order-wrap{width:100%;overflow-x:auto;padding:2px 0 4px;}
.skill-order{width:100%;min-width:960px;border-collapse:separate;border-spacing:0;table-layout:fixed;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:var(--panel3);box-shadow:inset 0 1px 0 rgba(255,255,255,.035);}
.skill-order th,.skill-order td{border-right:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);height:40px;text-align:center;color:var(--muted);padding:4px;}
.skill-order th:last-child,.skill-order td:last-child{border-right:0;}
.skill-order tbody tr:last-child th,.skill-order tbody tr:last-child td{border-bottom:0;}
.skill-order thead th{height:34px;background:rgba(255,255,255,.055);color:var(--soft);font-size:.78rem;font-weight:900;}
.skill-order thead th:first-child{width:76px;}
.skill-order .skill-row-label{color:var(--pink2)!important;font-weight:950;background:rgba(255,255,255,.035);}
.skill-row-label-inner{display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.skill-cell-icon{width:27px;height:27px;border-radius:8px;vertical-align:middle;display:inline-block;object-fit:cover;}
.skill-row-label-inner .skill-cell-icon{width:24px;height:24px;}
.skill-order td.picked{background:linear-gradient(135deg,rgba(96,165,250,.32),rgba(249,98,172,.26));cursor:help;}
.skill-order td.picked span{display:grid;place-items:center;}
.skill-body .stack{margin-top:16px;}
.skill-counts{margin-top:16px;}

.compare-wrap{width:100%;overflow:visible;padding-bottom:0;}
.compare-table{width:100%;min-width:0;border-collapse:separate;border-spacing:0;display:grid;gap:8px;border:0;border-radius:0;overflow:visible;background:transparent;box-shadow:none;}
.compare-table thead,.compare-table tbody{display:grid;gap:8px;min-width:0;}
.compare-table tr{display:grid;grid-template-columns:minmax(78px,.72fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.18fr);min-width:0;border:1px solid rgba(255,255,255,.12);border-radius:18px;overflow:hidden;background:var(--panel3);box-shadow:inset 0 1px 0 rgba(255,255,255,.035);}
.compare-table thead tr{background:rgba(255,255,255,.055);}
.compare-table th,.compare-table td{min-width:0;border-right:1px solid rgba(255,255,255,.08);padding:11px 12px;text-align:left;color:var(--soft);vertical-align:middle;}
.compare-table th:last-child,.compare-table td:last-child{border-right:0;}
.compare-table th{color:var(--text);font-weight:950;font-size:.82rem;letter-spacing:-.015em;}
.compare-table tbody tr:hover{background:rgba(96,165,250,.055);}
.compare-time{display:block;margin:0;padding:0;background:none;border:0;border-radius:0;color:var(--muted);font-size:.84rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.32;white-space:normal;}
.compare-stat{display:grid;gap:2px;min-width:0;}
.compare-stat b{display:block;color:var(--text);font-size:clamp(.9rem,1.5vw,1.02rem);line-height:1.18;font-weight:950;font-variant-numeric:tabular-nums;letter-spacing:-.035em;overflow-wrap:anywhere;}
.compare-stat span{display:block;color:var(--muted);font-size:.8rem;line-height:1.25;overflow-wrap:anywhere;}
.diff-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0;}
.diff-list span{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);font-size:.8rem;font-weight:900;font-variant-numeric:tabular-nums;white-space:normal;line-height:1.18;}
.diff-list .diff-good{color:var(--blue);background:rgba(96,165,250,.12);border-color:rgba(96,165,250,.28);}
.diff-list .diff-bad{color:var(--red);background:rgba(251,113,133,.1);border-color:rgba(251,113,133,.26);}
.diff-list .diff-neutral{color:var(--muted);}

#objectives .event-icon img[data-objective-icon],.objective-token img[data-objective-icon]{object-fit:contain;padding:3px;background:linear-gradient(135deg,rgba(252,172,211,.18),rgba(96,165,250,.14));}
.event{align-items:start;padding:13px 14px;}
.event .time{padding-top:2px;}
.event strong{line-height:1.35;margin-bottom:3px;}
.event > div > span{font-size:.91rem;}
.timeline{gap:12px;}

@media(max-width:760px){
  .compare-table thead{display:none;}
  .compare-table tbody tr{grid-template-columns:1fr;gap:0;padding:4px 12px;}
  .compare-table td{border-right:0;border-bottom:1px solid rgba(255,255,255,.08);padding:9px 0;display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:start;}
  .compare-table td:last-child{border-bottom:0;}
  .compare-table td::before{color:var(--muted);font-size:.78rem;font-weight:900;}
  .compare-table td:nth-child(1)::before{content:'시점';}
  .compare-table td:nth-child(2)::before{content:'분석 대상';}
  .compare-table td:nth-child(3)::before{content:'상대';}
  .compare-table td:nth-child(4)::before{content:'격차';}
}

/* -------------------------------------------------------------------------
   Visual polish v4: inline token simplification + hero badge parity.
   ------------------------------------------------------------------------- */
.hero-meta-row{align-items:stretch;gap:12px;}
.top-row .badge{min-width:0;}
.hero-main-badge{flex:1 1 390px;min-width:min(100%,360px);}
.hero-opponent-badge{flex:1 1 310px;min-width:min(100%,280px);}
.badge-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px;}
.badge-copy strong{display:block;color:var(--text);font-size:1.28rem;line-height:1.14;letter-spacing:-.035em;white-space:normal;overflow-wrap:anywhere;}
.badge-copy .badge-subline{display:block;color:var(--muted);font-size:.9rem;line-height:1.32;white-space:normal;overflow-wrap:anywhere;}
.badge .result-text{display:inline!important;}
.badge .champion-avatar,.badge .pos-avatar{flex:0 0 70px;width:70px;height:70px;}
.badge .pos-avatar{object-fit:contain;padding:8px;background:transparent;border-radius:16px;}
.badge .pos-avatar[data-position-icon]{filter:drop-shadow(0 10px 18px rgba(0,0,0,.24));}

.inline-token,.champ-inline{
  display:inline-flex;
  align-items:center;
  gap:4px;
  vertical-align:-5px;
  white-space:nowrap;
  margin:0 2px;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-weight:900;
  line-height:1.15;
  text-decoration:none;
}
.inline-token .inline-img,.champ-inline-icon{
  width:21px;
  height:21px;
  flex:none;
  border-radius:5px;
  object-fit:cover;
  border:0!important;
  background:transparent!important;
  padding:0!important;
  box-shadow:none!important;
}
.champion-token,.champ-inline{color:#FCACD3!important;}
.skill-token{color:#60A5FA!important;}
.item-token{color:#FFD47A!important;}
.objective-token,.building-token{color:#80E6C5!important;}
.rune-token{color:#C4B5FD!important;}
.spell-token{color:#93C5FD!important;}
.objective-token .inline-img,.building-token .inline-img{object-fit:contain;}

.body{padding:24px 22px 26px;}
.body > * + *{margin-top:20px;}
p,li{line-height:1.5;}
.subcard,.compare-note,.timeline,.skill-order-wrap,.compare-wrap,.skill-counts,.icon-grid{margin-top:12px;}
.subcard:first-child,.compare-note:first-child,.timeline:first-child,.skill-order-wrap:first-child,.compare-wrap:first-child,.skill-counts:first-child,.icon-grid:first-child{margin-top:0;}
.event + .event{margin-top:2px;}
.chip + .chip{margin-top:0;}

@media(max-width:640px){
  .hero-main-badge,.hero-opponent-badge{flex-basis:100%;min-width:0;}
  .badge .champion-avatar,.badge .pos-avatar{flex-basis:58px;width:58px;height:58px;}
  .badge-copy strong{font-size:1.12rem;}
}


/* -------------------------------------------------------------------------
   Visual polish v5: summoner inline token, tighter stack rhythm, final-title spacing.
   ------------------------------------------------------------------------- */
/* Keep inline LoL tokens as plain highlighted text + icon only. */
.inline-token,.champ-inline{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.inline-token .inline-img,.champ-inline-icon{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.spell-token{color:#93C5FD!important;}
.spell-token .inline-img{object-fit:cover;}

.back-home{display:inline-flex;align-items:center;gap:6px;margin:0 0 12px 2px;color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:850;line-height:1;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(48,52,63,.68);padding:8px 12px;backdrop-filter:blur(10px);}
.back-home:hover{color:var(--text);border-color:rgba(252,172,211,.38);background:rgba(252,172,211,.1);}
@media print{.back-home{display:none;}}

/* The generic block stack was visually too loose after the previous pass. */
.stack{gap:9px!important;}
.final-body .stack{margin-top:10px;}
.skill-body .stack{margin-top:10px;}
.stack > .subcard + .subcard,
.stack > .compare-note + .subcard,
.stack > .subcard + .compare-note,
.stack > .event + .event{margin-top:0!important;}

/* 긴 Riot ID여도 팀 행은 항상 두 줄 높이를 유지한다. */
.section-teams .player-card{
  min-width:0;
  min-height:66px;
  align-items:center;
}
.section-teams .player-main{
  display:grid;
  grid-template-rows:minmax(22px, auto) 1.25em;
  gap:3px;
  min-width:0;
  flex:1 1 auto;
}
.section-teams .champ-line{
  min-width:0;
  width:100%;
  gap:7px;
  flex-wrap:nowrap;
}
.section-teams .champ-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.section-teams .kda{
  flex:none;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.section-teams .player-id{
  display:block;
  min-width:0;
  margin:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Match the readable inner rhythm used by improvement-task cards in final evaluation. */
.final-eval-text .subcard p + p{margin-top:8px;}
.final-eval-text .subcard p strong,
.final-eval-text .grade-detail-grid strong,
.final-eval-text .takeaway strong,
.final-comment p strong{
  display:block;
  margin-top:9px;
  margin-bottom:4px;
  color:var(--pink2);
  font-size:.82rem;
  font-weight:950;
  line-height:1.25;
}
.final-eval-text .subcard h3 + p strong:first-child,
.final-eval-text .subcard p:first-child strong:first-child,
.final-eval-text .grade-detail-grid > div:first-child > strong:first-child,
.final-eval-text .takeaway strong:first-child{margin-top:0;}
.final-eval-text .grade-detail-grid{gap:12px;}
.final-eval-text .grade-detail-grid > div{padding-top:2px;}

/* Events without an icon should not reserve the narrow icon column for prose. */
.event:not(.has-icon){grid-template-columns:92px minmax(0,1fr);}
.item-timeline .event:not(.has-icon){grid-template-columns:96px minmax(0,1fr);}
.event:not(.has-icon)>div:last-child{min-width:0;}
.chip-copy{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto;}
.chip-note{display:block;color:var(--muted);font-size:.86rem;line-height:1.32;overflow-wrap:anywhere;}
.chip-note .inline-token,
.chip-note .champ-inline{
  display:inline-flex !important;
  align-items:center;
  white-space:nowrap;
}
.inline-token,.champ-inline{margin:0 .24em!important;}

@media(max-width:640px){
  .event:not(.has-icon),
  .item-timeline .event:not(.has-icon){grid-template-columns:78px minmax(0,1fr);}
}

/* Keep the skill master table inside its parent instead of forcing a horizontal scroll. */
.skill-order-wrap{overflow-x:hidden!important;}
.skill-order{
  width:100%!important;
  min-width:0!important;
}

/* Visual polish v6: group skill feedback earlier, make growth compare read as one table. */
.compare-wrap{
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:var(--panel3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.compare-table{
  display:table!important;
  width:100%!important;
  border:0!important;
  border-collapse:collapse!important;
  border-spacing:0!important;
  border-radius:0!important;
  overflow:hidden!important;
  background:transparent!important;
  box-shadow:none!important;
}
.compare-table thead{display:table-header-group!important;}
.compare-table tbody{display:table-row-group!important;}
.compare-table tr{
  display:table-row!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.compare-table thead tr{background:rgba(255,255,255,.055)!important;}
.compare-table tbody tr:hover{background:rgba(96,165,250,.055)!important;}
.compare-table th,
.compare-table td{
  display:table-cell!important;
  border-right:1px solid rgba(255,255,255,.08)!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.compare-table th:last-child,
.compare-table td:last-child{border-right:0!important;}
.compare-table tbody tr:last-child td{border-bottom:0!important;}

.final-body .grade-grid{
  grid-template-columns:repeat(auto-fit,minmax(112px,1fr));
  gap:8px;
}
.final-body .grade{
  min-height:98px;
  padding:12px 8px;
  gap:7px;
  border-radius:15px;
}
.final-body .grade strong{font-size:1.72rem;}
.final-body .grade span{
  min-height:2.1em;
  font-size:.78rem;
  line-height:1.22;
}

@media(min-width:981px){
  .final-body .grade-grid{grid-template-columns:repeat(6,minmax(0,1fr));}
  .final-body.grade-layout-five .grade-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
}

@media(max-width:760px){
  .compare-wrap{
    overflow:visible!important;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .compare-table{
    display:grid!important;
    gap:8px!important;
    overflow:visible!important;
  }
  .compare-table thead{display:none!important;}
  .compare-table tbody{display:grid!important;gap:8px!important;}
  .compare-table tr{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    padding:4px 12px!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:18px!important;
    overflow:hidden!important;
    background:var(--panel3)!important;
  }
  .compare-table td{
    display:grid!important;
    grid-template-columns:72px minmax(0,1fr)!important;
    gap:10px!important;
    border-right:0!important;
    border-bottom:1px solid rgba(255,255,255,.08)!important;
    padding:9px 0!important;
  }
  .compare-table td:last-child{border-bottom:0!important;}
  .final-body .grade-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* Visual polish v7: skill feedback notes are a single cluster under the master order. */
.skill-body .stack{
  gap:5px!important;
}
.skill-body .stack .compare-note{
  margin:0!important;
}
