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

/* =====================================================================
   Theme "techride" — charte Techride Pornic
   Navy #122941 · Anis #bbd034 · Mulish · arrondis, pilules, aéré.
   Issu du handoff Claude Design (techride.fr). Règles scopées sous
   .techride-theme. Retirer la classe = thème désactivé.
   ===================================================================== */

.techride-theme {
    /* Marque */
    --tk-navy:        #122941;
    --tk-navy-800:    #16314c;
    --tk-navy-700:    #1d3e5e;
    --tk-navy-600:    #2b5276;
    --tk-accent:      #bbd034;
    --tk-accent-deep: #a6ba26;
    --tk-accent-soft: #eef3d2;

    /* Neutres froids */
    --tk-ink:    #122941;
    --tk-body:   #44566a;
    --tk-muted:  #6b7c8e;
    --tk-line:   #e4eaef;
    --tk-line-soft: #eef2f5;
    --tk-bg:     #ffffff;
    --tk-bg-alt: #f4f7f9;

    /* Rayons / ombres */
    --tk-r-sm: 12px;
    --tk-r:    18px;
    --tk-r-lg: 26px;
    --tk-shadow-sm: 0 1px 2px rgba(18,41,65,.05), 0 2px 10px rgba(18,41,65,.05);
    --tk-shadow:    0 6px 18px rgba(18,41,65,.07), 0 18px 44px rgba(18,41,65,.08);
    --tk-shadow-pill: 0 10px 30px rgba(18,41,65,.10);

    --tk-font: 'Mulish', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    /* Recolorise Bootstrap : navy = couleur de structure (liens, focus, états) */
    --bs-primary: var(--tk-navy);
    --bs-primary-rgb: 18, 41, 65;
    --bs-link-color: var(--tk-navy);
    --bs-link-hover-color: var(--tk-accent-deep);
    --bs-body-color: var(--tk-body);
}

/* ---------- Base ---------- */
.techride-theme,
.techride-theme.bg-body-tertiary,
.techride-theme .app-main {
    background-color: var(--tk-bg-alt) !important;
    font-family: var(--tk-font);
    color: var(--tk-body);
}

.techride-theme h1, .techride-theme h2, .techride-theme h3,
.techride-theme h4, .techride-theme h5, .techride-theme h6,
.techride-theme .app-content-header h1 {
    font-family: var(--tk-font);
    color: var(--tk-ink);
    font-weight: 800;
    letter-spacing: -0.02em;
}

/* ---------- Sidebar : navy, accent anis ---------- */
.techride-theme .app-sidebar {
    background-color: var(--tk-navy) !important;
    border-right: none !important;
    box-shadow: var(--tk-shadow) !important;
}

.techride-theme .sidebar-brand,
.techride-theme .app-sidebar .sidebar-header-fixed {
    background-color: var(--tk-navy) !important;
}

.techride-theme .app-sidebar .sidebar-menu .nav-item {
    margin: 2px 12px;
}

.techride-theme .app-sidebar .sidebar-menu .nav-link {
    color: rgba(255, 255, 255, 0.78) !important;
    border-radius: 999px;
    padding: 10px 16px;
    font-weight: 600;
    transition: background-color .15s ease, color .15s ease;
}

.techride-theme .app-sidebar .sidebar-menu .nav-link:hover,
.techride-theme .app-sidebar .sidebar-menu .nav-link:hover p,
.techride-theme .app-sidebar .sidebar-menu .nav-link:hover .nav-icon,
.techride-theme .app-sidebar .sidebar-menu .nav-link:focus {
    background-color: var(--tk-navy-700) !important;
    color: #fff !important;
}

/* ===== Surbrillance du menu — règle unique et cohérente =====
   Feuille = pastille pleine (identique au 1er niveau et en sous-menu).
   Parent d'une section ouverte = pas de pastille (juste un repère texte), hover conservé. */

/* Item courant (feuille) : son <li> n'a jamais la classe .treeview (réservée aux parents) */
.techride-theme .app-sidebar .sidebar-menu .nav-item:not(.treeview) > .nav-link.active,
.techride-theme .app-sidebar .sidebar-menu .nav-item:not(.treeview) > .nav-link.active p,
.techride-theme .app-sidebar .sidebar-menu .nav-item:not(.treeview) > .nav-link.active .nav-icon {
    background-color: var(--tk-accent) !important;
    color: var(--tk-navy) !important;
    border-radius: 999px !important;
    box-shadow: 0 6px 16px rgba(166, 186, 38, 0.30) !important;
}

/* Parent d'un sous-menu ouvert : aucune pastille, aucun fond gris persistant */
.techride-theme .app-sidebar .sidebar-menu .nav-item.treeview > .nav-link:not(:hover) {
    background-color: transparent !important;
    box-shadow: none !important;
}

/* …et repère texte accent uniquement sur le parent de la section courante */
.techride-theme .app-sidebar .sidebar-menu .nav-item.treeview > .nav-link.active:not(:hover),
.techride-theme .app-sidebar .sidebar-menu .nav-item.treeview > .nav-link.active:not(:hover) p,
.techride-theme .app-sidebar .sidebar-menu .nav-item.treeview > .nav-link.active:not(:hover) .nav-icon {
    color: var(--tk-accent) !important;
}

.techride-theme .app-sidebar .sidebar-menu .nav-header,
.techride-theme .app-sidebar .sidebar-menu .header {
    color: rgba(255, 255, 255, 0.45) !important;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: .12em;
    padding-left: 24px;
}

/* sous-menus (treeview) */
.techride-theme .app-sidebar .nav-treeview .nav-link {
    color: rgba(255, 255, 255, 0.62) !important;
}

/* ---------- Header : clair, boutons ronds ---------- */
.techride-theme .app-header.navbar {
    background-color: var(--tk-bg-alt) !important;
    border-bottom: none !important;
    box-shadow: none !important;
}

.techride-theme .app-header .navbar-nav .nav-link {
    color: var(--tk-ink) !important;
}

.techride-theme .app-header .nav-item > .nav-link[data-bs-toggle="tooltip"],
.techride-theme .app-header .nav-link[onclick] {
    background: #fff;
    border: 1px solid var(--tk-line);
    border-radius: 50%;
    width: 42px;
    height: 42px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 4px 3px;
    padding: 0 !important;
    box-shadow: var(--tk-shadow-sm);
    transition: transform .2s, box-shadow .2s;
}
.techride-theme .app-header .nav-item > .nav-link[data-bs-toggle="tooltip"]:hover {
    transform: translateY(-2px);
    box-shadow: var(--tk-shadow);
}

/* ---------- Cartes ---------- */
.techride-theme .card,
.techride-theme .small-box,
.techride-theme .info-box,
.techride-theme .box {
    background-color: var(--tk-bg);
    border: 1px solid var(--tk-line) !important;
    border-radius: var(--tk-r-lg);
    box-shadow: var(--tk-shadow-sm);
    transition: transform .2s ease, box-shadow .25s ease, border-color .2s ease;
}

.techride-theme .card:hover,
.techride-theme .small-box:hover {
    transform: translateY(-4px);
    box-shadow: var(--tk-shadow);
    border-color: transparent !important;
}

.techride-theme .card-header {
    background-color: transparent;
    border-bottom: 1px solid var(--tk-line);
    border-radius: var(--tk-r-lg) var(--tk-r-lg) 0 0 !important;
    font-weight: 700;
    color: var(--tk-ink);
    padding: 1.1rem 1.4rem;
}

.techride-theme .card-body { padding: 1.4rem; }

/* small-box (tuiles de stats) */
.techride-theme .small-box > .inner h3 { font-weight: 800; color: var(--tk-ink); }
.techride-theme .small-box .small-box-icon { opacity: .18; }
.techride-theme .small-box.text-bg-primary,
.techride-theme .small-box.bg-primary {
    background: linear-gradient(135deg, var(--tk-navy), var(--tk-navy-600)) !important;
    color: #fff !important;
}
.techride-theme .small-box.text-bg-primary .small-box-icon,
.techride-theme .small-box.bg-primary h3,
.techride-theme .small-box.bg-primary p { color: #fff !important; }
.techride-theme .small-box.bg-primary .small-box-icon { color: var(--tk-accent) !important; opacity: .35; }

/* ---------- Boutons (pilules) ---------- */
.techride-theme .btn {
    border-radius: 999px;
    font-weight: 700;
    padding: .6rem 1.3rem;
    border-width: 1.5px;
}

/* CTA principal = anis, texte navy */
.techride-theme .btn-primary {
    --bs-btn-color: var(--tk-navy);
    --bs-btn-bg: var(--tk-accent);
    --bs-btn-border-color: var(--tk-accent);
    --bs-btn-hover-color: var(--tk-navy);
    --bs-btn-hover-bg: var(--tk-accent-deep);
    --bs-btn-hover-border-color: var(--tk-accent-deep);
    --bs-btn-active-color: var(--tk-navy);
    --bs-btn-active-bg: var(--tk-accent-deep);
    --bs-btn-active-border-color: var(--tk-accent-deep);
    --bs-btn-disabled-color: var(--tk-navy);
    --bs-btn-disabled-bg: var(--tk-accent);
    --bs-btn-disabled-border-color: var(--tk-accent);
    box-shadow: 0 6px 18px rgba(166, 186, 38, 0.32);
}

/* boutons sombres = navy */
.techride-theme .btn-secondary,
.techride-theme .btn-dark {
    --bs-btn-bg: var(--tk-navy);
    --bs-btn-border-color: var(--tk-navy);
    --bs-btn-hover-bg: var(--tk-navy-700);
    --bs-btn-hover-border-color: var(--tk-navy-700);
    --bs-btn-active-bg: var(--tk-navy-700);
}

.techride-theme .btn-outline-primary {
    --bs-btn-color: var(--tk-navy);
    --bs-btn-border-color: var(--tk-line);
    --bs-btn-hover-color: var(--tk-navy);
    --bs-btn-hover-bg: transparent;
    --bs-btn-hover-border-color: var(--tk-navy);
}

.techride-theme .btn-sm { padding: .35rem .9rem; }

/* ---------- Badges ---------- */
.techride-theme .badge.text-bg-primary,
.techride-theme .badge.bg-primary {
    background-color: var(--tk-navy) !important;
    color: #fff !important;
}

/* ---------- Champs de formulaire ---------- */
.techride-theme .form-control,
.techride-theme .form-select,
.techride-theme .input-group-text {
    border-radius: var(--tk-r-sm);
    border: 1.5px solid var(--tk-line);
    color: var(--tk-ink);
}

.techride-theme .form-control:focus,
.techride-theme .form-select:focus {
    border-color: var(--tk-accent);
    box-shadow: 0 0 0 0.25rem rgba(187, 208, 52, 0.18);
}

/* ---------- Tables / GridView ---------- */
.techride-theme .card .table { margin-bottom: 0; }
.techride-theme .table > thead th {
    border-bottom: 1px solid var(--tk-line);
    color: var(--tk-muted);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: .05em;
}
.techride-theme .table > tbody > tr:hover > * {
    background-color: var(--tk-bg-alt);
}

/* ---------- Onglets ---------- */
.techride-theme .nav-pills .nav-link.active {
    background-color: var(--tk-navy);
    color: #fff;
    border-radius: 999px;
}
.techride-theme .nav-tabs .nav-link.active {
    color: var(--tk-navy);
    border: none;
    border-bottom: 2px solid var(--tk-accent);
    font-weight: 700;
}

/* ---------- Pagination ---------- */
.techride-theme .page-item.active .page-link {
    background-color: var(--tk-navy);
    border-color: var(--tk-navy);
    color: #fff;
}
.techride-theme .page-link {
    color: var(--tk-navy);
    border: none;
    border-radius: 999px;
    margin: 0 2px;
}

/* ---------- Liens texte / accent ---------- */
.techride-theme a { color: var(--tk-navy); }
.techride-theme a:hover { color: var(--tk-accent-deep); }
.techride-theme .text-primary { color: var(--tk-navy) !important; }

/* ---------- Footer ---------- */
.techride-theme .app-footer {
    background-color: transparent;
    border-top: 1px solid var(--tk-line);
    color: var(--tk-muted);
}

/* ---------- Progress ---------- */
.techride-theme .progress { border-radius: 999px; }
.techride-theme .progress-bar { background-color: var(--tk-accent); color: var(--tk-navy); }

/* ---------- Alertes : coins arrondis ---------- */
.techride-theme .alert { border-radius: var(--tk-r); border: 1px solid var(--tk-line); }

/* ---------- Modales ---------- */
.techride-theme .modal-content { border-radius: var(--tk-r-lg); border: none; }
.techride-theme .modal-header { border-bottom: 1px solid var(--tk-line); }

/* =====================================================================
   COUVERTURE ÉTENDUE — composants jusque-là non thémés
   ===================================================================== */

/* ---------- Neutralise le blanc en dur de la barre de titre ---------- */
.techride-theme .app-content-header {
    background-color: transparent !important;
    border-bottom: 1px solid var(--tk-line) !important;
}
.techride-theme .app-content,
.techride-theme .content-wrapper { background-color: var(--tk-bg-alt) !important; }

/* ---------- Kartik GridView ---------- */
.techride-theme .grid-view .table > thead th,
.techride-theme .kv-grid-table > thead th {
    background-color: var(--tk-bg-alt);
    border-bottom: 1px solid var(--tk-line);
    color: var(--tk-muted);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: .05em;
}
.techride-theme .grid-view .filters .form-control,
.techride-theme .grid-view .filters .form-select { border-color: var(--tk-line); border-radius: var(--tk-r-sm); }
.techride-theme .grid-view tbody tr:hover > td { background-color: var(--tk-bg-alt); }
.techride-theme .grid-view .summary,
.techride-theme .kv-panel-after { color: var(--tk-muted); }
.techride-theme .kv-grid-container, .techride-theme .panel.kv-panel-default { background: transparent; border: none; }

/* ---------- Select2 (bootstrap-5) ---------- */
.techride-theme .select2-container--bootstrap-5 .select2-selection { border-color: var(--tk-line) !important; border-radius: var(--tk-r-sm) !important; }
.techride-theme .select2-dropdown { border-color: var(--tk-line) !important; border-radius: var(--tk-r-sm); }
.techride-theme .select2-results__option--highlighted,
.techride-theme .select2-results__option--selected {
    background-color: var(--tk-accent-soft) !important;
    color: var(--tk-navy) !important;
}
.techride-theme .select2-selection__choice {
    background-color: var(--tk-accent-soft) !important;
    border-color: transparent !important;
    color: var(--tk-navy) !important;
    border-radius: 999px !important;
}

/* ---------- DetailView ---------- */
.techride-theme .detail-view > tbody > tr > th { background-color: var(--tk-bg-alt); color: var(--tk-muted); border-color: var(--tk-line); font-weight: 700; }
.techride-theme .detail-view > tbody > tr > td { color: var(--tk-ink); border-color: var(--tk-line); }

/* ---------- SwitchInput ---------- */
.techride-theme .bootstrap-switch { border-color: var(--tk-line); border-radius: 999px; }
.techride-theme .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary { background-color: var(--tk-accent); color: var(--tk-navy); }

/* ---------- FileInput ---------- */
.techride-theme .file-drop-zone { background-color: var(--tk-bg-alt); border: 2px dashed var(--tk-line); border-radius: var(--tk-r); color: var(--tk-muted); }
.techride-theme .file-preview { border-color: var(--tk-line); border-radius: var(--tk-r); }

/* ---------- AdminLTE info-box ---------- */
.techride-theme .info-box-icon { background-color: var(--tk-accent-soft); color: var(--tk-navy); border-radius: var(--tk-r); }
.techride-theme .info-box-text { color: var(--tk-muted); }
.techride-theme .info-box-number { color: var(--tk-ink); font-weight: 800; }

/* ---------- AdminLTE timeline ---------- */
.techride-theme .timeline::before { background-color: var(--tk-line); }
.techride-theme .timeline-item {
    background-color: var(--tk-bg);
    border: 1px solid var(--tk-line);
    border-radius: var(--tk-r);
    box-shadow: var(--tk-shadow-sm);
}
.techride-theme .timeline-item > .timeline-header { border-bottom: 1px solid var(--tk-line); color: var(--tk-ink); }
.techride-theme .timeline .time-label > span { background-color: var(--tk-accent) !important; color: var(--tk-navy) !important; border-radius: 999px; }

/* ---------- user-panel / breadcrumb / callout ---------- */
.techride-theme .user-panel { border-bottom: 1px solid var(--tk-line); }
.techride-theme .breadcrumb-item, .techride-theme .breadcrumb-item a { color: var(--tk-muted); }
.techride-theme .breadcrumb-item.active { color: var(--tk-ink); }
.techride-theme .callout { background-color: var(--tk-bg); border-radius: var(--tk-r); border-left: 4px solid var(--tk-accent); }

/* ---------- Classes maison : stat-card ---------- */
.techride-theme .stat-card,
.techride-theme .cp-kpi,
.techride-theme .cp-card {
    background-color: var(--tk-bg) !important;
    border: 1px solid var(--tk-line) !important;
    border-radius: var(--tk-r-lg);
    box-shadow: var(--tk-shadow-sm);
}
.techride-theme .stat-card { border-left-width: 4px !important; border-left-color: var(--tk-accent) !important; }
.techride-theme .stat-title { color: var(--tk-muted); }
.techride-theme .stat-value { color: var(--tk-ink); }
.techride-theme .stat-icon { color: var(--tk-navy); opacity: .12; }
.techride-theme .stat-progress-bar { background-color: var(--tk-accent); }

/* ---------- Recherche sidebar (sidebar claire) ---------- */
.techride-theme .global-search .form-control,
.techride-theme .sidebar-search-container .form-control { border-color: var(--tk-line); border-radius: var(--tk-r-sm); }

/* ---------- Scrollbars ---------- */
.techride-theme * { scrollbar-color: #c3d0db transparent; scrollbar-width: thin; }
.techride-theme ::-webkit-scrollbar { width: 10px; height: 10px; }
.techride-theme ::-webkit-scrollbar-thumb { background: #c3d0db; border-radius: 999px; border: 2px solid var(--tk-bg-alt); }
.techride-theme ::-webkit-scrollbar-thumb:hover { background: #aebccb; }

/* ---------- Tooltips / popovers / toasts / accordions / spinners ---------- */
.techride-theme .tooltip-inner { background-color: var(--tk-navy); border-radius: var(--tk-r-sm); }
.techride-theme .tooltip .tooltip-arrow::before { border-top-color: var(--tk-navy); }
.techride-theme .popover { border-color: var(--tk-line); border-radius: var(--tk-r); }
.techride-theme .popover-header { background-color: var(--tk-bg-alt); color: var(--tk-ink); }
.techride-theme .accordion {
    --bs-accordion-active-bg: var(--tk-accent-soft);
    --bs-accordion-active-color: var(--tk-navy);
    --bs-accordion-border-color: var(--tk-line);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(187,208,52,.18);
}
.techride-theme .spinner-border, .techride-theme .spinner-grow { color: var(--tk-navy); }

/* =====================================================================
   IDENTITÉ — aéré, généreux
   ===================================================================== */
.techride-theme .table > :not(caption) > * > * { padding-top: .75rem; padding-bottom: .75rem; }

/* =====================================================================
   PAGE DE LOGIN
   ===================================================================== */
.techride-theme.login-theme-wrap::before { background: linear-gradient(160deg, rgba(18,41,65,.55), rgba(18,41,65,.72)); }
.techride-theme .login-card { border-radius: var(--tk-r-lg); box-shadow: var(--tk-shadow); }
.techride-theme .login-title { color: var(--tk-ink); }
.techride-theme #LoginForm .form-control { border-radius: var(--tk-r-sm); border-color: var(--tk-line); }
.techride-theme #LoginForm .form-control:focus { border-color: var(--tk-accent); box-shadow: 0 0 0 .25rem rgba(187,208,52,.18); }
.techride-theme .login-link a { color: var(--tk-navy); }
.techride-theme .button-primary { background-color: var(--tk-accent) !important; color: var(--tk-navy) !important; border-radius: 999px; }
