﻿/* Dark corporate‑futuristic glass theme
   - Centralized tokens and component rules for the entire app
   - Keeps only global tokens, utilities and non-layout components.
   - Topbar/sidebar/menu-specific layout & visuals were moved to Site.Master
*/

@import url('https://fonts.googleapis.com/css2?family=Sora:wght@300;400;600&display=swap');

:root {
    /* Palette */
    --c1: #55B0B0; /* Primary Teal */
    --c2: #1C5858; /* Primary Dark */
    --bg-900: #05080C; /* Deep Navy-Black background */
    --text: #E8F1F1; /* Soft White text */
    /* Glass tokens */
    --glass-light: rgba(255,255,255,0.05);
    --glass-medium: rgba(255,255,255,0.08);
    --glass-strong: rgba(255,255,255,0.12);
    --border-white-08: rgba(255,255,255,0.08);
    --border-white-06: rgba(255,255,255,0.06);
    /* Glow */
    --glow-teal: rgba(85,176,176,0.55);
    --glow-soft: rgba(255,255,255,0.25);
    /* Status */
    --status-active-bg: rgba(124,224,192,0.12);
    --status-active-border: rgba(124,224,192,0.4);
    --status-active-text: #7CE0C0;
    /* Layout / motion */
    --radius: 18px;
    --sidebar-width: 260px;
    --sidebar-collapsed-width: 72px;
    --topbar-height: 56px;
    --statusbar-height: 48px;
    --ease: cubic-bezier(.16,.84,.44,1);
    --duration: 260ms;
    --slow: 900ms;
}

/* -----------------------
   Status bar (top of app) - global/status only
   ----------------------- */

.status-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--statusbar-height);
    background: linear-gradient(90deg, rgba(10,12,18,0.95), rgba(18,20,28,0.95));
    border-bottom: 1px solid rgba(255,255,255,0.03);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    z-index: 1700;
    color: rgba(232,241,241,0.95);
    gap: 12px;
    font-size: 0.95rem;
}

    .status-bar .left,
    .status-bar .center,
    .status-bar .right {
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .status-bar .badge {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 20px;
        height: 20px;
        padding: 0 6px;
        border-radius: 999px;
        background: var(--accent, #ff6b6b);
        color: #fff;
        font-size: 0.75rem;
        line-height: 1;
    }

/* brand inline used in status bar */
.status-brand-logo {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    object-fit: contain;
}

.status-brand-text {
    margin-left: 8px;
    font-weight: 600;
}

/* reserve space for status-bar so page content is not hidden */
.app-layout {
    padding-top: var(--statusbar-height);
}

/* compact center hidden on small screens */
@media (max-width: 991px) {
    .status-bar .center {
        display: none;
    }
}

/* -----------------------
   Global base / background
   ----------------------- */

* {
    box-sizing: border-box;
}

html, body, form {
    height: 100%;
}

body {
    margin: 0;
    font-family: "Sora", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    color: var(--text);
    background: radial-gradient(circle at top left, #0b141a 0, var(--bg-900) 55%, #020406 100%);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
}

/* Neon LED strips (global background accents) */
.led-strip {
    position: fixed;
    width: 300%;
    height: 12px;
    border-radius: 12px;
    background: linear-gradient(90deg, var(--c1), var(--c2), var(--c1));
    background-size: 200% 100%;
    animation: pulse 3s linear infinite;
    filter: blur(2px) brightness(1.6);
    opacity: 0.45;
    z-index: 0;
    pointer-events: none;
    left: 0;
}

    .led-strip.strip1 {
        top: 18%;
        left: -50%;
        transform: rotate(-32deg);
    }

    .led-strip.strip2 {
        top: 72%;
        left: -40%;
        transform: rotate(-32deg);
    }

@keyframes pulse {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

/* Links */
a {
    color: var(--c1);
    text-decoration: none;
}

    a:hover {
        text-decoration: underline;
    }

/* -----------------------
   Card / Panel
   ----------------------- */

.card {
    background: var(--glass-light);
    backdrop-filter: blur(20px);
    border-radius: var(--radius);
    padding: 16px;
    border: 1px solid var(--border-white-08);
    color: var(--text);
}

/* -----------------------
   Main column / content
   ----------------------- */

.main-column {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(5,8,12,0.64), rgba(5,8,12,0.72));
    border: 1px solid rgba(255,255,255,0.03);
    z-index: 2;
    transition: margin-left 220ms var(--ease);
}

/* Desktop main-column margin left reserved for sidebar width (layout-aware) */
@media (min-width: 992px) {
    .main-column {
        margin-left: calc(var(--sidebar-width) + 18px);
    }
}

/* -----------------------
   Buttons & UI elements
   ----------------------- */

.btn, .btn-special, .glass-btn, .glass-action-btn {
    font-family: inherit;
    border: 1px solid rgba(255,255,255,0.12);
    background: linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0.03));
    color: var(--c1);
    padding: 8px 12px;
    border-radius: 16px;
    cursor: pointer;
    transition: transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
}

/* -----------------------
   Utility animations & accessibility
   ----------------------- */

@keyframes sheen {
    0% {
        transform: skewX(-18deg) translateX(-100%);
        opacity: 0;
    }

    50% {
        transform: skewX(-18deg) translateX(0%);
        opacity: 1;
    }

    100% {
        transform: skewX(-18deg) translateX(100%);
        opacity: 0;
    }
}

@keyframes microFloat {
    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-4px);
    }

    100% {
        transform: translateY(0);
    }
}

.menu-item.floaty {
    animation: microFloat 8s ease-in-out infinite;
}

@media (max-width:900px) {
    .content-wrap {
        padding: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sidebar-lg::before, .menu-item, .menu-item::after, .topbar::before, .topbar::after {
        animation: none !important;
        transition: none !important;
    }

    * {
        scroll-behavior: auto;
    }
}

/* Utility when theme is ready */
.theme-ready .card {
    will-change: transform, opacity;
}
