@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

/* ==========================================================================
   DR. DANIEL WAKO MURENDE TECHNICAL & VOCATIONAL COLLEGE - SCHOOL PORTAL THEME
   Palette taken from the college logo:
     Ribbon / gear green        -> navigation, headers, primary actions
     Wheat-wreath gold          -> highlights, active states, accents
     Shield navy / mountain ink -> titles, links
     Sky blue (shield + sun)    -> focus states, info accents
   Same class names as the previous theme, so no view changes are needed.
   ========================================================================== */

:root {
    /* Brand */
    --green-900: #06301a;
    --green-800: #0a4a24;   /* deep gear green (sidebar, table heads) */
    --green-700: #0f6a30;   /* gear green */
    --green-600: #1e9a3c;   /* ribbon green (primary actions) */
    --green-500: #3fbf5f;   /* light ribbon green */
    --green-100: #e3f4e7;
    --brand-600: #1e9a3c;   /* primary action = ribbon green */
    --brand-700: #167a2f;   /* primary hover */
    --gold-500: #e3a92b;    /* wheat gold */
    --gold-300: #f3d27a;
    --gold-100: #fbefcf;
    --navy-800: #0f2a47;    /* shield navy / mountain ink */
    --navy-600: #1d4673;
    --blue-500: #2f9fdc;    /* sky blue */
    --blue-100: #e3f2fb;
    --sky-300: #9fd3ee;

    /* Original variable names, remapped so existing views keep working */
    --sidebar-bg: var(--green-800);
    --sidebar-bg-dark: var(--green-900);
    --primary: var(--brand-600);
    --primary-hover: var(--brand-700);
    --primary-light: var(--green-700);
    --primary-focus: rgba(47, 159, 220, 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(--green-700);
    --surface-bg: #f4f6f3;
    --card-border: #e2e8e3;
    --card-shadow: 0 1px 2px rgba(6, 48, 26, 0.05), 0 6px 20px rgba(6, 48, 26, 0.05);
    --card-shadow-hover: 0 2px 4px rgba(6, 48, 26, 0.06), 0 10px 28px rgba(6, 48, 26, 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(--brand-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(6, 48, 26, 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(6, 48, 26, 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: wheat-gold 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(6, 48, 26, 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 = ribbon green */
.btn.btn-primary {
    color: var(--white) !important;
    background-color: var(--brand-600) !important;
    border-color: var(--brand-600) !important;
}

.btn.btn-primary:hover,
.btn.btn-primary:focus,
.btn.btn-primary:active {
    background-color: var(--brand-700) !important;
    border-color: var(--brand-700) !important;
    color: var(--white) !important;
}

/* Secondary action = deep gear green */
.btn.btn-light-primary,
.btn.btn-success {
    color: var(--white) !important;
    background-color: var(--green-800) !important;
    border-color: transparent !important;
}

.btn.btn-light-primary:hover,
.btn.btn-success:hover {
    color: var(--white) !important;
    background-color: var(--green-900) !important;
}

/* Info action = shield 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 = wheat gold, 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(47, 159, 220, 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(6, 48, 26, 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(47, 159, 220, 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(6, 48, 26, 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(--gold-500) !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(30, 154, 60, 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(6, 48, 26, 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(--brand-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: #c62828 !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(--gold-500);
}

/* ==========================================================================
   11. LOGIN PAGE
   Targets: .login-form-card, .login-welcome-block, .action-buttons-row,
            .portal-extra-links, .PoweredByoptimum
   ========================================================================== */

/* Page background: deep green with a wheat-gold glow and sky-blue tint.
   To use a campus photo, add it as a second layer, e.g.
   url('/images/campus.jpg') after the gradients (host it on your own server;
   social-media image links expire). */
body:has(.login-form-card) {
    background-color: var(--green-800) !important;
    background-image:
        radial-gradient(circle at 15% 10%, rgba(227, 169, 43, 0.28), transparent 45%),
        radial-gradient(circle at 90% 90%, rgba(47, 159, 220, 0.22), transparent 50%),
        linear-gradient(160deg, var(--green-700), var(--green-900)) !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(47, 159, 220, 0.25) !important;
}

.login-form-card a {
    color: var(--navy-800);
    font-weight: 600;
}

.login-form-card a:hover {
    color: var(--brand-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 (green) + 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(--brand-600) !important;
    border: 2px solid var(--brand-600) !important;
    font-weight: 700 !important;
}

.btn.btn-login-primary:hover,
.btn.btn-login-primary:focus {
    background-color: var(--brand-700) !important;
    border-color: var(--gold-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;
}

.institutionNameCenter {
    max-width: 450px;          /* match your card's width */
    width: 100%;
    margin: 0 auto 1rem;
    font-size: clamp(1.1rem, 2.2vw, 1.75rem) !important;  /* overrides font-size-h4/h1-lg */
    line-height: 1.3;
    overflow-wrap: break-word;
    text-wrap: balance;        /* evens out the lines */
}

/* Extra links under the card */
.portal-extra-links a {
    color: var(--navy-800);
    font-weight: 600;
}

.portal-extra-links a:hover {
    color: var(--brand-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; }
}