/* ===========================================================
   ReliefMap
   Sidebar Stylesheet
   Author : Vigneshan S
   Year : 2026
=========================================================== */

/* ===========================================================
   SIDEBAR
=========================================================== */

.sidebar{

    position:fixed;

    top:0;

    left:0;

    width:270px;

    height:100vh;

    height:100dvh;

background:linear-gradient(
        180deg,
        #0b1e2b,
        #0e2a35
    );

    color:white;

    display:flex;

    flex-direction:column;

    overflow-y:auto;

    overflow-x:hidden;

    z-index:1000;

    box-shadow:6px 0 25px rgba(0,0,0,.15);

    transition:.35s ease;

}

/* ===========================================================
   LOGO
=========================================================== */

.logo{

    display:flex;

    align-items:center;

    gap:15px;

    padding:30px 25px;

    border-bottom:1px solid rgba(255,255,255,.08);

}

.logo i{

    width:60px;

    height:60px;

    border-radius:16px;

background:var(--gradient);

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:28px;

    color:white;

}

.logo h2{

    font-size:1.4rem;

    color:white;

}

.logo span{

    display:block;

    margin-top:4px;

    color:#94a3b8;

    font-size:.8rem;

}

/* ===========================================================
   MENU
=========================================================== */

.menu{

    flex:1;

    padding:25px 0;

}

.menu li{

    margin:4px 12px;

    border-radius:14px;

}

.menu li a{

    display:flex;

    align-items:center;

    gap:16px;

    padding:14px 18px;

    border-radius:14px;

    color:#cbd5e1;

    font-weight:500;

    text-decoration:none;

    cursor:pointer;

    width:100%;

    transition:.3s;

    -webkit-tap-highlight-color:transparent;

}

.menu li a i{

    width:22px;

    text-align:center;

    font-size:18px;

    flex-shrink:0;

    transition:.3s;

}

.menu li a span{

    white-space:nowrap;

    transition:.3s;

}

/* ===========================================================
   HOVER  — ReliefMap green/teal
=========================================================== */

.menu li a:hover{

    background:linear-gradient(
        135deg,
        #1ABFAC,
        #159A8A
    );

    color:white;

    transform:translateX(4px);

    box-shadow:0 6px 18px rgba(20,184,166,.35);

}

.menu li a:hover i{

    color:white;

}

/* ===========================================================
   PRESSED / TOUCH STATE
=========================================================== */

.menu li a:active{

    transform:translateX(2px) scale(.98);

}

/* ===========================================================
   ACTIVE  — ReliefMap green/teal
=========================================================== */

.menu li.active{

    position:relative;

}

.menu li.active a{

    background:linear-gradient(
        135deg,
        #1ABFAC,
        #159A8A
    );

    color:white;

    font-weight:600;

    box-shadow:0 8px 20px rgba(20,184,166,.45);

}

.menu li.active a i{

    color:white;

}

/* ===========================================================
   ACTIVE BAR (teal accent on the left)
=========================================================== */

.menu li.active::before{

    content:"";

    position:absolute;

    left:-12px;

    top:50%;

    transform:translateY(-50%);

    width:5px;

    height:38px;

    border-radius:20px;

    background:#2DD4BF;

    box-shadow:0 0 12px rgba(45,212,191,.7);

}

/* ===========================================================
   MENU DIVIDER
=========================================================== */

.menu-title{

    color:#94a3b8;

    font-size:.75rem;

    text-transform:uppercase;

    letter-spacing:1px;

    margin:25px 30px 10px;

}
/* ===========================================================
   USER PANEL
=========================================================== */

.sidebar-user{

    padding:20px;

    margin:15px;

    border-radius:18px;

    background:rgba(255,255,255,.06);

    border:1px solid rgba(255,255,255,.08);

}

.sidebar-user .user-info{

    display:flex;

    align-items:center;

    gap:15px;

}

.sidebar-user img{

    width:55px;

    height:55px;

    border-radius:50%;

    object-fit:cover;

    border:3px solid rgba(255,255,255,.2);

}

.sidebar-user h4{

    color:white;

    font-size:1rem;

}

.sidebar-user p{

    color:#94a3b8;

    font-size:.8rem;

    margin-top:4px;

}

/* ===========================================================
   SYSTEM STATUS
=========================================================== */

.system-status{

    margin:20px 16px 24px;

    padding:22px 20px;

    border-radius:20px;

    background:rgba(255,255,255,.07);

    backdrop-filter:blur(20px);

    -webkit-backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.12);

    box-shadow:0 12px 32px rgba(0,0,0,.22);

    flex-shrink:0;

}

.ss-head{

    display:flex;

    align-items:center;

    gap:10px;

    margin-bottom:16px;

}

.ss-head i{

    width:34px;

    height:34px;

    border-radius:10px;

    background:rgba(34,197,94,.18);

    color:#4ade80;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:16px;

}

.ss-head h4{

    color:white;

    font-size:.95rem;

    letter-spacing:.3px;

}

.ss-status-line{

    display:flex;

    align-items:center;

    gap:10px;

    margin-bottom:14px;

}

.ss-status-line .status-dot{

    width:11px;

    height:11px;

    border-radius:50%;

    background:#22c55e;

    box-shadow:0 0 0 4px rgba(34,197,94,.22);

    animation:pulse 2s infinite;

    flex-shrink:0;

}

.ss-status-line span{

    color:#d1fae5;

    font-size:.85rem;

    font-weight:600;

}

.ss-item{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:9px 0;

    border-top:1px solid rgba(255,255,255,.08);

    color:#cbd5e1;

    font-size:.82rem;

}

.ss-item strong{

    color:white;

    font-weight:600;

}

.ss-item .ss-value{

    color:#4ade80;

    font-weight:600;

}

/* ===========================================================
   STORAGE BAR
=========================================================== */

.storage{

    margin-top:14px;

    padding-top:14px;

    border-top:1px solid rgba(255,255,255,.08);

}

.storage-header{

    display:flex;

    justify-content:space-between;

    color:#cbd5e1;

    font-size:.85rem;

    margin-bottom:8px;

}

.storage-bar{

    width:100%;

    height:8px;

    background:rgba(255,255,255,.08);

    border-radius:50px;

    overflow:hidden;

}

.storage-fill{

    width:72%;

    height:100%;

background:linear-gradient(
        90deg,
        #2DD4BF,
        #14B8A6
    );

    border-radius:50px;

}

/* ===========================================================
   AI PANEL
=========================================================== */

.ai-panel{

    margin:15px;

    padding:20px;

    border-radius:18px;

background:var(--gradient);

    color:white;

    text-align:center;

}

.ai-panel i{

    font-size:36px;

    margin-bottom:12px;

}

.ai-panel h3{

    margin-bottom:10px;

}

.ai-panel p{

    color:#e2e8f0;

    font-size:.85rem;

    margin-bottom:15px;

}

.ai-panel button{

    width:100%;

    padding:12px;

    border-radius:12px;

    background:white;

    color:#0d9488;

    font-weight:600;

}

/* ===========================================================
   COLLAPSE BUTTON
=========================================================== */

.sidebar-toggle{

    position:absolute;

    top:30px;

    right:-18px;

    width:36px;

    height:36px;

    border-radius:50%;

background:var(--primary);

    color:white;

    display:flex;

    justify-content:center;

    align-items:center;

    cursor:pointer;

    box-shadow:0 8px 20px rgba(0,0,0,.25);

    transition:.3s;

}

.sidebar-toggle:hover{

    transform:rotate(180deg);

}

/* ===========================================================
   COLLAPSED SIDEBAR
=========================================================== */

.sidebar.collapsed{

    width:90px;

}

.sidebar.collapsed .logo h2,

.sidebar.collapsed .logo span,

.sidebar.collapsed .menu a span,

.sidebar.collapsed .sidebar-user,

.sidebar.collapsed .system-status,

.sidebar.collapsed .ai-panel{

    display:none;

}

.sidebar.collapsed .menu a{

    justify-content:center;

}

.sidebar.collapsed + .content{

    margin-left:90px;

}

/* ===========================================================
   CUSTOM SCROLLBAR
=========================================================== */

.sidebar::-webkit-scrollbar{

    width:6px;

}

.sidebar::-webkit-scrollbar-thumb{

    background:#2DD4BF;

    border-radius:20px;

}

/* ===========================================================
   MOBILE
=========================================================== */

.sidebar-overlay{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.45);

    display:none;

    z-index:999;

}

.sidebar.mobile-open{

    left:0;

}

@media(max-width:992px){

    .sidebar{

        left:-100%;

    }

}

/* ===========================================================
   ANIMATIONS
=========================================================== */

@keyframes pulse{

    0%{

        transform:scale(1);

        opacity:1;

    }

    50%{

        transform:scale(1.5);

        opacity:.5;

    }

    100%{

        transform:scale(1);

        opacity:1;

    }

}

/* ===========================================================
   END OF SIDEBAR
=========================================================== */