/* ============================================================
   MikroTik AI Assistant - Base Theme
   Custom layer on top of Bootstrap 5. Supports light & dark.
   ============================================================ */

:root {
    --mtai-primary: #2563eb;
    --mtai-accent: #06b6d4;
    --mtai-radius: 14px;
}

[data-bs-theme="dark"] {
    --mtai-bg: #0b1020;
    --mtai-surface: #131a2e;
    --mtai-border: #1f2a44;
}

[data-bs-theme="light"] {
    --mtai-bg: #f1f5f9;
    --mtai-surface: #ffffff;
    --mtai-border: #e2e8f0;
}

body {
    background: var(--mtai-bg);
    min-height: 100vh;
}

.guest-body {
    display: flex;
    align-items: center;
    min-height: 100vh;
    background:
        radial-gradient(1200px 600px at 10% -10%, rgba(37, 99, 235, 0.18), transparent 60%),
        radial-gradient(900px 500px at 100% 0%, rgba(6, 182, 212, 0.14), transparent 55%),
        var(--mtai-bg);
}

.brand-badge {
    display: inline-grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: var(--mtai-radius);
    background: linear-gradient(135deg, var(--mtai-primary), var(--mtai-accent));
    color: #fff;
    font-size: 1.6rem;
    box-shadow: 0 8px 24px rgba(37, 99, 235, 0.35);
}

.feature-card {
    background: var(--mtai-surface);
    border: 1px solid var(--mtai-border);
    border-radius: var(--mtai-radius);
    transition: transform .18s ease, box-shadow .18s ease;
}

.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
}

.feature-icon {
    display: inline-grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: rgba(37, 99, 235, 0.15);
    color: var(--mtai-accent);
    font-size: 1.3rem;
}

.error-code {
    font-size: clamp(4rem, 12vw, 8rem);
    font-weight: 800;
    line-height: 1;
    background: linear-gradient(135deg, var(--mtai-primary), var(--mtai-accent));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ============================================================
   Stat Cards (Dashboard)
   ============================================================ */
.stat-card {
    border-radius: var(--mtai-radius);
    padding: 1rem 1.25rem;
    border: 1px solid var(--mtai-border);
    background: var(--mtai-surface);
    transition: box-shadow .18s, transform .18s;
}
.stat-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.12); transform: translateY(-2px); }

/* Soft tinted icon tiles — do NOT use Bootstrap bg-* + text-* (same hue = invisible) */
.stat-icon {
    width: 44px; height: 44px; border-radius: 12px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.25rem; flex-shrink: 0; line-height: 1;
}
.stat-icon.bg-primary,
.stat-icon.bg-primary.bg-opacity-15 {
    background-color: rgba(37, 99, 235, 0.15) !important;
    color: #2563eb !important;
}
.stat-icon.bg-warning,
.stat-icon.bg-warning.bg-opacity-15 {
    background-color: rgba(245, 158, 11, 0.18) !important;
    color: #d97706 !important;
}
.stat-icon.bg-info,
.stat-icon.bg-info.bg-opacity-15 {
    background-color: rgba(6, 182, 212, 0.15) !important;
    color: #0891b2 !important;
}
.stat-icon.bg-success,
.stat-icon.bg-success.bg-opacity-15 {
    background-color: rgba(22, 163, 74, 0.15) !important;
    color: #16a34a !important;
}
.stat-icon .bi { color: inherit !important; }
.bg-opacity-15 { --bs-bg-opacity: 0.15; }

.stat-value { font-size: 1.6rem; font-weight: 700; line-height: 1.1; }
.stat-label { font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; }

/* Status badges */
.badge-online  { background: rgba(22,163,74,.18); color: #16a34a; font-size:.7rem; padding:.2em .55em; border-radius:99px; font-weight:600; }
.badge-offline { background: rgba(100,116,139,.18); color: #64748b; font-size:.7rem; padding:.2em .55em; border-radius:99px; font-weight:600; }
.badge-error   { background: rgba(220,38,38,.15); color: #dc2626; font-size:.7rem; padding:.2em .55em; border-radius:99px; font-weight:600; }

/* Card header consistency */
.card-header {
    border-bottom: 1px solid var(--mtai-border);
    background: transparent;
    font-weight: 600;
    font-size: .85rem;
}

/* App shell (expanded in later stages) */
.app-shell { display: flex; min-height: 100vh; }
.app-sidebar {
    width: 260px;
    background: var(--mtai-surface);
    border-right: 1px solid var(--mtai-border);
    flex-shrink: 0;
}
.app-main { flex: 1; min-width: 0; }
