/* ============================================================
 * はてなの真戦攻略Wiki — wiki.css
 * Phase 1 v3.1 — モックアップ(wiki_top_mockup.html)から抽出+拡張
 * ============================================================ */

:root{
  --sumi:#1d1813;        /* 墨 本文 */
  --lacquer:#231b14;     /* 漆 ヘッダー/ナビ */
  --lacquer-2:#2e251c;
  --washi:#f3ede0;       /* 和紙 ページ地 */
  --panel:#fbf8f1;       /* パネル地 */
  --shu:#bb3526;         /* 朱 アクセント / Tier0 */
  --shu-deep:#9a2618;
  --shu-soft:#e07a5f;
  --kin:#b1863a;         /* 金 シーズン/Tier1 */
  --kin-soft:#c9a866;
  --nibi:#6e6256;        /* 鈍色 補助文字/罫 */
  --line:rgba(29,24,19,.12);
  --line-strong:rgba(29,24,19,.22);
  --t2:#4f463b;
  --t3:#9a9183;
  --shadow:0 1px 0 rgba(29,24,19,.04), 0 8px 24px -16px rgba(29,24,19,.4);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--washi);color:var(--sumi);
  font-family:"Noto Sans JP",system-ui,sans-serif;font-weight:400;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 18px}

/* ============================================================
 * 広告枠 (Phase 1.5 B-6)
 * ============================================================ */
.ad{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.ad-placeholder{border:1px dashed var(--line-strong);border-radius:3px;background:repeating-linear-gradient(45deg,#f0e9da,#f0e9da 8px,#ece4d2 8px,#ece4d2 16px);color:var(--nibi)}
.ad-placeholder .l{font-size:10px;letter-spacing:.12em;font-weight:700;color:#9a8b73}
.ad-placeholder .s{font-size:10px;color:#b0a48f}
.ad-side-top,.ad-side-bottom{height:260px;width:100%}
.ad-main-inline{height:96px;margin:18px 0}
.ad-main-postdata{height:96px;margin:18px 0}

/* ============================================================
 * 2カラムレイアウト (Phase 1.5)
 * ============================================================ */
.wrap.layout{display:grid;grid-template-columns:288px minmax(0,1fr);gap:22px;padding:18px 18px 40px;align-items:start}
.main{min-width:0}
.side{min-width:0}
.side-inner{position:sticky;top:60px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 80px);overflow-y:auto}
/* スリムなスクロールバー (Webkit) */
.side-inner::-webkit-scrollbar{width:6px}
.side-inner::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}

/* ☰ 索引ボタン (モバイル時のみ表示) */
.burger{display:none;margin-left:8px;background:transparent;border:1px solid #4a3d2e;color:#efe7d8;border-radius:3px;padding:6px 10px;font-size:13px;font-family:inherit;cursor:pointer}
.burger:hover{background:#15100b}

/* ============================================================
 * サイドメニュー（索引・おすすめ記事）
 * ============================================================ */
.idx{background:var(--panel);border:1px solid var(--line);border-radius:3px;overflow:hidden;font-family:"Noto Sans JP",system-ui,sans-serif}
.idx h3{margin:0;font-family:"Shippori Mincho",serif;font-size:13px;font-weight:700;color:#fff;background:var(--lacquer-2);padding:9px 13px;display:flex;align-items:center;gap:7px}
.idx h3 .b{width:3px;height:13px;background:var(--shu);border-radius:2px;display:inline-block}
.idx h3 .b.alt{background:var(--kin)}
.idx .grp{border-top:1px solid var(--line);padding:9px 13px}
.idx .grp:first-of-type{border-top:0}
.idx .gl{font-size:11px;font-weight:700;color:var(--nibi);letter-spacing:.04em;margin-bottom:6px}

/* 五十音グリッド */
.idx .kana{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.idx .kana a{text-align:center;font-family:"Shippori Mincho",serif;font-weight:700;font-size:14px;border:1px solid var(--line-strong);background:#fff;border-radius:2px;padding:6px 0;color:var(--t2);transition:border-color .12s,background .12s,color .12s}
.idx .kana a:hover{border-color:var(--shu);color:#fff;background:var(--shu)}
.idx .kana a.empty{color:var(--t3);background:#f5f0e2;cursor:default}
.idx .kana a.empty:hover{border-color:var(--line-strong);background:#f5f0e2;color:var(--t3)}
.idx .kana a.all2{grid-column:1/-1;font-family:"Noto Sans JP",system-ui,sans-serif;font-size:11.5px;font-weight:700;color:var(--shu);border-style:dashed;padding:5px 0}
.idx .kana a.all2:hover{background:#fff8f6;color:var(--shu);border-color:var(--shu)}

/* リンクリスト (タグ風) */
.idx .links{display:flex;flex-wrap:wrap;gap:5px}
.idx .links a{font-size:12px;border:1px solid var(--line-strong);background:#fff;border-radius:2px;padding:3px 8px;color:var(--t2)}
.idx .links a:hover{border-color:var(--shu);color:var(--shu)}
.idx .links a.cur{background:var(--shu);color:#fff;border-color:var(--shu-deep)}

/* リンクリスト (縦並び・矢印付) */
.idx .links.col{flex-direction:column;gap:0}
.idx .links.col a{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:7px 2px;font-size:12.5px;font-weight:500;background:transparent;display:flex;align-items:flex-start;gap:6px;line-height:1.4}
.idx .links.col a:last-child{border-bottom:0}
.idx .links.col a::before{content:"›";color:var(--shu);font-weight:700;flex-shrink:0}
.idx .links.col a:hover{color:var(--shu);background:#fff8f6}

/* タブレット (980px以下) はサイドを本文下に */
@media(max-width:980px){
  .wrap.layout{grid-template-columns:1fr;padding:14px 14px 28px}
  .side-inner{position:static;max-height:none;overflow:visible}
  .side{order:2}
  .main{order:1}
}

/* モバイル (760px以下) はサイドを☰ボタン開閉 */
@media(max-width:760px){
  .search{display:none}
  .burger{display:block}
  .side{display:none;margin-top:14px}
  .side.open{display:block}
}

/* ───── 漆ヘッダー ───── */
.topbar{background:var(--lacquer);color:#efe7d8;border-bottom:2px solid var(--shu)}
.topbar .wrap{display:flex;align-items:center;gap:18px;height:60px}
.brand{display:flex;align-items:baseline;gap:8px;white-space:nowrap;flex-wrap:wrap}
.brand .hatena{font-family:"Shippori Mincho",serif;font-size:13px;color:var(--kin-soft);letter-spacing:.04em;font-weight:600}
.brand .mark{font-family:"Yuji Syuku",serif;font-size:26px;color:#fff;letter-spacing:.04em}
.brand .mark .shu{color:var(--shu-soft)}
.brand .sub{font-size:11px;color:var(--kin-soft);letter-spacing:.18em}
@media(max-width:520px){
  .brand .hatena{font-size:11px}
  .brand .mark{font-size:21px}
  .brand .sub{display:none}
}
.search{margin-left:auto;display:flex;align-items:center;background:#15100b;border:1px solid #3a2f23;border-radius:2px;padding:6px 10px;min-width:180px;position:relative}
.search input{background:transparent;border:0;color:#efe7d8;font-size:13px;width:100%;outline:none;font-family:inherit}
.search input::placeholder{color:#7c6f5e}
.search .ic{color:#7c6f5e;margin-right:7px;font-size:13px}
.search-results{position:absolute;top:100%;left:0;right:0;background:#fff;color:var(--sumi);box-shadow:var(--shadow);border:1px solid var(--line-strong);max-height:300px;overflow-y:auto;display:none;z-index:50}
.search-results.on{display:block}
.search-results a{display:block;padding:8px 12px;font-size:13px;border-bottom:1px solid var(--line);font-family:"Noto Sans JP",system-ui,sans-serif}
.search-results a:hover{background:#fdf6ec}
.search-results .ty{font-size:10px;color:var(--nibi);margin-right:6px;display:inline-block;background:#efe7d6;padding:1px 5px;border-radius:2px}

/* 薄いグローバルナビ */
.gnav{background:var(--lacquer-2);border-bottom:1px solid #3a2f23;position:sticky;top:0;z-index:30}
.gnav .wrap{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.gnav .wrap::-webkit-scrollbar{display:none}
.gnav a{color:#d8cdb9;font-size:13px;font-weight:500;padding:12px 14px;white-space:nowrap;border-bottom:2px solid transparent}
.gnav a:hover{color:#fff;border-bottom-color:var(--kin)}
.gnav a.on{color:#fff;border-bottom-color:var(--shu)}

/* ───── ヒーロー：シーズンセレクタ ───── */
.hero{padding:26px 0 8px}
.thesis{font-family:"Shippori Mincho",serif;font-weight:700;font-size:clamp(20px,3.4vw,30px);line-height:1.4;letter-spacing:.01em;margin:0}
.thesis .em{color:var(--shu);border-bottom:3px solid var(--kin-soft);padding-bottom:1px}
.thesis-sub{color:var(--nibi);font-size:13.5px;margin-top:8px;max-width:680px}

.seasonpick{margin-top:20px}
.seasonpick .lab{font-size:11px;letter-spacing:.16em;color:var(--nibi);font-weight:700;margin-bottom:8px}
.tabs{display:flex;gap:8px;flex-wrap:wrap}
.stab{
  appearance:none;cursor:pointer;font-family:"Shippori Mincho",serif;font-weight:700;
  background:var(--panel);color:var(--t2);border:1px solid var(--line-strong);
  border-radius:3px;padding:9px 16px 8px;font-size:15px;line-height:1.2;position:relative;
  transition:transform .12s ease, background .12s, color .12s, border-color .12s;
}
.stab .n{font-size:11px;display:block;color:var(--nibi);font-family:"Noto Sans JP";font-weight:500;letter-spacing:.04em}
.stab:hover{transform:translateY(-1px)}
.stab.on{background:var(--shu);color:#fff;border-color:var(--shu-deep);box-shadow:var(--shadow)}
.stab.on .n{color:#f3d9cf}
.stab.cur::after{content:"現行";position:absolute;top:-8px;right:-6px;background:var(--kin);color:#1d1813;font-size:9px;font-weight:700;padding:1px 5px;border-radius:2px;letter-spacing:.04em}

/* ───── Tier盤 ───── */
.board{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--shu);border-radius:3px;box-shadow:var(--shadow);margin-top:18px;overflow:hidden}
.board-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.board-head h2{font-family:"Shippori Mincho",serif;font-size:18px;margin:0;font-weight:700}
.board-head .env{font-size:12.5px;color:var(--nibi);flex:1;min-width:200px}
.board-head .upd{font-size:11px;color:var(--t3)}
.tier-row{display:flex;align-items:flex-start;gap:0;border-bottom:1px solid var(--line)}
.tier-row:last-child{border-bottom:0}
.tier-tag{flex:0 0 76px;align-self:stretch;display:flex;align-items:center;justify-content:center;font-family:"Shippori Mincho",serif;font-weight:800;font-size:19px;color:#fff;letter-spacing:.02em}
.t-0{background:var(--shu)}.t-1{background:var(--kin)}.t-2{background:#6e6256}.t-3{background:#a99e8d}.t-4{background:#c4baa9}
.chips{flex:1;display:flex;flex-wrap:wrap;gap:6px;padding:11px 14px}
.chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line-strong);border-radius:2px;padding:4px 9px 4px 5px;font-size:13px;font-weight:500;transition:border-color .12s,background .12s}
.chip:hover{border-color:var(--shu);background:#fff8f6}
.chip .ava{width:22px;height:22px;border-radius:2px;background:linear-gradient(135deg,#cdbfa6,#9c8e74);display:flex;align-items:center;justify-content:center;flex:0 0 22px;font-size:10px;color:#3a3122;font-weight:700;overflow:hidden}
.chip .ava img{width:100%;height:100%;object-fit:cover;display:block}
.chip .fac{font-size:10px;color:var(--nibi)}
.more{align-self:center;font-size:12px;color:var(--shu);font-weight:700;padding:4px 6px}
.board-empty{padding:30px 18px;text-align:center;color:var(--nibi);font-size:13.5px}
.board-empty b{color:var(--t2)}
.note{font-size:11px;color:var(--t3);margin:8px 2px 0}

/* ───── セクション共通 ───── */
section.blk{padding:30px 0 4px}
.blk-h{display:flex;align-items:center;gap:10px;margin:0 0 14px}
.blk-h h2{font-family:"Shippori Mincho",serif;font-size:20px;margin:0;font-weight:700}
.blk-h .bar{width:4px;height:20px;background:var(--shu);border-radius:2px}
.blk-h .all{margin-left:auto;font-size:12px;color:var(--shu);font-weight:700}

/* 攻略メニュー */
.hub{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.hub a{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:16px 10px;text-align:center;transition:transform .12s,border-color .12s,box-shadow .12s}
.hub a:hover{transform:translateY(-2px);border-color:var(--kin);box-shadow:var(--shadow)}
.hub .ic{font-size:22px;display:block;margin-bottom:7px}
.hub .tt{font-weight:700;font-size:13.5px}
.hub .ds{font-size:11px;color:var(--nibi);margin-top:2px;display:block}

/* ファセット盤 */
.facet{background:var(--panel);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.facet-row{display:flex;border-bottom:1px solid var(--line)}
.facet-row:last-child{border-bottom:0}
.facet-row .axis{flex:0 0 96px;background:#efe7d6;border-right:1px solid var(--line);font-size:12px;font-weight:700;color:var(--t2);display:flex;align-items:center;padding:0 12px}
.facet-row .opts{flex:1;display:flex;flex-wrap:wrap;gap:6px;padding:9px 12px}
.facet-row .opts a, .facet-row .opts button{
  appearance:none;cursor:pointer;font-family:inherit;
  font-size:12.5px;border:1px solid var(--line-strong);border-radius:2px;padding:3px 9px;background:#fff;color:var(--t2);font-weight:500;
}
.facet-row .opts a:hover, .facet-row .opts button:hover{border-color:var(--shu);color:var(--shu)}
.facet-row .opts a.on, .facet-row .opts button.on{background:var(--shu);color:#fff;border-color:var(--shu-deep)}
.facet-clear{margin-left:auto;font-size:11px;color:var(--shu);font-weight:700;padding:3px 6px}

/* 武将一覧グリッド */
.roster{display:grid;grid-template-columns:repeat(8,1fr);gap:7px;margin-top:14px}
.ge{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.ge .av{width:100%;aspect-ratio:1;border-radius:3px;background:linear-gradient(135deg,#cdbfa6,#94866c);position:relative;display:flex;align-items:center;justify-content:center;color:#33291a;font-size:11px;font-weight:700;overflow:hidden}
.ge .av img{width:100%;height:100%;object-fit:cover}
.ge .av .tr{position:absolute;top:2px;left:2px;font-size:8px;font-weight:800;color:#fff;background:var(--shu);padding:0 3px;border-radius:1px;z-index:2}
.ge .av .tr.k{background:var(--kin)}
.ge .av .tr.n{background:var(--nibi)}
.ge .nm{font-size:10.5px;line-height:1.2;color:var(--t2)}
.roster-stats{font-size:11px;color:var(--nibi);margin:6px 0 -4px;font-weight:500}

/* 送客カード */
.feed{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fcard{display:flex;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:12px;transition:border-color .12s,box-shadow .12s}
.fcard:hover{border-color:var(--shu);box-shadow:var(--shadow)}
.fcard.is-current{border-left:3px solid var(--shu)}
.fcard .th{flex:0 0 96px;height:60px;border-radius:2px;background:linear-gradient(135deg,#3a2f23,#5d4a35);position:relative}
.fcard .th .pl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#e8dcc6;font-size:11px;font-weight:700;letter-spacing:.08em}
.fcard .th .badge-cur{position:absolute;top:4px;left:4px;background:var(--kin);color:#1d1813;font-size:9px;font-weight:700;padding:1px 5px;border-radius:2px;letter-spacing:.04em}
.fcard .meta .k{font-size:10px;font-weight:700;color:var(--shu);letter-spacing:.06em}
.fcard .meta .ti{font-size:13.5px;font-weight:700;line-height:1.4;margin-top:3px}
.fcard .meta .dt{font-size:11px;color:var(--t3);margin-top:4px}

/* ───── シーズンカテゴリ送客カード (階層1) ───── */
.season-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.season-cat{display:block;background:var(--panel);border:1px solid var(--line-strong);border-radius:3px;padding:14px 16px;color:inherit;text-decoration:none;transition:border-color .12s,box-shadow .12s,transform .12s}
.season-cat:hover{border-color:var(--shu);box-shadow:var(--shadow);transform:translateY(-1px)}
.season-cat.is-current{background:linear-gradient(135deg,#fff8f6 0%,var(--panel) 100%);border-left:3px solid var(--shu)}
.season-cat__head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.season-cat__head .cat-id{font-family:"Shippori Mincho",serif;font-size:22px;font-weight:800;color:var(--shu);line-height:1}
.season-cat__head .cat-badge{background:var(--kin);color:#1d1813;font-size:9px;font-weight:700;padding:1px 5px;border-radius:2px;letter-spacing:.04em}
.season-cat__title{font-size:13.5px;font-weight:700;color:var(--t2);margin-bottom:4px}
.season-cat__count{font-size:11px;color:var(--nibi)}
.season-cat--featured{padding:18px 22px}
.season-cat--featured .cat-id{font-size:28px}
.season-cat--featured .season-cat__title{font-size:15px;font-weight:700}
.season-cat--featured .season-cat__count{font-size:12.5px;color:var(--shu);font-weight:600;margin-top:4px}

/* ───── 武将個別ページ拡張 ───── */
.entity-head{padding:24px 0 12px;border-bottom:1px solid var(--line);margin-bottom:18px}
.entity-head .crumb{font-size:11px;color:var(--nibi);margin-bottom:8px}
.entity-head .crumb a{color:var(--shu);font-weight:600}
.entity-head h1{font-family:"Shippori Mincho",serif;font-size:clamp(24px,3.6vw,32px);margin:0 0 6px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.entity-head h1 .kana{font-size:13px;color:var(--nibi);font-weight:500;letter-spacing:.04em}
.entity-head .badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.badge{display:inline-block;padding:2px 8px;border-radius:2px;font-size:11.5px;font-weight:600;line-height:1.5;background:var(--panel);border:1px solid var(--line-strong);color:var(--t2)}
.badge.rare{background:#fdf2c5;border-color:var(--kin);color:#5a4513}
.badge.faction{background:#e9efd9;border-color:#a3b378;color:#4a5a26}
.badge.tier0{background:var(--shu);color:#fff;border-color:var(--shu-deep)}
.badge.tier1{background:var(--kin);color:#1d1813;border-color:#8a6722}
.badge.tier2{background:#6e6256;color:#fff;border-color:#544a42}
.badge.tier3{background:#a99e8d;color:#fff}
.badge.tier4{background:#c4baa9;color:#fff}

.entity-grid{display:grid;grid-template-columns:280px 1fr;gap:24px;margin-bottom:24px}
.entity-portrait{background:var(--panel);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.entity-portrait img{width:100%;display:block;height:auto;background:linear-gradient(135deg,#cdbfa6,#94866c)}
.entity-portrait .placeholder{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#cdbfa6,#94866c);color:#33291a;font-family:"Shippori Mincho",serif;font-size:48px;font-weight:800}
.entity-portrait .caption{padding:8px 12px;font-size:11px;color:var(--nibi);text-align:center;border-top:1px solid var(--line)}
.entity-side{display:flex;flex-direction:column;gap:18px}

/* 属性レーダー (SVG) */
.stat-radar{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:14px}
.stat-radar h3{margin:0 0 8px;font-family:"Shippori Mincho",serif;font-size:14px;font-weight:700}
.stat-radar svg{display:block;margin:0 auto;max-width:260px}
.stat-radar .lab{font-size:10.5px;fill:var(--t2)}
.stat-radar .val{font-size:11px;fill:var(--shu);font-weight:700}
.stat-radar .axis{stroke:var(--line-strong);stroke-width:1}
.stat-radar .outline{fill:rgba(187,53,38,.15);stroke:var(--shu);stroke-width:1.5}
.stat-radar .table{width:100%;border-collapse:collapse;margin-top:10px;font-size:12px}
.stat-radar .table th,.stat-radar .table td{padding:3px 6px;border-bottom:1px solid var(--line);text-align:right}
.stat-radar .table th:first-child,.stat-radar .table td:first-child{text-align:left}
.stat-radar .table thead th{background:#efe7d6;font-weight:700;color:var(--t2);font-size:11px}

/* 兵種ボーナス */
.troop-bonus{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:14px}
.troop-bonus h3{margin:0 0 8px;font-family:"Shippori Mincho",serif;font-size:14px;font-weight:700}
.tb-list{display:flex;flex-wrap:wrap;gap:8px}
.tb-item{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line-strong);border-radius:2px;padding:5px 10px;font-size:13px;font-weight:600}
.tb-item .tb-troop{color:var(--t2)}
.tb-item .tb-val{color:var(--shu);font-weight:800}
.tb-item .tb-cap{color:var(--kin);font-size:11px;font-weight:700;background:#fdf2c5;padding:1px 5px;border-radius:2px}
.tb-formula{font-size:11px;color:var(--t3);margin-top:8px}

/* Tier推移 */
.tier-trend{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:14px}
.tier-trend h3{margin:0 0 12px;font-family:"Shippori Mincho",serif;font-size:14px;font-weight:700}
.tt-chart{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:end;height:160px;margin-bottom:8px}
.tt-col{display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;position:relative}
.tt-bar{width:100%;border-radius:2px 2px 0 0;min-height:6px;position:relative}
.tt-bar.tier0{background:var(--shu);height:100%}
.tt-bar.tier1{background:var(--kin);height:80%}
.tt-bar.tier2{background:#6e6256;height:60%}
.tt-bar.tier3{background:#a99e8d;height:40%}
.tt-bar.tier4{background:#c4baa9;height:25%}
.tt-bar.none{background:repeating-linear-gradient(45deg,#efe7d6,#efe7d6 4px,#fbf8f1 4px,#fbf8f1 8px);height:6%}
.tt-bar .v{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:700;color:var(--t2);white-space:nowrap}
.tt-col .s{margin-top:6px;font-size:11.5px;font-weight:600;color:var(--t2)}
.tt-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:10.5px;color:var(--t3)}
.tt-legend i{display:inline-block;width:10px;height:10px;border-radius:1px;margin-right:3px;vertical-align:middle}

/* 特性 (凸別) */
.traits{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:14px}
.traits h3{margin:0 0 10px;font-family:"Shippori Mincho",serif;font-size:14px;font-weight:700}
.tr-list{display:flex;flex-direction:column;gap:10px}
.tr-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.tr-row:last-child{border-bottom:0;padding-bottom:0}
.tr-lv{flex:0 0 44px;font-size:11px;font-weight:700;color:#fff;padding:3px 6px;border-radius:2px;text-align:center;margin-top:2px}
.tr-lv.lv0{background:var(--nibi)}
.tr-lv.lv1{background:var(--shu)}
.tr-lv.lv3{background:var(--shu-deep)}
.tr-lv.lv5{background:var(--kin)}
.tr-info{flex:1;min-width:0}
.tr-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 8px;margin-bottom:4px}
.tr-name{font-size:14.5px;font-weight:700;color:var(--sumi);font-family:"Shippori Mincho",serif}
.tr-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:2px;letter-spacing:.04em}
.tr-badge-kin{background:var(--kin);color:#fff}
.tr-badge-han{background:rgba(110,98,86,.12);color:var(--nibi);border:1px solid rgba(110,98,86,.2)}
.tr-cat{font-size:11px;color:var(--t2);background:rgba(177,134,58,.08);padding:1px 6px;border-radius:2px}
.tr-target{font-size:11px;color:var(--nibi)}
.tr-effect{margin:2px 0 0;font-size:13px;line-height:1.55;color:var(--sumi)}
.tr-effect-missing{color:var(--nibi);font-style:italic}
.tr-note{margin:3px 0 0;font-size:11px;color:var(--nibi)}

/* Phase 1.6 戦法個別ページ: アイコン撤去のため1カラム化 */
.entity-grid.tactic-single-grid{grid-template-columns:1fr}
.entity-grid.tactic-single-grid .entity-side{max-width:680px}

/* ───── Phase 1.6 戦法一覧 (表形式・レアリティ大別・Tierグループ) ───── */
.rsec{margin-top:18px}
.rsec-h{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:3px 3px 0 0;color:#fff}
.rsec-h.s{background:linear-gradient(90deg,var(--kin),#9c7430)}
.rsec-h.a{background:linear-gradient(90deg,#7d7263,#5f564a)}
.rsec-h .rb{font-family:"Shippori Mincho",serif;font-weight:800;font-size:19px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.18);border-radius:3px}
.rsec-h .rt{font-family:"Shippori Mincho",serif;font-weight:700;font-size:16px}
.rsec-h .rc{font-size:11px;opacity:.9}
.rsec-h .rx{margin-left:auto;font-size:11px;opacity:.85}
.ttable{border:1px solid var(--line);border-top:0;background:var(--panel)}
.tgrp{display:flex;align-items:center;gap:9px;padding:7px 12px;border-bottom:1px solid var(--line);background:#f1e9d8}
.tgrp .tb{font-family:"Shippori Mincho",serif;font-weight:800;font-size:13px;color:#fff;border-radius:3px;padding:2px 11px}
.tgrp .tb.t0{background:var(--shu)}
.tgrp .tb.t1{background:var(--kin)}
.tgrp .tb.t2{background:#6e6256}
.tgrp .tb.t3{background:#a99e8d}
.tgrp .tb.tp{background:transparent;color:var(--t3);border:1px dashed var(--line-strong);font-family:"Noto Sans JP";font-weight:700;font-size:11px}
.tgrp .td{font-size:11px;color:var(--nibi)}
.tgrp .tn{margin-left:auto;font-size:11px;color:var(--t3)}
.thead,.trow{display:grid;grid-template-columns:1fr 86px 2.4fr 1.1fr;align-items:center}
.thead{background:#efe7d6;border-bottom:1px solid var(--line-strong)}
.thead span{font-size:11px;font-weight:700;color:var(--t2);padding:8px 10px}
.trow{border-bottom:1px solid var(--line)}
.trow:last-child{border-bottom:0}
.trow:hover{background:#fff8f6}
.trow>div{padding:8px 10px;min-width:0}
.c-name a{font-weight:700;font-size:13.5px;color:var(--sumi)}
.c-name a:hover{color:var(--shu)}
.c-eff{font-size:12px;color:var(--t2);line-height:1.5}
.c-eff.pending{color:var(--t3);font-style:italic}
.c-from{font-size:12px;color:var(--nibi)}
.c-from a{color:var(--t2);font-weight:700}
.c-from a:hover{color:var(--shu)}
.cat{font-size:10.5px;border:1px solid var(--line-strong);border-radius:2px;padding:2px 6px;color:var(--t2);background:#fff;white-space:nowrap;display:inline-block}
.cat.juju{border-color:#9a7bb0;color:#7a5a92}
.cat.nodo{border-color:#c08a3a;color:#a06a1a}
.cat.shiki{border-color:#5a8fb0;color:#3a6f92}
.cat.totsu{border-color:var(--shu-deep);color:var(--shu-deep)}
.cat.hei{border-color:#5a9a6a;color:#3a7a4a}
.cat.jin{border-color:#7a6a8a;color:#5a4a6a}
.troop-tag{color:var(--shu);font-weight:700;font-size:11.5px;margin-right:4px}

/* ───── Phase 1.7 S3評価セクション ───── */
.s3-eval{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:18px 18px 14px;margin:18px 0}
.s3-eval-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line-strong)}
.s3-badge{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--shu);color:#fff;font-family:"Shippori Mincho",serif;font-weight:800;font-size:14px;border-radius:3px;letter-spacing:.04em}
.s3-eval-head h2{margin:0;font-family:"Shippori Mincho",serif;font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px}
.s3-tier-tag{font-family:"Shippori Mincho",serif;font-weight:800;font-size:12px;color:#fff;padding:2px 9px;border-radius:3px}
.s3-tier-tag.tier-tier0{background:var(--shu)}
.s3-tier-tag.tier-tier1{background:var(--kin)}
.s3-tier-tag.tier-tier2{background:#6e6256}
.s3-block{margin-bottom:14px}
.s3-block:last-of-type{margin-bottom:6px}
.s3-block h3{margin:0 0 6px;font-family:"Shippori Mincho",serif;font-size:14.5px;font-weight:700;color:var(--shu-deep);border-left:3px solid var(--shu);padding-left:8px}
.s3-block p{margin:0;font-size:13.5px;line-height:1.75;color:var(--sumi)}
.s3-meta{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:6px 0 8px;font-size:12.5px}
.s3-meta dt{color:var(--nibi);font-weight:700}
.s3-meta dd{margin:0;color:var(--sumi)}
.eval-comp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:6px}
.eval-comp-card{background:#fff;border:1px solid var(--line);border-left:3px solid var(--kin);border-radius:3px;padding:10px 12px}
.eval-comp-title{font-size:11px;font-weight:700;color:var(--nibi);letter-spacing:.06em;margin-bottom:5px}
.eval-comp-card ul{list-style:none;margin:0;padding:0}
.eval-comp-card li{display:flex;flex-direction:column;gap:1px;padding:4px 0;border-bottom:1px solid var(--line)}
.eval-comp-card li:last-child{border-bottom:0}
.ec-general{font-size:13px;font-weight:700;color:var(--sumi);font-family:"Shippori Mincho",serif}
.ec-tactics{font-size:12px;color:var(--t2)}
.s3-cta{margin:10px 0 0;font-size:12.5px;color:var(--t2)}
.s3-cta a{color:var(--shu);font-weight:700}
.s3-cta a:hover{color:var(--shu-deep);text-decoration:underline}
.s3-cta-rank{margin-top:14px}
.s3-source{margin:8px 0 0;font-size:11px;color:var(--t3)}
.s3-source a{color:var(--nibi)}
.s3-raw{margin:0;font-size:12.5px;line-height:1.7;color:var(--t2);background:#fff;padding:10px;border:1px solid var(--line);border-radius:3px;white-space:pre-wrap;font-family:inherit}
.s3-eval-pending .s3-pending-note{margin:0;font-size:13px;color:var(--nibi);font-style:italic}
@media (max-width:520px){
  .eval-comp-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
  .thead{display:none}
  .trow{grid-template-columns:1fr auto;grid-template-areas:"name cat" "eff eff" "from from";gap:3px 8px;padding:9px 4px}
  .trow>div{padding:2px 6px}
  .c-name{grid-area:name}
  .c-cat{grid-area:cat;justify-self:end}
  .c-eff{grid-area:eff}
  .c-from{grid-area:from}
}

/* 固有戦法 */
.unique-tactic{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:14px}
.unique-tactic h3{margin:0 0 8px;font-family:"Shippori Mincho",serif;font-size:14px;font-weight:700}
.ut-name{font-family:"Shippori Mincho",serif;font-size:18px;font-weight:800;color:var(--shu);margin:0 0 6px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.ut-cat{font-family:"Noto Sans JP",sans-serif;font-size:10.5px;font-weight:700;color:var(--t2);background:#fff;border:1px solid var(--line-strong);border-radius:2px;padding:1px 6px;letter-spacing:.02em}
.ut-desc{font-size:12.5px;color:var(--t2)}
.ut-effect{margin:6px 0 0;font-size:13px;line-height:1.7;color:var(--sumi)}
.ut-effect-missing{color:var(--nibi);font-style:italic}
.ut-link{display:inline-block;margin-top:8px;font-size:12px;font-weight:700;color:var(--shu)}

/* ───── 戦法個別ページ拡張 ───── */
.rank-badge{display:inline-flex;align-items:center;justify-content:center;font-family:"Shippori Mincho",serif;font-weight:800;font-size:18px;color:#fff;padding:6px 14px;border-radius:3px;letter-spacing:.02em;line-height:1}
.rank-badge.ss{background:var(--shu-deep)}
.rank-badge.s{background:var(--shu)}
.rank-badge.a{background:var(--kin);color:#1d1813}
.rank-badge.b{background:#6e6256}
.rank-badge.c{background:#a99e8d}

.effect-text{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--shu);border-radius:3px;padding:14px 16px;margin:14px 0;font-size:14px;line-height:1.7;color:var(--sumi)}

.status-pills{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.status-pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 7px;border-radius:9px}
.status-pill.continuous{background:#f5d6cf;color:#7a1f12}
.status-pill.control{background:#f0e0b2;color:#5a4513}
.status-pill.battle{background:#dadad0;color:#3d3a32}

.kv{display:grid;grid-template-columns:80px 1fr;gap:6px 12px;font-size:13px}
.kv dt{color:var(--nibi);font-weight:700;font-size:11.5px;align-self:center}
.kv dd{margin:0;color:var(--sumi)}

/* ───── 戦法一覧 (ランク別) ───── */
.rank-section{background:var(--panel);border:1px solid var(--line);border-radius:3px;margin-bottom:16px;overflow:hidden}
.rank-section-head{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#efe7d6;border-bottom:1px solid var(--line)}
.rank-section-head h2{font-family:"Shippori Mincho",serif;font-size:16px;margin:0;font-weight:700}
.rank-section-head .meta{font-size:11px;color:var(--nibi);margin-left:auto}
.tactic-list{list-style:none;padding:0;margin:0}
.tactic-list li{display:grid;grid-template-columns:48px 1fr auto;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);align-items:center}
.tactic-list li:last-child{border-bottom:0}
.tactic-list li:hover{background:#fdf6ec}
.tactic-list .name{font-weight:700;font-size:14px}
.tactic-list .name a{color:var(--sumi)}
.tactic-list .name a:hover{color:var(--shu)}
.tactic-list .meta-row{font-size:11.5px;color:var(--nibi);margin-top:2px}
.tactic-list .meta-row .tag{display:inline-block;background:#fff;border:1px solid var(--line);padding:1px 5px;border-radius:2px;font-size:10.5px;margin-right:4px;color:var(--t2)}
.tactic-list .img{width:40px;height:40px;border-radius:2px;background:linear-gradient(135deg,#cdbfa6,#94866c);display:flex;align-items:center;justify-content:center;color:#33291a;font-family:"Shippori Mincho",serif;font-weight:700;font-size:14px}
.tactic-list .img img{width:100%;height:100%;object-fit:cover;border-radius:2px}
.tactic-list .right{font-size:11px;color:var(--t3);text-align:right}

/* ───── シーズン個別ページ ───── */
.season-summary{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--kin);border-radius:3px;padding:16px 18px;margin-bottom:18px}
.season-summary h2{font-family:"Shippori Mincho",serif;font-size:16px;margin:0 0 8px;font-weight:700}
.season-summary p{margin:0;font-size:13.5px;color:var(--t2);line-height:1.7}
.season-divergence{background:#fff8f6;border:1px solid var(--shu);border-radius:3px;padding:12px 14px;margin-top:10px}
.season-divergence h3{margin:0 0 6px;font-size:12.5px;color:var(--shu);font-weight:700}
.season-divergence p{margin:0;font-size:12.5px;color:var(--t2)}

/* ───── footer ───── */
footer{margin-top:36px;background:var(--lacquer);color:#c9bda9;padding:24px 0;border-top:2px solid var(--shu)}
footer .wrap{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:12px}
footer .ft-mk{font-family:"Yuji Syuku",serif;font-size:18px;color:#fff}
footer .sp{margin-left:auto;color:#8c8070}
footer a{color:#c9bda9;border-bottom:1px dotted #6e6256}
footer a:hover{color:#fff}

/* ───── レスポンシブ ───── */
@media(max-width:820px){
  .hub{grid-template-columns:repeat(2,1fr)}
  .roster{grid-template-columns:repeat(5,1fr)}
  .feed{grid-template-columns:1fr}
  .entity-grid{grid-template-columns:1fr}
  .entity-portrait{max-width:280px}
}
@media(max-width:520px){
  .roster{grid-template-columns:repeat(4,1fr)}
  .facet-row{flex-direction:column}
  .facet-row .axis{flex-basis:auto;border-right:0;border-bottom:1px solid var(--line);padding:6px 12px}
  .tier-tag{flex-basis:56px;font-size:16px}
  .tactic-list li{grid-template-columns:36px 1fr}
  .tactic-list .right{grid-column:1/-1;text-align:left}
}
/* ───── Phase 1.8 マシュマロ（質問・編成相談）ページ ───── */
.marshmallow-intro{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--shu);border-radius:3px;padding:16px 20px;margin:0 0 18px}
.marshmallow-intro p{margin:0 0 10px;font-size:13.5px;line-height:1.8;color:var(--sumi)}
.marshmallow-intro p:last-child{margin-bottom:0}

.marshmallow-cta{display:grid;grid-template-columns:1fr 220px;gap:24px;align-items:center;background:linear-gradient(135deg,#fff8ee,#f3ede0);border:1px solid var(--line-strong);border-radius:4px;padding:24px;margin:0 0 22px;box-shadow:var(--shadow)}
.msm-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--shu);color:#fff;font-family:"Shippori Mincho",serif;font-weight:700;font-size:18px;padding:18px 28px;border-radius:3px;text-decoration:none;border:2px solid var(--shu-deep);transition:background .2s;box-shadow:0 2px 0 var(--shu-deep)}
.msm-btn:hover{background:var(--shu-deep);color:#fff}
.msm-btn-icon{font-size:22px}
.msm-btn-text{letter-spacing:.06em}
.msm-qr{text-align:center}
.msm-qr img{width:180px;height:180px;background:#fff;border:1px solid var(--line);padding:8px;border-radius:3px;display:block;margin:0 auto}
.msm-qr-caption{margin:8px 0 0;font-size:11px;color:var(--nibi)}
@media (max-width:640px){
  .marshmallow-cta{grid-template-columns:1fr;text-align:center}
  .msm-btn{font-size:16px;padding:14px 20px;width:100%}
}

.marshmallow-notice .notice-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:10px}
.marshmallow-notice .notice-list li{position:relative;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--kin);padding:10px 14px 10px 32px;border-radius:2px;font-size:13px;line-height:1.7;color:var(--sumi)}
.marshmallow-notice .notice-list li::before{content:"●";position:absolute;left:12px;top:11px;color:var(--kin);font-size:10px}
.marshmallow-notice .notice-list li b{color:var(--shu-deep)}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}
:focus-visible{outline:2px solid var(--shu);outline-offset:2px}
