:root{
  --bg:#0b1220;
  --bg2:#0f172a;
  --panel:#111827;
  --panel2:#0b1220;
  --line:#243244;
  --text:#e5e7eb;
  --muted:#94a3b8;
  --blue:#2563eb;
  --blue2:#1d4ed8;
  --green:#059669;
  --red:#dc2626;
  --radius:16px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:Inter,Arial,sans-serif;background:var(--bg2);color:var(--text)}
body{overflow:hidden}
.hidden{display:none!important}
.hidden-pane{display:none!important}

a{color:#93c5fd}

.overlay{
  position:fixed;inset:0;background:rgba(2,6,23,.82);
  display:flex;align-items:center;justify-content:center;z-index:40
}
.login-card{
  width:min(92vw,380px);background:var(--panel);border:1px solid var(--line);
  border-radius:24px;padding:24px;display:grid;gap:12px;
  box-shadow:0 24px 80px rgba(0,0,0,.45)
}
.login-card input,.login-card button{
  width:100%;padding:12px 14px;border-radius:14px;border:1px solid #334155;
  background:var(--panel2);color:#fff
}
.login-card button{background:var(--blue);border:0;font-weight:700;cursor:pointer}
.error{color:#fca5a5;font-size:13px;min-height:20px}
.muted{color:var(--muted);margin:0}

.app-shell{
  display:grid;
  grid-template-columns:240px 330px minmax(0,1fr);
  height:100vh;
}
.sidebar{
  background:#020617;border-right:1px solid var(--line);padding:18px;
  display:flex;flex-direction:column;gap:18px
}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{
  width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--blue),#0ea5e9);
  display:flex;align-items:center;justify-content:center;font-weight:800
}
.brand small{display:block;color:var(--muted)}
.nav{display:grid;gap:8px}
.nav-btn,.primary,.secondary,.attach-btn,.icon-btn,.modal-close{
  border-radius:14px;cursor:pointer
}
.nav-btn{
  border:1px solid var(--line);background:#101827;color:#fff;padding:12px;text-align:left
}
.nav-btn.active{background:var(--blue2);border-color:var(--blue2)}
.sidebar-footer{margin-top:auto}

.left-pane{
  border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--bg2);min-width:0
}
.pane-header{padding:16px;border-bottom:1px solid var(--line);display:grid;gap:10px}
.pane-header h2{margin:0;font-size:18px}
.pane-header input,.stack input,.stack textarea,.quick-form input,.quick-form textarea,textarea{
  width:100%;padding:12px 14px;border-radius:14px;border:1px solid #334155;background:var(--panel2);color:#fff
}
.conversation-list{overflow:auto;padding:12px;display:grid;gap:10px}
.conversation-item{
  border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:12px;
  color:#fff;display:flex;justify-content:space-between;align-items:center;text-align:left
}
.conversation-item.active{border-color:var(--blue)}
.conversation-main small{display:block;color:var(--muted);margin-top:4px}
.conv-badge{
  min-width:26px;height:26px;padding:0 8px;border-radius:999px;background:var(--blue2);display:flex;
  align-items:center;justify-content:center;font-size:12px
}

.main-pane{display:flex;flex-direction:column;background:var(--bg2);min-width:0;overflow:hidden}
.tab{display:none;height:100%;min-height:0}
.tab.active{display:flex;flex-direction:column;min-height:0}
.chat-header{
  padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0
}
.chat-header h3{margin:0}
.chat-header small{color:var(--muted)}
.chat-actions{display:flex;gap:8px}
.message-list{
  overflow:auto;padding:18px;display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;
}
.preview-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.composer-preview-image{
  display:block;
  max-width:260px;
  max-height:180px;
  border-radius:12px;
  cursor:pointer;
  border:1px solid var(--line);
}
.empty-state{
  border:1px dashed var(--line);border-radius:16px;padding:18px;color:var(--muted);text-align:center
}
.message{
  max-width:min(72%,720px);padding:12px;border-radius:18px;background:var(--panel);border:1px solid var(--line)
}
.message.in{align-self:flex-start}
.message.out{align-self:flex-end;background:var(--blue2)}
.message-meta{font-size:12px;color:#cbd5e1;margin-bottom:8px}
.message-reply{
  border-left:3px solid rgba(255,255,255,.5);padding-left:10px;margin-bottom:8px;font-size:12px;color:#dbeafe
}
.message-body{white-space:pre-wrap}
.message-media img,.message-media video,.message-media audio{
  margin-top:10px;max-width:min(100%,260px);border-radius:12px;display:block
}
.message-image{cursor:pointer}
.message-actions{margin-top:10px}
.reply-box,.media-preview{
  margin:0 18px 12px;padding:12px;border:1px solid var(--line);background:var(--panel);border-radius:16px;flex-shrink:0
}
.reply-box{display:flex;justify-content:space-between;gap:12px}
.composer{
  display:grid;grid-template-columns:56px minmax(0,1fr) 120px;gap:12px;padding:16px 18px 20px;border-top:1px solid var(--line);flex-shrink:0;background:var(--bg2)
}
.attach-btn{
  display:flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid #334155;color:#fff
}
.primary{background:var(--blue);border:0;color:#fff;padding:12px 16px;font-weight:700}
.secondary{background:var(--panel);border:1px solid #334155;color:#fff;padding:10px 12px}
.icon-btn{background:transparent;border:0;color:#fff;font-size:22px}
.composer-preview-audio,
.composer-preview-video{
  display:block;
  width:100%;
  max-width:320px;
  margin-top:8px;
}
.message.in{
  align-self:flex-start;
  border-top-left-radius:8px;
}

.message.out{
  align-self:flex-end;
  border-top-right-radius:8px;
  background:linear-gradient(135deg, var(--blue2), #2563eb);
}

.message-meta{
  font-weight:600;
}
.preview-file-name{
  margin-top:8px;
  font-size:12px;
  color:var(--muted);
}
.tab-wrap{padding:18px;overflow:auto}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kpi-card{
  border:1px solid var(--line);background:var(--panel);padding:16px;border-radius:18px
}
.kpi-card span{display:block;color:var(--muted);font-size:12px}
.kpi-card strong{font-size:28px}
.dashboard-block,.panel{
  margin-top:18px;border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:16px
}
.summary-list{display:grid;gap:8px;margin-top:10px}
.summary-item,.admin-item{
  padding:10px 12px;border:1px solid #334155;background:var(--panel2);border-radius:12px
}
.quick-form,.stack{display:grid;gap:10px}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.hint{margin-top:10px;color:var(--muted);font-size:12px}

.modal-overlay{
  position:fixed;inset:0;background:rgba(2,6,23,.82);display:flex;align-items:center;justify-content:center;z-index:60;padding:24px
}
.modal-card{
  position:relative;max-width:min(92vw,1100px);max-height:90vh;background:#020617;border:1px solid var(--line);border-radius:20px;padding:18px
}
.modal-card img{
  display:block;max-width:100%;max-height:calc(90vh - 64px);border-radius:14px
}
.modal-close{
  position:absolute;top:10px;right:10px;width:40px;height:40px;border:0;background:rgba(15,23,42,.95);color:#fff;font-size:24px
}

@media (max-width: 1200px){
  .app-shell{grid-template-columns:220px 290px minmax(0,1fr)}
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
}

@media (max-width: 980px){
  .app-shell{grid-template-columns:220px minmax(0,1fr)}
  .left-pane{display:none}
  .left-pane:not(.hidden-pane){display:flex}
  .admin-grid{grid-template-columns:1fr}
}

@media (max-width: 720px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{display:none}
  .message{max-width:88%}
  .composer{grid-template-columns:48px minmax(0,1fr) 96px}
  .kpi-grid{grid-template-columns:1fr}
}
