:root{
  --bg:#090b0c;--panel:#0e1112;--panel2:#121617;--ink:#f2f0e9;--muted:#91999a;--line:#2b3133;--line2:#3d4547;
  --red:#ef5d48;--green:#a9e2a3;--amber:#d8b96a;--danger:#ff806d;--max:1480px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);background:var(--bg);color-scheme:dark;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}body{min-width:320px}
button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}
::selection{background:var(--red);color:#090b0c}.mono{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace}.muted{color:var(--muted)}
.app{min-height:100vh;background:
 linear-gradient(rgba(255,255,255,.013) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.009) 1px,transparent 1px),var(--bg);
 background-size:42px 42px;}
.topbar{height:66px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;background:rgba(9,11,12,.95);backdrop-filter:blur(14px);z-index:20}
.brand{font:700 14px/1 "SFMono-Regular",Consolas,monospace;letter-spacing:.06em}.brand span{color:var(--red)}
.topstatus{display:flex;align-items:center;gap:18px;color:var(--muted);font:12px/1.2 "SFMono-Regular",Consolas,monospace}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#596163;margin-right:8px}.dot.online{background:var(--green);box-shadow:0 0 12px rgba(169,226,163,.25)}
.shell{width:min(var(--max),calc(100% - 32px));margin:0 auto}.install-wrap,.onboard-wrap{padding:52px 0 72px;max-width:980px;margin:auto}
.eyebrow{font:12px/1.3 "SFMono-Regular",Consolas,monospace;color:var(--green);letter-spacing:.07em;text-transform:uppercase}.hero-title{font:800 clamp(44px,8vw,104px)/.9 "SFMono-Regular",Consolas,monospace;letter-spacing:-.07em;margin:18px 0 22px}.hero-title small{display:block;font-size:.27em;letter-spacing:.06em;color:var(--muted);margin-top:20px}.lead{font-size:19px;line-height:1.7;max-width:760px;color:#c8ccca}
.rule{height:1px;background:var(--line);margin:36px 0}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.feature{background:var(--panel);padding:22px;min-height:150px}.feature b{display:block;font:700 13px/1.3 "SFMono-Regular",Consolas,monospace;margin-bottom:16px}.feature p{margin:0;color:var(--muted);line-height:1.55;font-size:14px}
.btn{min-height:44px;border:1px solid var(--line2);background:#111516;padding:0 16px;font:700 12px/1 "SFMono-Regular",Consolas,monospace;letter-spacing:.04em;text-transform:uppercase}.btn:hover{border-color:#687173}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.red{background:var(--red);color:#0a0b0c;border-color:var(--red)}.btn.ghost{background:transparent}.btn.danger{border-color:#6b3730;color:#ff9a89}.btn:disabled{opacity:.45;cursor:not-allowed}.actions{display:flex;gap:10px;flex-wrap:wrap}.install-cta{margin-top:32px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.fine{font-size:12px;color:var(--muted);line-height:1.5}
.panel{border:1px solid var(--line);background:rgba(14,17,18,.9)}.panel-head{padding:14px 16px;border-bottom:1px solid var(--line);font:12px/1.2 "SFMono-Regular",Consolas,monospace;color:var(--green)}.panel-body{padding:22px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:8px}.field label{font:11px/1.2 "SFMono-Regular",Consolas,monospace;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}.input,.textarea{width:100%;border:1px solid var(--line2);background:#0a0d0e;min-height:46px;padding:11px 12px;outline:none}.textarea{min-height:96px;resize:vertical}.input:focus,.textarea:focus{border-color:#758083;box-shadow:0 0 0 1px #758083}.hint{font-size:12px;color:var(--muted);line-height:1.5}.error{color:#ff9584}.success{color:var(--green)}
.progress{height:4px;background:#202527;margin:18px 0}.progress>i{display:block;height:100%;background:var(--red);transition:width .25s ease}
.question{padding:24px;border:1px solid var(--line);background:var(--panel)}.question h2{font-size:26px;line-height:1.25;margin:8px 0 12px}.question-meta{font:11px/1.2 "SFMono-Regular",Consolas,monospace;color:var(--muted)}.checkline{display:flex;gap:12px;align-items:flex-start;margin:18px 0}.checkline input{width:20px;height:20px;margin-top:2px;accent-color:var(--red)}
.mesh{display:grid;grid-template-columns:270px minmax(0,1fr) 260px;height:calc(100vh - 66px);min-height:580px}.rail{border-right:1px solid var(--line);background:rgba(10,13,14,.92);overflow:auto}.rail.right{border-right:0;border-left:1px solid var(--line)}.rail-section{padding:18px 14px 12px}.rail-title{font:11px/1.2 "SFMono-Regular",Consolas,monospace;color:var(--muted);letter-spacing:.07em;margin:0 0 10px;text-transform:uppercase}.navitem{width:100%;border:0;background:transparent;color:#cbd0cd;text-align:left;padding:11px 10px;display:flex;gap:10px;align-items:center;border-left:2px solid transparent}.navitem:hover{background:#101415}.navitem.active{background:#15191a;border-left-color:var(--red);color:#fff}.navitem .statusdot{width:7px;height:7px;border-radius:50%;background:#596163;flex:0 0 auto}.navitem .statusdot.online{background:var(--green)}.navitem small{margin-left:auto;color:var(--muted);font:10px/1 "SFMono-Regular",Consolas,monospace}.rail-btn{margin:6px 14px 16px;width:calc(100% - 28px)}
.mainpane{min-width:0;display:flex;flex-direction:column;background:rgba(9,11,12,.55)}.chathead{height:66px;border-bottom:1px solid var(--line);padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:14px}.chathead h1{font-size:16px;margin:0}.chathead .sub{font-size:11px;color:var(--muted);font-family:monospace;margin-top:3px}.messages{flex:1;overflow:auto;padding:22px;display:flex;flex-direction:column;gap:14px}.message{max-width:min(720px,84%);border-left:2px solid var(--line2);padding:8px 12px 10px;background:rgba(18,22,23,.65)}.message.mine{margin-left:auto;border-left-color:var(--red)}.message .meta{font:10px/1.3 "SFMono-Regular",Consolas,monospace;color:var(--muted);margin-bottom:6px}.message .text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.message.pending{opacity:.62}.systemmsg{font:11px/1.5 "SFMono-Regular",Consolas,monospace;color:var(--muted);text-align:center;padding:8px}
.composer{border-top:1px solid var(--line);padding:12px;display:flex;gap:10px;align-items:flex-end;background:#0a0d0e}.composer textarea{flex:1;min-height:46px;max-height:150px;resize:none}.composer .btn{min-width:90px}.empty{margin:auto;padding:40px;text-align:center;max-width:620px}.empty .glyph{width:62px;height:62px;border:1px solid var(--line2);border-radius:50%;margin:0 auto 20px;display:grid;place-items:center;font:700 20px/1 monospace;color:var(--red)}.empty h2{font-size:26px;margin:0 0 12px}.empty p{color:var(--muted);line-height:1.6}
.metric{padding:14px;border-bottom:1px solid var(--line)}.metric label{display:block;font:10px/1.2 "SFMono-Regular",Consolas,monospace;color:var(--muted);margin-bottom:6px}.metric b{font:700 14px/1.2 "SFMono-Regular",Consolas,monospace}.meter{height:5px;background:#202527;margin-top:8px}.meter i{display:block;height:100%;background:var(--green)}
.toolbar{display:flex;gap:8px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;border:1px solid var(--line2);padding:5px 8px;font:10px/1 "SFMono-Regular",Consolas,monospace;color:var(--muted)}.badge.good{color:var(--green);border-color:#38523b}.badge.warn{color:var(--amber);border-color:#5d5235}
.modalback{position:fixed;inset:0;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:20px;z-index:50}.modal{width:min(600px,100%);max-height:90vh;overflow:auto;border:1px solid var(--line2);background:#0d1011}.modalhead{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modalhead h2{font:700 14px/1.2 "SFMono-Regular",Consolas,monospace;margin:0}.modalbody{padding:20px}.closex{border:0;background:transparent;font-size:24px;color:var(--muted)}
.searchresult{border:1px solid var(--line);padding:14px;margin-top:12px;display:flex;align-items:center;gap:12px}.avatar{width:38px;height:38px;border:1px solid var(--line2);display:grid;place-items:center;font:700 12px/1 monospace;color:var(--red)}.searchresult .grow{flex:1;min-width:0}.searchresult b{display:block}.searchresult small{color:var(--muted);font-family:monospace}.toastwrap{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:80}.toast{border:1px solid var(--line2);background:#111516;padding:12px 14px;max-width:360px;font-size:13px;box-shadow:0 8px 28px rgba(0,0,0,.35)}
.mobiletabs{display:none}.install-note{border-left:2px solid var(--red);padding:12px 16px;background:#111516;margin-top:22px;color:#c8ccca;line-height:1.55}.kbd{font:11px/1 monospace;border:1px solid var(--line2);padding:3px 5px;background:#121617}.privacy-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}.privacy-row{display:grid;grid-template-columns:1fr auto;gap:16px;background:var(--panel);padding:14px}.privacy-row strong{font-size:13px}.privacy-row span{font:11px/1.2 monospace;color:var(--green)}
@media(max-width:980px){.mesh{grid-template-columns:220px minmax(0,1fr)}.rail.right{display:none}.grid3{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}}
@media(max-width:720px){.shell{width:min(100% - 20px,var(--max))}.topbar{padding:0 12px}.topstatus .desktoponly{display:none}.hero-title{font-size:54px}.lead{font-size:17px}.install-wrap,.onboard-wrap{padding:34px 0 54px}.mesh{display:block;height:calc(100vh - 122px);min-height:0}.rail{display:none}.rail.mobile-show{display:block;height:100%;border-right:0}.mainpane{height:100%}.mobiletabs{height:56px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);position:fixed;left:0;right:0;bottom:0;background:#0a0d0e;z-index:25}.mobiletabs button{border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font:11px/1 monospace}.mobiletabs button.active{color:var(--ink);background:#141819}.message{max-width:92%}.chathead{height:60px}.messages{padding:14px}.composer{padding:9px}.composer .btn{min-width:72px}.topbar{height:58px}.mesh{height:calc(100vh - 114px)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* ---------- Privacy shield (v1.1): hide all content when unfocused ---------- */
body.shielded #app,
body.shielded .toastwrap {
  filter: blur(26px) saturate(0.1);
  opacity: 0.12;
  pointer-events: none;
  transition: filter 0.15s ease, opacity 0.15s ease;
}
body.shielded::after {
  content: "ASTER // MESH — CONTENT HIDDEN WHILE UNFOCUSED";
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono, monospace);
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  color: var(--accent, #00d4ff);
  text-align: center;
  padding: 0 2rem;
  z-index: 9999;
}

/* ---------- Presence status dialog (v1.3) ---------- */
.presence-dialog {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 1rem;
  border: 1px solid var(--line, rgba(255,255,255,0.08));
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.02);
  font-family: var(--mono, monospace);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  color: var(--muted, #606070);
  margin: 4px 0 18px;
}
.presence-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex: none;
}
.presence-dot.online {
  background: var(--green, #3ad07a);
  box-shadow: 0 0 8px var(--green, #3ad07a);
  animation: presence-pulse 2.4s ease-in-out infinite;
}
.presence-dot.checking {
  background: var(--amber, #f0ad4e);
  animation: presence-pulse 1.2s ease-in-out infinite;
}
.presence-dot.offline {
  background: var(--danger, #e5484d);
  opacity: 0.7;
}
@keyframes presence-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}
