/* CrashVerse Community — cosmic IRC client. Deliberate single dark look. */
:root{
  --bg:#070912; --panel:#0e1120; --panel-2:#141a2e; --line:#242c48; --line-soft:#1a2038;
  --fg:#e9edfb; --muted:#8b93b4; --faint:#5b6480;
  --accent:#4fd6ff; --accent-2:#79f3ad; --magenta:#ff5fa2; --warn:#ffcf63;
  --n1:#4fd6ff; --n2:#ff8fc4; --n3:#b69bff; --n4:#ffc861; --n5:#6ee7c8; --n6:#ff9e7a;
  color-scheme:dark;
  /* System fonts only — gateway CSP blocks external/custom faces. */
  --f-display:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --f-ui:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-ui);font-size:14px;overflow:hidden}
button{font-family:inherit;color:inherit;cursor:pointer}
::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.app{display:grid;grid-template-columns:264px 1fr 236px;height:100%}
.rail,.members{background:var(--panel);min-width:0;display:flex;flex-direction:column}
.rail{border-right:1px solid var(--line)}
.members{border-left:1px solid var(--line)}
.stream{min-width:0;display:flex;flex-direction:column;
  background:
   radial-gradient(120% 80% at 90% -10%, color-mix(in srgb,var(--accent) 7%,transparent), transparent 60%),
   radial-gradient(90% 70% at -10% 110%, color-mix(in srgb,var(--magenta) 7%,transparent), transparent 55%),
   var(--bg)}

/* brand */
.brand{display:flex;align-items:center;gap:11px;padding:16px 16px 14px;border-bottom:1px solid var(--line-soft)}
.glyph{width:30px;height:30px;flex:0 0 auto}
.brand-txt{min-width:0}
.wordmark{font-family:var(--f-display);font-weight:700;letter-spacing:.14em;font-size:14px;line-height:1}
.wordmark b{color:var(--fg)} .wordmark i{color:var(--magenta);font-style:normal}
.brand-sub{font-size:10px;letter-spacing:.34em;color:var(--muted);margin-top:5px;text-transform:uppercase}

/* channels */
.rail-scroll{overflow-y:auto;flex:1;padding:10px 10px 4px}
.rail-label{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);padding:10px 8px 6px}
.chan{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;text-align:left;
      padding:8px 10px;border-radius:9px;color:var(--muted);font-size:13.5px;line-height:1;margin-bottom:1px}
.chan:hover{background:var(--panel-2);color:var(--fg)}
.chan .hash{color:var(--faint);font-family:var(--f-mono);font-weight:700}
.chan-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chan.active{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--fg);box-shadow:inset 2px 0 0 var(--accent)}
.chan.active .hash{color:var(--accent)}

/* status */
.status{border-top:1px solid var(--line-soft);padding:12px 14px;display:flex;flex-direction:column;gap:9px}
.me{display:flex;align-items:flex-start;gap:10px;min-width:0}
.dot{width:9px;height:9px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-2) 22%,transparent);flex:0 0 auto;margin-top:3px}
.dot.sm{width:7px;height:7px;box-shadow:none;margin:0}
.me-info{min-width:0}
.me-nick{font-family:var(--f-mono);font-weight:700;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-note{font-size:11px;color:var(--faint);margin-top:2px;line-height:1.35}
.status-row{display:flex;gap:8px}
.mini{flex:1;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:8px;
  padding:9px 10px;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;font-family:var(--f-display);
  text-align:center;text-decoration:none;min-height:0}
.mini:hover{border-color:var(--accent);color:var(--fg)}
.mini.primary{background:var(--accent);color:#03141c;border-color:var(--accent);font-weight:700}
.mini.primary:hover{filter:brightness(1.08);color:#03141c}

/* stream header */
.sh{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--panel) 60%,transparent);backdrop-filter:blur(6px);flex:0 0 auto}
.icon-btn{display:none;border:1px solid var(--line);background:var(--panel);border-radius:8px;width:34px;height:34px;align-items:center;justify-content:center;flex:0 0 auto}
.icon-btn svg{width:17px;height:17px;stroke:var(--fg)}
.sh-main{min-width:0;flex:1}
.sh-title{font-family:var(--f-mono);font-weight:700;font-size:16px;display:flex;align-items:baseline;gap:7px}
.sh-title .hash{color:var(--accent)}
.sh-topic{font-size:12px;color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-count{font-family:var(--f-mono);font-size:12px;color:var(--muted);white-space:nowrap;display:flex;align-items:center;gap:6px}

/* gate (pre-login) */
.gate{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px}
.gate-glyph{width:56px;height:56px}
.gate h2{font-family:var(--f-display);font-weight:700;letter-spacing:.04em;margin:4px 0 0}
.gate p{color:var(--muted);max-width:40ch;line-height:1.5;margin:0}
.gate-cta{margin-top:6px;background:var(--accent);color:#03141c;font-family:var(--f-display);font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;font-size:13px;border-radius:11px;padding:13px 22px;text-decoration:none}
.gate-cta:hover{filter:brightness(1.08)}

/* chat */
#chat{flex:1;min-height:0;display:flex;flex-direction:column}
#chat[hidden]{display:none!important}
#messages{flex:1;min-height:0;overflow-y:auto;list-style:none;margin:0;padding:14px 18px 8px;
  font-family:var(--f-mono);font-size:13px;line-height:1.6;scrollbar-width:thin}
#messages li{display:flex;gap:10px;padding:2px 0;flex-wrap:wrap;align-items:baseline;overflow-wrap:anywhere}
.ts{color:var(--faint);flex:0 0 auto;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}
.ln-body{min-width:0;flex:1;white-space:pre-wrap;word-break:break-word}
.nick{font-weight:700}
.nick.me{text-shadow:0 0 12px color-mix(in srgb,var(--accent) 50%,transparent)}
/* "Diretti" placeholder */
.dm-empty{color:var(--faint);font-size:11.5px;line-height:1.4;padding:6px 10px 10px;font-style:italic}
.nick.n1{color:var(--n1)} .nick.n2{color:var(--n2)} .nick.n3{color:var(--n3)}
.nick.n4{color:var(--n4)} .nick.n5{color:var(--n5)} .nick.n6{color:var(--n6)}
.ln-body.act{color:var(--accent)} .ln-body.act b{color:var(--fg);font-weight:700}
.ln-body.sys{color:var(--muted);font-style:italic}
li.notice .ln-body{color:var(--warn)}
.report{margin-left:auto;align-self:center;border:1px solid var(--line);background:transparent;color:var(--faint);
  border-radius:6px;padding:2px 8px;font-family:var(--f-display);font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.report:hover{border-color:var(--magenta);color:var(--magenta)}

/* composer */
.composer{flex:0 0 auto;padding:12px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:7px}
.cbox{display:flex;gap:9px;align-items:stretch}
.cfield{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:0 12px}
.cfield:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.cprompt{font-family:var(--f-mono);color:var(--accent);font-weight:700;flex:0 0 auto}
#body{flex:1;min-width:0;border:0;background:transparent;color:var(--fg);font-family:var(--f-mono);font-size:13.5px;padding:13px 0;outline:none}
#body::placeholder{color:var(--faint)}
.send{flex:0 0 auto;border:0;background:var(--accent);color:#03141c;font-family:var(--f-display);font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;font-size:12.5px;border-radius:11px;padding:0 18px;min-height:48px}
.send:hover{filter:brightness(1.08)}
.chint{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--faint);font-family:var(--f-mono);padding:0 2px}
.chint b{color:var(--muted);font-weight:700}
.chint .note{margin-left:auto;font-style:italic}
.snd{margin-left:8px;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:6px;padding:3px 9px;font-family:var(--f-ui);font-size:11px;letter-spacing:.03em}
.snd:hover{border-color:var(--accent);color:var(--fg)}
.snd.on{border-color:var(--accent-2);color:var(--accent-2)}
/* @mention ping + line flash */
.ping{background:color-mix(in srgb,var(--magenta) 26%,transparent);color:var(--fg);border-radius:4px;padding:0 3px;font-weight:700}
li.mentioned{padding-left:8px;box-shadow:inset 3px 0 0 var(--magenta);border-radius:0 6px 6px 0;animation:mention-flash .9s ease-in-out 3}
@keyframes mention-flash{0%,100%{background:transparent}50%{background:color-mix(in srgb,var(--magenta) 16%,transparent)}}
@media (prefers-reduced-motion:reduce){li.mentioned{animation:none}}

/* members */
.mhead{padding:14px 16px 10px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--line-soft)}
.mscroll{overflow-y:auto;flex:1;padding:8px}
.mgroup{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);padding:8px 8px 5px;display:flex;gap:7px;align-items:center}
.mgroup .c{font-family:var(--f-mono);color:var(--muted)}
.member{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:8px;min-width:0}
.member:hover{background:var(--panel-2)}
.mdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.mdot.on{background:var(--accent-2)} .mdot.idle{background:var(--warn)}
.mnick{font-family:var(--f-mono);font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member.away .mnick{color:var(--muted)}
.mnick.me{color:var(--accent)}

.backdrop{display:none}

@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .icon-btn{display:flex}
  .rail,.members{position:fixed;top:0;bottom:0;z-index:30;width:272px;transition:transform .22s ease}
  .rail{left:0;transform:translateX(-102%)}
  .members{right:0;width:248px;transform:translateX(102%)}
  .rail.open,.members.open{transform:translateX(0);box-shadow:0 0 50px rgba(0,0,0,.55)}
  .backdrop.show{display:block;position:fixed;inset:0;background:rgba(3,5,12,.55);z-index:20}
  .sh-topic{display:none}
}
@media (prefers-reduced-motion:reduce){.rail,.members{transition:none}}
