/* The panel's styles (dashboard.html). Design: EdgeCoreLabs_Design v2 (styles.css, tokens.json). */
@font-face{font-family:EdgeSans;src:url("edge-sans.woff2") format("woff2");font-weight:400}
@font-face{font-family:EdgeSans;src:url("edge-sans-bold.woff2") format("woff2");font-weight:700}
:root{--ec-bg:#090e1b;--ec-surface:#101829;--ec-raised:#172135;--ec-line:#263148;--ec-text:#e8eef8;--ec-muted:#9aaac2;
  --ec-rad:#38d9ac;--ec-dire:#ff7b92;--ec-live:#70b7ff;--ec-draft:#b99af5;--ec-elo:#adb7ca;--ec-base:#697c99;--ec-warn:#f2bc75}
*{box-sizing:border-box}
body{margin:0;background:var(--ec-bg);color:var(--ec-text);font:13px/1.6 EdgeSans,"Segoe UI",system-ui,sans-serif}
button,select{font:inherit;color:inherit}button{cursor:pointer;background:transparent;border:0}
button:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--ec-live);outline-offset:3px}
img{max-width:100%}
h1,h2,h3,p{margin:0}h1{font-size:22px;line-height:1.3}h2{font-size:15px}
.muted{color:var(--ec-muted)}.small{font-size:11px}.rad{color:var(--ec-rad)}.dire{color:var(--ec-dire)}.warn{color:var(--ec-warn)}
.eyebrow{font-size:10px;letter-spacing:1.7px;text-transform:uppercase;color:var(--ec-muted)}
.eyebrow.rad{color:var(--ec-rad)}.eyebrow.dire{color:var(--ec-dire)}.eyebrow.warn{color:var(--ec-warn)}
#edge-app{max-width:1920px;margin:auto}

/* header */
.top{min-height:72px;display:flex;gap:24px;align-items:center;padding:16px 28px;border-bottom:1px solid var(--ec-line);flex-wrap:wrap}
.brand{display:flex;gap:12px;align-items:center;font-weight:700;font-size:19px;letter-spacing:2px;white-space:nowrap}
.brand span{display:block;font-size:9px;font-weight:400;letter-spacing:2px;color:var(--ec-muted)}
.head-meta{font-size:11px;color:var(--ec-muted);min-width:0;overflow-wrap:anywhere}
.head-right{margin-left:auto;display:flex;gap:12px;align-items:center;font-size:11px;color:var(--ec-muted)}
.health{text-decoration:none;border:1px solid var(--ec-line);border-radius:5px;padding:3px 9px;color:var(--ec-muted)}
.health.ok{color:var(--ec-rad);border-color:rgba(56,217,172,.4)}
.health.warning{color:var(--ec-warn);border-color:rgba(242,188,117,.5)}
.health.error{color:var(--ec-dire);border-color:rgba(255,123,146,.55)}

/* layout */
.layout{padding:22px 28px;display:grid;grid-template-columns:284px minmax(0,1fr);gap:20px}
.main{min-width:0}
.panel{background:var(--ec-surface);border:1px solid var(--ec-line);border-radius:10px;overflow:hidden;min-width:0;margin-bottom:16px}
.pad{padding:20px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:1px;border:1px solid var(--ec-line);background:var(--ec-raised);border-radius:5px;padding:3px 8px;color:var(--ec-muted)}
.pill.rad{color:var(--ec-rad)}.pill.dire{color:var(--ec-dire)}.pill.warn{color:var(--ec-warn)}
.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.source{display:flex;gap:12px;justify-content:space-between;border-top:1px solid var(--ec-line);padding-top:10px;margin-top:10px;color:var(--ec-muted);font-size:10px;flex-wrap:wrap}

/* games list */
.sidebar-head{padding:16px}
.sidebar-head .section-head{margin-bottom:10px}
.notify{font-size:11px;color:var(--ec-muted);border:1px solid var(--ec-line);border-radius:5px;padding:4px 10px}
.notify:hover{color:var(--ec-text)}.notify.on{color:var(--ec-rad);border-color:rgba(56,217,172,.45)}
.match-row{display:block;width:100%;text-align:left;padding:14px 15px;border-top:1px solid var(--ec-line);cursor:pointer}
.match-row:hover{background:var(--ec-raised)}
.match-row.selected{background:#192b37;box-shadow:inset 3px 0 var(--ec-rad)}
.row-team{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.avatar{display:inline-grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:6px;background:var(--ec-raised);border:1px solid var(--ec-line);font-weight:700;font-size:11px;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:contain}
.avatar.rad{color:var(--ec-rad)}.avatar.dire{color:var(--ec-dire)}
.team-name{min-width:0;flex:1;overflow-wrap:anywhere;line-height:1.35}
.row-prob{font-weight:700;font-variant-numeric:tabular-nums}
.row-foot{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--ec-muted);margin-top:8px}
.row-pick{font-size:11px;color:var(--ec-muted);overflow-wrap:anywhere}
.ok{color:var(--ec-rad)}.bad{color:var(--ec-dire)}
.list-title{padding:14px 16px 4px;border-top:1px solid var(--ec-line)}
.schedule{padding:12px 16px;border-top:1px solid var(--ec-line)}
.schedule b{display:block;overflow-wrap:anywhere;font-weight:700}
.sched-wait{float:right;font-size:10px;color:var(--ec-muted)}
.list-empty{padding:16px;font-size:11px;color:var(--ec-muted);border-top:1px solid var(--ec-line)}

/* match card */
.context{display:flex;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap;color:var(--ec-muted);font-size:11px}
.context #livepill{color:var(--ec-muted)}
.context #livepill.live{color:var(--ec-rad);border-color:rgba(56,217,172,.45)}
.context #livepill.paused{color:var(--ec-warn)}
.context #livepill.lost{color:var(--ec-dire)}
.scoreboard{display:grid;grid-template-columns:1fr 140px 1fr;align-items:center;gap:20px}
.team-block{display:flex;gap:14px;align-items:center;min-width:0}
.team-block.right{justify-content:flex-end;text-align:right}
.team-block .avatar{width:48px;height:48px;flex-basis:48px;font-size:16px}
.team-block h1{overflow-wrap:anywhere}
.center-score{text-align:center}
.score{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.25}
.probabilities{display:flex;justify-content:space-between;gap:16px;margin-top:14px}
.prob{font-size:34px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
.prob-side.right{text-align:right}
.prob-track{height:7px;background:var(--ec-dire);border-radius:3px;margin:10px 0 14px;overflow:hidden}
.prob-track span{display:block;background:var(--ec-rad);height:100%;transition:width .18s}
.decision{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 14px;background:#272333;border:1px solid #62523b;border-radius:7px}
.decision.won{background:#17302c;border-color:rgba(56,217,172,.5)}
.decision.lost{background:#33202a;border-color:rgba(255,123,146,.5)}
.decision.none{background:var(--ec-raised);border-color:var(--ec-line)}
.decision strong{display:block;font-size:17px;overflow-wrap:anywhere}
.decision .fixed{text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}
.engines{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.eng{font-size:11px;border:1px solid var(--ec-line);border-radius:999px;padding:3px 10px;color:var(--ec-muted)}
.eng b{margin-left:6px;font-variant-numeric:tabular-nums}

/* players, draft */
.telemetry-section{margin-bottom:16px}
.live-section-head{margin:6px 0 10px}
/* Radiant | map and gold | Dire: the whole game on one screen */
.board{display:grid;grid-template-columns:minmax(0,1fr) 250px minmax(0,1fr);gap:14px;margin-bottom:16px;align-items:start}
.roster{min-width:0}
.roster-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;flex-wrap:wrap}
.roster-title strong{overflow-wrap:anywhere}
/* one line per hero: picture, hero and player, K/D/A, net worth and level, the six items */
.player-card{display:flex;align-items:center;gap:8px;background:var(--ec-surface);border:1px solid var(--ec-line);border-radius:6px;margin-bottom:6px;padding:8px 10px;flex-wrap:wrap}
.player-heading{display:flex;align-items:center;gap:8px;flex:1 1 150px;min-width:0}
.hero-portrait{width:40px;height:23px;object-fit:cover;border-radius:3px;flex-shrink:0;background:var(--ec-bg)}
.hero-placeholder{width:40px;height:23px;display:grid;place-items:center;color:var(--ec-muted);flex-shrink:0;background:var(--ec-bg);border-radius:3px}
.player-identity{flex:1;min-width:0;line-height:1.25}
.player-identity strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-identity span{display:block;font-size:9px;color:var(--ec-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-kda{text-align:right;min-width:52px;line-height:1.2;font-variant-numeric:tabular-nums}
.player-kda strong{font-size:11px}
.player-kda span{display:block;color:var(--ec-muted);font-size:8px}
.player-details{display:flex;align-items:center;gap:8px;margin-left:auto}
.player-economy{min-width:58px;line-height:1.2}
.player-economy strong{font-size:11px;font-variant-numeric:tabular-nums}
.player-economy span{display:block;font-size:8px;color:var(--ec-muted)}
.inventory{display:flex;gap:3px;align-items:center;flex-shrink:0}
.item-slot{width:26px;height:20px;background:var(--ec-bg);border:1px solid var(--ec-line);border-radius:3px;overflow:hidden;text-align:center;font-size:10px;color:var(--ec-muted);line-height:18px}
.item-slot img{width:100%;height:100%;object-fit:cover;display:block}
.slot-empty{background:#0c1320}
.draft-panel{margin-bottom:16px}
.draft-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.draft-row .eyebrow{min-width:64px}
.draft-picks{display:flex;gap:5px;flex-wrap:wrap}
.draft-hero{position:relative;width:46px;height:32px}
.draft-hero img{width:46px;height:26px;object-fit:cover;border-radius:3px;display:block}
.draft-hero span{position:absolute;bottom:-2px;left:17px;font-size:8px;background:var(--ec-raised);padding:0 3px;border-radius:2px}
.draft-hero.ban img{filter:grayscale(1);opacity:.5}
.draft-hero.ban::after{content:"";position:absolute;left:4px;right:4px;top:12px;height:2px;background:var(--ec-dire);transform:rotate(-20deg)}
.draft-name{display:grid;place-items:center;width:46px;height:26px;font-size:8px;background:var(--ec-raised);border-radius:3px;overflow:hidden}

/* map + gold: between the two teams, compact */
.arena{display:flex;flex-direction:column;gap:10px;padding-top:31px}
.arena .panel{margin:0;padding:10px 12px}
.mini-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.mini-head h2{font-size:12px}.mini-head .pill{font-size:9px;padding:2px 6px}
.mini-foot{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-size:9px;color:var(--ec-muted);flex-wrap:wrap}
.game-minimap{display:block;width:100%;aspect-ratio:1/1;height:auto;border-radius:4px}
.gold-panel{padding:10px 14px}
.gold-chart{width:100%;height:auto;display:block}

/* prediction chart + analyst */
.analytics{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:16px;margin-top:16px}
.chart{width:100%;display:block;height:auto}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin:10px 0}
.legend button{padding:4px 0;color:var(--ec-muted);font-size:11px}
.legend button[aria-pressed=false]{opacity:.45;text-decoration:line-through}
.swatch{display:inline-block;width:12px;height:3px;vertical-align:middle;margin-right:6px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 0}
.stat{padding:12px 16px;background:var(--ec-raised);border-radius:6px}
.stat strong{display:block;font-size:22px;font-variant-numeric:tabular-nums}
.stat span{font-size:10px;color:var(--ec-muted)}
.up{color:var(--ec-rad)}.down{color:var(--ec-dire)}
.insight{padding:12px 0;border-bottom:1px solid var(--ec-line)}
.insight p{font-size:12px;line-height:1.7}
.insight .small{margin-top:4px}
.risk{padding:12px;border:1px solid #62523b;background:#25222a;border-radius:6px;margin-top:14px;font-size:11px;color:var(--ec-warn)}
.empty-note{padding:18px 0;color:var(--ec-muted);font-size:12px}
details{margin-top:14px}summary{cursor:pointer;color:var(--ec-muted);font-size:11px}
#summary{font-size:12px;line-height:1.8;margin-top:10px}
.missing{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.missing span{font-size:10px;padding:4px 8px;border-radius:4px;background:var(--ec-raised);color:var(--ec-muted)}
footer{padding:16px 28px;border-top:1px solid var(--ec-line);color:var(--ec-muted);display:flex;justify-content:space-between;gap:15px;font-size:10px;flex-wrap:wrap}
.mobile-picker{display:none}

@media(min-width:1600px){.layout{grid-template-columns:310px minmax(0,1fr)}.analytics{grid-template-columns:minmax(0,1.8fr) minmax(320px,1fr)}}
@media(max-width:1599px){.item-slot{width:23px;height:18px;line-height:16px}}
@media(max-width:1279px){.top{gap:16px;padding:16px 20px}.layout{padding:20px;grid-template-columns:250px minmax(0,1fr);gap:16px}
  .analytics{grid-template-columns:1fr}.scoreboard{grid-template-columns:1fr 90px 1fr;gap:12px}.team-block h1{font-size:17px}
  .team-block .avatar{width:36px;height:36px;flex-basis:36px}
  .board{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.arena{grid-column:1/-1;grid-row:2;flex-direction:row;padding-top:0}
  .arena .panel{flex:1;min-width:0}.map-panel{max-width:340px;margin:0 auto}
}
@media(max-width:767px){.top{padding:14px 16px;gap:10px}.brand{font-size:17px}.head-right{margin-left:0;width:100%}
  .mobile-picker{display:block;padding:14px 14px 0}.mobile-picker label{display:block;font-size:11px;color:var(--ec-muted)}
  .mobile-picker select{display:block;width:100%;min-height:44px;margin-top:6px;padding:8px;border:1px solid var(--ec-line);border-radius:6px;background:var(--ec-raised);color:var(--ec-text);font-size:12px}
  .layout{padding:14px;display:flex;flex-direction:column;gap:0}.sidebar{order:2}.main{order:1}
  .scoreboard{grid-template-columns:1fr 1fr;gap:16px}.center-score{grid-column:1/-1;grid-row:2;display:flex;justify-content:center;align-items:center;gap:15px}
  .team-block{gap:8px}.team-block h1{font-size:15px}.team-block .avatar{width:30px;height:30px;flex-basis:30px;font-size:11px}
  .board{grid-template-columns:1fr}.arena{grid-row:auto;flex-direction:column}.map-panel{max-width:none}
  .pad{padding:16px}.prob{font-size:32px}.decision{padding:12px;flex-wrap:wrap}.decision .fixed{text-align:left}.decision strong{font-size:14px}
  .stats{gap:8px}.stat{padding:10px}.stat strong{font-size:18px}.stat span{font-size:9px}
  .player-details{margin-left:0;width:100%;justify-content:space-between}
  .item-slot{width:26px;height:21px;line-height:19px}footer{padding:14px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
