/* barlive — ナイトライフの掲示板アクティビティを数値で見るためのUI。
   夜に見る前提のダークテーマ1本に絞り、色はすべて明示的に塗る。 */
:root{
  --ground:#0E1218;
  --surface:#161C25;
  --surface-2:#1D242F;
  --line:#28313E;
  --line-soft:#202834;
  --ink:#E8ECF2;
  --muted:#94A0B0;
  --faint:#6B7787;
  --accent:#E0A458;          /* 琥珀。バーの灯り */
  --accent-dim:#3A2E1D;
  --female:#EC5E9C;
  --male:#4E93E0;
  --couple:#B57BE0;
  --unknown:#6B7787;
  --ok:#5FBF95;
  --warn:#D9A441;
  --radius:10px;
  --mono:"SF Mono",ui-monospace,"Roboto Mono",Menlo,monospace;
  /* テーマで反転する値。ベタ書きせずここに集約する。 */
  --on-accent:#1A1206;       /* アクセント上の文字 */
  --accent-hover:#EDB268;
  --hit:rgba(255,255,255,.07);   /* チャートのホバー面 */
  --tip-shadow:rgba(0,0,0,.6);
  --scrim:rgba(6,9,13,.74);      /* モーダルの背景 */
  --modal-shadow:rgba(0,0,0,.85);
  --err-bg:#2C1A1A; --err-line:#5A2E2A; --err-ink:#F0B4AC;
  --ok-bg:#14261F;  --ok-line:#2A5343;  --ok-ink:#9BE0C0;
  color-scheme:dark;
}

/* ライトテーマ。data-theme="light" のときだけトークンを差し替える。
   構造とレイアウトは共通で、色だけが入れ替わる。 */
:root[data-theme="light"]{
  --ground:#F6F7F9;
  --surface:#FFFFFF;
  --surface-2:#EFF2F6;
  --line:#D6DCE4;
  --line-soft:#E7EBF1;
  --ink:#182130;
  --muted:#576374;
  --faint:#8892A1;
  --accent:#9A6516;          /* 琥珀を落として、白地でコントラストを確保する */
  --accent-dim:#F6EAD6;
  --female:#C93072;
  --male:#215FA8;
  --couple:#7A3FAF;
  --unknown:#8892A1;
  --ok:#1F7A55;
  --warn:#8A5E12;
  --on-accent:#FFFFFF;
  --accent-hover:#7E5210;
  --hit:rgba(0,0,0,.05);
  --tip-shadow:rgba(24,33,48,.22);
  --scrim:rgba(24,33,48,.45);
  --modal-shadow:rgba(24,33,48,.28);
  --err-bg:#FDF0EE; --err-line:#F0C6BF; --err-ink:#8C2F22;
  --ok-bg:#EDF7F2;  --ok-line:#BCDECC;  --ok-ink:#1B6244;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--ground);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;
  font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased;
  min-height:100vh;display:flex;flex-direction:column;
}
a{color:var(--accent);text-decoration:none;-webkit-tap-highlight-color:transparent}
/* 下線は本文中のリンクだけに出す。全リンクに掛けると、iPhone で :hover が
   タップ後も残るため、カードやボタンに下線が付いたままになる。 */
.prose a:hover,
.notice a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.wrap{width:100%;max-width:940px;margin:0 auto;padding:0 18px}
main{flex:1;padding:22px 0 64px}

/* header */
.site-head{border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:20}
.site-head .wrap{display:flex;align-items:center;gap:16px;height:56px}
.brand{
  font-weight:800;font-size:19px;letter-spacing:.02em;color:var(--ink);
  display:inline-flex;align-items:center;gap:8px;
}
.brand-text{display:inline-flex;align-items:center}
.brand-mark{
  width:26px;height:26px;border-radius:6px;flex:none;display:block;
  border:1px solid var(--line);
}
.brand:hover{text-decoration:none;color:var(--accent)}
.brand .dot{color:var(--accent)}
.site-nav{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:13.5px}
.site-nav a{color:var(--muted)}
.site-nav a:hover{color:var(--ink);text-decoration:none}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:1px solid var(--line);background:var(--surface-2);color:var(--ink);
  padding:8px 15px;border-radius:8px;font-size:13.5px;font-weight:600;
  cursor:pointer;font-family:inherit;white-space:nowrap;
}
.btn:hover{background:var(--line-soft);text-decoration:none}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-sm{padding:5px 11px;font-size:12.5px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* headings */
h1{font-size:25px;line-height:1.4;margin:0 0 6px;font-weight:800;letter-spacing:.01em}
/* トップの見出し。検索エンジンに主題を伝えるためのもので、画面では一覧が主役。
   すぐ下の営業日スタンプと同じ大きさ・同じ色にして、視線を奪わないようにする。
   背景と同色にしたり 0px にしたりはしない(隠しテキストとみなされるため)。 */
.toph1{
  font-size:11.5px;font-weight:400;color:var(--faint);
  letter-spacing:0;line-height:1.6;margin:0 0 10px;
}
h2{font-size:17px;margin:34px 0 12px;font-weight:700}
h3{font-size:14.5px;margin:24px 0 8px;font-weight:700;color:var(--muted)}
.lede{color:var(--muted);margin:0 0 22px;font-size:14px}
.eyebrow{
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);margin:0 0 8px;
}

/* 一覧の見出し行: 営業日とソート */
.listhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sort-select{
  background:var(--surface-2);color:var(--ink);
  border:1px solid var(--line);border-radius:8px;
  padding:7px 30px 7px 12px;font-size:13px;font-family:inherit;cursor:pointer;
  appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}

/* エリア・お気に入りの絞り込みチップ */
.filters{margin:14px 0 18px}
/* 上段(都道府県)。下段のエリアと続けて置くので間隔を詰める */
.filters.prefs{margin:14px 0 8px}
.filters.prefs .chip-btn{font-weight:600}
/* チップは1行。画面幅を超える分は横スクロールで見せる。
   .wrap の左右パディング分だけ外へはみ出させ、端まで流れるようにする。 */
.chips{
  display:flex;flex-wrap:nowrap;gap:8px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  margin:0 -18px;padding:2px 18px 4px;
  scrollbar-width:none;
}
.chips::-webkit-scrollbar{display:none}
.chip-btn{
  border:1px solid var(--line);background:var(--surface-2);color:var(--muted);
  border-radius:999px;padding:7px 14px;font-size:13px;font-family:inherit;
  cursor:pointer;white-space:nowrap;line-height:1.4;
}
.chip-btn:hover{color:var(--ink)}
.chip-btn[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}
.chip-btn .cnt{opacity:.7;font-size:11.5px;margin-left:5px;font-family:var(--mono)}

/* store cards */
.stores{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(288px,1fr))}
.store-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 17px;display:block;color:inherit;position:relative;
  transition:background-color .12s ease, border-color .12s ease;
}
.fav-btn{
  position:absolute;top:10px;right:10px;
  width:36px;height:36px;display:grid;place-items:center;
  background:none;border:none;padding:0;cursor:pointer;
  color:var(--faint);border-radius:8px;
}
.fav-btn:hover{color:var(--accent);background:var(--surface-2)}
.fav-btn[aria-pressed="true"]{color:var(--accent)}
.fav-btn svg{width:20px;height:20px;display:block}
/* 星の左に置く最終取得時刻。名前がぶつからないよう name 側で場所を空ける。 */
.fetched{
  position:absolute;top:19px;right:46px;
  font-family:var(--mono);font-size:11px;line-height:1;color:var(--faint);
  font-variant-numeric:tabular-nums;
}
.store-card .name{padding-right:86px}
/* 押している間だけ明るくする。iPhone は :hover がタップ後も残るので、
   ホバー効果はポインタのある環境に限定し、タップの反応は :active で出す。 */
@media (hover: hover) {
  .store-card:hover{border-color:var(--accent);background:var(--surface-2)}
}
.store-card:active{border-color:var(--accent);background:var(--surface-2)}
/* カード内のリンクには下線を出さない。タップ時に :hover が残る端末があるため
   hover/focus/active も明示的に打ち消す。 */
.store-card a,
.store-card a:hover,
.store-card a:focus,
.store-card a:active{text-decoration:none;-webkit-tap-highlight-color:transparent}
.store-card .name{font-weight:700;font-size:16px;margin-bottom:2px}
/* エリアの右に当日の件数を置く(星の真下)。大きな数字を別行に置くより背が低くなる */
.store-card .area{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  font-size:12px;color:var(--faint);margin-bottom:10px;
}
.store-card .area .a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.store-card .area .cnt{
  flex:none;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);
}
/* 料金。一覧の「料金を表示」を入れたときだけ出す */
.store-card .price{display:none}
.stores.show-price .store-card .price{
  display:block;margin-top:11px;padding-top:9px;border-top:1px solid var(--line-soft);
  font-size:11.5px;line-height:1.7;color:var(--faint);
}
/* 一覧の表示切り替え(料金を表示)。並び替えの行に置くので余白は持たせない。 */
.opt-row{
  display:inline-flex;align-items:center;gap:8px;margin:0;
  font-size:13px;color:var(--muted);cursor:pointer;
}
.opt-row input{width:17px;height:17px;margin:0;accent-color:var(--accent);cursor:pointer}
.total{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}
.total .n{font-family:var(--mono);font-size:34px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.total .unit{font-size:12px;color:var(--muted)}

/* 4指標の横バー。目盛りは全店舗で共通(SCALE_MAX)にして店舗間で見比べられるようにする */
.metrics{display:grid;gap:1.2px;margin:2px 0 0}
.metric{display:grid;grid-template-columns:58px 1fr 30px;align-items:center;gap:9px}
.metric .ml{font-size:12px;color:var(--muted);white-space:nowrap}
.metric .mv{
  font-family:var(--mono);font-size:12.5px;font-weight:600;text-align:right;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.metric .mt{
  position:relative;height:11px;border-radius:3px;overflow:hidden;
  background:var(--line-soft);
  /* 25/50/75% の位置に目盛りを引き、共通スケールであることを示す */
  background-image:linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),var(--line) calc(25% - 1px),var(--line) 25%,transparent 25%,transparent calc(50% - 1px),var(--line) calc(50% - 1px),var(--line) 50%,transparent 50%,transparent calc(75% - 1px),var(--line) calc(75% - 1px),var(--line) 75%,transparent 75%);
}
.metric .mt i{display:block;height:100%;border-radius:3px;min-width:2px}
.metric .mt i.f{background:var(--female)} .metric .mt i.m{background:var(--male)}
.metric .mt i.c{background:var(--couple)} .metric .mt i.u{background:var(--unknown)}
.metric.over .mv{color:var(--accent)}
.scale-note{font-size:11px;color:var(--faint);font-family:var(--mono);margin-top:9px}

.sw{width:9px;height:9px;border-radius:2px;display:inline-block;flex:none}
.sw.f{background:var(--female)} .sw.m{background:var(--male)}
.sw.c{background:var(--couple)} .sw.u{background:var(--unknown)}
.chart-legend{
  display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;
  margin-top:10px;font-size:12px;color:var(--muted);
}
.chart-legend span{display:inline-flex;align-items:center;gap:6px}

/* panel */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.panel + .panel{margin-top:14px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel-head h2{margin:0;font-size:15.5px}
.stamp{font-family:var(--mono);font-size:11.5px;color:var(--faint)}

/* chart */
.chart{width:100%;overflow-x:auto}
.chart svg{display:block;min-width:520px;width:100%;height:auto}
.chart text{font-family:var(--mono);font-size:10px;fill:var(--faint)}
.chart .grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4;opacity:.7}
.chart .band{fill:var(--surface-2);opacity:.55}
.chart .wk{fill:var(--muted);font-size:10.5px}
.chart .axis{stroke:var(--line);stroke-width:1}
.chart-inner{position:relative;min-width:520px}
.chart .hit{fill:transparent;cursor:pointer}
.chart .hit.on{fill:var(--hit)}
.chart-tip{
  position:absolute;top:6px;transform:translateX(-50%);
  background:var(--surface-2);border:1px solid var(--line);border-radius:8px;
  padding:9px 12px;font-size:12px;line-height:1.7;white-space:nowrap;
  box-shadow:0 6px 20px -6px var(--tip-shadow);pointer-events:none;z-index:2;
}
.chart-tip b{display:block;font-size:13px;margin-bottom:4px;color:var(--ink)}
.chart-tip span{display:flex;align-items:center;gap:6px;color:var(--muted);font-family:var(--mono)}
.chart-tip span i{width:8px;height:8px;border-radius:2px;flex:none}
.chart-tip .tot{margin-top:4px;padding-top:4px;border-top:1px solid var(--line);color:var(--ink)}

/* paywall */
.paywall{
  border:1px dashed var(--line);border-radius:var(--radius);padding:30px 22px;text-align:center;
  background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);
}
.paywall h3{color:var(--ink);font-size:16px;margin:0 0 8px}
.paywall p{color:var(--muted);font-size:13.5px;margin:0 auto 18px;max-width:44ch}
.paywall .actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
/* パスを使う前に「見られる数値があるか」を示す一文 */
.paywall .avail{font-size:12.5px;line-height:1.7;margin-bottom:16px}
.paywall .avail.ok{color:var(--ok)}

/* tables */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:13px}
th,td{padding:9px 13px;text-align:left;border-bottom:1px solid var(--line-soft)}
thead th{background:var(--surface-2);font-size:11px;color:var(--faint);
  font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-weight:600;white-space:nowrap}
tbody tr:last-child td{border-bottom:none}
td.n{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}

/* pricing */
.plans{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));margin:20px 0}
.plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.plan.featured{border-color:var(--accent)}
.plan .tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--accent);text-transform:uppercase}
.plan .price{font-family:var(--mono);font-size:33px;font-weight:700;margin:10px 0 2px;font-variant-numeric:tabular-nums}
.plan .price small{font-size:13px;color:var(--muted);font-weight:400}
.plan ul{margin:14px 0 20px;padding-left:1.1em;color:var(--muted);font-size:13.5px}
.plan li{margin-bottom:6px}

/* legal / prose */
.prose{max-width:70ch}
.prose h2{font-size:16px;margin:28px 0 8px}
.prose p,.prose li{color:var(--muted);font-size:14px}
.prose ol,.prose ul{padding-left:1.3em}
.prose dl{margin:0}
.prose dt{font-weight:700;color:var(--ink);font-size:13.5px;margin-top:16px}
.prose dd{margin:2px 0 0;color:var(--muted);font-size:14px}

.notice{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface);
  border-radius:0 8px 8px 0;padding:14px 16px;margin:16px 0;font-size:13.5px;color:var(--muted)}
.notice b{color:var(--ink)}

.msg{padding:11px 14px;border-radius:8px;font-size:13.5px;margin:14px 0}
.msg.err{background:var(--err-bg);border:1px solid var(--err-line);color:var(--err-ink)}
.msg.ok{background:var(--ok-bg);border:1px solid var(--ok-line);color:var(--ok-ink)}

.empty{color:var(--faint);font-size:13.5px;padding:26px 0;text-align:center}
.skeleton{color:var(--faint);font-size:13px;padding:22px 0;text-align:center}

/* footer */
.site-foot{border-top:1px solid var(--line);background:var(--surface);padding:24px 0 34px;font-size:12.5px}
.site-foot .copy{margin:0;text-align:center;color:var(--faint)}

/* 規約類のページ: 本文をスクロール領域に収め、その下に同意欄を常時表示する */
.doc-scroll{
  max-height:calc(100dvh - 320px);
  min-height:180px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px 20px;
}
.doc-scroll > :first-child{margin-top:0}
.doc-scroll > :last-child{margin-bottom:0}

.doc-consent{
  margin-top:16px;padding-top:16px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:14px;
}
.doc-consent label{
  display:flex;align-items:flex-start;gap:11px;
  font-size:13.5px;line-height:1.6;color:var(--ink);cursor:pointer;
}
.doc-consent input[type=checkbox]{
  width:20px;height:20px;margin:0;flex:none;accent-color:var(--accent);cursor:pointer;
}
.doc-consent .btn{width:100%;padding:13px;font-size:15px;justify-content:center}
.doc-consent .btn:disabled{background:var(--surface-2);border-color:var(--line);color:var(--faint)}

/* マイページ下部に置く各種ページへのリンク */
/* 一覧の下に置く補足のブロック(エリアから探す)。見出しは控えめに。 */
.faq{margin-top:34px}
.faq h2{font-size:14px;margin:0 0 4px;color:var(--muted)}
.faq h3{font-size:13px;margin:18px 0 5px;color:var(--ink);font-weight:600}
.faq p{margin:0;color:var(--muted);font-size:13px;line-height:1.85}
.faq a{color:var(--muted);text-decoration:underline}

/* ページ末尾のサイト説明。検索エンジンに主題を伝えるためのもので、
   一覧を見ているあいだは視界に入らない位置に置く。 */
.sitedesc{
  margin:26px 0 0;padding-top:20px;border-top:1px solid var(--line);
  color:var(--faint);font-size:12.5px;line-height:1.9;
}
.sitedesc a{color:var(--muted)}

.site-links{
  display:flex;flex-wrap:wrap;gap:10px 20px;
  margin:26px 0 0;padding-top:20px;border-top:1px solid var(--line);
  font-size:12.5px;
}
.site-links a{color:var(--muted)}
.site-links a:hover{color:var(--ink)}

/* ポイント残高と、ポイントを使うボタンの並び */
.pt-balance{
  font-family:var(--mono);font-size:38px;font-weight:700;line-height:1;
  font-variant-numeric:tabular-nums;
}
.pt-balance .u{font-size:15px;color:var(--muted);margin-left:5px;font-weight:600}
.pt-note{font-size:12.5px;color:var(--muted);margin:10px 0 0;line-height:1.7}
.pt-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.pt-actions .btn{flex:0 0 auto}
.plan .plan-sub{margin:0 0 2px;font-size:13px;color:var(--muted)}

/* 料金ページの3列比較表。○ と — を色で差を付けて、目で追えるようにする */
.cmp th:not(:first-child),.cmp td:not(:first-child){text-align:center}
.cmp td:first-child{color:var(--ink)}
.cmp .yes{color:var(--accent);font-weight:700}
.cmp .no{color:var(--faint)}
.cmp thead .sub{
  display:block;margin-top:2px;font-size:10.5px;letter-spacing:0;
  text-transform:none;color:var(--faint);
}

/* 入力欄。ポイント関連のフォーム(投稿・店舗追加リクエスト)で使う */
.field{display:grid;gap:6px;margin:0 0 12px}
.field label{font-size:12.5px;color:var(--muted)}
.input{
  width:100%;max-width:360px;padding:9px 11px;border-radius:8px;
  border:1px solid var(--line);background:var(--surface-2);color:var(--ink);
  font-size:14px;font-family:inherit;line-height:1.6;
}
.input::placeholder{color:var(--faint)}
textarea.input{resize:vertical}
/* 男/女/カップルの3つは横に並べる。数字は右寄せの等幅で読む */
.num-row{display:flex;gap:12px;flex-wrap:wrap}
.num-row .field{width:92px;margin-bottom:0}
.num-row .input{max-width:none;text-align:right;font-family:var(--mono);font-size:15px}

/* ログインボーナスの「+N P」を見せる小さなモーダル */
.modal{
  position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;
  background:var(--scrim);
}
.modal-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;width:100%;max-width:330px;text-align:center;
  box-shadow:0 22px 54px -20px var(--modal-shadow);
}
.modal-card h3{margin:0;color:var(--ink);font-size:15px}
.modal-card .gain{
  font-family:var(--mono);font-size:42px;font-weight:700;color:var(--accent);
  line-height:1.15;margin:6px 0 0;
}
.modal-card p{color:var(--muted);font-size:13px;margin:8px 0 18px;line-height:1.7}
.modal-card .btn{width:100%;justify-content:center;padding:11px}

@media (max-width:600px){
  .site-nav{gap:11px;font-size:12.5px}
  .site-nav .hide-sm{display:none}
  h1{font-size:21px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* テーマ切替。並び替えの右に置く。アイコンだけの正方形。 */
.listhead .row{display:flex;gap:8px;align-items:center}
.theme-btn{
  flex:0 0 auto;width:34px;height:34px;padding:0;display:inline-flex;
  align-items:center;justify-content:center;border-radius:var(--radius);
  border:1px solid var(--line);background:var(--surface-2);color:var(--muted);cursor:pointer;
}
.theme-btn:hover{background:var(--line-soft);color:var(--ink)}
.theme-btn svg{width:17px;height:17px;display:block}

/* 表示プレビューのトグル(許可アカウントのみ表示) */
.pv-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line-soft);cursor:pointer}
.pv-row:first-of-type{border-top:0}
.pv-row input{width:17px;height:17px;accent-color:var(--accent);flex:0 0 auto}
.plan .pack-note{color:var(--muted);font-size:12.5px;line-height:1.6}

/* 2列だけの表。幅いっぱいに広げると1列目が間延びするので、箱ごと絞る。 */
.tw.narrow{max-width:340px}
.tw.narrow table{min-width:0}

/* iOS Safari は font-size が 16px 未満の入力にフォーカスすると、自動でページを
   ズームインする。viewport に maximum-scale を足せば止まるが、それはピンチ拡大まで
   殺してしまうのでアクセシビリティ上避ける。タッチ環境でだけ 16px にして回避する。 */
@media (pointer: coarse) {
  .input,
  .num-row .input,
  .sort-select { font-size: 16px }
}

/* 位置情報が拒否されたときの手順案内 */
.help{margin-top:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}
.help > summary{padding:10px 12px;cursor:pointer;font-size:13px;font-weight:700;color:var(--ink)}
.help > summary::marker{color:var(--muted)}
.help .help-body{padding:0 12px 12px;font-size:13px;color:var(--muted);line-height:1.8}
.help .help-body ol{margin:6px 0 0;padding-left:1.3em}
.help .help-body h4{margin:12px 0 2px;font-size:12.5px;color:var(--ink);font-weight:700}
.help .help-body b{color:var(--ink)}
.help .help-body kbd{
  font-family:inherit;font-size:12px;padding:1px 6px;border-radius:5px;
  border:1px solid var(--line);background:var(--surface);color:var(--ink);
}

/* 店舗情報。公式サイトの記載を転記した表。 */
.infotable{display:grid;grid-template-columns:auto 1fr;gap:0;font-size:13.5px;line-height:1.75}
.infotable dt{
  color:var(--muted);white-space:nowrap;padding:9px 16px 9px 0;
  border-top:1px solid var(--line-soft);font-weight:600;
}
.infotable dd{margin:0;padding:9px 0;border-top:1px solid var(--line-soft)}
.infotable dt:first-of-type,.infotable dd:first-of-type{border-top:0}
@media (max-width:560px){
  .infotable{grid-template-columns:1fr;gap:0}
  .infotable dt{padding:9px 0 0;border-top:1px solid var(--line-soft)}
  .infotable dd{padding:1px 0 9px;border-top:0}
  .infotable dd:first-of-type{border-top:0}
}
.infonote{color:var(--faint);font-size:11.5px;margin:12px 0 0;line-height:1.7}

/* 店舗ページの1行紹介。検索結果の説明文と同じ内容を本文にも置く。 */
.intro{margin:-14px 0 20px;font-size:13px;line-height:1.8;color:var(--faint)}

/* エリアページのパンくず */
.crumbs{font-size:12.5px;color:var(--faint);margin:0 0 10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--ink)}
.crumbs .sep{color:var(--line)}

/* 店舗詳細のタブ(データ / 掲示板) */
.tabs{display:flex;gap:8px;margin:2px 0 16px}
.tab{
  border:1px solid var(--line);background:var(--surface-2);color:var(--muted);
  border-radius:999px;padding:7px 20px;font-size:13.5px;font-weight:600;
  font-family:inherit;cursor:pointer;line-height:1.4;
}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}

/* 掲示板タブ。性別ごとの列に投稿を並べる。
   各セルの行・列は store.html の renderBoard が決める(同じ行 = 同じ時間帯)。
   行の高さは行内でいちばん高いセルに揃い、隣の列とずれない。 */
.board{display:grid;gap:8px;align-items:stretch}
.board .bh{
  grid-row:1;border-radius:8px;padding:7px 8px 8px;text-align:center;
  background:var(--surface-2);
}
.board .bh span{display:block;font-size:12px;font-weight:700;line-height:1.5}
.board .bh b{
  display:block;font-family:var(--mono);font-size:22px;line-height:1.15;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.board .bd{
  grid-column:1/-1;display:flex;align-items:center;gap:10px;margin:6px 0 0;
  font-family:var(--mono);font-size:11.5px;color:var(--faint);
}
.board .bd::before,.board .bd::after{content:"";flex:1;border-top:1px solid var(--line)}
.board .bp{
  position:relative;min-width:0;border-radius:8px;padding:7px 10px 8px;cursor:pointer;
  background:var(--surface-2);
}
/* 読み上げ用のラベル。区分は色と列の位置でしか見えないので、文字でも持たせる */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* 1行目: 投稿者名(左)と時刻(右)。狭い列では時刻が名前の下に回る */
.board .bm{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px}
.board .bm b{min-width:0;font-size:13px;font-weight:700;line-height:1.45;color:var(--ink);overflow-wrap:anywhere}
.board .bm time{
  margin-left:auto;white-space:nowrap;font-family:var(--mono);font-size:11px;line-height:1.45;
  color:var(--faint);font-variant-numeric:tabular-nums;
}
/* 「上に詰める」のとき。列ごとに独立して縦に積む */
.board .bcol{display:flex;flex-direction:column;gap:8px;min-width:0}
.board-opt{
  display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;
  font-size:12.5px;color:var(--muted);cursor:pointer;
}
.board-opt input{width:17px;height:17px;margin:0;accent-color:var(--accent);cursor:pointer}
/* 長い投稿は4行(狭い画面では6行)で切り、タップで全文を開く。
   改行を持ったまま届く店(スカーレット)があるので、改行はそのまま見せる */
.board .bp p{
  margin:3px 0 0;font-size:13px;line-height:1.55;color:var(--ink);
  overflow-wrap:anywhere;white-space:pre-line;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;
}
.board .bp.open p{display:block;-webkit-line-clamp:unset}
.board .bp .none{color:var(--faint)}
/* 区分の色は背景にうすく敷く。color-mix 非対応の環境では上の surface-2 のまま */
.board .m{background:color-mix(in srgb,var(--male) 15%,var(--surface))}
.board .f{background:color-mix(in srgb,var(--female) 15%,var(--surface))}
.board .c{background:color-mix(in srgb,var(--couple) 15%,var(--surface))}
.board .u{background:color-mix(in srgb,var(--unknown) 15%,var(--surface))}
.board .bh.m span{color:var(--male)} .board .bh.f span{color:var(--female)}
.board .bh.c span{color:var(--couple)} .board .bh.u span{color:var(--muted)}
/* 狭い画面。4列だと1列が60px台になるので、余白を削って本文の幅を稼ぐ */
@media (max-width:420px){
  #pane-board .panel{padding:14px 12px}
  .board{gap:6px}
  .board .bh{padding:6px 2px 7px}
  .board .bh span{font-size:11px;letter-spacing:-.02em}
  .board .bp{padding:6px 7px 7px}
  .board .bp p{font-size:12.5px;-webkit-line-clamp:6}
}
