@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* ══ Qontra brand tokens (QONTRA-ORG-001) ══
   Same palette CAD Inspector and Lab use. --cyan/--sw/--bdr/--bdr2/--pbg/
   --red/--amber/--green are the exact variable names the ported Bridge
   chat CSS below already references — kept as-is so none of that CSS had
   to be rewritten, just repointed at the current brand hex values. */
:root{
  --near-black:#05070A;
  --navy:#0B1C2C;
  --graphite:#2A2F36;
  --cyan:#00C2FF;
  --sw:#E6EDF3;
  --red:#EF4444;
  --amber:#FBBF24;
  --green:#4ADE80;
  --bdr:rgba(0,194,255,0.16);
  --bdr2:rgba(0,194,255,0.08);
  --pbg:rgba(11,28,44,0.85);
}

*{ box-sizing:border-box; margin:0; padding:0; }

html,body{
  height:100%; width:100%; position:fixed;
  background:var(--near-black); color:var(--sw);
  font-family:'Space Grotesk', sans-serif;
  overflow:hidden; overscroll-behavior:none;
}

.ui-icon{width:13px;height:13px;object-fit:contain;vertical-align:-2px;margin-right:3px;}
.ui-icon.close{width:11px;height:11px;margin-right:0;opacity:0.7;cursor:pointer;}
.ui-icon.close:hover{opacity:1;}

/* ── AUTH GATE ── */
#auth-gate{position:fixed;inset:0;z-index:99999;background:
  radial-gradient(1200px 700px at 15% -10%, rgba(0,194,255,0.08), transparent 60%),
  var(--near-black);display:flex;align-items:center;justify-content:center;}
.gate-card{width:min(360px,86vw);text-align:center;padding:32px 24px;border:1px solid rgba(0,194,255,0.2);
  border-radius:4px;background:rgba(11,28,44,0.5);}
.gate-mark{width:44px;height:44px;margin:0 auto 16px;border-radius:8px;
  background:linear-gradient(135deg,var(--cyan),rgba(0,194,255,0.15));
  display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;
  font-weight:700;font-size:16px;color:#05070A;}
.gate-title{font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:700;color:var(--sw);margin-bottom:8px;}
.gate-sub{font-size:12px;line-height:1.6;color:rgba(230,237,243,0.55);margin-bottom:20px;}
.gate-btn{display:inline-block;padding:10px 22px;border-radius:2px;
  background:linear-gradient(135deg,rgba(0,194,255,0.18),rgba(0,194,255,0.05));
  border:1px solid var(--cyan);color:var(--cyan);font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:1.5px;text-decoration:none;}
.gate-spinner{width:20px;height:20px;border-radius:50%;border:2px solid rgba(0,194,255,0.2);
  border-top-color:var(--cyan);margin:0 auto;animation:gatespin .8s linear infinite;}
@keyframes gatespin{to{transform:rotate(360deg);}}

/* ── APP SHELL ── */
#app-root{display:none;flex-direction:column;height:100%;width:100%;}
#topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 18px;border-bottom:1px solid var(--bdr);flex-shrink:0;
}
#brand .system{font-size:14px;font-weight:700;letter-spacing:0.06em;}
#brand .system span{color:var(--cyan);}
#topbar-right{display:flex;align-items:center;gap:14px;}
.topbar-exit{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:1px;color:rgba(230,237,243,0.5);text-decoration:none;border:1px solid var(--bdr2);border-radius:8px;padding:5px 10px;transition:all 0.12s;}
.topbar-exit:hover{color:var(--cyan);border-color:var(--cyan);}

/* ── Generic modal chrome (create-conversation + profile modals) ── */
.panel{position:fixed;z-index:400;background:var(--pbg);border:1px solid var(--bdr);border-radius:16px;backdrop-filter:blur(20px);box-shadow:0 8px 40px rgba(0,0,0,0.7),0 0 0 1px rgba(0,194,255,0.03) inset;display:flex;flex-direction:column;overflow:hidden;left:50%;top:50%;transform:translate(-50%,-50%);}
.ph{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:rgba(0,194,255,0.05);border-bottom:1px solid var(--bdr);gap:8px;flex-shrink:0;}
.pt{font-family:'Inter',sans-serif;font-size:9px;font-weight:700;color:var(--cyan);letter-spacing:2px;}
.pc{width:16px;height:16px;border-radius:50%;background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.3);color:rgba(239,68,68,0.7);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:9px;transition:all 0.12s;flex-shrink:0;}
.pc:hover{background:rgba(239,68,68,0.25);color:#fff;}
.pb{padding:10px;overflow-y:auto;flex:1;min-height:0;}
.pb::-webkit-scrollbar{width:3px;}.pb::-webkit-scrollbar-thumb{background:rgba(0,194,255,0.15);border-radius:6px;}

/* FORM */
.fl{font-family:'JetBrains Mono',monospace;font-size:9px;color:rgba(0,194,255,0.5);letter-spacing:1px;margin-bottom:3px;display:block;}
.fi{width:100%;padding:5px 8px;border-radius:8px;background:rgba(0,0,0,0.4);border:1px solid rgba(0,194,255,0.15);color:var(--sw);font-family:'JetBrains Mono',monospace;font-size:11px;outline:none;transition:border-color 0.15s;margin-bottom:7px;}
.fi:focus{border-color:var(--cyan);}

/* ── QOSE BRIDGE (ported verbatim from Reborn/Brutal — same feature, same data) ── */
.bridge-list{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:8px;margin:4px 0 8px;padding-right:2px;}
.bridge-empty{font-family:'JetBrains Mono',monospace;font-size:9px;color:rgba(230,237,243,0.35);text-align:center;padding:20px 0;}
.bridge-msg{background:rgba(0,194,255,0.05);border:1px solid var(--bdr2);border-radius:10px;padding:6px 8px;}
.bridge-msg.mine{background:rgba(0,194,255,0.1);border-color:rgba(0,194,255,0.25);}
.bridge-msg-head{display:flex;align-items:baseline;gap:6px;margin-bottom:3px;flex-wrap:wrap;}
.bridge-msg-author{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:var(--cyan);cursor:pointer;}
.bridge-msg-author:hover{text-decoration:underline;}
.bridge-msg-org{font-family:'JetBrains Mono',monospace;font-size:7px;color:rgba(230,237,243,0.4);letter-spacing:0.5px;}
.bridge-msg-time{font-family:'JetBrains Mono',monospace;font-size:7px;color:rgba(230,237,243,0.3);margin-left:auto;}
.bridge-msg-body{font-family:'Inter',sans-serif;font-size:11px;color:var(--sw);line-height:1.4;word-break:break-word;white-space:pre-wrap;}
.bridge-inputrow{display:flex;gap:6px;flex-shrink:0;border-top:1px solid var(--bdr2);padding-top:8px;}
.bridge-input{flex:1;resize:none;background:rgba(0,194,255,0.04);border:1px solid rgba(0,194,255,0.15);border-radius:8px;color:var(--sw);font-family:'Inter',sans-serif;font-size:11px;padding:6px 8px;max-height:60px;}
.bridge-input:focus{outline:none;border-color:var(--cyan);}
.bridge-send{background:rgba(0,194,255,0.1);border:1px solid var(--cyan);color:var(--cyan);font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:1px;border-radius:20px;padding:0 12px;cursor:pointer;transition:all 0.15s;}
.bridge-send:hover{background:var(--cyan);color:#000;}
.bridge-myprofile-link{font-family:'JetBrains Mono',monospace;font-size:8px;letter-spacing:1px;color:rgba(0,194,255,0.6);cursor:pointer;white-space:nowrap;display:flex;align-items:center;}
.bridge-myprofile-link:hover{color:var(--cyan);}
.bridge-profile-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:700;display:none;align-items:center;justify-content:center;}
.bridge-profile-backdrop.active{display:flex;}
.bridge-profile-modal{position:relative;width:min(90vw,380px);max-height:80vh;}
.bp-field{margin-bottom:12px;}
.bp-label{display:block;font-family:'JetBrains Mono',monospace;font-size:8px;letter-spacing:2px;color:rgba(0,194,255,0.4);margin-bottom:3px;}
.bp-value{font-family:'Inter',sans-serif;font-size:13px;color:var(--sw);}
.bp-bio-text{font-family:'Inter',sans-serif;font-size:12px;color:var(--sw);line-height:1.4;white-space:pre-wrap;word-break:break-word;}
.bridge-avatar-tiny{width:16px;height:16px;object-fit:contain;vertical-align:-3px;margin-right:2px;border-radius:6px;}
.bridge-msg-avatar{width:14px;height:14px;cursor:pointer;}
.bp-avatar-picker{display:flex;gap:8px;flex-wrap:wrap;}
#bp-avatar-picker img{width:44px;height:44px;object-fit:contain;padding:4px;border:1px solid var(--bdr2);border-radius:10px;cursor:pointer;background:rgba(0,194,255,0.03);transition:all 0.12s;}
#bp-avatar-picker img:hover{border-color:rgba(0,194,255,0.4);}
#bp-avatar-picker img.selected{border-color:var(--cyan);background:rgba(0,194,255,0.1);box-shadow:0 0 0 1px var(--cyan);}

.bridge-mode-toggle{display:flex;gap:4px;margin-bottom:8px;flex-shrink:0;}
.bridge-mode-btn{flex:1;text-align:center;padding:5px;font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:1px;border:1px solid var(--bdr2);color:rgba(230,237,243,0.4);cursor:pointer;border-radius:8px;}
.bridge-mode-btn.active{border-color:var(--cyan);color:var(--cyan);background:rgba(0,194,255,0.06);}
.bridge-inline-error{background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.4);color:#ff8080;font-family:'JetBrains Mono',monospace;font-size:9px;line-height:1.4;padding:8px;border-radius:8px;margin-bottom:8px;word-break:break-word;}

/* ══ BRIDGE v2 — 3-column layout ══
   Left sidebar (channels/DMs/groups), center chat, right members-or-
   directory panel. Same layout as the panel version, just filling the
   whole page below the topbar instead of a floating 1140px panel. */
.b2-layout{display:flex;min-height:0;flex:1;padding:0;gap:0;}

.b2-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--bdr2);padding:12px;box-sizing:border-box;}
.b2-search{margin-bottom:0;}
.b2-new-btn{width:100%;padding:7px;margin:8px 0 4px;text-align:center;}
.b2-sidebar-scroll{flex:1;overflow-y:auto;min-height:0;margin-top:4px;}
.b2-sidebar-section{font-family:'JetBrains Mono',monospace;font-size:7.5px;letter-spacing:2px;color:rgba(0,194,255,0.35);margin:10px 0 4px;padding-bottom:2px;border-bottom:1px solid var(--bdr2);}
.b2-sidebar-section:first-child{margin-top:2px;}
.b2-item{display:flex;align-items:center;gap:7px;padding:6px 6px;border-radius:8px;cursor:pointer;font-family:'Inter',sans-serif;font-size:11px;color:rgba(230,237,243,0.75);transition:background 0.12s;}
.b2-item:hover{background:rgba(0,194,255,0.05);}
.b2-item.active{background:rgba(0,194,255,0.1);color:var(--sw);}
.b2-item-icon{width:14px;text-align:center;flex-shrink:0;color:rgba(0,194,255,0.5);font-family:'JetBrains Mono',monospace;font-size:11px;}
.b2-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.b2-badge{background:var(--cyan);color:#000;font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;border-radius:10px;padding:1px 6px;flex-shrink:0;}
.b2-empty-hint{font-family:'JetBrains Mono',monospace;font-size:8.5px;color:rgba(230,237,243,0.3);padding:6px 4px;text-align:center;}
.b2-avatar{width:24px;height:24px;object-fit:contain;border-radius:8px;flex-shrink:0;background:rgba(0,194,255,0.05);}

.b2-chat{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;}
.b2-chat-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--bdr2);flex-shrink:0;}
.b2-chat-title{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1px;color:var(--sw);}
.b2-pill{font-family:'JetBrains Mono',monospace;font-size:7px;letter-spacing:1px;color:rgba(0,194,255,0.7);border:1px solid var(--bdr2);border-radius:8px;padding:2px 7px;}
.b2-messages{flex:1;overflow-y:auto;min-height:0;padding:14px 16px;display:flex;flex-direction:column;gap:12px;}
.b2-empty-state{font-family:'JetBrains Mono',monospace;font-size:9px;color:rgba(230,237,243,0.3);text-align:center;padding:30px 0;}
.b2-msg{display:flex;gap:9px;align-items:flex-start;}
.b2-msg .b2-avatar{width:28px;height:28px;cursor:pointer;}
.b2-msg-body{flex:1;min-width:0;}
.b2-msg-head{display:flex;align-items:baseline;gap:6px;margin-bottom:2px;flex-wrap:wrap;}
.b2-msg-author{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:var(--cyan);cursor:pointer;}
.b2-msg-author:hover{text-decoration:underline;}
.b2-msg-org{font-family:'JetBrains Mono',monospace;font-size:7.5px;color:rgba(230,237,243,0.4);letter-spacing:0.5px;}
.b2-msg-time{font-family:'JetBrains Mono',monospace;font-size:7.5px;color:rgba(230,237,243,0.3);margin-left:auto;}
.b2-msg-content{font-family:'Inter',sans-serif;font-size:12px;color:var(--sw);line-height:1.45;word-break:break-word;white-space:pre-wrap;}
.b2-inputrow{margin:0 16px 14px;flex-shrink:0;}

.b2-rightpanel{width:230px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--bdr2);padding:12px;box-sizing:border-box;}
.b2-rp-tabs{margin-bottom:8px;}
.b2-rp-content{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:2px;}
.b2-rp-member{display:flex;align-items:center;gap:8px;padding:6px;border-radius:8px;cursor:pointer;transition:background 0.12s;}
.b2-rp-member:hover{background:rgba(0,194,255,0.05);}
.b2-rp-member-name{font-family:'Inter',sans-serif;font-size:11px;color:var(--sw);}
.b2-rp-member-org{font-family:'JetBrains Mono',monospace;font-size:7.5px;color:rgba(230,237,243,0.4);}

.b2-userlist{max-height:280px;overflow-y:auto;margin:4px 0 8px;}
.b2-userpick{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:8px;cursor:pointer;transition:background 0.12s;}
.b2-userpick:hover{background:rgba(0,194,255,0.05);}
.b2-userpick.selected{background:rgba(0,194,255,0.1);}
.b2-userpick-name{font-family:'Inter',sans-serif;font-size:11px;color:var(--sw);flex:1;}
.b2-userpick-check{width:16px;text-align:center;color:var(--cyan);font-size:12px;flex-shrink:0;}
.b2-error{background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.4);color:#ff8080;font-family:'JetBrains Mono',monospace;font-size:9px;line-height:1.4;padding:8px;border-radius:8px;margin-top:4px;word-break:break-word;}

.brand-logo{height:24px;width:auto;max-width:180px;object-fit:contain;}
