  .scorebar{ display:block; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px 16px; margin:0 0 12px; }
  .scorebar.mastered{ opacity:.75; }
  .sbc{ display:inline-block; min-width:92px; margin-right:18px; vertical-align:top; cursor:pointer; }
  .sbk{ font-size:10px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink2); font-weight:700; }
  .sbv{ font-size:18px; font-weight:700; font-variant-numeric:tabular-nums; line-height:1.35; }
  .sbs{ font-size:10px; color:var(--ink2); font-weight:600; margin-top:1px; }
  .sbm{ display:block; font-size:11.5px; color:var(--ink2); border-top:1px solid var(--line); padding-top:8px; margin-top:8px; }
  .gqrow{ display:flex; align-items:center; gap:10px; padding:5px 0; }
  .gqname{ width:56px; font-size:12.5px; font-weight:600; }
  .gqtrack{ flex:1; height:8px; border-radius:5px; background:var(--paper2); overflow:hidden; }
  .gqfill{ height:100%; border-radius:5px; transition:width .3s; }
  .gqval{ width:36px; text-align:right; font-size:12px; font-variant-numeric:tabular-nums; color:var(--ink2); }
  .gmults{ display:flex; gap:12px; flex-wrap:wrap; margin-top:10px; font-size:12px; font-weight:700; color:var(--ink2); font-variant-numeric:tabular-nums; }
  .glog{ max-height:260px; overflow-y:auto; }
  .gev{ display:flex; gap:10px; padding:4px 0; font-size:12.5px; border-bottom:1px solid var(--line); }
  .gev:last-child{ border-bottom:none; }
  .gev .gd{ color:var(--ink2); min-width:34px; text-align:right; font-variant-numeric:tabular-nums; }
  #gtoasts{ position:fixed; top:14px; left:50%; transform:translateX(-50%); z-index:120; display:flex; flex-direction:column; gap:8px; width:min(360px,calc(100vw - 32px)); pointer-events:none; }
  .gtoast{ pointer-events:auto; background:var(--card); border:1px solid var(--line); border-left:4px solid var(--ink); border-radius:10px; padding:9px 13px; box-shadow:0 6px 24px rgba(30,26,20,.12); cursor:pointer; animation:gtin .3s ease; }
  @keyframes gtin{ from{ opacity:0; transform:translateY(-8px); } to{ opacity:1; transform:none; } }
  .gtoast.out{ opacity:0; transition:opacity .3s; }
  .gtt{ font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:var(--ink2); }
  .gtn{ font-size:13.5px; font-weight:700; margin-top:1px; }
  .glock{ opacity:.4; pointer-events:none; }
  .glocknote{ font-size:11px; color:var(--ink2); margin-top:4px; font-weight:600; text-transform:none; letter-spacing:0; }
  .agrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(152px,1fr)); gap:10px; }
  .atile{ border:1px solid var(--line); border-radius:10px; padding:9px 10px 18px; background:var(--card); position:relative; min-height:88px; }
  .atile.locked{ opacity:.48; border-style:dashed; }
  .atile.on{ box-shadow:0 1px 6px rgba(30,26,20,.06); }
  .aname{ font-size:12.5px; font-weight:700; line-height:1.25; }
  .acrit{ font-size:10.5px; color:var(--ink2); margin-top:3px; line-height:1.35; }
  .aflav{ font-size:10.5px; font-style:italic; color:var(--ink2); margin-top:4px; }
  .abar{ height:4px; background:var(--paper2); border-radius:2px; margin-top:7px; overflow:hidden; }
  .abar i{ display:block; height:100%; border-radius:2px; background:var(--ink); }
  .aprog{ font-size:9.5px; color:var(--ink2); margin-top:3px; font-variant-numeric:tabular-nums; }
  .aday{ position:absolute; bottom:5px; right:8px; font-size:10px; color:var(--ink2); font-weight:700; }
  .capprompt{ margin-top:10px; border-style:dashed; color:var(--ink2); font-weight:600; }
  .gate-pop{ animation:gatepop .45s ease; }
  @keyframes gatepop{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
