@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

/* ==========================================================================
   BUTERE TECHNICAL TRAINING INSTITUTE - SCHOOL PORTAL THEME (portal + login)
   Palette taken from the Butere logo:
     Crimson (gear ring)         -> sidebar, table/modal headers, structure
     Banner blue ("Opening doors") -> primary actions, links, focus states
     Gold (the key)              -> highlights, active states
     Deep navy (cap, outlines)   -> titles, info actions
   Same class names as the previous theme, so no view changes are needed.
   ========================================================================== */

:root {
    /* Brand */
    --red-900: #5c0a10;
    --red-800: #8f1119;
    --red-700: #c8202b;      /* logo gear crimson */
    --red-600: #d93a43;
    --red-500: #e8656c;
    --red-100: #fdecee;
    --gold-500: #f4b919;     /* logo key gold */
    --gold-300: #ffd96a;
    --gold-100: #fff1c4;
    --blue-800: #0f4a85;
    --blue-700: #1763ae;     /* logo banner blue */
    --blue-500: #3b8bd6;     /* focus rings, info accents */
    --blue-100: #e3effa;
    --navy-900: #141a33;     /* titles */
    --navy-700: #26357a;
    --green-600: #2e7d4f;    /* success states only */
    --danger: #b71c1c;       /* danger states only */

    --white: #ffffff;

    /* Original variable names, remapped so existing views keep working */
    --sidebar-bg: var(--red-800);
    --sidebar-bg-dark: var(--red-900);
    --primary: var(--blue-700);
    --primary-hover: var(--blue-800);
    --primary-light: var(--red-600);
    --primary-focus: rgba(59, 139, 214, 0.30);
    --btn-default-text: var(--red-800);
    --btn-default-bg: var(--white);
    --btn-default-border: #d9dde6;

    /* ID card */
    --card-user-bg: var(--red-700);
    --card-accent: var(--gold-500);
    --card-back-bottom-bg: var(--gold-100);

    /* Text & surfaces */
    --text-dark: #12151f;
    --text-muted: #5f6577;
    --text-highlight: var(--red-700);
    --surface-bg: #f5f6f9;
    --card-border: #e3e6ee;
    --card-shadow: 0 1px 2px rgba(20, 26, 51, 0.05), 0 6px 20px rgba(20, 26, 51, 0.06);
    --card-shadow-hover: 0 2px 4px rgba(20, 26, 51, 0.07), 0 10px 28px rgba(20, 26, 51, 0.12);

    /* 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: #2d3040;
}

a { color: var(--blue-700); }
a:hover { color: var(--blue-800); }

.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(20, 26, 51, 0.05) !important;
    margin-bottom: 1.5rem !important;
}

.subheader .subheader-title {
    color: var(--navy-900) !important;
    font-weight: 700 !important;
    font-size: 1.35rem !important;
}

.breadcrumb .breadcrumb-item a {
    color: var(--blue-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(--red-800), var(--red-900)) !important;
    box-shadow: 0 0 28px rgba(92, 10, 16, 0.25) !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: 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(92, 10, 16, 0.20) !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(--red-100) !important;
    border-color: var(--red-700) !important;
    color: var(--red-800) !important;
}

/* Primary action = banner blue */
.btn.btn-primary {
    color: var(--white) !important;
    background-color: var(--blue-700) !important;
    border-color: var(--blue-700) !important;
}

.btn.btn-primary:hover,
.btn.btn-primary:focus,
.btn.btn-primary:active {
    background-color: var(--blue-800) !important;
    border-color: var(--blue-800) !important;
    color: var(--white) !important;
}

/* Secondary action = gear crimson */
.btn.btn-light-primary {
    color: var(--white) !important;
    background-color: var(--red-600) !important;
    border-color: transparent !important;
}

.btn.btn-light-primary:hover {
    color: var(--white) !important;
    background-color: var(--red-800) !important;
}

/* Info action = deep navy */
.btn.btn-info {
    color: var(--white) !important;
    background-color: var(--navy-700) !important;
    border-color: var(--navy-700) !important;
}

/* Success action = green */
.btn.btn-success {
    color: var(--white) !important;
    background-color: var(--green-600) !important;
    border-color: transparent !important;
}

.btn.btn-success:hover {
    color: var(--white) !important;
    background-color: #236040 !important;
}

.btn.btn-info:hover {
    background-color: var(--navy-900) !important;
    border-color: var(--navy-900) !important;
}

/* Highlight action = logo gold, dark text for contrast */
.btn.btn-warning {
    color: var(--red-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-900) !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(--red-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(--blue-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(59, 139, 214, 0.25) !important;
}

/* ==========================================================================
   HR
   ========================================================================== */

.hr-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    background: linear-gradient(120deg, var(--red-800), var(--red-600)) !important;
    padding: 22px 25px;
    border-radius: 17px;
    border-bottom: 4px solid var(--gold-500);
    color: var(--white) !important;
    box-shadow: 0 8px 24px rgba(92, 10, 16, 0.22) !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 #d3d8e2 !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(59, 139, 214, 0.25) !important;
    outline: none !important;
}

.form-group label {
    font-weight: 600 !important;
    color: #2d3040 !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(92, 10, 16, 0.30) !important;
    overflow: hidden !important;
}

.modal-header {
    background: linear-gradient(135deg, var(--red-800), var(--red-600)) !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(--blue-700) !important;
}

.nav-tabs .nav-link.active {
    color: var(--red-800) !important;
    border-bottom: 3px solid var(--gold-500) !important;
    background: transparent !important;
}

.nav-pills .nav-link.active {
    background-color: var(--blue-700) !important;
    color: var(--white) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: 0 4px 10px rgba(23, 99, 174, 0.30) !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(92, 10, 16, 0.25) !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(--blue-700) !important;
    color: var(--white) !important;
}

.badge-light-primary {
    background-color: var(--red-100) !important;
    color: var(--red-800) !important;
    font-weight: 600 !important;
}

.badge-info    { background-color: var(--blue-500) !important; color: var(--white) !important; }
.badge-success { background-color: var(--green-600) !important; }
.badge-danger  { background-color: var(--danger) !important; }
.badge-warning { background-color: var(--gold-500) !important; color: var(--red-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(--red-100) !important;
    color: var(--red-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-900) !important;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: #eceef3;
}

::-webkit-scrollbar-thumb {
    background: var(--red-600);
    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: crimson gradient with a soft gold glow.
   To use a campus photo instead, add it as a third layer:
   url('https://your-institute-site/path/to/photo.jpg') */
body:has(.login-form-card) {
    background-color: var(--red-800) !important;
    background-image:
        linear-gradient(160deg, rgba(0, 100, 0, 0.25), rgba(11, 61, 23, 0.35)),
        url('https://buteretti.ac.ke/wp-content/uploads/2026/04/IMG_4932-scaled.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.40) !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-900) !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(--red-800) !important;
    font-weight: 600 !important;
}

.login-form-card .form-control {
    background-color: #fafbfd !important;
    border: 1px solid #cfd5e0 !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(59, 139, 214, 0.25) !important;
}

.login-form-card a {
    color: var(--blue-700);
    font-weight: 600;
}

.login-form-card a:hover {
    color: var(--blue-800);
}

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;
}
.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 */
}
/* Buttons: Log in (blue) + Sign Up (gold 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(--blue-700) !important;
    border: 2px solid var(--blue-700) !important;
    font-weight: 700 !important;
}

.btn.btn-login-primary:hover,
.btn.btn-login-primary:focus {
    background-color: var(--blue-800) !important;
    border-color: var(--blue-800) !important;
}

.btn.btn-signup-secondary {
    color: var(--red-900) !important;
    background-color: transparent !important;
    border: 2px solid var(--gold-500) !important;
    font-weight: 700 !important;
}

.btn.btn-signup-secondary:hover,
.btn.btn-signup-secondary:focus {
    color: var(--red-900) !important;
    background-color: var(--gold-500) !important;
}

/* Extra links under the card */
.portal-extra-links a {
    color: var(--blue-700);
    font-weight: 600;
}

.portal-extra-links a:hover {
    color: var(--blue-800);
}

/* "Powered by" footer sits on the crimson 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; }
}
