/* カバー＋アイコン */
  .cover{height:132px;position:relative;background:linear-gradient(150deg,#232338,#16161F);overflow:hidden}
  .cover .glow{position:absolute;inset:-30% -20% auto -20%;height:150%;background:radial-gradient(50% 80% at 50% 0%,var(--oshi),transparent 70%);opacity:.55}
  .cover .edit{position:absolute;top:12px;right:14px;background:#ffffff22;border:1px solid #ffffff33;color:#fff;border-radius:999px;padding:7px 13px;font-size:12px;font-weight:700;cursor:pointer;backdrop-filter:blur(4px)}
  .phead{padding:0 18px;margin-top:-40px;position:relative}
  .avatar{width:84px;height:84px;border-radius:26px;background:linear-gradient(145deg,var(--oshi),#16161F);border:4px solid var(--bg);
          display:grid;place-items:center;color:#fff;font-family:"Zen Kaku Gothic New";font-weight:900;font-size:30px;box-shadow:var(--shadow-sm)}
  .pname{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:21px;margin-top:10px}
  .phandle{font-family:var(--mono);font-size:12px;color:var(--ink-2)}
  .pmeta{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
  .pill{font-size:11px;font-weight:700;padding:5px 11px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--ink-2)}
  .pill.accent{background:var(--oshi-soft);color:var(--oshi);border-color:transparent}
  .bio{font-size:13px;color:var(--ink-2);margin-top:12px;line-height:1.7}

/* 推し登録 */
  .oshi-list{display:flex;flex-direction:column;gap:10px}
  .orow{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;box-shadow:var(--shadow-sm)}
  .orow .oc{width:12px;height:12px;border-radius:4px;flex:0 0 auto}
  .orow .oi{flex:1;min-width:0}
  .orow .oi .n{font-weight:700;font-size:14px}
  .orow .oi .m{font-size:11px;color:var(--ink-2)}
  .orow .since{font-family:var(--mono);font-size:11px;color:var(--ink-2);text-align:right}
  .orow .since b{display:block;font-size:15px;font-weight:700;color:var(--oshi)}

  /* 主要数字ストリップ（スリム化した集計） */
  .qstats{display:flex;gap:22px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
  .q .n{font-family:var(--mono);font-weight:700;font-size:20px;line-height:1}
  .q .l{font-size:10px;color:var(--ink-2);margin-top:4px;font-weight:700}

  .rank{display:block;width:100%;text-align:left;background:linear-gradient(150deg,#232338,#16161F);border:none;border-radius:var(--radius);padding:18px;color:#fff;position:relative;overflow:hidden;box-shadow:var(--shadow);cursor:pointer}
  .rank .glow{position:absolute;inset:auto -20% -60% -20%;height:80%;background:radial-gradient(50% 100% at 50% 0,var(--oshi),transparent 70%);opacity:.5}
  .rank .rt{display:flex;align-items:center;gap:12px;position:relative}
  .rank .medal{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,var(--oshi),#16161F);flex:0 0 auto}
  .rank .medal svg{width:22px;height:22px;color:#fff}
  .rank .tier{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:19px}
  .rank .sub{font-size:11px;color:#C9C8E0}
  .rank .chev{margin-left:auto;color:#8686A6}.rank .chev svg{width:20px;height:20px}
  .rank .bar{height:6px;border-radius:6px;background:#ffffff22;margin-top:14px;overflow:hidden;position:relative}
  .rank .bar>i{display:block;height:100%;background:var(--oshi);border-radius:6px}
  .rank .nx{font-family:var(--mono);font-size:11px;color:#C9C8E0;margin-top:9px;position:relative}

  /* ランクテーブル モーダル */
  .sheet-wrap{position:fixed;inset:0;z-index:60;display:none}.sheet-wrap.open{display:block}
  .sheet-bg{position:absolute;inset:0;background:rgba(22,22,31,.5);backdrop-filter:blur(2px)}
  .sheet{position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:440px;max-height:88vh;overflow-y:auto;background:var(--bg);border-radius:24px 24px 0 0;animation:up .28s cubic-bezier(.2,.9,.3,1);padding:20px 18px 26px}
  @keyframes up{from{transform:translate(-50%,100%)}to{transform:translate(-50%,0)}}
  @media (min-width:900px){
    .sheet-wrap.open{display:flex;align-items:center;justify-content:center}
    .sheet{position:relative;left:auto;bottom:auto;transform:none;max-width:520px;max-height:86vh;border-radius:22px;animation:pop .2s ease}
    @keyframes pop{from{transform:scale(.96);opacity:.4}to{transform:scale(1);opacity:1}}
  }
  .sheet .sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
  .sheet .sh h3{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:18px}
  .sheet .sh .close{width:34px;height:34px;border-radius:50%;background:var(--card);border:1px solid var(--line);cursor:pointer;display:grid;place-items:center}
  .sheet .sh .close svg{width:18px;height:18px}
  .sheet .subttl{font-size:12px;color:var(--ink-2);margin-bottom:14px}
  .rk{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:8px}
  .rk.cur{border-color:transparent;box-shadow:0 0 0 2px var(--oshi),var(--shadow-sm)}
  .rk.locked{opacity:.55}
  .rk .lv{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--ink-3);width:22px;text-align:center;flex:0 0 auto}
  .rk .nm{flex:1;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:14px}
  .rk .exp{font-family:var(--mono);font-size:11px;color:var(--ink-2)}
  .rk .mk{font-size:10px;font-weight:700;padding:4px 9px;border-radius:999px;flex:0 0 auto}
  .rk .mk.now{background:var(--oshi);color:#fff}
  .rk .mk.done{background:#1E9E6318;color:#1E9E63}
  

  /* 集計グリッド（旧・未使用） */

  /* バッジ棚 */
  .badges{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
  .bd{text-align:center}
  .bd .disc{width:56px;height:56px;margin:0 auto;border-radius:50%;display:grid;place-items:center;
            background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);position:relative}
  .bd.on .disc{background:linear-gradient(145deg,var(--oshi),#16161F);border-color:transparent}
  .bd .disc svg{width:24px;height:24px;color:var(--ink-3)}
  .bd.on .disc svg{color:#fff}
  .bd.on .disc::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--oshi);opacity:.5}
  .bd .bl{font-size:10px;font-weight:700;color:var(--ink-2);margin-top:7px;line-height:1.3}
  .bd.off .bl{color:var(--ink-3)}

  /* タブ */
  .ptabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-top:6px}.ptabs::-webkit-scrollbar{display:none}
  .ptab{flex:0 0 auto;font-size:12px;font-weight:700;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer}
  .ptab[aria-current="true"]{background:var(--ink);color:#fff;border-color:transparent}
  .tabhint{font-size:12px;color:var(--ink-3);text-align:center;padding:22px 0}
