
  :root{
    --ink:#14213D;
    --ink-2:#1c2c50;
    --brass:#C9A227;
    --brass-dim:#a5851f;
    --paper:#EFEDE6;
    --chalk:#F7F6F2;
    --red:#A6182E;
    --turf:#2F5233;
    --line: rgba(247,246,242,0.14);
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--ink);
    color:var(--chalk);
    font-family:'Fraunces', serif;
    min-height:100vh;
    -webkit-font-smoothing:antialiased;
  }
  .mono{font-family:'IBM Plex Mono', monospace;}
  .display{font-family:'Anton', sans-serif; letter-spacing:0.02em;}

  header.club{
    padding:28px 20px 20px;
    border-bottom:3px solid var(--brass);
    background:
      repeating-linear-gradient(135deg, rgba(255,255,255,0.02) 0 2px, transparent 2px 14px),
      linear-gradient(180deg, var(--ink-2), var(--ink));
    text-align:center;
  }
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--brass);
    margin-bottom:8px;
  }
  h1.title{
    font-family:'Anton', sans-serif;
    font-size:clamp(28px,6vw,44px);
    margin:0;
    letter-spacing:0.03em;
    color:var(--chalk);
  }
  .subtitle{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:500;
    color:rgba(247,246,242,0.65);
    margin-top:6px;
    font-size:15px;
  }

  nav.tabs{
    display:flex;
    max-width:920px;
    margin:0 auto;
    overflow-x:auto;
    border-bottom:1px solid var(--line);
    background:var(--ink);
    position:sticky;
    top:0;
    z-index:10;
  }
  nav.tabs button{
    flex:1;
    min-width:130px;
    background:none;
    border:none;
    color:rgba(247,246,242,0.55);
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    padding:16px 8px;
    cursor:pointer;
    border-bottom:3px solid transparent;
    transition:color .15s, border-color .15s;
  }
  nav.tabs button:hover{color:var(--chalk);}
  nav.tabs button.active{
    color:var(--brass);
    border-bottom-color:var(--brass);
  }

  main{
    max-width:920px;
    margin:0 auto;
    padding:28px 18px 80px;
  }
  .panel{display:none;}
  .panel.active{display:block; animation:fade .25s ease;}
  @keyframes fade{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);}}

  .section-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
    margin-bottom:18px;
    flex-wrap:wrap;
  }
  .section-head h2{
    font-family:'Anton', sans-serif;
    font-size:22px;
    margin:0;
    letter-spacing:0.02em;
  }
  .section-head p{
    margin:4px 0 0;
    font-size:13px;
    color:rgba(247,246,242,0.55);
    font-family:'IBM Plex Mono',monospace;
  }

  .card{
    background:var(--paper);
    color:var(--ink);
    border-radius:2px;
    padding:20px;
    margin-bottom:18px;
    box-shadow:0 8px 24px rgba(0,0,0,0.25);
  }

  label{
    display:block;
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.1em;
    color:var(--ink-2);
    margin-bottom:6px;
  }
  input[type=text], input[type=date], input[type=password], input[type=number], select{
    width:100%;
    padding:10px 12px;
    font-family:'IBM Plex Mono',monospace;
    font-size:14px;
    border:1.5px solid rgba(20,33,61,0.25);
    border-radius:3px;
    background:#fff;
    color:var(--ink);
  }
  input:focus, select:focus{outline:2px solid var(--brass); outline-offset:1px;}

  .row{display:flex; gap:10px; flex-wrap:wrap;}
  .row > div{flex:1; min-width:140px;}

  button.btn{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    padding:11px 18px;
    border-radius:3px;
    border:none;
    cursor:pointer;
    background:var(--ink);
    color:var(--chalk);
    transition:transform .1s, background .15s;
  }
  button.btn:hover{background:var(--ink-2);}
  button.btn:active{transform:scale(0.97);}
  button.btn.gold{background:var(--brass); color:var(--ink); font-weight:600;}
  button.btn.gold:hover{background:var(--brass-dim);}
  button.btn.ghost{background:transparent; color:var(--ink); border:1.5px solid rgba(20,33,61,0.3);}
  button.btn.small{padding:6px 10px; font-size:11px;}
  button.btn.danger{background:var(--red); color:var(--chalk);}
  button.btn:disabled{opacity:0.4; cursor:not-allowed;}

  .player-row{
    display:flex;
    gap:10px;
    align-items:center;
    margin-bottom:8px;
  }
  .player-row input[type=text]{flex:2;}
  .player-row input[type=number]{flex:1; max-width:90px;}
  .player-row button{flex:0 0 auto;}

  .chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:rgba(20,33,61,0.08);
    border:1px solid rgba(20,33,61,0.2);
    border-radius:20px;
    padding:6px 12px;
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    margin:3px 4px 3px 0;
  }
  .chip button{
    background:none; border:none; color:var(--red); cursor:pointer; font-size:14px; line-height:1; padding:0;
  }

  /* Ticket-stub rows: signature element */
  .ticket{
    position:relative;
    background:var(--paper);
    color:var(--ink);
    border-radius:2px;
    margin-bottom:10px;
    padding:14px 16px 14px 26px;
    display:flex;
    align-items:center;
    gap:16px;
    box-shadow:0 4px 14px rgba(0,0,0,0.2);
    overflow:hidden;
  }
  .ticket::before{
    content:'';
    position:absolute;
    left:0; top:0; bottom:0;
    width:14px;
    background-image: radial-gradient(circle at 7px 0, transparent 5px, var(--ink) 5.5px);
    background-size: 14px 16px;
    background-repeat: repeat-y;
  }
  .ticket .badge{
    flex:0 0 auto;
    width:52px; height:52px;
    border-radius:50%;
    background:var(--brass);
    color:var(--ink);
    display:flex; align-items:center; justify-content:center;
    font-family:'Anton',sans-serif;
    font-size:20px;
  }
  .ticket.urgent .badge{background:var(--red); color:var(--chalk);}
  .ticket .info{flex:1; min-width:0;}
  .ticket .name{font-family:'Fraunces',serif; font-weight:600; font-size:17px;}
  .ticket .meta{font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:rgba(20,33,61,0.65); margin-top:2px;}
  .ticket .pos{
    flex:0 0 auto;
    font-family:'Anton',sans-serif;
    font-size:30px;
    color:var(--ink-2);
    min-width:34px;
    text-align:center;
  }
  .ticket .flag{
    font-family:'IBM Plex Mono',monospace;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:0.06em;
    padding:3px 7px;
    border-radius:10px;
    background:var(--turf);
    color:var(--chalk);
  }

  table.stats{
    width:100%;
    border-collapse:collapse;
    font-family:'IBM Plex Mono',monospace;
    font-size:12.5px;
  }
  table.stats th{
    text-align:left;
    padding:8px 6px;
    border-bottom:2px solid var(--ink);
    text-transform:uppercase;
    letter-spacing:0.06em;
    font-size:10.5px;
    color:rgba(20,33,61,0.7);
  }
  table.stats td{
    padding:9px 6px;
    border-bottom:1px solid rgba(20,33,61,0.12);
  }
  table.stats tr:hover td{background:rgba(20,33,61,0.04);}
  .deficit-pos{color:var(--turf); font-weight:600;}
  .deficit-neg{color:rgba(20,33,61,0.45);}

  .empty{
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    color:rgba(247,246,242,0.5);
    padding:30px 10px;
    text-align:center;
    border:1px dashed var(--line);
    border-radius:4px;
  }

  .pin-gate{
    display:flex;
    gap:10px;
    align-items:center;
    flex-wrap:wrap;
  }
  .lock-note{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    color:rgba(247,246,242,0.5);
    margin-top:8px;
  }
  .unlocked-tag{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    color:var(--brass);
    letter-spacing:0.08em;
  }
  .divider{
    height:1px;
    background:var(--line);
    margin:20px 0;
  }
  .match-card .players-list{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:10px;
  }
  .match-card .players-list span{
    font-family:'IBM Plex Mono',monospace;
    font-size:11.5px;
    background:rgba(20,33,61,0.08);
    padding:4px 8px;
    border-radius:3px;
  }
  .toast{
    position:fixed;
    bottom:20px;
    left:50%;
    transform:translateX(-50%);
    background:var(--brass);
    color:var(--ink);
    padding:12px 20px;
    border-radius:4px;
    font-family:'IBM Plex Mono',monospace;
    font-size:12.5px;
    font-weight:600;
    box-shadow:0 8px 24px rgba(0,0,0,0.35);
    z-index:100;
    opacity:0;
    pointer-events:none;
    transition:opacity .2s, transform .2s;
  }
  .toast.show{opacity:1; transform:translateX(-50%) translateY(-6px);}

  @media (prefers-reduced-motion: reduce){
    *{animation:none !important; transition:none !important;}
  }
