/* OES の画面（K1）：店の iPad・電話で読みやすいように大きめの字・色だけに頼らない */
:root { --bg: #f1f5f9; --card: #ffffff; --ink: #1f2328; --muted: #5d636b; --line: #e2e8f0; --accent: #0b5cad; --ok: #1a7f37; --warn: #9a6700; --bad: #b42318; --hold: #7a3fb0; }
/* A-06：店の端末で見え方を変えない（暗い色へは切り替えない・GAS と同じ） */
:root { color-scheme: light; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 17px/1.5 system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif; }
/* A-01：GAS と同じ 2 段の帯（1 段目＝移動の帯 #oesNavBar・2 段目＝画面名と卓・日付） */
header.oes-head { position: sticky; top: 0; z-index: 1500; }
#oesNavBar { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; width: 100%; height: 36px; padding: 3px 6px; margin: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; background: #0d2f4f; }
#oesNavBar::-webkit-scrollbar { display: none; }
#oesNavBar .oesNavItem { flex: 0 0 auto; display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 8px; background: rgba(255,255,255,.16); color: #fff; font-size: 14px; font-weight: bold; line-height: 1; white-space: nowrap; text-decoration: none; }
#oesNavBar .oesNavItem[aria-current="page"] { background: #fff; color: #0d2f4f; }
.oes-title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; background: #333; color: #fff; padding: 8px 12px; }
.oes-title h1 { font-size: 18px; margin: 0; font-weight: bold; }
#oesHeadSub { font-size: 14px; font-variant-numeric: tabular-nums; }
#oesMode { margin-left: auto; font-size: 13px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
#oesMode:empty { display: none; }
#oesMode .mode-tag { padding: 1px 8px; border-radius: 99px; background: rgba(255,255,255,.16); }
#oesMode .mode-tag.person { background: #b45309; }
#oesMode a, #oesMode button { color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.6); border-radius: 6px; padding: 2px 8px; margin: 0; font-size: 13px; font-weight: 700; text-decoration: none; cursor: pointer; }
main { max-width: 960px; margin: 0 auto; padding: 16px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin-bottom: 16px; }
label { display: block; margin: 10px 0 4px; font-weight: 600; }
input, select, button { font: inherit; }
input, select { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); color: var(--ink); }
button { padding: 10px 18px; border-radius: 8px; border: 1px solid var(--accent); background: var(--accent); color: #fff; font-weight: 600; cursor: pointer; margin-top: 12px; }
button.secondary { background: transparent; color: var(--accent); }
button:disabled { opacity: .5; cursor: default; }
.note { padding: 10px 12px; border-radius: 8px; border: 1px solid var(--line); margin: 12px 0; }
.note.ok { border-color: var(--ok); color: var(--ok); }
.note.bad, #problem { border-color: var(--bad); color: var(--bad); }
#problem { display: block; padding: 12px 16px; margin: 16px; border: 2px solid var(--bad); border-radius: 8px; }
/* hidden の付いたもの・中身が空の知らせは出さない（#problem の display: block が hidden を上書きして、空の赤い枠が出ていた） */
[hidden], #problem:empty, .note:empty { display: none !important; }
.muted { color: var(--muted); }
.tabs { display: flex; gap: 8px; margin-bottom: 8px; }
.tabs button { margin: 0; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.tbl { display: block; text-decoration: none; color: inherit; background: var(--card); border: 2px solid var(--line); border-radius: 10px; padding: 10px; min-height: 96px; }
.tbl .no { font-size: 22px; font-weight: 700; }
.tbl.active { border-color: var(--accent); }
.tbl.settled { border-color: var(--ok); }
.tbl.hold { border-color: var(--hold); border-style: dashed; }
.badge { display: inline-block; font-size: 13px; padding: 1px 8px; border-radius: 99px; border: 1px solid currentColor; margin: 2px 4px 0 0; }
.badge.hold { color: var(--hold); } .badge.settled { color: var(--ok); } .badge.live { color: var(--ok); } .badge.poll { color: var(--warn); }
table.items { width: 100%; border-collapse: collapse; }
table.items td, table.items th { padding: 6px 4px; border-bottom: 1px solid var(--line); text-align: left; }
table.items td.n { text-align: right; white-space: nowrap; }
.qr { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.qr svg { width: 240px; height: 240px; background: #fff; padding: 8px; border-radius: 8px; }
.code { font: 700 28px/1.2 ui-monospace, monospace; letter-spacing: .1em; }
/* K2：注文・会計（iPad・大きく押しやすく） */
.cats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.cats button { margin: 0; padding: 10px 14px; min-height: 48px; }
.prods { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.prods button { margin: 0; min-height: 72px; text-align: left; background: var(--card); color: var(--ink); border: 2px solid var(--line); }
.prods button small { display: block; color: var(--muted); font-weight: 400; }
.line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.line .nm { flex: 1 1 180px; font-weight: 600; }
.line button { margin: 0; min-width: 48px; min-height: 48px; padding: 6px 10px; }
.line button.on { background: var(--hold); border-color: var(--hold); color: #fff; }
.line .q { min-width: 2.5em; text-align: center; font-size: 20px; font-weight: 700; }
.line .note-t { flex-basis: 100%; color: var(--muted); font-size: 15px; }
.sticky { position: sticky; bottom: 0; background: var(--card); border-top: 1px solid var(--line); padding: 10px 16px; display: flex; gap: 12px; align-items: center; justify-content: space-between; }
.sticky button { margin: 0; min-height: 56px; font-size: 20px; }
.banner { padding: 12px 16px; border: 2px solid var(--hold); color: var(--hold); border-radius: 8px; margin-bottom: 12px; font-weight: 700; }
dialog { border: 1px solid var(--line); border-radius: 12px; background: var(--card); color: var(--ink); max-width: 420px; width: calc(100% - 32px); }
dialog::backdrop { background: rgba(0,0,0,.4); }
.keypad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.keypad button { margin: 0; min-height: 56px; font-size: 22px; background: var(--card); color: var(--ink); border: 1px solid var(--line); }
.amount { font-weight: 700; font-size: 28px; line-height: 1.2; font-variant-numeric: tabular-nums; text-align: right; padding: 8px; border: 1px solid var(--line); border-radius: 8px; min-height: 48px; }
.pay { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line); }
.pay button { margin: 0; min-height: 48px; }
.pay button.on { background: var(--accent); color: #fff; }
.pay button.off { background: var(--card); color: var(--ink); border-color: var(--line); }
.big { font-size: 26px; font-weight: 700; }
.rc { font-weight: 700; font-size: 32px; line-height: 1.2; font-variant-numeric: tabular-nums; }
input.inl { width: auto; margin-right: 6px; }
/* K3：開店・締め・レポート・レシート（iPhone・iPad の縦でも横にはみ出さない） */
html, body { overflow-x: hidden; }
.cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; max-width: 960px; margin: 0 auto; padding: 0 16px; }
main .cols { padding: 0; }
.cols > .card { min-width: 0; }
.scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
table.month td, table.month th { white-space: nowrap; font-size: 15px; }
table.fig tr.strong td { font-weight: 700; }
table.items td { overflow-wrap: anywhere; }
details { margin: 12px 0; } details summary { cursor: pointer; font-weight: 600; padding: 8px 0; }
tr.pick td a { font-weight: 600; }
/* どのボタンも、押したらすぐ色とくるくる（社長の決め） */
button:active:not(:disabled), a.btn:active { opacity: .8; }   /* A-03：GAS と同じ押した感じ */
button.busy { position: relative; color: transparent !important; background: var(--hold) !important; border-color: var(--hold) !important; opacity: 1; }
button.busy::after { content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border: 3px solid rgba(255,255,255,.5); border-top-color: #fff; border-radius: 50%; animation: oes-spin .8s linear infinite; }
@keyframes oes-spin { to { transform: rotate(360deg); } }
/* ===== I-2：２階ボード・１階ボード（席の表のタイムライン・GAS seat_board_monitor_v1 の色） ===== */
:root { --tl-normal: #2E6DA4; --tl-normal-soft: #DCEBF7; --tl-party: #C0392B; --tl-party-soft: #FBE0DC; --tl-past: #E7EAEA; --tl-fin: #EDEFEE; --tl-fin-line: #C7CDCC; --tl-now: #E53935; }
body.seatboard main { max-width: none; padding: 8px; }
.tl-top { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin-bottom: 6px; }
.tl-top button, .tl-top input { margin: 0; min-height: 40px; width: auto; }
.tl-top .tl-count { font-weight: 700; }
.tl-box { position: relative; overflow: auto; max-height: calc(100vh - 150px); border: 1px solid var(--line); border-radius: 8px; background: var(--card); -webkit-overflow-scrolling: touch; }
.tl-grid { position: relative; }
.tl-head { position: absolute; top: 0; left: 0; z-index: 20; height: 32px; background: var(--card); border-bottom: 1px solid var(--line); will-change: transform; }
.tl-corner { position: absolute; top: 0; left: 0; z-index: 22; width: 54px; height: 32px; background: var(--card); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); will-change: transform; }
.tl-hour { position: absolute; top: 6px; z-index: 1; font-weight: 700; font-size: 13px; color: var(--muted); transform: translateX(-50%); white-space: nowrap; }
.tl-col { position: absolute; left: 0; z-index: 18; will-change: transform; width: 54px; background: var(--card); border-right: 1px solid var(--line); }
.tl-tno { position: absolute; left: 0; width: 54px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 17px; border-bottom: 1px solid var(--line); background: var(--card); }
.tl-tno.hold { color: var(--hold); }
.tl-tno.pick { background: #e3f2fd; outline: 2px dashed #1e88e5; }
.tl-rows { position: absolute; top: 32px; }
.tl-rowline { position: absolute; left: 0; right: 0; border-bottom: 1px solid var(--line); }
.tl-sep { position: absolute; left: 0; right: 0; border-top: 3px solid var(--ink); }
.tl-gridline { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--line); }
.tl-pastbg { position: absolute; top: 0; bottom: 0; left: 0; background: var(--tl-past); }
.tl-nowline { position: absolute; top: 0; bottom: 0; width: 2px; background: var(--tl-now); z-index: 15; pointer-events: none; }
.tl-bar { position: absolute; border-radius: 8px; overflow: hidden; padding: 0 6px; display: flex; flex-direction: column; justify-content: center; border: 1.5px solid var(--line); cursor: pointer; z-index: 10; user-select: none; -webkit-user-select: none; touch-action: manipulation; }
.tl-bar .l1 { font-size: 16px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.25; }
.tl-bar .l2 { font-size: 13px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: .9; }
.tl-bar.res-normal { background: #F1F7FC; border: 1.5px dashed var(--tl-normal); color: var(--tl-normal); }
.tl-bar.res-party { background: #FDF2F0; border: 1.5px dashed var(--tl-party); color: var(--tl-party); }
.tl-bar.act-normal { background: var(--tl-normal-soft); border-color: var(--tl-normal); color: var(--tl-normal); }
.tl-bar.act-party { background: var(--tl-party-soft); border-color: var(--tl-party); color: var(--tl-party); }
.tl-bar.late { border: 2px dashed #E07000; }
.tl-bar.left { background: var(--tl-fin); border-color: var(--tl-fin-line); color: #6E7B76; }
.tl-bar.moving { outline: 3px solid #1e88e5; outline-offset: 1px; }
.tl-tag { display: inline-block; font-size: 11px; font-weight: 800; padding: 0 5px; margin-right: 4px; border-radius: 4px; vertical-align: middle; color: #fff; background: #555; }
.tl-tag.late { background: #E07000; } .tl-tag.paid { background: var(--ok); } .tl-tag.ot { background: #8A3B00; } .tl-tag.hold { background: var(--hold); } .tl-tag.pt { background: #0F6E63; } .tl-tag.nx { background: #455A64; }
.tl-banner { position: sticky; top: 0; z-index: 30; padding: 10px 14px; background: #1e88e5; color: #fff; font-weight: 800; border-radius: 8px; margin-bottom: 6px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.tl-banner button { margin: 0; background: #fff; color: #1e88e5; }
.tl-closed { padding: 10px 14px; border: 2px solid var(--bad); color: var(--bad); border-radius: 8px; font-weight: 800; margin-bottom: 6px; }
dialog.sheet { max-width: 480px; }
dialog.sheet h3 { margin: 0 0 6px; }
dialog.sheet .rows div { padding: 2px 0; }
dialog.sheet .acts { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin-top: 10px; }
dialog.sheet .acts button, dialog.sheet .acts a.btn { margin: 0; min-height: 52px; font-size: 18px; text-align: center; }
a.btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 18px; border-radius: 8px; background: var(--accent); color: #fff; font-weight: 700; text-decoration: none; }
/* ===== 卓情報（GAS seat_board_input_v5 の並び） ===== */
.seatform .step { display: flex; align-items: baseline; gap: 8px; margin: 0 0 6px; }
.seatform .step-num { font: 800 13px/1 ui-monospace, monospace; color: var(--muted); }
.seatform .step-title { font-weight: 800; }
.seatform .seg { display: flex; flex-wrap: wrap; gap: 6px; }
.seatform .seg button { margin: 0; min-height: 48px; background: var(--card); color: var(--ink); border: 2px solid var(--line); }
.seatform .seg button.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.seatform .tgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px; margin: 4px 0 10px; }
.seatform .tgrid button { margin: 0; min-height: 48px; font-size: 18px; background: var(--card); color: var(--ink); border: 2px solid var(--line); }
.seatform .tgrid button.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.seatform .tgrid button.busy-t { border-color: var(--bad); color: var(--bad); }
.seatform .grp { font-weight: 700; color: var(--muted); margin-top: 6px; }
.seatform .stepper { display: flex; align-items: center; gap: 8px; }
.seatform .stepper button { margin: 0; min-width: 56px; min-height: 52px; font-size: 24px; }
.seatform .stepper input { width: 90px; text-align: center; font-size: 22px; }
.seatform input.time4 { width: 140px; font-size: 22px; }
.seat-foot { position: sticky; bottom: 0; background: var(--card); border-top: 1px solid var(--line); padding: 10px 16px; z-index: 5; }
.seat-foot .preview { font-weight: 700; margin-bottom: 6px; overflow-wrap: anywhere; }
.seat-foot .acts { display: flex; flex-wrap: wrap; gap: 8px; }
.seat-foot .acts button { margin: 0; min-height: 52px; font-size: 18px; flex: 1 1 140px; }
/* I-3：メモ①〜⑤（ボード）・予約一覧 */
.tl-memo { border: 2px solid var(--line); border-radius: 8px; background: var(--card); padding: 8px 12px; margin-bottom: 6px; }
.tl-memo-h { font-weight: 800; margin-bottom: 4px; }
.tl-memo-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px dashed var(--line); }
.tl-memo-row:first-child { border-top: none; }
.tl-memo-row .n { font-weight: 800; color: var(--accent); flex: 0 0 auto; font-size: 18px; }
.tl-memo-row .t { flex: 1 1 auto; min-width: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.tl-memo-row textarea { flex: 1 1 auto; min-width: 0; min-height: 60px; margin: 0; }
.tl-memo-row .a { flex: 0 0 auto; display: flex; gap: 6px; flex-wrap: wrap; }
.tl-memo-row .a button { margin: 0; min-height: 44px; width: auto; }
.rsv-top { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin-bottom: 8px; }
.rsv-top button, .rsv-top input, .rsv-top select { margin: 0; min-height: 40px; width: auto; }
.rsv-now { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; margin-bottom: 8px; }
.rsv-now .card { margin: 0; }
.rsv-now .big { font-size: 22px; font-weight: 800; }
.rsv-memos { margin-bottom: 8px; }
.rsv-memos div { padding: 2px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
table.rsv { width: 100%; border-collapse: collapse; font-size: 16px; }
table.rsv th, table.rsv td { border-bottom: 1px solid var(--line); padding: 6px 6px; text-align: left; vertical-align: top; }
table.rsv th { font-size: 13px; color: var(--muted); }
table.rsv td.num { text-align: right; white-space: nowrap; }
table.rsv td.tm { font-weight: 800; white-space: nowrap; }
table.rsv tr.party td.tm { color: var(--tl-party); }
table.rsv tr.gone td { color: var(--muted); }
table.rsv tr[data-id] { cursor: pointer; }
.rsv-st { display: inline-block; font-size: 12px; font-weight: 800; padding: 1px 6px; border-radius: 4px; color: #fff; background: #607D8B; white-space: nowrap; }
.rsv-st.reserved { background: var(--tl-normal); } .rsv-st.late { background: #E07000; } .rsv-st.seated { background: var(--ok); } .rsv-st.settled_seated { background: #0F6E63; } .rsv-st.left, .rsv-st.cancelled { background: #9E9E9E; }
@media (max-width: 640px) {
  table.rsv thead { display: none; }
  table.rsv, table.rsv tbody, table.rsv tr, table.rsv td { display: block; width: auto; }
  table.rsv tr { border: 1px solid var(--line); border-radius: 8px; margin-bottom: 8px; padding: 6px 10px; background: var(--card); }
  table.rsv td { border: none; padding: 1px 0; text-align: left; }
  table.rsv td.num { text-align: left; }
  table.rsv td[data-l]::before { content: attr(data-l) "："; color: var(--muted); font-size: 13px; }
}
@media print {
  header, nav, .rsv-top, #msg, #problem { display: none !important; }
  body, .card, table.rsv tr { background: #fff !important; color: #000 !important; }
  table.rsv tr.party td.tm { color: #000 !important; }
  table.rsv { font-size: 12pt; }
  table.rsv thead { display: table-header-group; }
  table.rsv tr { page-break-inside: avoid; }
  .rsv-st { color: #000 !important; background: none !important; border: 1px solid #000; }
  .rsv-print-h { display: block !important; }
}
.rsv-print-h { display: none; font-weight: 800; font-size: 16pt; margin-bottom: 6px; }
/* バッチ 1：端末の注文の列の帯（GAP C-05・GAS の上の赤い帯） */
#oqbar { margin: 0 0 10px; }
#oqbar .oq { border: 2px solid var(--warn); border-radius: 8px; padding: 8px 12px; margin-bottom: 6px; font-weight: 700; }
#oqbar .oq.bad { border-color: #b71c1c; background: #b71c1c; color: #fff; }
#oqbar .oq.hold { border-color: var(--hold); }
#oqbar .oq-a { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
#oqbar .oq-a button { margin: 0; min-height: 44px; width: auto; }
#oqbar .oq.bad .oq-a button { background: #fff; color: #b71c1c; border-color: #fff; }
#oqbar .oq.bad .oq-a button.danger { background: #7f0000; color: #fff; border-color: #fff; }
#oqbar .oq-ask { flex-basis: 100%; }
/* バッチ 1：注文確認（GAS T138/T139）・注文を確定 */
.line.sent.minus { background: #fdecea; border-left: 4px solid #c62828; }
.line.sent.plus { background: #e3f0fd; border-left: 4px solid #1565c0; }
.line.sent button.m { border: 3px solid #c62828; color: #c62828; background: #fff; font-size: 24px; }
.line.sent button.p { border: 3px solid #1565c0; color: #1565c0; background: #fff; font-size: 24px; }
.line.sent button:disabled { border-color: #cfd8dc; color: #b0bec5; }
.line.sent .old { font-size: 15px; color: #78909c; }
.line.sent .nw.minus { color: #c62828; } .line.sent .nw.plus { color: #1565c0; }
.tag { display: inline-block; font-size: 13px; font-weight: 800; padding: 0 6px; border-radius: 6px; color: #fff; }
.tag.minus { background: #c62828; } .tag.plus { background: #1565c0; }
#send.cut { background: #c62828; border-color: #c62828; }
#send.armed { box-shadow: 0 0 0 4px #ffca28 inset; }
/* バッチ 1：会計（確認へ進む・早押し・数字ボタン・来店中のまま会計）・会計を直す */
.quick { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.quick button { margin: 0; min-height: 52px; width: auto; flex: 1 1 90px; font-size: 18px; }
.keypad.pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; max-width: 360px; }
.keypad.pad button { margin: 0; min-height: 56px; font-size: 22px; }
table.cf td { font-size: 18px; padding: 6px 4px; } table.cf tr.total td { font-size: 22px; font-weight: 800; }
label.keep { display: block; margin: 10px 0; font-size: 18px; font-weight: 700; }
button.warn { background: var(--warn); border-color: var(--warn); color: #000; }
button.danger { background: #b71c1c; border-color: #b71c1c; color: #fff; }
/* バッチ 1：ボード（金額の札・店PC が止まった帯・帯を動かす） */
.tl-amt { position: absolute; right: 4px; bottom: 2px; font-size: 12px; font-weight: 800; padding: 0 5px; border-radius: 4px; background: #fff; color: #b71c1c; border: 1px solid #b71c1c; pointer-events: none; }
.tl-pcw { position: sticky; top: 0; z-index: 40; background: #c62828; color: #fff; font-weight: 800; font-size: 18px; text-align: center; padding: 8px 16px; border-radius: 8px; margin-bottom: 6px; pointer-events: none; }
.tl-bar.dragging { opacity: .45; }
.tl-ghost { position: absolute; z-index: 30; border: 2px dashed #1e88e5; background: rgba(30, 136, 229, .18); border-radius: 8px; pointer-events: none; }
.tl-dragtag { position: absolute; z-index: 31; background: #1e88e5; color: #fff; font-weight: 800; font-size: 14px; padding: 2px 8px; border-radius: 6px; white-space: nowrap; pointer-events: none; }
/* バッチ 2：注文画面（O-02 飲み方のボタン・O-03 付ける帯・O-14 2 列／下から開くカート・C-07 言葉のボタン） */
.stylebox { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.stylebox button { margin: 0; min-height: 64px; font-size: 20px; }
.phrases { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.phrases button { margin: 0; min-height: 44px; width: auto; }
.phrases button.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.addon-bar { position: sticky; bottom: 76px; z-index: 25; background: var(--card); border: 2px solid var(--accent); border-radius: 10px; padding: 6px 10px; margin: 0 8px 6px; }
.addon-bar .ab-h { display: flex; justify-content: space-between; align-items: center; font-weight: 800; }
.addon-bar .ab-h button { margin: 0; min-height: 40px; width: auto; }
.addon-bar .ab-b { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.addon-bar .ab-b button { margin: 0; min-height: 48px; width: auto; flex: 1 1 90px; }
.addon-bar .ab-b button.on { background: var(--hold); border-color: var(--hold); color: #fff; }
/* バッチ 2：ボード（1階の小さな板・帯の窓の大きいボタン） */
.f1mini { position: fixed; right: 16px; bottom: 16px; z-index: 45; background: #263238; color: #fff; border-radius: 12px; padding: 8px 12px; box-shadow: 0 4px 12px rgba(0,0,0,.3); touch-action: none; user-select: none; -webkit-user-select: none; cursor: grab; max-width: 280px; }
.f1mini .f1sum { font-weight: 800; font-size: 16px; }
.f1mini .f1list { display: none; margin-top: 6px; max-height: 50vh; overflow: auto; }
.f1mini.open .f1list { display: block; }
.f1mini .f1list a { display: block; color: #fff; padding: 6px 0; border-top: 1px solid rgba(255,255,255,.2); text-decoration: none; }
.f1mini .f1list a.f1all { font-weight: 800; }
dialog.sheet .acts .pick { min-height: 64px; font-size: 20px; font-weight: 800; color: #fff; border: 0; }
dialog.sheet .acts .pick.order { background: #0F6E63; } dialog.sheet .acts .pick.ck { background: #1565c0; } dialog.sheet .acts .pick:disabled { background: #c9d1d8; color: #5c6b7a; }
dialog.sheet .acts .wide.detail { grid-column: 1 / -1; background: #5b4a9e; color: #fff; min-height: 52px; font-weight: 800; }
.seat-foot .preview.bad { color: #fff; background: #c62828; border-radius: 8px; padding: 6px 10px; }
#nextActs { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
#nextActs .pick { background: #0F6E63; color: #fff; font-weight: 800; }
/* バッチ 2：会計（K-11 3 列・上の帯・K-09 ポイントの赤い帯・K-04 合算） */
.ck-top { display: flex; gap: 12px; align-items: center; padding: 6px 0 8px; border-bottom: 2px solid var(--line); margin-bottom: 8px; }
.ck-top strong { font-size: 18px; }
.pointbar { background: #c62828; color: #fff; font-weight: 800; padding: 10px 14px; border-radius: 8px; margin-bottom: 8px; }
.pointbar button { margin: 6px 0 0; background: #fff; color: #c62828; width: auto; }
.ck-tools { display: flex; flex-wrap: wrap; gap: 8px; } .ck-tools button { margin: 0; width: auto; }
label.mrow { display: block; padding: 8px 0; font-size: 18px; border-bottom: 1px solid var(--line); }
/* バッチ 2：締め（R-01〜R-03・R-05・R-06） */
.donebar { background: var(--ok); color: #fff; font-weight: 800; padding: 10px 14px; border-radius: 8px; margin-bottom: 8px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.donebar .btn { background: #fff; color: #1b5e20; }
.chk .chkrow { display: grid; grid-template-columns: 6em minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.chk .chkrow input { margin: 4px 0; }
.chk .bad { color: var(--bad); font-weight: 700; }
a.cashlink { font-size: 15px; font-weight: 600; margin-left: 10px; }
.sbr-btns { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; } .sbr-btns button { margin: 0; width: auto; }
dialog.wide { max-width: 760px; }
#sbrText { width: 100%; min-height: 120px; }
.sbr-box { border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; margin: 6px 0; }
.sbr-box .t { font-weight: 800; } .sbr-ok { color: var(--ok); font-weight: 700; } .sbr-hint { color: var(--muted); padding-left: 1em; }
.cdh-cand { border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; margin: 6px 0; white-space: pre-wrap; } .cdh-cand.exact { border: 2px solid var(--bad); }
.cdh-cand .t { font-weight: 800; }
/* バッチ 2：入出金（R-07）・テーブル一覧（TL-01） */
.purposes { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; } .purposes button { margin: 0; width: auto; min-height: 48px; }
.purposes button.on, .seg button.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.cashlist li { padding: 6px 0; border-bottom: 1px solid var(--line); } .cashlist li button { margin: 0 0 0 6px; width: auto; min-height: 36px; padding: 2px 10px; }
.tgrid-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-top: 8px; }
.tcard { border: 2px solid var(--line); border-radius: 10px; padding: 8px; background: var(--card); display: flex; flex-direction: column; gap: 4px; }
.tcard .tno { font-size: 24px; font-weight: 800; } .tcard .tst { font-weight: 700; color: var(--muted); }
.tcard.active { border-color: #2E6DA4; } .tcard.active .tst { color: #2E6DA4; } .tcard.settled { border-color: var(--ok); } .tcard.hold { border-color: var(--hold); } .tcard.hold .tst { color: var(--hold); }
.tcard .amt { color: #b71c1c; font-size: 18px; }
.tcard .tacts { display: flex; gap: 6px; flex-wrap: wrap; margin-top: auto; } .tcard .tacts .btn { flex: 1 1 60px; text-align: center; margin: 0; }
/* バッチ 3（GAP P3） */
button[aria-busy="true"] .spin, .spin { display: inline-block; width: 1em; height: 1em; margin-right: 6px; border: 3px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; animation: oesspin .8s linear infinite; vertical-align: -2px; }
@keyframes oesspin { to { transform: rotate(360deg); } }
.t126 { display: flex; gap: 16px; flex-wrap: wrap; font-size: 16px; margin: 4px 0; } .t126 strong { font-size: 20px; margin: 0 4px; } .t126 small { color: var(--muted); }
.kitchen { margin: 4px 0; } .kitchen button { width: auto; margin: 0; min-height: 44px; } .kmsg { white-space: pre-line; display: block; margin-top: 6px; }
.sendstate { flex: 1 0 100%; margin: 0; font-weight: 800; padding: 4px 8px; border-radius: 8px; cursor: pointer; }
.sendstate.done { background: #e8f5e9; color: #1b5e20; } .sendstate.wait { background: #fff8e1; color: #7a4b00; } .sendstate.stop { background: #ffebee; color: #b71c1c; }
.sticky { flex-wrap: wrap; }
dialog.unsent h3 { color: #8a1f1f; } dialog.unsent .col { display: flex; flex-direction: column; gap: 8px; } dialog.unsent .col button { width: 100%; min-height: 58px; font-size: 17px; font-weight: 700; margin: 0; }
dialog.unsent .stay { background: #fff; color: #1d4ed8; border: 3px solid #1d4ed8; } dialog.unsent .sendfirst { background: #fff; color: #0F6E63; border: 3px solid #0F6E63; } dialog.unsent .danger { background: #fff; color: #8a1f1f; border: 3px solid #8a1f1f; }
/* 会計（K-08・K-10・K-12・K-13・K-14・K-15・R-09） */
.idlebar { background: #fff3cd; color: #7a4b00; font-weight: 800; padding: 8px 12px; border-radius: 8px; margin-bottom: 8px; display: flex; gap: 10px; align-items: center; } .idlebar button { width: auto; margin: 0; }
.cnnote { border: 3px solid #c62828; background: #fff3f3; color: #7a0000; font-size: 17px; line-height: 1.6; padding: 10px 12px; border-radius: 10px; margin-bottom: 10px; }
.cnnote .cn-h { font-weight: 800; font-size: 18px; } .cnnote button { width: auto; margin-top: 8px; min-height: 44px; border: 2px solid #c62828; background: #fff; color: #c62828; font-weight: 800; }
.taxlines .taxrow { display: flex; justify-content: space-between; gap: 12px; } #cRates .taxrow { padding: 2px 0; }
.chg { margin: 6px 0; } .chg strong { display: inline-block; font-size: 34px; color: #0b5d1e; background: #eaf7ee; border-radius: 10px; padding: 4px 10px; }
.methods { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; } .methods button { margin: 0; width: auto; min-height: 52px; flex: 1 1 100px; }
.methods button.on { background: var(--accent); color: #fff; } .methods button.off { background: var(--card); color: var(--ink); border-color: var(--line); } .methods p { flex: 1 0 100%; margin: 4px 0 0; }
.pay .pm { font-weight: 800; font-size: 18px; min-width: 6em; }
.pbprint { display: none; }
.menu { display: grid; gap: 12px; } .menu-btns { display: grid; gap: 8px; } .menubtn { display: flex; flex-direction: column; text-align: left; min-height: 56px; justify-content: center; font-size: 18px; } .menubtn small { font-size: 13px; opacity: .85; }
.clock { font-size: 40px; font-weight: 800; font-variant-numeric: tabular-nums; } .menusales .ms { display: inline-block; margin: 2px 8px 2px 0; font-weight: 700; } .menusales .tot { color: #0b5d1e; }
@media (min-width: 900px) { .menu { grid-template-columns: 2fr 1fr; } }
/* 開店・締め（R-04・R-08・R-10） */
.opendiff { background: #c62828; color: #fff; padding: 8px 12px; border-radius: 10px; font-size: 18px; font-weight: 800; }
#oesKp { width: 300px; max-width: 100%; background: var(--card); border: 2px solid var(--accent); border-radius: 12px; padding: 10px; margin: 6px 0; box-shadow: 0 4px 14px rgba(0,0,0,.18); }
#oesKp .kp-h { display: flex; justify-content: space-between; font-weight: 800; } #oesKp .kp-val { font-size: 24px; font-variant-numeric: tabular-nums; }
#oesKp .kp-hint { margin: 4px 0 8px; padding: 6px 10px; border-radius: 8px; background: #f3f8fd; border: 1px solid #c8dcf0; color: #12406e; font-size: 17px; font-weight: 800; }
#oesKp .kp-keys { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; } #oesKp .kp-keys button { margin: 0; min-height: 48px; font-size: 20px; } #oesKp .kp-ok { grid-column: span 3; }
dialog.rep { max-width: 1100px; width: calc(100% - 24px); } dialog.rep iframe { width: 100%; height: 75vh; border: 0; }
body.embed > header { display: none; }
/* ボード・卓情報（B2-10・B2-12・B1-04・SI-04） */
.tl-bar.overtime { border-style: dashed; }
.tl-ot { position: absolute; top: 0; bottom: 0; pointer-events: none; background: repeating-linear-gradient(135deg, rgba(0,0,0,.07) 0 6px, transparent 6px 12px); border-left: 2px dashed rgba(0,0,0,.25); }
.tl-ot .tl-tag { position: absolute; right: 3px; top: 3px; margin: 0; }
dialog.sheet .pick-col { display: flex; flex-direction: column; gap: 8px; grid-column: 1 / -1; } dialog.sheet .pick-col > * { width: 100%; min-height: 56px; display: flex; align-items: center; justify-content: center; margin: 0; font-size: 18px; }
a.btn.reprint { background: #455a64; color: #fff; }
.memogrid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; } .memogrid button { margin: 0; min-height: 56px; display: flex; flex-direction: column; align-items: center; }
.memogrid button small { font-size: 12px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .memogrid button.used { background: #fff8e1; color: #7a4b00; border-color: #e0a040; }
/* レシート（RV-05・RV-06） */
.datebox { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; } .datebox button { width: auto; margin: 0; min-height: 44px; } .datebox input { width: auto; margin: 0; }
#floorBtns { margin: 8px 0; } #floorBtns button { width: auto; } td.pays { font-size: 13px; color: var(--muted); } .allbar button { width: auto; }
@media print {
  body.print-prebill * { visibility: hidden; }
  body.print-prebill .pbprint, body.print-prebill .pbprint * { visibility: visible; }
  body.print-prebill .pbprint { display: block; position: absolute; left: 0; top: 0; width: 72mm; font-size: 12px; }
  body.print-prebill .pbprint table { width: 100%; } body.print-prebill .pbprint .pb-total { font-size: 18px; font-weight: 800; }
}
/* F2：帯の窓の大きいボタンは横に並べる（GAS oesPick：flex・高さ 56px・押せないものは灰色） */
dialog.sheet .pick-row { display: flex; gap: 8px; grid-column: 1 / -1; }
dialog.sheet .pick-row > * { flex: 1 1 0; min-width: 0; min-height: 56px; margin: 0; display: flex; align-items: center; justify-content: center; font-size: 19px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
dialog.sheet .pick-row > button:disabled { background: #c9d1d8; color: #5c6b7a; }
/* オーナーの試しの直し（F6・F7・F8） */
.pq { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin-top: 8px; } .pq button { margin: 0; min-height: 44px; }
.memo-section { margin-top: 10px; }
#notes { width: 100%; min-height: 80px; box-sizing: border-box; resize: vertical; line-height: 1.5; }
#fixMsg { white-space: pre-line; }
.prods button small.nhfree { color: #7b1fa2; font-weight: 800; }
/* メニュー（/menu）：GAS 会計画面.html #oesMenu（:77-99・308-323・613-617）と同じ */
:root { --oes-blue: #1769aa; --oes-deep: #0f4f82; }
.oesMenuGrid { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; }
@media (min-width: 900px) { .oesMenuGrid { grid-template-columns: minmax(0,420px) minmax(0,1fr); gap: 20px; align-items: stretch; } }
.oesMenuBtns { display: flex; flex-direction: column; gap: 12px; }
.oesMenuBtn { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 72px; padding: 14px 18px; border-radius: 14px; border: 1px solid var(--line); background: #fff; color: #1e293b; font-size: 22px; font-weight: bold; text-align: left; text-decoration: none; box-sizing: border-box; }
.oesMenuBtn .oesMenuSub { font-size: 14px; font-weight: normal; color: #5c6b7a; }
.oesMenuBtn .oesMenuArrow { font-size: 22px; color: #8a97a3; flex: none; }
.oesMenuBtn.oesPrimary { min-height: 96px; background: var(--oes-blue); border-color: var(--oes-deep); color: #fff; font-size: 26px; }
.oesMenuBtn.oesPrimary .oesMenuSub, .oesMenuBtn.oesPrimary .oesMenuArrow { color: #dce9f5; }
.oesMenuClock { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 24px 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: #1e293b; }
.oesMenuTime { font-size: clamp(64px, 12vw, 132px); font-weight: bold; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.oesMenuDay { margin-top: 14px; font-size: 22px; font-variant-numeric: tabular-nums; }
.oesMenuBiz { margin-top: 10px; font-size: 17px; color: var(--muted); font-variant-numeric: tabular-nums; }
@media (min-width: 900px) { .oesMenuClock { min-height: 473px; } }
@media (max-width: 899px) { .oesMenuClock { order: -1; min-height: 0; padding: 16px; } .oesMenuTime { font-size: 64px; } .oesMenuDay { margin-top: 8px; font-size: 19px; } }
@media (max-width: 420px) { .oesMenuBtn { font-size: 20px; } .oesMenuBtn.oesPrimary { font-size: 22px; } }
.oesMenuReg { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px; font-size: 18px; }
.oesMenuReg .oesRegLine { font-size: 20px; } .oesMenuReg .ok { color: #1b5e20; } .oesMenuReg .warn, .oesMenuSales .warn { color: #8a5a00; }
.oesMenuSales { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 10px 16px; font-variant-numeric: tabular-nums; }
.oesE1Head { font-size: 13px; color: var(--muted); }
.oesE1Row { display: flex; justify-content: space-between; } .oesE1Row .oesE1V { font-size: 20px; font-weight: bold; } .oesE1Row.oesE1Total .oesE1V { font-size: 22px; }
.oesMenuMore { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 16px; font-size: 15px; }
.oesMenuMore a, .oesMenuMore .linkish { color: var(--muted); }
button.linkish { background: none; border: 0; padding: 0; margin: 0; font: inherit; text-decoration: underline; cursor: pointer; }
main.menu-main { max-width: none; }
/* 登録の案内の大きいボタン */
.menu-btn { display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: 84px; margin: 0; padding: 12px; border-radius: 12px; border: 2px solid var(--accent); background: var(--card); color: var(--accent); font-size: 22px; font-weight: 800; text-decoration: none; text-align: center; width: 100%; max-width: 360px; }
.menu-sub { display: block; font-size: 13px; font-weight: 600; opacity: .85; margin-top: 2px; }
/* お店に貼る QR（/manager）：印刷は A5 のカードだけ */
.storeqr-card { text-align: center; }
.storeqr-card svg { width: 220px; height: 220px; background: #fff; padding: 8px; border-radius: 8px; }
.storeqr-label { font-size: 22px; font-weight: 800; margin: 8px 0 4px; }
.storeqr-url { word-break: break-all; }
@media print {
  @page { size: A5 portrait; margin: 12mm; }
  body.print-storeqr * { visibility: hidden; }
  body.print-storeqr .storeqr-card, body.print-storeqr .storeqr-card * { visibility: visible; }
  body.print-storeqr .storeqr-card { position: absolute; left: 0; top: 0; width: 100%; border: 2px solid #000; border-radius: 12px; padding: 10mm; box-sizing: border-box; background: #fff !important; color: #000 !important; }
  body.print-storeqr .storeqr-card svg { width: 90mm; height: 90mm; padding: 0; }
  body.print-storeqr .storeqr-label { font-size: 20pt; }
  body.print-storeqr .storeqr-howto { font-size: 12pt; color: #000 !important; }
  body.print-storeqr .storeqr-noprint { display: none !important; }
}
/* GAS 会計画面.html :336・:612-620（文字を減らす・詰めた大きさ）・:690-691（携帯では会計・管理を出さない＝ため81） */
.oesMenuSub { display: none !important; }
main.menu-main { padding: 8px 10px; }
.oesMenuGrid { gap: 10px; } .oesMenuBtns { gap: 8px; }
.oesMenuBtn { min-height: 60px; padding: 10px 16px; } .oesMenuBtn.oesPrimary { min-height: 80px; }
.oesMenuReg { padding: 8px 14px; }
@media (min-width: 900px) { .oesMenuGrid { gap: 12px; } .oesMenuClock { min-height: 0; } }
@media (max-width: 699.98px) { #mCheckout, #mClose { display: none !important; } }
@media (max-width: 599px) { #oesMode .mode-tag { max-width: 46vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } }

/* ===== B 注文：GAS 注文画面_カテゴリ版.html と同じ（カテゴリ一覧 → 品の一覧 → 戻る・色・カート・注文済み） ===== */
main.ord3 { max-width: none; padding: 8px 8px 132px; display: block; }
main.ord3 > .note, main.ord3 > .banner { margin: 0 0 8px; }
.ord3 .ord-tcard { border: 2px solid #ff9800; border-radius: 10px; background: #fff; padding: 10px; margin-bottom: 10px; }
.ord3 .ord-tno { border: 3px solid #1d4ed8; border-radius: 10px; padding: 8px 10px; font-size: 20px; }
.ord3 .ord-tno small { font-size: 13px; }
.ord3 .ord-topbtns { display: none; gap: 8px; margin-bottom: 10px; }
.ord3 .ord-topbtns button { flex: 1 1 0; margin: 0; min-height: 40px; font-size: 15px; font-weight: bold; border-radius: 8px; background: #fff; }
.ord3 .ord-free { color: #1d4ed8; border: 2px solid #3b82f6; }
.ord3 .ord-sentbtn { color: #c62828; border: 2px solid #c62828; }
.ord3 .ord-freecard { border: 2px solid #3b82f6; border-radius: 10px; background: #eff6ff; padding: 10px; margin-bottom: 10px; }
.ord3 .ord-freeh { font-size: 18px; font-weight: bold; color: #1d4ed8; margin-bottom: 6px; }
.ord3 .ord-freecard .ord-free { width: 100%; margin: 0; background: #fff; font-size: 16px; font-weight: bold; min-height: 46px; }
.ord3 .t126 { display: block; border: 2px solid #f59e0b; background: #fffbeb; border-radius: 10px; padding: 12px 14px; margin: 0 0 10px; color: #7c4a03; }
.ord3 .t126 .t126r { display: flex; justify-content: space-between; align-items: baseline; font-weight: bold; }
.ord3 .t126 .t126r + .t126r { margin-top: 6px; }
.ord3 .t126 strong { font-size: 22px; color: #1f2937; margin: 0; font-variant-numeric: tabular-nums; }
.ord3 .t126 .t126s { text-align: right; font-size: 12px; color: #6b7280; }
.ord3 .t126 .t126wait { font-size: 22px; color: #1f2937; }
.ord3 .kitchen { font-size: 14px; } .ord3 .kitchen button { min-height: 40px; font-size: 14px; }
/* B-01・B-02・B-06：カテゴリは縦 1 列の大きなボタン（料理＝オレンジ・飲み物＝薄い青） */
.ord3 .cats { display: flex; flex-direction: column; gap: 10px; padding: 8px 10px; margin: 0; }
.ord3 .cats button { margin: 0; min-height: 60px; padding: 12px; font-size: 20px; font-weight: bold; border-radius: 10px; width: 100%; }
.ord3 .cats button.oesCatFood { background: #ff9800; color: #fff; border: 2px solid #f57c00; }
.ord3 .cats button.oesCatDrink { background: #dcefff; color: #0d3b66; border: 2px solid #7fb8ee; }
.ord3 .cats button:active { opacity: .8; }
/* B-07：品は 1 行に 1 品（左に品名・右に値段） */
.ord3 .prods { display: flex; flex-direction: column; gap: 8px; padding: 0 0 8px; }
.ord3 .prods button { margin: 0; min-height: 60px; padding: 10px 12px; font-size: 20px; font-weight: bold; color: #111; background: #fff; border: 2px solid #333; border-radius: 10px; display: flex; justify-content: space-between; align-items: center; gap: 10px; text-align: left; width: 100%; }
.ord3 .prods button .pn { min-width: 0; }
.ord3 .prods button small { display: inline; color: #1d4ed8; font-weight: bold; font-size: 18px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ord3 .prods button small.noprice { color: #b91c1c; }
.ord3 .prods button small.nhfree { color: #7b1fa2; }
.ord3 .prods button:active { background: #e0e0e0; }
.ord3 .prods button.hit .pn { color: #2e7d32; }
.ord3 .ord-back { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1400; margin: 0; border: 0; border-radius: 0; min-height: 60px; font-size: 19px; font-weight: bold; background: #1d4ed8; color: #fff; }
/* B-11・B-13・B-14：下の帯（仮カート ▼ n点 ¥・オレンジの注文を確定） */
.ord3 .ord-dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1300; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 10px; background: #fff; border-top: 3px solid #e65100; }
body.ord-backon .ord3 .ord-dock { bottom: 60px; }
.ord3 .cart-open-btn { flex: 1 1 0; margin: 0; min-height: 56px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 4px 12px; background: #eaf2ff; border: 2px solid #1769aa; color: #0d3b8a; font-size: 15px; font-weight: bold; border-radius: 10px; line-height: 1.25; }
.ord3 .cart-open-btn strong { font-size: 16px; font-variant-numeric: tabular-nums; }
.ord3 #send { flex: 0 0 46%; margin: 0; min-height: 56px; font-size: 19px; font-weight: bold; background: #e65100; border: 0; color: #fff; border-radius: 10px; }
.ord3 #send:disabled { opacity: 1; background: #ffb38a; }
.ord3 #send.cut { background: #c62828; }
.ord3 #send.armed { background: #b71c1c; box-shadow: inset 0 0 0 4px #ffca28; }
.ord3 #send .sub { display: block; font-size: 13px; font-weight: bold; }
/* カートの中（B-12） */
.ord3 .ord-cart { background: #eff6ff; border: 2px solid #93c5fd; border-radius: 10px; padding: 8px 10px; margin-bottom: 10px; }
.ord3 .cart-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.ord3 .cart-title { font-size: 15px; font-weight: bold; }
.ord3 .cart-sum { font-size: 17px; font-weight: bold; color: #1d4ed8; font-variant-numeric: tabular-nums; }
.ord3 #cartClose { margin: 0; min-height: 36px; padding: 4px 12px; font-size: 14px; }
.ord3 #cartEmpty { margin: 4px 0; font-size: 16px; }
.ord3 #cart .line { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto auto; align-items: center; gap: 6px; padding: 8px 0; border-bottom: 1px solid #c7dbf5; }
.ord3 #cart .line .nm { font-size: 16px; font-weight: bold; line-height: 1.3; }
.ord3 #cart .line .nm .amt { display: block; font-size: 12px; color: #6b7280; font-weight: normal; font-variant-numeric: tabular-nums; }
.ord3 #cart .line .q { min-width: 1.6em; text-align: center; font-size: 18px; font-weight: bold; }
.ord3 #cart .line button[data-a="dec"], .ord3 #cart .line button[data-a="inc"] { margin: 0; min-width: 44px; min-height: 44px; padding: 0; background: #fff; color: #333; border: 1px solid #b0bec5; font-size: 18px; }
.ord3 #cart .line button[data-a="del"] { margin: 0; min-height: 44px; padding: 0 8px; background: #fff; color: #c62828; border: 1px solid #ef9a9a; font-size: 13px; }
.ord3 #cart .line .chips { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.ord3 #cart .line .chips button { margin: 0; min-height: 36px; padding: 0 12px; border-radius: 18px; background: #fff; color: #37474f; border: 2px solid #90a4ae; font-size: 14px; font-weight: bold; width: auto; }
.ord3 #cart .line .chips button.on { background: #1565c0; border-color: #1565c0; color: #fff; }
.ord3 #cart .line .chips button[data-a="note"] { border-style: dashed; }
.ord3 #cart .line .note-t { grid-column: 1 / -1; font-size: 14px; color: #6b7280; }
/* 注文済み（B-15〜B-18） */
.ord3 .ord-sent { background: #fff; border: 2px solid #cbd5e1; border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
.ord3 .sent-h { display: flex; justify-content: space-between; align-items: center; }
.ord3 .sent-h h2 { font-size: 20px; margin: 0; color: #334155; }
.ord3 #sentReload { margin: 0; min-height: 44px; padding: 0 12px; background: #fff; color: #334155; border: 2px solid #94a3b8; font-weight: bold; }
.ord3 .sent-sum { font-size: 15px; color: #64748b; font-variant-numeric: tabular-nums; margin-top: 6px; }
.ord3 .sent-help { font-size: 12px; color: #475569; margin: 4px 0 6px; }
.ord3 #sent .line.sent { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 6px; padding: 4px 6px; margin-bottom: 6px; border: 2px solid #e2e8f0; border-radius: 10px; background: #fff; }
.ord3 #sent .line.sent .nm { font-size: 16px; font-weight: bold; line-height: 1.25; }
.ord3 #sent .line.sent .nm small { display: block; font-size: 13px; font-weight: normal; color: #64748b; }
.ord3 #sent .line.sent button.m, .ord3 #sent .line.sent button.p { margin: 0; width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 10px; font-size: 26px; line-height: 1; }
.ord3 #sent .line.sent button.ph { visibility: hidden; margin: 0; width: 44px; height: 44px; padding: 0; }
.ord3 #sent .line.sent .q { font-size: 18px; font-weight: bold; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ord3 #sent .line.sent .q .old { font-size: 13px; color: #78909c; font-weight: bold; }
.ord3 #sent .line.sent.minus { background: #fdecea; border-color: #c62828; }
.ord3 #sent .line.sent.plus { background: #e3f0fd; border-color: #1565c0; }
.ord3 #sent .line.sent .tag { font-size: 13px; padding: 1px 6px; border-radius: 6px; margin-left: 4px; vertical-align: 2px; }
.ord3 .sent-stage { font-size: 15px; font-weight: bold; border-top: 1px solid #e2e8f0; padding-top: 6px; }
.ord3 .sent-stage .add { color: #1d4ed8; } .ord3 .sent-stage .cut { color: #c62828; } .ord3 .sent-stage .how { font-size: 13px; font-weight: normal; color: #475569; margin-top: 2px; }
.ord3 .sendstate { position: absolute; left: 8px; right: 8px; bottom: 100%; margin-bottom: 6px; }
.ord3 .sendstate.done { background: #e8f5e9; color: #1b5e20; border: 1px solid #a5d6a7; }
/* B-21：「○○ に付ける」帯 */
.ord3 .addon-bar { position: fixed; left: 8px; right: 8px; bottom: 140px; z-index: 1250; margin: 0; border-color: #1769aa; background: #f5f9ff; }
.ord3 .addon-bar .ab-b button { background: #fff; color: #37474f; border: 2px solid #90a4ae; border-radius: 18px; min-height: 40px; font-weight: bold; }
.ord3 .addon-bar .ab-b button.on { background: #1565c0; border-color: #1565c0; color: #fff; }
/* B-20：飲み方を選ぶ窓（2 列・56px・18px 太字） */
#dlg .stylebox { grid-template-columns: 1fr 1fr; }
#dlg .stylebox button { min-height: 56px; font-size: 18px; font-weight: bold; background: #fff; color: #0d3b66; border: 2px solid #7fb8ee; }
/* 狭い画面（携帯）：上のボタン 2 つ → まとめ → カテゴリ／品。カートは下の帯から上に開く */
@media (max-width: 899.98px) {
  .ord3 .ord-tcard, .ord3 .ord-freecard { display: none; }
  .ord3 .ord-topbtns { display: flex; }
  .ord3 .ord-side { display: none; }
  body.cart-open .ord3 .ord-side, body.sent-open .ord3 .ord-side { display: block; }
  body.cart-open .ord3 .ord-side { position: fixed; left: 0; right: 0; bottom: 76px; max-height: 62vh; overflow: auto; z-index: 1200; background: #fff; padding: 8px; border-top: 3px solid #e65100; box-shadow: 0 -4px 16px rgba(0,0,0,.2); }
  body.ord-backon.cart-open .ord3 .ord-side { bottom: 136px; }
  body.cart-open .ord3 #sentSec { display: none; }
  body.sent-open:not(.cart-open) .ord3 #cartSec { display: none; }
  body.sent-open .ord3 .ord-mid { display: none; }
  body.cart-open .ord3 .addon-bar { display: none; }
  .ord3 .kitchen { order: 9; }
}
/* 広い画面：左（卓・単価商品・まとめ）・真ん中（カテゴリ／品）・右（仮カート・注文済み）の 3 列 */
@media (min-width: 900px) {
  main.ord3 { display: grid; grid-template-columns: minmax(220px, 25%) minmax(0, 1fr) minmax(0, 32%); gap: 12px; align-items: start; padding: 12px 12px 140px; }
  main.ord3 > .note, main.ord3 > .banner { grid-column: 1 / -1; }
  .ord3 .ord-left { position: sticky; top: 76px; }
  .ord3 .ord-side { position: sticky; top: 76px; max-height: calc(100vh - 220px); overflow: auto; }
  .ord3 .cart-open-btn, .ord3 #cartClose { display: none; }
  .ord3 #send { flex: 1 1 100%; }
  .ord3 .ord-dock { border-top-color: #e65100; }
  .ord3 .ord-cart { background: #fff8e1; border-color: #ff9800; }
  .ord3 .cart-title { font-size: 18px; }
  .ord3 .cats { padding: 0; }
  .ord3 .addon-bar { display: none; }
}
@media (min-width: 1100px) {
  .ord3 .cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
  .ord3 .cats button { min-height: 52px; font-size: 17px; }
}
.ord3 .ord-backlink { display: inline-block; margin: 0 0 8px; font-size: 14px; color: #1d4ed8; }
@media (max-width: 899.98px) { .ord3 #send .sub { display: none; } }
.ord3 .cart-open-btn.empty { visibility: hidden; }
/* 携帯の品のボタン（GAS :429-432：青い枠・少し小さめ） */
@media (max-width: 899.98px) {
  .ord3 .prods button { border-color: #78aaff; font-size: 17px; min-height: 52px; }
  .ord3 .prods button small { font-size: 16px; }
  .ord3 .addon-bar { padding: 6px 8px; } .ord3 .addon-bar .ab-h { font-size: 13px; }
  .ord3 .addon-bar .ab-h button { min-height: 30px; padding: 0 10px; }
  .ord3 .addon-bar .ab-b button { min-height: 36px; font-size: 14px; flex: 1 1 0; }
}
main.ord3 > .kitchen { margin: 10px 0; }
@media (min-width: 900px) { main.ord3 > .kitchen { grid-column: 1; } }
#dlg .stylebox button { border-radius: 10px; }
/* ===== C 会計：GAS 会計画面.html（body.oesRg）と同じ 3 列・上の帯・お支払い金額・残額・ちょうど・確認へ進む・会計しました ===== */
body.ck-page header.oes-head { display: none; }
body.ck-page main { max-width: none; padding: 6px 10px 12px; }
.ckbar { display: flex; align-items: center; gap: 10px; background: #1f2a33; color: #fff; padding: 6px 10px; border-radius: 10px; margin-bottom: 8px; }
.ckbar .ckback { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; font-size: 17px; font-weight: bold; border-radius: 10px; border: 1px solid #8a97a3; background: #fff; color: #1f2a33; text-decoration: none; }
.ckbar .ckt { flex: 1; text-align: center; font-size: 20px; font-weight: bold; }
.ckbar .ckday { flex: none; font-size: 15px; color: #c9d4dd; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ckbar .ckpc { flex: none; font-size: 15px; padding: 2px 8px; border-radius: 6px; background: rgba(255,255,255,.12); color: #ffd9a0; }
.ckbar .ckpc.stop { background: #fde3e1; color: #b3261e; } .ckbar .ckpc.ok { color: #c8f0d0; }
@media (max-width: 899px) { .ckbar .ckpc { font-size: 12px; padding: 2px 6px; } }
@media (max-width: 520px) { .ckbar .ckday { display: none; } }
.ck3 { display: flex; flex-direction: column; gap: 8px; }
.ckc { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
.ck-tno { display: flex; justify-content: space-between; align-items: baseline; }
.ck-tno .ck-tl { font-size: 15px; color: #555; }
.ck-tno strong { font-size: 36px; font-weight: bold; color: #1f2937; font-variant-numeric: tabular-nums; }
.ck-tools { display: grid; grid-template-columns: auto 1fr 1fr; gap: 6px; margin: 4px 0 6px; }
.ck-tools button { margin: 0; min-height: 40px; padding: 4px 6px; font-size: 14px; font-weight: bold; background: #fff; color: #1769aa; border: 2px solid #1769aa; border-radius: 8px; width: 100%; }
.ck-tools button[hidden] { display: none; }
table.ck-items { border-top: 2px solid #333; }
table.ck-items td { font-size: 14px; padding: 4px 2px; border-bottom: 1px dashed #d0d7de; font-variant-numeric: tabular-nums; }
.ck-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-variant-numeric: tabular-nums; }
.ck-sum .ck-row:first-child { font-size: 17px; color: #333; padding-bottom: 4px; border-bottom: 1px solid #d0d7de; }
.ck-big { padding: 4px 0; border-bottom: 1px solid #d0d7de; }
.ck-big .ck-biglabel { font-size: 17px; font-weight: bold; }
.ck-big #total { font-size: 36px; font-weight: bold; color: #1f2937; }
.ck-tax { font-size: 12px; color: #333; } .ck-tax .ck-excl { color: #888; }
.ck-payh { background: #37474f; color: #fff; font-weight: bold; padding: 4px 10px; border-radius: 8px 8px 0 0; margin-top: 10px; }
.ck-pay { padding: 8px 0 0; }
.ck-input { display: block; flex: 1; min-height: 46px; text-align: right; font-size: 22px; padding: 6px 12px; border: 2px solid #1769aa; border-radius: 10px; background: #fff; font-variant-numeric: tabular-nums; box-shadow: 0 0 0 3px rgba(23,105,170,.15); cursor: pointer; }
.ck-input.empty::after { content: "0"; color: #8a97a3; }
.ck-tend { align-items: center; } .ck-tend .ck-tl2 { font-weight: bold; white-space: nowrap; }
.ck-remain { margin-top: 8px; font-size: 20px; } .ck-remain strong { color: #b91c1c; font-size: 22px; }
.chg { margin: 14px 0 6px; font-weight: bold; } .chg strong { font-size: 30px; color: #1f2937; background: none; padding: 0; }
.chodo { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; margin: 6px 0; }
.chodo button { margin: 0; min-height: 40px; padding: 0 2px; font-size: 13px; font-weight: bold; background: #fff; color: #1769aa; border: 2px solid #1769aa; }
.ck-split { margin-top: 10px; font-size: 15px; } .ck-split .ck-just { font-size: 22px; font-weight: bold; } .ck-split .ck-just.off { color: #b91c1c; }
#pays .pay { display: block; border: 1px solid #cfd8dc; border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; }
#pays .pay-h { display: flex; justify-content: space-between; align-items: center; } #pays .pay-h .pm { font-weight: bold; }
#pays .pay-h button { margin: 0; min-height: 36px; padding: 0 10px; font-size: 13px; background: #eef1f4; color: #333; border: 1px solid #8a97a3; width: auto; }
#pays .pay-r { display: flex; align-items: center; gap: 8px; margin-top: 6px; } #pays .pay-l { font-weight: bold; font-size: 14px; }
#pays .pay .amount { font-size: 18px; min-height: 40px; }
#pays .pay.ptbox { border: 2px solid #7b1fa2; background: #f3e5f5; } #pays .pay.ptbox .pm { color: #6a1b9a; }
#pays .ptfix { margin: 6px 0 0; min-height: 40px; background: #fff; color: #7b1fa2; border: 2px solid #7b1fa2; font-weight: bold; width: 100%; }
.ck-ppl { font-size: 11px; color: #555; } .ck-mh { font-size: 13px; font-weight: bold; margin: 2px 0 4px; }
.ckc3 .methods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 6px; }
.ckc3 .methods button { margin: 0; min-height: 44px; font-size: 14px; font-weight: bold; background: #fff; color: #1769aa; border: 2px solid #1769aa; }
.ckc3 .methods button.on { background: #1769aa; color: #fff; }
.ckc3 .methods button:disabled { opacity: .45; }
.ckc3 .methods p { grid-column: 1 / -1; font-size: 11px; margin: 0; }
.ckc3 .quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 0 0 6px; }
.ckc3 .quick button { margin: 0; min-height: 42px; font-size: 15px; font-weight: bold; background: #fff; color: #1769aa; border: 2px solid #1769aa; }
.ckc3 .keypad.pad { max-width: none; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ckc3 .keypad.pad button { min-height: 72px; font-size: 26px; font-weight: bold; background: #fff; color: #1f2937; border: 1px solid #cfd8dc; }
.ckc3 .keypad.pad button[data-p="C"] { color: #d32f2f; }
.ckc3 .sticky { position: static; padding: 8px 0 0; border: 0; background: transparent; display: block; }
#toConfirm { width: 100%; margin: 0; min-height: 60px; font-size: 22px; font-weight: bold; background: #1769aa; border: 0; border-radius: 10px; color: #fff; }
#toConfirm:disabled { background: #9fb3c4; opacity: 1; }
/* C-10：この内容で会計します */
#confirm { max-width: 560px; margin: 8px auto; border: 2px solid #1769aa; }
#confirm h2 { font-size: 22px; } #confirm table.cf td { font-size: 18px; }
#settle { width: 100%; min-height: 60px; font-size: 22px; background: #1769aa; border-color: #1769aa; }
#cfBack { width: 100%; min-height: 52px; font-size: 18px; background: #fff; color: #1f2937; border: 1px solid #8a97a3; }
/* C-11：会計しました（緑の枠の窓・お釣りを大きく・店員が押すまで留まる） */
.ck-donewrap { position: fixed; inset: 0; z-index: 2000; background: rgba(15,23,42,.45); display: flex; align-items: flex-start; justify-content: center; padding: 50px 12px; }
.ck-done { background: #fff; border: 3px solid #2e7d32; border-radius: 16px; padding: 16px 18px; width: 100%; max-width: 560px; box-shadow: 0 8px 28px rgba(0,0,0,.3); }
.ck-done h2 { color: #1b5e20; margin: 0 0 8px; font-size: 24px; }
.ck-done .ck-row { font-size: 18px; padding: 4px 0; border-bottom: 1px solid #eef1f4; }
.ck-done .ck-dchg { color: #0d47a1; font-size: 34px; font-weight: bold; border: 0; } .ck-done .ck-dchg strong { font-size: 38px; color: #1565c0; }
.ck-done .ck-saved { font-size: 15px; color: #333; }
.ck-done .ck-doneback { display: flex; justify-content: center; align-items: center; min-height: 64px; background: #1565c0; color: #fff; border-radius: 12px; font-size: 20px; font-weight: bold; text-decoration: none; }
.ck-done .ck-doneclose { width: 100%; min-height: 44px; margin: 0; background: #fff; color: #333; border: 1px solid #8a97a3; font-weight: normal; }
/* 広い画面は 3 列（明細｜お支払い金額と支払｜支払方法・数字ボタン・確認へ進む） */
@media (min-width: 900px) {
  .ck3 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .95fr); gap: 8px; align-items: stretch; }
  .ck3 .ckc { min-height: calc(100vh - 76px); }
  .ck3 .ckc2 { min-height: 0; align-self: start; padding: 0; background: transparent; border: 0; }
  .ck3 .ckc2 .ck-sum { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; }
  .ck3 .ckc2 .ck-pay { background: #fff; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 10px 10px; padding: 10px 12px; min-height: calc(100vh - 300px); }
}
@media (max-width: 899.98px) {
  .ckc3 .keypad.pad { display: none; }
  .ckc3 .methods { grid-template-columns: 1fr 1fr; }
  .ckc3 .quick { grid-template-columns: repeat(4, 1fr); } .ckc3 .quick button.rest { grid-column: 1 / -1; }
  .ck-big .ck-biglabel { font-size: 28px; }
  .ck-tools { grid-template-columns: repeat(3, 1fr); }
}
.ckc3 .methods button, .ckc3 .quick button { white-space: nowrap; padding-left: 2px; padding-right: 2px; }
.ck-done .rc { font-size: inherit; font-weight: normal; }
@media (max-width: 520px) { .ckbar .ckt { font-size: 17px; white-space: nowrap; } .ck-tno strong { font-size: 24px; } }
/* ===== D 締め：GAS 会計画面.html c1（入出金の大きいボタン・黒い帯・左右の階・精算レポート・緑の入力・差異の色） ===== */
main.close-main { max-width: none; padding: 8px; }
.cl-cash { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-width: 640px; margin: 0 auto 8px; }
.cl-cashbtn { display: flex; justify-content: center; align-items: center; min-height: 44px; background: #fff; color: #1769aa; border: 2px solid #64a2dc; border-radius: 10px; font-weight: bold; font-size: 16px; text-decoration: none; }
.cl-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #37474f; color: #fff; padding: 6px 8px; border-radius: 10px 10px 0 0; }
.cl-back { background: #fff; color: #1f2937; border-radius: 8px; padding: 6px 12px; font-weight: bold; text-decoration: none; font-size: 15px; }
.cl-bd { font-size: 14px; } .cl-bd strong { font-size: 18px; }
.cl-tools { margin: 8px 0 0; } .cl-tools button { margin: 0; background: #fff; color: #1769aa; border: 2px solid #1769aa; font-weight: bold; width: auto; }
.sbr-btns button.cl-orange, #cdhOpen { color: #b45309 !important; border-color: #b45309 !important; background: #fff !important; }
main.close-main .cols { max-width: none; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 10px; padding: 0; margin-top: 8px; }
.cl-floor { padding: 8px 10px; } .cl-floor h2 { font-size: 20px; margin: 0 0 4px; }
.cl-h { display: flex; justify-content: space-between; background: #37474f; color: #fff; font-weight: bold; font-size: 14px; padding: 3px 8px; border-radius: 6px; margin: 6px 0 4px; }
.cl-h span { font-weight: normal; font-size: 12px; }
.cl-fig { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
table.cl-t { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
table.cl-t td { padding: 1px 2px; border-bottom: 1px solid #eef1f4; vertical-align: top; } table.cl-t td.n { text-align: right; font-weight: bold; white-space: nowrap; } table.cl-t td.c { text-align: right; color: #555; white-space: nowrap; }
.cl-taxsub { display: block; font-size: 10px; color: #6b7280; }
.cl-exp { border: 2px solid #1769aa; border-radius: 8px; padding: 6px 10px; margin: 8px 0 4px; } .cl-exp strong { display: block; font-size: 16px; } .cl-exp small { font-size: 11px; color: #555; }
.cl-none { font-size: 13px; color: #555; margin: 4px 0; } .cl-ok { color: #2e7d32; font-weight: bold; margin: 4px 0; }
.cl-grid { display: grid; grid-template-columns: auto minmax(0, 1fr) 80px; align-items: center; gap: 4px 10px; }
.cl-grid label { margin: 0; font-weight: bold; }
.cl-colh { font-size: 11px; color: #555; text-align: right; }
.cl-grid .cl-colh:nth-child(2) { text-align: right; padding-right: 8px; }
input.cl-in { background: #2e7d32; color: #fff; border: 2px solid #1b5e20; font-size: 22px; text-align: right; min-height: 44px; border-radius: 8px; font-variant-numeric: tabular-nums; }
.cl-d { text-align: right; font-weight: bold; white-space: nowrap; font-variant-numeric: tabular-nums; } .cl-d.bad { color: #b91c1c; } .cl-d.ok { color: #2e7d32; }
.cl-sub { grid-column: 1 / -1; font-size: 12px; color: #555; }
.cl-ack { display: flex; gap: 8px; align-items: center; margin: 6px 0; font-weight: normal; }
.cl-key { border: 2px solid #c62828; border-radius: 8px; padding: 8px 10px; margin: 6px 0; background: #fff5f5; } .cl-keyh { color: #c62828; font-weight: bold; margin: 0 0 4px; }
.chk.cl-grid { margin-top: 6px; }
@media (max-width: 1000px) { main.close-main .cols { grid-template-columns: 1fr; } }
@media (max-width: 1000px) and (min-width: 700px) { main.close-main .cl-cash { max-width: 700px; } }
/* ===== E ボード：GAS seat_board_monitor_v1（黒い帯 1 本・行の高さを画面に合わせる・色・札・窓） ===== */
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.seatboard header.oes-head { display: none; }
body.seatboard main { padding: 0; }
.tl-top { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; background: #14211f; color: #fff; padding: 6px 8px; margin: 0; overflow-x: auto; scrollbar-width: none; position: sticky; top: 0; z-index: 40; }
.tl-top::-webkit-scrollbar { display: none; }
.tl-top .tl-floor { font-weight: 800; font-size: 17px; padding: 0 6px; white-space: nowrap; }
.tl-top .tl-floor.f1 { color: #6fcf97; }
.tl-nav { display: flex; gap: 6px; }
.tl-navi { display: inline-flex; align-items: center; height: 30px; padding: 0 10px; border-radius: 8px; background: rgba(255,255,255,.16); color: #fff; font-size: 14px; font-weight: bold; text-decoration: none; white-space: nowrap; }
.tl-navi[aria-current="page"] { background: #fff; color: #14211f; }
.tl-sp { flex: 1 1 auto; }
.tl-pill { display: inline-flex; align-items: center; gap: 4px; height: 32px; padding: 0 10px; border-radius: 99px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); color: #e4ece9; font-size: 14px; white-space: nowrap; margin: 0; }
.tl-pill b { color: #fff; font-weight: 800; }
button.tl-pill { font-weight: 800; color: #fff; min-height: 0; }
.tl-top .tl-btn { background: rgba(255,255,255,.14); }
.tl-day small { font-size: 11px; color: #c5d1cd; } .tl-day input { width: auto; height: 26px; padding: 0 6px; margin: 0; border-radius: 99px; font-weight: 800; font-size: 14px; background: #fff; color: #14211f; border: 0; }
.tl-clock { font-size: 12px; padding: 4px 8px; border-radius: 99px; background: rgba(255,255,255,.12); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tl-refresh { margin: 0; min-height: 0; height: 40px; width: 40px; padding: 0; border-radius: 50%; border: 0; background: #0f766e; color: #fff; font-size: 12px; font-weight: 800; flex: none; }
.tl-memobtn { position: fixed; right: 14px; bottom: 14px; z-index: 50; margin: 0; min-height: 0; height: 44px; padding: 0 18px; border-radius: 99px; border: 0; background: #0f766e; color: #fff; font-weight: 800; box-shadow: 0 4px 12px rgba(0,0,0,.25); }
.seatboard .tl-memo { position: fixed; right: 14px; bottom: 66px; z-index: 50; width: min(420px, calc(100vw - 28px)); max-height: 60vh; overflow: auto; box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.seatboard #msg, .seatboard #closed, .seatboard #moveBar, .seatboard .tl-pcw { margin: 4px 8px; }
.seatboard .tl-box { max-height: none; border: 0; border-radius: 0; }
.tl-head { height: 32px; background: #f4f6f5; } .tl-corner { background: #f4f6f5; }
.tl-corner::after { content: "卓"; position: absolute; left: 0; right: 0; top: 8px; text-align: center; font-size: 11px; color: #6E7B76; }
.tl-hour { color: #16231F; font-size: 12px; }
.tl-tno { font-size: clamp(11px, calc(var(--tl-row-h, 44px) * .45), 18px); flex-direction: column; line-height: 1.05; }
.tl-grp { font-size: 8px; font-weight: 600; color: #6E7B76; }
.tl-sep { border-top-width: 3px; border-top-color: #16231F; }
.tl-bar { border-radius: 6px; padding: 0 4px; }
.tl-bar .l1 { font-size: clamp(11px, calc(var(--tl-row-h, 44px) * .56), 22px); }
.tl-bar .l2 { font-size: clamp(10px, calc(var(--tl-row-h, 44px) * .4), 16px); }
/* E-04：開始前の予約は利用区分に関係なく薄い灰色（GAS --tl-upcoming-bg・文字は --sub） */
.tl-bar.res-normal, .tl-bar.res-party { background: #F4F5F5; border: 1.5px dashed #DCE0DF; color: #6E7B76; }
.tl-bar.res-normal.late, .tl-bar.res-party.late { border: 2px dashed #E07000; }
/* E-06：延長中はオレンジ枠の札 */
.tl-tag.ot { background: #fff3e0; color: #b45309; border: 1px solid #E07000; }
.tl-tag.pt { background: #7b1fa2; }
/* E-07：金額の札は白地・黒枠・黒文字 11px */
.tl-amt { background: #fff; color: #111; border: 1px solid #333; font-size: 11px; right: 4px; top: 50%; bottom: auto; transform: translateY(-50%); }
.tl-bar .l1, .tl-bar .l2 { padding-right: 58px; }
/* E-13：いまの線の上の小さな三角 */
.tl-nowtri { position: absolute; top: 0; left: -5px; width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 8px solid #E53935; }
/* E-09：利用中の帯の小さな窓 */
.pick-veil { position: fixed; inset: 0; z-index: 9000; background: rgba(0,0,0,.08); }
.pick-pop { position: fixed; z-index: 9001; width: 320px; max-width: calc(100vw - 16px); padding: 10px 12px 12px; background: #fff; color: #12222f; border-radius: 14px; box-shadow: 0 8px 28px rgba(0,0,0,.28); border: 1px solid rgba(0,0,0,.12); }
.pick-hd { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.pick-title { font-size: 20px; font-weight: 800; white-space: nowrap; }
.pick-amt { font-size: 16px; font-weight: 800; padding: 1px 8px; border-radius: 6px; background: #eef3f7; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pick-x { margin: 0 0 0 auto; width: 48px; height: 48px; min-height: 0; padding: 0; border: 0; border-radius: 10px; background: #eef1f4; color: #12222f; font-size: 24px; font-weight: 700; }
.pick-sub { font-size: 14px; color: #3d4f5f; margin: 2px 0 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pick-row { display: flex; gap: 8px; margin-top: 8px; }
.pick-btn { flex: 1 1 0; display: flex; align-items: center; justify-content: center; min-height: 56px; border-radius: 12px; font-size: 19px; font-weight: 800; color: #fff; text-decoration: none; }
.pick-btn.ck { background: #1565c0; } .pick-btn.order { background: #0F6E63; } .pick-btn.off { background: #c9d1d8; color: #5c6b7a; pointer-events: auto; }
.pick-note { font-size: 13px; color: #7a4b00; background: #fff4e5; border-radius: 8px; padding: 6px 8px; margin: 8px 0 0; }
.pick-detail { display: block; width: 100%; min-height: 52px; margin: 8px 0 0; border: 0; border-radius: 12px; background: #5b4a9e; color: #fff; font-size: 17px; font-weight: 800; }
/* E-10：1 階の窓（左上・紺の見出し） */
.f1win { position: fixed; left: 60px; top: 110px; z-index: 60; width: 300px; max-width: calc(100vw - 20px); background: #fff; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.25); overflow: hidden; }
.f1win-h { display: flex; justify-content: space-between; align-items: center; background: #1e3a5f; color: #fff; font-weight: 800; font-size: 14px; padding: 4px 6px 4px 10px; }
.f1win-h button { margin: 0; min-height: 0; width: 32px; height: 28px; padding: 0; background: rgba(255,255,255,.15); border: 0; color: #fff; }
.f1win .f1list { max-height: 50vh; overflow: auto; }
.f1row { font-size: 13px; padding: 3px 8px; border-bottom: 1px solid #eef1f4; color: #12222f; }
.f1t { font-size: 10px; font-weight: 800; padding: 0 4px; border-radius: 3px; margin-left: 2px; } .f1t.left { background: #eceff1; color: #455a64; } .f1t.on { background: #e3f2fd; color: #1565c0; } .f1t.res { background: #fff8e1; color: #8a6d00; }
/* E-12：下から出る確かめの窓 */
dialog.sheet.bottom { margin: auto auto 0; max-width: 640px; width: 100%; border-radius: 16px 16px 0 0; animation: oes-slideup .18s ease-out; }
@keyframes oes-slideup { from { transform: translateY(100%); } to { transform: none; } }
.drag-rows { font-size: 16px; color: #333; margin: 4px 0; }
#dragNo { background: #fff; color: #c62828; border: 1px solid #333; }
#dragGo { background: #2b6cb0; border-color: #2b6cb0; }
@media (max-width: 699.98px) { .tl-bar .l1, .tl-bar .l2 { padding-right: 34px; } .tl-amt { font-size: 9px; padding: 0 2px; } .tl-hour { font-size: 10px; } .tl-tag { font-size: 9px; padding: 0 3px; } }
/* ===== F 卓情報：GAS seat_board_input_v5（幅 480・黒い見出し・緑の卓・下に貼り付くプレビュー） ===== */
body.seat-page { background: #f2f4f3; }
body.seat-page header.oes-head { max-width: 480px; margin: 0 auto; }
body.seat-page .oes-title { flex-direction: column; align-items: flex-start; gap: 2px; background: #1b2421; padding: 14px 18px 12px; border-radius: 0 0 14px 14px; }
body.seat-page .oes-title h1 { font-size: 21px; }
body.seat-page #oesHeadSub { font-size: 12px; font-weight: 700; }
body.seat-page main { max-width: 480px; margin: 0 auto; padding: 14px 14px 0; }
.seatform .card { border-radius: 14px; border: 1px solid #e3e8e6; padding: 16px; }
.seatform .step-num { display: none; }
.seatform .step-title { font-size: 15px; }
.seatform #floorSeg { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.seatform #floorSeg button { min-height: 46px; font-size: 17px; font-weight: 800; background: #fff; color: #0f766e; border: 2px solid #0f766e; border-radius: 10px; }
.seatform #floorSeg button.on { background: #0f766e; color: #fff; }
.seatform .grp { font-size: 12px; font-weight: 800; color: #6E7B76; margin: 8px 0 4px; }
.seatform .tgrid { grid-template-columns: repeat(6, minmax(0, 58px)); gap: 8px; margin: 0 0 4px; }
.seatform .tgrid button { min-height: 44px; padding: 0; font-size: 14px; font-weight: 800; background: #FBFCFC; color: #1b2421; border: 1px solid #dde3e1; border-radius: 10px; }
.seatform .tgrid button.on { background: #0f766e; color: #fff; border-color: #0f766e; }
.seatform .tgrid button.busy-t { border-color: #dde3e1; color: #1b2421; }   /* F-02：GAS は利用中の卓に色を付けない */
.seatform .seg button.on, .seatform .pq button.on { background: #0f766e; border-color: #0f766e; color: #fff; }
.seatform .memo-section { border-top: 1px dashed #dde3e1; padding-top: 10px; }
.seatform .memogrid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.seatform .memogrid button { min-height: 52px; justify-content: center; background: #fff; color: #1b2421; border: 1px solid #dde3e1; border-radius: 10px; font-size: 14px; font-weight: 800; }
.seatform .memogrid button[data-slot="5"] { grid-column: 1 / -1; }
.seatform .memogrid button.used { background: #fff8e1; color: #7a4b00; border-color: #e0a040; }
body.seat-page .seat-foot { margin: 12px -14px 0; padding: 10px 14px 14px; border: 0; border-radius: 16px 16px 0 0; box-shadow: 0 -6px 18px rgba(0,0,0,.10); }
.seat-foot .pv-h { display: flex; justify-content: space-between; font-size: 11px; font-weight: 800; color: #6E7B76; margin-bottom: 6px; }
.seat-foot .preview { font-weight: 400; margin-bottom: 8px; }
.seat-foot .pv-box { background: #e6f4ef; border: 1px solid #cfe5dc; border-radius: 10px; padding: 10px 12px; color: #12463c; font-size: 14px; line-height: 1.55; max-height: 104px; overflow: auto; }
.seat-foot .pv-err { color: #c62828; font-size: 12px; font-weight: 800; margin-top: 6px; }
.seat-foot .preview.bad .pv-box { background: #c62828; border-color: #c62828; color: #fff; font-weight: 700; }
.seat-foot .preview.bad { background: none; padding: 0; }
body.seat-page .seat-foot .acts { flex-direction: column; }
body.seat-page .seat-foot .acts > * { flex: 0 0 auto; width: 100%; min-height: 50px; border-radius: 10px; font-size: 17px; font-weight: 800; }
body.seat-page #save { background: #0f766e; color: #fff; border: 0; }
body.seat-page #save:disabled { background: #94c3b8; color: #fff; opacity: 1; }
body.seat-page #toOrder { background: #1d4ed8; color: #fff; border: 0; min-height: 60px; display: flex; align-items: center; justify-content: center; }
body.seat-page #toCheckout { background: #fff; color: #1d4ed8; border: 2px solid #1d4ed8; min-height: 60px; display: flex; align-items: center; justify-content: center; }
body.seat-page #toBoard { background: #fff; color: #36504a; border: 1px solid #c9d3cf; display: flex; align-items: center; justify-content: center; font-size: 15px; }
/* ===== G テーブル一覧：GAS テーブル一覧.html（青い帯・10 列の全卓カード・下に自動更新） ===== */
body.tl-page { background: #e9edf1; }
body.tl-page .oes-title { display: none; }
body.tl-page main { max-width: none; padding: 8px 8px 70px; }
.tlbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #1769aa; color: #fff; padding: 7px 10px; position: sticky; top: 36px; z-index: 1400; }
.tlbar .tlb-back { background: rgba(255,255,255,.18); color: #fff; text-decoration: none; font-weight: 800; font-size: 17px; padding: 8px 12px; border-radius: 10px; }
.tlbar .tlb-t { font-size: 21px; font-weight: 800; }
.tlbar .tlb-d { font-size: 14px; font-variant-numeric: tabular-nums; }
.tlbar .tlb-sp { flex: 1 1 auto; }
.tlbar .tlb-tl { background: #fff; color: #1769aa; font-weight: 800; text-decoration: none; padding: 9px 14px; border-radius: 10px; font-size: 15px; }
.tlbar .tlb-seg { display: flex; background: rgba(255,255,255,.25); border-radius: 10px; padding: 3px; gap: 2px; }
.tlbar .tlb-seg button { margin: 0; min-height: 34px; padding: 0 14px; background: transparent; color: #fff; border: 0; font-weight: 800; font-size: 15px; border-radius: 8px; }
.tlbar .tlb-seg button.on { background: #fff; color: #1769aa; }
body.tl-page .tgrid-list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin: 0; }
@media (min-width: 900px) { body.tl-page .tgrid-list { grid-template-columns: repeat(10, minmax(0, 1fr)); grid-auto-rows: minmax(150px, calc((100vh - 36px - 52px - 66px - 30px) / 3)); } }
body.tl-page .tcard { position: relative; display: flex; flex-direction: column; gap: 1px; min-height: 150px; padding: 6px 8px 0; background: #fff; border: 2px solid #d5dbe1; border-radius: 8px; color: #263238; text-decoration: none; overflow: hidden; }
body.tl-page .tcard .tc-top { display: flex; align-items: baseline; justify-content: space-between; gap: 4px; }
body.tl-page .tcard .tno { font-size: 22px; font-weight: 800; color: #37474f; }
body.tl-page .tcard .tno.multi { font-size: 16px; }
body.tl-page .tcard .tc-ppl { font-size: 13px; font-weight: 800; color: #607d8b; }
body.tl-page .tcard .tc-name { font-weight: 800; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.tl-page .tcard .tc-time { font-size: 14px; }
body.tl-page .tcard .tc-end { font-size: 11px; color: #607d8b; }
body.tl-page .tcard .tc-next { margin-top: auto; padding-bottom: 6px; font-size: 12px; color: #1565c0; }
body.tl-page .tcard .tc-amt { margin-top: auto; text-align: right; font-size: 18px; font-weight: 800; font-variant-numeric: tabular-nums; padding-bottom: 2px; }
body.tl-page .tcard .tc-next + .tc-amt { margin-top: 0; }
body.tl-page .tcard .tc-tag { margin: auto -8px 0; text-align: center; color: #fff; font-weight: 800; font-size: 13px; padding: 4px 0; }
body.tl-page .tcard .tc-amt + .tc-tag, body.tl-page .tcard .tc-next + .tc-tag { margin-top: 0; }
body.tl-page .tcard .tc-tag.ord { background: #1769aa; } body.tl-page .tcard .tc-tag.visit { background: #78909c; } body.tl-page .tcard .tc-tag.done { background: #2e7d32; } body.tl-page .tcard .tc-tag.hold { background: #ef6c00; }
body.tl-page .tcard.active, body.tl-page .tcard.settled, body.tl-page .tcard.hold { background: #e3f0fd; border-color: #1565c0; }
body.tl-page .tcard.merged { background: #e3f0fd; border: 2px dashed #1565c0; }
body.tl-page .tcard .tc-merge { margin-top: auto; padding-bottom: 8px; font-size: 13px; font-weight: 800; color: #1565c0; }
body.tl-page .tcard .tc-merge + .tc-next { margin-top: 0; }
body.tl-page .tcard.orphan { border-color: #c62828; }
body.tl-page .tcard .tc-orphan { color: #c62828; font-size: 11px; font-weight: 800; }
.tlfoot { position: fixed; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 14px; background: #fff; border-top: 1px solid #d5dbe1; padding: 8px 10px; z-index: 1400; }
.tlfoot #reload { margin: 0; width: auto; min-height: 42px; padding: 0 18px; background: #fff; color: #1769aa; border: 2px solid #1769aa; font-weight: 800; }
.tl-sw { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 15px; margin: 0; }
.tl-sw input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tl-sw .tl-swk { position: relative; width: 46px; height: 26px; border-radius: 13px; background: #b0bec5; flex: 0 0 auto; }
.tl-sw .tl-swk::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: left .15s; }
.tl-sw input:checked + .tl-swk { background: #2e7d32; } .tl-sw input:checked + .tl-swk::after { left: 23px; }
.tl-sw input:focus-visible + .tl-swk { outline: 3px solid #1769aa; outline-offset: 2px; }
/* ===== H レシートの出し直し：GAS レシート再発行（白い上の帯・行に「印刷」「取消・支払」・窓「この会計を直します」） ===== */
body.rc-page { background: #f1f5f9; }
body.rc-page .oes-title { display: none; }
.rcbar { display: flex; align-items: center; gap: 12px; background: #fff; border-bottom: 1px solid #e2e8f0; padding: 10px 16px; position: sticky; top: 36px; z-index: 1400; }
.rcbar .rc-back { border: 1px solid #cbd5e1; border-radius: 10px; padding: 10px 16px; color: #1e293b; font-weight: 800; text-decoration: none; }
.rcbar b { font-size: 21px; }
body.rc-page main { padding: 12px 16px; }
body.rc-page .rc-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
body.rc-page .datebox button, body.rc-page #floorBtns button { min-height: 48px; padding: 0 16px; background: #fff; color: #1e293b; border: 1px solid #cbd5e1; border-radius: 10px; font-weight: 800; }
body.rc-page .datebox input { min-height: 48px; border-radius: 10px; font-size: 19px; font-weight: 700; }
body.rc-page #floorBtns { display: flex; gap: 6px; margin: 0; }
body.rc-page #floorBtns button.on { background: #1e3a5f; border-color: #1e3a5f; color: #fff; }
body.rc-page #rcSum { margin: 10px 0 8px; font-size: 14px; }
.rc-list { width: 100%; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.rc-list thead th { background: #eef2f6; color: #475569; font-size: 13px; text-align: left; padding: 10px 14px; border-bottom: 1px solid #e2e8f0; }
.rc-list td { padding: 10px 14px; border-bottom: 1px solid #e2e8f0; vertical-align: middle; }
.rc-list tr:last-child td { border-bottom: 0; }
.rc-list .rc-code a { color: #1e293b; text-decoration: none; font-variant-numeric: tabular-nums; }
.rc-list .rc-t { font-weight: 800; font-size: 19px; white-space: nowrap; }
.rc-list .rc-amt { font-weight: 800; font-size: 19px; white-space: nowrap; }
.rc-list .rc-at { color: #475569; font-variant-numeric: tabular-nums; }
.rc-list .rc-acts { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.rc-list .rc-acts button { margin: 0; width: auto; min-height: 48px; padding: 0 16px; border-radius: 8px; font-weight: 800; }
.rc-list .rc-pr { background: #1f6fb2; color: #fff; border: 1px solid #1a5f99; }
.rc-list .rc-fx { background: #fff; color: #b71c1c; border: 1px solid #b71c1c; }
.rc-list tr.rc-off td { color: #94a3b8; } .rc-list tr.rc-off .rc-code a { color: #94a3b8; } .rc-list tr.rc-off .rc-amt { text-decoration: line-through; }
.rc-more { margin-top: 14px; font-size: 14px; } .rc-more summary { color: #475569; cursor: pointer; }
.rc-q { display: flex; gap: 6px; } .rc-q input { margin: 0; } .rc-q button { margin: 0; width: auto; }
dialog.rc-dlg { width: min(520px, calc(100vw - 32px)); border: 0; border-radius: 12px; padding: 20px; }
dialog.rc-dlg h3 { margin: 0 0 8px; font-size: 21px; }
.rc-facts div { font-size: 18px; line-height: 1.7; }
.rc-help { color: #64748b; font-size: 13px; margin: 10px 0 14px; }
.rc-3, .fx-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.rc-3 > *, .fx-3 > * { margin: 0; min-height: 64px; border-radius: 8px; font-weight: 800; font-size: 16px; display: flex; align-items: center; justify-content: center; text-align: center; }
.rc-3 #fxNo, .fx-3 #fxCancel { background: #fff; color: #1e293b; border: 1px solid #cbd5e1; }
.rc-3 .rc-pay, .fx-3 #fxPickPay { background: #fff; color: #b71c1c; border: 1px solid #b71c1c; }
.rc-3 .rc-void, .fx-3 #fxPickVoid { background: #b71c1c; color: #fff; border: 1px solid #b71c1c; }
/* 会計の画面の「直す」：窓の形・理由と担当はボタン（H-02・H-03） */
body.ck-fixonly { background: #8f979e; }
body.ck-fixonly #fix { max-width: 520px; margin: 24px auto; border: 0; border-radius: 12px; padding: 20px; }
#fix fieldset { border: 0; padding: 0; margin: 6px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
#fix fieldset legend { padding: 0; margin-bottom: 6px; font-size: 15px; }
#fix fieldset label { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 56px; margin: 0; padding: 4px 8px; background: #fff; border: 1px solid #cbd5e1; border-radius: 8px; font-weight: 800; text-align: center; }
#fix fieldset label:has(input:checked) { background: #1e3a5f; border-color: #1e3a5f; color: #fff; }
#fix #fxWhat { color: #b71c1c; font-weight: 800; font-size: 22px; }
.fx-staff { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 4px 0 12px; }
.fx-staff button { margin: 0; min-height: 48px; background: #fff; color: #1e293b; border: 1px solid #cbd5e1; font-weight: 800; }
.fx-staff button.on { background: #1e3a5f; color: #fff; border-color: #1e3a5f; }
@media (max-width: 560px) { .rc-list thead { display: none; } .rc-list td { padding: 8px; } .rc-list .rc-t, .rc-list .rc-amt { font-size: 16px; } .rc-list .rc-acts button { min-height: 44px; padding: 0 10px; } }
.fx-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .fx-2 button { margin: 0; min-height: 56px; font-weight: 800; }
body.ck-fixonly #fxBack2 { background: #fff; color: #1e293b; border: 1px solid #cbd5e1; }
body.seat-page .seat-foot { position: fixed; left: 0; right: 0; bottom: 0; max-width: 480px; margin: 0 auto; z-index: 30; max-height: 70vh; overflow: auto; }
body.seat-page .seat-foot .acts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
body.seat-page .seat-foot .acts > * { min-height: 46px; font-size: 15px; }
body.seat-page .seat-foot .acts > #save, body.seat-page .seat-foot .acts > #toOrder, body.seat-page .seat-foot .acts > #toCheckout { grid-column: 1 / -1; min-height: 52px; font-size: 17px; }
body.seat-page .seat-foot .acts > [hidden] { display: none; }
body.seat-page .seat-foot .acts > * { order: 4; } body.seat-page .seat-foot #save { order: 1; } body.seat-page .seat-foot #toOrder { order: 2; } body.seat-page .seat-foot #toCheckout { order: 3; }
body.tl-page .tcard .tc-ppl { white-space: nowrap; }
/* E-15：１階ボード（GAS）＝「1階」は緑の丸札・メモの丸ボタンは無い（メモは２階のもの） */
.tl-top .tl-floor.f1 { color: #fff; background: #2e9d5b; border-radius: 999px; padding: 3px 12px; font-size: 14px; }
body.f1page #memoBtn { display: none; }
/* D-01（GAS）：締めの画面は上の帯を出さない（1階入出金・2階入出金から始まる） */
body.cl-page header.oes-head { display: none; }
/* C-05：選んだ支払方法は（押せないときも）濃い青のまま（GAS .methods button[aria-pressed=true]）・数字ボタンの行き先は太い枠 */
.ckc3 .methods button.on, .ckc3 .methods button.on:disabled { background: #1769aa; color: #fff; border: 3px solid #0d4a7a; opacity: 1; }
.ck-input.padon { box-shadow: 0 0 0 3px #1769aa; }
/* D-01（GAS #oesKp）：数字ボタンの小窓は画面の上に浮かぶ（中に場所を取らない） */
#oesKp { position: fixed; z-index: 3000; margin: 0; border: 1px solid #c5ced6; border-radius: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.28); }
/* D-01：空の現金在高は白（GAS：入れた欄だけ緑） */
.cl-floor input.cl-in:placeholder-shown { background: #fff !important; color: #1e293b !important; border: 1px solid #c5ced6 !important; -webkit-text-fill-color: #1e293b; }
/* D-03（GAS）：全部締めたら、緑の大きな箱「1階・2階 の締め 完了」と「メニューへ」。精算の表・あるはずの額・入出金のボタンは隠す */
.cl-done { display: flex; flex-direction: column; align-items: stretch; gap: 6px; background: #1b7a2f; color: #fff; border-radius: 10px; padding: 14px 10px 10px; margin: 6px 0 10px; text-align: center; }
.cl-done[hidden] { display: none; }
.cl-done #doneText { font-size: 22px; } .cl-done #doneSub { font-size: 15px; font-weight: 700; }
.cl-done .cl-donemenu { display: block; margin-top: 6px; background: #fff; color: #1b7a2f; border-radius: 10px; padding: 14px; font-size: 20px; font-weight: 800; text-decoration: none; }
body.cl-alldone .cl-cash, body.cl-alldone .cl-floor .cl-h, body.cl-alldone .cl-floor .cl-fig, body.cl-alldone .cl-floor .cl-exp, body.cl-alldone .cl-floor .cashlink { display: none; }
body.cl-alldone .cl-floor { background: #f1f8f2; border-color: #9fd3a8; }
body.cl-alldone .cl-floor .note.ok { border: 0; background: none; padding: 0; font-weight: 800; }
/* F-06（GAS）：下に貼り付くのはプレビューと「この内容で登録する」「注文へ」「会計へ」だけ。来店・退店・取消などはページの中。営業日はボードから受け取る（欄は出さない） */
body.seat-page .seat-more .acts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
body.seat-page .seat-more .acts > * { margin: 0; min-height: 48px; border-radius: 10px; font-weight: 800; }
body.seat-page .seat-more .acts > [hidden] { display: none; }
body.seat-page .seat-more:not(:has(.acts > :not([hidden]):not(#toBoard))) { display: none; }
body.seat-page #toBoard, body.seat-page .seat-day { display: none !important; }
body.seat-editing #floorSeg { display: none; }
@media (max-width: 560px) { body.seat-page .seat-foot .pv-box { max-height: 76px; } body.seat-page .seat-foot .acts > #save, body.seat-page .seat-foot .acts > #toOrder, body.seat-page .seat-foot .acts > #toCheckout { min-height: 48px; } }
/* ===== 注文（チームの確かめのあと：GAS の画面に合わせる） ===== */
body.ord-empty .ord3 .ord-dock { display: none; }   /* 何も入っていないときは「注文を確定」の帯を出さない（GAS） */
.ord3 .prods button { min-height: 58px; }
.ord3 .prods button.hit .pn { color: #111; }   /* 「追加しました ✓」は黒（GAS） */
.ord3 #cart .line .chips { flex-wrap: nowrap; }
.ord3 #cart .line .chips button { min-height: 36px; padding: 0 10px; font-size: 14px; white-space: nowrap; flex: 0 0 auto; }
/* B-20（GAS #oesStyleBox）：飲み方は画面の中の青い枠・1 列 */
.ord3 .stylebox-in { border: 3px solid #1d4ed8; border-radius: 12px; background: #f5f9ff; padding: 12px 14px; margin: 0 0 12px; display: flex; flex-direction: column; gap: 10px; }
.ord3 .stylebox-in[hidden] { display: none; }
.ord3 .stylebox-in .sty-t { font-size: 18px; font-weight: 800; color: #0d3b66; }
.ord3 .stylebox-in .sty-n { font-size: 14px; color: #475569; margin-top: -6px; }
.ord3 .stylebox-in button { margin: 0; width: 100%; min-height: 56px; font-size: 19px; font-weight: 800; background: #fff; color: #0d3b66; border: 3px solid #7fb8ee; border-radius: 10px; }
.ord3 .stylebox-in .sty-strong { color: #1565c0; border-color: #1565c0; }
.ord3 .stylebox-in .sty-strong[aria-pressed="true"] { background: #1565c0; color: #fff; }
.ord3 .stylebox-in .sty-cancel { color: #546e7a; border-color: #cfd8dc; font-size: 17px; }
@media (min-width: 900px) {
  body.ord-page .oes-title { justify-content: center; }
  body.ord-page .oes-title #oesHeadSub, body.ord-page .oes-title #oesMode { display: none; }
  .ord3 .cats, body .ord3 .cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .ord3 .cats button { min-height: 44px; font-size: 16px; padding: 6px; }
}
/* C-16（GAS 携帯）：「合計」の見出し・卓は小さく・道具のボタンは右に小さく・品の行は 17px でゆったり */
.ck-bl-n { display: none; }
@media (max-width: 640px) {
  .ck-bl-w { display: none; } .ck-bl-n { display: inline; }
  .ck-tno strong, .ck-tno #ttl { font-size: 17px; font-weight: normal; }
  .ck-tools { display: flex; justify-content: flex-end; gap: 6px; }
  .ck-tools button { flex: 0 0 auto; width: auto; min-height: 40px; padding: 0 6px; font-size: 13px; white-space: nowrap; }
  #items td { font-size: 17px; padding-top: 14px; padding-bottom: 14px; }
  .ck-tl { font-size: 17px; }
}
/* H-01（GAS）：レシートの出し直しには上の移動の帯が無い・理由のボタンは携帯で折り返さない */
body.rc-page header.oes-head { display: none; }
body.rc-page .rcbar { top: 0; }
@media (max-width: 560px) { #fix fieldset { grid-template-columns: 1fr 1fr; } #fix fieldset label { white-space: nowrap; font-size: 14px; padding: 4px; } }
/* E-12（GAS）：確かめの間、動かした先に青い枠の帯・元の帯は薄く。下の窓は幅 470px・小さめの字 */
.tl-ghost.tl-preview { border: 2px solid #1e88e5; background: #eaf3fc; color: #2E6DA4; font-weight: 800; font-size: 14px; padding: 2px 6px; white-space: nowrap; overflow: hidden; z-index: 31; }
.tl-bar.dragsrc { opacity: .45; }
.seatboard #dragDlg { width: min(470px, calc(100vw - 16px)); padding: 14px 16px; }
.seatboard #dragDlg #dragText { font-size: 15px; font-weight: 800; margin: 0 0 8px; }
.seatboard #dragDlg .drag-rows { font-size: 13px; color: #444; line-height: 1.9; }
.seatboard #dragDlg .acts button { min-height: 46px; font-size: 13px; }
.ckc3 .methods button:disabled { opacity: 1; }   /* GAS：2 件入っても押せない方法は見た目を変えない */
body.cl-alldone #msg, body.cl-alldone section.card:has(#goBoth) { display: none; }
/* 「濃いめ +110」は 1 行（GAS） */
.ord3 .addon-bar .ab-b button, .ord3 .stylebox-in button, #cart .chips button, .addon-bar button { white-space: nowrap; }
.ord3 .addon-bar .ab-b { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.ord3 .addon-bar .ab-b button { min-width: 0; padding: 0 4px; font-size: 14px; }
/* H-01：レシートの一覧は時刻・伝票番号・ボタンを折り返さない */
.rc-list .rc-code a, .rc-list .rc-at, .rc-list .rc-acts button { white-space: nowrap; }
/* H-03（携帯）：理由のボタンは窓の中に収める（1 列） */
@media (max-width: 560px) { #fix fieldset { grid-template-columns: minmax(0, 1fr); } #fix fieldset label { white-space: normal; font-size: 15px; } }
/* C-12（GAS）：「あと N円です。」はピンクの地 */
#payCheck.note.bad { background: #fdecea; border-color: #f8c9c4; color: #b71c1c; }
/* E-12（GAS）：長押しの確かめの窓は真ん中 */
.seatboard #dragDlg.sheet.bottom { left: 0; right: 0; margin-left: auto; margin-right: auto; }
/* D-01（GAS）：締めの帯に「1階（おきあさり）」「2階（うみロジ2F）」 */
.cl-bar .cl-fl { flex: 1 1 0; font-weight: 800; font-size: 15px; white-space: nowrap; } .cl-bar .cl-fl small, .cl-fname { font-size: 11px; font-weight: 400; opacity: .85; margin-left: 2px; }
@media (max-width: 640px) { .cl-bar .cl-fl { display: none; } }
/* ===== 2026-11-03 動画の違い（V-01〜V-05）：GAS seat_board_monitor_v1.html 805-960・1236-1245 と同じ見た目 ===== */
/* V-04：席変更モードの青い帯は画面のいちばん上に固定・右に × */
.seatboard #moveBar.tl-banner { position: fixed; top: 0; left: 0; right: 0; z-index: 9999; margin: 0; border-radius: 0; display: block; background: #1e88e5; color: #fff; padding: 10px 48px 10px 14px; font-size: 15px; font-weight: 400; line-height: 1.45; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
.seatboard #moveBar[hidden] { display: none; }
.seatboard #moveBar .tl-move-close { position: absolute; right: 8px; top: 6px; width: 34px; height: 34px; min-height: 0; padding: 0; margin: 0; border: none; border-radius: 6px; background: rgba(255,255,255,.28); color: #fff; font-size: 18px; cursor: pointer; }
.tl-bar.moving { outline: 3px solid #1e88e5; outline-offset: 1px; box-shadow: 0 0 0 3px rgba(30,136,229,.28); z-index: 6; }
.tl-move-pick-mark { position: absolute; background: rgba(30,136,229,.28); border: 2px dashed #1e88e5; border-radius: 6px; pointer-events: none; z-index: 5; box-sizing: border-box; }
.tl-tno.pick { background: transparent; outline: none; }
/* V-01：帯の窓＝下から出る白い窓（幅 520px・上の角だけ丸い） */
.seatboard dialog#sheet { position: fixed; top: auto; bottom: 0; left: 0; right: 0; margin: 0 auto; width: 100%; max-width: 520px; max-height: 80vh; overflow: auto; border: 0; border-radius: 16px 16px 0 0; padding: 18px 20px 20px; background: #fff; color: #16231F; }
.seatboard dialog#sheet::backdrop { background: rgba(0,0,0,.35); }
.seatboard dialog#sheet h3 { margin: 0 0 6px; font-size: 17px; }
.seatboard dialog#sheet .rows .dt-row { font-size: 13.5px; color: #6E7B76; margin: 3px 0; padding: 0; }
.seatboard dialog#sheet .rows .dt-row.dt-paid { color: #2E7D32; font-weight: 800; }
.seatboard dialog#sheet .rows .dt-notes { font-size: 13.5px; color: #16231F; margin-top: 8px; white-space: pre-wrap; }
.seatboard dialog#sheet #shActs { display: block; margin: 0; }
.seatboard dialog#sheet #shActs > * { margin: 0; }
.seatboard dialog#sheet .dt-arrive-note { margin-top: 10px; font-size: 13px; font-weight: 700; color: #8A3B00; }
.seatboard dialog#sheet .dt-arrive, .seatboard dialog#sheet a.dt-order, .seatboard dialog#sheet a.dt-ck, .seatboard dialog#sheet .dt-reopen, .seatboard dialog#sheet a.dt-reprint { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 62px; margin: 16px 0 2px; padding: 14px 18px; border-radius: 12px; font-size: 17px; font-weight: 800; line-height: 1.3; text-decoration: none; word-break: keep-all; overflow-wrap: anywhere; box-sizing: border-box; }
.seatboard dialog#sheet .dt-arrive { border: 2px solid #C25E00; background: #E07000; color: #fff; font-size: 18px; }
.seatboard dialog#sheet a.dt-order { border: 2px solid #0F6E63; background: #0F6E63; color: #fff; }
.seatboard dialog#sheet a.dt-ck { margin-top: 12px; border: 2px solid #0B4F47; background: #fff; color: #0B4F47; }
.seatboard dialog#sheet .dt-reopen { margin-top: 14px; border: 2px solid #9a3412; background: #c2410c; color: #fff; font-size: 18px; }
.seatboard dialog#sheet a.dt-reprint { margin-top: 12px; border: 2px solid #1565c0; background: #fff; color: #1565c0; }
.seatboard dialog#sheet .dt-noorder { margin: 6px 0; padding: 8px 10px; border-radius: 8px; background: #FFF4E5; color: #7A4B00; font-weight: 800; font-size: 14px; line-height: 1.5; }
.seatboard dialog#sheet .dt-acts { display: flex; gap: 12px; margin-top: 12px; }
.seatboard dialog#sheet .dt-acts > * { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 56px; margin: 0; padding: 13px; border-radius: 10px; font-size: 13.5px; font-weight: 800; border: 1.5px solid #E1E7E4; background: #fff; color: #16231F; text-decoration: none; box-sizing: border-box; }
.seatboard dialog#sheet .dt-acts .dt-edit { color: #0B4F47; border-color: #0F6E63; }
.seatboard dialog#sheet .dt-acts .dt-finish { background: #2E6DA4; color: #fff; border-color: #2E6DA4; }
.seatboard dialog#sheet .dt-acts .dt-cancel { color: #C0392B; border-color: #C0392B; }
.seatboard dialog#sheet .dt-acts .dt-ope { background: #0F6E63; color: #fff; border-color: #0F6E63; }
.seatboard dialog#sheet .dt-unarrive { display: block; width: 100%; min-height: 50px; margin-top: 12px; padding: 10px 14px; border: 2px solid #c2410c; border-radius: 12px; background: #fff; color: #c2410c; font-size: 16px; font-weight: 800; }
.seatboard dialog#sheet .dt-keep { display: flex; justify-content: center; align-items: center; gap: 22px; margin: 10px 0 0; }
.seatboard dialog#sheet .dt-keep-link { display: inline-block; padding: 6px 0; color: #0B4F47; font-size: 12.5px; font-weight: 700; text-decoration: underline; }
.seatboard dialog#sheet .dt-finish-link { display: inline-block; width: auto; min-height: 0; margin: 0; padding: 6px 0; background: none; border: none; color: #6E7B76; font-size: 12px; font-weight: 400; text-decoration: underline; cursor: pointer; }
.seatboard dialog#sheet a.dt-fmove { display: flex; align-items: center; justify-content: center; min-height: 48px; margin-top: 12px; }
.seatboard dialog#sheet > .acts { display: block; margin: 0; }
.seatboard dialog#sheet #shClose { display: block; width: 100%; min-height: 0; margin: 0; padding: 8px 0 0; background: none; border: none; color: #6E7B76; font-size: 13px; font-weight: 400; text-align: center; }
/* V-05：画面の中の確かめ（GAS tl2Ask_ #tl2ReopenCard）＝下から出る窓・［やめる］（赤い枠）［はい、…］（青） */
.seatboard dialog.tl-ask { position: fixed; top: auto; bottom: 0; left: 0; right: 0; margin: 0 auto; width: 100%; max-width: 560px; max-height: 88vh; overflow: auto; border: 0; border-radius: 16px 16px 0 0; padding: 18px; background: #fff; color: #16231F; }
.seatboard dialog.tl-ask::backdrop { background: rgba(0,0,0,.45); }
.seatboard dialog.tl-ask h3 { margin: 0 0 8px; font-size: 17px; }
.seatboard dialog.tl-ask .ask-line { font-size: 14px; margin: 6px 0; line-height: 1.6; white-space: pre-wrap; }
.seatboard dialog.tl-ask .acts { display: flex; gap: 12px; margin-top: 12px; }
.seatboard dialog.tl-ask .acts button { flex: 1; min-height: 56px; margin: 0; padding: 13px; border-radius: 10px; font-size: 13.5px; font-weight: 800; }
.seatboard dialog.tl-ask .ask-no { background: #fff; color: #C0392B; border: 1.5px solid #C0392B; }
.seatboard dialog.tl-ask .ask-yes { background: #2E6DA4; color: #fff; border: 1.5px solid #2E6DA4; }
/* V-06（GAS #oesPayChangeBig）：お釣りがあるときは大きく緑 */
#splitSum .ck-row.ck-chg-big { font-size: 34px; font-weight: bold; color: #0b5d1e; background: #eaf7ee; border-radius: 10px; padding: 4px 10px; margin-top: 4px; }
#splitSum .ck-row.ck-just.off span { color: #8a1f1f; font-weight: bold; }
/* V-10（GAS「読み込み中…」・くるくる）：読み込むまで真っ白にしない */
.oes-spinner { display: inline-block; width: 18px; height: 18px; margin-right: 8px; vertical-align: -3px; border: 3px solid #cfd8dc; border-top-color: #1769aa; border-radius: 50%; animation: oes-spin .8s linear infinite; }
.ck-loading { margin: 12px; padding: 16px; font-size: 17px; font-weight: 700; color: #37474F; }
.tl-loading { margin: 8px; padding: 10px 14px; border-radius: 8px; background: #EEF3F2; color: #6E7B76; font-size: 15px; }
.tl-loading[hidden], .ck-loading[hidden] { display: none; }
/* ===== 2026-11-03 残りの小さな違い（GAS のとおり） ===== */
/* 1（GAS 注文画面_カテゴリ版.html 802-811 #oesAddonBar）：「○○ に付ける」の帯。ボタンは 3 つ同じ幅・1 行（はみ出すときは … で切る・折り返さない） */
.ord3 .addon-bar { border: 2px solid #1769aa; border-radius: 12px; background: #f3f8ff; padding: 6px 8px 8px; }
.ord3 .addon-bar .ab-h { display: flex; align-items: center; gap: 6px; font-size: 14px; }
.ord3 .addon-bar .ab-h .ab-t { flex: 1 1 auto; min-width: 0; font-size: 14px; font-weight: bold; color: #0d3b8a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ord3 .addon-bar .ab-h button { flex: 0 0 auto; min-width: 40px; min-height: 34px; padding: 0 8px; margin: 0; border: 1px solid #9aa5b1; border-radius: 8px; background: #fff; color: #37474f; font-size: 16px; }
.ord3 .addon-bar .ab-b { display: flex; gap: 6px; margin-top: 6px; }
.ord3 .addon-bar .ab-b button, .ord3 .addon-bar .ab-b button.secondary { flex: 1 1 0; min-width: 0; min-height: 46px; margin: 0; padding: 2px; border: 2px solid #1769aa; border-radius: 10px; background: #fff; color: #0d3b8a; font-size: 15px; font-weight: bold; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 370px) { .ord3 .addon-bar .ab-b button { font-size: 14px; } }
.ord3 .addon-bar .ab-b button[aria-pressed="true"]:not(.ab-note) { background: #1565c0; color: #fff; border-color: #1565c0; }
.ord3 .addon-bar .ab-b button.ab-note { border-style: dashed; }
/* 2（GAS レシート再発行.html 81-86 @media (max-width:600px)）：電話は 1 件ずつのカード「卓 T207　¥8,083」「伝票番号」「時刻」、右に［印刷］［取消・支払］ */
@media (max-width: 600px) {
  .rc-list, .rc-list tbody { display: block; }
  .rc-list thead { display: none; }
  .rc-list tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "tb amt" "no act" "tm act"; align-items: center; column-gap: 8px; row-gap: 2px; padding: 10px 14px; border-top: 1px solid #e2e8f0; min-height: 64px; }
  .rc-list tbody tr:first-child { border-top: 0; }
  .rc-list td { display: block; padding: 0; border: 0; min-width: 0; }
  .rc-list .rc-t { grid-area: tb; font-size: 19px; }
  .rc-list .rc-amt { grid-area: amt; font-size: 19px; text-align: right; }
  .rc-list .rc-code { grid-area: no; font-size: 17px; }
  .rc-list .rc-at { grid-area: tm; font-size: 17px; }
  .rc-list td:last-child { grid-area: act; }
  .rc-list .rc-acts { flex-direction: row; align-items: center; justify-content: flex-end; gap: 0; }
  .rc-list .rc-acts button { min-height: 48px; padding: 8px 16px; border-radius: 10px; font-size: 17px; }
}
/* 2（GAS レシート再発行.html .rvChoice）：取消の理由・担当はボタンの並び（flex 1 1 7em・字は中で折り返す＝窓からはみ出さない）。丸い印は出さない */
#fix fieldset { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; margin: 6px 0 10px; }
#fix fieldset legend { padding: 0; margin-bottom: 6px; font-size: 15px; }
#fix fieldset label { flex: 1 1 7em; min-width: 0; min-height: 48px; padding: 4px 8px; border: 1px solid #d5dde5; border-radius: 10px; background: #fff; color: #1d2733; font-size: 17px; font-weight: bold; white-space: normal; overflow-wrap: anywhere; text-align: center; position: relative; }
#fix fieldset label input[type="radio"] { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }   /* 丸は見せず、ボタン全体が押す所 */
#fix fieldset label:has(input:checked) { background: #174f80; border-color: #174f80; color: #fff; }
#fix fieldset label:has(input:focus-visible) { outline: 3px solid #1769aa; outline-offset: 2px; }
/* 3（GAS 会計画面 締め）：2 列（幅 900 以上）は上の帯に「1階（おきあさり）」「2階（うみロジ2F）」・カードに見出し無し／1 列はカードに見出し・帯には出さない */
@media (min-width: 900px) { .cl-floor > h2 { display: none; } }
@media (max-width: 899.98px) { .cl-bar .cl-fl { display: none; } }
/* 4（GAS oesPuPaint_）：予約時のポイントの知らせは薄紫の地（枠なし）・ボタンは白に紫の枠。ポイントの支払の行はほかの行と同じ */
#pays .ptnote { margin: 8px 0; padding: 8px 10px; border-radius: 10px; background: #f3e5f5; color: #4a148c; font-weight: bold; font-size: 15px; line-height: 1.5; }
#pays .ptnote .ptfix { display: block; width: auto; margin: 8px 0 0; min-height: 44px; padding: 6px 14px; border-radius: 10px; font-size: 16px; font-weight: bold; background: #fff; color: #4a148c; border: 2px solid #7b1fa2; }
#pays .pay.ptbox { border: 1px solid #cfd8dc; background: transparent; } #pays .pay.ptbox .pm { color: inherit; }
/* 5（GAS seat_board_monitor_v1.html 943-953 #tl2ReopenSheet／#tl2ReopenCard・tl2Ask_）：長押しで動かす確かめは、画面の下・真ん中の白い紙（幅 560px まで・上の角だけ丸い） */
.seatboard dialog#dragDlg, .seatboard dialog#dragDlg.sheet.bottom { position: fixed; top: auto; bottom: 0; left: 0; right: 0; margin: 0 auto; width: 100%; max-width: 560px; max-height: 88vh; overflow: auto; border: 0; border-radius: 16px 16px 0 0; padding: 18px; background: #fff; color: #16231F; transform: none; }
.seatboard dialog#dragDlg::backdrop { background: rgba(0,0,0,.45); }
.seatboard #dragDlg #dragText { font-size: 17px; font-weight: 800; margin: 0 0 8px; }
.seatboard #dragDlg .drag-rows { font-size: 14px; color: #16231F; line-height: 1.6; }
.seatboard #dragDlg .acts { display: flex; gap: 12px; margin-top: 12px; }
.seatboard #dragDlg .acts button { flex: 1; min-height: 56px; margin: 0; padding: 13px; border-radius: 10px; font-size: 13.5px; font-weight: 800; }
/* 6（GAS 注文画面_カテゴリ版.html 531-532・594 #oesWideSide）：iPad 横は右の列（仮カート・注文済み）を画面に貼り付け、列の中で下まで動かせる。
   高さは「見えている画面（dvh）− 上の帯 − 下の注文を確定の帯」。iPad の Safari で 100vh が見える高さより大きく、下が切れていたのを直す */
@media (min-width: 900px) {
  .ord3 .ord-side { position: sticky; top: 44px; max-height: calc(100vh - 52px - 160px); max-height: calc(100dvh - 52px - 160px); overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding-bottom: 8px; }
  body.ord-empty .ord3 .ord-side { max-height: calc(100vh - 52px); max-height: calc(100dvh - 52px); }
}
.ord3 .sent-foot { margin: 8px 2px 0; font-size: 14px; color: #37474f; line-height: 1.5; }
.ord3 .sent-stage:not([hidden]) + .sent-foot { display: none; }
/* H（GAS rvFacts）：直す窓の上は 卓・合計・支払・伝票番号・時刻 を 1 行ずつ（18px） */
#fix #billinfo { color: #1d2733; font-size: 18px; line-height: 1.7; margin: 0 0 10px; }
/* H（GAS rvStepPay .rvPayRow・.rvChoice）：支払方法を直す段は 枠の中に 支払 1・方法のボタン（並び 7em）・金額。下は［戻る］［次へ］を半分ずつ */
#fixPays .pay { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border: 1px solid #d5dde5; border-radius: 10px; padding: 10px; margin: 8px 0; }
#fixPays .pay > span:first-child { flex: 1 1 100%; }
#fixPays .pay button, #fixPays .pay button.off { flex: 1 1 7em; min-width: 0; min-height: 48px; margin: 0; padding: 8px; background: #fff; color: #1d2733; border: 1px solid #d5dde5; border-radius: 10px; font-size: 17px; font-weight: bold; }
#fixPays .pay button.on { background: #174f80; border-color: #174f80; color: #fff; }
#fixPays .pay .amount { flex: 0 0 auto; min-height: 44px; font-size: 19px; padding: 4px 8px; border: 1px solid #d5dde5; border-radius: 8px; }
#fxStepPay #fxSplit { width: auto; min-height: 48px; margin: 0; background: #fff; color: #1d2733; border: 1px solid #d5dde5; border-radius: 10px; font-weight: bold; }
#fxStepPay #fxPaySum { color: #1d2733; font-weight: bold; margin: 6px 0; }
#fxStepPay > p:last-child { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#fxStepPay > p:last-child button { margin: 0; min-height: 56px; border-radius: 10px; font-weight: bold; }
#fxStepPay #fxBackPay { background: #fff; color: #1d2733; border: 1px solid #d5dde5; }
@media (max-width: 600px) { table.items.rc-list td { border: 0; padding: 0; } }
/* 注文の取消（会計から・GAS 注文画面 794-795 #oesSentHint・#oesSentBack） */
.ord3 .sent-hint { margin: 4px 0; padding: 6px 8px; border-radius: 8px; background: #fff3e0; color: #7a3e00; font-weight: bold; }
.ord3 .sent-hint[hidden], .ord3 .sent-back[hidden] { display: none; }
.ord3 a.sent-back { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin: 4px 0 8px; font-size: 17px; font-weight: bold; border: 0; border-radius: 12px; background: #1565c0; color: #fff; text-decoration: none; box-sizing: border-box; }
body.ord-fromck .ord3 #back { display: none; }
/* 精算レポート（GAS 会計画面 10352-10370 #oesRptV）：上に［日のレポート］［月の一覧］、「精算レポート」◀ 前日［日付］翌日 ▶、1階・2階を並べる */
.rp-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 10px 0; }
.rp-head .rp-title { flex: 1 1 auto; font-size: 20px; }
.rp-head button, .rp-head input { margin: 0; width: auto; min-height: 44px; }
.rp-head button.secondary { background: #f3f5f7; color: #1d2733; border: 1px solid #c9d1d9; border-radius: 10px; padding: 6px 14px; }
.rp-head input { font-size: 17px; padding: 6px 8px; border: 2px solid #d8dee6; border-radius: 10px; }
.rp-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; }
.rp-col { background: #fff; border: 2px solid #e6ebf0; border-radius: 12px; padding: 10px 12px; }
.rp-fl { font-size: 18px; font-weight: bold; }
.rp-st { display: inline-block; margin: 4px 0 8px; padding: 2px 10px; border-radius: 8px; font-weight: bold; }
.rp-st.done { background: #e6f4ea; color: #0b6b2b; } .rp-st.live { background: #fff4e5; color: #7a4b00; } .rp-st.none { background: #eef1f4; color: #5c6b7a; }
.rp-row { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(5.5em, auto); gap: 0 10px; align-items: baseline; padding: 3px 2px; border-bottom: 1px solid #e6ebf0; }
.rp-row .v { font-weight: bold; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.rp-row .n { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.rp-sub { font-size: 12px; color: #5c6b7a; line-height: 1.3; }
.rp-sec { margin-top: 8px; font-weight: bold; color: #1f6fb2; }
.tabs #tab-day:not(.secondary), .tabs #tab-month:not(.secondary) { background: #1f6fb2; border-color: #1f6fb2; }
/* 入出金（GAS 会計画面 入出金の専用画面）：階は「1F（おきあさり）」「2F（うみロジ2F）」の大きなボタン・向きは［入金 レジに入れる］［出金 レジから出す］を半分ずつ */
.cs-back { display: inline-block; padding: 8px 14px; border: 1px solid #4a90d9; border-radius: 10px; color: #1f6fb2; font-weight: bold; text-decoration: none; background: #fff; }
.seg.cs-floor, .seg.cs-dir { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.seg.cs-floor button, .seg.cs-dir button { margin: 0; min-height: 46px; border: 2px solid #4a90d9; border-radius: 10px; font-weight: bold; }
.seg.cs-floor button.secondary, .seg.cs-dir button.secondary { background: #fff; color: #1f6fb2; }
.seg.cs-floor button.on, .seg.cs-dir button.on { background: #1769aa; border-color: #0f4f85; color: #fff; }
.seg.cs-dir button { min-height: 64px; font-size: 20px; line-height: 1.2; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.seg.cs-dir button small { font-size: 12px; font-weight: 400; opacity: .85; }
/* 合算（GAS）：［選んだ卓の会計を確認］は青い大きなボタン */
#mergeDlg .mg-acts { display: flex; flex-direction: column; gap: 8px; }
#mergeDlg #mergeGo { width: 100%; min-height: 52px; margin: 0; background: #1769aa; border-color: #1769aa; font-size: 17px; font-weight: bold; }
#mergeDlg #mergeNo { width: 100%; margin: 0; }
/* 入出金（GAS 会計画面 入出金）：種別の選び箱と金額を 1 行に・コメント・［確認へ］は横いっぱい */
.cs-lbl { display: block; margin: 8px 0 4px; font-size: 13px; color: #5c6b7a; font-weight: 400; }
.cs-row { display: flex; gap: 8px; margin-top: 8px; }
.cs-row select { flex: 1.15 1 0; min-width: 0; margin: 0; min-height: 44px; font-size: 17px; }
.cs-row input { flex: 1 1 0; min-width: 0; margin: 0; min-height: 44px; font-size: 17px; }
.cs-go #toCf { width: 100%; min-height: 52px; margin: 8px 0 0; background: #fff; color: #1f6fb2; border: 2px solid #4a90d9; border-radius: 12px; font-size: 18px; font-weight: bold; }
@media (max-width: 519px) { .cs-row { flex-direction: column; } .cs-row select, .cs-row input { flex: 0 0 auto; width: 100%; } .cs-floor .cs-wide { display: none; } }   /* GAS：狭い画面は 1F／2F だけ・選び箱と金額は縦に */
