
:root{
  color-scheme:dark;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI","Noto Sans TC",sans-serif;
  background:#08090b;color:#f6f7fa;
  --panel:#111318;--panel-out:#151922;--line:rgba(255,255,255,.08);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#08090b}
body{background:radial-gradient(circle at 15% -10%,rgba(130,145,180,.12),transparent 36rem),#08090b}
button,input{font:inherit}.hidden{display:none!important}

.boot-screen{min-height:100vh;display:grid;place-items:center;align-content:center;gap:14px;color:#7f8794;font-size:13px}
.spinner{width:30px;height:30px;border-radius:50%;border:3px solid rgba(255,255,255,.08);border-top-color:#d9dde5;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-card{width:min(100%,410px);padding:34px;border:1px solid rgba(255,255,255,.1);border-radius:28px;background:rgba(18,20,25,.84);box-shadow:0 24px 80px rgba(0,0,0,.35)}
.mark{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;font-size:24px;font-weight:800;background:#f4f5f7;color:#101115;margin-bottom:26px}
.eyebrow{margin:0 0 8px;color:#737b89;font-size:11px;font-weight:750;letter-spacing:.16em}
.login-card h1{font-size:36px;margin:0 0 10px}.desc{color:#9da3af}
.login-card label{display:block;font-size:13px;color:#b7bdc9;margin:22px 0 8px}
.login-card input{width:100%;height:58px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:#0c0e12;color:#fff;font:700 24px/1 ui-monospace,monospace;letter-spacing:.22em;padding:0 17px;outline:none}
.login-btn{width:100%;height:54px;margin-top:14px;border:0;border-radius:16px;background:#f3f4f6;color:#111318;font-size:16px;font-weight:760}
.login-msg{min-height:20px;color:#f2a7a7;font-size:13px}
.login-foot{display:flex;gap:8px;align-items:center;margin-top:22px;color:#747b88;font-size:12px}
.online-dot{width:7px;height:7px;border-radius:50%;background:#75c993}

.app-shell{width:min(100%,980px);margin:0 auto;padding:28px 22px 60px}
.topbar{display:flex;justify-content:space-between;gap:18px;margin-bottom:26px}.topbar h1{margin:0;font-size:34px}
.header-actions{display:flex;align-items:center;gap:9px}
.status-chip{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 13px;border:1px solid var(--line);border-radius:14px;color:#aeb4bf;font-size:13px}
.status-dot,.mini-dot{display:inline-block;border-radius:99px}.status-dot{width:8px;height:8px}.idle{background:#777f8d}.live{background:#70c38a!important;box-shadow:0 0 10px rgba(112,195,138,.4)}
.icon-btn,.soft-btn,.tab{border:0;cursor:pointer;color:inherit}
.icon-btn{min-height:40px;padding:0 14px;border-radius:14px;background:#171a20;border:1px solid var(--line);color:#adb4c0}

.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;border-bottom:1px solid var(--line)}
.tab{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border-radius:13px;background:transparent;color:#8f97a5;font-weight:650}
.tab span{min-width:22px;height:22px;padding:3px 6px;border-radius:99px;background:rgba(255,255,255,.055);font-size:11px}
.tab.active{background:#f2f3f5;color:#111318}

.toolbar{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}
.source-state{display:flex;align-items:center;gap:8px;color:#7f8794;font-size:12px}
.mini-dot{width:7px;height:7px}.off{background:#676e7a}.ok{background:#70c38a}
.toolbar-buttons{display:flex;gap:8px}
.soft-btn{min-height:38px;padding:0 12px;border-radius:12px;background:#14171c;border:1px solid var(--line);color:#aeb5c0}
.danger{color:#dca3a3}

.notification-list{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding-top:20px
}
.group-card{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:12px;
  width:min(100%,780px);
  padding:15px 16px;
  border:1px solid var(--line);
  border-radius:19px;
  background:var(--panel)
}
.group-card.incoming{align-self:flex-start}
.group-card.outgoing{
  align-self:flex-end;
  width:min(94%,720px);
  background:var(--panel-out)
}
.avatar-wrap,.avatar-img,.avatar-fallback{
  width:44px;
  height:44px
}
.avatar-img,.avatar-fallback{
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08)
}
.avatar-img{
  display:block;
  object-fit:cover
}
.avatar-fallback{
  display:grid;
  place-items:center;
  background:#252a33;
  color:#e6e9ee;
  font-size:16px;
  font-weight:800
}
.group-main{min-width:0}
.group-head{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:7px
}
.sender{
  color:#f4f6f9;
  font-size:16px;
  font-weight:800
}
.platform-pill{
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  color:#8e96a5;
  font-size:10px;
  font-weight:750
}
.chat-label{
  max-width:320px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#687180;
  font-size:11px
}
.message-stack{
  display:flex;
  flex-direction:column;
  gap:8px
}
.message-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:end
}
.message{
  margin:0;
  color:#eef0f4;
  font-size:19px;
  font-weight:560;
  line-height:1.5;
  white-space:pre-wrap;
  word-break:break-word
}
.time{
  color:#626b79;
  font-size:10px;
  white-space:nowrap
}
.message-divider{
  height:1px;
  background:rgba(255,255,255,.045)
}
.image-preview{
  display:block;
  max-width:min(100%,420px);
  max-height:270px;
  object-fit:cover;
  border-radius:13px;
  margin-top:9px;
  border:1px solid var(--line)
}

.empty-state{min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 22px}
.empty-state.hidden{display:none}
.empty-icon{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;background:#12151a;border:1px solid var(--line);font-size:28px;color:#747c89}
.empty-state h2{margin:18px 0 8px}.empty-state p{max-width:520px;margin:0;color:#7f8794;line-height:1.65;font-size:13px}

footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:34px;padding-top:17px;border-top:1px solid var(--line);color:#616977;font-size:11px}

@media(max-width:620px){
  .app-shell{padding:18px 12px 50px}
  .status-chip{display:none}
  .toolbar{align-items:flex-start;flex-direction:column;padding:13px 0}
  .toolbar-buttons{width:100%}.soft-btn{flex:1}
  .note{grid-template-columns:32px minmax(0,1fr) auto;padding:12px}
  .avatar{width:32px;height:32px;border-radius:10px;font-size:13px}
  .message{font-size:16px}
  .note.outgoing{width:94%}
  .time{grid-column:2}
  .login-card{padding:28px 22px}
}

@media(max-width:620px){
  .group-card{
    grid-template-columns:38px minmax(0,1fr);
    gap:10px;
    padding:13px
  }
  .avatar-wrap,.avatar-img,.avatar-fallback{
    width:38px;
    height:38px
  }
  .avatar-img,.avatar-fallback{border-radius:12px}
  .message{font-size:18px}
  .message-row{grid-template-columns:1fr}
  .time{justify-self:end}
}
@media(min-width:700px){
  .message{font-size:20px}
}
