/* =========================================================
GLOBAL RESET
========================================================= */

*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}

html {
scroll-behavior: smooth;
}

body {
font-family: "Segoe UI", Arial, Helvetica, sans-serif;
background: #f4f7fb;
color: #333;
line-height: 1.6;
overflow-x: hidden;
}

img {
max-width: 100%;
display: block;
}

.container {
width: 90%;
max-width: 1200px;
margin: 0 auto;
}

/* =========================================================
HEADER / NAVIGATION
========================================================= */

header {
background: #0B3D91;
color: #ffffff;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 9999;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}

.nav-container {
display: flex;
justify-content: space-between;
align-items: center;
min-height: 80px;
}

.logo {
display: flex;
align-items: center;
gap: 10px;
}

.logo img {
width: 55px;
height: 55px;
object-fit: contain;
}

.logo h2 {
color: #ffffff;
font-size: 22px;
}

nav {
display: flex;
align-items: center;
}

nav a {
color: #ffffff;
text-decoration: none;
margin-left: 30px;
font-weight: 600;
transition: color 0.3s ease;
}

nav a:hover {
color: #FFD700;
}

nav a.active {
color: #FFD700;
}

/* =========================================================
HOME PAGE - HERO
========================================================= */

.hero {
margin-top: 80px;
position: relative;
}

.slides {
display: none;
position: relative;
}

.slides img {
width: 100%;
height: 650px;
object-fit: cover;
}

.caption {
position: absolute;
top: 50%;
left: 10%;
transform: translateY(-50%);
color: #ffffff;
max-width: 600px;
z-index: 5;
}

.caption h1 {
font-size: 60px;
line-height: 1.2;
margin-bottom: 20px;
}

.caption p {
font-size: 22px;
margin-bottom: 35px;
}

.btn {
display: inline-block;
background: #FFD700;
color: #000000;
padding: 16px 35px;
text-decoration: none;
border-radius: 8px;
font-weight: bold;
transition: all 0.3s ease;
}

.btn:hover {
background: #ffffff;
}

/* =========================================================
HOME PAGE - FEATURES
========================================================= */

.features {
padding: 80px 0;
}

.features h2,
.courses h2 {
text-align: center;
margin-bottom: 50px;
color: #0B3D91;
font-size: 40px;
}

.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 25px;
}

.feature-box {
background: #ffffff;
padding: 30px;
border-radius: 10px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.10);
transition: transform 0.3s ease;
}

.feature-box:hover {
transform: translateY(-8px);
}

.feature-box h3 {
color: #0B3D91;
margin-bottom: 15px;
}

/* =========================================================
HOME PAGE - POPULAR COURSES
========================================================= */

.courses {
padding: 70px 0;
background: #eef3fa;
}

.course-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 30px;
}

.course {
background: #ffffff;
text-align: center;
padding: 35px;
border-radius: 10px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.10);
}

.course h3 {
color: #0B3D91;
margin-bottom: 15px;
}

/* =========================================================
COURSE LISTING PAGE
========================================================= */

.title {
text-align: center;
color: #003366;
font-size: 42px;
margin-bottom: 10px;
}

.subtitle {
text-align: center;
color: #555555;
margin-bottom: 40px;
}

.course-card {
background: #ffffff;
border-radius: 15px;
overflow: hidden;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.course-card:hover {
transform: translateY(-8px);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.16);
}

.course-image {
width: 100%;
height: 220px;
object-fit: cover;
}

.course-content {
padding: 20px;
}

.course-content h2 {
color: #004aad;
margin-bottom: 20px;
}

.course-content p {
margin-top: 15px;
color: #444444;
}

.price {
color: #28a745;
font-size: 26px;
font-weight: bold;
}

.btn-register {
width: 100%;
margin-top: 25px;
padding: 15px;
border: none;
background: #004aad;
color: #ffffff;
font-size: 17px;
border-radius: 8px;
cursor: pointer;
transition: background 0.3s ease, transform 0.2s ease;
}

.btn-register:hover {
background: #00337a;
transform: translateY(-2px);
}

/* =========================================================
REGISTRATION PAGE
========================================================= */

.registration-page {
min-height: 100vh;
padding: 140px 20px 80px;
background: linear-gradient(
135deg,
#f4f7fb 0%,
#e8eef8 100%
);
}

.registration-container {
width: 100%;
max-width: 1000px;
margin: 0 auto;
}

.registration-header {
text-align: center;
margin-bottom: 35px;
}

.registration-header h1 {
color: #0B3D91;
font-size: 42px;
line-height: 1.2;
margin-bottom: 12px;
}

.registration-header p {
max-width: 650px;
margin: 0 auto;
color: #666666;
font-size: 17px;
}

.registration-card {
background: #ffffff;
border-radius: 18px;
padding: 45px;
box-shadow: 0 15px 45px rgba(0, 0, 0, 0.10);
border: 1px solid #e5e9f0;
}

.form-section {
margin-bottom: 35px;
}

.form-section h2 {
color: #0B3D91;
font-size: 22px;
margin-bottom: 22px;
padding-bottom: 12px;
border-bottom: 2px solid #eef2f7;
}

.form-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 22px;
}

.form-group {
display: flex;
flex-direction: column;
min-width: 0;
}

.form-group.full-width {
grid-column: 1 / -1;
}

.form-group label {
font-weight: 600;
color: #333333;
margin-bottom: 8px;
font-size: 15px;
}

.form-group input,
.form-group select {
width: 100%;
height: 50px;
padding: 0 15px;
border: 1px solid #d7dce5;
border-radius: 8px;
background: #ffffff;
color: #333333;
font-family: inherit;
font-size: 15px;
outline: none;
transition:
border-color 0.25s ease,
box-shadow 0.25s ease;
}

.form-group input:focus,
.form-group select:focus {
border-color: #0B3D91;
box-shadow: 0 0 0 3px rgba(11, 61, 145, 0.10);
}

.form-group input::placeholder {
color: #999999;
}

.form-group small {
margin-top: 6px;
color: #777777;
font-size: 12px;
}

.alert {
background: #fff3cd;
border: 1px solid #ffe69c;
color: #664d03;
padding: 13px 15px;
border-radius: 8px;
margin-bottom: 20px;
}

.terms {
margin: 10px 0 25px;
}

.checkbox-label {
display: flex;
align-items: flex-start;
gap: 10px;
cursor: pointer;
color: #555555;
font-size: 14px;
line-height: 1.5;
}

.checkbox-label input {
width: 18px;
height: 18px;
margin-top: 2px;
flex-shrink: 0;
accent-color: #0B3D91;
}

.checkbox-label a {
color: #0B3D91;
text-decoration: none;
font-weight: 600;
}

.checkbox-label a:hover {
text-decoration: underline;
}

.register-btn {
width: 100%;
min-height: 54px;
border: none;
border-radius: 8px;
background: #0B3D91;
color: #ffffff;
font-family: inherit;
font-size: 17px;
font-weight: 700;
cursor: pointer;
transition:
background 0.3s ease,
transform 0.2s ease,
box-shadow 0.3s ease;
}

.register-btn:hover {
background: #082f72;
transform: translateY(-1px);
box-shadow: 0 8px 18px rgba(11, 61, 145, 0.25);
}

.register-btn:active {
transform: translateY(0);
}

.login-link {
text-align: center;
margin-top: 22px;
color: #666666;
}

.login-link a {
color: #0B3D91;
font-weight: 700;
text-decoration: none;
}

.login-link a:hover {
text-decoration: underline;
}

/* =========================================================
FOOTER
========================================================= */

footer {
background: #0B3D91;
color: #ffffff;
text-align: center;
padding: 25px;
}

/* =========================================================
TABLET
========================================================= */

@media (max-width: 768px) {


.nav-container {
    flex-direction: column;
    padding: 15px 0;
}

nav {
    margin-top: 10px;
    flex-wrap: wrap;
    justify-content: center;
}

nav a {
    margin: 8px 12px;
}

.hero {
    margin-top: 130px;
}

.slides img {
    height: 450px;
}

.caption {
    left: 5%;
    right: 5%;
    max-width: 90%;
}

.caption h1 {
    font-size: 36px;
}

.caption p {
    font-size: 18px;
}

.registration-page {
    padding: 160px 15px 50px;
}

.registration-header h1 {
    font-size: 32px;
}

.registration-header p {
    font-size: 15px;
}

.registration-card {
    padding: 25px 20px;
    border-radius: 12px;
}

.form-grid {
    grid-template-columns: 1fr;
    gap: 18px;
}

.form-group.full-width {
    grid-column: auto;
}


}

/* =========================================================
SMALL PHONES
========================================================= */

@media (max-width: 480px) {

.container {
    width: 94%;
}

.logo h2 {
    font-size: 19px;
}

nav a {
    margin: 6px 8px;
    font-size: 14px;
}

.hero {
    margin-top: 145px;
}

.slides img {
    height: 400px;
}

.caption h1 {
    font-size: 30px;
}

.caption p {
    font-size: 16px;
}

.features h2,
.courses h2 {
    font-size: 30px;
}

.registration-page {
    padding: 170px 10px 40px;
}

.registration-card {
    padding: 20px 15px;
}

.registration-header h1 {
    font-size: 28px;
}

.form-section h2 {
    font-size: 19px;
}


}

/* =========================================================
   LOGIN PAGE
========================================================= */

.login-page {
    min-height: calc(100vh - 150px);
    padding: 145px 20px 80px;
    background: linear-gradient(
        135deg,
        #f4f7fb 0%,
        #e8eef8 100%
    );

    display: flex;
    justify-content: center;
    align-items: flex-start;
}


.login-container {
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
}


/* =========================================================
   LOGIN HEADER
========================================================= */

.login-header {
    text-align: center;
    margin-bottom: 30px;
}


.login-icon {
    width: 70px;
    height: 70px;

    margin: 0 auto 18px;

    border-radius: 50%;

    background: #0B3D91;

    display: flex;
    align-items: center;
    justify-content: center;

    box-shadow: 0 8px 20px rgba(11, 61, 145, 0.20);
}


.login-icon span {
    font-size: 30px;
}


.login-header h1 {
    margin: 0 0 12px;

    color: #0B3D91;

    font-size: 38px;

    line-height: 1.2;
}


.login-header p {
    margin: 0 auto;

    max-width: 480px;

    color: #666;

    font-size: 16px;

    line-height: 1.6;
}


/* =========================================================
   LOGIN CARD
========================================================= */

.login-card {
    background: #ffffff;

    border-radius: 18px;

    padding: 40px;

    border: 1px solid #e4e9f1;

    box-shadow:
        0 15px 45px rgba(0, 0, 0, 0.10);
}


/* =========================================================
   FORM
========================================================= */

.login-form-group {
    margin-bottom: 24px;
}


.login-form-group label {
    display: block;

    margin-bottom: 8px;

    color: #333;

    font-size: 15px;

    font-weight: 600;
}


/* Password label + forgot password */

.password-label-row {
    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 8px;
}


.password-label-row label {
    margin-bottom: 0;
}


.forgot-password {
    color: #0B3D91;

    font-size: 13px;

    font-weight: 600;

    text-decoration: none;
}


.forgot-password:hover {
    text-decoration: underline;

    color: #082f72;
}


/* =========================================================
   INPUTS
========================================================= */

.input-wrapper {
    position: relative;

    width: 100%;
}


.input-wrapper input {
    width: 100%;

    height: 52px;

    padding: 0 50px 0 45px;

    border: 1px solid #d6dce6;

    border-radius: 9px;

    background: #ffffff;

    color: #333;

    font-family: Arial, Helvetica, sans-serif;

    font-size: 15px;

    outline: none;

    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
}


.input-wrapper input::placeholder {
    color: #999;
}


.input-wrapper input:focus {
    border-color: #0B3D91;

    background: #ffffff;

    box-shadow:
        0 0 0 3px rgba(11, 61, 145, 0.10);
}


/* =========================================================
   INPUT ICON
========================================================= */

.input-icon {
    position: absolute;

    left: 15px;

    top: 50%;

    transform: translateY(-50%);

    font-size: 18px;

    pointer-events: none;

    z-index: 2;
}


/* =========================================================
   PASSWORD TOGGLE
========================================================= */

.password-toggle {
    position: absolute;

    right: 10px;

    top: 50%;

    transform: translateY(-50%);

    width: 36px;

    height: 36px;

    border: none;

    background: transparent;

    cursor: pointer;

    font-size: 17px;

    border-radius: 6px;
}


.password-toggle:hover {
    background: #f0f3f8;
}


/* =========================================================
   REMEMBER ME
========================================================= */

.remember-row {
    margin-top: -3px;

    margin-bottom: 25px;
}


.remember-label {
    display: flex;

    align-items: center;

    gap: 9px;

    color: #555;

    font-size: 14px;

    cursor: pointer;
}


.remember-label input {
    width: 17px;

    height: 17px;

    margin: 0;

    cursor: pointer;

    accent-color: #0B3D91;
}


/* =========================================================
   LOGIN BUTTON
========================================================= */

.login-btn {
    width: 100%;

    min-height: 54px;

    padding: 14px 20px;

    border: none;

    border-radius: 9px;

    background: #0B3D91;

    color: #ffffff;

    font-family: Arial, Helvetica, sans-serif;

    font-size: 17px;

    font-weight: 700;

    cursor: pointer;

    transition:
        background 0.3s ease,
        transform 0.2s ease,
        box-shadow 0.3s ease;
}


.login-btn:hover {
    background: #082f72;

    transform: translateY(-1px);

    box-shadow:
        0 8px 20px rgba(11, 61, 145, 0.25);
}


.login-btn:active {
    transform: translateY(0);
}


/* =========================================================
   REGISTER PROMPT
========================================================= */

.register-prompt {
    text-align: center;

    margin-top: 25px;

    padding-top: 22px;

    border-top: 1px solid #edf0f5;

    color: #666;

    font-size: 14px;

    line-height: 1.6;
}


.register-prompt a {
    display: inline-block;

    margin-left: 5px;

    color: #0B3D91;

    font-weight: 700;

    text-decoration: none;
}


.register-prompt a:hover {
    text-decoration: underline;
}


/* =========================================================
   SECURITY MESSAGE
========================================================= */

.login-security {
    display: flex;

    justify-content: center;

    align-items: center;

    gap: 8px;

    margin-top: 20px;

    color: #777;

    font-size: 13px;

    text-align: center;
}


.login-security span {
    font-size: 16px;
}


.login-security p {
    margin: 0;
}


/* =========================================================
   DJANGO MESSAGES
========================================================= */

.messages {
    margin-bottom: 20px;
}


.alert {
    padding: 13px 15px;

    border-radius: 8px;

    margin-bottom: 10px;

    font-size: 14px;

    line-height: 1.5;
}


.alert.error {
    background: #f8d7da;

    border: 1px solid #f1aeb5;

    color: #842029;
}


.alert.success {
    background: #d1e7dd;

    border: 1px solid #a3cfbb;

    color: #0f5132;
}


.alert.warning {
    background: #fff3cd;

    border: 1px solid #ffe69c;

    color: #664d03;
}


.alert.info {
    background: #cff4fc;

    border: 1px solid #9eeaf9;

    color: #055160;
}


/* =========================================================
   ACTIVE NAVIGATION
========================================================= */

nav a.active {
    color: #FFD700;
}


/* =========================================================
   MOBILE LOGIN
========================================================= */

@media (max-width: 768px) {

    .login-page {
        padding: 120px 15px 60px;
    }


    .login-card {
        padding: 30px 25px;

        border-radius: 14px;
    }


    .login-header h1 {
        font-size: 32px;
    }


    .login-header p {
        font-size: 15px;
    }

}


@media (max-width: 480px) {

    .login-page {
        padding-left: 12px;

        padding-right: 12px;
    }


    .login-card {
        padding: 25px 18px;
    }


    .login-header h1 {
        font-size: 28px;
    }


    .login-icon {
        width: 60px;

        height: 60px;
    }


    .login-icon span {
        font-size: 25px;
    }


    .password-label-row {
        align-items: flex-start;

        gap: 10px;
    }


    .forgot-password {
        font-size: 12px;
    }

}

/* =========================================================
   PAYMENT PAGE
   ========================================================= */

.payment-page {
    width: 100%;
    padding: 70px 20px 80px;
    box-sizing: border-box;
}

.payment-container {
    width: 100%;
    max-width: 1250px;
    margin: 0 auto;
}


/* =========================================================
   PAYMENT HEADER
   ========================================================= */

.payment-header {
    position: relative;
    z-index: 1;

    text-align: center;

    margin-bottom: 40px;
}

.payment-header h1 {
    margin: 0 0 15px;

    font-size: 42px;
    line-height: 1.2;

    color: #124596;
}

.payment-header p {
    margin: 0 auto;

    max-width: 750px;

    line-height: 1.7;

    color: #666;
}


/* =========================================================
   TWO-COLUMN PAYMENT AREA
   ========================================================= */

.payment-layout {
    display: grid !important;

    grid-template-columns: 350px minmax(0, 1fr) !important;

    column-gap: 35px;

    align-items: start;

    width: 100%;

    box-sizing: border-box;
}


/* =========================================================
   LEFT SUMMARY
   ========================================================= */

.payment-summary {
    display: block !important;

    width: 350px !important;

    min-width: 350px !important;

    max-width: 350px !important;

    box-sizing: border-box;
}


/* =========================================================
   SUMMARY CARD
   ========================================================= */

.summary-card {
    display: block !important;

    width: 350px !important;

    max-width: 350px !important;

    box-sizing: border-box;

    padding: 28px 25px;

    background: #ffffff;

    border-radius: 15px;

    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);

    overflow: hidden;
}


.summary-card h2 {
    display: block !important;

    width: 100% !important;

    margin: 0 0 25px;

    color: #124596;

    font-size: 24px;

    line-height: 1.3;
}


/* =========================================================
   SUMMARY ITEM
   IMPORTANT:
   EACH ITEM MUST BE VERTICAL
   ========================================================= */

.summary-item {
    display: block !important;

    width: 100% !important;

    box-sizing: border-box;

    padding: 15px 0;

    margin: 0;

    border-bottom: 1px solid #eeeeee;
}


.summary-item span {
    display: block !important;

    width: 100% !important;

    margin: 0 0 6px;

    color: #777;

    font-size: 12px;

    font-weight: 500;

    text-transform: uppercase;

    letter-spacing: 0.5px;
}


.summary-item strong {
    display: block !important;

    width: 100% !important;

    margin: 0;

    color: #222;

    font-size: 16px;

    line-height: 1.5;

    word-wrap: break-word;

    overflow-wrap: break-word;
}


/* =========================================================
   TOTAL
   ========================================================= */

.summary-divider {
    display: block;

    width: 100%;

    height: 1px;

    margin: 20px 0;

    background: #ddd;
}


.total-row {
    display: flex !important;

    flex-direction: row !important;

    justify-content: space-between !important;

    align-items: center;

    width: 100%;

    gap: 10px;

    box-sizing: border-box;
}


.total-row span {
    font-weight: 600;
}


.total-row strong {
    color: #124596;

    font-size: 20px;

    white-space: nowrap;
}


.currency-note {
    margin-top: 10px;

    font-size: 12px;

    color: #777;
}


/* =========================================================
   SECURITY BOX
   ========================================================= */

.secure-payment {
    display: flex !important;

    flex-direction: row !important;

    align-items: flex-start;

    gap: 15px;

    width: 350px !important;

    max-width: 350px !important;

    box-sizing: border-box;

    margin-top: 20px;

    padding: 22px;

    background: #ffffff;

    border-radius: 15px;

    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.06);
}


/* =========================================================
   RIGHT PAYMENT CARD
   ========================================================= */

.checkout-card {
    display: block !important;

    width: 100% !important;

    min-width: 0 !important;

    box-sizing: border-box;

    padding: 36px;

    background: #ffffff;

    border-radius: 18px;

    box-shadow: 0 10px 35px rgba(0, 0, 0, 0.08);

    overflow: hidden;
}


/* =========================================================
   PAYMENT TABS
   ========================================================= */

.payment-tabs {
    display: grid !important;

    grid-template-columns: 1fr 1fr !important;

    gap: 14px;

    width: 100%;

    margin-bottom: 35px;
}


/* =========================================================
   CARD ROW
   ========================================================= */

.card-row {
    display: grid !important;

    grid-template-columns: 1fr 1fr !important;

    gap: 18px;

    width: 100%;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 950px) {

    .payment-layout {
        grid-template-columns: 1fr !important;
    }

    .payment-summary {
        width: 100% !important;

        min-width: 0 !important;

        max-width: none !important;
    }

    .summary-card {
        width: 100% !important;

        max-width: none !important;
    }

    .secure-payment {
        width: 100% !important;

        max-width: none !important;
    }

}


@media (max-width: 600px) {

    .payment-page {
        padding: 40px 15px 60px;
    }

    .payment-header h1 {
        font-size: 30px;
    }

    .checkout-card {
        padding: 22px;
    }

    .payment-tabs {
        grid-template-columns: 1fr !important;
    }

    .card-row {
        grid-template-columns: 1fr !important;
    }

}


/* =========================================================
   SECURE PAYMENT
========================================================= */

.secure-payment {

    display: flex;

    align-items: flex-start;

    gap: 14px;

    margin-top: 18px;

    padding: 18px;

    background: #ffffff;

    border: 1px solid #e3e8f0;

    border-radius: 12px;
}


.secure-icon {

    width: 40px;

    height: 40px;

    flex-shrink: 0;

    border-radius: 50%;

    background: #eaf3ff;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 18px;
}


.secure-payment strong {

    display: block;

    color: #0B3D91;

    margin-bottom: 5px;
}


.secure-payment p {

    margin: 0;

    color: #777;

    font-size: 13px;

    line-height: 1.5;
}


/* =========================================================
   CHECKOUT CARD
========================================================= */

.checkout-card {

    background: #ffffff;

    border-radius: 16px;

    padding: 35px;

    border: 1px solid #e3e8f0;

    box-shadow:
        0 12px 35px rgba(0, 0, 0, 0.08);
}


.checkout-header {

    margin-bottom: 25px;
}


.checkout-header h2 {

    margin: 0 0 8px;

    color: #0B3D91;

    font-size: 24px;
}


.checkout-header p {

    margin: 0;

    color: #777;

    font-size: 14px;
}


/* =========================================================
   PAYMENT OPTIONS
========================================================= */

.payment-methods {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 12px;

    margin-bottom: 25px;
}


.payment-option {

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 15px;

    border: 1px solid #dce2ea;

    border-radius: 10px;

    background: #ffffff;

    transition:
        border-color .25s ease,
        box-shadow .25s ease;
}


.payment-option.active {

    border-color: #0B3D91;

    box-shadow:
        0 0 0 2px rgba(11, 61, 145, 0.08);
}


.payment-option-icon {

    width: 42px;

    height: 42px;

    flex-shrink: 0;

    border-radius: 8px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-weight: 800;

    font-size: 18px;
}


.paypal-icon {

    background: #eef4ff;

    color: #003087;
}


.card-icon {

    background: #f2f4f7;

    color: #333;
}


.payment-option-text {

    display: flex;

    flex-direction: column;

    gap: 3px;
}


.payment-option-text strong {

    color: #333;

    font-size: 14px;
}


.payment-option-text span {

    color: #777;

    font-size: 11px;

    line-height: 1.4;
}


/* =========================================================
   PAYPAL SECTION
========================================================= */

.paypal-section {

    border-top: 1px solid #edf0f4;

    padding-top: 25px;
}


.paypal-title {

    color: #333;

    font-weight: 600;

    font-size: 15px;

    margin-bottom: 18px;
}


#paypal-button-container {

    width: 100%;

    min-height: 48px;
}


#payment-result {

    margin-top: 15px;
}


.payment-error {

    padding: 13px 15px;

    border-radius: 8px;

    background: #f8d7da;

    border: 1px solid #f1aeb5;

    color: #842029;

    font-size: 14px;
}


.payment-warning {

    padding: 13px 15px;

    border-radius: 8px;

    background: #fff3cd;

    border: 1px solid #ffe69c;

    color: #664d03;

    font-size: 14px;
}


/* =========================================================
   PAYMENT FOOTER NOTE
========================================================= */

.payment-footer-note {

    display: flex;

    align-items: flex-start;

    gap: 8px;

    margin-top: 22px;

    padding-top: 20px;

    border-top: 1px solid #edf0f4;

    color: #777;

    font-size: 12px;

    line-height: 1.5;
}


.payment-footer-note p {

    margin: 0;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 850px) {

    .payment-layout {

        grid-template-columns: 1fr;

    }

}


@media (max-width: 600px) {

    .payment-page {

        padding:
            120px
            15px
            60px;

    }


    .payment-header h1 {

        font-size: 30px;

    }


    .payment-header p {

        font-size: 14px;

    }


    .summary-card,
    .checkout-card {

        padding: 25px 20px;

        border-radius: 12px;

    }


    .payment-methods {

        grid-template-columns: 1fr;

    }


    .summary-item {

        flex-direction: column;

        gap: 5px;

    }


    .summary-item strong {

        text-align: left;

    }


    .total-row {

        align-items: flex-end;

    }


    .total-row strong {

        font-size: 25px;

    }

}

/* =========================================================
   PAYMENT PAGE
========================================================= */

.payment-page {
    min-height: 100vh;
    padding: 140px 20px 80px;
    background: #f4f7fb;
}

.payment-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.payment-header {
    text-align: center;
    margin-bottom: 40px;
}

.payment-header h1 {
    color: #0B3D91;
    font-size: 42px;
    margin-bottom: 12px;
}

.payment-header p {
    color: #666;
    font-size: 17px;
}


/* =========================================================
   TWO COLUMN LAYOUT
========================================================= */

.payment-layout {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    gap: 30px;
    align-items: start;
}


/* =========================================================
   SUMMARY
========================================================= */

.summary-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
    border: 1px solid #e4e8ef;
}

.summary-card h2 {
    color: #0B3D91;
    font-size: 22px;
    margin-bottom: 25px;
}

.summary-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 20px;
}

.summary-item span {
    color: #777;
    font-size: 13px;
}

.summary-item strong {
    color: #222;
    font-size: 16px;
}

.summary-divider {
    height: 1px;
    background: #e5e9ef;
    margin: 25px 0;
}

.total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.total-row span {
    font-size: 16px;
    color: #444;
}

.total-row strong {
    color: #0B3D91;
    font-size: 28px;
}

.currency-note {
    margin-top: 15px;
    font-size: 13px;
    color: #777;
}


/* =========================================================
   SECURITY
========================================================= */

.secure-payment {
    margin-top: 20px;
    padding: 20px;
    background: #ffffff;
    border-radius: 14px;
    display: flex;
    gap: 15px;
    align-items: flex-start;
    border: 1px solid #e5e9ef;
}

.secure-icon {
    font-size: 25px;
}

.secure-payment strong {
    color: #0B3D91;
}

.secure-payment p {
    margin-top: 5px;
    color: #666;
    font-size: 13px;
    line-height: 1.5;
}


/* =========================================================
   CHECKOUT CARD
========================================================= */

.checkout-card {
    background: #ffffff;
    border-radius: 18px;
    padding: 35px;
    box-shadow: 0 15px 45px rgba(0,0,0,.10);
    border: 1px solid #e2e7ef;
}

.checkout-header h2 {
    color: #0B3D91;
    font-size: 27px;
    margin-bottom: 8px;
}

.checkout-header p {
    color: #777;
    margin-bottom: 25px;
}


/* =========================================================
   PAYMENT TABS
========================================================= */

.payment-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 30px;
}

.payment-tab {
    min-height: 65px;
    border: 2px solid #dce2eb;
    border-radius: 10px;
    background: #ffffff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 700;
    color: #444;
    transition: .25s ease;
}

.payment-tab:hover {
    border-color: #0B3D91;
}

.payment-tab.active {
    border-color: #0B3D91;
    background: #f1f6ff;
    color: #0B3D91;
}

.paypal-letter {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #0070ba;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
}


/* =========================================================
   PAYMENT PANELS
========================================================= */

.payment-panel {
    display: none;
}

.payment-panel.active {
    display: block;
}

.panel-title {
    margin-bottom: 25px;
}

.panel-title h3 {
    color: #222;
    font-size: 20px;
    margin-bottom: 7px;
}

.panel-title p {
    color: #777;
    font-size: 14px;
}


/* =========================================================
   FORM FIELDS
========================================================= */

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    color: #333;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 8px;
}

.form-group input,
.form-group select {
    width: 100%;
    height: 50px;
    padding: 0 14px;
    border: 1px solid #cfd6e0;
    border-radius: 8px;
    background: #ffffff;
    color: #222;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    outline: none;
    transition: .2s ease;
}

.form-group input:focus,
.form-group select:focus {
    border-color: #0B3D91;
    box-shadow: 0 0 0 3px rgba(11,61,145,.10);
}

.form-group input::placeholder {
    color: #999;
}


/* =========================================================
   CARD ROW
========================================================= */

.card-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}


/* =========================================================
   PAYPAL HOSTED CARD FIELDS
========================================================= */

.paypal-card-field {
    width: 100%;
    min-height: 50px;
    padding: 0 12px;
    border: 1px solid #cfd6e0;
    border-radius: 8px;
    background: #ffffff;
    display: flex;
    align-items: center;
}

.paypal-card-field:focus-within {
    border-color: #0B3D91;
    box-shadow: 0 0 0 3px rgba(11,61,145,.10);
}


/* =========================================================
   BILLING SECTION
========================================================= */

.billing-section {
    margin-top: 30px;
    padding-top: 25px;
    border-top: 1px solid #e5e9ef;
}

.billing-section h3 {
    color: #0B3D91;
    font-size: 20px;
    margin-bottom: 7px;
}

.billing-description {
    color: #777;
    font-size: 13px;
    margin-bottom: 22px;
}


/* =========================================================
   PAY BUTTON
========================================================= */

.pay-button {
    width: 100%;
    min-height: 55px;
    margin-top: 10px;
    border: none;
    border-radius: 8px;
    background: #0B3D91;
    color: #ffffff;
    font-size: 17px;
    font-weight: 700;
    cursor: pointer;
    transition: .25s ease;
}

.pay-button:hover {
    background: #082f72;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(11,61,145,.22);
}

.pay-button:disabled {
    opacity: .6;
    cursor: not-allowed;
    transform: none;
}


/* =========================================================
   PAYPAL
========================================================= */

.paypal-box {
    background: #f7f9fc;
    border: 1px solid #e2e7ef;
    border-radius: 10px;
    padding: 25px;
    text-align: center;
    margin-bottom: 25px;
}

.paypal-logo {
    font-size: 28px;
    font-weight: 800;
    color: #0070ba;
    margin-bottom: 8px;
}

.paypal-box p {
    color: #777;
    font-size: 14px;
}


/* =========================================================
   PAYMENT RESULT
========================================================= */

.payment-result {
    margin-top: 15px;
}

.payment-error {
    background: #fdecec;
    color: #a40000;
    border: 1px solid #f5bcbc;
    padding: 13px;
    border-radius: 8px;
    font-size: 14px;
}

.payment-warning {
    background: #fff7df;
    color: #755b00;
    border: 1px solid #f1df9c;
    padding: 13px;
    border-radius: 8px;
    font-size: 14px;
}

.payment-success {
    background: #eaf8ee;
    color: #176b2c;
    border: 1px solid #b8e2c1;
    padding: 13px;
    border-radius: 8px;
}


/* =========================================================
   FOOTER NOTE
========================================================= */

.payment-footer-note {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid #e5e9ef;
    display: flex;
    gap: 10px;
    align-items: center;
    color: #777;
    font-size: 13px;
    line-height: 1.5;
}


/* =========================================================
   FOOTER
========================================================= */

footer {
    background: #0B3D91;
    color: #ffffff;
    text-align: center;
    padding: 25px;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .payment-layout {
        grid-template-columns: 1fr;
    }

    .payment-summary {
        order: 2;
    }

    .checkout-card {
        order: 1;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .payment-page {
        padding: 120px 12px 50px;
    }

    .payment-header h1 {
        font-size: 30px;
    }

    .payment-header p {
        font-size: 14px;
    }

    .checkout-card {
        padding: 22px 17px;
    }

    .payment-tabs {
        grid-template-columns: 1fr;
    }

    .card-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .summary-card {
        padding: 22px;
    }

    .total-row strong {
        font-size: 23px;
    }

}

/* =========================================================
   PRIVACY POLICY / LEGAL PAGE
========================================================= */

.legal-page {
    min-height: 100vh;
    padding: 140px 20px 80px;
    background: #f4f7fb;
}

.legal-container {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.legal-header {
    text-align: center;
    margin-bottom: 40px;
}

.legal-badge,
.contact-badge {
    display: inline-block;
    padding: 7px 16px;
    background: #eaf1ff;
    color: #0B3D91;
    border-radius: 30px;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 15px;
}

.legal-header h1,
.contact-header h1 {
    color: #0B3D91;
    font-size: 44px;
    margin-bottom: 15px;
}

.legal-header > p {
    max-width: 750px;
    margin: 0 auto;
    color: #666;
    font-size: 17px;
    line-height: 1.7;
}

.last-updated {
    margin-top: 15px !important;
    font-size: 13px !important;
    color: #888 !important;
}


/* =========================================================
   LEGAL CARD
========================================================= */

.legal-card {
    background: #ffffff;
    border-radius: 18px;
    padding: 50px;
    border: 1px solid #e2e7ef;
    box-shadow: 0 15px 45px rgba(0,0,0,.08);
}

.legal-section {
    margin-bottom: 38px;
}

.legal-section:last-child {
    margin-bottom: 0;
}

.legal-section h2 {
    color: #0B3D91;
    font-size: 23px;
    margin-bottom: 15px;
}

.legal-section p {
    color: #555;
    font-size: 15px;
    line-height: 1.8;
    margin-bottom: 13px;
}

.legal-section ul {
    padding-left: 25px;
    margin-top: 10px;
}

.legal-section li {
    color: #555;
    font-size: 15px;
    line-height: 1.8;
    margin-bottom: 7px;
}

.legal-section a {
    color: #0B3D91;
    font-weight: 600;
    text-decoration: none;
}

.legal-section a:hover {
    text-decoration: underline;
}


/* =========================================================
   PRIVACY CONTACT BOX
========================================================= */

.privacy-contact-box {
    margin-top: 20px;
    padding: 22px;
    background: #f4f7fb;
    border-left: 4px solid #0B3D91;
    border-radius: 8px;
}

.privacy-contact-box strong {
    color: #0B3D91;
    font-size: 17px;
}

.privacy-contact-box p {
    margin: 8px 0 0;
}



/* =========================================================
   CONTACT PAGE
========================================================= */

.contact-page {
    min-height: 100vh;
    padding: 140px 20px 80px;
    background: #f4f7fb;
}

.contact-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.contact-header {
    text-align: center;
    margin-bottom: 45px;
}

.contact-header p {
    max-width: 700px;
    margin: 0 auto;
    color: #666;
    font-size: 17px;
    line-height: 1.7;
}


/* =========================================================
   CONTACT GRID
========================================================= */

.contact-layout {
    display: grid;
    grid-template-columns: 380px minmax(0, 1fr);
    gap: 30px;
    align-items: start;
}


/* =========================================================
   CONTACT INFORMATION
========================================================= */

.contact-info-card {
    background: #ffffff;
    padding: 35px;
    border-radius: 16px;
    border: 1px solid #e2e7ef;
    box-shadow: 0 12px 35px rgba(0,0,0,.08);
}

.contact-info-card h2 {
    color: #0B3D91;
    font-size: 27px;
    margin-bottom: 10px;
}

.contact-info-card > p {
    color: #666;
    line-height: 1.7;
    margin-bottom: 30px;
}


/* =========================================================
   CONTACT INFORMATION ITEMS
========================================================= */

.contact-info-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 25px;
}

.contact-icon {
    width: 45px;
    height: 45px;
    min-width: 45px;
    border-radius: 10px;
    background: #eaf1ff;
    color: #0B3D91;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

.contact-info-item div:last-child {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.contact-info-item span {
    color: #888;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.contact-info-item a {
    color: #0B3D91;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
}

.contact-info-item a:hover {
    text-decoration: underline;
}

.contact-info-item strong {
    color: #333;
    font-size: 15px;
}

.contact-info-item small {
    color: #777;
}


/* =========================================================
   SUPPORT BOX
========================================================= */

.contact-support-box {
    margin-top: 20px;
    padding: 28px;
    background: #0B3D91;
    color: #ffffff;
    border-radius: 16px;
    box-shadow: 0 10px 25px rgba(11,61,145,.20);
}

.contact-support-box h3 {
    font-size: 20px;
    margin-bottom: 10px;
}

.contact-support-box p {
    color: #e7efff;
    line-height: 1.6;
    font-size: 14px;
    margin-bottom: 20px;
}

.contact-courses-btn {
    display: inline-block;
    background: #FFD700;
    color: #111;
    padding: 12px 20px;
    border-radius: 7px;
    text-decoration: none;
    font-weight: 700;
    transition: .25s ease;
}

.contact-courses-btn:hover {
    background: #ffffff;
    transform: translateY(-1px);
}


/* =========================================================
   CONTACT FORM
========================================================= */

.contact-form-card {
    background: #ffffff;
    padding: 40px;
    border-radius: 16px;
    border: 1px solid #e2e7ef;
    box-shadow: 0 12px 35px rgba(0,0,0,.08);
}

.contact-form-header {
    margin-bottom: 30px;
}

.contact-form-header h2 {
    color: #0B3D91;
    font-size: 27px;
    margin-bottom: 8px;
}

.contact-form-header p {
    color: #777;
    line-height: 1.6;
}


/* =========================================================
   CONTACT FORM ROW
========================================================= */

.contact-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}


/* =========================================================
   CONTACT FORM GROUP
========================================================= */

.contact-form-group {
    margin-bottom: 20px;
}

.contact-form-group label {
    display: block;
    color: #333;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 8px;
}

.contact-form-group input,
.contact-form-group select,
.contact-form-group textarea {
    width: 100%;
    border: 1px solid #cfd6e0;
    border-radius: 8px;
    background: #ffffff;
    color: #222;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    outline: none;
    transition: border-color .2s ease,
                box-shadow .2s ease;
}

.contact-form-group input,
.contact-form-group select {
    height: 50px;
    padding: 0 14px;
}

.contact-form-group textarea {
    padding: 14px;
    min-height: 140px;
    resize: vertical;
    line-height: 1.5;
}

.contact-form-group input:focus,
.contact-form-group select:focus,
.contact-form-group textarea:focus {
    border-color: #0B3D91;
    box-shadow: 0 0 0 3px rgba(11,61,145,.10);
}

.contact-form-group input::placeholder,
.contact-form-group textarea::placeholder {
    color: #999;
}


/* =========================================================
   SUBMIT BUTTON
========================================================= */

.contact-submit-btn {
    width: 100%;
    min-height: 54px;
    border: none;
    border-radius: 8px;
    background: #0B3D91;
    color: #ffffff;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: .25s ease;
}

.contact-submit-btn span {
    margin-left: 8px;
    font-size: 20px;
}

.contact-submit-btn:hover {
    background: #082f72;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(11,61,145,.20);
}


/* =========================================================
   CONTACT SUCCESS MESSAGE
========================================================= */

.contact-message {
    background: #eaf8ee;
    border: 1px solid #b9e2c2;
    color: #176b2c;
    padding: 14px;
    border-radius: 8px;
    margin-bottom: 20px;
    font-size: 14px;
}


/* =========================================================
   FOOTER LINKS
========================================================= */

.footer-links {
    margin-top: 10px;
}

.footer-links a {
    color: #ffffff;
    text-decoration: none;
    margin: 0 10px;
    font-size: 14px;
}

.footer-links a:hover {
    color: #FFD700;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .contact-layout {
        grid-template-columns: 1fr;
    }

    .contact-information {
        order: 2;
    }

    .contact-form-card {
        order: 1;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .legal-page,
    .contact-page {
        padding: 120px 12px 50px;
    }

    .legal-header h1,
    .contact-header h1 {
        font-size: 31px;
    }

    .legal-header > p,
    .contact-header p {
        font-size: 14px;
    }

    .legal-card {
        padding: 25px 20px;
        border-radius: 12px;
    }

    .legal-section h2 {
        font-size: 20px;
    }

    .contact-info-card,
    .contact-form-card {
        padding: 25px 20px;
        border-radius: 12px;
    }

    .contact-form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

}

.alert {
    padding: 14px 18px;
    margin-bottom: 20px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
}

.alert.success {
    background: #d1e7dd;
    color: #0f5132;
    border: 1px solid #badbcc;
}

.alert.error {
    background: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}

/* =========================================================
   TECHTRADITIONS STUDENT DASHBOARD
========================================================= */

.dashboard-page {
    min-height: 100vh;
    padding: 125px 20px 70px;
    background: #f4f7fb;
}

.dashboard-container {
    width: 100%;
    max-width: 1250px;
    margin: 0 auto;
}


/* =========================================================
   DASHBOARD WELCOME
========================================================= */

.dashboard-welcome {
    margin-bottom: 25px;
}

.dashboard-label {
    display: inline-block;
    margin-bottom: 8px;

    color: #0b3d91;

    font-size: 12px;
    font-weight: 800;

    letter-spacing: 1.5px;
}

.dashboard-welcome h1 {
    margin: 0 0 10px;

    color: #0b3d91;

    font-size: 40px;
    line-height: 1.2;
}

.dashboard-welcome p {
    max-width: 750px;

    margin: 0;

    color: #667085;

    font-size: 16px;
    line-height: 1.7;
}


/* =========================================================
   PROFILE HEADER
========================================================= */

.profile-header-card {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;

    padding: 25px 30px;

    margin-bottom: 25px;

    background: #ffffff;

    border: 1px solid #e5e9f0;

    border-radius: 16px;

    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.06);
}

.profile-left {
    display: flex;
    align-items: center;

    gap: 18px;

    min-width: 0;
}

.profile-avatar {
    width: 82px;
    height: 82px;

    min-width: 82px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #0b3d91;

    color: #ffffff;

    font-size: 34px;
    font-weight: 800;

    box-shadow: 0 8px 20px rgba(11, 61, 145, 0.25);
}

.profile-heading {
    min-width: 0;
}

.profile-heading h2 {
    margin: 0 0 5px;

    color: #1f2937;

    font-size: 25px;
}

.profile-heading p {
    margin: 0 0 9px;

    color: #667085;

    font-size: 14px;
}

.student-badge {
    display: inline-block;

    padding: 5px 12px;

    border-radius: 20px;

    background: #eef4ff;

    color: #0b3d91;

    font-size: 12px;
    font-weight: 700;
}

.profile-status {
    display: flex;
    flex-direction: column;

    align-items: flex-end;

    gap: 6px;
}

.status-label {
    color: #98a2b3;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 0.8px;
}

.status-active {
    color: #198754;

    font-size: 14px;
    font-weight: 700;
}


/* =========================================================
   SUMMARY CARDS
========================================================= */

.dashboard-summary {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 20px;

    margin-bottom: 25px;
}

.summary-card {
    display: flex;
    align-items: center;

    gap: 15px;

    min-width: 0;

    padding: 22px;

    background: #ffffff;

    border: 1px solid #e5e9f0;

    border-radius: 14px;

    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.summary-icon {
    width: 50px;
    height: 50px;

    min-width: 50px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 12px;

    background: #eef4ff;

    font-size: 23px;
}

.summary-card span {
    display: block;

    margin-bottom: 5px;

    color: #8a94a6;

    font-size: 12px;
    font-weight: 600;

    text-transform: uppercase;
}

.summary-card strong {
    display: block;

    color: #27364b;

    font-size: 15px;

    overflow-wrap: anywhere;
}

.paid-text {
    color: #198754 !important;
}

.pending-text {
    color: #b77900 !important;
}


/* =========================================================
   MAIN GRID
========================================================= */

.dashboard-main-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 25px;
}


/* =========================================================
   PANELS
========================================================= */

.dashboard-panel {
    min-width: 0;

    padding: 28px;

    background: #ffffff;

    border: 1px solid #e5e9f0;

    border-radius: 16px;

    box-shadow: 0 7px 22px rgba(0, 0, 0, 0.05);
}

.panel-header {
    display: flex;
    align-items: center;

    gap: 14px;

    padding-bottom: 20px;

    margin-bottom: 20px;

    border-bottom: 1px solid #edf0f5;
}

.panel-icon {
    width: 48px;
    height: 48px;

    min-width: 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 11px;

    background: #eef4ff;

    font-size: 22px;
}

.panel-header h2 {
    margin: 0 0 4px;

    color: #0b3d91;

    font-size: 20px;
}

.panel-header p {
    margin: 0;

    color: #8a94a6;

    font-size: 13px;
}


/* =========================================================
   DETAILS
========================================================= */

.details-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 20px;
}

.detail-box {
    min-width: 0;
}

.detail-box span {
    display: block;

    margin-bottom: 6px;

    color: #8a94a6;

    font-size: 11px;
    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.5px;
}

.detail-box strong {
    display: block;

    color: #344054;

    font-size: 14px;

    overflow-wrap: anywhere;
}


/* =========================================================
   COURSE
========================================================= */

.dashboard-course-image {
    display: block;

    width: 100%;
    height: 210px;

    object-fit: cover;

    border-radius: 12px;

    margin-bottom: 20px;
}

.course-dashboard-info h3 {
    margin: 0 0 20px;

    color: #0b3d91;

    font-size: 24px;
}

.course-detail-row {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 15px;

    margin-bottom: 20px;
}

.course-detail-row > div {
    padding: 15px;

    border-radius: 10px;

    background: #f6f8fc;
}

.course-detail-row span {
    display: block;

    margin-bottom: 6px;

    color: #8a94a6;

    font-size: 12px;
}

.course-detail-row strong {
    color: #344054;

    font-size: 16px;
}


/* =========================================================
   PAYMENT STATUS
========================================================= */

.course-payment-status {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    padding: 15px;

    border-radius: 10px;

    background: #f8fafc;
}

.course-payment-status > span {
    color: #667085;

    font-size: 13px;
}

.paid-badge,
.pending-badge,
.active-badge {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding: 6px 12px;

    border-radius: 20px;

    font-size: 11px;
    font-weight: 800;
}

.paid-badge,
.active-badge {
    background: #e8f7ee;

    color: #198754;
}

.pending-badge {
    background: #fff4d6;

    color: #a66b00;
}


/* =========================================================
   EMPTY COURSE
========================================================= */

.empty-course {
    padding: 30px 15px;

    text-align: center;
}

.empty-course > div {
    margin-bottom: 10px;

    font-size: 42px;
}

.empty-course h3 {
    margin-bottom: 8px;

    color: #0b3d91;
}

.empty-course p {
    margin-bottom: 20px;

    color: #777;
}

.dashboard-btn {
    display: inline-block;

    padding: 12px 24px;

    border-radius: 7px;

    background: #0b3d91;

    color: #ffffff;

    text-decoration: none;

    font-weight: 700;
}

.dashboard-btn:hover {
    background: #082f72;
}


/* =========================================================
   ACCOUNT
========================================================= */

.account-list {
    display: flex;
    flex-direction: column;
}

.account-row {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    padding: 17px 0;

    border-bottom: 1px solid #edf0f5;
}

.account-row:last-child {
    border-bottom: none;
}

.account-row > span {
    color: #667085;

    font-size: 14px;
}

.account-row > strong {
    text-align: right;

    font-size: 13px;

    overflow-wrap: anywhere;
}


/* =========================================================
   QUICK ACTIONS
========================================================= */

.dashboard-actions {
    margin-top: 35px;
}

.dashboard-actions > h2 {
    margin-bottom: 20px;

    color: #0b3d91;

    font-size: 25px;
}

.action-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 18px;
}

.action-card {
    display: flex;
    align-items: center;

    gap: 13px;

    min-width: 0;

    padding: 20px;

    border: 1px solid #e5e9f0;

    border-radius: 13px;

    background: #ffffff;

    text-decoration: none;

    box-shadow: 0 5px 18px rgba(0, 0, 0, 0.05);

    transition: 0.25s ease;
}

.action-card:hover {
    transform: translateY(-4px);

    border-color: #0b3d91;

    box-shadow: 0 10px 25px rgba(11, 61, 145, 0.12);
}

.action-card > span {
    width: 45px;
    height: 45px;

    min-width: 45px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background: #eef4ff;

    font-size: 20px;
}

.action-card strong {
    display: block;

    margin-bottom: 4px;

    color: #0b3d91;

    font-size: 14px;
}

.action-card small {
    display: block;

    color: #777;

    font-size: 11px;

    line-height: 1.4;
}

.logout-action:hover {
    border-color: #dc3545;
}

.logout-action strong {
    color: #dc3545;
}


/* =========================================================
   ACTIVE NAV
========================================================= */

nav a.active {
    color: #ffd700;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {

    .dashboard-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .action-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


@media (max-width: 850px) {

    .dashboard-main-grid {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 700px) {

    .dashboard-page {
        padding:
            110px 15px 50px;
    }

    .dashboard-welcome h1 {
        font-size: 30px;
    }

    .profile-header-card {
        align-items: flex-start;

        flex-direction: column;
    }

    .profile-status {
        align-items: flex-start;
    }

    .dashboard-summary {
        grid-template-columns: 1fr;
    }

    .details-grid {
        grid-template-columns: 1fr;
    }

    .action-grid {
        grid-template-columns: 1fr;
    }

}



@media (max-width: 480px) {

    .dashboard-page {
        padding-left: 10px;
        padding-right: 10px;
    }

    .dashboard-panel {
        padding: 20px;
    }

    .profile-header-card {
        padding: 20px;
    }

    .profile-avatar {
        width: 65px;
        height: 65px;

        min-width: 65px;

        font-size: 27px;
    }

    .profile-heading h2 {
        font-size: 21px;
    }

    .course-detail-row {
        grid-template-columns: 1fr;
    }

    .course-payment-status {
        align-items: flex-start;

        flex-direction: column;
    }

}

/* =========================================================
   STUDENT DASHBOARD
========================================================= */

.dashboard-page {
    min-height: 100vh;
    padding: 130px 20px 70px;
    background: #f4f7fb;
}

.dashboard-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.dashboard-header {
    margin-bottom: 30px;
}

.dashboard-header h1 {
    color: #0B3D91;
    font-size: 38px;
    margin-bottom: 8px;
}

.dashboard-header p {
    color: #666;
    font-size: 16px;
}


/* PROFILE */

.dashboard-profile {
    display: flex;
    align-items: center;
    gap: 20px;
    background: #ffffff;
    padding: 25px;
    border-radius: 14px;
    margin-bottom: 25px;
    box-shadow: 0 8px 25px rgba(0,0,0,.08);
}

.profile-avatar {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    background: #0B3D91;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    font-weight: bold;
}

.profile-info h2 {
    color: #0B3D91;
    margin-bottom: 5px;
}

.profile-info p {
    color: #666;
    margin: 4px 0;
}


/* STATISTICS */

.dashboard-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 25px;
}

.dashboard-stat {
    background: white;
    border-radius: 14px;
    padding: 25px;
    display: flex;
    align-items: center;
    gap: 18px;
    box-shadow: 0 8px 25px rgba(0,0,0,.07);
}

.dashboard-stat > span {
    font-size: 32px;
}

.dashboard-stat small {
    display: block;
    color: #777;
    margin-bottom: 7px;
}

.dashboard-stat strong {
    color: #0B3D91;
    font-size: 17px;
}


/* PAYMENT STATUS */

.dashboard-stat strong.paid {
    color: #198754;
}

.dashboard-stat strong.unpaid {
    color: #dc3545;
}


/* CARD */

.dashboard-card {
    background: #fff;
    border-radius: 14px;
    padding: 30px;
    margin-bottom: 25px;
    box-shadow: 0 8px 25px rgba(0,0,0,.07);
}

.dashboard-card-header {
    border-bottom: 1px solid #e6eaf0;
    padding-bottom: 15px;
    margin-bottom: 25px;
}

.dashboard-card-header h2 {
    color: #0B3D91;
    font-size: 24px;
}


/* DETAILS */

.details-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.detail-item {
    padding: 16px;
    background: #f7f9fc;
    border-radius: 8px;
}

.detail-item span {
    display: block;
    color: #777;
    font-size: 13px;
    margin-bottom: 6px;
}

.detail-item strong {
    color: #333;
}


/* COURSE */

.my-course {
    display: flex;
    gap: 25px;
    align-items: center;
}

.my-course img {
    width: 250px;
    height: 160px;
    object-fit: cover;
    border-radius: 10px;
}

.my-course-info h2 {
    color: #0B3D91;
    margin-bottom: 15px;
}

.my-course-info p {
    color: #555;
    margin-bottom: 10px;
}


/* STATUS */

.status-badge {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: bold;
    margin: 10px 0;
}

.status-badge.paid {
    background: #d1e7dd;
    color: #0f5132;
}

.status-badge.unpaid {
    background: #f8d7da;
    color: #842029;
}


/* BUTTON */

.dashboard-btn {
    display: inline-block;
    margin-top: 12px;
    padding: 12px 20px;
    background: #0B3D91;
    color: white;
    text-decoration: none;
    border-radius: 7px;
    font-weight: bold;
    transition: .3s;
}

.dashboard-btn:hover {
    background: #082f72;
    transform: translateY(-2px);
}


/* NO COURSE */

.no-course {
    text-align: center;
    padding: 35px;
}

.no-course h3 {
    color: #0B3D91;
    margin-bottom: 10px;
}

.no-course p {
    color: #666;
    margin-bottom: 15px;
}


/* MOBILE */

@media (max-width: 768px) {

    .dashboard-page {
        padding: 110px 15px 50px;
    }

    .dashboard-header h1 {
        font-size: 30px;
    }

    .dashboard-stats {
        grid-template-columns: 1fr;
    }

    .details-grid {
        grid-template-columns: 1fr;
    }

    .my-course {
        flex-direction: column;
        align-items: stretch;
    }

    .my-course img {
        width: 100%;
        height: 200px;
    }

    .dashboard-profile {
        align-items: flex-start;
    }

}

/* =========================================================
   CLASSROOM
========================================================= */

.classroom-page,
.lesson-page {
    background: #f4f7fb;
    min-height: calc(100vh - 100px);
    padding: 50px 20px;
}

.classroom-container,
.lesson-container {
    max-width: 1200px;
    margin: auto;
}


/* CLASSROOM HEADER */

.classroom-header {
    background: linear-gradient(
        135deg,
        #0d47a1,
        #1565c0
    );

    color: white;

    padding: 45px;

    border-radius: 18px;

    margin-bottom: 30px;

    box-shadow:
        0 10px 30px rgba(0, 0, 0, 0.08);
}

.classroom-label {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    opacity: .8;
}

.classroom-header h1 {
    font-size: 38px;
    margin: 10px 0;
}

.classroom-header p {
    font-size: 17px;
}


/* SECTION */

.lesson-list {
    background: white;

    border-radius: 18px;

    padding: 30px;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.06);
}

.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;

    margin-bottom: 25px;
}

.section-heading h2 {
    color: #0d47a1;
}

.section-heading span {
    background: #eef4ff;

    color: #0d47a1;

    padding: 8px 15px;

    border-radius: 20px;

    font-weight: 600;
}


/* LESSON CARD */

.lesson-card {
    display: flex;
    align-items: center;

    gap: 20px;

    padding: 22px;

    margin-bottom: 15px;

    border: 1px solid #e3e8ef;

    border-radius: 12px;

    text-decoration: none;

    color: inherit;

    transition: .2s;
}

.lesson-card:hover {
    transform: translateY(-2px);

    border-color: #0d47a1;

    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.08);
}

.lesson-number {
    min-width: 50px;
    height: 50px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #0d47a1;

    color: white;

    font-size: 18px;

    font-weight: 700;
}

.lesson-information {
    flex: 1;
}

.lesson-information h3 {
    margin: 0 0 6px;

    color: #123c73;
}

.lesson-information p {
    margin: 0 0 10px;

    color: #68778a;
}

.lesson-meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.lesson-meta span {
    background: #f1f5f9;

    padding: 5px 10px;

    border-radius: 6px;

    font-size: 13px;
}

.lesson-arrow {
    font-size: 25px;

    color: #0d47a1;
}


/* EMPTY CLASSROOM */

.empty-classroom {
    text-align: center;

    padding: 60px 20px;

    color: #667085;
}


/* LESSON PAGE */

.lesson-header {
    background: white;

    padding: 35px;

    border-radius: 18px;

    margin: 20px 0 30px;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.05);
}

.lesson-header > span {
    color: #0d47a1;

    font-weight: 700;
}

.lesson-header h1 {
    font-size: 36px;

    margin: 10px 0;
}

.back-classroom {
    text-decoration: none;

    color: #0d47a1;

    font-weight: 600;
}


/* VIDEO */

.video-section,
.lecture-content,
.lecture-material {
    background: white;

    padding: 30px;

    border-radius: 18px;

    margin-bottom: 25px;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.05);
}

.video-section h2,
.lecture-content h2,
.lecture-material h2 {
    color: #0d47a1;

    margin-top: 0;
}

.lecture-video {
    width: 100%;

    max-height: 650px;

    border-radius: 12px;

    background: #000;
}


/* LECTURE TEXT */

.lecture-text {
    font-size: 17px;

    line-height: 1.8;

    color: #333;
}


/* DOWNLOAD */

.download-button {
    display: inline-block;

    background: #0d47a1;

    color: white;

    padding: 13px 22px;

    border-radius: 8px;

    text-decoration: none;

    font-weight: 600;
}

.download-button:hover {
    background: #083577;
}


/* MOBILE */

@media (max-width: 768px) {

    .classroom-header h1 {
        font-size: 28px;
    }

    .classroom-header {
        padding: 30px 20px;
    }

    .lesson-list {
        padding: 20px;
    }

    .lesson-card {
        gap: 12px;
    }

    .lesson-number {
        min-width: 42px;
        height: 42px;
    }

    .lesson-arrow {
        display: none;
    }

    .lesson-header h1 {
        font-size: 28px;
    }

}

/* =========================================================
   PASSWORD RECOVERY PAGE
   ========================================================= */

.auth-page {
    min-height: calc(100vh - 174px);

    display: flex;

    align-items: flex-start;

    justify-content: center;

    padding: 55px 20px 70px;

    box-sizing: border-box;

    background: linear-gradient(
        135deg,
        #f4f7fb 0%,
        #eef3fa 100%
    );
}

/* ---------------------------------------------------------
   AUTH CONTAINER
   --------------------------------------------------------- */

.auth-container {

    width: 100%;

    max-width: 520px;

    background: #ffffff;

    padding: 45px 45px 40px;

    border-radius: 18px;

    border: 1px solid #e5eaf2;

    box-shadow:
        0 15px 40px rgba(0, 0, 0, 0.08);

}


/* ---------------------------------------------------------
   AUTH ICON
   --------------------------------------------------------- */

.auth-icon {

    width: 70px;

    height: 70px;

    margin: 0 auto 20px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: #eaf1ff;

    font-size: 32px;

}


/* ---------------------------------------------------------
   AUTH HEADER
   --------------------------------------------------------- */

.auth-header {

    text-align: center;

    margin-bottom: 32px;

}


.auth-header h1 {

    margin: 0 0 12px;

    color: #124a9e;

    font-size: 32px;

    font-weight: 700;

}


.auth-header p {

    margin: 0;

    color: #667085;

    font-size: 15px;

    line-height: 1.7;

}


/* ---------------------------------------------------------
   FORM
   --------------------------------------------------------- */

.auth-container form {

    width: 100%;

}


.form-group {

    margin-bottom: 24px;

}


.form-group label {

    display: block;

    margin-bottom: 9px;

    color: #1d2939;

    font-size: 14px;

    font-weight: 600;

}


.form-group input {

    width: 100%;

    box-sizing: border-box;

    height: 52px;

    padding: 0 16px;

    border: 1px solid #d0d5dd;

    border-radius: 10px;

    background: #ffffff;

    color: #101828;

    font-size: 15px;

    outline: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;

}


.form-group input::placeholder {

    color: #98a2b3;

}


.form-group input:focus {

    border-color: #1456a0;

    box-shadow:
        0 0 0 4px rgba(20, 86, 160, 0.12);

}


/* ---------------------------------------------------------
   BUTTON
   --------------------------------------------------------- */

.auth-button {

    width: 100%;

    height: 52px;

    border: none;

    border-radius: 10px;

    background: #124a9e;

    color: #ffffff;

    font-size: 15px;

    font-weight: 700;

    cursor: pointer;

    transition:
        background 0.2s ease,
        transform 0.15s ease,
        box-shadow 0.2s ease;

}


.auth-button:hover {

    background: #0d3d85;

    box-shadow:
        0 8px 20px rgba(18, 74, 158, 0.25);

    transform: translateY(-1px);

}


.auth-button:active {

    transform: translateY(0);

}


/* ---------------------------------------------------------
   AUTH LINKS
   --------------------------------------------------------- */

.auth-links {

    margin-top: 26px;

    padding-top: 22px;

    border-top: 1px solid #eaecf0;

    text-align: center;

}


.auth-links p {

    margin: 0;

    color: #667085;

    font-size: 14px;

}


.auth-links a {

    color: #124a9e;

    font-weight: 700;

    text-decoration: none;

}


.auth-links a:hover {

    text-decoration: underline;

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 600px) {

    .auth-page {

        padding: 40px 15px;

        min-height: calc(100vh - 220px);

    }


    .auth-container {

        padding: 35px 25px;

        border-radius: 14px;

    }


    .auth-header h1 {

        font-size: 27px;

    }


    .auth-header p {

        font-size: 14px;

    }

}


/* =========================================================
   TECHTRADITIONS SITE ANALYTICS
========================================================= */

.analytics-page {
    min-height: calc(100vh - 170px);
    background: #f4f7fb;
    padding: 55px 0 80px;
}


.analytics-container {
    width: min(1400px, 92%);
    margin: 0 auto;
}


/* =========================================================
   ANALYTICS HEADER
========================================================= */

.analytics-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    margin-bottom: 35px;
}


.analytics-label,
.section-label {
    display: block;
    color: #1b56a8;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.5px;
    margin-bottom: 8px;
}


.analytics-header h1 {
    margin: 0;
    color: #123f80;
    font-size: 42px;
    font-weight: 800;
    line-height: 1.15;
}


.analytics-header p {
    margin-top: 12px;
    color: #687a91;
    font-size: 16px;
}


.analytics-live {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 10px 16px;
    background: #ffffff;
    border: 1px solid #dfe7f1;
    border-radius: 30px;
    color: #47617d;
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 5px 20px rgba(30, 65, 110, 0.06);
}


.live-dot {
    width: 9px;
    height: 9px;
    background: #16a05d;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(22, 160, 93, 0.12);
}


/* =========================================================
   MAIN STATISTICS
========================================================= */

.analytics-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 20px;
}


.analytics-card {
    background: #ffffff;
    border: 1px solid #e3eaf3;
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 8px 25px rgba(20, 55, 95, 0.07);
    transition: transform 0.2s ease,
                box-shadow 0.2s ease;
}


.analytics-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 35px rgba(20, 55, 95, 0.11);
}


.analytics-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}


.analytics-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #edf4ff;
    border-radius: 13px;
    font-size: 22px;
}


.analytics-card-label {
    color: #8291a5;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-align: right;
}


.analytics-number {
    margin-top: 22px;
    color: #123f80;
    font-size: 34px;
    font-weight: 800;
}


.analytics-card-footer {
    margin-top: 5px;
    color: #8795a8;
    font-size: 13px;
}


/* =========================================================
   SECONDARY STATISTICS
========================================================= */

.analytics-secondary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 25px;
}


.analytics-small-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #ffffff;
    border: 1px solid #e3eaf3;
    border-radius: 12px;
    padding: 17px 20px;
}


.analytics-small-card span {
    color: #71839a;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.7px;
}


.analytics-small-card strong {
    color: #123f80;
    font-size: 22px;
}


/* =========================================================
   ANALYTICS SECTIONS
========================================================= */

.analytics-section {
    background: #ffffff;
    border: 1px solid #e1e8f1;
    border-radius: 16px;
    padding: 28px;
    margin-bottom: 24px;
    box-shadow: 0 8px 25px rgba(20, 55, 95, 0.06);
}


.analytics-section-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 25px;
}


.analytics-section-header h2 {
    margin: 0;
    color: #193f72;
    font-size: 22px;
    font-weight: 800;
}


.analytics-section-header p {
    margin: 7px 0 0;
    color: #8190a3;
    font-size: 14px;
}


/* =========================================================
   TRAFFIC CHART
========================================================= */

.traffic-chart {
    position: relative;
    width: 100%;
    height: 390px;
}


#trafficChart {
    width: 100% !important;
    height: 100% !important;
}


/* =========================================================
   TWO COLUMN AREA
========================================================= */

.analytics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}


/* =========================================================
   ANALYTICS TABLE
========================================================= */

.analytics-table {
    width: 100%;
}


.analytics-row {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 20px;
    padding: 16px 4px;
    border-bottom: 1px solid #edf1f6;
    color: #455d78;
    font-size: 14px;
}


.analytics-row:last-child {
    border-bottom: none;
}


.analytics-row strong {
    color: #123f80;
    font-size: 15px;
}


.analytics-heading {
    background: #f5f8fc;
    padding: 13px 15px;
    border-radius: 8px;
    color: #71839a;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.7px;
}


/* =========================================================
   RECENT VISITOR TABLE
========================================================= */

.visitor-table .analytics-row {
    grid-template-columns:
        1.2fr
        1fr
        1.5fr
        0.8fr
        1fr;
}


.visitor-user {
    color: #1558a8;
    font-weight: 700;
}


.anonymous-user {
    color: #8996a7;
    font-style: italic;
}


.analytics-empty {
    padding: 25px 5px;
    color: #8a98aa;
    text-align: center;
    font-size: 14px;
}


/* =========================================================
   FOOTER
========================================================= */

footer {
    background: #123f80;
    color: #ffffff;
    padding: 28px 20px;
    text-align: center;
}


footer p {
    margin: 0;
    font-size: 14px;
}


.footer-links {
    margin-top: 10px;
}


.footer-links a {
    color: #ffffff;
    margin: 0 10px;
    text-decoration: none;
    font-size: 13px;
}


.footer-links a:hover {
    text-decoration: underline;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {

    .analytics-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .analytics-secondary {
        grid-template-columns: repeat(2, 1fr);
    }

}


@media (max-width: 850px) {

    .analytics-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .analytics-header h1 {
        font-size: 34px;
    }

    .analytics-grid {
        grid-template-columns: 1fr;
    }

    .visitor-table {
        overflow-x: auto;
    }

    .visitor-table .analytics-row {
        min-width: 800px;
    }

}


@media (max-width: 600px) {

    .analytics-page {
        padding: 35px 0 60px;
    }

    .analytics-container {
        width: 94%;
    }

    .analytics-stats {
        grid-template-columns: 1fr;
    }

    .analytics-secondary {
        grid-template-columns: 1fr;
    }

    .analytics-header h1 {
        font-size: 29px;
    }

    .analytics-section {
        padding: 20px;
    }

    .traffic-chart {
        height: 300px;
    }

}





.course-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.course-link:hover {
    text-decoration: none;
    color: inherit;
}

.course {
    cursor: pointer;
}