*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:Inter,Arial,sans-serif;
    background:#0f172a;
    color:#fff;
}

/* LOGIN PAGE */

.login-page{
    min-height:100vh;
    display:grid;
    grid-template-columns:1fr 1.1fr;
    overflow:hidden;
}

/* LEFT SIDE */

.login-left{
    position:relative;
    padding:70px;
    background:
        linear-gradient(rgba(15,23,42,.90), rgba(15,23,42,.92)),
        url('https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=1200&q=80');

    background-size:cover;
    background-position:center;

    display:flex;
    flex-direction:column;
    justify-content:center;

    border-right:1px solid rgba(255,255,255,.08);
}

.login-brand-logo{
    width:80px;
    height:80px;

    border-radius:22px;

    background:linear-gradient(135deg,#3b82f6,#2563eb);

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:32px;
    font-weight:800;

    margin-bottom:30px;

    box-shadow:0 20px 40px rgba(37,99,235,.35);
}

.login-left h1{
    font-size:48px;
    margin-bottom:15px;
    line-height:1.1;
}

.login-left h1 span{
    color:#3b82f6;
}

.login-subtitle{
    color:#cbd5e1;
    font-size:18px;
    margin-bottom:50px;
}

.login-features{
    display:grid;
    gap:30px;
    max-width:520px;
}

.feature-item{
    display:flex;
    gap:18px;
}

.feature-icon{
    width:56px;
    height:56px;

    border-radius:18px;

    background:rgba(30,41,59,.85);

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:24px;

    border:1px solid rgba(255,255,255,.08);

    flex-shrink:0;
}

.feature-item h3{
    margin-bottom:8px;
    font-size:18px;
}

.feature-item p{
    color:#cbd5e1;
    line-height:1.7;
    font-size:14px;
}

.login-footer-text{
    position:absolute;
    bottom:35px;
    left:70px;
    color:#94a3b8;
    font-size:14px;
}

/* RIGHT SIDE */

.login-right{
    display:flex;
    align-items:center;
    justify-content:center;

    padding:40px;

    background:
        radial-gradient(circle at top right, rgba(59,130,246,.12), transparent 30%),
        radial-gradient(circle at bottom left, rgba(37,99,235,.12), transparent 30%),
        #111827;
}

.login-card{
    width:100%;
    max-width:560px;

    background:rgba(15,23,42,.72);

    border:1px solid rgba(255,255,255,.08);

    border-radius:28px;

    padding:50px;

    backdrop-filter:blur(16px);

    box-shadow:0 25px 60px rgba(0,0,0,.35);
}

.lock-icon{
    width:82px;
    height:82px;

    margin:0 auto 28px;

    border-radius:24px;

    background:rgba(30,41,59,.85);

    border:1px solid rgba(255,255,255,.08);

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:36px;
}

.login-card h2{
    text-align:center;
    font-size:34px;
    margin-bottom:10px;
}

.card-subtitle{
    text-align:center;
    color:#94a3b8;
    margin-bottom:35px;
}

.alert-danger{
    background:rgba(239,68,68,.12);
    border:1px solid rgba(239,68,68,.25);
    color:#fecaca;

    padding:14px 16px;
    border-radius:14px;

    margin-bottom:20px;
}

.form-group{
    margin-bottom:24px;
}

.form-group label{
    display:block;
    margin-bottom:10px;
    font-size:14px;
    font-weight:700;
}

.input-group{
    position:relative;
}

.input-group input{
    width:100%;
    height:58px;

    border-radius:14px;

    border:1px solid rgba(255,255,255,.10);

    background:#0f172a;

    color:#fff;

    padding:0 50px 0 18px;

    outline:none;

    font-size:15px;

    transition:.2s;
}

.input-group input:focus{
    border-color:#3b82f6;
    box-shadow:0 0 0 4px rgba(59,130,246,.12);
}

.input-group span{
    position:absolute;
    right:16px;
    top:50%;
    transform:translateY(-50%);
    color:#94a3b8;
}

.btn-login{
    width:100%;
    height:58px;

    border:none;
    border-radius:14px;

    background:linear-gradient(135deg,#3b82f6,#2563eb);

    color:#fff;

    font-size:16px;
    font-weight:800;

    cursor:pointer;

    transition:.2s;

    margin-top:10px;

    box-shadow:0 15px 35px rgba(37,99,235,.30);
}

.btn-login:hover{
    transform:translateY(-1px);
}

.secure-note{
    margin-top:35px;
    padding-top:25px;

    border-top:1px solid rgba(255,255,255,.08);

    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;

    color:#94a3b8;

    text-align:center;

    line-height:1.6;

    font-size:14px;
}

.secure-note span{
    font-size:24px;
}

/* RESPONSIVE */

@media(max-width:960px){

    .login-page{
        grid-template-columns:1fr;
    }

    .login-left{
        display:none;
    }

    .login-right{
        padding:20px;
    }

    .login-card{
        padding:35px 24px;
    }
}

/* =========================================
   ADMIN LAYOUT
========================================= */

.admin-layout{
    display:flex;
    min-height:100vh;
    background:#0f172a;
}

/* SIDEBAR */

.sidebar{
    width:280px;
    background:#111827;
    border-right:1px solid rgba(255,255,255,.06);

    display:flex;
    flex-direction:column;

    padding:25px 18px;
}

.sidebar-brand{
    display:flex;
    align-items:center;
    gap:15px;

    margin-bottom:35px;
}

.sidebar-logo{
    width:52px;
    height:52px;

    border-radius:16px;

    background:linear-gradient(135deg,#3b82f6,#2563eb);

    display:flex;
    align-items:center;
    justify-content:center;

    font-weight:800;
    font-size:20px;
}

.sidebar-brand h2{
    font-size:20px;
    margin-bottom:4px;
}

.sidebar-brand span{
    font-size:13px;
    color:#94a3b8;
}

.sidebar-menu{
    list-style:none;
}

.sidebar-menu li{
    margin-bottom:8px;
}

.sidebar-menu a{
    display:flex;
    align-items:center;
    gap:12px;

    padding:14px 16px;

    border-radius:14px;

    color:#cbd5e1;
    text-decoration:none;

    transition:.2s;
}

.sidebar-menu a:hover{
    background:rgba(59,130,246,.12);
    color:#fff;
}

.sidebar-menu a.active{
    background:linear-gradient(135deg,#3b82f6,#2563eb);
    color:#fff;
}

/* MAIN CONTENT */

.main-content{
    flex:1;
    display:flex;
    flex-direction:column;
}

/* TOPBAR */

.topbar{
    height:80px;

    background:#111827;

    border-bottom:1px solid rgba(255,255,255,.06);

    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:0 30px;
}

.topbar h1{
    font-size:24px;
}

.user-box{
    background:rgba(255,255,255,.06);

    padding:12px 18px;

    border-radius:14px;

    color:#e2e8f0;
}

/* CONTENT */

.content-area{
    padding:30px;
}

.page-header{
    margin-bottom:30px;
}

.page-header h1{
    font-size:32px;
    margin-bottom:8px;
}

.page-header p{
    color:#94a3b8;
}

/* STATS */

.stats-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:20px;

    margin-bottom:30px;
}

.stat-card{
    background:#111827;

    border:1px solid rgba(255,255,255,.06);

    border-radius:20px;

    padding:25px;
}

.stat-card span{
    color:#94a3b8;
    font-size:14px;
}

.stat-card h3{
    font-size:32px;
    margin:12px 0;
}

.stat-card p{
    color:#cbd5e1;
    line-height:1.6;
}

/* MODULE GRID */

.module-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:20px;
}

.module-card{
    background:#111827;

    border:1px solid rgba(255,255,255,.06);

    border-radius:20px;

    padding:25px;

    text-decoration:none;

    transition:.2s;
}

.module-card:hover{
    transform:translateY(-3px);

    border-color:rgba(59,130,246,.30);
}

.module-card h3{
    color:#fff;
    margin-bottom:10px;
}

.module-card p{
    color:#94a3b8;
    line-height:1.6;
}

.dx-card{
    background:#111827;
    border:1px solid rgba(148,163,184,.16);
    border-radius:20px;
    padding:24px;
    margin-bottom:24px;
}

.dx-card.inner{
    background:#172033;
}

.dx-card h2{
    font-size:22px;
    margin-bottom:8px;
}

.dx-card p{
    color:#aebbd0;
    margin-bottom:18px;
}

.dx-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(220px,1fr));
    gap:18px;
}

.dx-field{
    margin-bottom:16px;
}

.dx-field label{
    display:block;
    font-weight:700;
    font-size:14px;
    margin-bottom:8px;
}

.dx-field input,
.dx-field select,
.dx-field textarea{
    width:100%;
    background:#0f172a;
    color:#e5e7eb;
    border:1px solid rgba(148,163,184,.28);
    border-radius:14px;
    padding:14px;
    outline:none;
}

.dx-field textarea{
    min-height:180px;
    resize:vertical;
}

.dx-actions{
    display:flex;
    gap:12px;
    align-items:center;
    flex-wrap:wrap;
}

.btn-primary,
.btn-secondary,
.btn-small,
.dx-mode-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    text-decoration:none;
    font-weight:800;
    cursor:pointer;
}

.btn-primary{
    background:#3b82f6;
    color:#fff;
    padding:13px 20px;
    border-radius:12px;
}

.btn-secondary{
    background:#253244;
    color:#fff;
    padding:13px 20px;
    border-radius:12px;
}

.btn-small{
    background:#253244;
    color:#fff;
    padding:9px 13px;
    border-radius:10px;
    font-size:13px;
}

.dx-mode-buttons{
    display:flex;
    gap:12px;
}

.dx-mode-btn{
    min-width:160px;
    padding:14px 24px;
    border-radius:14px;
    color:#e5e7eb;
    background:#0f172a;
    border:1px solid rgba(148,163,184,.20);
}

.dx-mode-btn.active{
    background:#3b82f6;
    color:#fff;
}

.dx-search-form{
    display:flex;
    gap:14px;
    align-items:flex-end;
    flex-wrap:wrap;
}

.dx-search-form .dx-field{
    min-width:280px;
    flex:1;
}

.dx-alert{
    padding:14px 18px;
    border-radius:14px;
    margin-bottom:18px;
    font-weight:700;
}

.dx-alert-success{
    background:rgba(34,197,94,.14);
    border:1px solid rgba(34,197,94,.30);
    color:#bbf7d0;
}

.dx-alert-danger{
    background:rgba(239,68,68,.14);
    border:1px solid rgba(239,68,68,.30);
    color:#fecaca;
}

.dx-badge{
    display:inline-flex;
    padding:6px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
}

.dx-badge.green{
    background:rgba(34,197,94,.14);
    color:#86efac;
}

.dx-badge.red{
    background:rgba(239,68,68,.14);
    color:#fca5a5;
}

.dx-table-top{
    display:flex;
    gap:12px;
    align-items:center;
    margin-bottom:18px;
}

.dx-split{
    display:grid;
    grid-template-columns:1fr 420px;
    gap:24px;
    align-items:start;
}

.dx-main-table{
    overflow:auto;
}

.dx-side-panel{
    display:grid;
    gap:20px;
}

.dx-table{
    width:100%;
    border-collapse:collapse;
    font-size:14px;
}

.dx-table th,
.dx-table td{
    padding:13px 12px;
    border-bottom:1px solid rgba(148,163,184,.15);
    text-align:left;
    vertical-align:top;
}

.dx-table th{
    color:#aebbd0;
    font-weight:800;
}

.dx-url{
    word-break:break-all;
    max-width:360px;
}

.dx-current-link{
    background:#0f172a;
    border:1px solid rgba(148,163,184,.20);
    padding:14px;
    border-radius:14px;
    word-break:break-all;
    margin-bottom:16px;
}

.dx-muted{
    color:#94a3b8;
    font-size:13px;
    margin-bottom:6px!important;
}

.text-center{
    text-align:center!important;
}

.dx-pagination{
    margin-top:20px;
    display:flex;
    gap:12px;
    align-items:center;
}

.dx-pagination a{
    background:#253244;
    color:#fff;
    padding:9px 14px;
    border-radius:10px;
    text-decoration:none;
}

@media(max-width:1200px){
    .dx-split{
        grid-template-columns:1fr;
    }
}

@media(max-width:768px){
    .dx-form-grid{
        grid-template-columns:1fr;
    }

    .dx-search-form{
        display:block;
    }

    .dx-mode-buttons{
        flex-direction:column;
    }
}

.sidebar-parent{
    margin-bottom:8px;
}

.sidebar-submenu{
    list-style:none;
    margin:6px 0 10px 34px;
    padding-left:12px;
    border-left:1px solid rgba(148,163,184,.18);
}

.sidebar-submenu li{
    margin-bottom:6px;
}

.sidebar-submenu a{
    font-size:14px;
    padding:10px 12px;
    border-radius:10px;
    color:#aebbd0;
}