.modal-panel:has(.table-picker){width:min(860px,calc(100% - 28px))}
.table-picker{min-width:0;padding:22px;border:1px solid #dedfda;background:#f7f7f3;box-shadow:0 18px 50px rgba(19,25,22,.06)}
.table-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.table-picker-head span{display:block;margin-bottom:4px;color:#997029;font-size:9px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.table-picker-head h3{margin:0;color:#171a19;font-size:20px;line-height:1.2;letter-spacing:-.025em}
.table-refresh,.table-plan-error button{min-height:40px;padding:8px 13px;border:1px solid #d4d6d1;border-radius:999px;background:#fff;color:#313735;font-size:10px;font-weight:780;transition:border-color .15s,background .15s,transform .15s}
.table-refresh i{display:inline-block;margin-right:3px;font-style:normal;font-size:15px;line-height:0;vertical-align:-1px}
.table-refresh:hover,.table-plan-error button:hover{border-color:#a87826;background:#fff;transform:translateY(-1px)}
.table-refresh:disabled{opacity:.55;cursor:wait}
.table-picker-note{max-width:62ch;margin:10px 0 19px;color:#6a706d;font-size:11px;line-height:1.5}
.table-slot-picker{display:grid;grid-template-columns:minmax(118px,1fr) minmax(105px,.8fr) minmax(145px,1.15fr);gap:8px;margin:0 0 15px}
.table-slot-picker label{display:grid;gap:5px;min-width:0;padding:9px 11px;border:1px solid #d9dcd7;border-radius:11px;background:#fff}
.table-slot-picker label span{color:#7b817e;font-size:8px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.table-slot-picker input{width:100%;min-width:0;padding:0;border:0;outline:0;background:transparent;color:#202522;font-size:12px;font-weight:760}
.table-slot-picker label:focus-within{border-color:#b78631;box-shadow:0 0 0 3px rgba(183,134,49,.1)}
.table-slot-picker>p{display:flex;align-items:center;gap:9px;margin:0;padding:9px 11px;border-radius:11px;background:#eceeea;color:#6d7470;font-size:8px;line-height:1.35}
.table-slot-picker>p i{flex:0 0 8px;width:8px;height:8px;border:2px solid #52a273;border-radius:50%;box-shadow:0 0 0 3px rgba(82,162,115,.12)}
.table-slot-picker>p b{color:#333a36;font-size:9px}
.table-plan-root{min-width:0}
.table-plan-loading{min-height:260px;display:grid;place-content:center;justify-items:center;gap:12px;color:#646c69;font-size:12px}
.table-plan-loading i{width:24px;height:24px;border:2px solid #d0d5d3;border-top-color:#a87826;border-radius:50%;animation:table-spin .75s linear infinite}
.table-hall-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:4px;margin-bottom:18px;padding:4px;border-radius:14px;background:#e8eae6}
.table-hall-tab{min-width:0;display:grid;gap:4px;padding:11px 13px;border:0;border-radius:10px;background:transparent;color:#4f5753;text-align:left;font-size:12px;font-weight:780;box-shadow:none;transition:background .15s,transform .15s,box-shadow .15s}
.table-hall-tab:hover{border-color:#a87826;transform:translateY(-1px)}
.table-hall-tab small{display:flex;align-items:center;gap:6px;color:#737a77;font-size:9px;font-weight:650}
.table-hall-tab small i{width:6px;height:6px;border-radius:50%;background:#4f8a69;box-shadow:0 0 0 3px rgba(79,138,105,.12)}
.table-hall-tab.active{background:#fff;color:#171a19;box-shadow:0 3px 12px rgba(23,26,25,.1)}
.table-hall-tab.active small{color:#68706c}
.table-hall-tab.active small i{background:#52a273;box-shadow:0 0 0 3px rgba(82,162,115,.15)}
.table-plan-guide{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin:0 2px 11px}
.table-plan-guide>div:first-child{display:grid;gap:2px}
.table-plan-guide b{color:#252a28;font-size:12px}
.table-plan-guide>div:first-child span{color:#7c827f;font-size:9px}
.table-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px 11px;margin:0;color:#616966;font-size:9px}
.table-legend span{display:flex;align-items:center;gap:5px}
.table-legend i{width:8px;height:8px;border:0;border-radius:50%;background:#52a273;box-shadow:0 0 0 2px rgba(82,162,115,.12)}
.table-legend i.busy{background:#b8bdb9;box-shadow:0 0 0 2px rgba(130,138,133,.1)}
.table-legend i.reserved{background:#b56f68;box-shadow:0 0 0 2px rgba(181,111,104,.12)}
.table-legend i.chosen{background:#c99435;box-shadow:0 0 0 2px rgba(201,148,53,.14)}
.table-stage{position:relative;width:100%;aspect-ratio:1.65;min-height:310px;overflow:hidden;border:1px solid #e0e2de;border-radius:18px;background-color:#edeFEB;background-image:radial-gradient(circle at 1px 1px,rgba(72,82,77,.12) 1px,transparent 1px),radial-gradient(circle at 50% 42%,rgba(255,255,255,.72),transparent 64%);background-size:18px 18px,100% 100%;box-shadow:inset 0 0 0 7px rgba(255,255,255,.48),0 10px 28px rgba(26,32,29,.06)}
.plan-table{position:absolute;display:grid;place-content:center;min-width:0;min-height:0;padding:3px;border:1px solid #d5dad6;border-radius:8px;background:#fff;color:#202623;box-shadow:0 4px 11px rgba(27,36,31,.1);transition:transform .15s,border-color .15s,background .15s,box-shadow .15s}
.plan-table:hover:not(:disabled){z-index:2;transform:scale(1.08);border-color:#7caa8e;box-shadow:0 7px 16px rgba(27,36,31,.15)}
.plan-table.round{border-radius:50%}
.plan-table i{position:absolute;right:4px;top:4px;width:5px;height:5px;border-radius:50%;background:#52a273;box-shadow:0 0 0 2px rgba(82,162,115,.12)}
.plan-table b{max-width:100%;overflow:hidden;font-size:12px;line-height:1;text-overflow:ellipsis;white-space:nowrap}
.plan-table em{position:absolute;left:50%;bottom:3px;transform:translateX(-50%);font-size:6px;font-style:normal;font-weight:850;line-height:1;color:#8f4843}
.plan-table.occupied{border-color:#d5d8d5;background:repeating-linear-gradient(135deg,#dadeda,#dadeda 4px,#d5d9d5 4px,#d5d9d5 8px);color:#777f7b;box-shadow:none;cursor:not-allowed}
.plan-table.occupied i{background:#9fa6a2;box-shadow:none}
.plan-table.reserved{border-color:#d9b8b4;background:repeating-linear-gradient(135deg,#fff5f3,#fff5f3 5px,#faece9 5px,#faece9 10px);color:#7b312c;box-shadow:0 3px 9px rgba(101,44,39,.08);cursor:not-allowed}
.plan-table.reserved i{background:#b56f68;box-shadow:0 0 0 2px rgba(181,111,104,.13)}
.plan-table.selected{z-index:3;border-color:#b78122;background:#d7a54b;color:#171a18;box-shadow:0 0 0 4px rgba(215,165,75,.22),0 7px 18px rgba(107,75,20,.22);transform:scale(1.04)}
.plan-table.selected i{background:#171a18;box-shadow:0 0 0 2px rgba(23,26,24,.13)}
.table-live-stamp{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:10px 3px 0;color:#737a77;font-size:9px;text-align:right}
.table-live-stamp i{width:6px;height:6px;border-radius:50%;background:#4f8a69;box-shadow:0 0 0 3px rgba(79,138,105,.12)}
.table-selection{display:flex;align-items:center;gap:12px;margin-top:13px;padding:12px 14px;border:1px solid #d5b16f;border-radius:13px;background:#fffaf0;box-shadow:0 6px 18px rgba(111,77,20,.07)}
.table-selection>i{display:grid;flex:0 0 29px;width:29px;height:29px;place-items:center;border-radius:50%;background:#c99435;color:#fff;font-style:normal;font-weight:850}
.table-selection>span{display:grid;gap:1px}
.table-selection small{color:#987027;font-size:8px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.table-selection b{color:#242925;font-size:12px}
.table-selection em{color:#737975;font-size:9px;font-style:normal}
.table-plan-error{min-height:190px;display:grid;place-content:center;justify-items:center;gap:7px;text-align:center;color:#545c59}
.table-plan-error b{font-size:14px;color:#252b29}.table-plan-error span{font-size:11px}
@keyframes table-spin{to{transform:rotate(360deg)}}
@media(max-width:900px){
  .modal-panel:has(.table-picker){width:100%}
  .table-picker{padding:14px;margin-inline:-2px}
  .table-stage{min-height:300px;aspect-ratio:1.28;background-size:16px 16px,100% 100%}
  .plan-table b{font-size:11px}
  .table-legend{gap:7px 10px}
}
@media(max-width:390px){
  .table-picker{padding:13px 11px}
  .table-picker-head{gap:10px}
  .table-picker-head h3{font-size:16px}
  .table-refresh{min-height:36px;padding-inline:9px}
  .table-hall-tabs{grid-template-columns:1fr 1fr;gap:6px}
  .table-hall-tab{padding:9px 10px}
  .table-slot-picker{grid-template-columns:1fr 1fr}
  .table-slot-picker>p{grid-column:1/-1;min-height:42px}
  .table-plan-guide{align-items:flex-start;flex-direction:column;gap:8px}
  .table-legend{justify-content:flex-start}
  .table-stage{min-height:285px;aspect-ratio:1.18;background-size:15px 15px,100% 100%}
  .plan-table{border-radius:6px}
  .plan-table b{font-size:10px}
  .plan-table em{bottom:2px;font-size:5px}
  .plan-table i{right:3px;top:3px;width:4px;height:4px}
  .table-live-stamp{justify-content:flex-start}
}
