/* トシタン UFO目撃マップ — front-end styles (all scoped under #tufo-app / #tufo-modal) */
:root{
  --tufo-ink:#0b0f16; --tufo-panel:#121a25; --tufo-panel2:#0f1620; --tufo-line:#26323f;
  --tufo-text:#e4ebf2; --tufo-muted:#8c9aab; --tufo-faint:#5b6b7c;
  --tufo-amber:#e8b04b; --tufo-cyan:#54cfe0; --tufo-verify:#5fd39a; --tufo-pending:#e0a23c;
  --tufo-mono:"SFMono-Regular",ui-monospace,"Roboto Mono",Menlo,Consolas,monospace;
  --tufo-jp:"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",system-ui,sans-serif;
}
#tufo-app{background:var(--tufo-ink);color:var(--tufo-text);font-family:var(--tufo-jp);border:1px solid var(--tufo-line);border-radius:6px;padding:22px 18px;-webkit-font-smoothing:antialiased}
#tufo-app *{box-sizing:border-box}
#tufo-app .top{border-bottom:1px solid var(--tufo-line);padding-bottom:16px;margin-bottom:18px}
#tufo-app .eyebrow{font-family:var(--tufo-mono);font-size:11px;letter-spacing:.22em;color:var(--tufo-amber);text-transform:uppercase;margin:0 0 8px}
#tufo-app h1.tufo-h1{font-size:24px;letter-spacing:.04em;margin:0 0 6px;font-weight:700;color:var(--tufo-text)}
#tufo-app .sub{color:var(--tufo-muted);font-size:13px;line-height:1.6;max-width:680px;margin:0}
#tufo-app .lineage{font-family:var(--tufo-mono);font-size:11px;color:var(--tufo-faint);margin-top:10px;letter-spacing:.04em}
#tufo-app .bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 14px}
#tufo-app .stat{font-family:var(--tufo-mono);font-size:11px;color:var(--tufo-muted);border:1px solid var(--tufo-line);border-radius:2px;padding:6px 10px;letter-spacing:.06em}
#tufo-app .stat b{color:var(--tufo-text)}
#tufo-app .spacer{flex:1}
#tufo-app .btn{font-family:var(--tufo-jp);font-size:13px;font-weight:600;color:var(--tufo-ink);background:var(--tufo-amber);border:none;border-radius:2px;padding:9px 16px;cursor:pointer;letter-spacing:.04em}
#tufo-app .btn:hover{filter:brightness(1.08)}
#tufo-app .btn.ghost{background:transparent;color:var(--tufo-text);border:1px solid var(--tufo-line)}
#tufo-app .btn.ghost:hover{border-color:var(--tufo-amber);color:var(--tufo-amber)}
#tufo-app .filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
#tufo-app .filters select{font-family:var(--tufo-mono);font-size:11px;background:var(--tufo-panel2);color:var(--tufo-text);border:1px solid var(--tufo-line);border-radius:2px;padding:7px 9px;letter-spacing:.04em}
#tufo-app .grid{display:grid;grid-template-columns:1fr minmax(280px,360px);gap:18px;align-items:start}
@media(max-width:820px){#tufo-app .grid{grid-template-columns:1fr}}
#tufo-app .mapcard{background:#0a0f16;border:1px solid var(--tufo-line);border-radius:4px;position:relative;overflow:hidden;height:var(--tufo-map-h,520px)}
#tufo-app #tufo-leaflet{position:absolute;inset:0}
#tufo-app .pref{fill:#16202c;stroke:#2c3a49;stroke-width:.4}
#tufo-app .grid-line{stroke:#172230;stroke-width:.5}
#tufo-app .pin{cursor:pointer}
#tufo-app .pin .dot{transition:opacity .2s}
#tufo-app .pin:hover .dot{stroke:var(--tufo-cyan)}
#tufo-app .pin.sel .dot{stroke:#fff;stroke-width:1.4}
#tufo-app .pin.sel .pulse{animation:tufopulse 1.8s ease-out infinite}
@keyframes tufopulse{0%{r:5;opacity:.6}100%{r:18;opacity:0}}
@media(prefers-reduced-motion:reduce){#tufo-app .pin.sel .pulse{animation:none;opacity:0}}
#tufo-app .legend{position:absolute;left:12px;bottom:12px;z-index:1000;pointer-events:none;font-family:var(--tufo-mono);font-size:10px;color:var(--tufo-muted);background:rgba(8,12,18,.7);border:1px solid var(--tufo-line);border-radius:3px;padding:8px 10px;line-height:1.9}
#tufo-app .legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
#tufo-app .report{background:var(--tufo-panel);border:1px solid var(--tufo-line);border-radius:4px;padding:0;min-height:340px}
#tufo-app .rtop{padding:10px 16px 0}
#tufo-app .tufo-back{background:transparent;border:1px solid var(--tufo-line);color:var(--tufo-muted);font-family:var(--tufo-mono);font-size:11px;letter-spacing:.06em;padding:5px 10px;border-radius:2px;cursor:pointer}
#tufo-app .tufo-back:hover{border-color:var(--tufo-cyan);color:var(--tufo-cyan)}
#tufo-app .rhead{border-bottom:1px solid var(--tufo-line);padding:14px 16px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
#tufo-app .rid{font-family:var(--tufo-mono);font-size:11px;color:var(--tufo-amber);letter-spacing:.1em}
#tufo-app .rtitle{font-size:15px;font-weight:700;margin:4px 0 0;overflow-wrap:anywhere;word-break:break-word}
#tufo-app .badge{font-family:var(--tufo-mono);font-size:10px;padding:3px 8px;border-radius:2px;letter-spacing:.08em;white-space:nowrap}
#tufo-app .b-verify{color:var(--tufo-verify);border:1px solid var(--tufo-verify)}
#tufo-app .b-pending{color:var(--tufo-pending);border:1px solid var(--tufo-pending)}
#tufo-app .rbody{padding:8px 16px 16px}
#tufo-app .row{display:grid;grid-template-columns:96px 1fr;gap:8px;border-bottom:1px dashed #1d2733;padding:8px 0}
#tufo-app .row .k{font-family:var(--tufo-mono);font-size:10.5px;color:var(--tufo-faint);letter-spacing:.06em;text-transform:uppercase;padding-top:2px}
#tufo-app .row .v{font-size:13px;color:var(--tufo-text);line-height:1.5;min-width:0;overflow-wrap:anywhere;word-break:break-word}
#tufo-app .desc{margin-top:12px;font-size:13px;line-height:1.7;color:#cdd8e3;overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap}
#tufo-app .empty{padding:40px 20px;text-align:center;color:var(--tufo-muted);font-size:13px;line-height:1.8}
#tufo-app .empty .mono{font-family:var(--tufo-mono);font-size:11px;color:var(--tufo-faint);letter-spacing:.1em;display:block;margin-top:8px}
#tufo-app .note{font-size:11px;color:var(--tufo-faint);margin-top:18px;line-height:1.7;font-family:var(--tufo-mono);letter-spacing:.02em}
#tufo-app .loading{padding:30px;text-align:center;color:var(--tufo-muted);font-family:var(--tufo-mono);font-size:12px;letter-spacing:.1em}

/* modal (appended to <body>) */
#tufo-modal{position:fixed;inset:0;background:rgba(4,7,11,.8);display:none;align-items:flex-start;justify-content:center;padding:30px 16px;overflow:auto;z-index:99999;font-family:var(--tufo-jp)}
#tufo-modal.on{display:flex}
#tufo-modal .sheet{background:var(--tufo-panel);border:1px solid var(--tufo-line);border-radius:6px;max-width:560px;width:100%;padding:22px;color:var(--tufo-text)}
#tufo-modal *{box-sizing:border-box}
#tufo-modal h2{font-size:17px;margin:0 0 4px;color:var(--tufo-text)}
#tufo-modal .lead{font-size:12px;color:var(--tufo-muted);margin:0 0 16px;line-height:1.6}
#tufo-modal .field{margin-bottom:12px}
#tufo-modal .field label{display:block;font-family:var(--tufo-mono);font-size:10.5px;color:var(--tufo-muted);letter-spacing:.06em;margin-bottom:5px;text-transform:uppercase}
#tufo-modal .field input,#tufo-modal .field select,#tufo-modal .field textarea{width:100%;background:var(--tufo-panel2);border:1px solid var(--tufo-line);border-radius:3px;color:var(--tufo-text);font-family:var(--tufo-jp);font-size:13px;padding:9px 10px}
#tufo-modal .field textarea{min-height:72px;resize:vertical}
#tufo-modal .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#tufo-modal .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#tufo-modal .pickwrap{border:1px solid var(--tufo-line);border-radius:3px;background:#0a0f16;position:relative}
#tufo-modal .pickwrap svg{display:block;width:100%;height:auto;cursor:crosshair}
#tufo-modal .pickread{font-family:var(--tufo-mono);font-size:10.5px;color:var(--tufo-cyan);margin-top:6px;letter-spacing:.04em}
#tufo-modal .priv{border-top:1px solid var(--tufo-line);margin-top:6px;padding-top:14px}
#tufo-modal .priv .tag{font-family:var(--tufo-mono);font-size:10px;color:var(--tufo-cyan);letter-spacing:.08em;margin-bottom:8px}
#tufo-modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}
#tufo-modal .ok{background:#13241c;border:1px solid var(--tufo-verify);color:var(--tufo-verify);padding:12px;border-radius:3px;font-size:13px;line-height:1.6;display:none;margin-bottom:8px}
#tufo-modal .ok.on{display:block}
#tufo-modal .err{background:#241313;border:1px solid #d36b6b;color:#e69a9a;padding:10px;border-radius:3px;font-size:12px;line-height:1.5;display:none;margin-bottom:8px}
#tufo-modal .err.on{display:block}
#tufo-modal .close{background:transparent;border:none;color:var(--tufo-muted);font-size:20px;cursor:pointer;line-height:1}
#tufo-modal .pick-dot{fill:var(--tufo-amber);stroke:#fff;stroke-width:1.2}

/* ---- フル幅モード [ufo_map full="1"] ---- */
#tufo-app.tufo-full{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);border-radius:0;border-left:none;border-right:none;padding-left:24px;padding-right:24px}
#tufo-app.tufo-full.tufo-fixedw{width:auto;max-width:var(--tufo-max-w,1200px);margin-left:auto;margin-right:auto;border-radius:6px;border-left:1px solid var(--tufo-line);border-right:1px solid var(--tufo-line);padding-left:18px;padding-right:18px}
#tufo-app.tufo-full .grid{grid-template-columns:1fr minmax(300px,360px)}
#tufo-app.tufo-full .mapcard{height:var(--tufo-map-h,78vh)}
#tufo-app.tufo-full .mapcard svg{height:var(--tufo-map-h,78vh);width:auto;max-width:100%}
#tufo-app.tufo-full .report{max-height:var(--tufo-map-h,78vh);overflow:auto}
@media(max-width:820px){
  #tufo-app.tufo-full{padding-left:16px;padding-right:16px}
  #tufo-app.tufo-full .grid{grid-template-columns:1fr}
  #tufo-app.tufo-full .mapcard svg{height:auto;width:100%}
  #tufo-app.tufo-full .report{max-height:none;overflow:visible}
}

/* ---- Leaflet テーマ ---- */
#tufo-app .leaflet-container{background:#0a0f16;font-family:var(--tufo-jp);outline:none}
#tufo-app .leaflet-control-zoom a{background:#121a25;color:#cfe0ee;border-color:#2a3744}
#tufo-app .leaflet-control-zoom a:hover{background:#1a2735}
#tufo-app .leaflet-bar{border:1px solid #2a3744;box-shadow:none}
#tufo-app .leaflet-control-attribution{background:rgba(8,12,18,.7);color:#7f8ea0;font-size:10px}
#tufo-app .leaflet-control-attribution a{color:#9fb0c2}
/* 目撃ピン */
.tufo-pin-dot{display:block;width:14px;height:14px;border-radius:50%;background:var(--tufo-verify);box-shadow:0 0 0 2px rgba(6,10,16,.85),0 0 10px rgba(95,211,154,.55)}
/* クラスタ */
.tufo-cl-wrap{background:transparent}
.tufo-cl{display:flex;align-items:center;justify-content:center;border-radius:50%;color:#eaf4ee;font-family:var(--tufo-mono);font-weight:700;background:rgba(20,30,40,.9);border:2px solid var(--tufo-verify);box-shadow:0 0 12px rgba(95,211,154,.35)}
.tufo-cl-sm{width:34px;height:34px;font-size:12px}
.tufo-cl-md{width:40px;height:40px;font-size:13px}
.tufo-cl-lg{width:48px;height:48px;font-size:14px}

/* ---- 詳細カード戻るボタン（既存に追従） ---- */
#tufo-app .report{min-height:240px}

/* ---- 目撃情報一覧 ---- */
#tufo-app .tufo-list{margin-top:18px;border:1px solid var(--tufo-line);border-radius:4px;background:var(--tufo-panel);overflow:hidden}
#tufo-app .tufo-list-head{padding:11px 14px;border-bottom:1px solid var(--tufo-line);font-family:var(--tufo-mono);font-size:11px;letter-spacing:.1em;color:var(--tufo-muted);text-transform:uppercase}
#tufo-app .tufo-list-count{color:var(--tufo-amber)}
#tufo-app .tufo-list-body{max-height:360px;overflow:auto}
#tufo-app .tufo-li{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid #1b2430;padding:11px 14px;cursor:pointer;color:var(--tufo-text);font-family:var(--tufo-jp)}
#tufo-app .tufo-li:hover{background:#16202c}
#tufo-app .tufo-li.on{background:#172a23;box-shadow:inset 3px 0 0 var(--tufo-verify)}
#tufo-app .li-dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--tufo-verify);box-shadow:0 0 6px rgba(95,211,154,.5)}
#tufo-app .li-main{flex:1 1 auto;min-width:0}
#tufo-app .li-place{display:block;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#tufo-app .li-meta{display:block;font-size:11px;color:var(--tufo-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#tufo-app .li-id{flex:0 0 auto;font-family:var(--tufo-mono);font-size:10px;color:var(--tufo-faint);letter-spacing:.06em}
#tufo-app .li-empty{padding:24px 14px;text-align:center;color:var(--tufo-muted);font-size:13px}

/* ---- 投稿モーダルの位置ピッカー（Leaflet） ---- */
#tufo-modal #tufo-pick{height:260px;border:1px solid var(--tufo-line);border-radius:3px;background:#0a0f16}
#tufo-modal .leaflet-container{background:#0a0f16;font-family:var(--tufo-jp)}
#tufo-modal .leaflet-control-attribution{background:rgba(8,12,18,.7);color:#7f8ea0;font-size:9px}
#tufo-modal .pickread{font-family:var(--tufo-mono);font-size:10.5px;color:var(--tufo-cyan);margin-top:6px;letter-spacing:.04em}

/* 一覧はフル幅でも全幅に */
#tufo-app.tufo-full .tufo-list-body{max-height:42vh}

/* レイジーロード/最適化プラグインがタイルに被せる背景・透過を打ち消す（表示崩れ対策） */
#tufo-app .leaflet-tile,#tufo-modal .leaflet-tile{background:transparent !important;opacity:1 !important;visibility:visible !important;filter:none !important}
#tufo-app .leaflet-tile-container img,#tufo-modal .leaflet-tile-container img{max-width:none !important}

/* テーマの svg{width:100%} 等で著作権表示の旗SVGが巨大化するのを防ぐ */
#tufo-app .leaflet-attribution-flag,#tufo-modal .leaflet-attribution-flag{width:12px !important;height:8px !important;max-width:12px !important;display:inline !important}
#tufo-app .leaflet-control-attribution svg,#tufo-modal .leaflet-control-attribution svg{width:12px !important;height:8px !important;max-width:12px !important}

/* ================= 統計ダッシュボード ================= */
.tufo-stats-standalone{background:var(--tufo-ink);color:var(--tufo-text);border:1px solid var(--tufo-line);border-radius:6px;padding:20px 18px;font-family:var(--tufo-jp);-webkit-font-smoothing:antialiased}
.tufo-stats{margin-top:18px}
.tufo-stats-head{font-family:var(--tufo-mono);font-size:11px;letter-spacing:.1em;color:var(--tufo-muted);text-transform:uppercase;margin-bottom:12px;border-bottom:1px solid var(--tufo-line);padding-bottom:8px}
.tufo-stats-sub{color:var(--tufo-faint);letter-spacing:.02em}
.tufo-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:760px){.tufo-stats-grid{grid-template-columns:1fr}}
.tufo-stats-empty{color:var(--tufo-muted);font-size:13px;padding:22px;text-align:center;border:1px dashed var(--tufo-line);border-radius:4px}
.tufo-card{background:var(--tufo-panel);border:1px solid var(--tufo-line);border-radius:4px;padding:14px 14px 12px}
.tufo-card-h{font-size:13px;font-weight:700;margin-bottom:14px;color:var(--tufo-text)}
/* 縦棒 */
.cv{display:flex;align-items:flex-end;gap:5px;height:150px}
.cv-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;height:100%}
.cv-bar-wrap{flex:1;width:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.cv-val{font-family:var(--tufo-mono);font-size:9.5px;color:var(--tufo-muted);margin-bottom:3px}
.cv-bar{width:72%;max-width:26px;background:linear-gradient(180deg,var(--tufo-verify),#36805d);border-radius:2px 2px 0 0;min-height:2px;transition:height .4s ease}
.cv-lab{font-family:var(--tufo-mono);font-size:9px;color:var(--tufo-faint);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* 横棒ランキング */
.ch{display:flex;flex-direction:column;gap:9px}
.ch-row{display:grid;grid-template-columns:88px 1fr 30px;gap:8px;align-items:center}
.ch-lab{font-size:11.5px;color:var(--tufo-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-track{height:10px;background:#0f1620;border:1px solid #1b2632;border-radius:3px;overflow:hidden}
.ch-bar{height:100%;background:linear-gradient(90deg,#36805d,var(--tufo-verify));border-radius:2px;min-width:2px;transition:width .4s ease}
.ch-val{font-family:var(--tufo-mono);font-size:11px;color:var(--tufo-muted);text-align:right}
.ch-empty{color:var(--tufo-faint);font-size:12px;padding:8px 0}

/* 詳細ページへのリンク（カード内） */
#tufo-app .rmore{padding-top:12px;margin-top:4px;border-top:1px solid #1d2733}
#tufo-app .tufo-permalink{font-family:var(--tufo-mono);font-size:11px;letter-spacing:.06em;color:var(--tufo-cyan);text-decoration:none}
#tufo-app .tufo-permalink:hover{color:var(--tufo-verify);text-decoration:underline}

/* 個別ページ（/sighting/jp-XXXX/） */
#tufo-app.tufo-single{max-width:640px;margin:0 auto}
#tufo-app.tufo-single .report{min-height:0}

/* ===== 文字サイズ：全体を一回り大きく（font="115" 等で微調整可、70〜200） ===== */
#tufo-app{--tufo-fs:1}
#tufo-app .eyebrow{font-size:calc(12.5px*var(--tufo-fs))}
#tufo-app h1.tufo-h1{font-size:calc(29px*var(--tufo-fs))}
#tufo-app .sub{font-size:calc(15.5px*var(--tufo-fs))}
#tufo-app .lineage{font-size:calc(12px*var(--tufo-fs))}
#tufo-app .stat{font-size:calc(13px*var(--tufo-fs))}
#tufo-app .btn{font-size:calc(15px*var(--tufo-fs))}
#tufo-app .filters select{font-size:calc(13px*var(--tufo-fs))}
#tufo-app .rid{font-size:calc(12.5px*var(--tufo-fs))}
#tufo-app .rtitle{font-size:calc(18px*var(--tufo-fs))}
#tufo-app .badge{font-size:calc(11.5px*var(--tufo-fs))}
#tufo-app .row .k{font-size:calc(12px*var(--tufo-fs))}
#tufo-app .row .v{font-size:calc(15px*var(--tufo-fs))}
#tufo-app .desc{font-size:calc(15px*var(--tufo-fs))}
#tufo-app .empty{font-size:calc(15.5px*var(--tufo-fs))}
#tufo-app .empty .mono{font-size:calc(12px*var(--tufo-fs))}
#tufo-app .legend{font-size:calc(11.5px*var(--tufo-fs))}
#tufo-app .note{font-size:calc(12px*var(--tufo-fs))}
#tufo-app .loading{font-size:calc(13.5px*var(--tufo-fs))}
#tufo-app .tufo-permalink{font-size:calc(12.5px*var(--tufo-fs))}
#tufo-app .tufo-list-head{font-size:calc(13px*var(--tufo-fs))}
#tufo-app .li-place{font-size:calc(15px*var(--tufo-fs))}
#tufo-app .li-meta{font-size:calc(12.5px*var(--tufo-fs))}
#tufo-app .li-id{font-size:calc(11.5px*var(--tufo-fs))}
#tufo-app .tufo-stats-head{font-size:calc(13px*var(--tufo-fs))}
#tufo-app .tufo-card-h{font-size:calc(15.5px*var(--tufo-fs))}
#tufo-app .cv-val{font-size:calc(11px*var(--tufo-fs))}
#tufo-app .cv-lab{font-size:calc(10.5px*var(--tufo-fs))}
#tufo-app .ch-lab{font-size:calc(13.5px*var(--tufo-fs))}
#tufo-app .ch-val{font-size:calc(13px*var(--tufo-fs))}

/* ===== 一覧のページ送り（5件ずつ） ===== */
/* ページ送りで件数は5件に制限されるため、枠の高さ制限は解除（フッターが隠れないように！important で全モード上書き） */
#tufo-app .tufo-list-body,
#tufo-app.tufo-full .tufo-list-body{max-height:none !important;overflow:visible !important}
#tufo-app .tufo-list-rows{animation:tufoListFade .25s ease}
@keyframes tufoListFade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
#tufo-app .tufo-list-foot{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 12px;border-top:1px solid #243042;background:rgba(255,255,255,.02)}
#tufo-app .tufo-pg{background:rgba(84,207,224,.08);border:1px solid #34506a;color:#cfe3ee;font-family:var(--tufo-jp);font-size:calc(13px*var(--tufo-fs));padding:8px 16px;border-radius:6px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
#tufo-app .tufo-pg:hover:not([disabled]){border-color:var(--tufo-cyan);color:#fff;background:rgba(84,207,224,.16)}
#tufo-app .tufo-pg[disabled]{opacity:.3;cursor:default}
#tufo-app .tufo-pg-ind{font-family:var(--tufo-mono);font-size:calc(12px*var(--tufo-fs));color:var(--tufo-text);letter-spacing:.1em;min-width:54px;text-align:center}
@media(prefers-reduced-motion:reduce){#tufo-app .tufo-list-rows{animation:none}}

/* ===== スマホ: 統計グラフのはみ出し対策 ===== */
.tufo-card,.tufo-stats,.tufo-stats-grid{min-width:0;max-width:100%;box-sizing:border-box}
.ch,.cv{min-width:0;max-width:100%}
.ch-row{grid-template-columns:minmax(0,88px) minmax(0,1fr) minmax(24px,auto)}
.ch-track{min-width:0}
/* 年別・月別: カード内で横スクロール（件数が増えても全件見られる） */
.cv{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:6px}
.cv::-webkit-scrollbar{height:5px}
.cv::-webkit-scrollbar-thumb{background:#2a3a4d;border-radius:3px}
.cv::-webkit-scrollbar-track{background:transparent}
@media(max-width:760px){
  .cv-col{flex:0 0 auto;width:32px}
  .ch-row{grid-template-columns:minmax(0,66px) minmax(0,1fr) minmax(22px,auto);gap:6px}
}
