
  :root{
    --bg:#F4F7F5; --surface:#FFFFFF; --surface2:#EBF1ED; --ink:#182620; --ink2:#5A6B62;
    --line:#DCE5DF; --accent:#1E7A52; --accent-ink:#FFFFFF; --accent-soft:#E3F0E9;
    --gold:#8A6D08; --gold-soft:#F7EFC9; --up:#1E7A52; --down:#B3402A; --down-soft:#F9E9E4;
    --shadow:0 1px 3px rgba(24,38,32,.08),0 4px 16px rgba(24,38,32,.06);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#0E1512; --surface:#182019; --surface2:#202A22; --ink:#E8F0EA; --ink2:#93A79A;
      --line:#2A3630; --accent:#42B380; --accent-ink:#0B1710; --accent-soft:#1D3328;
      --gold:#E0C24C; --gold-soft:#33301A; --up:#42B380; --down:#E07B5F; --down-soft:#3A241D;
      --shadow:0 1px 3px rgba(0,0,0,.4),0 4px 16px rgba(0,0,0,.3);
    }
  }
  :root[data-theme="dark"]{
    --bg:#0E1512; --surface:#182019; --surface2:#202A22; --ink:#E8F0EA; --ink2:#93A79A;
    --line:#2A3630; --accent:#42B380; --accent-ink:#0B1710; --accent-soft:#1D3328;
    --gold:#E0C24C; --gold-soft:#33301A; --up:#42B380; --down:#E07B5F; --down-soft:#3A241D;
    --shadow:0 1px 3px rgba(0,0,0,.4),0 4px 16px rgba(0,0,0,.3);
  }
  *{box-sizing:border-box; margin:0}
  html,body{background:var(--bg); color:var(--ink)}
  body{font-family:'Barlow',system-ui,-apple-system,sans-serif; font-size:16px; line-height:1.45;
    -webkit-font-smoothing:antialiased}
  button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit}
  button:focus-visible, select:focus-visible, input:focus-visible{outline:2px solid var(--accent); outline-offset:2px}
  select,input{font-family:inherit; font-size:16px; color:var(--ink); background:var(--surface);
    border:1px solid var(--line); border-radius:10px; padding:10px 12px; width:100%}
  .num{font-variant-numeric:tabular-nums}
  .cond{font-family:'Barlow Condensed','Barlow',sans-serif}

  #shell{max-width:480px; margin:0 auto; min-height:100vh; display:flex; flex-direction:column;
    background:var(--bg); position:relative}
  header.top{position:sticky; top:0; z-index:20; background:var(--bg); padding:14px 16px 10px;
    display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line)}
  .logo{font-family:'Barlow Condensed'; font-weight:700; font-size:26px; letter-spacing:.5px; color:var(--accent)}
  .logo .dot{display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--gold);
    margin-left:2px; vertical-align:baseline}
  .clubname{font-size:13px; color:var(--ink2); flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
  .langbtn{font-size:12px; font-weight:700; letter-spacing:.08em; padding:6px 10px; border-radius:999px;
    border:1px solid var(--line); background:var(--surface); color:var(--ink2)}

  main{flex:1; padding:16px 16px 96px}
  .banner{margin:0 0 12px; padding:10px 12px; border-radius:12px; font-size:13.5px;
    background:var(--gold-soft); color:var(--gold); border:1px solid var(--line)}
  .banner.err{background:var(--down-soft); color:var(--down)}

  h2.sec{font-family:'Barlow Condensed'; font-weight:600; font-size:15px; letter-spacing:.12em;
    text-transform:uppercase; color:var(--ink2); margin:20px 0 10px}
  h2.sec:first-child{margin-top:2px}

  .card{background:var(--surface); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow)}

  /* leaderboard */
  .lbrow{display:flex; align-items:center; gap:12px; padding:12px 14px; border-bottom:1px solid var(--line);
    width:100%; text-align:left}
  .lbrow:last-child{border-bottom:none}
  .rank{font-family:'Barlow Condensed'; font-weight:700; font-size:18px; width:26px; color:var(--ink2); text-align:center}
  .rank.r1{color:var(--gold)}
  .avatar{width:38px; height:38px; border-radius:50%; background:var(--accent-soft); color:var(--accent);
    display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; flex:none}
  .lbname{flex:1; min-width:0}
  .lbname .nm{display:block; font-weight:600; font-size:15.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
  .lbname .sub{display:block; font-size:12.5px; color:var(--ink2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
  .lbr{text-align:right}
  .rating{font-family:'Barlow Condensed'; font-weight:700; font-size:24px; line-height:1}
  .delta{font-size:12px; font-weight:600}
  .delta.up{color:var(--up)} .delta.down{color:var(--down)} .delta.flat{color:var(--ink2)}
  .prov{display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.06em; color:var(--gold);
    background:var(--gold-soft); border-radius:6px; padding:1px 6px; vertical-align:middle}

  /* stat strip */
  .strip{display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-bottom:14px}
  .stat{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:10px 8px; text-align:center}
  .stat .v{font-family:'Barlow Condensed'; font-weight:700; font-size:24px; line-height:1.1}
  .stat .k{font-size:11.5px; color:var(--ink2); letter-spacing:.04em; text-transform:uppercase}

  /* matches */
  .match{padding:12px 14px; border-bottom:1px solid var(--line)}
  .match:last-child{border-bottom:none}
  .mhead{display:flex; justify-content:space-between; font-size:12px; color:var(--ink2); margin-bottom:6px}
  .mrow{display:flex; align-items:center; gap:8px}
  .mteam{flex:1; min-width:0; font-weight:600; font-size:14.5px}
  .mteam.lose{color:var(--ink2); font-weight:500}
  .mteam .d{display:block; font-size:11.5px; font-weight:600}
  .d.up{color:var(--up)} .d.down{color:var(--down)}
  .mscore{font-family:'Barlow Condensed'; font-weight:700; font-size:26px; white-space:nowrap; padding:0 4px}
  .mscore .w{color:var(--accent)}
  .pend{border-left:3px solid var(--gold)}
  .mact{display:flex; gap:8px; margin-top:10px}
  .btn{border-radius:12px; padding:11px 14px; font-weight:700; font-size:14.5px; text-align:center}
  .btn.pri{background:var(--accent); color:var(--accent-ink)}
  .btn.ghost{background:var(--surface2); color:var(--ink)}
  .btn.danger{background:var(--down-soft); color:var(--down)}
  .btn.full{width:100%}
  .btn.grow{flex:1}
  .btn:disabled{opacity:.45; cursor:default}

  /* form */
  .field{margin-bottom:12px}
  .field label{display:block; font-size:12.5px; font-weight:600; color:var(--ink2); margin-bottom:5px;
    letter-spacing:.04em; text-transform:uppercase}
  .seg{display:flex; background:var(--surface2); border-radius:12px; padding:3px; gap:3px}
  .seg button{flex:1; padding:9px 0; border-radius:10px; font-weight:600; font-size:14px; color:var(--ink2)}
  .seg button.on{background:var(--surface); color:var(--ink); box-shadow:var(--shadow)}
  .scorebox{display:flex; align-items:center; gap:10px}
  .scorebox .side{flex:1; text-align:center}
  .scorebox .side .lbl{font-size:12px; color:var(--ink2); font-weight:600; margin-bottom:4px}
  .stepper{display:flex; align-items:center; justify-content:center; gap:6px}
  .stepper button{width:44px; height:44px; border-radius:12px; background:var(--surface2);
    font-size:22px; font-weight:700; color:var(--ink)}
  .stepper .sv{font-family:'Barlow Condensed'; font-weight:700; font-size:40px; width:58px; text-align:center}
  .vs{font-family:'Barlow Condensed'; font-weight:600; color:var(--ink2); font-size:15px; padding-top:18px}

  /* sheet & modal */
  .scrim{position:fixed; inset:0; background:rgba(10,16,13,.45); z-index:40}
  .sheet{position:fixed; left:50%; transform:translateX(-50%); bottom:0; width:100%; max-width:480px;
    max-height:88vh; overflow-y:auto; background:var(--surface); border-radius:20px 20px 0 0;
    padding:18px 18px 26px; z-index:50}
  .sheet h3{font-family:'Barlow Condensed'; font-weight:700; font-size:22px; margin-bottom:14px}
  .sheet .close{position:absolute; top:14px; right:14px; width:32px; height:32px; border-radius:50%;
    background:var(--surface2); font-size:15px; color:var(--ink2)}

  /* profile */
  .profhead{text-align:center; padding:6px 0 14px}
  .profhead .avatar{width:56px; height:56px; margin:0 auto 8px; font-size:19px}
  .profhead .bigr{font-family:'Barlow Condensed'; font-weight:700; font-size:52px; line-height:1; color:var(--accent)}
  .profhead .nm{font-weight:700; font-size:18px}
  .profhead .sub{font-size:13px; color:var(--ink2)}
  .spark{width:100%; height:64px; margin:8px 0 4px}

  /* bottom nav */
  nav.bottom{position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:100%; max-width:480px;
    background:var(--surface); border-top:1px solid var(--line); display:flex; z-index:30;
    padding-bottom:env(safe-area-inset-bottom)}
  nav.bottom button{flex:1; padding:9px 0 8px; font-size:11.5px; font-weight:600; color:var(--ink2);
    display:flex; flex-direction:column; align-items:center; gap:2px; position:relative}
  nav.bottom button.on{color:var(--accent)}
  nav.bottom .ico{font-size:19px; line-height:1}
  nav.bottom .fab{flex:none; width:74px}
  .fabbtn{width:52px; height:52px; border-radius:50%; background:var(--accent); color:var(--accent-ink);
    font-size:28px; font-weight:700; margin-top:-22px; box-shadow:var(--shadow);
    display:flex; align-items:center; justify-content:center}
  .navbadge{position:absolute; top:2px; right:calc(50% - 22px); min-width:16px; height:16px; padding:0 4px;
    border-radius:8px; background:var(--down); color:#fff; font-size:10.5px; font-weight:700;
    display:flex; align-items:center; justify-content:center}

  .empty{text-align:center; padding:38px 20px; color:var(--ink2)}
  .empty .big{font-size:38px; margin-bottom:8px}
  .empty p{margin-bottom:14px; font-size:14.5px}

  #toast{position:fixed; bottom:84px; left:50%; transform:translateX(-50%); background:var(--ink);
    color:var(--bg); padding:10px 18px; border-radius:999px; font-size:14px; font-weight:600; z-index:60;
    opacity:0; transition:opacity .25s; pointer-events:none; max-width:90vw; text-align:center}
  #toast.show{opacity:1}
  .hint{font-size:12.5px; color:var(--ink2)}
  .linklike{color:var(--accent); font-weight:600; font-size:13.5px; padding:8px 4px}
  @media (prefers-reduced-motion: reduce){ *{transition:none !important} }

  /* ---- production additions: auth & forms ---- */
  .authwrap{max-width:400px; margin:0 auto; padding:36px 20px}
  .authwrap .biglogo{font-family:'Barlow Condensed'; font-weight:700; font-size:44px; color:var(--accent); text-align:center}
  .authwrap .tag{text-align:center; color:var(--ink2); font-size:14px; margin-bottom:22px}
  .authtabs{display:flex; background:var(--surface2); border-radius:12px; padding:3px; gap:3px; margin-bottom:16px}
  .authtabs button{flex:1; padding:10px 0; border-radius:10px; font-weight:600; color:var(--ink2)}
  .authtabs button.on{background:var(--surface); color:var(--ink); box-shadow:var(--shadow)}
  .setupcard{margin:40px auto; max-width:420px}
  .invitebox{font-family:'Barlow Condensed'; font-weight:700; font-size:40px; letter-spacing:6px;
    text-align:center; background:var(--accent-soft); color:var(--accent); border-radius:14px; padding:14px; margin:10px 0}
  .invitebox.player{background:var(--gold-soft); color:var(--gold); border:1px solid var(--gold)}
  .rowbtns{display:flex; gap:8px}
  .subtle{font-size:13px; color:var(--ink2)}
  .center{text-align:center}

  /* ---- v1.3: bell, filters, doc pages, bigger red FAB ---- */
  .bellbtn{position:relative; font-size:19px; line-height:1; padding:5px 8px; border-radius:999px;
    border:1px solid var(--line); background:var(--surface)}
  .belldot{position:absolute; top:2px; right:3px; width:9px; height:9px; border-radius:50%;
    background:var(--down); border:2px solid var(--surface)}
  .fabbtn{width:60px !important; height:60px !important; margin-top:-26px !important;
    background:#B3231C !important; color:#FFFFFF !important; font-size:38px !important;
    font-weight:700 !important; line-height:1 !important; padding-bottom:4px;
    box-shadow:0 3px 10px rgba(179,35,28,.4), 0 1px 3px rgba(0,0,0,.2) !important}
  nav.bottom .fab{width:84px}
  .chips{display:flex; gap:6px; overflow-x:auto; padding:2px 0 8px; -webkit-overflow-scrolling:touch}
  .chip{flex:none; font-size:13px; font-weight:600; padding:7px 13px; border-radius:999px;
    border:1px solid var(--line); background:var(--surface); color:var(--ink2); white-space:nowrap}
  .chip.on{background:var(--accent); border-color:var(--accent); color:var(--accent-ink)}
  .doc{padding-bottom:20px}
  .doc h3{font-family:'Barlow Condensed'; font-weight:700; font-size:20px; margin:20px 0 6px; color:var(--accent)}
  .doc p{font-size:15px; line-height:1.55; margin-bottom:8px; color:var(--ink)}
  .doc .lead{font-size:15.5px; color:var(--ink2); line-height:1.55; margin-bottom:6px}
  .doc .ver{font-size:12.5px; color:var(--ink2); margin-bottom:14px}
  .backbtn{font-size:14px; font-weight:600; color:var(--accent); padding:6px 0; margin-bottom:4px}
  .noti{padding:13px 14px; border-bottom:1px solid var(--line)}
  .noti:last-child{border-bottom:none}
  .noti.unread{background:var(--accent-soft)}
  .noti .nt{font-weight:700; font-size:15.5px}
  .noti .nb{font-size:14px; color:var(--ink2); line-height:1.5; margin-top:3px; white-space:pre-line}
  .noti .nm{font-size:11.5px; color:var(--ink2); margin-top:5px}
