:root{--ri-bg:#071426;--ri-panel:#0d2036;--ri-line:#26425f;--ri-text:#eef6ff;--ri-muted:#91a6bd;--ri-cyan:#35d7df;--ri-blue:#4895ff;--ri-green:#36dc8b;--ri-amber:#ffb323;--ri-red:#ff6170;--ri-purple:#9a6cff}
.ri-blue{color:var(--ri-blue)!important}
.ri-backdrop{position:fixed;inset:0;z-index:100060;background:rgba(1,7,18,.72);opacity:0;pointer-events:none;overflow:hidden;transition:.2s}.ri-backdrop.is-open{opacity:1;pointer-events:auto}.ri-drawer{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;background:var(--ri-bg);color:var(--ri-text);border-left:1px solid var(--ri-line);transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column;overflow:hidden;box-shadow:-20px 0 60px #0008}.ri-backdrop.is-open .ri-drawer{transform:none}.ri-head,.ri-toolbar{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid var(--ri-line);box-sizing:border-box;width:100%;min-width:0}.ri-head h2{font-size:25px;margin:0}.ri-head p{margin:5px 0 0;color:var(--ri-muted)}.ri-spacer{flex:1}.ri-btn,.ri-input,.ri-select{min-height:44px;border:1px solid var(--ri-line);border-radius:11px;background:#0a192c;color:var(--ri-text);padding:0 14px;font-weight:700;max-width:100%;box-sizing:border-box}.ri-btn{cursor:pointer}.ri-btn:hover,.ri-btn:focus-visible{border-color:var(--ri-cyan);outline:none}.ri-close{font-size:22px;width:44px;padding:0;flex:0 0 44px}.ri-toolbar{flex-wrap:wrap}.ri-toolbar .ri-input{flex:0 1 190px}.ri-toolbar .ri-select{flex:1 1 220px;min-width:0}.ri-body{padding:20px 24px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;width:100%;min-width:0}.ri-summary{display:grid;grid-template-columns:minmax(260px,2fr) repeat(3,minmax(0,1fr));gap:12px;padding:18px;border:1px solid #563d9d;background:linear-gradient(110deg,#17183e,#101c3b);border-radius:16px;margin-bottom:16px}.ri-summary>*{min-width:0;overflow-wrap:anywhere}.ri-summary strong{font-size:18px}.ri-summary small,.ri-kpi small{display:block;color:var(--ri-muted);margin-bottom:7px}.ri-summary b{font-size:20px}.ri-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.ri-kpi{min-width:0;background:var(--ri-panel);border:1px solid var(--ri-line);border-radius:15px;padding:16px;overflow-wrap:anywhere}.ri-kpi b{font-size:24px}.ri-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,320px);gap:18px}.ri-card{min-width:0;border:1px solid var(--ri-line);background:#091a2e;border-radius:16px;overflow:hidden}.ri-card-head{display:flex;gap:8px;align-items:center;padding:14px;border-bottom:1px solid var(--ri-line);flex-wrap:wrap}.ri-tab{padding:9px 12px;border:1px solid var(--ri-line);border-radius:9px;background:transparent;color:var(--ri-muted);font-weight:700;cursor:pointer}.ri-tab.is-active{color:#fff;background:#245fc7}.ri-table-wrap{overflow-y:auto;overflow-x:hidden;max-height:calc(100dvh - 390px)}.ri-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:0}.ri-table th,.ri-table td{padding:14px 9px;border-bottom:1px solid #1b344d;text-align:left;overflow-wrap:anywhere;word-break:break-word}.ri-table th{position:sticky;top:0;background:#10253c;color:var(--ri-muted);z-index:1;font-size:12px}.ri-table th:nth-child(1){width:9%}.ri-table th:nth-child(2){width:16%}.ri-table th:nth-child(3){width:11%}.ri-table th:nth-child(4){width:9%}.ri-table th:nth-child(5){width:10%}.ri-table th:nth-child(6){width:13%}.ri-table th:nth-child(7){width:11%}.ri-table th:nth-child(8){width:21%}.ri-table tr{cursor:pointer}.ri-table tbody tr:hover,.ri-table tbody tr.is-selected{background:#18264a}.ri-good{color:var(--ri-green)}.ri-warn{color:var(--ri-amber)}.ri-bad{color:var(--ri-red)}.ri-detail{padding:18px}.ri-detail h3{margin:0 0 14px}.ri-advice{border:1px solid var(--ri-line);border-radius:12px;padding:14px;margin:10px 0;background:#0d2138}.ri-advice strong{display:block;margin-bottom:6px}.ri-detail .ri-btn{width:100%;margin-top:9px}.ri-empty{padding:40px;text-align:center;color:var(--ri-muted)}
@media(max-width:1200px){.ri-layout{grid-template-columns:1fr}.ri-detail-card{order:-1}.ri-table-wrap{max-height:none}.ri-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ri-detail h3,.ri-detail .ri-btn{grid-column:1/-1}.ri-advice{margin:0}}
@media(max-width:900px){.ri-head,.ri-toolbar,.ri-body{padding:14px}.ri-head{flex-wrap:wrap}.ri-head>div:first-child{flex:1 1 240px;min-width:0}.ri-toolbar{align-items:stretch}.ri-toolbar .ri-input{flex:1 1 145px}.ri-toolbar .ri-select{flex:1 1 190px}.ri-summary{grid-template-columns:1fr 1fr}.ri-summary>div:first-child{grid-column:1/-1}.ri-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ri-detail{grid-template-columns:1fr}.ri-head h2{font-size:20px}.ri-table-wrap{overflow:visible}.ri-table,.ri-table tbody{display:block;width:100%}.ri-table thead{display:none}.ri-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;border-bottom:1px solid var(--ri-line)}.ri-table td{display:block;width:auto;padding:7px 9px;border:0;min-width:0}.ri-table td::before{display:block;margin-bottom:4px;color:var(--ri-muted);font-size:10px;font-weight:800;text-transform:uppercase}.ri-table td:nth-child(1)::before{content:"Phòng"}.ri-table td:nth-child(2)::before{content:"Loại phòng"}.ri-table td:nth-child(3)::before{content:"Đêm được phân"}.ri-table td:nth-child(4)::before{content:"OOO/OOS"}.ri-table td:nth-child(5)::before{content:"Khai thác"}.ri-table td:nth-child(6)::before{content:"Doanh thu"}.ri-table td:nth-child(7)::before{content:"So với cùng loại"}.ri-table td:nth-child(8)::before{content:"RevPilot AI"}}
@media(max-width:520px){.ri-head{gap:8px}.ri-head p{font-size:13px}.ri-summary,.ri-kpis,.ri-table tr{grid-template-columns:1fr}.ri-summary>div:first-child{grid-column:auto}.ri-kpi b{font-size:21px}.ri-toolbar .ri-input,.ri-toolbar .ri-select{flex-basis:100%}}
.s79-ai-actions [data-room-insights]{background:linear-gradient(135deg,#0e7490,#4f46e5)!important;border-color:#38bdf8!important;color:#fff!important}

/*
 * Room Insights and Rate Integrity both historically used the `ri-*` prefix.
 * Rate Integrity injects its stylesheet at runtime, so its drawer rule can be
 * appended after this file and shrink this full-screen workspace to 540px.
 * Keep the shell geometry anchored to the Room Insights root until the older
 * Rate Integrity class names can be retired safely.
 */
#roomInsightsRoot.ri-backdrop{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;padding:0!important;overflow:hidden!important;box-sizing:border-box!important}
#roomInsightsRoot>.ri-drawer{position:absolute!important;inset:0!important;width:100%!important;max-width:none!important;height:100%!important;padding:0!important;overflow:hidden!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important}
#roomInsightsRoot .ri-head,#roomInsightsRoot .ri-toolbar,#roomInsightsRoot .ri-body{box-sizing:border-box!important;width:100%!important;min-width:0!important}
#roomInsightsRoot .ri-body{flex:1 1 auto!important;overflow-y:auto!important;overflow-x:hidden!important}
#roomInsightsRoot .ri-summary,#roomInsightsRoot .ri-kpis,#roomInsightsRoot .ri-layout{width:100%!important;min-width:0!important;box-sizing:border-box!important}
