/*==========================================================
 NJH Institute Professional Membership Portal
 Main Stylesheet
 Version: 2.0
==========================================================*/

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

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

/*==========================================================
 ROOT VARIABLES
==========================================================*/

:root{

    --primary:#0056B3;
    --primary-dark:#003F87;
    --secondary:#2C3E50;

    --success:#198754;
    --warning:#FFC107;
    --danger:#DC3545;
    --info:#0DCAF0;

    --white:#FFFFFF;
    --light:#F5F7FA;
    --lighter:#FAFBFC;
    --border:#E5E7EB;

    --text:#333333;
    --muted:#777777;

    --radius:10px;

    --shadow:0 4px 15px rgba(0,0,0,.08);

    --sidebar-width:250px;
    --topbar-height:70px;
    --footer-height:45px;

}

/*==========================================================
 BODY
==========================================================*/

body{

    background:var(--light);

    color:var(--text);

    font-family:'Poppins',sans-serif;

    font-size:15px;

    line-height:1.6;

}

/*==========================================================
 LINKS
==========================================================*/

a{

    color:var(--primary);

    text-decoration:none;

}

a:hover{

    text-decoration:underline;

}

/*==========================================================
 HEADINGS
==========================================================*/

h1{

    font-size:32px;

    margin-bottom:20px;

    font-weight:600;

}

h2{

    font-size:26px;

    margin-bottom:18px;

}

h3{

    font-size:22px;

    margin-bottom:15px;

}

h4{

    font-size:18px;

}

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

.container{

    display:flex;

    min-height:100vh;

}

.content{

    flex:1;

    margin-left:var(--sidebar-width);

    margin-top:var(--topbar-height);

    margin-bottom:var(--footer-height);

    padding:30px;

}

/*==========================================================
 SIDEBAR
==========================================================*/

.sidebar{

    position:fixed;

    left:0;

    top:0;

    width:var(--sidebar-width);

    height:100vh;

    background:var(--secondary);

    color:#fff;

    overflow-y:auto;

    box-shadow:var(--shadow);

}

.sidebar-header{

    padding:25px;

    font-size:22px;

    font-weight:700;

    text-align:center;

    background:#1E2B38;

}

.sidebar ul{

    list-style:none;

}

.sidebar li{

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

}

.sidebar a{

    display:block;

    padding:15px 25px;

    color:#fff;

}

.sidebar a:hover{

    background:var(--primary);

    text-decoration:none;

}

/*==========================================================
 TOP BAR
==========================================================*/

.topbar{

    position:fixed;

    left:var(--sidebar-width);

    right:0;

    top:0;

    height:var(--topbar-height);

    background:#fff;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:0 30px;

    box-shadow:var(--shadow);

    z-index:100;

}

/*==========================================================
 PAGE TITLE
==========================================================*/

.page-title{

    font-size:30px;

    font-weight:600;

    margin-bottom:25px;

}

/*==========================================================
 CARDS
==========================================================*/

.card{

    background:#fff;

    border-radius:var(--radius);

    padding:25px;

    box-shadow:var(--shadow);

    margin-bottom:25px;

}

/* Dashboard Cards */

.dashboard-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));

    gap:20px;

}

.dashboard-card{

    background:#fff;

    padding:25px;

    border-radius:var(--radius);

    box-shadow:var(--shadow);

}

.dashboard-card h3{

    margin-bottom:10px;

    font-size:18px;

}

.dashboard-card .number{

    font-size:36px;

    font-weight:bold;

    color:var(--primary);

}

/*==========================================================
 FORMS
==========================================================*/

.form-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:20px;

}

.full-width{

    grid-column:1/-1;

}

.form-group{

    margin-bottom:18px;

}

label{

    display:block;

    margin-bottom:6px;

    font-weight:600;

}

.required{

    color:var(--danger);

}

input,
select,
textarea{

    width:100%;

    padding:12px;

    border:1px solid var(--border);

    border-radius:8px;

    font-size:15px;

}

textarea{

    resize:vertical;

    min-height:120px;

}

input:focus,
select:focus,
textarea:focus{

    outline:none;

    border-color:var(--primary);

}

/*==========================================================
 BUTTONS
==========================================================*/

.btn{

    display:inline-block;

    padding:12px 24px;

    border:none;

    border-radius:8px;

    cursor:pointer;

    font-weight:600;

    text-decoration:none;

    transition:.3s;

}

.btn-primary{

    background:var(--primary);

    color:#fff;

}

.btn-primary:hover{

    background:var(--primary-dark);

}

.btn-success{

    background:var(--success);

    color:#fff;

}

.btn-danger{

    background:var(--danger);

    color:#fff;

}

.btn-warning{

    background:var(--warning);

    color:#000;

}

/*==========================================================
 TABLES
==========================================================*/

.table{

    width:100%;

    border-collapse:collapse;

    background:#fff;

}

.table th{

    background:var(--primary);

    color:#fff;

    padding:14px;

    text-align:left;

}

.table td{

    padding:14px;

    border-bottom:1px solid var(--border);

}

.table tbody tr:hover{

    background:#F8F9FA;

}

/*==========================================================
 ALERTS
==========================================================*/

.alert{

    padding:15px;

    border-radius:8px;

    margin-bottom:20px;

}

.alert-success{

    background:#D1E7DD;

    color:#0F5132;

}

.alert-danger{

    background:#F8D7DA;

    color:#842029;

}

.alert-warning{

    background:#FFF3CD;

    color:#664D03;

}

.alert-info{

    background:#CFE2FF;

    color:#084298;

}

/*==========================================================
 BADGES
==========================================================*/

.badge{

    display:inline-block;

    padding:5px 10px;

    border-radius:30px;

    font-size:12px;

    font-weight:600;

}

.badge-success{

    background:#D1E7DD;

    color:#0F5132;

}

.badge-danger{

    background:#F8D7DA;

    color:#842029;

}

.badge-warning{

    background:#FFF3CD;

    color:#664D03;

}

.badge-info{

    background:#CFE2FF;

    color:#084298;

}

/*==========================================================
 FOOTER
==========================================================*/

.footer{

    position:fixed;

    left:var(--sidebar-width);

    right:0;

    bottom:0;

    height:var(--footer-height);

    background:#fff;

    border-top:1px solid var(--border);

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:0 25px;

    font-size:13px;

}

.footer-left{

    font-weight:600;

}

.footer-right{

    color:var(--muted);

}

/*==========================================================
 UTILITIES
==========================================================*/

.text-center{text-align:center;}
.text-right{text-align:right;}
.mt-20{margin-top:20px;}
.mb-20{margin-bottom:20px;}
.p-20{padding:20px;}

/*==========================================================
 QUICK ACTIONS
==========================================================*/

.quick-actions{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));

    gap:20px;

    margin-top:20px;

}

.quick-actions .btn{

    text-align:center;

    padding:18px;

    font-size:16px;

}

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

@media(max-width:992px){

    .sidebar{

        width:220px;

    }

    .content{

        margin-left:220px;

    }

    .topbar{

        left:220px;

    }

}

@media(max-width:768px){

    .sidebar{

        position:relative;

        width:100%;

        height:auto;

    }

    .topbar{

        position:relative;

        left:0;

    }

    .content{

        margin:0;

        padding:20px;

    }

    .footer{

        position:relative;

        left:0;

    }

    .form-grid{

        grid-template-columns:1fr;

    }

    .dashboard-grid{

        grid-template-columns:1fr;

    }

}

/*==========================================================
PAGE HEADER
==========================================================*/

.page-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:25px;

}

.page-description{

    color:var(--muted);

    margin-top:6px;

}

.breadcrumbs{

    margin-bottom:20px;

    font-size:14px;

    color:var(--muted);

}

.breadcrumbs a{

    color:var(--primary);

}

.action-buttons{

    display:flex;

    gap:8px;

}

.action-buttons a{

    min-width:70px;

    text-align:center;

}

/*=========================================
Table Header
=========================================*/

.table-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:20px;

}

/*=========================================
Muted Text
=========================================*/

.text-muted{

    color:#888;

}

/*=========================================
Badges
=========================================*/

.badge{

    display:inline-block;

    padding:6px 12px;

    border-radius:20px;

    color:#fff;

    font-size:12px;

    font-weight:600;

}

.badge-success{

    background:#28a745;

}

.badge-warning{

    background:#ffc107;

    color:#222;

}

.badge-danger{

    background:#dc3545;

}

.badge-dark{

    background:#343a40;

}

.badge-secondary{

    background:#6c757d;

}

/*=========================================
Action Buttons
=========================================*/

.action-buttons{

    display:flex;

    gap:8px;

}

.btn-sm{

    padding:8px 12px;

    font-size:13px;

}