  :root{
    --bg:#00162a;
    --card:#0a2740;
    --card-line:#1a3c5c;
    --ink:#e8f0f6;
    --ink-dim:#93a9bd;
    --felt-green:#c8ff3d;
    --gold:#e8c34a;
    --silver:#b9c2c9;
    --bronze:#c98a4c;
    --cool1:#4fd1c5;
    --cool2:#3d8bc8;
    --cool3:#5b6ef5;
    --cool4:#8a5bf5;
    --danger:#e8546a;
  }
  *{box-sizing:border-box;}
  html, body{max-width:100%; scrollbar-color:var(--card-line) var(--bg);}
  html::-webkit-scrollbar, body::-webkit-scrollbar{width:10px; height:10px;}
  html::-webkit-scrollbar-track, body::-webkit-scrollbar-track{background:var(--bg);}
  html::-webkit-scrollbar-thumb, body::-webkit-scrollbar-thumb{background:var(--card-line); border-radius:10px;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
    padding:40px 24px 60px;
    overflow-x:hidden;
  }
  h1,h2{font-family:'Oswald',Impact,'Arial Narrow',sans-serif; font-weight:600; letter-spacing:0.02em; margin:0;}
  .wrap{max-width:640px; width:100%; margin:0 auto;}
  .wrap.wide{max-width:1000px;}
  header{margin-bottom:22px; text-align:center;}
  .eyebrow{color:var(--felt-green); font-size:11px; letter-spacing:0.18em; text-transform:uppercase; font-weight:700; margin-bottom:6px;}
  h1{font-size:26px; text-transform:uppercase;}
  .loading, .error, .empty{color:var(--ink-dim); font-size:13px; padding:20px; text-align:center;}
  .error{color:var(--danger);}
  .session-loading{padding:52px 20px; text-align:center; color:var(--ink-dim); font-size:12px;}
  .session-spinner{
    width:24px; height:24px; margin:0 auto 12px; border-radius:50%;
    border:2px solid var(--card-line); border-top-color:var(--felt-green);
    animation:session-spin 0.7s linear infinite;
  }
  @keyframes session-spin{to{transform:rotate(360deg);}}
  @media (prefers-reduced-motion:reduce){.session-spinner{animation:none;}}

  .card{background:var(--card); border:1px solid var(--card-line); border-radius:12px; padding:24px; min-width:0;}
  .field{margin-bottom:16px;}
  .field label{display:block; font-size:12px; color:var(--ink-dim); margin-bottom:6px; text-transform:uppercase; letter-spacing:0.03em;}
  select, input[type="text"], input[type="password"], input[type="number"]{
    width:100%; padding:11px 12px; border-radius:8px; border:1px solid var(--card-line);
    background:var(--control-bg); color:var(--ink); font-size:16px; font-family:inherit;
  }
  select:focus, input:focus{outline:none; border-color:var(--felt-green);}

  .guest-check{display:flex; align-items:center; gap:8px; margin-bottom:16px; font-size:13.5px; color:var(--ink-dim); cursor:pointer; user-select:none; min-width:0;}
  .guest-check input{width:16px; height:16px; accent-color:var(--felt-green); cursor:pointer;}

  .certainty-row{display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; min-width:0;}
  .certainty-row label{margin-bottom:0;}
  .certainty-value{font-family:'Oswald',sans-serif; font-weight:700; color:var(--felt-green); font-size:15px;}
  input[type="range"]{
    -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:4px;
    background:var(--control-bg); outline:none; margin:8px 0 2px;
  }
  input[type="range"]::-webkit-slider-thumb{
    -webkit-appearance:none; appearance:none; width:18px; height:18px; border-radius:50%;
    background:var(--felt-green); border:3px solid var(--card); box-shadow:0 0 0 1px var(--felt-green); cursor:pointer;
  }
  input[type="range"]::-moz-range-thumb{
    width:18px; height:18px; border-radius:50%; background:var(--felt-green);
    border:3px solid var(--card); box-shadow:0 0 0 1px var(--felt-green); cursor:pointer;
  }

  .submit-btn{
    width:100%; padding:13px; border-radius:8px; border:none; cursor:pointer;
    background:var(--felt-green); color:#031424; font-weight:700; font-size:14px;
    text-transform:uppercase; letter-spacing:0.03em; margin-top:4px;
    transition:transform 0.1s ease, opacity 0.1s ease;
  }
  .submit-btn:hover{transform:translateY(-1px);}
  .submit-btn:disabled{opacity:0.5; cursor:default; transform:none;}
  .danger-btn{
    min-height:40px; padding:9px 14px; border-radius:8px;
    border:1px solid var(--danger); background:rgba(232,84,106,0.1);
    color:var(--danger); font:600 12px 'Inter',sans-serif;
    text-transform:uppercase; letter-spacing:0.03em; cursor:pointer;
  }
  .danger-btn:hover{background:rgba(232,84,106,0.18);}
  .danger-btn:disabled{opacity:0.5; cursor:default;}
  .feedback{margin-top:12px; padding:10px 14px; border-radius:8px; font-size:13px; text-align:center; display:none;}
  .feedback.show{display:block;}
  .feedback.success{background:rgba(var(--accent-rgb),0.1); color:var(--felt-green); border:1px solid rgba(var(--accent-rgb),0.25);}
  .feedback.error{background:rgba(232,84,106,0.1); color:var(--danger); border:1px solid rgba(232,84,106,0.25);}
  .helper-note{font-size:12px; color:var(--ink-dim); text-align:center; margin-top:14px;}

  .layout{display:grid; grid-template-columns:250px 1fr; gap:18px; align-items:start; min-width:0;}
  .roster{
    background:var(--card); border:1px solid var(--card-line); border-radius:12px;
    overflow:hidden; max-height:640px; overflow-y:auto; min-width:0;
  }
  .roster-row{
    display:flex; align-items:center; gap:10px; padding:9px 12px;
    cursor:pointer; border-bottom:1px solid var(--card-line);
  }
  .roster-row:last-child{border-bottom:none;}
  .roster-row:hover{background:rgba(var(--accent-rgb),0.05);}
  .roster-row.active{background:rgba(var(--accent-rgb),0.1); border-left:3px solid var(--felt-green); padding-left:11px;}
  .roster-rank{font-family:'Oswald',sans-serif; font-size:11px; color:var(--ink-dim); width:16px; flex-shrink:0;}
  .roster-avatar{width:32px; height:32px; border-radius:50%; flex-shrink:0; object-fit:cover;}
  .roster-avatar.placeholder{display:flex; align-items:center; justify-content:center; font-family:'Oswald',sans-serif; font-weight:700; font-size:11px; color:#031424;}
  .roster-name{font-size:13px; font-weight:600; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .roster-pts{font-family:'Oswald',sans-serif; font-size:11.5px; color:var(--ink-dim);}

  .detail{background:var(--card); border:1px solid var(--card-line); border-radius:12px; padding:22px; min-height:300px; min-width:0;}
  .detail-head{display:flex; align-items:center; gap:14px; margin-bottom:18px; flex-wrap:wrap; min-width:0;}
  .avatar-wrap{position:relative; flex-shrink:0;}
  .detail-head > div{min-width:0;}
  .detail-avatar{width:72px; height:72px; border-radius:50%; object-fit:cover; flex-shrink:0; border:2px solid var(--card-line);}
  .detail-avatar.placeholder{display:flex; align-items:center; justify-content:center; font-family:'Oswald',sans-serif; font-weight:700; font-size:24px; color:#031424;}
  .avatar-edit-btn{
    position:absolute; right:-4px; bottom:-2px; width:30px; height:30px; padding:0;
    border:2px solid var(--card); border-radius:50%; background:var(--felt-green); color:#031424;
    cursor:pointer; box-shadow:0 3px 10px rgba(0,0,0,.3); -webkit-tap-highlight-color:transparent;
  }
  .avatar-edit-btn::before{
    content:''; position:absolute; left:7px; top:9px; width:12px; height:9px;
    border:2px solid currentColor; border-radius:3px;
  }
  .avatar-edit-btn::after{
    content:''; position:absolute; left:12px; top:12px; width:4px; height:4px;
    border:1.5px solid currentColor; border-radius:50%; box-shadow:-3px -5px 0 -1px currentColor;
  }
  .avatar-edit-btn:hover{filter:brightness(1.08); transform:translateY(-1px);}
  .avatar-edit-btn:focus-visible{outline:2px solid var(--ink); outline-offset:2px;}
  .detail-name{font-family:'Oswald',sans-serif; font-size:22px; font-weight:700; text-transform:uppercase; line-height:1.1;}
  .detail-rank{color:var(--ink-dim); font-size:12.5px; margin-top:3px;}
  .tab-panel{display:none;}
  .tab-panel.active{display:block;}

  .portal-shell{display:flex; align-items:flex-start; gap:20px; min-width:0; position:relative;}
  .portal-rail{
    display:flex; flex-direction:column; flex-shrink:0; position:relative;
    background:var(--card); border:1px solid var(--card-line); border-radius:12px;
    padding:16px 8px; gap:4px; width:56px; transition:width 0.2s ease;
    align-self:stretch;
  }
  .portal-rail.expanded{width:200px;}
  .rail-toggle{
    position:absolute; top:12px; right:-13px; width:26px; height:26px; border-radius:50%;
    background:var(--card); border:1px solid var(--card-line); color:var(--ink-dim);
    display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:13px;
    z-index:5; -webkit-tap-highlight-color:transparent;
  }
  .rail-items{display:flex; flex-direction:column; gap:4px; margin-top:30px;}
  .rail-item{
    display:flex; align-items:center; justify-content:center; gap:12px; background:none; border:none; color:var(--ink-dim);
    padding:10px 8px; border-radius:8px; cursor:pointer; font-size:12.5px; font-weight:600;
    text-transform:uppercase; letter-spacing:0.03em; white-space:nowrap; overflow:hidden;
    width:100%; text-align:left; -webkit-tap-highlight-color:transparent;
  }
  .portal-rail.expanded .rail-item{justify-content:flex-start;}
  .rail-item:hover{background:rgba(var(--accent-rgb),0.06); color:var(--ink);}
  .rail-item.active{background:rgba(var(--accent-rgb),0.12); color:var(--felt-green);}
  .rail-icon{flex-shrink:0; width:20px; height:20px; display:flex; align-items:center; justify-content:center;}
  .rail-icon svg{width:18px; height:18px; display:block;}
  .rail-label{display:none;}
  .portal-rail.expanded .rail-label{display:inline;}
  .rail-item.action-rail{
    position:relative; color:var(--gold); border:1px solid rgba(232,195,74,.24);
    background:linear-gradient(135deg,rgba(232,195,74,.08),rgba(var(--accent-rgb),.05));
  }
  .rail-item.action-rail .rail-icon{border-radius:50%; background:rgba(232,195,74,.14); color:var(--gold); font-weight:800;}
  .rail-item.action-rail:hover,.rail-item.action-rail.active{color:var(--felt-green); border-color:rgba(var(--accent-rgb),.4);}
  .action-rail-badge{display:none; margin-left:auto; padding:2px 6px; border-radius:999px; background:var(--gold); color:#031424; font-size:7px; font-weight:900; letter-spacing:.08em;}
  .portal-rail.expanded .action-rail-badge{display:inline-flex;}
  .rail-item.action-rail.is-live{border-color:rgba(var(--accent-rgb),.58); box-shadow:0 0 16px rgba(var(--accent-rgb),.12);}
  .rail-item.action-rail.is-live .action-rail-badge{background:var(--felt-green);}
  .portal-rail:not(.expanded) .rail-item.action-rail.is-live::after{
    content:''; position:absolute; top:5px; right:5px; width:7px; height:7px; border-radius:50%;
    background:var(--felt-green); box-shadow:0 0 8px var(--felt-green);
  }
  .rail-logout{margin-top:auto; border-top:1px solid var(--card-line); padding-top:14px; color:var(--danger);}
  .rail-logout:hover{background:rgba(232,84,106,0.08); color:var(--danger);}

  .portal-main{flex:1; min-width:0;}
  .portal-frame{
    display:block; width:100%; min-height:640px; border:0; border-radius:12px;
    background:var(--bg); overflow:hidden;
  }

  @media(max-width:640px){
    body{padding:24px 12px 48px;}
    .portal-shell{gap:12px;}
    .portal-rail.expanded{
      position:absolute; top:0; left:0; z-index:50;
      height:auto; max-height:calc(100vh - 40px); overflow-y:auto;
      box-shadow:12px 0 30px rgba(0,0,0,0.45);
    }
  }

  .settings-card{margin-bottom:18px;}
  .settings-card:last-child{margin-bottom:0;}
  .settings-avatar-row{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
  .theme-picker-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;}
  .theme-choice{
    display:flex; align-items:center; gap:12px; width:100%; padding:12px;
    border:1px solid var(--card-line); border-radius:10px; background:var(--control-bg);
    color:var(--ink); cursor:pointer; text-align:left; font:inherit;
  }
  .theme-choice:hover{border-color:var(--ink-dim);}
  .theme-choice[aria-pressed="true"]{border-color:var(--felt-green); box-shadow:0 0 0 1px var(--felt-green);}
  .theme-preview{display:flex; width:58px; height:42px; padding:7px; gap:4px; border-radius:7px; flex-shrink:0;}
  .theme-preview span{display:block; flex:1; border-radius:3px;}
  .theme-preview.midnight{background:#00162a; border:1px solid #1a3c5c;}
  .theme-preview.midnight span:first-child{background:#0a2740;}
  .theme-preview.midnight span:last-child{background:#c8ff3d;}
  .theme-preview.green{background:#07180f; border:1px solid #2b5038;}
  .theme-preview.green span:first-child{background:#102b1c;}
  .theme-preview.green span:last-child{background:#f0c85a;}
  .theme-preview.sand{background:#d8c7a2; border:1px solid #aa8c63;}
  .theme-preview.sand span:first-child{background:#eee1c4;}
  .theme-preview.sand span:last-child{background:#667a2f;}
  .theme-choice-copy{min-width:0;}
  .theme-choice-name{display:block; font-weight:700; font-size:13px;}
  .theme-choice-note{display:block; color:var(--ink-dim); font-size:11px; margin-top:3px; line-height:1.3;}
  .theme-save-note{color:var(--ink-dim); font-size:11.5px; margin:10px 0 0; line-height:1.45;}
  @media(max-width:520px){.theme-picker-grid{grid-template-columns:1fr;}}

  .rsvp-status-box{background:var(--control-bg); border:1px solid var(--card-line); border-radius:8px; padding:16px; text-align:center;}
  .rsvp-status-box .big{font-family:'Oswald',sans-serif; font-size:16px; font-weight:700; color:var(--felt-green); margin-bottom:4px;}
  .see-all-link{display:block; text-align:center; font-size:12px; color:var(--ink-dim); margin-top:14px;}
  .see-all-link a{color:var(--felt-green); text-decoration:none;}

  /* Live Tournament -- same round-table motif as /draw-seats and Next
     Game's Table Draw, but seats are circular player tokens (not boxes)
     carrying live status: still in vs. busted, rebuy count, bounties. */
  .lt-meta{color:var(--ink-dim); font-size:12.5px; margin-bottom:16px;}
  .lt-table-grid{display:grid; gap:20px; grid-template-columns:1fr;}
  .lt-table-wrap{display:flex; align-items:center; justify-content:center; padding:clamp(30px,7vw,54px) 10px;}
  .lt-poker-table{
    position:relative; width:100%; max-width:380px; aspect-ratio:1.55; border-radius:48% / 50%;
    background:radial-gradient(ellipse at center,#176345 0%,#0d4c34 62%,#083723 100%);
    border:7px solid #6d4424; box-shadow:inset 0 0 0 2px #b77a3f, inset 0 0 26px rgba(0,0,0,.42);
  }
  .lt-table-center{position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); text-align:center; pointer-events:none;}
  .lt-table-label{font-family:'Oswald',sans-serif; font-weight:700; font-size:14px; color:var(--felt-green); text-transform:uppercase; letter-spacing:.02em;}
  .lt-seat{position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:3px; width:74px;}
  .lt-seat-circle{
    width:44px; height:44px; border-radius:50%; background:#031424; border:2px solid var(--felt-green);
    display:flex; align-items:center; justify-content:center; font:700 13px 'Inter',sans-serif; color:var(--felt-green);
    box-shadow:0 4px 10px rgba(0,0,0,.35);
  }
  .lt-seat-name{font-size:10.5px; font-weight:600; color:var(--ink); max-width:74px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center;}
  .lt-seat-stats{font-size:9px; color:var(--ink-dim); text-align:center; line-height:1.3; white-space:nowrap;}
  .lt-seat-bounty{color:var(--gold);}
  .lt-seat.is-out .lt-seat-circle{border-color:var(--card-line); color:var(--ink-dim); opacity:.5;}
  .lt-seat.is-out .lt-seat-name{color:var(--ink-dim); text-decoration:line-through;}
  .lt-legend{display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:6px; font-size:11px; color:var(--ink-dim);}

  /* Ideas -- a running list, nothing fancy: post a line, vote it up or down. */
  .idea-form{display:flex; gap:8px; margin-bottom:18px;}
  .idea-form input[type="text"]{flex:1;}
  .idea-form .submit-btn{width:auto; flex-shrink:0; padding:11px 18px; margin-top:0;}
  .idea-row{display:flex; align-items:center; gap:12px; background:var(--control-bg); border:1px solid var(--card-line); border-radius:8px; padding:10px 12px; margin-bottom:8px; min-width:0;}
  .idea-row:last-child{margin-bottom:0;}
  .idea-votes{display:flex; flex-direction:column; align-items:center; gap:2px; flex-shrink:0; width:38px;}
  .idea-vote-btn{background:none; border:none; color:var(--ink-dim); cursor:pointer; font-size:15px; line-height:1; padding:2px;}
  .idea-vote-btn:hover{color:var(--ink);}
  .idea-vote-btn.active-up{color:var(--felt-green);}
  .idea-vote-btn.active-down{color:var(--danger);}
  .idea-score{font-family:'Oswald',sans-serif; font-weight:700; font-size:14px;}
  .idea-info{min-width:0; flex:1;}
  .idea-text{font-size:13.5px; overflow-wrap:break-word;}
  .idea-meta{font-size:11px; color:var(--ink-dim); margin-top:2px;}
  .idea-edge{margin-left:auto; flex-shrink:0; display:flex; align-items:center; gap:8px;}
  .idea-vote-breakdown{font-size:9.5px; line-height:1.35; color:var(--ink-dim); text-align:center; white-space:nowrap;}
  .idea-delete-btn{flex-shrink:0; background:none; border:none; color:var(--ink-dim); cursor:pointer; font-size:14px; padding:4px 6px;}
  .idea-delete-btn:hover{color:var(--danger);}

  /* Recycling -- what to put out Wednesday night for Thursday pickup. */
  .prize-calc-row{display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end;}
  .prize-calc-row .field{flex:1 1 140px; margin:0;}
  .prize-result-list{margin-top:16px; max-width:520px;}
  .prize-result-row{display:flex; justify-content:space-between; align-items:center; background:var(--control-bg); border:1px solid var(--card-line); border-radius:8px; padding:12px 16px; margin-bottom:8px;}
  .prize-result-row.first{border-color:rgba(232,195,74,0.4); background:rgba(232,195,74,0.06);}
  .prize-place{font-weight:600; font-size:14.5px;}
  .prize-amount{font-family:'Oswald',sans-serif; font-weight:700; font-size:20px; color:var(--felt-green);}
  .prize-result-row.first .prize-place,.prize-result-row.first .prize-amount{color:var(--gold);}
  .prize-total-row{display:flex; justify-content:space-between; margin-top:14px; padding-top:14px; border-top:1px dashed var(--card-line); font-size:13px; color:var(--ink-dim);}
  .prize-total-row strong{color:var(--ink);}
  .recycle-hero{background:var(--control-bg); border:1px solid var(--card-line); border-radius:12px; padding:28px 20px; text-align:center; margin-bottom:18px;}
  .recycle-hero-icon{font-size:48px; line-height:1;}
  .recycle-hero-type{font-family:'Oswald',sans-serif; font-weight:700; font-size:22px; text-transform:uppercase; margin-top:8px; color:var(--felt-green);}
  .recycle-hero-date{color:var(--ink-dim); font-size:13px; margin-top:6px;}
  .recycle-hero-note{color:var(--gold); font-size:12px; margin-top:10px;}
  .recycle-upcoming-title{font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-dim); margin-bottom:10px;}
  .recycle-row{display:flex; align-items:center; gap:10px; background:var(--control-bg); border:1px solid var(--card-line); border-radius:8px; padding:9px 12px; margin-bottom:6px;}
  .recycle-row:last-child{margin-bottom:0;}
  .recycle-row-icon{font-size:16px; flex-shrink:0;}
  .recycle-row-date{font-size:12.5px; font-weight:600;}
  .recycle-row-type{font-size:11.5px; color:var(--ink-dim); margin-left:auto;}

  .thisweek{
    display:inline-block; font-size:11.5px; padding:5px 12px; border-radius:20px; margin-top:8px;
    background:rgba(var(--accent-rgb),0.1); color:var(--felt-green); border:1px solid rgba(var(--accent-rgb),0.25);
  }
  .thisweek.muted{background:transparent; color:var(--ink-dim); border-color:var(--card-line);}
  .you-badge{
    display:inline-block; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;
    background:rgba(var(--accent-rgb),0.15); color:var(--felt-green); padding:2px 8px; border-radius:8px; margin-left:6px;
  }

  .stat-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(84px, 1fr)); gap:8px; margin:18px 0;}
  .stat-box{background:var(--control-bg); border:1px solid var(--card-line); border-radius:8px; padding:10px 6px; text-align:center; min-width:0; overflow-wrap:break-word;}
  .stat-box .val{font-family:'Oswald',sans-serif; font-size:18px; font-weight:700; color:var(--felt-green);}
  .stat-box .lbl{font-size:9px; text-transform:uppercase; letter-spacing:0.03em; color:var(--ink-dim); margin-top:3px; line-height:1.2;}
  .migration-actions{display:flex; gap:10px; flex-wrap:wrap; margin:18px 0;}
  .migration-summary{display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin:18px 0;}
  .migration-list{margin:8px 0 0; padding-left:18px; color:var(--danger); font-size:13px;}
  .migration-note{background:var(--control-bg); border:1px solid var(--card-line); border-radius:8px; padding:14px; color:var(--ink-dim); font-size:12px; line-height:1.5;}

  .detail-section{margin-bottom:20px;}
  .detail-section-title{font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-dim); margin-bottom:9px;}

  .mini-fp-bar{display:flex; height:16px; border-radius:4px; overflow:hidden; background:var(--control-bg);}
  .mini-fp-seg{height:100%;}

  .record-row{display:flex; justify-content:space-between; align-items:center; padding:7px 0; border-bottom:1px solid var(--card-line); font-size:13px;}
  .record-row:last-child{border-bottom:none;}
  .record-label{color:var(--ink-dim);}
  .record-val{font-weight:600;}

  /* Manager tracking table -- CSS Grid so every row's columns (status, paid,
     rebuy controls, action) line up regardless of how long a player's name is. */
  .manager-table{display:grid; grid-template-columns:minmax(0,1fr) auto auto auto auto auto; column-gap:14px; align-items:center;}
  .manager-live-status{display:inline-flex; align-items:center; gap:6px; color:var(--ink-dim); font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.04em;}
  .manager-live-status::before{content:''; width:7px; height:7px; border-radius:50%; background:var(--ink-dim);}
  .manager-live-status.live{color:var(--felt-green);}
  .manager-live-status.live::before{background:var(--felt-green); box-shadow:0 0 0 3px rgba(var(--accent-rgb),.1);}
  .manager-live-status.connecting::before{background:var(--gold);}
  .manager-live-status.offline{color:var(--danger);}
  .manager-live-status.offline::before{background:var(--danger);}
  .manager-clock-card{background:var(--control-bg); border:1px solid var(--card-line); border-radius:10px; padding:16px; margin-bottom:16px;}
  .manager-clock-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px;}
  .manager-clock-open{color:var(--felt-green); text-decoration:none; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; white-space:nowrap;}
  .manager-clock-main{display:grid; grid-template-columns:minmax(120px,.8fr) minmax(160px,1.2fr); gap:16px; align-items:center;}
  .manager-clock-time{font-family:'Oswald',sans-serif; font-size:42px; line-height:1; font-weight:700; color:var(--felt-green); letter-spacing:.02em; font-variant-numeric:tabular-nums;}
  .manager-clock-level{font-family:'Oswald',sans-serif; font-size:18px; text-transform:uppercase; margin-bottom:4px;}
  .manager-clock-blinds{font-size:13px; color:var(--ink-dim); line-height:1.45;}
  .manager-clock-controls{display:flex; flex-wrap:wrap; gap:7px; margin-top:14px;}
  .manager-clock-control{width:auto; min-height:34px; margin:0; padding:7px 10px; background:var(--card-line); color:var(--ink); font-size:10px;}
  .manager-clock-control.primary{background:var(--felt-green); color:#031424; min-width:82px;}
  .manager-clock-control:disabled{opacity:.4;}
  .mt-row{display:contents;}
  .mt-cell{padding:8px 0; font-size:13px; display:flex; align-items:center; min-width:0;}
  .mt-separator{grid-column:1 / -1; height:1px; background:var(--card-line);}
  .mt-row:last-child .mt-separator{display:none;}
  .mt-name{color:var(--ink); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .mt-name-text{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .mobile-action-label{display:none;}
  .mt-break{display:none;}
  /* Phone portrait and landscape use one operational line per player. The
     name always keeps real width; secondary status/paid detail yields space to
     the compact purchase, minus, and Bust/Undo controls. */
  /* iPad (roomier -- portrait is ~768px) keeps everything on one line. */
  @media(min-width:641px) and (max-width:960px){
    .manager-table{display:block;}
    .mt-row{
      display:grid; grid-template-columns:minmax(32px,1fr) minmax(64px,92px) minmax(32px,1fr) minmax(58px,76px) 26px minmax(46px,auto); gap:4px;
      align-items:center; padding:8px 0; margin:0; border-bottom:1px solid var(--card-line);
    }
    .mt-row:last-child{border-bottom:0;}
    .mt-separator{display:none;}
    .mt-cell{padding:0; border-bottom:none; min-width:0; font-size:11.5px;}
    .mt-name{grid-column:1; grid-row:1; min-width:0; font-size:11px;}
    .mt-status{grid-column:2; grid-row:1; min-width:0; overflow:hidden;}
    .mt-status .pill{padding:2px 5px; font-size:7.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:inline-block; max-width:100%; vertical-align:top;}
    .mt-paid{grid-column:3; grid-row:1; min-width:0; overflow:hidden;}
    .mt-paid span{font-size:9px !important; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:block !important;}
    .mt-break{display:none;}
    .mt-rebuy-select{grid-column:4; grid-row:1; min-width:0;}
    .mt-rebuy-select select{width:100% !important; min-width:0; height:28px; padding:2px 4px !important; font-size:8.5px !important;}
    .mt-rebuy-undo{grid-column:5; grid-row:1; justify-self:center;}
    .mt-rebuy-undo .submit-btn{width:26px !important; min-width:26px; height:28px; padding:0 !important; font-size:14px !important;}
    .mt-action{grid-column:6; grid-row:1; justify-self:end;}
    .mt-action .submit-btn{width:auto !important; min-width:46px; height:28px; padding:4px 6px !important; font-size:9px !important;}
    .desktop-action-label{display:none;}
    .mobile-action-label{display:inline;}
    .mt-row.is-busted .mt-rebuy-select{display:none;}
  }
  /* Phones don't have room for 6 columns on one line without the purchase
     controls and status/paid info fighting for the same few inches --
     status pill and paid/rebuy total get their own line here instead. */
  @media(max-width:640px){
    .manager-table{display:block;}
    .mt-row{
      display:grid; grid-template-columns:minmax(58px,1fr) minmax(90px,120px) 30px auto; grid-template-rows:auto auto; gap:3px 6px;
      align-items:center; padding:8px 0; margin:0; border-bottom:1px solid var(--card-line);
    }
    .mt-row:last-child{border-bottom:0;}
    .mt-separator{display:none;}
    .mt-cell{padding:0; border-bottom:none; min-width:0; font-size:11.5px;}
    .mt-name{grid-column:1; grid-row:1; min-width:0; font-size:12px;}
    .mt-status{grid-column:1; grid-row:2; min-width:0; overflow:hidden;}
    .mt-status .pill{padding:2px 6px; font-size:8.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:inline-block; max-width:100%; vertical-align:top;}
    .mt-paid{grid-column:2 / -1; grid-row:2; min-width:0; overflow:hidden;}
    .mt-paid span{font-size:10px !important; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:block !important;}
    .mt-break{display:none;}
    .mt-rebuy-select{grid-column:2; grid-row:1; min-width:0;}
    .mt-rebuy-select select{width:100% !important; min-width:0; height:30px; padding:4px 5px !important; font-size:10px !important;}
    .mt-rebuy-undo{grid-column:3; grid-row:1; justify-self:center;}
    .mt-rebuy-undo .submit-btn{width:30px !important; min-width:30px; height:30px; padding:0 !important; font-size:15px !important;}
    .mt-action{grid-column:4; grid-row:1; justify-self:end;}
    .mt-action .submit-btn{width:auto !important; min-width:52px; height:30px; padding:5px 8px !important; font-size:10px !important;}
    .desktop-action-label{display:none;}
    .mobile-action-label{display:inline;}
    .mt-row.is-busted .mt-rebuy-select{display:none;}
  }
  @media(max-width:560px){
    .manager-clock-main{grid-template-columns:1fr auto; gap:10px;}
    .manager-clock-time{font-size:34px;}
    .manager-clock-level{font-size:15px;}
    .manager-clock-controls{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px;}
    .manager-clock-control{min-width:0; padding:7px 5px; font-size:9px;}
    .manager-clock-control.primary{grid-column:span 2;}
  }

  .badge-list{display:flex; flex-wrap:wrap; gap:7px;}
  .pill{font-size:10.5px; padding:4px 10px; border-radius:10px; font-weight:600;}
  .pill.win{background:rgba(232,195,74,0.15); color:var(--gold);}
  .pill.cash{background:rgba(var(--accent-rgb),0.12); color:var(--felt-green);}
  .pill.games{background:rgba(125,148,168,0.15); color:var(--ink-dim);}

  .badge-showcase{margin:0 0 20px; padding:16px; background:var(--control-bg); border:1px solid var(--card-line); border-radius:10px;}
  .badge-showcase-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px;}
  .badge-link{border:0; background:none; color:var(--felt-green); padding:0; cursor:pointer; font:600 11px 'Inter',sans-serif; text-transform:uppercase; letter-spacing:0.04em;}
  .badge-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:10px;}
  .badge-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr));}
  .achievement-card{display:flex; gap:12px; align-items:flex-start; min-width:0; padding:14px; border:1px solid var(--card-line); border-radius:10px; background:var(--card-raised);}
  .achievement-card.locked{opacity:0.62; background:var(--card-muted);}
  .achievement-mark{width:48px; height:54px; flex:0 0 48px; display:flex; align-items:center; justify-content:center; position:relative; clip-path:polygon(50% 0,90% 18%,90% 68%,50% 100%,10% 68%,10% 18%); background:var(--card-line); color:var(--ink-dim); font-family:'Oswald',sans-serif; font-size:17px; font-weight:700; letter-spacing:-0.02em;}
  .achievement-card.earned .achievement-mark{background:linear-gradient(145deg,var(--felt-green),#5fae76); color:#031424; box-shadow:0 0 18px rgba(var(--accent-rgb),0.12);}
  .achievement-card.gold .achievement-mark{background:linear-gradient(145deg,#ffe170,var(--gold)); color:#312500;}
  .achievement-card.special .achievement-mark{background:linear-gradient(145deg,#7ee8df,var(--cool3)); color:#07142c;}
  .achievement-card.legend .achievement-mark{background:linear-gradient(145deg,#e2b6ff,#9b5de5); color:#22063d;}
  .achievement-card.locked .achievement-mark{background:var(--card-line); color:var(--ink-dim); box-shadow:none;}
  .achievement-copy{flex:1; min-width:0;}
  .achievement-title{font-family:'Oswald',sans-serif; font-size:14px; font-weight:700; text-transform:uppercase; color:var(--ink); line-height:1.15;}
  .achievement-desc{font-size:10.5px; color:var(--ink-dim); line-height:1.35; margin-top:4px;}
  .achievement-state{font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:var(--felt-green); margin-top:7px;}
  .achievement-card.locked .achievement-state{color:var(--ink-dim);}
  .badge-progress{height:5px; border-radius:5px; overflow:hidden; background:var(--control-bg); margin-top:7px;}
  .badge-progress > span{display:block; height:100%; border-radius:5px; background:var(--felt-green);}
  .badge-page-head{display:flex; align-items:center; gap:14px; margin-bottom:18px;}
  .badge-completion{height:8px; border-radius:8px; overflow:hidden; background:var(--control-bg); margin-top:10px;}
  .badge-completion > span{display:block; height:100%; background:linear-gradient(90deg,var(--felt-green),var(--cool2));}
  .badge-unlock-notice{margin:0 0 14px; padding:12px 14px; border:1px solid rgba(var(--accent-rgb),0.35); border-radius:9px; background:rgba(var(--accent-rgb),0.08); color:var(--felt-green); font-size:12.5px; line-height:1.4;}
  .badge-unlock-notice strong{font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:0.03em;}
  @media(max-width:700px){
    .badge-grid.compact{grid-template-columns:1fr;}
    .badge-grid{grid-template-columns:1fr;}
    .badge-showcase{padding:13px;}
  }

  .velocity-box{display:flex; align-items:center; justify-content:space-between; background:var(--control-bg); border:1px solid var(--card-line); border-radius:8px; padding:12px 16px; min-width:0;}
  .velocity-arrow{font-family:'Oswald',sans-serif; font-weight:700; font-size:15px; white-space:nowrap;}
  .velocity-up{color:var(--felt-green);}
  .velocity-down{color:var(--danger);}
  .velocity-flat{color:var(--ink-dim);}
  .velocity-meta{font-size:11.5px; color:var(--ink-dim); text-align:right;}

  .rivalry-box{background:var(--control-bg); border:1px solid var(--card-line); border-radius:8px; padding:14px 16px; text-align:center; min-width:0; overflow-wrap:break-word;}
  .matchup-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  @media(max-width:760px){.matchup-grid{grid-template-columns:1fr;}}
  .rivalry-vs{font-family:'Oswald',sans-serif; font-size:15px; font-weight:600;}
  .rivalry-score{font-size:12px; color:var(--ink-dim); margin-top:3px;}

  .data-table-wrap{max-height:320px; overflow-y:auto; overflow-x:auto; border:1px solid var(--card-line); border-radius:8px; max-width:100%;}
  table.data-table{width:100%; border-collapse:collapse; font-size:12px;}
  table.data-table th{
    position:sticky; top:0; background:#0e2e48; color:var(--ink-dim);
    text-align:left; font-weight:600; font-size:10px; text-transform:uppercase; letter-spacing:0.03em;
    padding:7px 8px; border-bottom:1px solid var(--card-line);
  }
  table.data-table td{padding:6px 8px; border-bottom:1px solid var(--card-line); white-space:nowrap;}
  table.data-table tr:last-child td{border-bottom:none;}
  table.data-table tr:hover td{background:rgba(var(--accent-rgb),0.04);}
  .flag{font-size:15px; line-height:1;}
  .h2h-bar-bg{background:var(--control-bg); border-radius:3px; height:6px; width:60px; overflow:hidden; display:inline-block; vertical-align:middle;}
  .h2h-bar-fill{height:100%; background:var(--felt-green);}

  @media(max-width:760px){
    .layout{grid-template-columns:1fr;}
    .roster{
      display:flex; flex-direction:row; overflow-x:auto; overflow-y:visible;
      max-height:none; gap:2px; padding:8px 6px; -webkit-overflow-scrolling:touch;
      position:sticky; top:0; z-index:20; box-shadow:0 4px 10px rgba(0,10,20,0.35);
    }
    .roster-row{
      flex-direction:column; flex-shrink:0; width:64px; text-align:center;
      border-bottom:none; border-radius:8px; padding:8px 4px; gap:5px;
    }
    .roster-row.active{border-left:none; padding-left:4px; border:1px solid var(--felt-green);}
    .roster-avatar{width:40px; height:40px;}
    .roster-rank{display:none;}
    .roster-name{font-size:10.5px; white-space:normal; line-height:1.15; max-height:2.3em; overflow:hidden;}
    .roster-pts{font-size:10px;}
    .detail{padding:16px;}
    .stat-grid{grid-template-columns:repeat(auto-fill, minmax(76px, 1fr));}
  }
  @media(max-width:400px){
    .stat-grid{grid-template-columns:repeat(2, 1fr);}
  }

  .builder-head{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px;}
  .builder-head h2{font-size:22px; text-transform:uppercase;}
  .builder-sub{color:var(--ink-dim); font-size:12.5px; line-height:1.5; margin-top:4px; max-width:560px;}
  .builder-layout{display:grid; grid-template-columns:220px minmax(0,1fr); gap:18px; align-items:start;}
  .builder-saved{background:var(--control-bg); border:1px solid var(--card-line); border-radius:10px; padding:10px;}
  .builder-saved-title{color:var(--ink-dim); font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:5px 7px 9px;}
  .builder-template{width:100%; border:0; border-radius:7px; background:transparent; color:var(--ink-dim); padding:10px; text-align:left; cursor:pointer; font:600 12px 'Inter',sans-serif;}
  .builder-template:hover{background:rgba(var(--accent-rgb),.06); color:var(--ink);}
  .builder-template.active{background:rgba(var(--accent-rgb),.12); color:var(--felt-green);}
  .builder-template small{display:block; margin-top:3px; color:var(--ink-dim); font-size:9.5px; font-weight:500;}
  .builder-default-badge{display:inline-block; margin-left:6px; border-radius:999px; padding:2px 6px; background:rgba(var(--accent-rgb),.16); color:var(--felt-green); font-size:8px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; vertical-align:1px;}
  .builder-form{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px;}
  .builder-form .field{margin:0;}
  .builder-form .span-2{grid-column:span 2;}
  .builder-actions{display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 20px;}
  .builder-actions .submit-btn{width:auto; margin:0; padding:10px 14px;}
  .builder-secondary{border:1px solid var(--card-line); background:var(--control-bg); color:var(--ink);}
  .builder-summary{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0 0 16px;}
  .builder-summary .stat-box{padding:12px 8px;}
  .blind-table{width:100%; border-collapse:collapse; font-size:12px;}
  .blind-table th{color:var(--ink-dim); font-size:9.5px; text-transform:uppercase; letter-spacing:.04em; text-align:left; padding:7px 5px;}
  .blind-table td{border-top:1px solid var(--card-line); padding:7px 5px;}
  .blind-table input{min-width:62px; padding:8px; font-size:13px;}
  .blind-level{font-family:'Oswald',sans-serif; color:var(--felt-green); width:42px;}
  .blind-remove{border:0; background:none; color:var(--danger); font-size:18px; cursor:pointer; padding:6px;}
  .break-marker td{background:rgba(79,209,197,.06); color:var(--cool1); font-weight:600; text-align:center; font-size:11px;}
  .builder-note{color:var(--ink-dim); font-size:11px; line-height:1.45; margin-top:12px;}
  .builder-default-choice{display:flex; align-items:flex-start; gap:9px; min-height:44px; padding:10px 12px; border:1px solid var(--card-line); border-radius:8px; background:var(--control-bg); cursor:pointer;}
  .builder-default-choice input{width:16px; height:16px; margin:1px 0 0; accent-color:var(--felt-green);}
  .builder-default-choice span{color:var(--ink); font-size:12px; font-weight:700; line-height:1.3;}
  .builder-default-choice small{display:block; margin-top:3px; color:var(--ink-dim); font-size:10px; font-weight:500;}
  .builder-default-choice.locked{cursor:default;}
  @media(max-width:760px){
    .builder-layout{grid-template-columns:1fr;}
    .builder-saved{display:flex; overflow-x:auto; gap:5px; padding:8px;}
    .builder-saved-title{display:none;}
    .builder-template{flex:0 0 auto; width:auto; white-space:nowrap;}
    .builder-template small{display:none;}
  }
  @media(max-width:560px){
    .builder-head{display:block;}
    .builder-form{grid-template-columns:repeat(2,minmax(0,1fr));}
    .builder-form .span-2{grid-column:1 / -1;}
    .builder-summary{grid-template-columns:1fr;}
    .blind-table input{min-width:48px; padding:7px 5px;}
  }
  .activity-live-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px; margin-bottom:24px;}
  .activity-live-card{background:var(--control-bg); border:1px solid rgba(var(--accent-rgb),.25); border-radius:9px; padding:13px;}
  .activity-live-name{font-family:'Oswald',sans-serif; font-size:15px; color:var(--ink); text-transform:uppercase;}
  .activity-dot{display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--felt-green); margin-right:7px; box-shadow:0 0 0 3px rgba(var(--accent-rgb),.1);}
  .activity-meta{font-size:10.5px; color:var(--ink-dim); margin-top:5px; line-height:1.45;}
  .activity-live-actions{display:flex; gap:6px; margin-top:9px;}
  .activity-live-actions button{
    padding:4px 10px; border-radius:20px; border:none; cursor:pointer; white-space:nowrap;
    font:600 9.5px 'Inter',sans-serif; text-transform:uppercase; letter-spacing:0.02em;
  }
  .activity-live-actions button:disabled{opacity:0.5; cursor:default;}
  .activity-force-logout-btn{background:var(--card-line); color:var(--ink);}
  .activity-force-reset-btn{background:var(--felt-green); color:#031424;}
  .activity-clear-lockout-btn{background:var(--danger); color:#fff;}
  .activity-session{padding:13px 0; border-bottom:1px solid var(--card-line);}
  .activity-session:last-child{border-bottom:0;}
  .activity-session-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px;}
  .activity-pages{display:flex; flex-wrap:wrap; gap:5px; margin-top:8px;}
  .activity-page{font-size:9.5px; color:var(--ink-dim); background:var(--control-bg); border:1px solid var(--card-line); border-radius:10px; padding:3px 7px;}
  .player-admin-record{border-bottom:1px solid var(--card-line);}
  .player-admin-record:last-of-type{border-bottom:0;}
  .player-admin-row{display:grid; grid-template-columns:minmax(135px,1fr) 105px 95px 68px minmax(140px,1fr) minmax(185px,1.25fr); gap:7px; align-items:center; padding:9px 0; border:0;}
  .player-admin-name{display:flex; align-items:center; gap:8px; min-width:0;}
  .player-admin-name .record-label{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .person-id{font-size:9.5px; color:var(--ink-dim); background:var(--control-bg); border:1px solid var(--card-line); border-radius:10px; padding:3px 7px; white-space:nowrap;}
  .identity-inline{display:flex; gap:4px; min-width:0;}
  .identity-inline input{min-width:0; padding:8px 7px; font-size:11px;}
  .identity-inline button{width:auto; min-width:42px; margin:0; padding:8px 7px; white-space:nowrap; font-size:10px;}
  .identity-spacer{display:block; min-height:1px;}
  @media(max-width:900px){
    .player-admin-row{grid-template-columns:minmax(130px,1fr) 95px 90px 66px minmax(125px,1fr) minmax(160px,1.1fr); gap:5px;}
  }
  @media(max-width:760px){
    .player-admin-row{grid-template-columns:1fr 1fr; padding:12px 0;}
    .player-admin-name{grid-column:1 / -1;}
    .player-admin-active{justify-self:start;}
    .identity-inline,.identity-spacer{grid-column:1 / -1;}
  }
  .analytics-kpis{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-bottom:22px;}
  .analytics-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .analytics-card{background:var(--control-bg); border:1px solid var(--card-line); border-radius:9px; padding:14px; min-width:0;}
  .analytics-row{display:grid; grid-template-columns:minmax(80px,1fr) 2fr auto; gap:9px; align-items:center; padding:6px 0; font-size:11px;}
  .analytics-bar{height:7px; border-radius:5px; background:var(--card-line); overflow:hidden;}
  .analytics-bar span{display:block; height:100%; background:var(--felt-green); border-radius:5px;}
  @media(max-width:700px){.analytics-kpis{grid-template-columns:1fr 1fr}.analytics-grid{grid-template-columns:1fr}}

  .site-nav{
    position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px;
    max-width:1100px; margin:0 auto 28px; padding:14px 16px;
    border-bottom:1px solid var(--card-line);
  }
  .site-nav .brand{
    font-family:'Oswald',Impact,'Arial Narrow',sans-serif; font-weight:700; font-size:15px;
    color:var(--felt-green); text-transform:uppercase; letter-spacing:0.08em; text-decoration:none; flex-shrink:0;
  }
  .site-nav .links{
    display:flex; gap:18px;
  }
  .site-nav .links a{
    color:var(--ink-dim); text-decoration:none; font-size:12.5px; font-weight:600;
    text-transform:uppercase; letter-spacing:0.03em; white-space:nowrap; padding:4px 2px;
    border-bottom:2px solid transparent;
  }
  .site-nav .links a:hover{color:var(--ink);}
  .site-nav .links a.active{color:var(--felt-green); border-bottom-color:var(--felt-green);}
  .nav-toggle{display:none;}
  .nav-burger{
    display:none; flex-direction:column; justify-content:center; gap:5px;
    width:32px; height:32px; cursor:pointer; flex-shrink:0; -webkit-tap-highlight-color:transparent;
  }
  .nav-burger span{display:block; width:100%; height:2px; background:var(--ink); border-radius:2px; transition:transform 0.2s ease, opacity 0.2s ease;}
  .nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0;}
  .nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  @media (max-width:640px){
    .nav-burger{display:flex;}
    .site-nav .links{
      display:none; flex-direction:column; align-items:stretch; gap:0;
      position:absolute; top:100%; left:0; right:0;
      background:var(--card); border-bottom:1px solid var(--card-line);
      padding:4px 16px 12px; z-index:50;
    }
    .nav-toggle:checked ~ .links{display:flex;}
    .site-nav .links a{padding:12px 0; border-bottom:1px solid var(--card-line);}
    .site-nav .links a:last-child{border-bottom:none;}
  }
