:root{
  --bg:#f4f5f8; --surface:#ffffff; --line:#e6e8ef;
  --ink:#141a2e; --ink-2:#5b6478; --ink-3:#8b93a7;
  --brand:#4f46e5; --brand-2:#7c3aed;
  --ok:#10b981; --warn:#f59e0b;
  --grad:linear-gradient(135deg,#4f46e5 0%,#7c3aed 55%,#9333ea 100%);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}
.app{display:flex;flex-direction:column;height:100vh;max-width:1600px;margin:0 auto;background:var(--bg)}

.topbar{display:flex;align-items:center;justify-content:space-between;height:60px;background:var(--surface);border-bottom:1px solid var(--line);padding:0 20px;flex-shrink:0}
.product-lockup{display:flex;align-items:center;gap:12px;min-width:0}
.product-lockup img.word{height:20px;width:auto;display:block}
.product-lockup img.icon{height:26px;width:auto;display:block}
.brahma-logo{display:block;width:auto;height:auto;max-height:40px;max-width:min(250px,34vw);object-fit:contain}
.brahma-word{font-family:"Avenir Next",Avenir,"Helvetica Neue",sans-serif;font-size:24px;font-weight:400;color:#4a4f5f;letter-spacing:1px;line-height:1}
.top-right{display:flex;align-items:center;gap:14px;min-width:0}
.client-lockup{display:flex;align-items:center;gap:11px;padding-right:14px;border-right:1px solid var(--line);min-width:0}
.client-mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,#0ea5e9,#0d9488);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;flex-shrink:0}
.client-name{font-weight:700;font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:32vw}
.client-sub{font-size:11px;color:var(--ink-3);margin-top:1px;text-align:right}
.avatar{width:32px;height:32px;border-radius:50%;background:#eef2ff;color:#4338ca;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;border:1px solid #dde2ff;flex-shrink:0}

/* hamburger (mobile only) + drawer backdrop */
.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:3px;width:36px;height:32px;border:1px solid var(--line);background:#fff;border-radius:9px;cursor:pointer;padding:0 8px;margin-right:10px;flex-shrink:0}
.menu-toggle span{display:block;height:2px;border-radius:2px;background:var(--ink);width:100%}
.rail-backdrop{position:fixed;inset:0;background:rgba(15,20,35,.45);z-index:60;display:none}
.rail-backdrop.show{display:block}

.body{display:flex;flex:1;min-height:0}

.rail{width:236px;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:14px 10px;flex-shrink:0}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;color:var(--ink-2);font-weight:500;cursor:pointer;margin-bottom:2px;white-space:nowrap}
.nav-item:hover{background:#f4f5fb}
.nav-item.active{background:#eef2ff;color:#4338ca;font-weight:600}
.nav-item svg{flex-shrink:0}
.badge{margin-left:auto;background:var(--warn);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px}
.rail-footer{margin-top:auto;border-top:1px solid var(--line);padding:12px;display:flex;align-items:center;gap:9px}
.brahma-dot{width:22px;height:22px;border-radius:7px;background:var(--grad);display:inline-block;flex-shrink:0}
.rail-footer b{font-size:12.5px}
.rail-footer span{display:block;font-size:10.5px;color:var(--ink-3)}
.status-live{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:10.5px;color:var(--ok);font-weight:600}
.status-live i{width:7px;height:7px;border-radius:50%;background:var(--ok);display:inline-block}
.status-live.off{color:var(--warn)}
.status-live.off i{background:var(--warn)}

.chat{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}
.chat-head{background:var(--surface);border-bottom:1px solid var(--line);padding:10px 22px;flex-shrink:0}
.agent-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.agent-tab{display:flex;align-items:center;gap:8px;padding:7px 13px;border-radius:10px;border:1px solid var(--line);background:#fff;font-weight:600;font-size:12.5px;color:var(--ink-2);cursor:pointer}
.agent-tab.active{border-color:#c7c9fa;background:#f3f2ff;color:#4338ca}
.agent-tab .dot{width:8px;height:8px;border-radius:50%}
.dot.ok{background:var(--ok)} .dot.idle{background:#cbd2e0}
.chat-meta{margin-top:8px;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3);flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border:1px solid var(--line);border-radius:999px;padding:2.5px 9px;font-size:11px;color:var(--ink-2);font-weight:500}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--ok);display:inline-block}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:10px 22px 0;flex-shrink:0}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:8px 13px}
.stat .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:700}
.stat .val{font-size:18px;font-weight:800;margin-top:2px}
.stat .chg{font-size:10.5px;font-weight:600;margin-top:1px}
.chg.up{color:var(--ok)} .chg.warn{color:var(--warn)}
/* two copies of the stat cards: chat copy under 1024px, rail copy above */
.stats--chat{padding:10px 22px 0}
.stats--rail{grid-template-columns:repeat(2,1fr);padding:0;gap:8px}
.stats--rail .stat{padding:7px 10px}
.stats--rail .stat .val{font-size:17px}

.thread{flex:1;overflow-y:auto;padding:10px 22px 12px;display:flex;flex-direction:column;gap:11px}
.msg{display:flex;gap:11px;max-width:80%}
.msg.user{align-self:flex-end;flex-direction:row-reverse}
.msg-avatar{width:30px;height:30px;border-radius:9px;background:var(--grad);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:11px}
.msg.user .msg-avatar{background:#eef2ff;border:1px solid #dde2ff;color:#4338ca}
.bubble{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 15px;font-size:13px;color:var(--ink);line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.bubble.user{background:#4338ca;border-color:#4338ca;color:#fff}
.bubble .meta{font-size:11px;color:var(--ink-3);margin-top:6px}
.bubble.user .meta{color:#c7cbff}
.msg.activity{align-self:flex-start}
.msg.activity .bubble{background:#f8f9fc;color:var(--ink-3);font-size:12px;padding:7px 12px;border-style:dashed}

.approval{max-width:80%;align-self:flex-start;background:#fffdf5;border:1px solid #f4e2b8;border-radius:13px;padding:12px 15px}
.approval-head{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;color:#92610a}
.approval-head svg{width:14px;height:14px;flex-shrink:0}
.approval-title{font-weight:700;font-size:13px;margin-top:7px}
.approval-detail{font-size:12px;color:var(--ink-2);margin-top:3px}
.approval-detail b{color:var(--ink)}
.approval-reason{margin-top:7px;font-size:11.5px;color:var(--ink-3);background:#fff;border:1px solid var(--line);border-radius:8px;padding:7px 10px}
.approval-actions{display:flex;gap:9px;margin-top:10px}
.btn{display:inline-flex;align-items:center;gap:7px;border:none;border-radius:9px;padding:7px 15px;font-size:12.5px;font-weight:600;cursor:pointer}
.btn-primary{background:var(--grad);color:#fff}
.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--ink-2)}
.btn-done{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0;cursor:default}

.inputbar{background:var(--surface);border-top:1px solid var(--line);padding:12px 22px;flex-shrink:0}
.inputbox{display:flex;align-items:flex-end;gap:10px;background:#f7f8fb;border:1px solid var(--line);border-radius:12px;padding:9px 12px}
.inputbox textarea{flex:1;border:none;background:transparent;resize:none;font:inherit;color:var(--ink);outline:none;min-height:20px;padding-top:2px;font-size:13px}
.sendbtn{width:32px;height:32px;border:none;border-radius:10px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.sendbtn:disabled{opacity:.45;cursor:default}
.input-hint{font-size:10.5px;color:var(--ink-3);margin-top:7px;text-align:center}

.context{width:300px;background:var(--surface);border-left:1px solid var(--line);padding:14px;overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column;gap:13px}
.ctx-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:700;margin-bottom:7px}
.ctx-card{background:#f8f9fc;border:1px solid var(--line);border-radius:11px;padding:11px}
.ctx-row{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:2.5px 0}
.ctx-row span{color:var(--ink-3)}
.ctx-row b{font-weight:600}
.chan{margin-top:5px}
.chan-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-2);padding:2px 0}
.chan-row .nm{width:82px;flex-shrink:0}
.chan-bar{flex:1;height:6px;border-radius:3px;background:#eceef4;overflow:hidden}
.chan-bar i{display:block;height:100%;border-radius:3px;background:var(--grad)}
.chan-row .pc{width:32px;text-align:right;font-weight:700;color:var(--ink)}
.timeline{display:flex;flex-direction:column;gap:8px}
.tl{display:flex;gap:10px;font-size:12px}
.tl i{width:8px;height:8px;border-radius:50%;background:var(--ok);margin-top:5px;flex-shrink:0}
.tl .when{font-size:10px;color:var(--ink-3);display:block}
.source{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ink-2);padding:6px 9px;background:#f8f9fc;border:1px solid var(--line);border-radius:9px}
.source .ok{margin-left:auto;color:var(--ok);font-size:10.5px;font-weight:700}
.ctx-try p{font-size:12.5px;line-height:1.6;color:var(--ink-2)}
.ctx-try a{color:#4338ca;font-weight:600;text-decoration:none;word-break:break-all}
.ctx-try a:hover{text-decoration:underline}

/* v2 additions: views, guests, inquiries, tabs, chips, modal */
.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--ok);background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;padding:4px 12px;white-space:nowrap;flex-shrink:0}
.status-pill i{width:7px;height:7px;border-radius:50%;background:var(--ok);display:inline-block;flex-shrink:0}
.status-pill.off{color:var(--warn);background:#fffbeb;border-color:#fde68a}
.status-pill.off i{background:var(--warn)}
.view-pane{flex:1;overflow-y:auto;padding:16px 22px;display:flex;flex-direction:column;gap:10px;min-height:0}
.view-head h2{font-size:17px;margin-bottom:2px}
.view-sub{font-size:12px;color:var(--ink-3)}
.suggest-row{display:flex;gap:8px;flex-wrap:wrap;padding:0 22px 10px}
.chip-btn{background:#f3f2ff;border:1px solid #c7c9fa;color:#4338ca;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.chip-btn:hover{background:#e6e4ff}
.guest-list,.inquiry-list,.agents-grid{display:flex;flex-direction:column;gap:8px}
.guest-card,.inquiry-card,.agent-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;gap:12px;align-items:center;cursor:pointer}
.guest-card:hover,.inquiry-card:hover{border-color:#c7c9fa;background:#fafaff}
.guest-avatar{width:38px;height:38px;border-radius:11px;background:var(--grad);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.guest-avatar.big{width:52px;height:52px;font-size:18px}
.guest-info{min-width:0}
.guest-name{font-weight:700;font-size:13.5px}
.guest-meta{font-size:12px;color:var(--ink-3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vip-tag{background:#fef3c7;color:#92610a;font-size:10px;font-weight:700;border-radius:999px;padding:1px 7px;vertical-align:middle}
.inhouse-tag{background:#ecfdf5;color:#059669;font-size:10px;font-weight:700;border-radius:999px;padding:1px 7px;vertical-align:middle}
.inquiry-card{flex-direction:column;align-items:flex-start;cursor:default}
.inquiry-head{display:flex;justify-content:space-between;width:100%;gap:10px;align-items:center}
.inq-status{font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 9px;text-transform:capitalize}
.inq-status.open{background:#fffbeb;color:#92610a;border:1px solid #fde68a}
.inq-status.responded{background:#eef2ff;color:#4338ca;border:1px solid #c7c9fa}
.inq-status.converted{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}
.inquiry-meta{font-size:11.5px;color:var(--ink-3)}
.inquiry-body{font-size:12.5px;color:var(--ink-2)}
.agents-grid{flex-direction:row;flex-wrap:wrap}
.agent-card{width:calc(50% - 6px);cursor:pointer}
.modal{position:fixed;inset:0;background:rgba(15,20,35,.55);display:flex;align-items:center;justify-content:center;z-index:90}
.modal-card{background:var(--surface);border-radius:16px;padding:22px;width:min(520px,92vw);max-height:86vh;overflow-y:auto;position:relative}
.modal-close{position:absolute;top:10px;right:14px;border:none;background:none;font-size:22px;cursor:pointer;color:var(--ink-3)}
.guest-bio h3{margin:8px 0 4px}
.guest-line{font-size:12.5px;color:var(--ink-2);margin-bottom:3px}
.guest-stays{margin-top:10px;font-size:12.5px;background:#f8f9fc;border:1px solid var(--line);border-radius:10px;padding:10px}
.guest-stays div{padding:2px 0;color:var(--ink-2)}
.email-guest{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.email-guest textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font:inherit;font-size:13px;outline:none}
.email-guest textarea:focus{border-color:var(--brand)}

/* ---- Rent vs Own table alignment safety ---- */

/* ============================================================
   RESPONSIVE (all media queries live at the END so they win
   over the base rules above - same specificity, later wins).
   ============================================================ */
@media (max-width: 1024px){
  .context{display:none}
}
@media (min-width: 1025px){
  .stats--chat{display:none}
}
@media (max-width: 900px){
  .app{height:100dvh}
  .menu-toggle{display:inline-flex}
  /* left rail becomes a slide-in drawer */
  .rail{position:fixed;top:0;left:0;bottom:0;width:254px;max-width:84vw;height:100dvh;flex-direction:column;gap:2px;padding:14px 10px;border-right:1px solid var(--line);border-bottom:0;overflow-y:auto;transform:translateX(-102%);transition:transform .22s ease;z-index:70}
  .rail.open{transform:none;box-shadow:0 12px 44px rgba(15,20,35,.28)}
  .rail-footer{display:flex}
  .body{display:block;flex:1;min-height:0}
  .chat{height:100%;min-height:0}
  .topbar{height:52px;padding:0 12px}
  .brahma-logo{max-height:26px;max-width:44vw}
  .top-right{gap:9px}
  .client-sub{display:none}
  .client-lockup{padding-right:9px;gap:8px}
  /* compact fixed blocks */
  .chat-head{padding:8px 14px}
  .agent-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .agent-tabs::-webkit-scrollbar{display:none}
  .stats{padding:8px 14px 0}
  .thread{padding:10px 14px 12px}
  .suggest-row{flex-wrap:nowrap;overflow-x:auto;padding:0 14px 8px;scrollbar-width:none}
  .suggest-row::-webkit-scrollbar{display:none}
  .view-pane{padding:14px}
  .inputbar{padding:10px 14px}
}
@media (max-width: 768px){
  .stats{grid-template-columns:repeat(2,1fr);gap:8px}
  .agent-card{width:100%}
}
@media (max-width: 560px){
  .stat .val{font-size:16px}
  .stat{padding:7px 10px}
  .msg{max-width:92%}
  .approval{max-width:96%}
  .brahma-logo{max-height:24px;max-width:40vw}
  .status-pill span{display:none}
  .status-pill{padding:5px 8px}
  .client-mark{display:none}
  .client-name{font-size:12.5px;max-width:32vw}
  .client-lockup{border-right:0;padding-right:4px}
  .avatar{width:28px;height:28px;font-size:11px}
  .top-right{gap:8px}
  .input-hint{font-size:10px}
}

/* Brahma assistant avatar uses the tenant mark */
.msg.assistant .msg-avatar{width:34px;height:34px;background:transparent;border:0;border-radius:10px;overflow:hidden}
.msg-avatar img{width:100%;height:100%;object-fit:cover;display:block;border-radius:10px}

/* BistroStays guest avatar uses the brand logo uploaded in Platform Settings */
.msg.user .msg-avatar{ background:#fff; border:1px solid var(--line); padding:3px; }
.msg.user .msg-avatar img{ object-fit:contain; }

/* composer: vertically centre the placeholder with the send button
   (was: align-items:flex-end + 20px textarea against a 32px button) */
.inputbox{ align-items:center; padding:6px 8px 6px 14px; }
.inputbox textarea{ min-height:20px; padding:6px 0; line-height:1.45; }
