/* Styles identical in index.html and betting-tracker.html.
   Page-specific layout (grid widths, :root overrides, @media) stays in each file. */

*{box-sizing:border-box; margin:0; padding:0;}

::selection{background:var(--orange); color:#0B0B0D;}

html,body{
    background:var(--bg);
    color:var(--text);
    font-family:'Rajdhani', sans-serif;
    min-height:100vh;
  }

body{
    background-image:
      linear-gradient(180deg, rgba(255,106,26,0.04), transparent 300px),
      repeating-linear-gradient(180deg, rgba(255,255,255,0.012) 0px, rgba(255,255,255,0.012) 1px, transparent 1px, transparent 3px);
  }

.wrap{
    max-width:1180px;
    margin:0 auto;
    padding:40px 24px 100px;
  }

header{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    border-bottom:2px solid var(--line);
    padding-bottom:24px;
    margin-bottom:32px;
    flex-wrap:wrap;
    gap:20px;
  }

.brand{
    display:flex;
    align-items:center;
    gap:14px;
  }

.brand-mark{
    width:38px;
    height:38px;
    background:var(--orange);
    position:relative;
    flex-shrink:0;
    clip-path:polygon(0 0, 100% 0, 100% 70%, 70% 100%, 0 100%);
  }

.brand-mark::after{
    content:"";
    position:absolute;
    inset:7px;
    background:var(--bg);
    clip-path:polygon(0 0, 100% 0, 100% 62%, 62% 100%, 0 100%);
  }

.brand h1{
    font-size:26px;
    font-weight:700;
    letter-spacing:0.5px;
    line-height:1;
  }

.brand h1 span{
    color:var(--orange);
  }

.brand small{
    display:block;
    font-family:'JetBrains Mono', monospace;
    font-size:11px;
    color:var(--text-dim);
    letter-spacing:1.5px;
    margin-top:4px;
    text-transform:uppercase;
  }

.stats-summary{
    display:flex;
    gap:28px;
    font-family:'JetBrains Mono', monospace;
  }

.stat{
    text-align:right;
  }

.stat .num{
    font-size:22px;
    font-weight:600;
    color:var(--orange-soft);
    line-height:1;
  }

.stat .lbl{
    font-size:10px;
    color:var(--text-dim);
    text-transform:uppercase;
    letter-spacing:1.2px;
    margin-top:6px;
  }

.filters{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:16px;
    margin-bottom:20px;
  }

.disc-icon{
    width:18px;
    height:18px;
    vertical-align:middle;
    margin-right:4px;
    position:relative;
    top:-1px;
  }

.count-badge{
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    color:var(--text-dimmer);
    letter-spacing:0.5px;
  }

.count-badge b{
    color:var(--orange-soft);
    font-weight:600;
  }

.ticket-list{
    display:flex;
    flex-direction:column;
    gap:10px;
  }

@keyframes slideIn{
    from{ opacity:0; transform:translateY(-6px); }
    to{ opacity:1; transform:translateY(0); }
  }

.ticket::before{ top:-1px; }

.ticket::after{ bottom:-1px; }

.ticket:hover{
    border-color:#3a3a40;
  }

.ticket.is-selected{
    border-color:var(--orange);
    background:var(--panel-2);
  }

.ticket.is-selected::before, .ticket.is-selected::after{
    background:var(--orange);
  }

.ticket.is-match{
    border-color:var(--orange-soft);
    box-shadow: inset 0 0 0 1px rgba(255,138,61,0.35);
  }

.ticket.is-dimmed{
    opacity:0.35;
  }

.t-disc{
    display:flex;
    align-items:center;
    gap:8px;
  }

.disc-tag{
    font-family:'JetBrains Mono', monospace;
    font-size:11px;
    font-weight:600;
    letter-spacing:0.5px;
    padding:4px 8px;
    border:1px solid;
  }

.disc-tag.dota2{ color:#C9557B; border-color:#C9557B; }

.disc-tag.cs2{ color:#D4A72C; border-color:#D4A72C; }

.disc-tag.lol{ color:#4A9FD8; border-color:#4A9FD8; }

.disc-tag.valorant{ color:#FA4454; border-color:#FA4454; }

.disc-tag.ms{ color:#8B5CF6; border-color:#8B5CF6; }

.t-match{
    display:flex;
    flex-direction:column;
    gap:3px;
  }

.t-teams{
    font-weight:600;
    font-size:16px;
    color:var(--text);
  }

.t-teams .vs{
    color:var(--text-dimmer);
    font-weight:500;
    padding:0 6px;
    font-size:13px;
  }

.t-time{
    font-family:'JetBrains Mono', monospace;
    font-size:11px;
    color:var(--text-dim);
    display:flex;
    align-items:center;
    gap:6px;
  }

.t-time .dot{
    width:5px; height:5px;
    background:var(--text-dimmer);
    border-radius:50%;
    display:inline-block;
  }

.t-market{
    font-size:14px;
    color:var(--text-dim);
    line-height:1.4;
  }

.t-market .map-tag{
    color:var(--orange-soft);
    font-weight:600;
    font-family:'JetBrains Mono', monospace;
    font-size:11px;
    margin-right:6px;
  }

.t-odds{
    font-family:'JetBrains Mono', monospace;
    font-size:19px;
    font-weight:700;
    color:var(--orange-soft);
  }

.t-odds .lbl{
    display:block;
    font-size:9px;
    color:var(--text-dimmer);
    font-weight:400;
    letter-spacing:1px;
    text-transform:uppercase;
    margin-top:2px;
  }

.t-stake{
    font-family:'JetBrains Mono', monospace;
    display:flex;
    flex-direction:column;
    gap:2px;
  }

.t-stake .main{
    font-size:15px;
    font-weight:600;
    color:var(--text);
  }

.t-stake .conv{
    font-size:11px;
    color:var(--text-dim);
  }

.empty-state{
    text-align:center;
    padding:80px 20px;
    color:var(--text-dimmer);
    border:1px dashed var(--line);
    font-family:'JetBrains Mono', monospace;
    letter-spacing:0.5px;
  }

.empty-state .big{
    font-family:'Rajdhani', sans-serif;
    font-size:22px;
    font-weight:600;
    color:var(--text-dim);
    margin-bottom:8px;
    letter-spacing:0;
  }

footer{
    margin-top:40px;
    padding-top:20px;
    border-top:1px solid var(--line);
    font-family:'JetBrains Mono', monospace;
    font-size:11px;
    color:var(--text-dimmer);
    text-align:center;
    letter-spacing:0.5px;
  }

:focus-visible{
    outline:2px solid var(--orange);
    outline-offset:2px;
  }
