.floor-wrap { display: grid; gap: 14px; margin-top: 14px; }
@media (min-width: 960px) { .floor-wrap { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); } }

/* 予約の一覧 */
.resv { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.resv li { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 8px 10px; border-radius: 12px; background: var(--surface-2); border: 1.5px solid transparent; transition: border-color .2s, background .2s; }
.resv li.picked { border-color: var(--accent); background: rgba(217, 162, 90, .12); box-shadow: 0 0 18px -6px rgba(232, 185, 119, .6); }
.resv li.done { opacity: .5; }
.pick { flex: 1; min-width: 0; display: grid; grid-template-columns: 50px 1fr; column-gap: 8px; text-align: left; background: none; border: 0; padding: 0; cursor: pointer; color: inherit; }
.pick time { grid-row: span 3; font-family: var(--font-head); font-size: 18px; color: var(--accent); }
.pick b { font-size: 14px; }
.pick span, .pick small { font-size: 12px; color: var(--muted); }
.resv .acts { display: flex; gap: 6px; align-items: center; flex: none; }

/* 席の図：木のカウンターと卓と座敷 */
.floor { display: grid; gap: 14px; margin-top: 12px; }
.zone { padding: 12px; border-radius: 14px; background: rgba(0, 0, 0, .18); border: 1px solid var(--line); }
.counter-top { margin: -2px 0 10px; padding: 9px 14px; border-radius: 10px; font-size: 12px; font-weight: 700; color: #2b1c0f;
  background: radial-gradient(40% 140% at 30% 0, rgba(255, 226, 170, .6), transparent 70%), linear-gradient(180deg, #c8915a, #a87240); box-shadow: 0 8px 18px -8px rgba(0, 0, 0, .8); }
.stools { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 6px; }
.tables { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.seat { display: grid; gap: 1px; justify-items: center; align-content: center; min-height: 64px; padding: 6px 4px; border-radius: 12px; cursor: pointer; text-align: center; color: var(--text);
  background: var(--surface); border: 1.5px dashed var(--line); transition: transform .15s, border-color .2s, background .2s; }
.seat:hover { transform: translateY(-2px); }
.seat.counter { border-radius: 50% 50% 12px 12px; min-height: 70px; }
.seat.table { min-height: 86px; }
.seat.zashiki { width: 100%; min-height: 96px; background-image: repeating-linear-gradient(90deg, rgba(160, 170, 90, .14) 0 46px, rgba(0, 0, 0, .12) 46px 48px); }
.sl { font-size: 11px; color: var(--muted); font-weight: 700; }
.sn { font-size: 12px; font-weight: 700; line-height: 1.3; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sn.free { color: var(--muted); font-weight: 500; }
.st { font-size: 10.5px; color: var(--muted); }
.seat.booked { border: 1.5px solid var(--accent); background: rgba(217, 162, 90, .14); }
.seat.seated { border: 1.5px solid var(--ok); background: rgba(143, 194, 122, .16); }
.seat.mine { box-shadow: 0 0 0 3px var(--accent), 0 0 20px -2px rgba(232, 185, 119, .7); }
.legend { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 12px; color: var(--muted); }
.lg::before { content: ""; display: inline-block; width: 12px; height: 12px; border-radius: 4px; margin-right: 5px; vertical-align: -1px; border: 1.5px dashed var(--line); }
.lg.booked::before { border: 1.5px solid var(--accent); background: rgba(217, 162, 90, .3); }
.lg.seated::before { border: 1.5px solid var(--ok); background: rgba(143, 194, 122, .3); }
.lg.done::before { border-style: solid; opacity: .4; }

/* 見積もり */
.quote-total { display: grid; gap: 2px; padding: 14px 16px; border-radius: 12px; background: rgba(217, 162, 90, .12); border: 1px solid rgba(217, 162, 90, .4); }
.quote-total span { font-size: 12px; color: var(--muted); }
.quote-total b { font-family: var(--font-head); font-size: 34px; color: var(--accent); line-height: 1.2; }
.quote-total small { font-size: 12px; color: var(--muted); }
pre.msg { margin: 0; white-space: pre-wrap; font-family: inherit; font-size: 13.5px; }
@media (max-width: 640px) { .stools { grid-template-columns: repeat(4, minmax(0, 1fr)); } .tables { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
