@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

/* ==========================================================================
   THE MAWEGO NATIONAL POLYTECHNIC - SCHOOL PORTAL THEME (portal + login)
   Palette taken from the Mawego logo:
     Gear green (outer ring)   -> navigation, headers, structure
     Banner red ("Training is life") -> primary actions
     Sun yellow (rays)         -> highlights, active states
     Hammer navy               -> titles, links
     Ring blue                 -> focus states, info accents
   Same class names as the previous theme, so no view changes are needed.
   ========================================================================== */

:root {
    /* Brand */
    --green-900: #0b3d17;
    --green-800: #006400;   /* solid (the old value had 50% transparency) */
    --green-700: #008000;   /* logo gear green */
    --green-100: #e4f3e6;
    --green-500: #6dce6d;   /* logo gear green */
    --red-600: #008000;     /* logo banner red */
    --red-700: #006400;
    --red-100: #fde9e8;
    --gold-500: #f6c90e;    /* logo sun yellow */
    --gold-300: #ffe98a;
    --gold-100: #ffecb7;
    --navy-800: #1a2a6c;    /* logo hammer */
    --navy-600: #2a3f94;
    --blue-500: #3f9ad8;    /* logo dotted ring */
    --blue-100: #e3f1fb;
    --pink-300: #f5bcd9;    /* logo pink ring */

    /* Original variable names, remapped so existing views keep working */
    --sidebar-bg: var(--green-800);
    --sidebar-bg-dark: var(--green-900);
    --primary: var(--red-600);
    --primary-hover: var(--red-700);
    --primary-light: var(--green-700);
    --primary-focus: rgba(63, 154, 216, 0.30);
    --btn-default-text: var(--green-800);
    --btn-default-bg: var(--white);
    --btn-default-border: #d7ddd9;

    /* ID card */
    --card-user-bg: var(--green-700);
    --card-accent: var(--gold-500);
    --card-back-bottom-bg: var(--gold-100);
    --white: #ffffff;

    /* Text & surfaces */
    --text-dark: #111a15;
    --text-muted: #5b6b62;
    --text-highlight: var(--red-600);
    --surface-bg: #f4f6f3;
    --card-border: #e2e8e3;
    --card-shadow: 0 1px 2px rgba(11, 61, 23, 0.05), 0 6px 20px rgba(11, 61, 23, 0.05);
    --card-shadow-hover: 0 2px 4px rgba(11, 61, 23, 0.06), 0 10px 28px rgba(11, 61, 23, 0.10);

    /* Radii */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
}

/* ==========================================================================
   1. GLOBAL
   ========================================================================== */

body,
.wrapper,
.content {
    background-color: var(--surface-bg) !important;
    font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    color: #2b3a31;
}

a { color: var(--navy-800); }
a:hover { color: var(--red-600); }

.subheader {
    background-color: var(--white) !important;
    border-bottom: 1px solid var(--card-border) !important;
    border-top: 3px solid var(--gold-500) !important;
    padding: 1rem 1.5rem !important;
    box-shadow: 0 2px 10px rgba(11, 61, 23, 0.04) !important;
    margin-bottom: 1.5rem !important;
}

.subheader .subheader-title {
    color: var(--navy-800) !important;
    font-weight: 700 !important;
    font-size: 1.35rem !important;
}

.breadcrumb .breadcrumb-item a {
    color: var(--green-700) !important;
    font-weight: 500;
}

.breadcrumb .breadcrumb-item.active {
    color: var(--text-muted) !important;
}

/* ==========================================================================
   2. SIDEBAR & BRAND
   ========================================================================== */

#kt_aside,
#kt_aside_menu,
.brand,
.aside {
    background: linear-gradient(180deg, var(--green-800), var(--green-900)) !important;
    box-shadow: 0 0 28px rgba(11, 61, 23, 0.20) !important;
}

.brand {
    border-bottom: 1px solid rgba(255, 255, 255, 0.10) !important;
}

/* Top-level items */
.aside-menu .menu-nav > .menu-item > .menu-heading,
.aside-menu .menu-nav > .menu-item > .menu-link {
    color: var(--white) !important;
    font-weight: 500 !important;
    border-radius: var(--radius-md) !important;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.aside-menu .menu-nav > .menu-item > .menu-heading .menu-text,
.aside-menu .menu-nav > .menu-item > .menu-link .menu-text {
    color: var(--white) !important;
    font-weight: 500 !important;
}

.aside-menu .menu-nav > .menu-item > .menu-link .menu-icon {
    color: rgba(255, 255, 255, 0.70) !important;
}

.aside-menu .menu-nav > .menu-item > .menu-heading:hover,
.aside-menu .menu-nav > .menu-item > .menu-link:hover {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: var(--white) !important;
}

.aside-menu .menu-nav > .menu-item > .menu-link:hover .menu-icon {
    color: var(--gold-500) !important;
}

/* Active / current section: sun-yellow edge marks where you are */
#kt_aside_menu .menu-item.menu-item-active > .menu-link,
#kt_aside_menu .menu-item.menu-item-here > .menu-link {
    background: rgba(255, 255, 255, 0.12) !important;
    color: var(--white) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: inset 4px 0 0 var(--gold-500) !important;
}

#kt_aside_menu .menu-item-active .menu-text,
#kt_aside_menu .menu-item-here .menu-text,
.aside-menu .menu-nav > .menu-item:hover > .menu-link .menu-text {
    color: var(--white) !important;
}

#kt_aside_menu .menu-item.menu-item-active > .menu-link .menu-icon,
#kt_aside_menu .menu-item.menu-item-here > .menu-link .menu-icon {
    color: var(--gold-500) !important;
}

/* Submenus */
.aside-menu .menu-nav > .menu-item .menu-submenu .menu-link {
    border-radius: var(--radius-sm);
    transition: background-color 0.2s ease;
}

.aside-menu .menu-nav > .menu-item .menu-submenu .menu-item > .menu-heading .menu-text,
.aside-menu .menu-nav > .menu-item .menu-submenu .menu-item > .menu-link .menu-text {
    color: rgba(255, 255, 255, 0.88) !important;
}

.aside-menu .menu-nav > .menu-item .menu-submenu .menu-item > .menu-heading:hover,
.aside-menu .menu-nav > .menu-item .menu-submenu .menu-item > .menu-link:hover {
    background: rgba(255, 255, 255, 0.10) !important;
}

.aside-menu .menu-nav > .menu-item .menu-submenu .menu-item > .menu-heading:hover .menu-text,
.aside-menu .menu-nav > .menu-item .menu-submenu .menu-item > .menu-link:hover .menu-text {
    color: var(--gold-300) !important;
}

/* ==========================================================================
   3. BUTTONS
   ========================================================================== */

.btn {
    border-radius: var(--radius-md) !important;
    font-weight: 600 !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important;
    box-shadow: none !important;
}

.btn:hover {
    box-shadow: 0 4px 12px rgba(11, 61, 23, 0.16) !important;
}

.btn:focus-visible {
    outline: 3px solid var(--blue-500) !important;
    outline-offset: 2px;
}

.btn.btn-default {
    color: var(--btn-default-text) !important;
    background-color: var(--btn-default-bg) !important;
    border: 1px solid var(--btn-default-border) !important;
}

.btn.btn-default:hover {
    background-color: var(--green-100) !important;
    border-color: var(--green-700) !important;
    color: var(--green-800) !important;
}

/* Primary action = banner red */
.btn.btn-primary {
    color: var(--white) !important;
    background-color: var(--red-600) !important;
    border-color: var(--red-600) !important;
}

.btn.btn-primary:hover,
.btn.btn-primary:focus,
.btn.btn-primary:active {
    background-color: var(--red-700) !important;
    border-color: var(--red-700) !important;
    color: var(--white) !important;
}

/* Secondary action = gear green */
.btn.btn-light-primary,
.btn.btn-success {
    color: var(--white) !important;
    background-color: var(--green-700) !important;
    border-color: transparent !important;
}

.btn.btn-light-primary:hover,
.btn.btn-success:hover {
    color: var(--white) !important;
    background-color: var(--green-800) !important;
}

/* Info action = hammer navy */
.btn.btn-info {
    color: var(--white) !important;
    background-color: var(--navy-800) !important;
    border-color: var(--navy-800) !important;
}

.btn.btn-info:hover {
    background-color: var(--navy-600) !important;
    border-color: var(--navy-600) !important;
}

/* Highlight action = sun yellow, dark text for contrast */
.btn.btn-warning {
    color: var(--green-900) !important;
    background-color: var(--gold-500) !important;
    border-color: var(--gold-500) !important;
}

.btn.btn-warning:hover {
    background-color: var(--gold-300) !important;
}

.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ==========================================================================
   4. CARDS & PANELS
   ========================================================================== */

.card,
.card-custom,
.portlet,
.m-portlet {
    border: 1px solid var(--card-border) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--card-shadow) !important;
    background: var(--white) !important;
    margin-bottom: 1.5rem !important;
}

.card:hover,
.card-custom:hover {
    box-shadow: var(--card-shadow-hover) !important;
}

.card-header,
.portlet-head {
    border-bottom: 1px solid var(--card-border) !important;
    background: transparent !important;
    padding: 1.25rem 1.5rem !important;
}

.card-title,
.card-title .card-label {
    font-weight: 700 !important;
    color: var(--navy-800) !important;
}

/* ==========================================================================
   5. TABLES & DATATABLES
   ========================================================================== */

.table-responsive {
    border-radius: var(--radius-md);
    overflow: hidden;
}

.table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    width: 100% !important;
}

.table thead th {
    background-color: var(--green-800) !important;
    color: var(--white) !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
    border-bottom: 3px solid var(--gold-500) !important;
    padding: 1rem 0.75rem !important;
}

.table tbody tr {
    transition: background-color 0.15s ease !important;
}

.table tbody tr:hover {
    background-color: var(--gold-100) !important;
}

.table tbody td {
    padding: 0.85rem 0.75rem !important;
    vertical-align: middle !important;
    border-top: 1px solid var(--card-border) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--green-700) !important;
    color: var(--white) !important;
    border-radius: var(--radius-sm) !important;
    border: none !important;
}

.table.table-head-custom thead tr,
.table.table-head-custom thead th {
    font-weight: 600;
    color: var(--white) !important;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.1rem;
}

.dataTables_wrapper .dataTables_filter input {
    border: 1px solid var(--card-border) !important;
    border-radius: var(--radius-md) !important;
    padding: 0.4rem 0.75rem !important;
    outline: none !important;
}

.dataTables_wrapper .dataTables_filter input:focus {
    border-color: var(--blue-500) !important;
    box-shadow: 0 0 0 3px rgba(63, 154, 216, 0.25) !important;
}

/* ==========================================================================
   HR
   ========================================================================== */

.hr-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    background: linear-gradient(120deg, var(--green-800), var(--green-700)) !important;
    padding: 22px 25px;
    border-radius: 17px;
    border-bottom: 4px solid var(--gold-500);
    color: var(--white) !important;
    box-shadow: 0 8px 24px rgba(11, 61, 23, 0.18) !important;
    margin-bottom: 18px;
}

/* ==========================================================================
   6. FORMS
   ========================================================================== */

.form-control,
.custom-select,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    border-radius: var(--radius-md) !important;
    border: 1px solid #d3dad5 !important;
    padding: 0.65rem 1rem !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.form-control:focus,
.custom-select:focus,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--blue-500) !important;
    box-shadow: 0 0 0 3px rgba(63, 154, 216, 0.25) !important;
    outline: none !important;
}

.form-group label {
    font-weight: 600 !important;
    color: #2b3a31 !important;
    margin-bottom: 0.5rem !important;
}

/* ==========================================================================
   7. MODALS
   ========================================================================== */

.modal-content {
    border-radius: var(--radius-lg) !important;
    border: none !important;
    box-shadow: 0 20px 50px rgba(11, 61, 23, 0.25) !important;
    overflow: hidden !important;
}

.modal-header {
    background: linear-gradient(135deg, var(--green-800), var(--green-700)) !important;
    color: var(--white) !important;
    border-bottom: 3px solid var(--gold-500) !important;
    padding: 1.25rem 1.5rem !important;
}

.modal-header .modal-title,
.modal-header .close {
    color: var(--white) !important;
    opacity: 1 !important;
}

.modal-footer {
    border-top: 1px solid var(--card-border) !important;
    background-color: var(--surface-bg) !important;
}

/* ==========================================================================
   8. TABS & PILLS
   ========================================================================== */

.nav-tabs {
    border-bottom: 2px solid var(--card-border) !important;
}

.nav-tabs .nav-link {
    border: none !important;
    color: var(--text-muted) !important;
    font-weight: 600 !important;
    padding: 0.75rem 1.25rem !important;
    transition: color 0.2s ease !important;
}

.nav-tabs .nav-link:hover {
    color: var(--navy-800) !important;
}

.nav-tabs .nav-link.active {
    color: var(--navy-800) !important;
    border-bottom: 3px solid var(--red-600) !important;
    background: transparent !important;
}

.nav-pills .nav-link.active {
    background-color: var(--green-700) !important;
    color: var(--white) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: 0 4px 10px rgba(0, 128, 0, 0.28) !important;
}

/* ==========================================================================
   9. ID CARD
   ========================================================================== */

.card-front-user {
    background-color: var(--card-user-bg) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: 0 6px 18px rgba(11, 61, 23, 0.20) !important;
    overflow: hidden !important;
}

.card-front-bottom-offspace td {
    height: 40px !important;
}

.card-front-top,
.card-back-top {
    border-bottom-left-radius: 70% 20% !important;
    border-bottom-right-radius: 50% 20% !important;
    position: relative !important;
    height: 30px !important;
    background-image: linear-gradient(var(--card-accent), var(--white)) !important;
}

.card-front-bottom,
.card-back-bottom {
    border-top-left-radius: 70% 20% !important;
    border-top-right-radius: 50% 20% !important;
    position: relative !important;
    background-image: linear-gradient(var(--white), var(--card-accent)) !important;
}

.card-front-bottom {
    height: 50px !important;
}

.card-back-bottom {
    height: 40px !important;
    background-color: var(--card-back-bottom-bg) !important;
}

.table_front {
    margin-top: 10px !important;
}

/* ==========================================================================
   10. FOOTER, BADGES, ALERTS, SCROLLBARS
   ========================================================================== */

.footer_font,
.footer_font > i > b {
    color: var(--text-dark) !important;
    font-weight: 800 !important;
}

.profile_item_student_class {
    display: none !important;
}

.profile_item {
    color: var(--text-highlight) !important;
    font-weight: 600 !important;
}

.badge-primary,
.label-primary {
    background-color: var(--red-600) !important;
    color: var(--white) !important;
}

.badge-light-primary {
    background-color: var(--green-100) !important;
    color: var(--green-800) !important;
    font-weight: 600 !important;
}

.badge-info    { background-color: var(--blue-500) !important; color: var(--white) !important; }
.badge-success { background-color: var(--green-700) !important; }
.badge-danger  { background-color: var(--red-600) !important; }
.badge-warning { background-color: var(--gold-500) !important; color: var(--green-900) !important; }

.alert.alert-primary,
.alert.alert-custom {
    border-radius: var(--radius-md) !important;
    border: none !important;
    border-left: 4px solid var(--gold-500) !important;
    background-color: var(--green-100) !important;
    color: var(--green-900) !important;
}

.alert.alert-info {
    border-radius: var(--radius-md) !important;
    border: none !important;
    border-left: 4px solid var(--blue-500) !important;
    background-color: var(--blue-100) !important;
    color: var(--navy-800) !important;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: #eef0ec;
}

::-webkit-scrollbar-thumb {
    background: var(--green-700);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--red-600);
}

/* ==========================================================================
   11. LOGIN PAGE
   Targets: .login-form-card, .login-welcome-block, .action-buttons-row,
            .portal-extra-links, .PoweredByoptimum
   ========================================================================== */

/* Page background: gear green, sun-yellow glow, ring-blue tint */
body:has(.login-form-card) {
    background-color: var(--green-700) !important;
    background-image:
        linear-gradient(160deg, rgba(0, 100, 0, 0.25), rgba(11, 61, 23, 0.35)),
        url('https://mawegopoly.ac.ke/wp-content/uploads/2025/06/BG-Main-scaled-1.jpg') !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed !important;
}

/* Let the background show through Metronic's full-height wrappers */
body:has(.login-form-card) .flex-root,
body:has(.login-form-card) .flex-column-fluid {
    background: transparent !important;
}

/* The white login card */
body:has(.login-form-card) .bg-body.rounded.shadow-sm {
    background: var(--white) !important;
    border-radius: var(--radius-lg) !important;
    border-top: 5px solid var(--gold-500) !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35) !important;
}

/* Welcome block (logo / heading above the form) */
.login-welcome-block {
    text-align: center;
    margin-bottom: 1.75rem;
}

.login-welcome-block img {
    max-height: 90px;
    width: auto;
    margin-bottom: 0.75rem;
}

.login-welcome-block h1,
.login-welcome-block h2,
.login-welcome-block h3 {
    color: var(--navy-800) !important;
    font-weight: 800 !important;
}

.login-welcome-block p,
.login-welcome-block span,
.login-welcome-block div {
    color: var(--text-muted);
}

/* Form */
.login-form-card .form-group label {
    color: var(--green-800) !important;
    font-weight: 600 !important;
}

.login-form-card .form-control {
    background-color: #fafcfa !important;
    border: 1px solid #cfd8d1 !important;
    padding: 0.8rem 1rem !important;
}

.login-form-card .form-control:focus {
    background-color: var(--white) !important;
    border-color: var(--blue-500) !important;
    box-shadow: 0 0 0 3px rgba(63, 154, 216, 0.25) !important;
}

.login-form-card a {
    color: var(--navy-800);
    font-weight: 600;
}

.login-form-card a:hover {
    color: var(--red-600);
}
body:has(.login-form-card) h3.institutionNameCenter,
body:has(.login-form-card) h3.institutionNameCenter b,
body:has(.login-form-card) h3.institutionNameCenter span {
    color: var(--white) !important;
}
/* Buttons: Log in (red) + Sign Up (green outline), side by side */
.action-buttons-row {
    display: flex;
    gap: 0.75rem;
}

.action-buttons-row .btn {
    flex: 1 1 0;
    padding: 0.85rem 1rem !important;
    text-align: center;
}

.btn.btn-login-primary {
    color: var(--white) !important;
    background-color: var(--red-600) !important;
    border: 2px solid var(--red-600) !important;
    font-weight: 700 !important;
}

.btn.btn-login-primary:hover,
.btn.btn-login-primary:focus {
    background-color: var(--green-500) !important;
    border-color: var(--green-500) !important;
}

.btn.btn-signup-secondary {
    color: var(--green-900) !important;
    background-color: transparent !important;
    border: 2px solid var(--green-700) !important;
    font-weight: 700 !important;
}

.btn.btn-signup-secondary:hover,
.btn.btn-signup-secondary:focus {
    color: var(--white) !important;
    background-color: var(--green-700) !important;
}

/* Extra links under the card */
.portal-extra-links a {
    color: var(--navy-800);
    font-weight: 600;
}

.portal-extra-links a:hover {
    color: var(--red-600);
}

/* "Powered by" footer sits on the green background */
body:has(.login-form-card) .PoweredByoptimum,
body:has(.login-form-card) .PoweredByoptimum * {
    color: rgba(255, 255, 255, 0.85) !important;
}

@media (prefers-reduced-motion: reduce) {
    * { transition: none !important; }
}