/* px指定（Shopify Dawn の 1rem=10px に埋め込んでも崩れないように） */
/* 変数は :root ではなく自分の要素に置く（proarte.jp に埋め込んだときテーマの変数とぶつからないように） */
.pt-body, .ad-body, .ck-body, #pam-ticket, .pt-tabs, .pt-modal { --ink:#1d1d1f; --sub:#6b6b70; --line:#e3e3e6; --bg:#ffffff; --soft:#f6f6f7; --accent:#9b1c2e; --ok:#16794a; --ng:#b3261e; --warn:#a15c00; }
.pt-body, .ad-body, .ck-body { margin:0; font:15px/1.6 -apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Yu Gothic UI",sans-serif; color:var(--ink); background:var(--bg); }
.pt-wrap { max-width:960px; margin:0 auto; padding:16px; }

/* ── 座席図 ── */
/* スマホでは座席図の上で指を動かすと拡大・移動になるため、ページを縦に送れる余白を残す高さにする */
.seatmap { position:relative; width:100%; height:min(58vh,560px); background:var(--soft); border:1px solid var(--line); border-radius:12px; overflow:hidden; touch-action:none; user-select:none; }
.seatmap > svg { width:100%; height:100%; display:block; cursor:grab; }
.sm-seat { fill:#c9c9ce; stroke:#fff; stroke-width:.8; cursor:pointer; transition:fill .1s; }
.sm-seat.is-off { fill:#dcdce0; cursor:not-allowed; }
.sm-seat.is-sel { stroke:#111; stroke-width:2.2; fill:#111 !important; }
.sm-seat.st-sold { opacity:.35; }
.sm-seat.st-held { opacity:.55; stroke:#f5a623; stroke-width:1.5; }
.sm-seat.st-blocked { fill:#555 !important; }
.sm-seat.st-unassigned { fill:#fff; stroke:#999; stroke-dasharray:1.5 1; }
.sm-row-label { font-size:5px; fill:var(--sub); text-anchor:end; pointer-events:none; }
.sm-stage { fill:#2b2b30; }
.sm-stage-label { font-size:7px; fill:#fff; text-anchor:middle; letter-spacing:2px; pointer-events:none; }
.sm-section-label { font-size:7px; fill:var(--sub); text-anchor:middle; font-weight:700; pointer-events:none; paint-order:stroke; stroke:var(--soft); stroke-width:2px; stroke-linejoin:round; }
.sm-rect { fill:rgba(46,109,181,.15); stroke:#2f6db5; stroke-width:.6; }
.sm-zoom { position:absolute; right:8px; top:8px; display:flex; gap:6px; }
.sm-zoom button { display:inline-flex; align-items:center; justify-content:center; gap:3px; min-width:44px; height:44px; padding:0 8px; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:10px; font-size:13px; font-weight:600; cursor:pointer; box-shadow:0 1px 4px rgba(0,0,0,.08); -webkit-tap-highlight-color:transparent; }
.sm-zoom button:active { background:var(--soft); }
.sm-zoom button svg { flex:none; }

/* ── 購入ウィジェット ── */
#pam-ticket { font-size:15px; }
.pt-title { font-size:21px; margin:0 0 4px; line-height:1.4; }
.pt-meta { color:var(--sub); margin:0 0 12px; }
.pt-closed { background:#fff4e5; color:var(--warn); padding:10px 12px; border-radius:8px; }
.pt-legend { list-style:none; padding:0; margin:0 0 10px; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:14px; }
.pt-legend li { display:flex; align-items:center; gap:6px; }
.pt-rem { color:var(--accent); font-size:13px; margin-left:4px; }
.pt-dot { display:inline-block; width:12px; height:12px; border-radius:50%; flex:none; }
.pt-dot-off { background:#dcdce0; }
.pt-auto { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:0 0 6px; font-size:14px; }
.pt-auto select, .pt-line select, .pt-free select { font-size:15px; padding:4px 6px; border:1px solid var(--line); border-radius:6px; background:#fff; }
.pt-auto-btn { padding:6px 12px; border:1px solid var(--ink); background:#fff; border-radius:999px; cursor:pointer; font-size:14px; }
.pt-hint { font-size:13px; color:var(--sub); margin:4px 0 8px; }
.pt-notes { margin:12px 0; padding:10px 12px; background:var(--soft); border-radius:8px; font-size:13px; }
.pt-cart { position:sticky; bottom:0; background:#fff; border-top:1px solid var(--line); padding:10px 0 12px; margin-top:12px; }
.pt-lines { max-height:30vh; overflow-y:auto; margin-top:8px; }
.pt-line { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:6px 0; border-bottom:1px dashed var(--line); }
.pt-seat { flex:1; min-width:160px; }
.pt-x { border:none; background:none; font-size:18px; cursor:pointer; color:var(--sub); padding:0 6px; }
.pt-note { width:100%; font-size:12px; color:var(--warn); }
.pt-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; }
.pt-total { font-size:18px; }
.pt-buy { background:var(--accent); color:#fff; border:none; border-radius:999px; padding:13px 26px; font-size:16px; font-weight:700; cursor:pointer; }
.pt-buy:disabled { background:#c9c9ce; cursor:not-allowed; }
.pt-msg { color:var(--ng); margin:6px 0 0; min-height:1em; }
.pt-captcha:empty { display:none; }
.pt-captcha { margin-top:6px; }
.pt-small { color:var(--sub); font-size:12px; margin:4px 0 0; }
.pt-policy { margin:8px 0 4px; padding:8px 12px; background:#fff4e5; border-left:3px solid var(--warn); border-radius:6px; color:#5c3a00; font-size:13px; font-weight:600; line-height:1.6; }
.pt-policy small { font-weight:400; }
.pt-free-row { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); }
.pt-loading, .pt-error { padding:24px; text-align:center; color:var(--sub); }

/* ── チケット表示 ── */
.tk-card { border:1px solid var(--line); border-radius:14px; padding:16px; margin:12px 0; text-align:center; }
.tk-card img { width:220px; height:220px; image-rendering:pixelated; }
.tk-label { font-size:17px; font-weight:700; margin:6px 0 0; }
.tk-void { opacity:.4; }
.tk-badge { display:inline-block; font-size:12px; padding:2px 8px; border-radius:999px; background:var(--soft); }

/* ── 管理画面 ── */
.ad-nav { display:flex; gap:16px; align-items:center; padding:10px 16px; background:#1d1d1f; color:#fff; }
.ad-nav a { color:#fff; text-decoration:none; }
.ad-nav form { margin-left:auto; }
.ad-main { max-width:1200px; margin:0 auto; padding:16px; }
.ad-main h1 { font-size:22px; } .ad-main h2 { font-size:18px; margin-top:28px; border-bottom:1px solid var(--line); padding-bottom:4px; }
table.ad { border-collapse:collapse; width:100%; font-size:14px; }
table.ad th, table.ad td { border-bottom:1px solid var(--line); padding:6px 8px; text-align:left; vertical-align:top; }
table.ad th { background:var(--soft); font-weight:600; }
.ad-form { display:grid; grid-template-columns:160px 1fr; gap:8px 12px; align-items:center; max-width:820px; }
.ad-form input[type=text], .ad-form input[type=email], .ad-form input[type=datetime-local], .ad-form input[type=number], .ad-form select, .ad-form textarea, .ad-input { width:100%; box-sizing:border-box; padding:7px 8px; border:1px solid #c8c8cc; border-radius:6px; font:inherit; }
.btn { display:inline-block; padding:7px 14px; border-radius:8px; border:1px solid var(--ink); background:#fff; color:var(--ink); cursor:pointer; text-decoration:none; font:inherit; font-size:14px; }
.btn-primary { background:var(--ink); color:#fff; }
.btn-danger { border-color:var(--ng); color:var(--ng); }
.flash { background:#e8f5ee; color:var(--ok); padding:8px 12px; border-radius:8px; }
.problem { background:#fdecea; color:var(--ng); padding:8px 12px; border-radius:8px; margin:6px 0; }
.pill { font-size:12px; padding:1px 8px; border-radius:999px; background:var(--soft); }
.pill-on_sale { background:#e8f5ee; color:var(--ok); } .pill-draft { background:#eee; } .pill-cancelled { background:#fdecea; color:var(--ng); }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:800px) { .grid2, .ad-form { grid-template-columns:1fr; } }
.tier-row { display:flex; gap:8px; align-items:center; margin:8px 0; flex-wrap:wrap; }
.tier-row input { padding:5px 6px; border:1px solid #c8c8cc; border-radius:6px; }
.tier-box { border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin:10px 0; }
.toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0; }
.mono { font-family:ui-monospace,Consolas,monospace; font-size:13px; }
textarea.mono { width:100%; min-height:260px; }

/* ── 入場チェック ── */
.ck-body { background:#111; color:#fff; }
.ck-top { display:flex; justify-content:space-between; align-items:center; padding:10px 14px; font-size:14px; }
.ck-count { font-size:20px; font-weight:700; }
.ck-video { width:100%; max-height:52vh; object-fit:cover; background:#000; display:block; }
.ck-result { padding:18px 16px; min-height:120px; font-size:18px; }
.ck-result.ok { background:var(--ok); } .ck-result.ng { background:var(--ng); } .ck-result.warn { background:var(--warn); }
.ck-result .big { font-size:30px; font-weight:800; }
.ck-tools { padding:12px 14px; display:flex; gap:8px; flex-wrap:wrap; }
.ck-tools input { flex:1; min-width:160px; padding:10px; font-size:16px; border-radius:8px; border:none; }
.ck-tools button, .ck-btn { padding:10px 14px; font-size:15px; border-radius:8px; border:none; background:#fff; color:#111; cursor:pointer; }
.ck-list { padding:0 14px 20px; font-size:14px; }
.ck-list .item { border-bottom:1px solid #333; padding:8px 0; }

/* ── 購入時アンケート（「購入手続きへ」の後のシート。#pam-ticket の外に出すので色はここでも決める） ── */
.pt-sv-overlay { --ink:#1d1d1f; --sub:#6b6b70; --line:#e3e3e6; --soft:#f6f6f7; --accent:#9b1c2e; --ng:#b3261e;
  position:fixed; inset:0; z-index:2147483000; background:rgba(20,20,24,.55); display:flex; align-items:flex-end; justify-content:center;
  font:15px/1.6 -apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Yu Gothic UI",sans-serif; color:var(--ink); }
.pt-sv { background:#fff; width:100%; max-width:560px; max-height:92vh; display:flex; flex-direction:column; border-radius:16px 16px 0 0; box-shadow:0 -8px 30px rgba(0,0,0,.2); }
@media (min-width:640px) { .pt-sv-overlay { align-items:center; } .pt-sv { border-radius:16px; max-height:86vh; } }
.pt-sv-head { padding:18px 18px 8px; border-bottom:1px solid var(--line); }
.pt-sv-head h3 { margin:0 0 4px; font-size:17px; line-height:1.45; }
.pt-sv-head p { margin:0; color:var(--sub); font-size:13px; }
.pt-sv-body { overflow-y:auto; -webkit-overflow-scrolling:touch; padding:6px 18px 8px; flex:1; }
.pt-sv-q { border:0; margin:0; padding:14px 0; border-bottom:1px dashed var(--line); min-width:0; }
.pt-sv-q legend { font-weight:700; font-size:15px; margin-bottom:8px; padding:0; line-height:1.5; }
.pt-sv-tag { display:inline-block; font-size:11px; font-weight:700; padding:1px 7px; border-radius:999px; background:var(--soft); color:var(--sub); vertical-align:2px; margin-left:4px; }
.pt-sv-tag.req { background:var(--accent); color:#fff; }
.pt-sv-opt { box-sizing:border-box; display:flex; align-items:center; gap:10px; min-height:44px; padding:6px 12px; margin:6px 0; border:1px solid var(--line); border-radius:10px; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.pt-sv-opt input { width:20px; height:20px; margin:0; accent-color:var(--accent); flex:none; }
.pt-sv-opt:has(input:checked) { border-color:var(--accent); background:#fbf1f3; }
.pt-sv-q textarea { width:100%; box-sizing:border-box; font:inherit; font-size:16px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; resize:vertical; }
.pt-sv-hint { margin:2px 0 0; font-size:12px; color:var(--sub); }
.pt-sv-err { margin:4px 0 0; font-size:13px; color:var(--ng); font-weight:700; }
.pt-sv-foot { padding:10px 18px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); display:grid; gap:8px; }
.pt-sv-msg { margin:0; min-height:0; color:var(--ng); font-size:13px; font-weight:700; }
.pt-sv-msg:empty { display:none; }
.pt-sv-go { width:100%; }
.pt-sv-back { background:none; border:none; color:var(--sub); font-size:14px; padding:6px; cursor:pointer; text-decoration:underline; }

/* 電話・郵送の受付（管理画面） */
.sell-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(340px,1fr); gap:20px; align-items:start; }
.sell-grid > section > h2:first-child { margin-top:0; }
@media (max-width: 1000px) { .sell-grid { grid-template-columns:1fr; } }
.sell-form { grid-template-columns:130px 1fr; }
.sell-line { display:flex; gap:8px; align-items:center; justify-content:space-between; padding:6px 0; border-bottom:1px solid var(--line); }
.sell-line > span { flex:1; min-width:0; }
.sell-line select { width:auto; max-width:220px; }
.sell-total { font-size:17px; border-bottom:none; }
.sell-empty { color:#888; }
.sell-readback { background:#fff8e6; border:1px solid #f0d58a; border-radius:8px; padding:8px 12px; margin:10px 0; line-height:1.7; }
.sell-q { margin:8px 0; } .sell-q > div { margin-top:4px; }
.sell-opt { display:inline-block; margin:2px 12px 2px 0; }
.ad-body [hidden] { display:none !important; }
.sell-col2 { grid-column:2; }

/* 座席に席種を割り当てる画面：左に席種・券種、右に座席表（狭い画面では縦に並べる） */
.ad-main:has(.seat-split) { max-width:1680px; }
.seat-split { display:grid; grid-template-columns:minmax(360px, 460px) minmax(0, 1fr); gap:20px; align-items:start; }
.seat-split__side { position:sticky; top:12px; max-height:calc(100vh - 24px); overflow:auto; padding-right:4px; }
.seat-split__side .tier-row input[size="30"] { width:100%; }
@media (max-width:1100px) { .seat-split { grid-template-columns:1fr; } .seat-split__side { position:static; max-height:none; } }
.pt-sv-other { display:block; width:100%; box-sizing:border-box; font:inherit; font-size:16px; padding:10px 12px; margin:-2px 0 8px; border:1px solid var(--accent); border-radius:10px; }
.pt-sv-other[hidden] { display:none; }
/* 複数公演の切り替え（ツアーのLPなど）。LP（Shopify テーマ）のボタンの見た目に負けないよう、色・枠・文字をすべて指定する */
.pt-tabs { margin:0 0 16px; scroll-margin-top:80px; font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Yu Gothic UI",sans-serif; }
.pt-tabs .pt-tabs-title { margin:0 0 8px; font-size:15px; font-weight:700; color:var(--ink); }
.pt-tabs .pt-tabs-row { display:flex; gap:8px; flex-wrap:wrap; }
.pt-tabs .pt-tab { -webkit-appearance:none; appearance:none; flex:1 1 0; min-width:0; margin:0; padding:10px 4px; border:2px solid var(--accent); border-radius:12px;
  background:#fff; color:var(--accent); font-weight:700; font-size:14px; line-height:1.35; white-space:normal; font-family:inherit; letter-spacing:0; text-align:center; cursor:pointer; box-shadow:none; text-transform:none; }
.pt-tabs .pt-tab small { display:block; font-weight:400; font-size:11px; opacity:.75; }
.pt-tabs .pt-tab[aria-selected="true"] { background:var(--accent); color:#fff; }
.pt-tabs .pt-tab-ext { border-color:var(--line); color:var(--sub); background:var(--soft); }
/* 目立たせる案内（スクリーンショットのお願い・迷惑メールの確認） */
.pt-callout { border-radius:12px; padding:12px 16px; margin:14px 0; line-height:1.7; font-size:14px; }
.pt-callout p { margin:0; }
.pt-callout .pt-callout-title { font-size:16px; font-weight:800; margin-bottom:4px; }
.pt-callout-shot { background:#fff4d6; border:2px solid #e0a100; color:#3d2c00; }
.pt-callout-mail { background:#eaf3ff; border:2px solid #3a78c9; color:#10294a; }
/* ポップアップ（LP の各公演のボタンで全画面に開く座席選択）。アンケート（.pt-sv-overlay）はこの上に出る */
.pt-modal { position:fixed; inset:0; z-index:2147482000; background:#fff; color:var(--ink); display:flex; flex-direction:column;
  font:15px/1.6 -apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Yu Gothic UI",sans-serif; }
.pt-modal[hidden] { display:none; }
.pt-modal-head { flex:none; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 14px;
  padding-top:max(10px, env(safe-area-inset-top)); border-bottom:1px solid var(--line); background:#fff; }
.pt-modal-title { font-weight:800; font-size:16px; color:var(--ink); line-height:1.4; }
.pt-modal-close { -webkit-appearance:none; appearance:none; flex:none; margin:0; border:1px solid var(--line); background:#fff; color:var(--ink);
  border-radius:999px; padding:8px 14px; font:700 14px/1 inherit; font-family:inherit; cursor:pointer; box-shadow:none; }
.pt-modal-body { flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
  padding:12px 14px calc(12px + env(safe-area-inset-bottom)); }
.pt-modal-body #pam-ticket { max-width:960px; margin:0 auto; }
html.pt-modal-open, html.pt-modal-open body { overflow:hidden !important; }
