:root{
    --bg: #0E1912;
    --bg-panel: #162419;
    --bg-panel-alt: #1C2E20;
    --line: #2B4130;
    --text: #ECE8DC;
    --text-dim: #93A897;
    --accent: #FFB627;
    --win: #3FA796;
    --loss: #D0574C;
    --teamA: #4FA3D8;
    --teamB: #C9784F;
    --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    --focus-ring: 0 0 0 3px rgba(255,182,39,0.28);
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    background:
      radial-gradient(circle at 15% 0%, rgba(63,167,150,0.08), transparent 45%),
      radial-gradient(circle at 85% 100%, rgba(255,182,39,0.06), transparent 45%),
      var(--bg);
    color:var(--text);
    font-family:'IBM Plex Sans', sans-serif;
    line-height:1.5;
    min-height:100vh;
  }
  .app{max-width:760px;margin:0 auto;padding:0 16px 60px;}
  .masthead{
    padding:28px 4px 18px;
    border-bottom:2px solid var(--line);
    margin-bottom:18px;
  }
  .score-line{
    font-family:'Oswald', sans-serif;
    font-weight:700;
    font-size:clamp(30px,7vw,42px);
    letter-spacing:0.5px;
    display:flex;
    align-items:baseline;
    gap:10px;
  }
  .score-line .dot{color:var(--accent);}
  .subtitle{color:var(--text-dim);font-size:14px;margin-top:4px;}
  #admin-control{display:flex;justify-content:flex-end;margin-top:12px;}
  .admin-control{display:flex;align-items:center;gap:8px;}
  .admin-control input{width:150px;}
  .admin-status{color:var(--win);font-size:13px;font-weight:600;}
  nav.tabs{
    display:flex;
    gap:6px;
    margin-top:18px;
    flex-wrap:wrap;
  }
  nav.tabs button{
    background:transparent;
    border:1.5px solid var(--line);
    color:var(--text-dim);
    font-family:'IBM Plex Sans',sans-serif;
    font-weight:500;
    font-size:13.5px;
    padding:9px 14px;
    min-height:40px;
    border-radius:3px;
    cursor:pointer;
    transition:
      transform 140ms var(--ease-out),
      border-color 140ms ease,
      color 140ms ease,
      background-color 140ms ease;
  }
  nav.tabs button:hover{border-color:var(--text-dim);color:var(--text);}
  nav.tabs button.active{
    background:var(--accent);
    border-color:var(--accent);
    color:#12200F;
    font-weight:600;
  }
  .panel{
    background:var(--bg-panel);
    border:1px solid var(--line);
    border-radius:4px;
    padding:20px;
    margin-bottom:16px;
    box-shadow:0 10px 30px rgba(0,0,0,0.16);
  }
  h2.section-title{
    font-family:'Oswald',sans-serif;
    font-weight:600;
    font-size:20px;
    margin:0 0 14px;
    letter-spacing:0.3px;
  }
  .muted{color:var(--text-dim);font-size:13.5px;line-height:1.5;}
  .row{display:flex;align-items:center;gap:10px;}
  .space-between{justify-content:space-between;}
  input[type=text], input[type=number]{
    background:var(--bg-panel-alt);
    border:1px solid var(--line);
    color:var(--text);
    padding:9px 11px;
    min-height:40px;
    border-radius:3px;
    font-family:'IBM Plex Sans',sans-serif;
    font-size:14px;
    width:100%;
  }
  input[type=text]:focus, input[type=number]:focus, select:focus{outline:1.5px solid var(--accent);}
  select{
    background:var(--bg-panel-alt);
    border:1px solid var(--line);
    color:var(--text);
    padding:9px 11px;
    min-height:40px;
    border-radius:3px;
    font-size:14px;
    width:100%;
  }
  button.btn{
    background:var(--accent);
    border:none;
    color:#12200F;
    font-weight:600;
    font-size:14px;
    padding:9px 16px;
    min-height:40px;
    border-radius:3px;
    cursor:pointer;
    white-space:nowrap;
    transition:
      transform 140ms var(--ease-out),
      filter 140ms ease,
      border-color 140ms ease,
      background-color 140ms ease,
      color 140ms ease;
  }
  button.btn:hover{filter:brightness(1.08);}
  button.btn:disabled{opacity:0.4;cursor:not-allowed;}
  button.btn.secondary{
    background:transparent;
    border:1.5px solid var(--line);
    color:var(--text);
  }
  button.btn.secondary:hover{border-color:var(--text-dim);}
  button.btn.danger{background:var(--loss);color:#2A0E0B;}
  button:active{transform:scale(0.97);}
  button:disabled:active{transform:none;}
  button:focus-visible,
  input:focus-visible,
  select:focus-visible{
    outline:2px solid var(--accent);
    outline-offset:3px;
    box-shadow:var(--focus-ring);
  }
  .queue-slots{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:8px;
    margin:14px 0 18px;
  }
  .slot{
    aspect-ratio:1;
    border:1.5px dashed var(--line);
    border-radius:4px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    font-size:11.5px;
    color:var(--text-dim);
    text-align:center;
    padding:4px;
    position:relative;
    min-width:0;
  }
  .slot.filled{
    border-style:solid;
    border-color:var(--accent);
    color:var(--text);
    background:var(--bg-panel-alt);
  }
  .slot .name{font-weight:600;font-size:13px;overflow-wrap:anywhere;}
  .slot .elo{font-family:'IBM Plex Mono',monospace;color:var(--accent);font-size:12px;margin-top:2px;}
  .slot .x{
    position:absolute;top:2px;right:4px;
    color:var(--text-dim);
    cursor:pointer;
    font-size:13px;
  }
  .slot .x:hover{color:var(--loss);}
  .team-card{
    background:var(--bg-panel-alt);
    border-radius:4px;
    padding:14px;
    flex:1;
    min-width:0;
  }
  .team-card.teamA{border-left:4px solid var(--teamA);}
  .team-card.teamB{border-left:4px solid var(--teamB);}
  .team-header{
    display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;
  }
  .team-name{font-family:'Oswald',sans-serif;font-weight:600;font-size:16px;}
  .team-avg{font-family:'IBM Plex Mono',monospace;color:var(--accent);font-size:15px;}
  .team-card ul{list-style:none;margin:0;padding:0;font-size:14px;}
  .team-card li{padding:3px 0;display:flex;justify-content:space-between;color:var(--text-dim);}
  .team-card li{min-width:0;overflow-wrap:anywhere;}
  .team-card li span.n{color:var(--text);}
  .diff-note{text-align:center;color:var(--text-dim);font-size:12.5px;margin:10px 0;}
  table{width:100%;border-collapse:collapse;font-size:14px;}
  th{
    text-align:left;color:var(--text-dim);font-weight:500;font-size:12px;
    text-transform:uppercase;letter-spacing:0.4px;
    padding:6px 8px;border-bottom:1px solid var(--line);
  }
  td{padding:9px 8px;border-bottom:1px solid var(--line);}
  tr:last-child td{border-bottom:none;}
  .rank{font-family:'IBM Plex Mono',monospace;color:var(--text-dim);}
  .elo-val{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--accent);}
  .streak-pos{color:var(--win);}
  .streak-neg{color:var(--loss);}
  .match-row{
    border-bottom:1px solid var(--line);
    padding:12px 0;
  }
  .match-row:last-child{border-bottom:none;}
  .match-top{display:flex;justify-content:space-between;font-size:12px;color:var(--text-dim);margin-bottom:6px;}
  .match-teams{display:flex;gap:10px;font-size:13.5px;}
  .match-team{flex:1;}
  .match-team{min-width:0;overflow-wrap:anywhere;}
  .match-team.winner .team-lbl{color:var(--win);}
  .match-team .team-lbl{font-weight:600;font-family:'Oswald',sans-serif;font-size:13px;}
  .delta-pos{color:var(--win);}
  .delta-neg{color:var(--loss);}
  .empty-state{
    text-align:center;padding:26px 10px;color:var(--text-dim);font-size:14px;
  }
  .form-row{display:flex;gap:8px;margin-bottom:10px;}
  .form-row input,.form-row select{flex:1;min-width:0;}
  @media(max-width:480px){
    .panel{padding:16px;}
    .queue-slots{grid-template-columns:repeat(5,1fr);}
    .slot .name{font-size:11px;}
  }
  @media(max-width:560px){
    .admin-control{width:100%;justify-content:stretch;}
    .admin-control input{flex:1;width:auto;}
    .team-card + .team-card{margin-top:10px;}
    .form-row{align-items:stretch;}
    .form-row button{min-width:0;}
  }
  .resolve-flow{
    border-top:1px dashed var(--line);
    padding-top:14px;
    margin-top:4px;
  }
  .paste-zone{
    border:1.5px dashed var(--line);
    border-radius:4px;
    padding:16px;
    text-align:center;
    color:var(--text-dim);
    font-size:13px;
    cursor:text;
    transition:border-color 140ms ease,color 140ms ease;
  }
  .paste-zone:focus{outline:none;border-color:var(--accent);color:var(--text);}
  .ocr-progress{font-style:italic;}
  table.resolve-table th, table.resolve-table td{padding:6px 6px;}
  table.resolve-table input[type=number]{
    width:56px;
    min-height:32px;
    padding:5px 6px;
    text-align:center;
  }
  .screenshot-thumb{
    max-width:100%;
    border-radius:4px;
    border:1px solid var(--line);
    margin:8px 0;
    display:block;
    cursor:zoom-in;
  }
  @media(prefers-reduced-motion:reduce){
    *,*::before,*::after{
      transition-duration:0.01ms !important;
      animation-duration:0.01ms !important;
      animation-iteration-count:1 !important;
    }
    button:active{transform:none;}
  }