.seat-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin:16px 0}.seat-controls label{display:grid;gap:6px;font-weight:600}.seat-controls select{min-width:140px;padding:10px;border:1px solid #cdd7e6;border-radius:8px;background:white;font:inherit}.seat-controls button{width:auto;margin:0;padding:10px 18px}.seat-legend{font-size:14px;line-height:1.8;color:#536178}.seat-legend-special{color:#7434a6}.seat-legend-stay{color:#167148}.seat-scroll{max-width:100%;overflow:auto;border:1px solid #dce3ee;margin-top:14px;background:#fff}.seat-map{display:grid;grid-template-columns:repeat(var(--columns),minmax(94px,1fr));grid-template-rows:repeat(var(--rows),minmax(92px,auto));min-width:1320px;padding:8px;gap:0;background:#fff;align-items:stretch}.seat-map-upper{min-width:1100px}.seat-whiteboard{border:2px solid #344054;display:flex;align-items:center;justify-content:center;font-size:20px;background:#fff;color:#182438;align-self:start;min-height:74px}.seat-cell{position:relative;border:1px solid #677488;border-radius:0;margin:0;padding:29px 5px 7px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:3px;background:#fff;color:#182438;font:inherit;font-size:12px;min-width:0;overflow-wrap:anywhere;box-shadow:none}.seat-cell strong{font-size:14px;line-height:1.3}.seat-cell .seat-time{position:absolute;right:4px;top:4px;max-width:90%;font-size:11px;font-weight:700;background:inherit}.seat-number{position:absolute;bottom:2px;left:3px;font-size:8px;opacity:.6}.seat-cell .seat-empty{color:#758198;font-size:12px}.seat-cell.seat-stay{background:#e3f3e9;color:#145a36}.seat-cell.seat-special{background:#f1e8fb;color:#663090}.seat-cell.seat-absent{background:#e5e7eb;color:#69707c;font-style:italic}.seat-diet{font-size:10px}.seat-stay-label{font-weight:bold}.seat-selected{outline:3px solid #3478f6;outline-offset:-3px;z-index:1}button.seat-cell{cursor:pointer;width:auto}button.seat-cell:hover:not(:disabled){outline:2px solid #3478f6;outline-offset:-2px}button.seat-cell:disabled{cursor:wait;opacity:.6}.seat-editor{display:flex;flex-wrap:wrap;gap:12px;align-items:end;border:1px solid #a9c4ff;background:#f6f9ff;padding:16px;border-radius:10px}.seat-editor[hidden]{display:none!important}.seat-editor h3{flex-basis:100%;margin:0}.seat-editor label{display:grid;gap:6px;flex:1;min-width:180px}.seat-editor input,.seat-editor select{padding:10px;border:1px solid #cdd7e6;border-radius:8px;font:inherit;width:100%}.seat-editor button{width:auto;margin:0;padding:10px 16px}#seating,#adminSeatingPanel{min-width:0}#seating>.card{min-width:0}#seatSaveStatus,#seatAdminStatus,#seatViewStatus{font-size:14px;line-height:1.5}#adminSeatingPanel.hidden{display:none!important}@media(max-width:800px){.seat-controls{gap:8px}.seat-controls select{min-width:110px}.seat-scroll{max-height:75vh}.seat-editor{padding:12px}.seat-editor label{min-width:100%;}.seat-map{grid-template-columns:repeat(var(--columns),94px)}}
.seat-map{grid-template-rows:repeat(var(--rows),minmax(24px,auto))}.seat-cell{min-height:100px}.seat-whiteboard{min-height:48px}
/* Fixed-plan room view: scoped to seating so legacy pages remain unchanged. */
#seating .seat-room-card,#adminSeatingPanel{padding:26px;border-color:#dce5e7}
.seat-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:20px}
.seat-eyebrow{display:block;font-size:12px;letter-spacing:1px;color:#568079;margin-bottom:9px}
.seat-heading .section-title{font-size:23px;line-height:1.4;margin:0 0 7px;color:#1b393b}
.seat-heading p{margin:0;font-size:13px;color:#687e80;line-height:1.7}
.seat-fixed-badge{flex-shrink:0;border:1px solid #bfded4;background:#eef8f3;color:#266d55;border-radius:24px;padding:9px 14px;font-size:12px;font-weight:700}
.seat-stats{display:flex;gap:0;border:1px solid #e0e9e8;border-radius:12px;background:#f7faf9;margin-bottom:22px;overflow:hidden}
.seat-stats>div{flex:1;padding:16px 22px;border-right:1px solid #e0e9e8}
.seat-stats span{display:block;color:#627779;font-size:12px;margin-bottom:7px}
.seat-stats strong{font-size:26px;color:#244c47;font-variant-numeric:tabular-nums}
.seat-stats>p{margin:0;padding:18px 22px;font-size:12px;line-height:1.9;color:#6b7d7b}
.seat-stats b{color:#345852;font-weight:600}
.seat-controls{padding:16px;background:#f7f9fc;border-radius:12px;gap:12px}
.seat-controls label{font-size:12px;color:#64748b;gap:8px}
.seat-controls select{font-size:14px;min-height:42px;border-color:#d8e1e9;color:#243b53;cursor:pointer}
.seat-controls button{min-height:42px;border-color:#c3d8d4;color:#276253;font-size:13px;background:#fff}
.seat-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;margin:16px 0}
.seat-legend>span{border:1px solid #dce5ee;background:#fff;border-radius:6px;padding:5px 10px;color:#465c72}
.seat-legend>span.seat-legend-special{background:#f3eafb;border-color:#dec7f0;color:#7436a0}
.seat-legend>span.seat-legend-stay{background:#e9f6ed;border-color:#b9ddc5;color:#27683f}
.seat-legend>span.seat-legend-absent{background:#edf0f2;border-color:#d8dfe3;color:#63717a;font-style:italic}
.seat-legend small{color:#72838c;margin-left:auto;font-size:12px}
.seat-scroll{border-radius:12px;border:1px solid #dae4e7;background:#f6f8fa;max-height:78vh;overscroll-behavior:contain;scrollbar-color:#b6c9c5 #edf2f3;scrollbar-width:thin}
.seat-map{background:#f6f8fa;padding:18px;gap:5px;grid-template-rows:repeat(var(--rows),minmax(20px,auto))}
.seat-whiteboard{border:1px solid #acc7c0;border-bottom:5px solid #658e82;border-radius:7px;min-height:52px;background:#fff;color:#477267;font-size:17px;letter-spacing:6px;align-self:center;box-shadow:0 3px 8px #1b393b08}
.seat-cell{border:1px solid #d5dfe8;border-radius:9px;padding:29px 7px 19px;gap:5px;min-height:114px;background:#fff;box-shadow:0 2px 4px #23354e06;line-height:1.4}
.seat-cell strong{font-size:16px;line-height:1.4;font-weight:700;color:inherit}
.seat-cell .seat-time{font-size:12px;right:6px;top:6px;border-radius:4px;line-height:1.5;color:inherit;font-variant-numeric:tabular-nums}
.seat-number{font-size:9px;left:7px;bottom:4px;opacity:.7;letter-spacing:.4px}
.seat-meal{font-size:12px;font-weight:600}
.seat-attendance{font-size:11px;opacity:.85}
.seat-vacant{border-style:dashed;background:#fafcfd;box-shadow:none}
.seat-cell .seat-empty{color:#8b9ba8;font-size:12px}
.seat-cell.seat-special{border-color:#d7b9ed;border-top:3px solid #a269ca;background:#f4ecfb;color:#6b388d}
.seat-cell.seat-stay{border-color:#b9d9c3;border-top:3px solid #64a478;background:#edf8f0;color:#29633d}
.seat-cell.seat-absent{border-color:#d2d9df;border-top:3px solid #a2afb8;background:#e9edf0;color:#6b7781;font-style:italic;box-shadow:none}
.seat-selected{outline:3px solid #327e72;outline-offset:1px;box-shadow:0 0 0 5px #d8ebe5}
button.seat-cell:hover:not(:disabled){outline:2px solid #327e72;outline-offset:1px}
.seat-scroll:focus-visible,.seat-controls select:focus-visible,.seat-editor select:focus-visible,.seat-editor input:focus-visible,button.seat-cell:focus-visible{outline:3px solid #3478f6;outline-offset:3px}
.seat-editor{border-color:#a7cfc2;background:#f2faf6;padding:20px;border-radius:12px;margin-top:14px}
.seat-editor h3{font-size:16px;color:#275b4e}
.seat-editor label{font-size:12px;color:#506c63}
.seat-editor .save{background:#2c7764;min-height:42px;font-size:14px}
.seat-compat-note{font-size:12px;color:#71828b;line-height:1.8}
#seatSaveStatus{color:#285d4f;font-weight:600}
#seatViewStatus,#seatAdminStatus{color:#647884;font-size:12px}
@media(max-width:800px){#seating .seat-room-card,#adminSeatingPanel{padding:15px}.seat-heading{align-items:start;flex-direction:column;gap:10px}.seat-heading .section-title{font-size:20px}.seat-fixed-badge{padding:6px 10px}.seat-stats{flex-wrap:wrap}.seat-stats>div{padding:12px 10px}.seat-stats strong{font-size:22px}.seat-stats>p{flex-basis:100%;padding:8px 10px;border-top:1px solid #e0e9e8}.seat-stats>p br{display:none}.seat-stats>p b{margin-left:8px}.seat-controls{padding:10px}.seat-controls label{flex:1;min-width:100px}.seat-controls select{width:100%;min-width:0}.seat-legend small{flex-basis:100%;margin-left:0}.seat-scroll{max-height:70vh}.seat-editor{padding:12px}}
