:root{color:#17202a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:0;background:#f5f7fa;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{scroll-behavior:smooth}body{min-width:320px;margin:0}button,input,select{font:inherit}:root{--bg:#f4f6f8;--panel:#fff;--panel-soft:#f9fafb;--line:#d9e0e7;--line-strong:#b7c2ce;--text:#1d2733;--muted:#647385;--safe:#16845b;--safe-bg:#e7f5ee;--warn:#b46400;--warn-bg:#fff2d8;--danger:#c73932;--danger-bg:#ffe6e4;--info:#2762b9;--info-bg:#e8f0ff;--shadow:0 16px 42px #141f2b1f}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--text);letter-spacing:0;margin:0;font-size:13px;overflow-x:hidden}button,input,select{border:1px solid var(--line);min-width:0;color:inherit;font:inherit;background:#fff;border-radius:6px}button{cursor:pointer;justify-content:center;align-items:center;gap:5px;min-height:30px;padding:6px 9px;display:inline-flex}button:hover{border-color:var(--line-strong);background:#f7f9fb}button:focus-visible,[role=button]:focus-visible{outline:2px solid var(--info);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.48}input,select{height:30px;padding:5px 8px}strong,small,span{min-width:0}small{color:var(--muted);font-size:11px}.app{width:100%;min-height:100vh;padding:10px}.topbar{z-index:20;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;border-radius:8px;grid-template-columns:minmax(210px,270px) minmax(220px,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid;position:sticky;top:0;box-shadow:0 8px 22px #141f2b12}.brand{background:0 0;border:0;justify-content:flex-start;padding:0 4px}.brand svg{background:var(--info-bg);width:28px;height:28px;color:var(--info);border-radius:7px;padding:5px}.brand span{text-align:left;gap:1px;display:grid}.brand strong{font-size:15px}.searchbox{border:1px solid var(--line);background:var(--panel-soft);border-radius:7px;align-items:center;gap:6px;min-width:0;height:32px;padding:0 9px;display:flex}.searchbox input{background:0 0;border:0;outline:0;width:100%;padding:0}.top-actions,.context-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.top-actions select{width:min(260px,28vw)}.public-pill,.sync-state{border:1px solid var(--line);background:var(--panel-soft);min-height:28px;color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;padding:4px 8px;display:inline-flex}.workspace-nav{z-index:19;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin:8px 0;display:grid;position:sticky;top:60px}.workspace-nav button{background:var(--panel);width:100%;min-height:34px;font-weight:700}.workspace-nav button.active{background:var(--info-bg);color:#173f7c;border-color:#93b7ea}.context-strip{border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:8px;margin-bottom:8px;padding:8px;display:grid}.context-strip>div:first-child{grid-template-columns:auto 1fr;align-items:baseline;gap:2px 8px;min-width:0;display:grid}.context-strip>div:first-child span{color:var(--muted);font-size:11px}.context-strip>div:first-child strong,.context-strip>div:first-child small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.context-strip>div:first-child small{grid-column:2}.context-actions input[type=password]{width:150px}.kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-bottom:8px;display:grid}.kpi{border:1px solid var(--line);background:var(--panel);border-left-width:5px;border-radius:8px;gap:2px;min-height:54px;padding:8px 10px;display:grid}.kpi span{color:var(--muted);font-size:11px}.kpi strong{font-size:18px;line-height:1}.kpi.safe{border-left-color:var(--safe)}.kpi.warning{border-left-color:var(--warn)}.kpi.danger{border-left-color:var(--danger)}.kpi.neutral{border-left-color:var(--info)}.page-grid,.dashboard-grid,.two-col,.listing-grid,.room-grid,.report-grid,.setup-grid,.kanban-page{width:100%;min-width:0}.page-grid{gap:8px;display:grid}.dashboard-grid{grid-template-columns:minmax(320px,1.15fr) minmax(300px,.85fr)}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-width:0;min-height:0;padding:8px}.panel-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;padding-bottom:6px;display:flex}.panel-title>span{align-items:center;gap:6px;min-width:0;display:inline-flex}.panel-title svg{width:16px;height:16px;color:var(--info)}.queue-panel{grid-row:span 2}.task-lanes-panel{grid-column:span 1}.queue-list,.compact-stack{gap:6px;display:grid}.queue-card,.compact-stack>button{border:1px solid var(--line);background:var(--panel-soft);text-align:left;border-radius:7px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;width:100%;min-height:40px;padding:7px;display:grid}.queue-card strong,.queue-card small,.compact-stack strong,.compact-stack small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.queue-card.safe{border-left:4px solid var(--safe)}.queue-card.warning{border-left:4px solid var(--warn)}.queue-card.danger{border-left:4px solid var(--danger)}.task-lanes{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.task-lane{border:1px solid var(--line);background:var(--panel-soft);border-radius:7px;align-content:start;gap:5px;min-width:0;padding:6px;display:grid}.task-lane header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:6px;padding-bottom:4px;display:flex}.task-lane header span{min-width:22px;color:var(--muted);background:#eef2f6;border-radius:999px;justify-content:center;padding:1px 6px;font-size:11px;font-weight:700;display:inline-flex}.task-lane button{text-align:left;grid-template-columns:auto minmax(0,1fr);justify-items:start;gap:4px 6px;width:100%;padding:5px;display:grid}.task-lane button strong,.task-lane button small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.badge{border:1px solid var(--line);color:#334256;white-space:nowrap;background:#eef2f6;border-radius:999px;justify-content:center;align-items:center;width:fit-content;max-width:100%;min-height:20px;padding:2px 7px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.badge.safe,.room-state.safe{background:var(--safe-bg);color:#0d5f40;border-color:#a4d9bf}.badge.warning,.room-state.warning{background:var(--warn-bg);color:#7c4300;border-color:#efcc87}.badge.danger,.room-state.danger{background:var(--danger-bg);color:#8a1d18;border-color:#f2aca7}.badge.neutral,.room-state.neutral{background:var(--info-bg);color:#1b4c90;border-color:#bfd1ec}.room-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.room-status-grid button{justify-content:space-between;min-height:42px;padding:7px}.room-status-grid strong{font-size:16px}.rate-strip{border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-columns:repeat(3,minmax(0,120px)) minmax(0,1fr);align-items:stretch;gap:7px;padding:8px;display:grid}.rate-strip .kpi{min-height:48px}.rate-alerts,.finance-list{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px;display:grid}.rate-alerts button,.finance-list button{text-align:left;grid-template-columns:auto minmax(0,1fr);justify-items:start;gap:4px 6px;min-height:42px;display:grid}.rate-alerts strong,.rate-alerts small,.finance-list strong,.finance-list small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.board-toolbar{border:1px solid var(--line);background:var(--panel);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px;display:flex}.calendar-board{border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-columns:170px repeat(14,minmax(112px,1fr));max-width:100%;display:grid;overflow:auto}.board-head,.board-room,.board-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.board-head{z-index:3;background:#eef3f8;gap:1px;min-height:42px;padding:6px;display:grid;position:sticky;top:0}.sticky-col{z-index:4;position:sticky;left:0}.board-room{background:#fff;gap:3px;min-height:78px;padding:7px;display:grid}.board-room strong,.board-room small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-state{border:1px solid var(--line);border-radius:999px;width:fit-content;max-width:100%;padding:2px 6px;font-size:10px;font-weight:700;display:inline-flex}.board-cell{background:#fff;align-content:start;gap:4px;min-height:78px;padding:5px;display:grid}.board-cell.occupied{background:#f1f7ff}.board-cell.needs-cleaning{background:#fff7e8}.booking-chip,.rate-chip,.cleaning-chip,.stop-chip,.empty-cell{text-align:left;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;justify-content:flex-start;width:100%;min-height:24px;padding:3px 5px;font-size:11px;line-height:1.2;overflow:hidden}.booking-chip{background:var(--info-bg);border-color:#b8ccef}.rate-chip{background:#f8fafc;border-color:#cdd7e4;font-weight:700}.rate-chip.safe{background:var(--safe-bg);border-color:#a4d9bf}.rate-chip.warning{background:var(--warn-bg);border-color:#efcc87}.rate-chip.danger{background:var(--danger-bg);border-color:#f2aca7}.cleaning-chip{background:var(--warn-bg);border-color:#efcc87}.stop-chip{background:var(--danger-bg);border-color:#f2aca7}.empty-cell{color:var(--muted);background:#fff;border-style:dashed;justify-content:center;align-items:center}.kanban-page{grid-template-columns:repeat(6,minmax(190px,1fr));gap:8px;padding-bottom:2px;display:grid;overflow-x:auto}.kanban-column{border:1px solid var(--line);background:var(--panel);border-radius:8px;align-content:start;gap:7px;min-width:190px;padding:7px;display:grid}.kanban-column:has(.cleaning-card:hover){border-color:var(--line-strong)}.kanban-column header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:6px;display:flex}.kanban-column header span{min-width:24px;color:var(--muted);background:#eef2f6;border-radius:999px;justify-content:center;padding:2px 7px;font-weight:700;display:inline-flex}.cleaning-card,.listing-card,.room-card,.report-card,.setup-card,.channel-card,.shift-card,.policy-card,.template-card{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-width:0;padding:8px}.cleaning-card{background:var(--panel-soft);cursor:grab;gap:6px;display:grid}.cleaning-card:active{cursor:grabbing}.card-main{text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);justify-items:start;gap:4px 6px;width:100%;min-height:54px;padding:0;display:grid}.card-main strong,.card-main small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.card-main small{grid-column:2}.listing-grid,.room-grid,.report-grid,.setup-grid,.channel-grid,.shift-grid,.policy-grid,.template-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;display:grid}.listing-card,.room-card,.report-card,.setup-card,.channel-card,.shift-card,.policy-card,.template-card{gap:8px;display:grid}.listing-card header,.room-card header,.report-card header,.setup-card header,.channel-card header,.shift-card header,.policy-card header,.template-card header{justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;display:flex}.room-card header span,.report-card header{min-width:0}.room-card header strong,.room-card header small,.listing-card>strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.mini-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.mini-row span{border:1px solid var(--line);background:var(--panel-soft);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:5px 6px;overflow:hidden}.tag-row,.row-actions{flex-wrap:wrap;gap:5px;display:flex}.row-actions button{flex:auto;min-width:68px}.report-numbers{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.report-numbers .kpi{min-height:48px}.report-numbers .kpi strong{font-size:14px}.setup-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.setup-items button{justify-content:space-between;min-height:32px;padding:5px}.setup-items span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rule-list,.detail-list{gap:5px;margin:0;display:grid}.rule-list div,.detail-list div{border-bottom:1px solid var(--line);grid-template-columns:72px minmax(0,1fr);align-items:start;gap:6px;min-width:0;padding:5px 0;display:grid}.rule-list dt,.detail-list dt{color:var(--muted);font-size:11px}.rule-list dd,.detail-list dd{overflow-wrap:anywhere;min-width:0;margin:0}.drawer-backdrop{z-index:40;pointer-events:none;background:0 0;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{border-left:1px solid var(--line);background:var(--panel);width:min(760px,100vw);max-height:100vh;box-shadow:var(--shadow);pointer-events:auto;grid-template-rows:auto;gap:8px;padding:10px;display:grid;overflow:auto}.operation-drawer{align-content:start}.drawer>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding-bottom:7px;display:flex}.drawer>header strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.drawer>header button{width:32px;min-width:32px;padding:0}.drawer-controls{flex-shrink:0;align-items:center;gap:6px;display:flex}.drawer-controls .drawer-back{width:auto;min-width:62px;padding:0 8px}.drawer-title{gap:3px;min-width:0;display:grid}.drawer-title>span{flex-wrap:wrap;gap:5px;min-width:0;display:flex}.drawer-title small{color:var(--muted);font-weight:700}.detail-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.detail-metrics .kpi{min-height:48px;padding:7px}.detail-metrics .kpi strong{font-size:14px}.detail-actions{border:1px solid var(--line);background:var(--panel-soft);border-radius:7px;flex-wrap:wrap;align-items:center;gap:6px;padding:7px;display:flex}.detail-actions span{color:var(--muted)}.detail-section{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;min-width:0;padding:7px}.detail-section>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;padding-bottom:5px;display:flex}.detail-section>header span{color:var(--muted);font-size:11px}.risk-list,.related-list,.timeline{gap:5px;display:grid}.risk-list button,.related-item,.timeline button{text-align:left;background:#fff;grid-template-columns:auto minmax(0,1fr);justify-items:start;gap:5px 7px;width:100%;min-height:34px;padding:5px 6px;display:grid}.risk-list button:disabled,.timeline button:disabled{opacity:1}.risk-list button>span,.related-item>span,.timeline button>span{gap:1px;min-width:0;display:grid}.risk-list button span,.related-item strong,.related-item small,.timeline strong,.timeline small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.relation-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.related-section{background:#fff;align-content:start}.detail-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;margin:0;display:grid}.detail-facts div{border:1px solid var(--line);background:#fff;border-radius:6px;grid-template-columns:82px minmax(0,1fr);align-items:start;gap:6px;min-width:0;padding:5px;display:grid}.detail-facts dt{color:var(--muted);font-size:11px}.detail-facts dd{overflow-wrap:anywhere;min-width:0;margin:0}.empty-text{color:var(--muted);margin:0}@media (width<=980px){.topbar{grid-template-columns:1fr}.top-actions,.context-actions{justify-content:flex-start}.top-actions select{width:100%}.workspace-nav{grid-template-columns:repeat(4,minmax(0,1fr));top:114px}.context-strip,.dashboard-grid,.two-col,.task-lanes,.relation-board,.rate-strip{grid-template-columns:1fr}.kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){body{font-size:12px}.app{padding:6px}.topbar{position:static}.workspace-nav{background:var(--bg);grid-template-columns:repeat(4,minmax(0,1fr));padding:5px 0;position:sticky;top:0}.workspace-nav button{min-height:32px;padding:5px}.context-actions input[type=password],.context-actions button,.top-actions input,.top-actions select{flex:130px}.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.listing-grid,.room-grid,.report-grid,.setup-grid,.channel-grid,.shift-grid,.policy-grid,.template-grid,.room-status-grid,.report-numbers,.setup-items,.detail-metrics,.detail-facts{grid-template-columns:1fr}.board-toolbar{flex-wrap:wrap}.calendar-board{grid-template-columns:136px repeat(14,104px)}.board-room,.board-cell{min-height:70px}.kanban-page{grid-template-columns:repeat(6,186px)}.drawer{width:100vw}.drawer-backdrop{pointer-events:auto;background:#0f172a3d}}
