*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial}

.topbar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #eee}
.brand{font-weight:700}
.status{padding:6px 10px;background:#f6f6f6;border-radius:10px;font-size:14px}
.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
button{padding:8px 12px;border:1px solid #ddd;background:#fff;border-radius:10px;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
.toggle{display:flex;gap:6px;align-items:center;font-size:13px;color:#444}

.layout{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;padding:16px;height:calc(100vh - 58px)}
.videoPane,.chatPane{border:1px solid #eee;border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.videoHost{flex:1;background:#000;display:flex;align-items:center;justify-content:center}
.videoHost video{width:100%;height:100%;object-fit:cover}
.videoHost audio{display:none}
.hint{padding:10px 12px;font-size:12px;color:#666;border-top:1px solid #eee;background:#fafafa}

.chatLog{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:10px;background:#fcfcfc}
.msg{max-width:92%;padding:10px 12px;border-radius:14px;border:1px solid #eee;background:#fff;white-space:pre-wrap;line-height:1.35}
.me{align-self:flex-end;border-color:#dfe8ff;background:#f5f8ff}
.bot{align-self:flex-start}
.meta{font-size:11px;color:#666;margin-top:6px}

.composer{display:flex;gap:8px;padding:12px;border-top:1px solid #eee;background:#fff}
.composer input{flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:12px}
.note{padding:10px 12px;color:#666;border-top:1px solid #eee;background:#fafafa;font-size:12px}

@media (max-width: 980px){
  .layout{grid-template-columns:1fr;height:auto}
}