@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

/*==================================================
RESET
==================================================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Plus Jakarta Sans',sans-serif;
}

html{
    scroll-behavior:smooth;
}

body{
    background:#050811;
    color:#ffffff;
    min-height:100vh;
    overflow-x:hidden;
    line-height:1.7;
    position:relative;
}

img{
    display:block;
    max-width:100%;
}

a{
    text-decoration:none;
    color:inherit;
    transition:.25s ease;
}

ul{
    list-style:none;
}

/*==================================================
AMBIENT GLOW BACKGROUND (site-wide, matches About)
==================================================*/

body::before{
    content:"";
    position:fixed;
    top:-350px;
    left:-250px;
    width:750px;
    height:750px;
    border-radius:50%;
    background:#605dff;
    filter:blur(220px);
    opacity:.13;
    z-index:-3;
    animation:glowOne 16s ease-in-out infinite alternate;
    pointer-events:none;
}

body::after{
    content:"";
    position:fixed;
    right:-280px;
    bottom:-320px;
    width:800px;
    height:800px;
    border-radius:50%;
    background:#00b9ff;
    filter:blur(240px);
    opacity:.12;
    z-index:-3;
    animation:glowTwo 20s ease-in-out infinite alternate;
    pointer-events:none;
}

@keyframes glowOne{
    0%{ transform:translate(0,0); }
    100%{ transform:translate(170px,130px); }
}

@keyframes glowTwo{
    0%{ transform:translate(0,0); }
    100%{ transform:translate(-180px,-140px); }
}

.noise{
    position:fixed;
    inset:0;
    pointer-events:none;
    opacity:.035;
    background-image:
        radial-gradient(circle at 20% 20%,white 1px,transparent 1px),
        radial-gradient(circle at 80% 40%,white 1px,transparent 1px),
        radial-gradient(circle at 40% 80%,white 1px,transparent 1px),
        radial-gradient(circle at 60% 60%,white 1px,transparent 1px);
    background-size:220px 220px;
    z-index:-2;
}

/*==================================================
SCROLL REVEAL (JS toggles .in-view)
==================================================*/

.reveal{
    opacity:0;
    transform:translateY(32px);
    transition:opacity .8s ease, transform .8s cubic-bezier(.16,1,.3,1);
}

.reveal.in-view{
    opacity:1;
    transform:translateY(0);
}

/*==================================================
GLOBAL BUTTON DEFAULTS
==================================================*/

button{
    font-family:'Plus Jakarta Sans',sans-serif;
    font-size:14px;
    padding:13px 22px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.04);
    backdrop-filter:blur(20px);
    color:white;
    cursor:pointer;
    transition:.3s ease;
    font-weight:600;
}

button:hover{
    background:rgba(255,255,255,.08);
    transform:translateY(-3px);
}

button:active{
    transform:translateY(0);
}

/*==================================================
CONTAINER
==================================================*/

.container{
    width:min(1200px,92%);
    margin:auto;
    position:relative;
    z-index:2;
}

/*==================================================
NAVBAR
==================================================*/

.navbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:20px min(60px,6%);
    background:rgba(6,10,18,.72);
    backdrop-filter:blur(24px);
    border-bottom:1px solid rgba(255,255,255,.06);
    position:sticky;
    top:0;
    z-index:100;
}

.logo{
    font-size:1.7rem;
    font-weight:800;
    letter-spacing:-1px;
    background:linear-gradient(135deg,#7d79ff,#45d7ff);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:#7d79ff;
}

.nav-links{
    display:flex;
    align-items:center;
    gap:38px;
}

.nav-links a{
    color:#b7c4d6;
    font-weight:500;
    font-size:.95rem;
}

.nav-links a:hover{
    color:white;
}

.nav-links a.current{
    color:white;
}

.navbar-toggle{
    display:none;
    width:42px;
    height:42px;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08);
    color:#fff;
    font-size:1.15rem;
    padding:0;
}

/*==================================================
DASHBOARD TOPBAR CHROME
(breadcrumb / page search / notifications / profile menu)
==================================================*/

.topbar-left{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.breadcrumb{
    font-size:.76rem;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#7688a0;
}

.breadcrumb span{
    color:#a9b8cc;
}

.topbar-right{
    display:flex;
    align-items:center;
    gap:14px;
}

.topbar-search{
    display:flex;
    align-items:center;
    gap:8px;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08);
    border-radius:999px;
    padding:11px 18px;
    min-width:210px;
}

.topbar-search input{
    background:transparent;
    border:none;
    outline:none;
    color:#fff;
    font-size:.85rem;
    width:100%;
    font-family:'Plus Jakarta Sans',sans-serif;
}

.topbar-search input::placeholder{
    color:#7688a0;
}

.notif-wrap,
.profile-wrap{
    position:relative;
}

.notif-bell{
    width:44px;
    height:44px;
    border-radius:999px;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.05rem;
    position:relative;
    padding:0;
}

.notif-badge{
    position:absolute;
    top:-3px;
    right:-3px;
    background:#ff5c7a;
    color:#fff;
    font-size:.65rem;
    font-weight:700;
    min-width:18px;
    height:18px;
    border-radius:999px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 4px;
    border:2px solid #050811;
}

.notif-dropdown,
.profile-menu{
    position:absolute;
    top:calc(100% + 12px);
    right:0;
    width:290px;
    background:rgba(10,14,24,.98);
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    backdrop-filter:blur(28px);
    box-shadow:0 30px 80px rgba(0,0,0,.5);
    padding:10px;
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    transition:.22s ease;
    z-index:220;
}

.notif-dropdown.open,
.profile-menu.open{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.notif-dropdown-title{
    font-size:.75rem;
    font-weight:700;
    color:#7688a0;
    text-transform:uppercase;
    letter-spacing:.06em;
    padding:8px 10px;
}

.notif-item{
    display:flex;
    gap:10px;
    padding:11px 10px;
    border-radius:12px;
    font-size:.85rem;
    color:#c7d2e0;
}

.notif-item:hover{
    background:rgba(255,255,255,.05);
}

.notif-empty{
    padding:20px 10px;
    text-align:center;
    color:#7688a0;
    font-size:.85rem;
}

.profile-btn{
    display:flex;
    align-items:center;
    gap:10px;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(20px);
    padding:8px 18px 8px 8px;
    border-radius:999px;
    font-weight:600;
    font-size:.9rem;
    color:#fff;
}

.profile-avatar{
    width:32px;
    height:32px;
    border-radius:999px;
    background:linear-gradient(135deg,#7d79ff,#45d7ff);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:.72rem;
    font-weight:800;
    color:#050811;
    flex-shrink:0;
}

.profile-name{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    line-height:1.25;
}

.profile-name small{
    color:#7688a0;
    font-weight:500;
    font-size:.72rem;
    text-transform:capitalize;
}

.profile-menu a,
.profile-menu button.menu-item{
    display:block;
    width:100%;
    text-align:left;
    padding:11px 12px;
    border-radius:12px;
    color:#c7d2e0;
    font-size:.88rem;
    font-weight:500;
    background:none;
    border:none;
}

.profile-menu a:hover,
.profile-menu button.menu-item:hover{
    background:rgba(255,255,255,.06);
    color:#fff;
}

.profile-menu hr{
    border:none;
    border-top:1px solid rgba(255,255,255,.07);
    margin:6px 0;
}

/*==================================================
LANDING PAGE HERO
==================================================*/

.hero{
    text-align:center;
    padding:140px 20px 90px;
    position:relative;
}

.hero h1{
    font-size:4.2rem;
    font-weight:800;
    line-height:1.05;
    letter-spacing:-2px;
    margin-bottom:26px;
    background:linear-gradient(135deg,#ffffff 40%,#a8b6ff 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:#ffffff;
}

.hero p{
    max-width:680px;
    margin:auto;
    color:#9dadc1;
    font-size:1.15rem;
    line-height:1.85;
}

.buttons{
    margin-top:42px;
    display:flex;
    justify-content:center;
    gap:16px;
    flex-wrap:wrap;
}

.primary,
.secondary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:16px 30px;
    border-radius:14px;
    cursor:pointer;
    transition:.35s ease;
    font-size:15px;
    font-weight:700;
}

.primary{
    background:white;
    color:#111827;
    border:none;
    box-shadow:0 18px 45px rgba(255,255,255,.12);
}

.primary:hover{
    transform:translateY(-5px);
    box-shadow:0 25px 55px rgba(255,255,255,.18);
}

.secondary{
    background:rgba(255,255,255,.04);
    color:white;
    border:1px solid rgba(255,255,255,.1);
    backdrop-filter:blur(20px);
    margin-left:0;
}

.secondary:hover{
    background:rgba(255,255,255,.09);
    transform:translateY(-5px);
}

/*==================================================
FEATURE CARDS (index.html)
==================================================*/

.features{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:26px;
    padding:90px 0 120px;
}

.card{
    position:relative;
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(28px);
    padding:34px;
    border-radius:24px;
    transition:.4s cubic-bezier(.16,1,.3,1);
    overflow:hidden;
}

.card::before{
    content:"";
    position:absolute;
    top:-90px;
    right:-90px;
    width:200px;
    height:200px;
    border-radius:50%;
    background:rgba(88,125,255,.15);
    filter:blur(60px);
    transition:.4s;
}

.card:hover{
    transform:translateY(-10px);
    border-color:rgba(88,180,255,.4);
    box-shadow:0 30px 70px rgba(0,0,0,.35);
}

.card:hover::before{
    transform:scale(1.3);
}

.card h3{
    font-size:1.3rem;
    font-weight:700;
    letter-spacing:-.5px;
    position:relative;
    z-index:2;
}

.card p{
    color:#9dadc1;
    margin-top:12px;
    line-height:1.75;
    position:relative;
    z-index:2;
}

/*==================================================
AUTH PAGES (login / signup / admin-login)
==================================================*/

.auth-container,
.login-container{
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:100vh;
    padding:40px 20px;
    position:relative;
}

.auth-box,
.login-box{
    width:min(420px,100%);
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(28px);
    padding:44px 38px;
    border-radius:26px;
    box-shadow:0 30px 80px rgba(0,0,0,.45);
    position:relative;
    overflow:hidden;
}

.auth-box::before,
.login-box::before{
    content:"";
    position:absolute;
    top:-100px;
    right:-100px;
    width:220px;
    height:220px;
    border-radius:50%;
    background:rgba(88,125,255,.16);
    filter:blur(70px);
    pointer-events:none;
}

.login-box h1{
    font-size:1.8rem;
    font-weight:800;
    letter-spacing:-1px;
    margin-bottom:4px;
    background:linear-gradient(135deg,#7d79ff,#45d7ff);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:#7d79ff;
}

.auth-box h2,
.login-box h2{
    margin-bottom:26px;
    font-size:1.6rem;
    font-weight:800;
    letter-spacing:-1px;
    position:relative;
    z-index:2;
}

.login-box p{
    color:#9dadc1;
    font-size:.92rem;
    margin-top:18px;
    text-align:center;
    line-height:1.7;
    position:relative;
    z-index:2;
}

.auth-box input,
.auth-box select,
.login-box input,
.card input,
.card select,
.card textarea{
    width:100%;
    padding:15px 16px;
    margin:8px 0;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.03);
    color:white;
    font-family:'Plus Jakarta Sans',sans-serif;
    font-size:.95rem;
    position:relative;
    z-index:2;
    transition:.25s ease;
}

.auth-box input:focus,
.auth-box select:focus,
.login-box input:focus,
.card input:focus,
.card select:focus,
.card textarea:focus{
    outline:none;
    border-color:rgba(88,180,255,.5);
    background:rgba(255,255,255,.05);
}

.auth-box input::placeholder,
.login-box input::placeholder,
.card input::placeholder,
.card textarea::placeholder{
    color:#7688a0;
}

.card textarea{
    resize:vertical;
}

.auth-box select option,
.card select option{
    background:#0b1220;
    color:white;
}

.full{
    width:100%;
}

.auth-link{
    margin-top:22px;
    text-align:center;
    color:#9dadc1;
    font-size:.92rem;
    position:relative;
    z-index:2;
}

.auth-link a{
    color:#78cbff;
    font-weight:600;
}

.auth-link a:hover{
    color:#a9e2ff;
}

.back{
    display:block;
    text-align:center;
    margin-top:18px;
    color:#7f8b9b;
    text-decoration:none;
    font-size:.9rem;
    position:relative;
    z-index:2;
}

.back:hover{
    color:#b7c4d6;
}

/*==================================================
DASHBOARD SHELL
==================================================*/

.dashboard{
    display:flex;
    min-height:100vh;
    position:relative;
}

.sidebar{
    width:270px;
    flex-shrink:0;
    background:rgba(6,10,18,.6);
    backdrop-filter:blur(24px);
    padding:32px 22px;
    border-right:1px solid rgba(255,255,255,.06);
    position:sticky;
    top:0;
    height:100vh;
    overflow-y:auto;
}

.sidebar .logo{
    display:block;
    margin-bottom:38px;
    padding-left:8px;
}

.sidebar ul{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.sidebar li{
    padding:13px 16px;
    border-radius:12px;
    cursor:default;
    transition:.25s ease;
    color:#8ca1b9;
    font-weight:500;
    font-size:.95rem;
    display:flex;
    align-items:center;
}

.sidebar li:has(a){
    padding:0;
}

.sidebar li a{
    width:100%;
    padding:13px 16px;
    border-radius:12px;
    color:#b7c4d6;
    display:block;
}

.sidebar li:hover,
.sidebar li a:hover{
    background:rgba(255,255,255,.05);
    color:white;
}

.sidebar .active{
    background:linear-gradient(135deg,rgba(125,121,255,.22),rgba(69,215,255,.14));
    border:1px solid rgba(120,203,255,.25);
    color:white;
    font-weight:600;
}

.sidebar .disabled-link{
    opacity:.4;
    cursor:not-allowed;
}

.main{
    flex:1;
    padding:44px min(50px,5%);
    min-width:0;
}

.topbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:44px;
    flex-wrap:wrap;
    gap:16px;
}

.topbar h1{
    font-size:2rem;
    font-weight:800;
    letter-spacing:-1px;
}

.profile{
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(20px);
    padding:12px 22px;
    border-radius:999px;
    font-weight:600;
    font-size:.9rem;
}

/*==================================================
DASHBOARD STAT CARDS
==================================================*/

.cards{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
    margin-bottom:44px;
}

.dashboard-card{
    position:relative;
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(28px);
    padding:28px;
    border-radius:22px;
    transition:.4s cubic-bezier(.16,1,.3,1);
    overflow:hidden;
}

.dashboard-card::before{
    content:"";
    position:absolute;
    top:-80px;
    right:-80px;
    width:160px;
    height:160px;
    border-radius:50%;
    background:rgba(88,125,255,.14);
    filter:blur(55px);
    transition:.4s;
}

.dashboard-card:hover{
    transform:translateY(-7px);
    border-color:rgba(88,180,255,.35);
    box-shadow:0 25px 60px rgba(0,0,0,.35);
}

.dashboard-card:hover::before{
    transform:scale(1.3);
}

.dashboard-card h3{
    color:#9dadc1;
    font-size:.85rem;
    font-weight:600;
    letter-spacing:.5px;
    text-transform:uppercase;
    margin-bottom:14px;
    position:relative;
    z-index:2;
}

.dashboard-card h2{
    font-size:2.1rem;
    font-weight:800;
    letter-spacing:-1px;
    position:relative;
    z-index:2;
}

/*==================================================
RECENT / TABLE PANELS
==================================================*/

.recent{
    background:rgba(255,255,255,.03);
    border:1px solid rgba(255,255,255,.07);
    backdrop-filter:blur(24px);
    padding:30px;
    border-radius:24px;
    margin-bottom:28px;
    overflow-x:auto;
}

.recent h2{
    margin-bottom:22px;
    font-size:1.3rem;
    font-weight:700;
    letter-spacing:-.5px;
}

table{
    width:100%;
    border-collapse:collapse;
    min-width:560px;
}

th,
td{
    text-align:left;
    padding:16px;
    border-bottom:1px solid rgba(255,255,255,.07);
    font-size:.92rem;
}

th{
    color:#78cbff;
    font-weight:700;
    font-size:.78rem;
    letter-spacing:1px;
    text-transform:uppercase;
}

tr:hover td{
    background:rgba(255,255,255,.025);
}

td button{
    padding:8px 14px;
    font-size:.8rem;
    margin:2px 4px 2px 0;
}

td select{
    padding:10px 14px;
    border-radius:10px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.04);
    color:white;
    font-family:'Plus Jakarta Sans',sans-serif;
    font-size:.85rem;
    margin-right:6px;
}

td select option{
    background:#0b1220;
    color:white;
}

/*==================================================
PUBLIC PAGES (PRICING / ABOUT / CONTACT)
==================================================*/

.page-hero{
    text-align:center;
    padding:110px 20px 50px;
    position:relative;
}

.page-hero h1{
    font-size:3rem;
    font-weight:800;
    letter-spacing:-1.5px;
    margin-bottom:18px;
    background:linear-gradient(135deg,#ffffff 40%,#a8b6ff 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:#ffffff;
}

.page-hero p{
    color:#9dadc1;
    max-width:650px;
    margin:auto;
    line-height:1.8;
    font-size:1.05rem;
}

.pricing-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:24px;
    padding:50px 0 120px;
}

.price-card{
    position:relative;
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(28px);
    padding:36px 30px;
    border-radius:24px;
    text-align:center;
    transition:.4s cubic-bezier(.16,1,.3,1);
    overflow:hidden;
}

.price-card::before{
    content:"";
    position:absolute;
    top:-90px;
    left:50%;
    transform:translateX(-50%);
    width:220px;
    height:220px;
    border-radius:50%;
    background:rgba(88,125,255,.13);
    filter:blur(60px);
    pointer-events:none;
    transition:.4s;
}

.price-card:hover{
    transform:translateY(-10px);
    border-color:rgba(88,180,255,.4);
    box-shadow:0 30px 70px rgba(0,0,0,.35);
}

.price-card.featured{
    border-color:rgba(120,203,255,.5);
    background:rgba(255,255,255,.055);
}

.price-card.featured::after{
    content:"MOST POPULAR";
    position:absolute;
    top:20px;
    right:20px;
    background:linear-gradient(135deg,#7d79ff,#45d7ff);
    color:#050811;
    font-size:.62rem;
    font-weight:800;
    letter-spacing:1px;
    padding:6px 12px;
    border-radius:999px;
}

.price-card h3{
    color:#78cbff;
    font-size:.85rem;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    margin-bottom:14px;
    position:relative;
    z-index:2;
}

.price-card .price{
    font-size:2.6rem;
    font-weight:800;
    letter-spacing:-1px;
    margin:14px 0;
    position:relative;
    z-index:2;
}

.price-card .price span{
    font-size:15px;
    color:#9dadc1;
    font-weight:400;
}

.price-card p.desc{
    color:#9dadc1;
    font-size:.92rem;
    margin-bottom:24px;
    line-height:1.7;
    position:relative;
    z-index:2;
}

/*==================================================
ABOUT PAGE (LEGACY WRAPPER — about.html has its own
premium markup/styles inline; kept here only as a
graceful fallback for the .about-section class name)
==================================================*/

.about-section{
    max-width:800px;
    margin:auto;
    padding:50px 20px 120px;
    line-height:1.9;
    color:#a4b1c3;
    position:relative;
    z-index:2;
}

.about-section h2{
    color:white;
    margin:40px 0 16px;
    font-size:1.7rem;
    font-weight:700;
    letter-spacing:-.5px;
}

/*==================================================
CONTACT PAGE
==================================================*/

.contact-wrap{
    max-width:600px;
    margin:auto;
    padding:50px 20px 120px;
}

.contact-wrap .card{
    width:100%;
}

.contact-wrap label,
.card label{
    display:block;
    font-size:.85rem;
    font-weight:600;
    color:#9dadc1;
    margin:16px 0 4px;
    position:relative;
    z-index:2;
}

.contact-wrap label:first-of-type,
.card label:first-of-type{
    margin-top:0;
}

/*==================================================
SECTION TAG (small badge used to label sections,
matches About page language)
==================================================*/

.section-tag{
    display:inline-flex;
    align-items:center;
    padding:9px 18px;
    border-radius:999px;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
    color:#78cbff;
    font-size:.75rem;
    font-weight:700;
    letter-spacing:1.5px;
    text-transform:uppercase;
    backdrop-filter:blur(20px);
    margin-bottom:16px;
}

/*==================================================
STATUS BADGES (used across dashboard tables)
==================================================*/

.status{
    display:inline-flex;
    align-items:center;
    padding:6px 14px;
    border-radius:999px;
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.3px;
}

.status-pending{ background:rgba(255,196,84,.14); color:#ffc454; }
.status-active,
.status-completed,
.status-approved,
.status-paid{ background:rgba(88,212,255,.14); color:#58d4ff; }
.status-suspended,
.status-rejected,
.status-needsrevision{ background:rgba(255,99,99,.14); color:#ff8080; }
.status-assigned,
.status-inreview,
.status-inprogress{ background:rgba(157,141,255,.16); color:#b3a5ff; }
.status-new{ background:rgba(88,212,255,.14); color:#58d4ff; }
.status-read{ background:rgba(255,255,255,.06); color:#9dadc1; }

/*==================================================
EMPTY STATE
==================================================*/

.empty-state{
    text-align:center;
    padding:60px 20px;
    color:#7f8b9b;
    font-size:.95rem;
}

/*==================================================
MOBILE SIDEBAR TOGGLE
==================================================*/

.sidebar-toggle{
    display:none;
    position:fixed;
    top:18px;
    left:18px;
    z-index:200;
    width:46px;
    height:46px;
    border-radius:14px;
    background:rgba(10,16,28,.85);
    border:1px solid rgba(255,255,255,.1);
    backdrop-filter:blur(20px);
    color:white;
    align-items:center;
    justify-content:center;
    cursor:pointer;
}

.sidebar-backdrop{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.5);
    backdrop-filter:blur(4px);
    z-index:149;
}

/*==================================================
RESPONSIVE
==================================================*/

@media (max-width:1100px){
    .hero h1{ font-size:3.2rem; }
    .cards{ grid-template-columns:repeat(2,1fr); }
    .features{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:900px){

    /* Old rule used to just hide every nav link except the last one,
       leaving no way to reach them on mobile. Replaced with a real
       hamburger-driven dropdown (see .navbar-toggle / .mobile-open). */
    .navbar-toggle{
        display:flex;
    }

    .nav-links{
        position:absolute;
        top:100%;
        left:0;
        right:0;
        flex-direction:column;
        align-items:flex-start;
        gap:2px;
        background:rgba(6,10,18,.97);
        backdrop-filter:blur(24px);
        border-bottom:1px solid rgba(255,255,255,.06);
        padding:0 6%;
        max-height:0;
        overflow:hidden;
        transition:max-height .35s ease, padding .35s ease;
    }

    .nav-links.mobile-open{
        max-height:400px;
        padding:14px 6% 22px;
    }

    .nav-links a{
        width:100%;
        padding:13px 4px;
        border-bottom:1px solid rgba(255,255,255,.05);
    }

    .nav-links a:last-child{
        border-bottom:none;
    }

    .topbar-search{
        display:none;
    }

    .sidebar-toggle{
        display:flex;
    }

    .dashboard{
        display:block;
    }

    .sidebar{
        position:fixed;
        left:0;
        top:0;
        height:100vh;
        z-index:150;
        transform:translateX(-100%);
        transition:.35s ease;
        width:270px;
    }

    .sidebar.open{
        transform:translateX(0);
    }

    .sidebar-backdrop.open{
        display:block;
    }

    .main{
        padding:90px 20px 40px;
    }

    .topbar h1{
        font-size:1.5rem;
    }
}

@media (max-width:700px){
    .hero{ padding:120px 20px 70px; }
    .hero h1{ font-size:2.4rem; letter-spacing:-1px; }
    .features{ grid-template-columns:1fr; }
    .cards{ grid-template-columns:1fr; }
    .page-hero h1{ font-size:2.2rem; }
    .auth-box, .login-box{ padding:34px 26px; }

    .topbar{
        align-items:flex-start;
    }

    .topbar-right{
        width:100%;
        justify-content:flex-end;
    }

    .profile-name{
        display:none;
    }

    .profile-btn{
        padding:8px;
    }

    .notif-dropdown,
    .profile-menu{
        right:-10px;
        width:min(290px,88vw);
    }
}
