:root {color-scheme:dark; --bg:#0c0f13;--panel:#15191f;--panel2:#1c2229;--edge:#303741;--txt:#f0f4f8;--sub:#93a0ac;--accent:#d9b76b;--accent2:#ecd4a6;--red:#f08984;--ok:#83cbac; font-family:system-ui,-apple-system,"Malgun Gothic","Noto Sans KR",sans-serif;}
*{box-sizing:border-box} html,body{margin:0;min-height:100vh;background:var(--bg);color:var(--txt);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}.hidden{display:none!important}.app{min-height:100vh;display:flex}.sidebar{width:234px;flex-shrink:0;border-right:1px solid var(--edge);padding:23px 15px;background:#11151a;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:11px;align-items:center;font-size:16px;font-weight:800;letter-spacing:.03em}.brand small{display:block;font-size:9px;letter-spacing:.18em;font-weight:500;color:var(--sub);margin-top:4px}.brandmark{height:49px;width:49px;display:grid;place-items:center;color:#171410;background:var(--accent);border-radius:13px;font-size:28px;font-weight:900}.brandmark span{color:#f6e3af}.brandmark.small{height:38px;width:38px;font-size:22px;flex-shrink:0}.side-section{margin:40px 8px 14px;font-size:11px;letter-spacing:.14em;color:var(--sub);font-weight:700}.navitem{display:block;width:100%;background:transparent;border:0;text-align:left;color:var(--sub);padding:13px 11px;border-radius:9px}.navitem span{margin-right:11px}.navitem.selected{background:#302a1f;color:var(--accent2);font-weight:750}.side-note{font-size:12px;line-height:1.8;color:var(--sub);padding:0 7px}.side-note strong{color:var(--accent)}.sidebar-bottom{margin-top:auto;display:flex;gap:5px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:11px;color:var(--sub)}.main{width:100%;min-width:0;max-width:1700px;margin:auto;padding:33px 40px 60px}.topline{display:flex;justify-content:space-between;gap:16px;align-items:end;padding-bottom:26px}.eyebrow{font-weight:800;color:var(--accent);font-size:11px;letter-spacing:.16em}.topline h1{font-size:30px;letter-spacing:-.035em;margin:7px 0}.topline p,.section-head p{color:var(--sub);margin:0;font-size:12px;line-height:1.7}.controls{display:flex;gap:8px;align-items:end}.controls label{font-size:11px;color:var(--sub);display:grid;gap:5px}.controls input{min-width:160px}.primary,.secondary{border-radius:8px;min-height:39px;padding:9px 14px;font-weight:750;white-space:nowrap}.primary{background:var(--accent);color:#1c1710;border:1px solid var(--accent)}.primary:hover{background:var(--accent2)}.secondary{background:#232a32;color:var(--txt);border:1px solid #3a444e}.secondary:hover{border-color:var(--accent)}input,select,textarea{background:#10151a;color:var(--txt);border:1px solid #434a52;border-radius:7px;padding:10px 11px;max-width:100%}input:focus,select:focus{border-color:var(--accent);outline:2px solid #b18b4b40}label{display:block}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.kpi{border:1px solid var(--edge);background:var(--panel);padding:19px;border-radius:12px}.kpi div{color:var(--sub);font-size:12px}.kpi strong{font-size:28px;font-weight:800;display:block;margin:8px 0}.kpi span{font-size:11px;color:var(--sub)}.section{border:1px solid var(--edge);background:var(--panel);border-radius:12px;margin-top:15px;padding:21px 20px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.section-head h2{font-size:16px;margin:0 0 5px}.actiongroup{display:flex;gap:7px;flex-wrap:wrap}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;white-space:nowrap}th{font-size:11px;color:var(--sub);letter-spacing:.015em;font-weight:700;background:#1e252d;text-align:left}th,td{padding:12px 13px;border-bottom:1px solid #303741}td{font-size:12px}.chip{border:1px solid var(--edge);border-radius:6px;padding:3px 8px;font-size:11px;color:var(--sub)}.chip.ok{border-color:#38614e;color:var(--ok)}.chip.running{border-color:#65502d;color:var(--accent)}.chip.danger{border-color:#673b3b;color:var(--red)}.tableaction,.linkbutton{border:0;background:none;color:var(--accent);font-weight:750}.tableaction:hover,.linkbutton:hover{text-decoration:underline}.muted{color:var(--sub)}.hint{font-size:11px;line-height:1.7;color:var(--sub);margin:12px 0 0}.summary-strip{border:1px solid var(--edge);display:flex;flex-wrap:wrap;border-radius:9px;background:var(--panel2);margin-bottom:12px}.summary-strip>div{flex:1;min-width:160px;padding:14px 18px;border-right:1px solid var(--edge);display:flex;flex-direction:column;gap:8px}.summary-strip>div:last-child{border:0}.summary-strip small{color:var(--sub)}.summary-strip strong{font-size:19px;font-variant-numeric:tabular-nums}.empty{padding:40px;text-align:center;border:1px dashed var(--edge);color:var(--sub);border-radius:8px}.textbutton,.plain{border:0;background:transparent;color:var(--sub)}.textbutton:hover,.plain:hover{color:var(--txt)}footer{font-size:11px;color:#6e7680;padding:25px 0}.toast{position:sticky;top:12px;margin-bottom:15px;background:#39292b;color:#ffe7e7;border:1px solid #8c5555;border-radius:9px;padding:12px 18px;z-index:5}.toast.ok{color:#d6f3e2;background:#183229;border-color:#416851}.audit-panel{overflow:auto;max-height:340px;background:#10151a;border:1px solid var(--edge);padding:15px;border-radius:8px}.audititem{padding:10px;border-bottom:1px solid var(--edge);font-size:11px;color:var(--sub)}dialog{border:1px solid #53606c;border-radius:12px;background:#181d23;color:var(--txt);width:min(440px,calc(100% - 22px));padding:0;box-shadow:0 20px 70px #0009}dialog::backdrop{background:#000b}.modal{padding:21px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.modal-head h2{font-size:18px;margin:0}.modal-fields{display:grid;gap:12px}.modal-fields label{display:grid;gap:5px;color:var(--sub);font-size:12px}.modal-actions{display:flex;justify-content:end;gap:8px;margin-top:20px}.login-page{min-height:100vh;display:grid;place-items:center;padding:25px}.login-card{width:min(410px,100%);padding:32px;background:var(--panel);border:1px solid var(--edge);border-radius:16px}.login-card .brandmark{margin-bottom:18px}.login-card h1{font-size:30px;margin:5px 0}.login-card h1 em{color:var(--accent);font-style:normal}.login-card p{color:var(--sub);line-height:1.8;font-size:12px}.stacked{display:grid;gap:14px;margin-top:25px}.stacked label{display:grid;gap:7px;color:var(--sub);font-size:12px}.footnote{text-align:center;margin-top:20px}.admin-tools{margin-top:17px}
@media(max-width:950px){.sidebar{display:none}.main{padding:22px 15px 45px}.topline{align-items:stretch;flex-direction:column}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{align-items:flex-start;flex-direction:column}.section{padding:17px 12px}.summary-strip>div{min-width:130px}.topline h1{font-size:25px}}
@media(max-width:450px){.kpis{gap:7px}.kpi{padding:12px}.kpi strong{font-size:23px}.controls{justify-content:space-between}.controls label{flex:1}.controls input{width:100%}.actiongroup{width:100%}.actiongroup button{flex:1}.summary-strip>div{padding:11px}.modal{padding:15px}}
/* v1.2: three operational roles, public correction feed and minute adjust */
.highlight-section{border-color:#544737;background:linear-gradient(115deg,#171a20,#262115)}
.feed-list{display:grid;gap:8px}
.feed-entry{background:#10151a;border:1px solid #323941;border-radius:9px;padding:11px 13px;display:grid;gap:5px;line-height:1.55}
.feed-entry.corrected{border-left:3px solid var(--accent)}
.feed-entry .who{font-size:11px;color:var(--accent2);font-weight:700}
.feed-entry .detail{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.feed-entry .why{font-size:11px;color:var(--sub)}
.roster-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:13px}
.mini-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.mini-actions .tableaction{font-size:11px}
.staff-nametag{font-weight:750;color:var(--txt)}
.request-hot{color:#e6c988;font-weight:800}
.adjust-row{display:grid;gap:7px}
.adjust-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
.adjust-grid button{font-size:11px;padding:7px 0;border-radius:5px;background:#27313b;color:#eee;border:1px solid #45515d}
.adjust-grid button:hover{border-color:var(--accent);color:var(--accent)}
fieldset.time-control{padding:0;margin:0;border:0;display:grid;gap:8px}
fieldset.time-control legend{font-size:12px;color:var(--sub);margin-bottom:7px}
fieldset.time-control input{width:100%}
.chip.pending{border-color:#846232;color:#e8c582}
@media(max-width:950px){.main{padding-top:19px}.highlight-section{order:0}}
@media(max-width:450px){.adjust-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.feed-entry{padding:10px}.controls input{min-width:0}}

/* v1.3: shared physical room inventory and live waiting. Desktop and mobile use one data source. */
.live-section{border-color:#38444a;padding:20px 22px 25px;scroll-margin-top:14px}
.live-header{align-items:center}
.live-header h2{font-size:22px;letter-spacing:-.02em}
.live-synced{font-size:11px;color:var(--sub);white-space:nowrap}
.live-counters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
.live-counter{border-radius:11px;border:1px solid var(--edge);padding:12px 15px;background:#11171c;display:flex;justify-content:space-between;align-items:center;gap:7px}
.live-counter span{font-size:12px;color:var(--sub)}
.live-counter strong{font-variant-numeric:tabular-nums;font-size:25px}
.live-counter.empty strong{color:#89dfb9}
.live-counter.occupied strong{color:#e8c57a}
.live-counter.blocked strong{color:#f19b95}
.live-counter.waiting strong{color:#a7c7fc}
.live-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.85fr);gap:14px;align-items:start}
.inventory-panel,.wait-panel{background:#11171d;border:1px solid var(--edge);border-radius:12px;padding:16px;min-width:0}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-bottom:14px}
.panel-head h3{margin:0;font-size:16px}
.panel-head span{font-size:11px;color:var(--sub)}
.room-filters{display:flex;justify-content:space-between;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.zone-filters{display:flex;gap:4px;flex-wrap:wrap}
.zone-filters button{min-height:34px;padding:5px 10px;border:1px solid #384550;border-radius:7px;color:var(--sub);background:#1a2128;font-size:12px}
.zone-filters button.active{background:#514023;border-color:#c2a15f;color:#fff5d8;font-weight:800}
.status-filter{display:flex;align-items:center;gap:7px;color:var(--sub);font-size:11px}
.status-filter select{padding:7px;min-width:103px;font-size:12px}
.zone-section+.zone-section{margin-top:19px}
.zone-title{display:flex;gap:12px;align-items:center;margin-bottom:9px}
.zone-title strong{font-size:13px}
.zone-title span{color:var(--sub);font-size:11px}
.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.room-tile{min-width:0;overflow:hidden;border-radius:9px;border:1px solid #335b49;background:#16261e;display:flex;flex-direction:column;justify-content:space-between}
.room-tile.occupied{border-color:#78613b;background:#28231a}
.room-tile.blocked{border-color:#6c4448;background:#291d20}
.room-tile-main{color:var(--txt);display:flex;flex-direction:column;gap:9px;width:100%;min-height:91px;background:transparent;border:0;padding:13px 10px 10px;text-align:left}
.room-tile-main:hover{background:#ffffff08}
.room-tile-main:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.room-tile-top{display:flex;align-items:start;justify-content:space-between;gap:4px;flex-wrap:wrap}
.room-tile-top strong{font-size:19px;line-height:1;font-variant-numeric:tabular-nums}
.room-state{font-weight:800;font-size:10px;color:#90d6ac}
.room-tile.occupied .room-state{color:#efd087}
.room-tile.blocked .room-state{color:#f19b95}
.room-tile-detail{color:#b3c7b7;font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.room-tile.occupied .room-tile-detail{color:#d9c4a0}
.room-tile.blocked .room-tile-detail{color:#e0b0b0}
.room-status-control{width:100%;color:var(--sub);font-size:10px;min-height:26px;background:#05090a40;border:0;border-top:1px solid #ffffff12;padding:4px}
.room-status-control:hover{background:#ffffff14;color:var(--txt)}
.waiting-head{margin-bottom:9px}
.waiting-head>div{display:grid;gap:4px}
.waiting-head .primary{min-height:37px}
.queue-policy{font-size:11px;line-height:1.7;color:var(--sub);margin:0 0 13px;padding:9px 11px;border-radius:8px;background:#192029}
.queue-policy strong{color:var(--accent2)}
.waiting-list{display:grid;gap:9px;max-height:680px;overflow-y:auto;padding-right:1px}
.waiting-empty{padding:30px 16px;text-align:center;color:var(--sub);border:1px dashed #39444d;border-radius:10px;font-size:12px;line-height:1.7}
.wait-card{background:#1b232b;border:1px solid #3b4751;padding:12px;border-radius:11px;display:grid;gap:12px}
.wait-info{display:flex;align-items:center;gap:13px;min-width:0}
.wait-rank{border-radius:10px;color:#c5d5f7;background:#29364a;min-width:46px;height:46px;display:grid;place-items:center;font-size:19px;font-variant-numeric:tabular-nums}
.wait-labels{display:grid;gap:4px;min-width:0}
.wait-labels strong{font-size:15px;overflow-wrap:anywhere}
.wait-labels span{font-size:11px;color:var(--sub)}
.wait-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.wait-actions button{min-height:38px}
.wait-actions .wait-seat{flex:1}
.wait-actions .wait-cancel{font-size:11px;padding:8px}
.wait-move{display:flex;gap:4px}
.wait-move button{min-width:34px;padding:8px}
.live-phone-tabs{display:none}
.mobile-nav{display:none}
.section{scroll-margin-top:16px}
@media(min-width:951px) and (max-width:1240px){.live-layout{grid-template-columns:minmax(0,1fr)}.waiting-list{max-height:520px}.room-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr))}}
@media(max-width:950px){
 .mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;z-index:30;padding:5px 6px calc(5px + env(safe-area-inset-bottom));background:#11171e;border-top:1px solid #3f4b56;box-shadow:0 -10px 20px #0006}
 .mobile-nav button{background:transparent;color:#9ca7b2;border:0;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:700}
 .mobile-nav button span{font-size:19px;line-height:1.3}
 .mobile-nav button.selected{color:var(--accent2);background:#302a1f;border-radius:9px}
 .app .main{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
 .live-layout{display:block}
 .live-phone-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:#10161b;padding:4px;border:1px solid #38434d;border-radius:10px;margin-bottom:13px}
 .live-phone-tabs button{border:0;background:transparent;border-radius:7px;color:var(--sub);font-weight:800;min-height:43px}
 .live-phone-tabs button.active{color:#1b1710;background:var(--accent)}
 .live-section[data-mobile-panel="rooms"] .wait-panel{display:none}
 .live-section[data-mobile-panel="waiting"] .inventory-panel{display:none}
 .wait-panel,.inventory-panel{padding:13px}
 .waiting-list{max-height:none;overflow:visible}
 .wait-card{display:flex;flex-direction:column;gap:13px}
 .wait-actions{flex-wrap:nowrap}
 .wait-seat{min-width:0}
 .room-grid{grid-template-columns:repeat(auto-fill,minmax(99px,1fr));gap:7px}
 .room-tile-main{min-height:88px;padding:11px 9px 9px}
 .room-tile-top strong{font-size:20px}
 .live-counters{gap:7px;margin-bottom:11px}
 .live-counter{padding:10px 9px;flex-direction:column;gap:4px}
 .live-counter strong{font-size:22px}
 .live-section{padding:14px 11px 15px;margin-top:12px}
 .live-synced{font-size:10px}
 .topline{padding-bottom:16px}
}
@media(max-width:450px){
 .room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .room-filters{align-items:stretch}
 .status-filter{justify-content:space-between;width:100%;margin-top:4px}
 .status-filter select{min-width:140px}
 .wait-actions .wait-cancel{padding:6px;font-size:11px}
 .wait-move button{min-width:31px}
 .live-header h2{font-size:19px}
 .modal{max-height:calc(92dvh - env(safe-area-inset-bottom));overflow:auto}
 dialog{max-height:93dvh}
}

/* Mobile: key operations/TC tables are stacked cards, not a microscopic horizontal spreadsheet. */
@media(max-width:680px){
 #roomsSection .table-wrap,#detailsSection .table-wrap,#staffSection .table-wrap,#recordsSection .table-wrap{overflow-x:visible}
 #roomsSection table,#detailsSection table,#staffSection table,#recordsSection table,
 #roomsSection tbody,#detailsSection tbody,#staffSection tbody,#recordsSection tbody{display:block;width:100%;white-space:normal}
 #roomsSection thead,#detailsSection thead,#staffSection thead,#recordsSection thead{display:none}
 #roomsSection tbody tr,#detailsSection tbody tr,#staffSection tbody tr,#recordsSection tbody tr{
   display:block;background:#11171d;border:1px solid var(--edge);border-radius:9px;margin:0 0 10px;padding:6px 11px
 }
 #roomsSection tbody td,#detailsSection tbody td,#staffSection tbody td,#recordsSection tbody td{
   display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:37px;
   padding:8px 3px;border-bottom:1px solid #2a333b;overflow-wrap:anywhere;text-align:right
 }
 #roomsSection tbody td:last-child,#detailsSection tbody td:last-child,#staffSection tbody td:last-child,#recordsSection tbody td:last-child{border-bottom:0}
 #roomsSection tbody td[data-label]::before,#detailsSection tbody td[data-label]::before,
 #staffSection tbody td[data-label]::before,#recordsSection tbody td[data-label]::before{
   content:attr(data-label);display:block;color:var(--sub);font-size:11px;flex:0 0 95px;text-align:left
 }
 #roomsSection tbody td[data-label=""]::before,#detailsSection tbody td[data-label=""]::before,
 #staffSection tbody td[data-label=""]::before,#recordsSection tbody td[data-label=""]::before{display:none}
 #detailsSection .mini-actions{justify-content:flex-end}
 #detailsSection .table-wrap+.table-wrap{margin-top:14px}
 #roomsSection .tableaction,#detailsSection .tableaction,#staffSection .tableaction{padding:7px 10px;border:1px solid #625336;border-radius:6px}
}

/* v1.4: compact single-screen control board for FHD/4K, with separate mobile touch layout */
.board-toolbar{display:none}
.board-logo{display:flex;align-items:center;gap:9px;white-space:nowrap}
.board-logo>span{display:grid;place-items:center;background:var(--accent);color:#16120b;font-weight:900;border-radius:7px;width:31px;height:31px;font-size:19px}
.board-logo strong{font-size:16px;letter-spacing:.04em}
.board-logo small{color:var(--sub);font-size:11px}
.board-top-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.board-top-actions .secondary{min-height:31px;padding:5px 10px;font-size:11px}
.board-date{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--sub)}
.board-date input{font-size:12px;min-width:135px;padding:5px 7px;height:32px}
.right-ops{display:flex;flex-direction:column;gap:10px;min-width:0}
.waiter-panel{background:#11171d;border:1px solid var(--edge);border-radius:12px;padding:12px;min-width:0}
.waiter-list{display:grid;gap:5px;min-height:46px;max-height:240px;overflow:auto}
.wt-row{display:flex;align-items:center;gap:7px;border:1px solid #32414b;background:#1a2229;border-radius:7px;padding:6px}
.wt-row.wt-next{border-color:#c2a05f;background:#332b1c}
.wt-row.wt-disabled{opacity:.58}
.wt-rank{width:27px;height:25px;display:grid;place-items:center;background:#2a3945;border-radius:5px;color:#bdd3e7;font-size:13px;flex-shrink:0}
.wt-label{flex:1;min-width:0;display:grid;gap:2px}
.wt-label strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wt-label small{font-size:10px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wt-count{font-size:13px;white-space:nowrap;color:var(--ok)}
.wt-edit{padding:3px 4px;min-width:23px;min-height:25px;font-size:11px;border:1px solid #46525e;background:#232c35;border-radius:4px;color:#d0dae4}
.wt-move{display:flex;gap:2px}
.arrival-adjust{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:5px}
.quick-room-dialog{width:min(650px,calc(100% - 22px));max-height:min(90dvh,740px);overflow:auto}
.quick-room-inner{padding:19px}
.quick-room-inner .modal-head h2{font-size:19px}
.quick-room-info{margin:-4px 0 14px;color:var(--accent2);font-size:13px;line-height:1.5}
.quick-caption{margin-top:13px;margin-bottom:8px;font-size:12px;color:var(--sub);font-weight:750}
.quick-room-staff{display:grid;gap:7px;max-height:46vh;overflow:auto}
.quick-staff-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--edge);padding:8px 10px;border-radius:7px;background:#10161a}
.quick-staff-row strong{font-size:14px;min-width:0}
.quick-staff-row span{font-size:12px;color:var(--sub);flex:1;text-align:right}
.quick-staff-row button{min-height:31px;padding:4px 12px}
.quick-add-staff{display:flex;gap:8px;flex-wrap:wrap}
.quick-add-staff select{min-width:180px;flex:1}
.quick-add-staff button{flex:0 0 auto}
.quick-add-staff small{width:100%}
body.board-mode{overflow:hidden}
body.board-mode .app{min-height:100dvh;display:block}
body.board-mode .sidebar,body.board-mode .topline,body.board-mode .kpis,
body.board-mode #correctionsStrip,body.board-mode #roomsSection,body.board-mode #detailsSection,
body.board-mode #staffSection,body.board-mode #recordsSection,body.board-mode #auditSection,
body.board-mode footer{display:none!important}
body.board-mode .main{width:100%;max-width:none;margin:0;padding:7px;min-height:100dvh}
body.board-mode .toast{position:fixed;top:12px;right:16px;z-index:100;box-shadow:0 5px 22px #0008;max-width:min(450px,92vw)}
body.board-mode .board-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;padding-bottom:6px;border-bottom:1px solid #35424c}
body.board-mode .live-section{margin:0;padding:9px 12px;border-radius:9px;max-height:calc(100dvh - 14px);overflow:hidden;display:flex;flex-direction:column}
body.board-mode .live-header{margin-bottom:5px;flex-shrink:0;flex-direction:row;align-items:center}
body.board-mode .live-header .eyebrow,body.board-mode .live-header p{display:none}
body.board-mode .live-header h2{font-size:15px;margin:0}
body.board-mode .live-counters{display:flex;gap:6px;margin-bottom:7px;flex-shrink:0}
body.board-mode .live-counter{padding:3px 10px;min-height:32px;border-radius:6px;gap:9px}
body.board-mode .live-counter span{font-size:11px}
body.board-mode .live-counter strong{font-size:18px}
body.board-mode .live-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(315px,24vw,450px);gap:8px;min-height:0;flex:1;align-items:stretch}
body.board-mode .inventory-panel,body.board-mode .wait-panel,body.board-mode .waiter-panel{border-radius:8px;padding:8px}
body.board-mode .inventory-panel{overflow:auto;min-height:0}
body.board-mode .inventory-panel>.panel-head{display:none}
body.board-mode .panel-head{margin-bottom:5px}
body.board-mode .panel-head h3{font-size:13px}
body.board-mode .panel-head span{font-size:10px}
body.board-mode .room-filters{margin-bottom:6px}
body.board-mode .zone-filters button{padding:3px 9px;min-height:28px;font-size:11px}
body.board-mode .status-filter select{padding:3px;height:28px;min-width:94px}
body.board-mode .zone-section+.zone-section{margin-top:8px}
body.board-mode .zone-title{margin-bottom:4px;gap:8px}
body.board-mode .zone-title strong{font-size:12px}
body.board-mode .zone-title span{font-size:10px}
body.board-mode .room-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:4px}
body.board-mode .room-tile{position:relative;border-radius:6px;min-height:65px}
body.board-mode .room-tile-main{min-height:65px;gap:4px;padding:7px 5px 17px}
body.board-mode .room-tile-top{flex-wrap:nowrap;align-items:center}
body.board-mode .room-tile-top strong{font-size:16px}
body.board-mode .room-state{font-size:9px;white-space:nowrap}
body.board-mode .room-tile-detail{font-size:10px;line-height:1.2;min-height:20px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
body.board-mode .room-status-control{position:absolute;bottom:1px;right:2px;min-height:14px;width:auto;border:0;padding:1px 3px;font-size:9px;background:#09130d99;border-radius:3px}
body.board-mode .right-ops{min-height:0;overflow:hidden;gap:8px}
body.board-mode .wait-panel{min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden}
body.board-mode .waiter-panel{flex:0 0 auto;max-height:36%;overflow:hidden;display:flex;flex-direction:column}
body.board-mode .waiter-list{max-height:none;min-height:0;overflow-y:auto}
body.board-mode .waiting-list{max-height:none;min-height:0;overflow-y:auto;flex:1;gap:5px}
body.board-mode .queue-policy{padding:3px 6px;margin-bottom:5px;line-height:1.3;font-size:10px}
body.board-mode .wait-card{border-radius:6px;padding:7px;gap:5px}
body.board-mode .wait-info{gap:8px}
body.board-mode .wait-rank{width:30px;min-width:30px;height:30px;font-size:14px;border-radius:6px}
body.board-mode .wait-labels strong{font-size:12px}
body.board-mode .wait-labels span{font-size:10px}
body.board-mode .wait-actions{gap:4px}
body.board-mode .wait-actions button{min-height:27px;padding:3px 7px;font-size:10px}
body.board-mode .wait-move button{min-width:24px}
body.board-mode .waiting-empty{padding:12px;font-size:11px}
@media(min-width:2400px){
 body.board-mode .room-grid{grid-template-columns:repeat(16,minmax(0,1fr));gap:6px}
 body.board-mode .room-tile,body.board-mode .room-tile-main{min-height:81px}
 body.board-mode .room-tile-top strong{font-size:20px}
 body.board-mode .room-tile-detail{font-size:12px}
 body.board-mode .right-ops{max-width:none}
 body.board-mode .live-layout{grid-template-columns:minmax(0,1fr) clamp(420px,22vw,660px)}
}
@media (max-width:1480px) and (min-width:951px){
 body.board-mode .room-grid{grid-template-columns:repeat(10,minmax(0,1fr))}
 body.board-mode .live-layout{grid-template-columns:minmax(0,1fr) 315px}
 body.board-mode .board-logo small{display:none}
}
@media(max-width:950px){
 body.board-mode{overflow:auto}
 body.board-mode .main{padding:7px 8px calc(85px + env(safe-area-inset-bottom));min-height:100dvh}
 body.board-mode .live-section{max-height:none;overflow:visible;padding:8px}
 body.board-mode .board-toolbar{align-items:flex-start;flex-wrap:wrap;gap:7px}
 body.board-mode .board-top-actions{flex:1;justify-content:flex-end;gap:4px}
 body.board-mode #boardStaffNav,body.board-mode #boardRecordsNav,body.board-mode #boardAuditNav,
 body.board-mode #boardLogout,body.board-mode #boardFullscreen{display:none}
 body.board-mode .board-date input{min-width:130px}
 body.board-mode .live-header{flex-direction:row;align-items:center}
 body.board-mode .live-counters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
 body.board-mode .live-counter{flex-direction:column;gap:2px;padding:5px 2px}
 body.board-mode .live-counter strong{font-size:19px}
 body.board-mode .live-layout{display:block;overflow:visible}
 body.board-mode .live-phone-tabs{display:grid;flex-shrink:0;margin-bottom:7px}
 body.board-mode .live-section[data-mobile-panel="rooms"] .right-ops{display:none}
 body.board-mode .live-section[data-mobile-panel="waiting"] .inventory-panel{display:none}
 body.board-mode .inventory-panel{overflow:visible}
 body.board-mode .inventory-panel>.panel-head{display:flex}
 body.board-mode .room-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
 body.board-mode .room-tile,body.board-mode .room-tile-main{min-height:78px}
 body.board-mode .room-tile-main{padding:7px 6px 18px}
 body.board-mode .room-tile-top strong{font-size:17px}
 body.board-mode .room-state{font-size:9px}
 body.board-mode .room-tile-detail{font-size:10px;-webkit-line-clamp:2;min-height:24px}
 body.board-mode .zone-section+.zone-section{margin-top:12px}
 body.board-mode .right-ops{display:flex;overflow:visible}
 body.board-mode .wait-panel{display:block;overflow:visible;flex:auto}
 body.board-mode .waiting-list{overflow:visible;max-height:none}
 body.board-mode .waiter-panel{max-height:none;overflow:visible;flex:auto}
 body.board-mode .waiter-list{overflow:visible}
 body.board-mode .wait-card{display:flex;flex-direction:column;gap:7px;padding:10px}
 body.board-mode .wait-actions button{min-height:33px;font-size:11px}
 body.board-mode .wait-rank{width:35px;height:35px;font-size:16px}
 body.board-mode .wait-labels strong{font-size:14px}
 body.board-mode .waiter-panel{margin-top:8px}
 body.board-mode .room-filters{gap:5px}
 body.board-mode .status-filter{width:auto;margin-top:0}
 .quick-room-dialog{max-height:calc(89dvh - env(safe-area-inset-bottom))}
}
@media(max-width:390px){body.board-mode .room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body.board-mode .board-logo small{display:none}}
/* Prevent grid rows stretching to fill the entire viewport: 64 rooms must remain visible at FHD. */
@media(min-width:951px){
 body.board-mode .room-grid{grid-auto-rows:73px;align-content:start}
 body.board-mode .room-tile{height:73px;min-height:0}
 body.board-mode .room-tile-main{min-height:0;height:100%;overflow:hidden}
 body.board-mode .waiting-list{align-content:start;grid-auto-rows:max-content}
 body.board-mode .wait-card{align-self:start}
}
@media(min-width:2400px){
 body.board-mode .room-grid{grid-auto-rows:90px}
 body.board-mode .room-tile{height:90px}
}
@media(min-width:951px) and (max-width:2399px){
 body.board-mode .room-grid{grid-auto-rows:94px}
 body.board-mode .room-tile{height:94px}
 body.board-mode .room-tile-main{padding:9px 7px 18px}
 body.board-mode .room-tile-top strong{font-size:18px}
 body.board-mode .room-tile-detail{font-size:11px;line-height:1.3}
}
body.board-mode .room-tile-main{justify-content:flex-start;gap:7px}
body.board-mode .room-tile-top .club-room-no{font-size:12px}
@media(max-width:950px){
 body.board-mode .room-grid{grid-auto-rows:91px;align-content:start}
 body.board-mode .room-tile{height:91px;min-height:0}
 body.board-mode .room-tile-main{height:100%;min-height:0;justify-content:flex-start;gap:7px;padding:7px 6px 16px}
 body.board-mode .room-tile-detail{font-size:10px;line-height:1.25;overflow:hidden}
}


/* v1.5 F11 unified 8x8 room board, independently colored by floor.
   The room inventory (including the club room) is never rebuilt from mockup labels. */
body.board-mode .unified-room-grid{width:100%;}
body.board-mode .room-tile.floor-b1{border-color:#a37e39;background:linear-gradient(145deg,#352715,#211b13)}
body.board-mode .room-tile.floor-mid{border-color:#457db6;background:linear-gradient(145deg,#122d4c,#101d31)}
body.board-mode .room-tile.floor-b2{border-color:#39805b;background:linear-gradient(145deg,#143222,#10221a)}
body.board-mode .room-tile.floor-other{border-color:#63737b;background:#1d292e}
/* Business state has precedence over floor color and remains explicitly labeled. */
body.board-mode .room-tile.occupied{border-color:#deb65d;background:linear-gradient(135deg,#47351b,#2b2116);box-shadow:inset 0 0 0 1px #a9813c}
body.board-mode .room-tile.blocked{border-color:#bf6262;background:linear-gradient(135deg,#3c1c20,#29191d)}
body.board-mode .room-tile.floor-b1.empty .room-state{color:#eed39a}
body.board-mode .room-tile.floor-mid.empty .room-state{color:#abd4ff}
body.board-mode .room-tile.floor-b2.empty .room-state{color:#9ed8b7}
body.board-mode .room-tile.occupied .room-state{color:#f2ca74}
body.board-mode .room-tile.blocked .room-state{color:#ffb0ad}
body.board-mode .room-tile-main{overflow:hidden;min-width:0}
body.board-mode .room-tile-detail{overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere}
/* Wide monitors use the full available board height: 8 equal columns x 8 equal rows. */
@media(min-width:951px){
 body.board-mode .live-layout{grid-template-columns:minmax(0,1fr) clamp(385px,24vw,640px);gap:6px;min-height:0}
 body.board-mode .inventory-panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
 body.board-mode .room-board{flex:1;min-height:0;display:flex}
 body.board-mode .unified-room-grid{height:100%;min-height:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:clamp(3px,.48vh,8px);align-content:stretch}
 body.board-mode .unified-room-grid .room-tile{height:100%;min-height:0;min-width:0;overflow:hidden;position:relative;border-radius:7px}
 body.board-mode .unified-room-grid .room-tile-main{height:100%;min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:clamp(3px,.65vh,9px);padding:clamp(5px,.65vh,12px) clamp(5px,.6vw,14px) 17px}
 body.board-mode .unified-room-grid .room-tile-top{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
 body.board-mode .unified-room-grid .room-tile-top strong{font-size:clamp(16px,1.05vw,26px);letter-spacing:.01em;line-height:1.05}
 body.board-mode .unified-room-grid .room-state{font-size:clamp(9px,.58vw,13px);white-space:nowrap}
 body.board-mode .unified-room-grid .room-tile-detail{font-size:clamp(10px,.64vw,15px);line-height:1.32;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:0;max-height:40%}
 body.board-mode .unified-room-grid .room-status-control{position:absolute;right:3px;bottom:2px;min-height:15px;border-radius:4px;padding:2px 6px;font-size:clamp(9px,.55vw,12px);line-height:1.2;background:#080b10bb;color:#d0d8d5}
 /* The two narrow public lists remain alongside the room board, not stacked. */
 body.board-mode .right-ops{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;min-height:0;overflow:hidden;align-items:stretch;max-width:none}
 body.board-mode .wait-panel,body.board-mode .waiter-panel{min-width:0;min-height:0;max-height:none;flex:auto;overflow:hidden;display:flex;flex-direction:column;padding:6px}
 body.board-mode .panel-head{flex-wrap:nowrap;align-items:center;gap:3px}
 body.board-mode .panel-head h3{font-size:clamp(11px,.7vw,15px);white-space:nowrap}
 body.board-mode .panel-head span{display:none}
 body.board-mode .waiting-head .primary,body.board-mode .waiting-head .secondary{font-size:10px;min-height:25px;padding:3px 5px}
 body.board-mode .queue-policy{display:none}
 body.board-mode .waiting-list,body.board-mode .waiter-list{min-height:0;max-height:none;overflow-y:auto;align-content:start;flex:1;gap:4px}
 body.board-mode .wait-card{padding:5px;gap:5px}
 body.board-mode .wait-info{gap:5px}
 body.board-mode .wait-rank{min-width:25px;width:25px;height:27px;font-size:12px}
 body.board-mode .wait-labels{gap:2px}
 body.board-mode .wait-labels strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 body.board-mode .wait-labels span{font-size:9px;line-height:1.2}
 body.board-mode .wait-actions{display:flex;gap:2px;flex-wrap:nowrap;min-width:0}
 body.board-mode .wait-actions button{min-height:24px;padding:3px 4px;font-size:10px}
 body.board-mode .wait-actions .wait-seat{min-width:0;flex:1}
 body.board-mode .wait-move{gap:1px}
 body.board-mode .wait-move button{min-width:18px;padding:1px 2px}
 body.board-mode .wait-actions .wait-cancel{padding:3px 5px;font-size:13px}
 body.board-mode .wt-row{gap:3px;padding:3px;min-height:32px}
 body.board-mode .wt-rank{width:21px;height:24px;font-size:11px}
 body.board-mode .wt-label strong{font-size:11px}
 body.board-mode .wt-label small{display:none}
 body.board-mode .wt-count{font-size:11px}
 body.board-mode .wt-edit{min-width:18px;min-height:23px;padding:1px 3px;font-size:10px}
 body.board-mode .wt-move{gap:1px}
}
/* Smaller laptops: compact control text before sacrificing the 8x8 room geometry. */
@media(min-width:951px) and (max-width:1490px){
 body.board-mode .live-layout{grid-template-columns:minmax(0,1fr) 370px}
 body.board-mode .board-logo small{display:none}
 body.board-mode .wt-row{gap:2px;padding:2px}
 body.board-mode .wt-label strong{font-size:10px}
 body.board-mode .wt-edit{font-size:9px;min-width:16px;padding:1px 2px}
 body.board-mode .unified-room-grid .room-tile-top strong{font-size:clamp(14px,1.1vw,18px)}
 body.board-mode .unified-room-grid .room-state{font-size:9px}
}
/* Phones retain the existing touch-friendly room/waiting tabs and can scroll. */
@media(max-width:950px){
 body.board-mode .room-board{display:block;height:auto;min-height:0}
 body.board-mode .unified-room-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:91px;gap:5px;height:auto}
 body.board-mode .unified-room-grid .room-tile{height:91px;min-height:0}
 body.board-mode .unified-room-grid .room-tile-main{height:100%;min-height:0;gap:5px}
 body.board-mode .unified-room-grid .room-tile-detail{font-size:10px}
}
@media(max-width:390px){body.board-mode .unified-room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Final F11 constraints: fixed outer board height and no intrinsic overflow in short rows. */
@media(min-width:951px){
 body.board-mode .live-section{height:calc(100dvh - 14px)}
 body.board-mode .unified-room-grid{align-items:stretch}
 body.board-mode .unified-room-grid .room-tile{height:100%;min-height:0;max-height:100%;position:relative;overflow:hidden}
 body.board-mode .unified-room-grid .room-tile-main{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:100%;overflow:hidden}
}
@media(min-width:951px){
 body.board-mode .unified-room-grid .room-tile{height:auto;max-height:none;min-height:0;align-self:stretch}
}

/* A single measured row height keeps occupied/empty/blocked tiles identical at every F11 size. */
@media(min-width:951px){
 body.board-mode .unified-room-grid .room-tile{height:var(--room-tile-height,100%);min-height:0;max-height:var(--room-tile-height,100%)}
}
@media(min-width:951px){body.board-mode .unified-room-grid .room-tile{contain:size;}}
@media(min-width:951px){body.board-mode .unified-room-grid .room-tile{display:block}}

/* Small laptops scroll only the room panel instead of squeezing controls. */
@media(min-width:951px) and (max-width:1490px){
 body.board-mode .inventory-panel{overflow-y:auto}
 body.board-mode .room-board{flex:0 0 auto;display:block}
 body.board-mode .unified-room-grid{height:auto;grid-template-rows:repeat(8,82px);grid-auto-rows:82px;align-content:start}
 body.board-mode .unified-room-grid .room-tile{height:82px;max-height:82px;min-height:82px}
}
/* Empty tiles have a second (absolute) '고장' control: do not flex-shrink their main button on phones. */
body.board-mode .unified-room-grid .room-tile{display:block}
body.board-mode .unified-room-grid .room-tile-main{flex:0 0 auto;width:100%;min-width:0}
body.board-mode .unified-room-grid .room-tile-main{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:100%}

/* v1.6: inline special-room names; ONLY chief-assigned employees have elapsed HH:MM.
   The small equal-sized F11 room tiles hold 2 columns x 5 rows (= 10 employees). */
body.board-mode .unified-room-grid .room-tile-top{display:flex;flex-wrap:nowrap;align-items:baseline;gap:3px;min-width:0}
body.board-mode .unified-room-grid .room-special-label{font-size:clamp(9px,.57vw,14px);font-weight:750;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto;color:#e6d0a3}
body.board-mode .unified-room-grid .room-tile.floor-mid .room-special-label{color:#a7d6ff}
body.board-mode .unified-room-grid .room-tile.floor-b2 .room-special-label{color:#a9dabe}
body.board-mode .unified-room-grid .room-state{margin-left:auto;flex:0 0 auto}
body.board-mode .unified-room-grid .room-tile-main{gap:2px;padding:4px 4px 4px}
body.board-mode .unified-room-grid .room-tile-detail{display:block;white-space:nowrap;text-overflow:ellipsis;line-height:1.12;font-size:clamp(9px,.55vw,13px);min-height:0;max-height:none;flex:0 0 auto}
body.board-mode .unified-room-grid .room-staff-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));grid-auto-flow:row;gap:0 3px;min-height:0;flex:1;overflow:hidden;align-items:stretch}
body.board-mode .unified-room-grid .room-staff-entry{min-width:0;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:1px;font-size:clamp(8px,.48vw,12px);line-height:1.05}
body.board-mode .unified-room-grid .room-staff-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;font-weight:600;color:#f4f0e8}
body.board-mode .unified-room-grid .room-staff-clock{font-family:ui-monospace,Consolas,monospace;font-size:clamp(8px,.44vw,12px);font-variant-numeric:tabular-nums;white-space:nowrap;color:#ecd08b;flex:0 0 auto}
/* Smaller/laptop cards are scrollable as a grid, rather than making text unusably small. */
@media(min-width:951px) and (max-width:1490px){
 body.board-mode .unified-room-grid .room-tile-main{padding:3px 3px}
 body.board-mode .unified-room-grid .room-staff-entry{font-size:9px}
 body.board-mode .unified-room-grid .room-staff-clock{font-size:8px}
}
@media(max-width:950px){
 body.board-mode .unified-room-grid .room-special-label{font-size:9px;flex:0 1 auto}
 body.board-mode .unified-room-grid .room-tile-main{padding:4px 4px 2px}
 body.board-mode .unified-room-grid .room-staff-mini{gap:0 2px}
 body.board-mode .unified-room-grid .room-staff-entry{font-size:8px}
 body.board-mode .unified-room-grid .room-staff-clock{font-size:8px}
}

/* v1.7: TC is a per-room count, not a monetary settlement dashboard. */
.page-hidden{display:none!important}
.tc-list-section{max-width:none}
.tc-list-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:13px}
.tc-list-summary .chip{padding:8px 10px;background:#121a20}
.tc-list-table th,.tc-list-table td{padding:12px 10px}
.tc-list-table .tc-room-number{font-size:15px;font-weight:800;color:#ead08d;font-variant-numeric:tabular-nums}
.tc-list-table .tableaction{border:1px solid #796b4a;border-radius:6px;background:#30291c;padding:6px 14px}
.tc-detail-dialog{width:min(920px,calc(100% - 20px));max-height:90dvh;overflow:auto}
.tc-detail-inner{padding:20px}
.tc-detail-meta{font-size:12px;color:#bdc7d0;line-height:1.7;margin:0 0 12px;overflow-wrap:anywhere}
.tc-detail-summary{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.tc-person-table th,.tc-person-table td{padding:10px 12px}
.tc-person-table th:nth-child(1){min-width:135px}
.tc-segment{font-size:12px;font-variant-numeric:tabular-nums;line-height:1.8;white-space:nowrap}
.tc-segment+.tc-segment{border-top:1px dashed #35414a}
@media(max-width:680px){
 .tc-detail-dialog{width:calc(100% - 12px);max-height:88dvh}
 .tc-detail-inner{padding:13px}
 .tc-detail-dialog .table-wrap{overflow-x:auto}
 .tc-person-table{min-width:610px}
 .tc-list-table .tc-room-number{font-size:15px}
 .tc-list-section .section-head{gap:12px}
}

/* v1.8: same equal-sized 8x8 room board, context-specific controls. */
#liveSection[data-view="work"] .room-mode-ops{display:none!important}
#liveSection:not([data-view="work"]) .staff-work-ops{display:none!important}
.staff-queue-panel,.staff-active-panel{min-width:0;border:1px solid var(--edge);border-radius:9px;padding:8px;background:#11171d}
.staff-work-ops .panel-head{margin-bottom:9px}
.work-staff-list{display:flex;flex-direction:column;gap:5px;min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.work-staff-row{background:#1b232a;border:1px solid #394651;display:flex;align-items:center;flex-wrap:wrap;gap:3px 6px;padding:7px 8px;border-radius:7px;min-width:0}
.work-staff-name{font-size:12px;font-weight:760;color:#e7e9ed;min-width:0;flex:1 1 100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.work-staff-meta{font-size:11px;color:#a6c2d1;min-width:0;flex:1 1 auto}
.work-staff-time{font:700 11px ui-monospace,Consolas,monospace;color:#e9d092;font-variant-numeric:tabular-nums;white-space:nowrap}
.work-staff-action{min-width:36px;min-height:24px;padding:2px 6px;font-size:10px;border:1px solid #49515c;border-radius:5px;background:#262e37;color:#e5e9ef}
.work-group-title{color:#a8c3d8;font-size:11px;font-weight:800;padding:6px 1px 0;border-top:1px solid #303c46}
.work-group-title:first-child{border-top:0;padding-top:0}
.work-ready{border-left:2px solid #46a677}
.work-scheduled{border-left:2px solid #658bba}
.work-busy{border-left:2px solid #d4b36b}
.work-busy[role="button"]{cursor:pointer}
.work-busy[role="button"]:focus-visible{outline:2px solid #e8be76}
.work-busy[role="button"]:hover{background:#28313a}
.work-empty{border:1px dashed #35404a;padding:14px 10px;font-size:11px;color:#a9b3bd;border-radius:8px;margin:0;line-height:1.5}
.room-ops-dialog{width:min(520px,calc(100% - 24px));max-height:92dvh;overflow:auto}
.room-ops-inner{padding:18px}
.room-ops-info{font-size:13px;color:#c7cbd1;margin:4px 0 14px;line-height:1.7}
.room-ops-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.room-ops-actions .room-ops-button{min-height:45px;padding:8px;font-weight:800}
.room-ops-actions .room-ops-button:first-child{grid-column:1}
.room-ops-actions .room-ops-button:last-child:nth-child(3){grid-column:1/-1}
.room-ops-inner .hint{line-height:1.6;margin:13px 0 0}
body.board-mode .staff-work-ops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-width:0;min-height:0;overflow:hidden}
body.board-mode .staff-queue-panel,body.board-mode .staff-active-panel{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;padding:6px}
body.board-mode .work-staff-list{flex:1;gap:4px}
body.board-mode .work-staff-row{padding:5px 5px;gap:1px 4px}
body.board-mode .work-staff-name{font-size:clamp(10px,.65vw,13px)}
body.board-mode .work-staff-meta{font-size:clamp(9px,.52vw,11px)}
body.board-mode .work-staff-time{font-size:clamp(9px,.52vw,11px)}
body.board-mode .work-staff-action{font-size:10px;padding:1px 4px}
body.board-mode .staff-work-ops .panel-head{margin-bottom:6px;flex-wrap:nowrap;gap:3px}
body.board-mode .staff-work-ops .panel-head h3{font-size:clamp(11px,.66vw,15px);line-height:1.25;white-space:normal}
body.board-mode .staff-work-ops .panel-head button{min-height:24px;padding:3px 5px;font-size:10px;white-space:nowrap}
@media(max-width:950px){
 body.board-mode .live-section[data-view="work"][data-mobile-panel="rooms"] .staff-work-ops{display:none!important}
 body.board-mode .live-section[data-view="work"][data-mobile-panel="waiting"] .inventory-panel{display:none!important}
 body.board-mode .live-section[data-view="work"][data-mobile-panel="waiting"] .staff-work-ops{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;overflow:visible;align-items:start}
 body.board-mode .staff-queue-panel,body.board-mode .staff-active-panel{display:flex;flex-direction:column;overflow:visible;max-height:none}
 body.board-mode .work-staff-list{overflow:visible}
 body.board-mode .work-staff-name{font-size:12px}
 body.board-mode .work-staff-meta{font-size:10px}
 body.board-mode .staff-work-ops .panel-head{flex-wrap:wrap}
 body.board-mode .staff-work-ops .panel-head span{display:block}
 body.board-mode .board-top-actions #boardRoomsNav,body.board-mode .board-top-actions #boardWorkNav{display:none}
}
@media(max-width:420px){
 body.board-mode .live-section[data-view="work"][data-mobile-panel="waiting"] .staff-work-ops{grid-template-columns:repeat(2,minmax(0,1fr))}
 .work-staff-row{padding:6px 4px}
 .work-staff-name{font-size:11px}
 .room-ops-actions{grid-template-columns:1fr}
 .room-ops-actions .room-ops-button{grid-column:auto!important}
}

/* v1.9 — compact room controls, immediate assignment edits, no status overlays on cards */
.room-tile .room-status-control{display:none!important}
.modal-extra-actions{display:flex;gap:6px;margin-right:auto;align-items:center}
.room-block-entry{border-color:#8b4d4b;color:#f3a19b;font-size:12px;padding:7px 9px}
.room-block-entry:hover{border-color:#e48b81}
.room-ops-dialog{width:min(600px,calc(100% - 24px))}
.room-ops-edit-form{border:1px solid #39434d;border-radius:9px;background:#131920;padding:12px;margin:0 0 12px}
.room-ops-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
.room-ops-edit-grid label{display:grid;gap:5px;font-size:11px;color:var(--sub);min-width:0}
.room-ops-edit-grid input,.room-ops-edit-grid select{width:100%;min-width:0;min-height:37px;padding:7px 9px}
.room-ops-save{display:block;margin:10px 0 0 auto;min-height:34px;padding:6px 14px;font-size:12px}
.room-ops-actions{grid-template-columns:1fr 1fr}
.room-ops-actions .room-ops-button:first-child,.room-ops-actions .room-ops-button:last-child:nth-child(2){grid-column:auto}
@media(max-width:480px){
 .room-ops-edit-grid{grid-template-columns:1fr 1fr;gap:7px}
 .room-ops-edit-form{padding:9px}
 .room-ops-inner{padding:13px}
 .room-ops-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 .room-ops-actions .room-ops-button{font-size:12px;min-height:39px}
 .room-block-entry{font-size:11px;padding:6px}
 .modal-actions{flex-wrap:wrap}
}


/* v1.9: direct attendance actions and visible non-working staff in quick assignment */
.attendance-actions{display:flex;flex-wrap:wrap;gap:4px;max-width:100%;min-width:0}
.attendance-direct{font-size:11px;line-height:1.3;padding:5px 7px;min-height:27px;border:1px solid #485261;border-radius:5px;background:#26303a;color:#e8eaf0;white-space:nowrap}
.attendance-direct.confirm{background:#3b4635;border-color:#75906b;color:#dbeccb}
.attendance-direct.cancel{background:#34313a;color:#edd1d5}
.attendance-direct.schedule{background:#263544;color:#cadcf1}
.attendance-direct:disabled{opacity:.45;cursor:not-allowed}
.work-staff-row .attendance-actions{flex:1 1 100%}
body.board-mode .work-staff-row .attendance-actions{gap:2px}
body.board-mode .work-staff-row .attendance-direct{font-size:clamp(9px,.51vw,11px);padding:3px 4px;min-height:22px}
.quick-eligible-hint{width:100%;font-size:11px;color:#9fb0c2;line-height:1.5}
.quick-add-staff button[hidden]{display:none!important}
@media(max-width:520px){.attendance-actions{gap:3px}.attendance-direct{padding:4px 5px;font-size:10px}}

/* v1.9: show active and finished employee segments inside the quick room panel. */
.quick-room-dialog{width:min(720px,calc(100% - 20px));max-height:92dvh}
.quick-room-overview{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;margin:8px 0}
.quick-room-overview .quick-caption{margin:0}
.quick-room-tc-total{color:#ead18e;border:1px solid #786643;background:#30291d;border-radius:6px;padding:5px 9px;font-size:12px;white-space:nowrap}
.quick-room-tc-total.needs-review{color:#ff9d9d;border-color:#7d4444;background:#392122}
.quick-room-staff{display:flex;flex-direction:column;gap:6px;max-height:min(46dvh,490px);overflow-y:auto;overscroll-behavior:contain}
.quick-records-group-title{font-size:12px;font-weight:750;padding:5px 1px;color:#c5d2dc;border-bottom:1px solid #33404a}
.quick-records-group-title.running{color:#e5c979}
.quick-person-record{padding:8px 10px;border:1px solid #36444c;background:#121a1f;border-radius:7px;min-width:0}
.quick-person-record.running{border-color:#79683f;background:#211e18}
.quick-person-top{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;margin-bottom:5px;min-width:0}
.quick-person-name{font-size:13px;min-width:0;flex:1 1 145px;overflow-wrap:anywhere}
.quick-person-status{font-size:10px;color:#c9d2d9}
.quick-person-record.running .quick-person-status{color:#e0c578}
.quick-person-tc{font-size:12px;color:#8ed9ad;font-variant-numeric:tabular-nums}
.quick-person-record.running .quick-person-tc{color:#efd08b}
.quick-person-period{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:5px 10px;align-items:center;margin-top:4px;padding-top:4px;border-top:1px dashed #33404a;font-size:11px;color:#c5ced5;font-variant-numeric:tabular-nums}
.quick-person-elapsed{font-size:12px;color:#f2e2b4;white-space:nowrap}
.quick-person-footer{display:flex;justify-content:space-between;align-items:center;min-height:23px;gap:6px;margin-top:5px;font-size:11px;color:#aabac5}
.quick-person-footer button{min-height:27px;padding:4px 13px;font-size:11px}
@media(max-width:600px){
 .quick-room-dialog{width:calc(100% - 12px);max-height:92dvh}
 .quick-room-inner{padding:11px}
 .quick-room-staff{max-height:42dvh}
 .quick-person-period{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 6px;font-size:10px}
 .quick-person-elapsed{grid-column:1/-1}
 .quick-person-record{padding:7px}
 .quick-person-name{flex:1 1 115px}
}

/* Local-admin-only creation; day-to-day operational account management. */
.users-dialog { width:min(780px,95vw); max-height:90vh; background:#171d26; color:#eef3fa; border:1px solid #334255; border-radius:16px; padding:0; }
.users-dialog::backdrop { background:rgba(0,0,0,.76); }
.users-panel { padding:20px; }
.users-dialog-actions { display:flex; justify-content:flex-end; margin:14px 0; }
.users-list { max-height:55vh; overflow:auto; }
.users-row { display:flex; align-items:center; gap:12px; justify-content:space-between; padding:10px 0; border-top:1px solid #2e3a4c; }
.users-row-info { display:flex; flex-direction:column; gap:4px; min-width:0; overflow-wrap:anywhere; }
.users-row-info span { color:#aebacb; font-size:.84rem; }
.users-row-buttons { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.users-row-buttons small { color:#aebacb; }
@media(max-width:600px){ .users-panel{padding:12px} .users-row{align-items:flex-start; flex-direction:column} .users-row-buttons{width:100%} }

/* Irreversible deletion controls stay visually distinct from normal operations. */
.destructive-action{border-color:#87494b!important;color:#ffbdbd!important;background:#30191b!important}
.destructive-action:hover{background:#54272a!important}
#registrationForm{margin-top:14px}
#registrationForm.hidden{display:none!important}

.login-feedback{border:1px solid #8c5958;background:#291a1a;color:#ffd1d1;border-radius:8px;padding:10px;margin-top:10px}
.login-feedback.ok{border-color:#46815b;background:#172f24;color:#bff5ce}

/* Dispatch queue, independent of the physical 8x8 board. */
.request-board-head{font-size:12px;font-weight:800;color:#d9bd76;padding:6px 2px 12px}
.request-queue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-content:start}
.request-room-card{background:#211f1a;border:1px solid #78623a;border-radius:11px;padding:12px;display:grid;gap:12px;min-width:0}
.request-room-card.request-mid{background:#172638;border-color:#54759e}.request-room-card.request-b2{background:#172a21;border-color:#477558}
.request-room-head{display:flex;align-items:center;justify-content:space-between;gap:9px;color:#b9c3c9;font-size:11px}
.request-room-number{font-size:27px;line-height:1.25}.request-room-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:11px;line-height:1.5}
.request-room-actions{display:flex;gap:6px;flex-wrap:wrap}.request-room-actions button{flex:1;font-size:11px;padding:6px 8px;min-height:30px}
.quick-request-actions{display:flex;gap:10px;justify-content:end;align-items:center}.quick-request-actions button{padding:7px 11px;min-height:32px}
.roster-picker-host{position:relative}.roster-suggestions{position:relative;z-index:70;margin-top:3px;padding:6px;border:1px solid #76603e;background:#141e26;border-radius:8px;max-height:260px;overflow:auto;box-shadow:0 6px 20px #0009}
.roster-filter-controls{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:2px 4px 6px;color:#a9b4bf;font-size:11px}
.roster-filter-controls select{max-width:180px;padding:4px 6px;min-height:30px}
.roster-results{display:grid;gap:2px}.roster-results .roster-choice{border:0;background:transparent;color:#e9edf0;text-align:left;padding:9px;border-radius:6px;font-size:12px}.roster-choice:hover,.roster-choice:focus{background:#635336;color:#fff}
.desktop-bottom-nav{display:flex;gap:5px;position:fixed;bottom:7px;left:50%;transform:translateX(-50%);z-index:35;background:#141d27f0;border:1px solid #647184;padding:4px;border-radius:10px;box-shadow:0 5px 16px #0008}
.desktop-bottom-nav button{border:0;border-radius:6px;background:transparent;color:#d2dae2;font-size:11px;padding:7px 10px;white-space:nowrap}
.desktop-bottom-nav button.selected{background:#4f412a;color:#fff0c0}
body.board-mode .live-section{max-height:calc(100dvh - 53px)}
body.board-mode .main{min-height:calc(100dvh - 42px)}
@media (max-width:950px){
 .mobile-nav{grid-template-columns:repeat(6,minmax(0,1fr))!important}
 .desktop-bottom-nav{display:none}
 .request-queue-grid{grid-template-columns:repeat(1,minmax(0,1fr))}
}
@media (min-width:951px) and (max-width:1350px){.request-queue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ROOMLIVE_WEB_VERSION_TAG_BEGIN */
.roomlive-version-badge {
  position: fixed;
  right: 10px;
  bottom: calc(8px + env(safe-area-inset-bottom, 0px));
  z-index: 2000;
  max-width: min(92vw, 390px);
  padding: 5px 10px;
  font: 500 11px/1.35 system-ui, -apple-system, "Malgun Gothic", sans-serif;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  border: 1px solid rgba(148,163,184,.28);
  border-radius: 9px;
  background: rgba(13,18,30,.92);
  color: #cbd5e1;
  box-shadow: 0 2px 12px rgba(0,0,0,.15);
  pointer-events: none;
}
.roomlive-version-badge[data-state="restart"] {
  color: #ffd58a;
  border-color: rgba(245,158,11,.6);
}
.roomlive-version-badge[data-state="error"] {
  color: #fca5a5;
}
/* ROOMLIVE_WEB_VERSION_TAG_END */
