*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#0f172a;background:#f8fafc}button,input,textarea,select{font:inherit}.app-shell{display:grid;grid-template-columns:265px 1fr;height:100vh;overflow:hidden}.sidebar{background:linear-gradient(180deg,#0b1629,#0f172a);color:#dbeafe;padding:16px 12px;display:flex;flex-direction:column;min-height:0}.brand-lockup{display:flex;gap:12px;align-items:center}.brand-lockup h1,.brand-lockup p{margin:0}.brand-lockup p,.brand-lockup small{color:#94a3b8}.brand-lockup.compact{padding:6px 8px 18px}.brand-lockup.compact strong,.brand-lockup.compact small{display:block}.brand-logo{width:44px;height:44px;object-fit:contain;border-radius:11px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--primary,#2563eb),var(--accent,#7c3aed));color:#fff;display:grid;place-items:center;font-weight:900;font-size:21px;box-shadow:0 8px 24px #2563eb44}.main-nav{display:grid;gap:3px}.main-nav a,.channel-link{color:#cbd5e1;text-decoration:none;padding:8px 10px;border-radius:9px}.main-nav a:hover,.main-nav a.active,.channel-link:hover,.channel-link.selected{background:linear-gradient(90deg,var(--primary),#2563ebaa);color:#fff}.nav-heading{display:flex;justify-content:space-between;align-items:center;color:#94a3b8;text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:800;margin:20px 8px 7px}.nav-heading button{background:none;border:0;color:#cbd5e1;font-size:18px}.people-list{display:grid;gap:8px;padding:2px 10px;overflow:auto}.person{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.presence{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22c55e;margin-right:8px}.sidebar-user{margin-top:auto;border-top:1px solid #263246;padding:13px 7px 0;display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center}.sidebar-user strong,.sidebar-user small{display:block;font-size:12px}.sidebar-user small{color:#94a3b8}.sidebar-user a{color:#cbd5e1;text-decoration:none;font-size:20px}.avatar{width:40px;height:40px;border-radius:12px;object-fit:cover;flex:0 0 auto}.initials{display:grid;place-items:center;background:linear-gradient(135deg,#e2e8f0,#cbd5e1);font-weight:800;color:#334155}.workspace{min-width:0;display:flex;flex-direction:column;background:white}.topbar{height:74px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 20px;gap:14px}.topbar h2{margin:0;font-size:17px}.topbar p{margin:3px 0 0;color:#64748b;font-size:12px}.top-actions{margin-left:auto;display:flex;gap:8px}.top-actions button,.mobile-menu{border:0;background:#f1f5f9;width:36px;height:36px;border-radius:10px}.mobile-menu{display:none}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;min-height:0;flex:1}.messages-panel{display:flex;flex-direction:column;min-width:0}.messages-panel #messages{flex:1;overflow:auto;padding:18px 28px}.message{display:flex;gap:12px;padding:9px 0;position:relative}.message:hover .message-actions{opacity:1}.message-body{min-width:0;max-width:850px}.message-meta{display:flex;gap:8px;align-items:baseline}.message-meta strong{font-size:14px}.message-meta time{font-size:11px;color:#94a3b8}.message-text{font-size:14px;line-height:1.5;margin-top:3px;word-break:break-word}.message-actions{opacity:0;transition:.15s;display:flex;gap:3px;margin-top:5px}.message-actions button{border:1px solid #e2e8f0;background:#fff;border-radius:7px;color:#64748b}.composer{margin:0 20px 18px;border:1px solid #cbd5e1;border-radius:14px;display:grid;grid-template-columns:auto 1fr auto;align-items:end;padding:8px;box-shadow:0 8px 24px #0f172a0a}.composer textarea{border:0;resize:none;outline:0;padding:9px;background:transparent;max-height:120px}.composer button{border:0;background:none;padding:9px}.composer .send-btn{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border-radius:10px;width:38px;height:38px}.details-panel{border-left:1px solid #e2e8f0;padding:20px;background:#fbfdff}.details-panel h3{margin-top:0}.muted{color:#64748b;font-size:13px}.detail-card{border:1px solid #e2e8f0;border-radius:14px;padding:14px;margin:10px 0;display:flex;flex-direction:column}.detail-card strong{font-size:22px}.detail-card span{color:#64748b;font-size:12px}.primary-btn,.secondary-btn{display:inline-block;border:0;text-decoration:none;border-radius:11px;padding:11px 15px;font-weight:800;cursor:pointer}.primary-btn{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff}.secondary-btn{background:#e2e8f0;color:#0f172a}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#1e3a8a,#020617 52%);background-size:cover;background-position:center;padding:22px}.login-card{width:min(430px,94vw);background:#fffffff2;backdrop-filter:blur(14px);padding:30px;border-radius:24px;box-shadow:0 35px 90px #0008}.login-card .brand-lockup{margin-bottom:24px}.login-card h1{font-size:27px}.stack{display:grid;gap:14px}.stack label,.form-grid label{display:grid;gap:6px;font-size:12px;color:#475569;font-weight:700}.stack input,.form-grid input,.form-grid select{width:100%;padding:11px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff}.notice{padding:12px 14px;border-radius:11px;margin:12px 0}.notice.success{background:#dcfce7;color:#166534}.notice.danger{background:#fee2e2;color:#991b1b}.admin-page{display:grid;grid-template-columns:230px 1fr;min-height:100vh;background:#f1f5f9}.admin-side{background:#0f172a;color:#fff;padding:16px 12px}.admin-side nav{display:grid;gap:5px}.admin-side nav a{padding:10px 12px;color:#cbd5e1;text-decoration:none;border-radius:9px}.admin-side nav a:hover,.admin-side nav a.active{background:linear-gradient(90deg,var(--primary),var(--accent));color:#fff}.admin-main{padding:28px;min-width:0}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.admin-header h1{margin:0}.admin-header p{margin:5px 0;color:#64748b}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card,.admin-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 8px 30px #0f172a08}.stat-card{padding:18px}.stat-card span{display:block;color:#64748b;font-size:12px}.stat-card strong{font-size:29px}.admin-card{padding:20px;margin-top:16px}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#e2e8f0;font-size:11px}.pill.ok{background:#dcfce7;color:#166534}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.preview-card{padding:18px;border-radius:16px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;display:flex;align-items:center;gap:14px}.preview-card .brand-mark{background:#ffffff22;border:1px solid #ffffff33}.preview-card h3,.preview-card p{margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #e2e8f0;font-size:13px}th{color:#64748b}.admin-card h2{margin-top:0}@media(max-width:1000px){.details-panel{display:none}.content-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;top:0;bottom:0;width:265px;z-index:20;transition:.2s}.menu-open .sidebar{left:0;box-shadow:20px 0 60px #0005}.mobile-menu{display:block}.messages-panel #messages{padding:14px}.composer{margin:0 10px 10px}.admin-page{grid-template-columns:1fr}.admin-side{position:static}.admin-main{padding:16px}.stat-grid,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.admin-header{align-items:flex-start;gap:12px;flex-direction:column}}

/* Chat status/error message */
.chat-notice{margin:0 16px 8px;padding:10px 12px;border-radius:10px;font-size:13px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35);color:#fecaca}
.chat-notice[data-kind="success"]{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.35);color:#bbf7d0}
.chat-notice[hidden]{display:none}
.send-btn:disabled{opacity:.55;cursor:wait}

/* v1.0.4 - Keep chat composer visible inside the viewport */
html,body{height:100%;height:100dvh;overflow:hidden}
.app-shell{height:100vh;height:100dvh;min-height:0}
.workspace{min-height:0;overflow:hidden}
.content-grid{min-height:0;overflow:hidden}
.messages-panel{min-height:0;overflow:hidden;position:relative}
.messages-panel #messages{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.composer{flex:0 0 auto;position:relative;z-index:5;background:#fff;margin-bottom:max(18px,env(safe-area-inset-bottom))}
.chat-notice{flex:0 0 auto}

@media(max-width:760px){
  .app-shell{height:100dvh;min-height:100dvh}
  .workspace{height:100dvh;min-height:0}
  .topbar{flex:0 0 64px;height:64px;padding:0 12px}
  .content-grid{height:calc(100dvh - 64px);min-height:0}
  .messages-panel{height:100%;min-height:0}
  .messages-panel #messages{padding:12px 12px 8px}
  .composer{margin:0 8px max(8px,env(safe-area-inset-bottom));border-radius:12px;box-shadow:0 -6px 24px rgba(15,23,42,.08)}
  .composer textarea{min-height:42px;max-height:110px}
}


/* v1.0.5 - hard-anchor composer so it cannot fall below viewport */
.messages-panel{
  position:relative !important;
  height:100% !important;
  min-height:0 !important;
  overflow:hidden !important;
  display:block !important;
}
.messages-panel #messages{
  position:absolute !important;
  inset:0 0 82px 0 !important;
  overflow-y:auto !important;
  min-height:0 !important;
  padding-bottom:18px !important;
}
.composer{
  position:absolute !important;
  left:20px !important;
  right:20px !important;
  bottom:14px !important;
  z-index:50 !important;
  margin:0 !important;
  background:#fff !important;
  box-shadow:0 10px 30px rgba(15,23,42,.14) !important;
}
.chat-notice{
  position:absolute !important;
  left:20px !important;
  right:20px !important;
  bottom:90px !important;
  z-index:60 !important;
  margin:0 !important;
}
@media(max-width:760px){
  .messages-panel #messages{inset:0 0 76px 0 !important;padding-bottom:12px !important}
  .composer{
    left:8px !important;
    right:8px !important;
    bottom:max(8px,env(safe-area-inset-bottom)) !important;
  }
  .chat-notice{
    left:8px !important;
    right:8px !important;
    bottom:84px !important;
  }
}

/* v1.0.6 - mobile navigation + functional top controls */
#channelList{display:grid;gap:4px;min-width:0}
#channelList .channel-link{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar{position:relative;z-index:70}
.top-actions button{cursor:pointer;display:grid;place-items:center;font-size:20px;color:#0f172a}
.top-actions button.is-active{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff}
.chat-search{position:absolute;left:16px;right:16px;top:8px;height:48px;z-index:90;background:#fff;border:1px solid #cbd5e1;border-radius:12px;box-shadow:0 12px 35px rgba(15,23,42,.16);display:grid;grid-template-columns:1fr auto;align-items:center;padding:5px 7px 5px 12px}
.chat-search[hidden]{display:none}
.chat-search input{border:0;outline:0;width:100%;font-size:15px;background:transparent}
.chat-search button{border:0;background:#f1f5f9;width:36px;height:36px;border-radius:9px;font-size:22px;cursor:pointer}
.top-menu{position:absolute;right:14px;top:62px;width:190px;z-index:95;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 16px 45px rgba(15,23,42,.18);padding:6px}
.top-menu[hidden]{display:none}
.top-menu a,.top-menu button{display:block;width:100%;border:0;background:transparent;text-align:left;text-decoration:none;color:#0f172a;padding:10px 11px;border-radius:8px;cursor:pointer;font-size:14px}
.top-menu a:hover,.top-menu button:hover{background:#f1f5f9}
.message.search-hidden{display:none}

@media(max-width:760px){
  .sidebar{left:-88vw;width:min(86vw,340px);padding:14px 14px 16px;overflow-y:auto;overflow-x:hidden}
  .menu-open .sidebar{left:0}
  .brand-lockup.compact{padding:6px 8px 14px}
  .main-nav a,.channel-link{padding:10px 12px;font-size:15px}
  .nav-heading{margin-top:18px}
  #channelList{display:grid;grid-template-columns:1fr;gap:5px}
  #channelList .channel-link{font-size:15px;line-height:1.25}
  .people-list{overflow:visible}
  .sidebar-user{margin-top:22px}
  .topbar{padding:0 8px;gap:8px}
  .topbar>div:nth-child(2){min-width:0;overflow:hidden}
  .topbar h2,.topbar p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .top-actions{gap:5px}
  .top-actions button,.mobile-menu{width:34px;height:34px;border-radius:9px;flex:0 0 auto}
  .chat-search{left:8px;right:8px;top:8px}
  .top-menu{right:8px;top:58px}
}


/* v1.0.7 - keep mobile sidebar above the topbar so branding is never covered */
.workspace{position:relative}
@media(max-width:760px){
  .sidebar{z-index:120}
  .menu-open .sidebar{left:0;box-shadow:20px 0 60px rgba(0,0,0,.35)}
  .workspace::before{content:"";position:fixed;inset:0;background:rgba(2,6,23,.35);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:100}
  .menu-open .workspace::before{opacity:1;pointer-events:auto}
}

/* ViperHosting v2 collaboration UI */
.nav-badge{display:none;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:10px;line-height:18px;text-align:center;margin-left:auto}.nav-badge.show{display:inline-block}.main-nav a{display:flex;align-items:center;gap:7px}.thread-drawer{position:absolute;right:0;top:74px;bottom:0;width:min(420px,92vw);background:#fff;border-left:1px solid #e2e8f0;z-index:85;box-shadow:-16px 0 40px #0f172a18;display:flex;flex-direction:column}.thread-drawer[hidden]{display:none}.thread-head{padding:14px 16px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between}.thread-head button{border:0;background:#f1f5f9;width:34px;height:34px;border-radius:9px}.thread-drawer #threadMessages{flex:1;overflow:auto;padding:14px}.thread-drawer form{padding:12px;border-top:1px solid #e2e8f0;display:grid;gap:8px}.thread-drawer textarea{min-height:70px;border:1px solid #cbd5e1;border-radius:12px;padding:10px}.reaction-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.reaction-chip{border:1px solid #dbeafe;background:#eff6ff;border-radius:999px;padding:3px 8px;font-size:12px}.attachment-card{display:inline-flex;align-items:center;gap:8px;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;margin-top:7px;text-decoration:none;color:#0f172a;background:#f8fafc}.attachment-card img{max-width:220px;max-height:170px;border-radius:8px}.message-actions{flex-wrap:wrap}.message-actions button{cursor:pointer}.edited{font-size:10px;color:#94a3b8}.modal{position:fixed;inset:0;z-index:200;background:#020617aa;display:grid;place-items:center;padding:16px}.modal[hidden]{display:none}.modal-card{position:relative;background:#fff;width:min(560px,96vw);max-height:88vh;overflow:auto;border-radius:18px;padding:22px;box-shadow:0 30px 80px #0007}.modal-close{position:absolute;right:12px;top:10px;border:0;background:#f1f5f9;width:34px;height:34px;border-radius:9px;font-size:20px}.v2-page{min-height:100vh;background:#f1f5f9;padding:22px}.page-shell{max-width:1100px;margin:auto}.page-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.page-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:18px;margin-bottom:14px}.page-card h2,.page-card h3{margin-top:0}.item-row{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #eef2f7}.item-row:last-child{border-bottom:0}.item-main{flex:1;min-width:0}.item-main small{color:#64748b}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.toolbar input,.toolbar select,.toolbar textarea{padding:10px;border:1px solid #cbd5e1;border-radius:10px}.dm-layout{display:grid;grid-template-columns:280px 1fr;min-height:70vh}.dm-list{border-right:1px solid #e2e8f0;padding-right:12px}.dm-chat{padding-left:16px;display:flex;flex-direction:column}.dm-messages{flex:1;min-height:420px;max-height:65vh;overflow:auto}.dm-compose{display:flex;gap:8px}.dm-compose input{flex:1;padding:12px;border:1px solid #cbd5e1;border-radius:10px}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.file-tile{border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#64748b}.status-dot.online{background:#22c55e}.status-dot.away{background:#f59e0b}@media(max-width:760px){.thread-drawer{top:64px}.dm-layout{grid-template-columns:1fr}.dm-list{border:0;padding:0 0 12px}.dm-chat{padding:0}.v2-page{padding:12px}.page-top{align-items:flex-start;flex-direction:column}}
.workspace-picker{padding:0 8px 8px}.workspace-picker select{width:100%;background:#111d31;color:#dbeafe;border:1px solid #334155;border-radius:9px;padding:8px}
.channel-category{color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;padding:9px 10px 3px}
html[data-theme="dark"] body,html[data-theme="dark"] .workspace,html[data-theme="dark"] .messages-panel,html[data-theme="dark"] .details-panel{background:#0b1220;color:#e5e7eb}html[data-theme="dark"] .topbar,html[data-theme="dark"] .composer,html[data-theme="dark"] .modal-card{background:#111827;color:#e5e7eb;border-color:#334155}html[data-theme="dark"] .message-text{color:#e5e7eb}
.typing-indicator{position:absolute;left:24px;bottom:88px;z-index:45;font-size:12px;color:#64748b;min-height:18px}.mobile-bottom{display:none}@media(max-width:760px){.mobile-bottom{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;height:58px;background:#0f172a;z-index:110;border-top:1px solid #334155}.mobile-bottom a{color:#cbd5e1;text-decoration:none;display:grid;place-items:center;font-size:18px;line-height:1}.mobile-bottom span{font-size:9px}.composer{bottom:max(66px,calc(58px + env(safe-area-inset-bottom)))!important}.chat-notice{bottom:142px!important}.typing-indicator{bottom:132px;left:14px}}

.presence.away{background:#f59e0b}.presence.offline{background:#64748b}.presence.online{background:#22c55e}


/* v2.0.1 - Admin dashboard + collapsed mobile navigation */
.admin-page{height:100vh;height:100dvh;min-height:0;overflow:hidden}
.admin-side{height:100dvh;overflow-y:auto;overscroll-behavior:contain;z-index:210}
.admin-main{height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding-bottom:48px}
.admin-mobile-bar{display:none}
.admin-menu-toggle{border:0;background:#fff;color:#0f172a;width:42px;height:42px;border-radius:12px;box-shadow:0 6px 20px rgba(15,23,42,.12);font-size:22px;cursor:pointer;place-items:center}
.admin-menu-floating{display:none;position:fixed;left:12px;top:12px;z-index:230}
.admin-hero{background:linear-gradient(135deg,#0b1629 0%,#13284a 55%,var(--primary) 160%);color:#fff;border-radius:22px;padding:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 18px 50px rgba(15,23,42,.18);margin-bottom:18px;overflow:hidden;position:relative}
.admin-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-90px;top:-120px;background:linear-gradient(135deg,var(--primary),var(--accent));opacity:.28}
.admin-hero>div{position:relative;z-index:1}.admin-hero h1{font-size:30px;margin:4px 0}.admin-hero p{margin:0;color:#cbd5e1}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.14em;color:#64748b}.admin-hero .eyebrow{color:#93c5fd}.admin-hero-actions{display:flex;gap:9px;flex-wrap:wrap}.admin-hero .secondary-btn{background:#ffffff18;border:1px solid #ffffff25;color:#fff}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:2px}.kpi-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:18px;display:flex;gap:13px;align-items:center;text-decoration:none;color:#0f172a;box-shadow:0 8px 26px rgba(15,23,42,.05);transition:.15s}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(15,23,42,.09)}.kpi-icon{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#eff6ff,#ede9fe);display:grid;place-items:center;font-size:21px;color:var(--primary);flex:0 0 auto}.kpi-card small,.kpi-card em{display:block}.kpi-card small{color:#64748b;font-size:11px;font-style:normal}.kpi-card strong{font-size:25px;line-height:1.1;display:block}.kpi-card em{color:#94a3b8;font-size:10px;font-style:normal;margin-top:3px}
.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dashboard-grid .admin-card{margin-top:16px}.dashboard-span-2{grid-column:span 2}.card-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.card-heading h2{font-size:17px;margin:3px 0 0}.card-heading>a{font-size:12px;color:var(--primary);text-decoration:none}.bar-chart{height:210px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:10px;padding-top:20px}.bar-col{height:100%;display:grid;grid-template-rows:20px 1fr 22px;text-align:center;min-width:0}.bar-value{font-size:10px;color:#64748b}.bar-track{height:100%;background:#f1f5f9;border-radius:9px;position:relative;overflow:hidden}.bar-fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,var(--accent),var(--primary));border-radius:9px;min-height:5px}.bar-col small{padding-top:5px;color:#64748b;font-size:10px}.quick-actions{display:grid;gap:6px}.quick-actions a{display:flex;justify-content:space-between;padding:11px 12px;border-radius:10px;text-decoration:none;color:#334155;background:#f8fafc;font-size:13px}.quick-actions a:hover{background:#eef2ff;color:var(--primary)}.metric-row,.activity-row{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #f1f5f9}.metric-row:last-child,.activity-row:last-child{border-bottom:0}.metric-row>div:first-child{flex:1}.metric-row small,.activity-row small{display:block;color:#94a3b8;font-size:10px;margin-top:2px}.metric-number{font-size:19px;font-weight:900;color:var(--primary)}.activity-icon{width:26px;height:26px;border-radius:9px;background:#eef2ff;color:var(--primary);display:grid;place-items:center;font-size:18px;flex:0 0 auto}.health-list{display:grid;gap:11px}.health-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;font-size:12px}.health-list b{font-size:10px;color:#16a34a}.health-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px #dcfce7}.status-dot{width:9px;height:9px;border-radius:50%;background:#94a3b8;flex:0 0 auto}.status-dot.online{background:#22c55e}.status-dot.away{background:#f59e0b}
@media(max-width:1100px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-span-2{grid-column:span 2}}
@media(max-width:900px){
  .admin-page{display:block!important;grid-template-columns:none!important;position:relative}
  .admin-side{position:fixed!important;top:0;bottom:0;left:0;width:min(84vw,300px);transform:translateX(-105%);transition:transform .2s ease;box-shadow:none;z-index:220;padding-top:68px}
  .admin-menu-open .admin-side{transform:translateX(0);box-shadow:22px 0 60px rgba(0,0,0,.35)}
  .admin-page:after{content:"";position:fixed;inset:0;background:rgba(2,6,23,.46);opacity:0;pointer-events:none;z-index:200;transition:.2s}
  .admin-menu-open:after{opacity:1;pointer-events:auto}
  .admin-menu-floating{display:grid}
  .admin-main{width:100%;height:100dvh;padding:0 16px 40px}
  .admin-mobile-bar{height:66px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:150;background:#f1f5f9ee;backdrop-filter:blur(10px);margin:0 -16px 16px;padding:0 16px 0 64px;border-bottom:1px solid #e2e8f0}.admin-mobile-bar strong{flex:1}.admin-mobile-bar a{text-decoration:none;color:var(--primary);font-size:12px;font-weight:800}
  .admin-header{padding-top:64px}.admin-hero{margin-top:0}
}
@media(max-width:640px){.dashboard-kpis,.dashboard-grid{grid-template-columns:1fr}.dashboard-span-2{grid-column:auto}.admin-hero{padding:22px;align-items:flex-start;flex-direction:column}.admin-hero h1{font-size:24px}.admin-hero-actions{width:100%}.admin-hero-actions a{flex:1;text-align:center}.bar-chart{height:180px}.kpi-card{padding:15px}}

/* v2.0.2 - admin channel/category management */
.admin-sort-list{display:grid;gap:8px}.admin-sort-row{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;transition:.15s}.admin-sort-row.dragging{opacity:.45;transform:scale(.99)}.admin-sort-row.is-archived{opacity:.58;background:#f8fafc}.drag-handle{font-size:20px;letter-spacing:-4px;color:#94a3b8;cursor:grab;user-select:none;padding-right:4px}.inline-edit{padding:14px;margin:-2px 0 8px;border:1px solid #dbeafe;background:#f8fbff;border-radius:13px}.inline-edit[hidden]{display:none}.danger-btn{border:0;border-radius:11px;padding:11px 13px;font-weight:800;cursor:pointer;background:#fee2e2;color:#b91c1c}.danger-btn:hover{background:#fecaca}.check-label{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important}.check-label input{width:auto!important}.admin-sort-row .secondary-btn,.admin-sort-row .danger-btn{white-space:nowrap}
@media(max-width:760px){.admin-sort-row{display:grid;grid-template-columns:auto 1fr auto;align-items:start}.admin-sort-row .item-main{grid-column:2/-1}.admin-sort-row .drag-handle{grid-row:1/3}.admin-sort-row .secondary-btn,.admin-sort-row .danger-btn{padding:8px 10px;font-size:12px}}


/* v2.0.5 - mobile chat composer layout fix */
.composer{
  grid-template-columns:42px minmax(0,1fr) 42px 42px !important;
  gap:8px !important;
  align-items:center !important;
}
.composer textarea{
  width:100% !important;
  min-width:0 !important;
  min-height:24px !important;
  height:24px;
  line-height:24px;
  padding:0 2px !important;
  overflow-y:auto;
}
#attachBtn,#scheduleBtn,.composer .send-btn{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  padding:0 !important;
  border-radius:12px;
}
#attachBtn,#scheduleBtn{background:#f8fafc;color:#334155}
.composer .send-btn{justify-self:end}
@media(max-width:760px){
  .composer{
    left:8px !important;
    right:8px !important;
    padding:10px !important;
    gap:8px !important;
    grid-template-columns:40px minmax(0,1fr) 40px 40px !important;
  }
  .composer textarea{
    min-height:22px !important;
    height:22px;
    max-height:22px;
    line-height:22px;
    font-size:17px;
  }
  #attachBtn,#scheduleBtn,.composer .send-btn{
    width:40px;
    height:40px;
    border-radius:11px;
  }
}


/* v2.0.6 - visible message actions in dark mode and on touch screens */
.message-actions{
  gap:6px !important;
  margin-top:8px !important;
}
.message-actions button{
  min-width:32px;
  height:30px;
  padding:0 8px !important;
  display:inline-grid;
  place-items:center;
  border:1px solid #dbe3ee !important;
  background:#f8fafc !important;
  color:#334155 !important;
  border-radius:8px !important;
  line-height:1;
}
.message-actions button:hover,
.message-actions button:focus-visible{
  background:#eef2ff !important;
  border-color:var(--primary) !important;
  color:var(--primary) !important;
}
html[data-theme="dark"] .message-actions button{
  background:#172033 !important;
  border-color:#475569 !important;
  color:#f8fafc !important;
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset;
}
html[data-theme="dark"] .message-actions button:hover,
html[data-theme="dark"] .message-actions button:focus-visible{
  background:#22304a !important;
  border-color:#60a5fa !important;
  color:#fff !important;
}
html[data-theme="dark"] .reaction-chip{
  background:#172033 !important;
  border-color:#475569 !important;
  color:#f8fafc !important;
}
html[data-theme="dark"] .message-meta time,
html[data-theme="dark"] .edited{color:#94a3b8 !important}
@media (hover:none),(pointer:coarse),(max-width:760px){
  .message-actions{opacity:1 !important;display:flex !important;flex-wrap:wrap !important}
  .message-actions button{min-width:34px;height:32px}
}


/* v2.0.7 - light/dark theme switch */
.theme-toggle{font-size:19px!important;font-weight:700}.theme-toggle.is-active{background:#1e293b!important;color:#f8fafc!important}
.admin-theme-toggle{position:fixed;right:18px;top:18px;z-index:260;width:42px;height:42px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;color:#0f172a;box-shadow:0 8px 24px rgba(15,23,42,.14);font-size:20px;cursor:pointer;display:grid;place-items:center}
html[data-theme="dark"] body.admin-page,html[data-theme="dark"] .admin-main{background:#08111f;color:#e5e7eb}
html[data-theme="dark"] .admin-card,html[data-theme="dark"] .stat-card,html[data-theme="dark"] .kpi-card,html[data-theme="dark"] .admin-sort-row{background:#111827;color:#e5e7eb;border-color:#334155}
html[data-theme="dark"] .kpi-card small,html[data-theme="dark"] .kpi-card em,html[data-theme="dark"] .admin-header p,html[data-theme="dark"] .muted,html[data-theme="dark"] th,html[data-theme="dark"] .metric-row small,html[data-theme="dark"] .activity-row small{color:#94a3b8}
html[data-theme="dark"] .quick-actions a{background:#0f172a;color:#dbeafe}
html[data-theme="dark"] .quick-actions a:hover{background:#172554;color:#fff}
html[data-theme="dark"] .bar-track{background:#1e293b}
html[data-theme="dark"] table td,html[data-theme="dark"] table th{border-color:#273449}
html[data-theme="dark"] .form-grid input,html[data-theme="dark"] .form-grid select,html[data-theme="dark"] .form-grid textarea,html[data-theme="dark"] .stack input,html[data-theme="dark"] .stack textarea,html[data-theme="dark"] .stack select{background:#0f172a;color:#e5e7eb;border-color:#334155}
html[data-theme="dark"] .secondary-btn{background:#1e293b;color:#e5e7eb}
html[data-theme="dark"] .admin-theme-toggle{background:#111827;color:#f8fafc;border-color:#334155}
@media(max-width:900px){.admin-theme-toggle{right:12px;top:12px;width:42px;height:42px}.admin-mobile-bar{padding-right:64px!important}}


/* v2.0.8 - reliable explicit light/dark theme states */
html[data-theme="light"] body.app-shell,
html[data-theme="light"] .workspace,
html[data-theme="light"] .messages-panel,
html[data-theme="light"] .details-panel{
  background:#f8fafc !important;
  color:#0f172a !important;
}
html[data-theme="light"] .topbar,
html[data-theme="light"] .composer,
html[data-theme="light"] .modal-card{
  background:#ffffff !important;
  color:#0f172a !important;
  border-color:#cbd5e1 !important;
}
html[data-theme="light"] .sidebar{
  background:linear-gradient(180deg,#eef4ff,#e2e8f0) !important;
  color:#0f172a !important;
  border-right:1px solid #cbd5e1;
}
html[data-theme="light"] .sidebar .main-nav a,
html[data-theme="light"] .sidebar .channel-link,
html[data-theme="light"] .sidebar-user a{
  color:#334155 !important;
}
html[data-theme="light"] .sidebar .main-nav a:hover,
html[data-theme="light"] .sidebar .main-nav a.active,
html[data-theme="light"] .sidebar .channel-link:hover,
html[data-theme="light"] .sidebar .channel-link.selected{
  color:#fff !important;
}
html[data-theme="light"] .brand-lockup small,
html[data-theme="light"] .sidebar-user small,
html[data-theme="light"] .nav-heading,
html[data-theme="light"] .channel-category{
  color:#64748b !important;
}
html[data-theme="light"] .sidebar-user{border-color:#cbd5e1 !important}
html[data-theme="light"] .workspace-picker select{
  background:#fff !important;
  color:#0f172a !important;
  border-color:#cbd5e1 !important;
}
html[data-theme="light"] .mobile-bottom{
  background:#ffffff !important;
  border-color:#cbd5e1 !important;
}
html[data-theme="light"] .mobile-bottom a{color:#334155 !important}
html[data-theme="light"] .message-text{color:#0f172a !important}
html[data-theme="light"] .message-actions button{
  background:#fff !important;
  color:#334155 !important;
  border-color:#cbd5e1 !important;
}
html[data-theme="light"] #attachBtn,
html[data-theme="light"] #scheduleBtn{
  background:#f1f5f9 !important;
  color:#334155 !important;
}
html[data-theme="light"] .theme-toggle{
  background:#f1f5f9 !important;
  color:#0f172a !important;
}
html[data-theme="dark"] .theme-toggle{
  background:#1e293b !important;
  color:#f8fafc !important;
}
html[data-theme="light"] body.admin-page,
html[data-theme="light"] .admin-main{background:#f1f5f9 !important;color:#0f172a !important}
html[data-theme="light"] .admin-card,
html[data-theme="light"] .stat-card,
html[data-theme="light"] .kpi-card,
html[data-theme="light"] .admin-sort-row{background:#fff !important;color:#0f172a !important;border-color:#e2e8f0 !important}
