/* Explicit height chains make the ticket list, chat, and context panel independently scrollable. */
html,body{height:100%}
body{overflow:hidden}
.app{height:100dvh;min-height:0;overflow:hidden}
.app>main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.app>main>header{flex:0 0 92px}
.view{min-height:0}
#inbox-view{flex:1;display:flex;flex-direction:column;overflow:hidden}
#policies-view{flex:1;overflow:auto}
.stats{flex:0 0 auto}
.workspace{flex:1;height:auto;min-height:0}
.ticket-list{min-height:0;display:flex;flex-direction:column;overflow:hidden}
.ticket-list .list-head{flex:0 0 auto}
#tickets{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.detail{min-height:0;overflow:hidden}
.visitor-head{flex:0 0 auto;align-items:flex-start}
.visitor-summary{min-width:0}
.visitor-summary p{overflow-wrap:anywhere}
.status-control{width:190px;flex:0 0 190px;display:grid;gap:4px;margin:0;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.status-control select{width:100%;padding:7px 10px;color:var(--ink);font-size:12px;text-transform:none;letter-spacing:normal}
.status-control small{min-height:14px;font-size:9px;font-weight:500;text-transform:none;letter-spacing:normal}
.visitor-body{min-height:0;overflow:hidden}
.conversation{min-height:0;overflow:hidden}
.conversation-label{flex:0 0 44px}
.conversation-label>div{display:flex;align-items:center;gap:10px}
.text-btn{border:0;background:transparent;color:var(--green);padding:4px;font-size:11px;font-weight:750;cursor:pointer}
.chat{min-height:0;overflow-y:scroll;overscroll-behavior:contain;scrollbar-gutter:stable;padding-bottom:24px}
.chat:focus-visible{outline:2px solid #4b9275;outline-offset:-2px}
.chat::-webkit-scrollbar,#tickets::-webkit-scrollbar,.visitor-360::-webkit-scrollbar{width:11px}
.chat::-webkit-scrollbar-thumb,#tickets::-webkit-scrollbar-thumb,.visitor-360::-webkit-scrollbar-thumb{background:#c5cec9;border:3px solid transparent;border-radius:10px;background-clip:padding-box}
.message{overflow-wrap:anywhere}
.bubble{white-space:pre-wrap}
.chat-empty{height:100%;display:grid;place-items:center;color:var(--muted)}
.composer{position:relative;flex:0 0 auto;align-items:flex-end;background:#fff}
.composer textarea{flex:1;min-width:0;max-height:120px;resize:none;line-height:1.4}
.composer button{min-width:76px}
.composer button:disabled{opacity:.65;cursor:wait}
.composer-error{position:absolute;left:15px;bottom:2px;margin:0;color:#b63838;font-size:10px}
.visitor-360{min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable}
.badge.status{background:#f4f1e7;color:#6b5a20}
.badge.status.active{background:#dff3e9;color:#155b41}
.badge.status.resolved{background:#edf0ee;color:#66716b}
.urgent-label{color:#a54c20;text-transform:uppercase;font-size:9px;letter-spacing:.05em}
.pulse.resolved,.presence.resolved{background:#9aa59f;box-shadow:0 0 0 3px #edf0ee}

/* Multi-tenant workspace */
.tenant-card{margin:0 8px 22px;padding:12px;border:1px solid #ffffff12;border-radius:10px;background:#ffffff08}.tenant-card small{display:block;color:#7f9489;font-size:9px;letter-spacing:.14em}.tenant-card strong{display:block;margin-top:3px;color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar nav{gap:3px}.optional{float:right;color:var(--muted);font-size:11px;font-weight:400}.header-actions{display:flex;align-items:center;gap:12px}.presence-select{display:flex;align-items:center;gap:7px;margin:0;color:var(--muted);font-size:11px}.presence-select select{padding:7px 25px 7px 9px;border-radius:20px}.inbox-toolbar{height:52px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.queue-tabs{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#fff}.queue-tab{border:0;border-radius:7px;padding:8px 11px;background:transparent;color:var(--muted);cursor:pointer;font-weight:650}.queue-tab.active{background:#e8f3ed;color:var(--green)}.queue-tab b{margin-left:5px;font-size:10px}.inbox-toolbar+.workspace{height:calc(100vh - 188px)}.conversation-actions{display:flex;align-items:flex-start;gap:8px}.conversation-actions label{margin:0}.assignment-control,.status-control{font-size:10px;color:var(--muted)}.assignment-control select,.status-control select{min-width:120px;padding:8px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-head h3{font:28px Georgia;margin:0}.section-head p{margin:4px 0;color:var(--muted)}.agent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}.agent-card{padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff}.agent-card-head{display:flex;align-items:center;gap:11px}.agent-card h3{margin:0}.agent-card p{margin:2px 0;color:var(--muted);font-size:12px}.agent-photo{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:#dff0e7;color:#165b40;font-weight:800}.presence-label{margin-left:auto;padding:4px 8px;border-radius:20px;background:#edf0ee;color:#65716b;font-size:10px;text-transform:capitalize}.presence-label.available{background:#daf2e4;color:#176b4b}.presence-label.away{background:#fff1d8;color:#8b5d13}.agent-card dl{display:grid;grid-template-columns:1fr auto;gap:7px;margin:17px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:12px}.agent-card dt{color:var(--muted)}.agent-card dd{margin:0;font-weight:700}.you-label{display:block;margin-top:12px;color:var(--green);font-weight:700}.drawer{position:fixed;z-index:20;top:0;right:0;width:min(420px,100%);height:100vh;padding:26px;background:#fff;border-left:1px solid var(--line);box-shadow:-20px 0 60px #13281e18}.integration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.integration-grid article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:20px;border:1px solid var(--line);border-radius:13px;background:#fff}.integration-grid h3{margin:0}.integration-grid p{margin:4px 0 0;color:var(--muted)}.integration-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:#dff0e7;color:var(--green);font-weight:900}.integration-icon.slack{background:#f0e8f6;color:#6f348c}.connection-pill{padding:5px 9px;border-radius:20px;background:#edf0ee;color:#66716b;font-size:10px;font-weight:800}.connection-pill.connected{background:#daf2e4;color:#176b4b}
@media(max-width:900px){.tenant-card{display:none}.conversation-actions{flex-wrap:wrap}.header-actions .presence-select{display:none}}
.diagnostics{margin-top:18px;border-top:1px solid var(--line)}.diagnostics summary{display:flex;align-items:center;justify-content:space-between;padding:14px 0;cursor:pointer;color:var(--muted);font-size:13px;font-weight:700;list-style:none}.diagnostics summary::-webkit-details-marker{display:none}.diagnostics summary::after{content:'›';margin-left:8px;transform:rotate(90deg);transition:transform .15s ease}.diagnostics[open] summary::after{transform:rotate(-90deg)}.diagnostics summary b{margin-left:auto;min-width:22px;padding:2px 7px;border-radius:999px;background:#eef2ef;color:var(--ink);text-align:center}.diagnostics-body{padding-bottom:10px}.diagnostics-body>p{margin:0 0 12px;overflow-wrap:anywhere}
.connection-list{display:grid;gap:12px;margin-bottom:28px}.connection-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--line);border-radius:13px;background:#fff}.connection-main>div{display:flex;align-items:center;gap:9px}.connection-main h3{margin:0}.connection-main p{margin:6px 0 3px;color:var(--muted)}.connection-main small{color:var(--muted)}.connection-actions{display:flex;gap:7px}.connection-pill.waiting{background:#fff1d8;color:#8b5d13}.connection-pill.revoked{background:#f6e5e5;color:#9d3838}.integration-empty{padding:34px;border:1px dashed #b9c8c0;border-radius:14px;background:#fbfcfb;text-align:center}.integration-empty .integration-icon{margin:0 auto 12px}.integration-empty h3{margin:0}.integration-empty p{margin:6px 0 16px;color:var(--muted)}.secondary-integrations{margin-top:8px}.wizard-backdrop{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:20px;background:#0c2017a8;backdrop-filter:blur(3px)}.wizard{width:min(680px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:26px;border-radius:16px;background:#fff;box-shadow:0 28px 90px #07160f55}.wizard .form-title{margin-bottom:14px}.wizard .form-title h3{font:28px Georgia;margin:2px 0}.wizard-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 22px}.wizard-steps span{padding:9px;border-bottom:3px solid #e4e9e6;color:var(--muted);font-size:11px;font-weight:750}.wizard-steps span.active{border-color:var(--green);color:var(--green)}.wizard-panel{display:grid;gap:16px}.wizard-lead{margin:0;color:var(--muted)}.wizard label small{display:block;margin-top:5px;color:var(--muted);font-weight:400}.secret-warning{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:10px;background:#fff3d8;color:#714c0c}.secret-warning span{font-size:12px}.copy-field{display:flex;align-items:center;gap:8px;margin-top:6px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#f7f9f8}.copy-field code,.copy-field pre{min-width:0;flex:1;margin:0;overflow:auto;color:#1b3327;font:12px/1.45 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.copy-field button{flex:0 0 auto;border:0;background:transparent;color:var(--green);font-weight:750;cursor:pointer}.copy-field.multiline{align-items:flex-start}.install-details{border-top:1px solid var(--line);padding-top:12px}.install-details summary{cursor:pointer;color:var(--green);font-weight:750}.verify-state{padding:38px 20px;text-align:center;border:1px solid var(--line);border-radius:13px;background:#f8faf9}.verify-state i{display:block;width:34px;height:34px;margin:0 auto 15px;border:4px solid #dce5e0;border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}.verify-state.success i{position:relative;border:0;background:#daf2e4;animation:none}.verify-state.success i::after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#176b4b;font-weight:900}.verify-state h3{margin:0}.verify-state p{margin:7px 0 0;color:var(--muted)}
.icon-btn.spinning{animation:spin .65s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

@media(max-height:700px) and (min-width:651px){
  .app>main>header{height:70px;flex-basis:70px}
  header h2{font-size:24px}
  .view{padding:14px 18px}
  .stats{margin-bottom:12px}
  .stats article{padding:10px 14px}
  .stats b{font-size:24px;margin:1px 0}
  .stats small{display:none}
}
@media(max-width:650px){
  body{overflow:auto}
  .app{height:auto;min-height:100dvh;overflow:visible}
  .app>main{min-height:100dvh;overflow:visible}
  .app>main>header{height:74px;flex-basis:74px;position:sticky;top:0;z-index:5}
  #inbox-view,#policies-view{overflow:visible}
  .workspace{overflow:visible}
  .ticket-list{max-height:240px;border-bottom:1px solid var(--line);overflow:hidden}
  .detail{height:max(500px,calc(100dvh - 110px));min-height:500px}
  .detail{scroll-margin-top:78px}
  .visitor-head{gap:10px;align-items:stretch;flex-direction:column}
  .status-control{width:100%;flex-basis:auto;grid-template-columns:1fr 1fr;align-items:center}
  .status-control small{grid-column:1/-1}
  .conversation-label{padding:0 12px}
  .composer{padding:10px}
  .connection-card{grid-template-columns:auto 1fr}.connection-actions{grid-column:1/-1}.wizard{padding:20px}.secret-warning{display:grid}
}
