:root {
    --bg-main: #0f172a;
    --bg-secondary: #1e293b;
    --bg-tertiary: #334155;
    --text-primary: #f8fafc;
    --text-secondary: #94a3b8;
    --primary: #3b82f6;
    --primary-hover: #2563eb;
    --success: #10b981;
    --success-hover: #059669;
    --danger: #ef4444;
    --danger-hover: #dc2626;
    --warning: #f59e0b;
    --warning-hover: #d97706;
    --border-color: rgba(255, 255, 255, 0.08);
    --border-radius: 12px;
    --transition: all 0.3s ease;
    --shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
    --glow: 0 0 20px rgba(59,130,246,0.1);
    /* Landing page accent */
    --accent-red: #dc2626;
    --accent-red-dim: rgba(220,38,38,0.15);
}

* { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Inter', sans-serif; }
body { background-color: var(--bg-main); color: var(--text-primary); display:flex; height:100vh; overflow:hidden; }
.app-container { display:flex; width:100%; height:100%; }

/* ═══════════════════════════════════════════
   LANDING PAGE
   ═══════════════════════════════════════════ */
.landing-page {
    position: fixed; inset: 0; z-index: 100;
    display: flex; align-items: center; justify-content: center;
    background: #0a0a0f;
    overflow: hidden;
}
.landing-page.fade-out {
    animation: landingFadeOut 0.8s ease forwards;
}
@keyframes landingFadeOut {
    0% { opacity:1; transform:scale(1); }
    100% { opacity:0; transform:scale(1.05); pointer-events:none; }
}

/* Animated Background */
.landing-bg { position:absolute; inset:0; overflow:hidden; }
.bg-grid {
    position:absolute; inset:0;
    background-image: linear-gradient(rgba(220,38,38,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(220,38,38,0.03) 1px, transparent 1px);
    background-size: 60px 60px;
    animation: gridMove 20s linear infinite;
}
@keyframes gridMove { from{transform:translate(0,0)} to{transform:translate(60px,60px)} }

.bg-glow {
    position:absolute; border-radius:50%;
    filter: blur(120px); opacity: 0.12;
    animation: glowPulse 8s ease-in-out infinite alternate;
}
.bg-glow-1 { width:500px; height:500px; background:#dc2626; top:-10%; left:-5%; animation-delay:0s; }
.bg-glow-2 { width:400px; height:400px; background:#991b1b; bottom:-10%; right:-5%; animation-delay:3s; }
.bg-glow-3 { width:300px; height:300px; background:#7f1d1d; top:40%; left:50%; animation-delay:6s; }
@keyframes glowPulse { 0%{opacity:0.08;transform:scale(1)} 100%{opacity:0.18;transform:scale(1.15)} }

/* Landing Content */
.landing-content {
    position:relative; z-index:2;
    text-align:center; max-width:600px; padding:40px;
    animation: contentFadeIn 1.2s ease;
}
@keyframes contentFadeIn { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }

.landing-logo { margin-bottom:24px; }
.logo-icon-wrap {
    display:inline-flex; align-items:center; justify-content:center;
    width:90px; height:90px; border-radius:24px;
    background: linear-gradient(135deg, rgba(220,38,38,0.2), rgba(127,29,29,0.2));
    border: 1px solid rgba(220,38,38,0.3);
    box-shadow: 0 0 40px rgba(220,38,38,0.15), inset 0 0 30px rgba(220,38,38,0.05);
    animation: logoPulse 3s ease-in-out infinite;
}
.logo-icon-wrap i { font-size:48px; color:#ef4444; filter:drop-shadow(0 0 12px rgba(239,68,68,0.5)); }
@keyframes logoPulse { 0%,100%{box-shadow:0 0 40px rgba(220,38,38,0.15)} 50%{box-shadow:0 0 60px rgba(220,38,38,0.25)} }

.landing-title {
    font-size: 3.5rem; font-weight: 900; letter-spacing: 2px;
    background: linear-gradient(135deg, #ef4444, #dc2626, #f87171);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 2px 8px rgba(239,68,68,0.3));
    margin-bottom: 8px;
    line-height: 1.2;
}
.landing-subtitle {
    font-size: 1.05rem; color: #64748b; font-weight: 500; letter-spacing: 1px;
    text-transform: uppercase;
}
.landing-divider {
    width: 80px; height: 3px; margin: 28px auto;
    background: linear-gradient(90deg, transparent, #dc2626, transparent);
    border-radius: 2px;
}

/* Legal Box */
.legal-box {
    display:flex; align-items:flex-start; gap:14px;
    padding:18px 22px; margin:24px 0;
    background: rgba(220,38,38,0.06);
    border: 1px solid rgba(220,38,38,0.15);
    border-left: 3px solid #dc2626;
    border-radius:10px; text-align:left;
}
.legal-icon { color:#dc2626; font-size:1.5rem; margin-top:2px; flex-shrink:0; }
.legal-text p { font-size:0.85rem; color:#94a3b8; line-height:1.6; }
.legal-text p strong { color:#cbd5e1; font-weight:600; }

/* Login Button */
.landing-login-btn {
    display:inline-flex; align-items:center; gap:10px;
    padding:14px 40px; margin-top:12px;
    background: linear-gradient(135deg, #dc2626, #991b1b);
    color:white; border:none; border-radius:10px;
    font-size:1rem; font-weight:700; cursor:pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(220,38,38,0.3);
    letter-spacing: 0.5px;
}
.landing-login-btn:hover {
    transform:translateY(-2px);
    box-shadow: 0 8px 30px rgba(220,38,38,0.4);
}
.landing-login-btn:active { transform:translateY(0); }
.landing-login-btn i { font-size:1.2rem; }

/* Footer */
.landing-footer { margin-top:40px; }
.landing-footer p { font-size:0.78rem; color:#475569; }
.landing-footer-sub { margin-top:4px; font-size:0.72rem !important; color:#334155 !important; }

/* ═══════════════════════════════════════════
   LOGIN MODAL
   ═══════════════════════════════════════════ */
.login-modal-overlay {
    position:fixed; inset:0; z-index:200;
    display:none; align-items:center; justify-content:center;
    background:rgba(0,0,0,0.7); backdrop-filter:blur(8px);
}
.login-modal-overlay.active { display:flex; animation:modalIn 0.3s ease; }
@keyframes modalIn { from{opacity:0} to{opacity:1} }

.login-modal {
    position:relative;
    width:100%; max-width:420px;
    background:#111827; border:1px solid rgba(220,38,38,0.2);
    border-radius:16px; padding:40px;
    box-shadow: 0 25px 60px rgba(0,0,0,0.5), 0 0 40px rgba(220,38,38,0.08);
    animation: modalSlideIn 0.4s ease;
}
@keyframes modalSlideIn { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }

.login-modal-header { text-align:center; margin-bottom:28px; }
.login-logo-mini {
    display:inline-flex; align-items:center; justify-content:center;
    width:56px; height:56px; border-radius:14px;
    background:rgba(220,38,38,0.12); margin-bottom:16px;
    border:1px solid rgba(220,38,38,0.2);
}
.login-logo-mini i { font-size:30px; color:#ef4444; }
.login-modal-header h2 { font-size:1.6rem; font-weight:800; color:var(--text-primary); margin-bottom:6px; }
.login-modal-header p { font-size:0.88rem; color:var(--text-secondary); }

.login-form { display:flex; flex-direction:column; gap:16px; }
.login-field { display:flex; flex-direction:column; gap:6px; }
.login-field label { font-size:0.82rem; color:var(--text-secondary); font-weight:500; display:flex; align-items:center; gap:6px; }
.login-field label i { color:#dc2626; }
.login-field input {
    background:#0a0f1a; border:1px solid rgba(220,38,38,0.15); border-radius:10px;
    padding:14px 16px; color:var(--text-primary); font-size:0.95rem;
    transition:var(--transition); outline:none;
}
.login-field input:focus { border-color:#dc2626; box-shadow:0 0 0 3px rgba(220,38,38,0.1); }

.login-submit-btn {
    padding:14px; background:linear-gradient(135deg,#dc2626,#991b1b);
    color:white; border:none; border-radius:10px;
    font-size:1rem; font-weight:700; cursor:pointer;
    transition:var(--transition); margin-top:4px;
    display:flex; align-items:center; justify-content:center; gap:8px;
}
.login-submit-btn:hover { box-shadow:0 4px 20px rgba(220,38,38,0.3); transform:translateY(-1px); }

.login-error {
    display:flex; align-items:center; gap:8px;
    padding:10px 14px; background:rgba(220,38,38,0.1);
    border:1px solid rgba(220,38,38,0.2); border-radius:8px;
    color:#f87171; font-size:0.85rem; animation:shake 0.3s ease;
}
@keyframes shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-6px)} 75%{transform:translateX(6px)} }

.login-close {
    position:absolute; top:14px; right:14px;
    background:none; border:none; color:var(--text-secondary);
    font-size:1.5rem; cursor:pointer; transition:var(--transition);
    width:32px; height:32px; display:flex; align-items:center; justify-content:center;
    border-radius:8px;
}
.login-close:hover { color:#ef4444; background:rgba(220,38,38,0.1); }

/* ═══════════════════════════════════════════
   DASHBOARD (existing styles)
   ═══════════════════════════════════════════ */
.sidebar { width:260px; background:linear-gradient(180deg, #1a2744 0%, var(--bg-secondary) 100%); border-right:1px solid var(--border-color); display:flex; flex-direction:column; padding:20px; flex-shrink:0; }
.brand { display:flex; align-items:center; gap:12px; margin-bottom:32px; padding:8px; }
.brand i { font-size:32px; color:var(--primary); filter:drop-shadow(0 0 8px rgba(59,130,246,0.4)); }
.brand h2 { font-size:1.15rem; font-weight:800; background:linear-gradient(135deg,#3b82f6,#8b5cf6); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

.nav-menu { flex:1; display:flex; flex-direction:column; gap:4px; }
.nav-item { background:transparent; border:none; color:var(--text-secondary); text-align:left; padding:10px 14px; border-radius:8px; font-size:0.9rem; font-weight:500; cursor:pointer; transition:var(--transition); display:flex; align-items:center; gap:10px; }
.nav-item:hover { background:rgba(59,130,246,0.1); color:var(--text-primary); }
.nav-item.active { background:linear-gradient(135deg,var(--primary),#6366f1); color:white; box-shadow:0 4px 12px rgba(59,130,246,0.3); }
.nav-item i { font-size:1.2rem; }

.sidebar-footer { padding-top:16px; border-top:1px solid var(--border-color); display:flex; flex-direction:column; gap:10px; }
.status-indicator { font-weight:600; font-size:0.85rem; }
.status-indicator.online { color:var(--success); }
.status-indicator.offline { color:var(--danger); }

.content-area { flex:1; display:flex; flex-direction:column; overflow-y:auto; background:var(--bg-main); }
.topbar { height:64px; padding:0 32px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border-color); background:rgba(30,41,59,0.85); backdrop-filter:blur(12px); position:sticky; top:0; z-index:10; }
.topbar h1 { font-size:1.25rem; font-weight:700; }
.user-profile { display:flex; align-items:center; gap:8px; font-weight:500; font-size:0.9rem; color:var(--text-secondary); }
.user-profile i { font-size:28px; color:var(--primary); }

.tab-content-wrapper { padding:28px 32px; }
.tab-pane { display:none; animation:fadeIn 0.35s ease; }
.tab-pane.active { display:block; }
@keyframes fadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

/* Stat Cards */
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; }
.stat-card { background:var(--bg-secondary); border:1px solid var(--border-color); border-radius:var(--border-radius); padding:18px 20px; display:flex; align-items:center; gap:16px; transition:var(--transition); }
.stat-card:hover { border-color:rgba(59,130,246,0.3); box-shadow:var(--glow); transform:translateY(-2px); }
.stat-icon { width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.4rem; flex-shrink:0; }
.stat-label { display:block; font-size:0.75rem; color:var(--text-secondary); font-weight:500; text-transform:uppercase; letter-spacing:0.5px; }
.stat-value { display:block; font-size:1.25rem; font-weight:700; margin-top:2px; }

/* Grid & Cards */
.grid-layout { display:grid; grid-template-columns:repeat(auto-fit,minmax(380px,1fr)); gap:20px; }
.card { background:var(--bg-secondary); border:1px solid var(--border-color); border-radius:var(--border-radius); padding:22px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:14px; transition:var(--transition); }
.card:hover { border-color:rgba(255,255,255,0.15); }
.card h3 { font-size:1.1rem; font-weight:600; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--border-color); padding-bottom:10px; }
.card h3 i { color:var(--primary); font-size:1.3rem; }
.col-span-2 { grid-column:span 2; }

/* Log Box */
.log-box { background:#0a0f1a; border:1px solid rgba(59,130,246,0.15); border-radius:8px; padding:14px; font-family:'JetBrains Mono','Fira Code',monospace; font-size:0.78rem; line-height:1.7; color:#94a3b8; max-height:340px; overflow-y:auto; white-space:pre-wrap; word-break:break-all; }
.log-box::-webkit-scrollbar { width:6px; }
.log-box::-webkit-scrollbar-track { background:transparent; }
.log-box::-webkit-scrollbar-thumb { background:var(--bg-tertiary); border-radius:3px; }

/* Forms */
.form-group { display:flex; flex-direction:column; gap:6px; }
label { font-size:0.82rem; color:var(--text-secondary); font-weight:500; }
input, select, textarea { background:var(--bg-main); border:1px solid var(--border-color); border-radius:8px; padding:10px 14px; color:var(--text-primary); font-size:0.9rem; transition:var(--transition); outline:none; }
input:focus, select:focus, textarea:focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(59,130,246,0.15); }
textarea { resize:vertical; min-height:60px; }
.input-group { display:flex; }
.input-group input { border-top-right-radius:0; border-bottom-right-radius:0; flex:1; }
.input-group button { border-top-left-radius:0; border-bottom-left-radius:0; }

/* Buttons */
.btn { padding:10px 18px; border:none; border-radius:8px; font-size:0.88rem; font-weight:600; cursor:pointer; transition:var(--transition); display:inline-flex; align-items:center; justify-content:center; gap:6px; }
.btn:active { transform:scale(0.97); }
.btn-sm { padding:8px 14px; font-size:0.82rem; }
.btn-primary { background:var(--primary); color:white; }
.btn-primary:hover { background:var(--primary-hover); box-shadow:0 4px 12px rgba(59,130,246,0.3); }
.btn-success { background:var(--success); color:white; }
.btn-success:hover { background:var(--success-hover); }
.btn-danger { background:var(--danger); color:white; }
.btn-danger:hover { background:var(--danger-hover); }
.btn-warning { background:var(--warning); color:white; }
.btn-warning:hover { background:var(--warning-hover); }
.btn-secondary { background:var(--bg-tertiary); color:white; }
.btn-secondary:hover { background:#475569; }

.mt-2 { margin-top:14px; }
.mt-3 { margin-top:22px; }
.text-muted { color:var(--text-secondary); font-size:0.85rem; }
.text-center { text-align:center; }
.action-buttons, .power-controls { display:flex; gap:8px; flex-wrap:wrap; }

/* Toggle Switch */
.toggle-row { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; background:var(--bg-main); border-radius:8px; border:1px solid var(--border-color); }
.toggle-row span:first-child { font-size:0.9rem; font-weight:500; }
.toggle-switch { position:relative; display:inline-block; width:48px; height:26px; cursor:pointer; }
.toggle-switch input { opacity:0; width:0; height:0; }
.toggle-slider { position:absolute; inset:0; background:var(--bg-tertiary); border-radius:26px; transition:var(--transition); }
.toggle-slider::before { content:''; position:absolute; height:20px; width:20px; left:3px; bottom:3px; background:white; border-radius:50%; transition:var(--transition); }
.toggle-switch input:checked + .toggle-slider { background:var(--success); box-shadow:0 0 8px rgba(16,185,129,0.4); }
.toggle-switch input:checked + .toggle-slider::before { transform:translateX(22px); }

/* Badge */
.badge { padding:4px 10px; border-radius:20px; font-size:0.75rem; font-weight:600; }
.badge-success { background:rgba(16,185,129,0.15); color:var(--success); }
.badge-danger { background:rgba(239,68,68,0.15); color:var(--danger); }

/* Item List */
.item-list { display:flex; flex-direction:column; gap:6px; max-height:240px; overflow-y:auto; }
.item-entry { display:flex; align-items:center; justify-content:space-between; padding:8px 12px; background:var(--bg-main); border-radius:6px; border:1px solid var(--border-color); font-size:0.85rem; gap:8px; }
.item-entry span { flex:1; word-break:break-all; }
.item-entry button { flex-shrink:0; padding:4px 8px; font-size:0.75rem; }

/* Table */
.table-container { overflow-x:auto; border:1px solid var(--border-color); border-radius:8px; }
.data-table { width:100%; border-collapse:collapse; }
.data-table th, .data-table td { padding:10px 14px; text-align:left; border-bottom:1px solid var(--border-color); font-size:0.85rem; }
.data-table th { background:var(--bg-tertiary); font-weight:600; position:sticky; top:0; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.3px; color:var(--text-secondary); }
.data-table tbody tr:hover { background:rgba(59,130,246,0.05); }
.data-table .btn { padding:4px 10px; font-size:0.75rem; }

/* Toast */
#toast-container { position:fixed; bottom:24px; right:24px; display:flex; flex-direction:column; gap:10px; z-index:1000; }
.toast { background:var(--bg-secondary); border-left:4px solid var(--primary); color:var(--text-primary); padding:14px 18px; border-radius:8px; box-shadow:0 10px 25px rgba(0,0,0,0.3); display:flex; align-items:center; gap:10px; animation:slideIn 0.3s ease forwards; min-width:280px; font-size:0.88rem; backdrop-filter:blur(10px); }
.toast.error { border-left-color:var(--danger); }
.toast.success { border-left-color:var(--success); }
@keyframes slideIn { from{transform:translateX(120%);opacity:0} to{transform:translateX(0);opacity:1} }
@keyframes slideOut { from{transform:translateX(0);opacity:1} to{transform:translateX(120%);opacity:0} }

/* Members Tab */
.members-toolbar { display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; }
.members-search { position:relative; flex:1; min-width:200px; }
.members-search i { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--text-secondary); font-size:1.1rem; }
.members-search input { width:100%; padding-left:38px; }
.members-filters { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.members-filters select { min-width:140px; }
.members-stats { display:flex; gap:16px; align-items:center; }
.mass-action-bar { display:flex; align-items:center; gap:10px; padding:12px 16px; background:rgba(239,68,68,0.08); border:1px solid rgba(239,68,68,0.2); border-radius:8px; flex-wrap:wrap; }
.mass-action-bar span:first-child { font-weight:600; font-size:0.9rem; color:var(--danger); }
.member-avatar { width:32px; height:32px; border-radius:50%; object-fit:cover; }
.status-dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; }
.status-dot.online { background:#22c55e; box-shadow:0 0 6px rgba(34,197,94,0.5); }
.status-dot.idle { background:#f59e0b; }
.status-dot.dnd { background:#ef4444; }
.status-dot.offline { background:#6b7280; }
.role-badge { display:inline-block; padding:2px 8px; border-radius:10px; font-size:0.7rem; font-weight:600; margin:1px 2px; border:1px solid; }

/* Responsive */
@media (max-width:1100px) { .grid-layout{grid-template-columns:1fr} .col-span-2{grid-column:1} }
@media (max-width:768px) {
    .sidebar{display:none} .tab-content-wrapper{padding:20px} .stats-grid{grid-template-columns:repeat(2,1fr)}
    .landing-title { font-size:2.2rem; }
    .landing-content { padding:24px; }
    .login-modal { margin:16px; padding:28px; }
}
