/*!
 * JAM'S FANDOM Schedule — 共通（カテゴリ色・詳細パネル）
 * すべて .jfs（/schedule/）/ .jft（新TOP）/ .jfw（ウィジェット）/ .jf-sheet（詳細パネル）の中だけに効かせる。
 */
.jfs,.jft,.jfw,.jf-sheet{
  --c-live:#c2a500; --c-live-bg:#f7f0c4; --c-live-ink:#6b5b00;
  --c-release:#58ca07; --c-release-bg:#e0f7cc; --c-release-ink:#2b6a03;
  --c-stream:#be8ef8; --c-stream-bg:#ece1ff; --c-stream-ink:#5f34ad;
  --c-media:#31c9ba; --c-media-bg:#d3f4f0; --c-media-ink:#0e6a61;
  --c-magazine:#54adff; --c-magazine-bg:#dcecff; --c-magazine-ink:#1d5ea8;
  --c-goods:#ff9f1c; --c-goods-bg:#ffedd2; --c-goods-ink:#8a4b00;
  --c-entry:#f0567f; --c-entry-bg:#fde0e8; --c-entry-ink:#9c1d45;
  --jf-jp:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
  --jf-en:"Plus Jakarta Sans","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
}
:where(.jfs,.jft,.jfw,.jf-sheet) .cat-live{--c:var(--c-live);--c-bg:var(--c-live-bg);--c-ink:var(--c-live-ink)}
:where(.jfs,.jft,.jfw,.jf-sheet) .cat-release{--c:var(--c-release);--c-bg:var(--c-release-bg);--c-ink:var(--c-release-ink)}
:where(.jfs,.jft,.jfw,.jf-sheet) .cat-stream{--c:var(--c-stream);--c-bg:var(--c-stream-bg);--c-ink:var(--c-stream-ink)}
:where(.jfs,.jft,.jfw,.jf-sheet) .cat-media{--c:var(--c-media);--c-bg:var(--c-media-bg);--c-ink:var(--c-media-ink)}
:where(.jfs,.jft,.jfw,.jf-sheet) .cat-magazine{--c:var(--c-magazine);--c-bg:var(--c-magazine-bg);--c-ink:var(--c-magazine-ink)}
:where(.jfs,.jft,.jfw,.jf-sheet) .cat-goods{--c:var(--c-goods);--c-bg:var(--c-goods-bg);--c-ink:var(--c-goods-ink)}
:where(.jfs,.jft,.jfw,.jf-sheet) .cat-entry{--c:var(--c-entry);--c-bg:var(--c-entry-bg);--c-ink:var(--c-entry-ink)}
.jfs [hidden],.jft [hidden],.jfw [hidden],.jf-sheet[hidden],.jf-sheet-bd[hidden],.jf-sheet [hidden]{display:none!important}

/* ---------------- 詳細パネル（スマホは下から、PCは中央） ---------------- */
html.jf-sheet-open,html.jf-sheet-open body{overflow:hidden}
.jf-sheet-bd{position:fixed;inset:0;background:rgba(0,20,19,.5);z-index:100000;animation:jf-fade .18s ease-out}
.jf-sheet{
  --ink:#002928; --ink-2:#3d5a55; --ink-3:#7d948e; --line:#dde4d6; --line-strong:#b9c4b0; --surface:#fff; --surface-2:#eef2e6; --ground:#f3f6ee;
  --btn-bg:#002928; --btn-ink:#e2ff91; --sun:#c4083a; --sat:#2f6fd1; --today:#002928; --today-ink:#e2ff91;
  position:fixed;inset:0;z-index:100001;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;
  font-family:var(--jf-jp);font-size:15px;line-height:1.6;color:var(--ink);text-align:left;-webkit-font-smoothing:antialiased
}
.jf-sheet *,.jf-sheet *::before,.jf-sheet *::after{box-sizing:border-box}
.jf-sheet .jf-sheet-in{pointer-events:auto;position:relative;width:100%;max-width:560px;background:var(--surface);border-radius:18px 18px 0 0;box-shadow:0 14px 40px rgba(0,41,40,.16);padding:14px 20px calc(24px + env(safe-area-inset-bottom,0px));max-height:85vh;overflow:auto;overscroll-behavior:contain;animation:jf-up .22s ease-out;outline:0}
.jf-sheet .grab{width:38px;height:4px;border-radius:2px;background:var(--line-strong);margin:0 auto 12px}
.jf-sheet button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-transform:none;letter-spacing:inherit;box-shadow:none;min-height:0;width:auto}
.jf-sheet .jf-sheet-close{position:absolute;right:12px;top:10px;width:44px;height:44px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-size:16px;line-height:1;color:var(--ink)}
.jf-sheet .cats{display:flex;flex-wrap:wrap;gap:6px;padding-right:44px}
.jf-sheet .cat{display:inline-flex;align-items:center;gap:6px;font-family:var(--jf-en);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--c-ink);background:var(--c-bg);padding:5px 10px 5px 8px;border-radius:999px;line-height:1.3}
.jf-sheet .cat .dot{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none;display:inline-block}
.jf-sheet .cat-jp{font-family:var(--jf-jp);letter-spacing:0;text-transform:none;font-size:11px;margin-left:2px}
.jf-sheet .cat.fcp{font-family:var(--jf-jp);letter-spacing:0;text-transform:none;font-size:11px;background:var(--btn-bg);color:var(--btn-ink)}
.jf-sheet h2.ttl{margin:10px 0 4px;padding:0;border:0;background:none;font-size:18px;line-height:1.4;font-weight:700;color:var(--ink);text-wrap:balance}
.jf-sheet h2.ttl::before,.jf-sheet h2.ttl::after{content:none}
.jf-sheet .series{font-size:12px;color:var(--ink-3);margin:0 0 6px}
.jf-sheet dl{margin:12px 0 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;font-size:13.5px}
.jf-sheet dt{font-family:var(--jf-en);color:var(--ink-3);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding-top:4px;margin:0}
.jf-sheet dd{margin:0;font-variant-numeric:tabular-nums}
.jf-sheet .due-wrap{margin-left:6px}
.jf-sheet .note{font-size:13px;color:var(--ink-2);margin:12px 0 0;line-height:1.7}
.jf-sheet .links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.jf-sheet .links a{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;text-decoration:none;font-size:13px;font-weight:700;padding:9px 16px;border-radius:999px;border:1px solid var(--line-strong);color:var(--ink);background:var(--surface)}
.jf-sheet .links a.primary{background:var(--btn-bg);color:var(--btn-ink);border-color:transparent}
.jf-sheet .links a:hover{background:var(--surface-2)}
.jf-sheet .links a.primary:hover{filter:brightness(1.15);background:var(--btn-bg)}
.jf-sheet .links button.listen{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:9px 18px;border-radius:999px;border:1px solid var(--btn-bg);background:#e2ff91;color:#002928;font-size:13px;font-weight:800;cursor:pointer}
.jf-sheet .links button.listen:hover{filter:brightness(.96)}
.jf-sheet .fc{display:inline-block;font-family:var(--jf-en);font-size:9px;font-weight:800;letter-spacing:.08em;line-height:1;padding:3px 5px;border-radius:4px;background:var(--btn-bg);color:var(--btn-ink);vertical-align:1px;margin-left:5px}
.jf-sheet .due{display:inline-flex;align-items:center;font-family:var(--jf-en);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}
.jf-sheet .due.hot{background:var(--sun);color:#fff}
.jf-sheet .due.ended{opacity:.55}
.jf-sheet .due.tbd{background:transparent;border:1px dashed var(--line-strong);color:var(--ink-3);font-family:var(--jf-jp);font-weight:700}
.jf-sheet .back{font-size:12.5px;color:var(--ink-3);margin-bottom:6px;display:inline-flex;gap:4px;align-items:center;min-height:36px}
@media (max-width:639px){.jf-sheet .links a,.jf-sheet .links button.listen{flex:1 1 auto}}
@media (min-width:640px){
  .jf-sheet{align-items:center;padding:24px}
  .jf-sheet .jf-sheet-in{border-radius:18px;max-height:min(82vh,720px);padding-bottom:24px}
  .jf-sheet .grab{display:none}
}
@keyframes jf-up{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@keyframes jf-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.jf-sheet .jf-sheet-in,.jf-sheet-bd{animation:none}}
