/* =============================================================================
   ADMIN-SKIN — Kadran Design System (Manrope · navy · violet · glacier)
   Scope STRICT : html:not([data-theme="vision"])
   Le thème vision est TOTALEMENT protégé — aucune règle ici ne le touche.
   ============================================================================= */

/* ─── 1. Fonte Manrope (thème clair uniquement) ─────────────────────────────── */
html:not([data-theme="vision"]) body,
html:not([data-theme="vision"]) input,
html:not([data-theme="vision"]) select,
html:not([data-theme="vision"]) textarea,
html:not([data-theme="vision"]) button,
html:not([data-theme="vision"]) .btn,
html:not([data-theme="vision"]) label,
html:not([data-theme="vision"]) th,
html:not([data-theme="vision"]) td,
html:not([data-theme="vision"]) .menu,
html:not([data-theme="vision"]) .badge,
html:not([data-theme="vision"]) .tab {
    font-family: "Manrope", ui-sans-serif, system-ui, sans-serif;
}

/* ─── 2. Fond de page alpin ─────────────────────────────────────────────────── */
html:not([data-theme="vision"]) body {
    background-color: #F6F6F6;
    color: rgba(15, 42, 68, .78);
}

/* ─── 3. DaisyUI base overrides (light) ─────────────────────────────────────── */
html:not([data-theme="vision"]) {
    /* Base */
    --b1: 97% 0 0;           /* #F6F6F6 */
    --b2: 93% 0 0;           /* #EEEEEE */
    --b3: 89% 0 0;
    --bc: 15% 0.048 235;     /* navy foncé */

    /* Primary violet Kadran #5E6EFF */
    --p:  55% 0.22 262;
    --pc: 100% 0 0;

    /* Secondary navy */
    --s:  20% 0.05 235;
    --sc: 96% 0 0;

    /* Accent glacier #BFD5EA */
    --a:  84% 0.06 220;
    --ac: 15% 0.048 235;

    /* Géométrie Kadran — arrondis serrés style instrument/cadran */
    --rounded-box:   0.5rem;    /* 8px — cartes */
    --rounded-btn:   0.4rem;    /* 6px — boutons */
    --rounded-badge: 9999px;    /* pill — badges */
    --animation-btn: 0.2s;
    --animation-input: .15s;
    --btn-focus-scale: 0.98;
    --border-btn: 1px;
}

/* ─── 4. Cartes ─────────────────────────────────────────────────────────────── */
html:not([data-theme="vision"]) .card,
html:not([data-theme="vision"]) .bg-base-100 {
    background-color: #FFFFFF;
    border: 1px solid rgba(15, 42, 68, .10);
    box-shadow: 0 2px 10px -4px rgba(15, 42, 68, .07);
    border-radius: 8px;
}

html:not([data-theme="vision"]) .bg-base-200 {
    background-color: #EEEEEE;
}

html:not([data-theme="vision"]) .bg-base-300 {
    background-color: #E3E3E3;
}

/* ─── 5. Typographie navy ────────────────────────────────────────────────────── */
html:not([data-theme="vision"]) h1,
html:not([data-theme="vision"]) h2,
html:not([data-theme="vision"]) h3,
html:not([data-theme="vision"]) h4,
html:not([data-theme="vision"]) h5,
html:not([data-theme="vision"]) h6,
html:not([data-theme="vision"]) .card-title {
    color: #0F2A44;
    font-weight: 700;
}

html:not([data-theme="vision"]) .text-base-content {
    color: rgba(15, 42, 68, .78);
}

html:not([data-theme="vision"]) .text-base-content\/60,
html:not([data-theme="vision"]) [class*="opacity-60"] {
    color: rgba(15, 42, 68, .58);
}

html:not([data-theme="vision"]) .opacity-40 {
    color: rgba(15, 42, 68, .40);
}

/* ─── 5b. Hero-label — style sous-titres / titres de section ────────────────── */
/* Appliqué aux labels de section, sous-titres, menu-title sidebar             */
html:not([data-theme="vision"]) .hero-label,
html:not([data-theme="vision"]) .section-label,
html:not([data-theme="vision"]) .page-subtitle,
html:not([data-theme="vision"]) .label-text,
html:not([data-theme="vision"]) .form-label,
html:not([data-theme="vision"]) label.label-text {
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 0.72rem;
    font-weight: 600;
    color: rgba(15, 42, 68, .58);
}

/* ─── 6. Bouton primaire Kadran ─────────────────────────────────────────────── */
html:not([data-theme="vision"]) .btn-primary,
html:not([data-theme="vision"]) .btn.btn-primary {
    background-color: #5E6EFF;
    border-color: #5E6EFF;
    color: #FFFFFF;
    font-weight: 600;
    letter-spacing: 0.01em;
    padding: .7em 1.4em;
    border-radius: 6px;
    box-shadow: 0 14px 32px -20px rgba(94, 110, 255, .9);
    transition: background-color .2s cubic-bezier(.2,.7,.2,1),
                box-shadow       .2s cubic-bezier(.2,.7,.2,1),
                transform        .15s cubic-bezier(.2,.7,.2,1);
}
html:not([data-theme="vision"]) .btn-primary:hover,
html:not([data-theme="vision"]) .btn.btn-primary:hover {
    background-color: #4f46e5;
    border-color: #4f46e5;
    box-shadow: 0 14px 28px -16px rgba(79, 70, 229, .85);
    transform: translateY(-1px);
}
html:not([data-theme="vision"]) .btn-primary:active,
html:not([data-theme="vision"]) .btn.btn-primary:active {
    background-color: #4338ca;
    border-color: #4338ca;
    transform: translateY(0);
    box-shadow: none;
}

/* ─── 7. Bouton ghost / secondaire ──────────────────────────────────────────── */
html:not([data-theme="vision"]) .btn-ghost {
    color: rgba(94, 110, 255, .80);
    border-color: transparent;
    background-color: transparent;
    border-radius: 6px;
    transition: background-color .2s cubic-bezier(.2,.7,.2,1),
                color            .2s cubic-bezier(.2,.7,.2,1);
}
html:not([data-theme="vision"]) .btn-ghost:hover {
    background-color: rgba(94, 110, 255, .08);
    color: #5E6EFF;
    border-color: transparent;
}

html:not([data-theme="vision"]) .btn-outline.btn-primary {
    color: #5E6EFF;
    border-color: rgba(94, 110, 255, .45);
    background-color: transparent;
    border-radius: 6px;
}
html:not([data-theme="vision"]) .btn-outline.btn-primary:hover {
    background-color: #5E6EFF;
    border-color: #5E6EFF;
    color: #FFFFFF;
}

/* Autres boutons : harmonisation discrète (sémantique conservée) */
html:not([data-theme="vision"]) .btn {
    border-radius: 6px;
    transition: filter .15s cubic-bezier(.2,.7,.2,1),
                transform .15s cubic-bezier(.2,.7,.2,1);
}
html:not([data-theme="vision"]) .btn:hover:not(.btn-primary):not(.btn-ghost):not(.btn-outline) {
    filter: brightness(0.94);
    transform: translateY(-1px);
}

/* Bouton sm : arrondis cohérents */
html:not([data-theme="vision"]) .btn-sm {
    border-radius: 5px;
}
html:not([data-theme="vision"]) .btn-xs {
    border-radius: 4px;
}

/* ─── 8. Sidebar navy profond ───────────────────────────────────────────────── */
html:not([data-theme="vision"]) aside {
    background: linear-gradient(150deg, #163a5c, #0F2A44);
    border-right: 1px solid rgba(15, 42, 68, .25);
    color: rgba(231, 239, 246, .90);  /* glacier-soft */
}

/* Logo / en-tête sidebar */
html:not([data-theme="vision"]) aside .navbar,
html:not([data-theme="vision"]) aside header,
html:not([data-theme="vision"]) aside [class*="brand"],
html:not([data-theme="vision"]) aside .logo {
    color: #FFFFFF;
}

/* Items menu */
html:not([data-theme="vision"]) aside .menu a,
html:not([data-theme="vision"]) aside .menu .menu-title {
    color: rgba(191, 213, 234, .75);  /* glacier atténué */
    font-weight: 500;
    border-radius: 6px;
    transition: background-color .2s cubic-bezier(.2,.7,.2,1),
                color            .2s cubic-bezier(.2,.7,.2,1);
}
html:not([data-theme="vision"]) aside .menu a svg.lucide {
    color: rgba(191, 213, 234, .65);
    transition: color .2s cubic-bezier(.2,.7,.2,1);
}

/* Hover */
html:not([data-theme="vision"]) aside .menu a:hover {
    background-color: rgba(191, 213, 234, .12);
    color: #E7EFF6;
}
html:not([data-theme="vision"]) aside .menu a:hover svg.lucide {
    color: #BFD5EA;
}

/* Actif */
html:not([data-theme="vision"]) aside .menu .active,
html:not([data-theme="vision"]) aside .menu [aria-current="page"],
html:not([data-theme="vision"]) aside .menu li > a.active {
    background-color: rgba(94, 110, 255, .22);
    color: #FFFFFF;
    font-weight: 600;
    border-radius: 6px;
}
html:not([data-theme="vision"]) aside .menu .active svg.lucide,
html:not([data-theme="vision"]) aside .menu [aria-current="page"] svg.lucide {
    color: #BFD5EA;
}

/* Menu title (catégories) — style hero-label Kadran */
html:not([data-theme="vision"]) aside .menu-title {
    color: rgba(191, 213, 234, .45) !important;
    text-transform: uppercase;
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.14em;
}

/* Dividers sidebar */
html:not([data-theme="vision"]) aside hr,
html:not([data-theme="vision"]) aside .divider {
    border-color: rgba(191, 213, 234, .12);
}

/* Footer sidebar */
html:not([data-theme="vision"]) aside footer,
html:not([data-theme="vision"]) aside .sidebar-footer {
    border-top: 1px solid rgba(191, 213, 234, .12);
    color: rgba(191, 213, 234, .60);
}

/* ─── 9. Inputs / selects ───────────────────────────────────────────────────── */
html:not([data-theme="vision"]) .input,
html:not([data-theme="vision"]) .select,
html:not([data-theme="vision"]) .textarea,
html:not([data-theme="vision"]) input[type="text"],
html:not([data-theme="vision"]) input[type="email"],
html:not([data-theme="vision"]) input[type="password"],
html:not([data-theme="vision"]) input[type="number"],
html:not([data-theme="vision"]) input[type="search"],
html:not([data-theme="vision"]) select,
html:not([data-theme="vision"]) textarea {
    border: 1px solid rgba(15, 42, 68, .18);
    background-color: #FFFFFF;
    color: rgba(15, 42, 68, .78);
    border-radius: 6px;
    transition: border-color .2s cubic-bezier(.2,.7,.2,1),
                box-shadow    .2s cubic-bezier(.2,.7,.2,1);
}
html:not([data-theme="vision"]) .input:focus,
html:not([data-theme="vision"]) .select:focus,
html:not([data-theme="vision"]) .textarea:focus,
html:not([data-theme="vision"]) input:focus,
html:not([data-theme="vision"]) select:focus,
html:not([data-theme="vision"]) textarea:focus {
    outline: none;
    border-color: rgba(94, 110, 255, .55);
    box-shadow: 0 0 0 3px rgba(94, 110, 255, .12);
}

/* ─── 10. Tables ────────────────────────────────────────────────────────────── */
html:not([data-theme="vision"]) .table th {
    background-color: #F6F6F6;
    color: rgba(15, 42, 68, .55);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    border-bottom: 1px solid rgba(15, 42, 68, .10);
}
html:not([data-theme="vision"]) .table td {
    border-bottom: 1px solid rgba(15, 42, 68, .07);
    color: rgba(15, 42, 68, .78);
}
html:not([data-theme="vision"]) .table tr:hover td {
    background-color: rgba(15, 42, 68, .025);
}

/* ─── 11. Liens ─────────────────────────────────────────────────────────────── */
html:not([data-theme="vision"]) a,
html:not([data-theme="vision"]) .link {
    color: #5E6EFF;
    transition: color .15s cubic-bezier(.2,.7,.2,1);
}
html:not([data-theme="vision"]) a:hover,
html:not([data-theme="vision"]) .link:hover {
    color: #4f46e5;
}

/* ─── 12. Badges ────────────────────────────────────────────────────────────── */
html:not([data-theme="vision"]) .badge {
    border-radius: 4px;
}
html:not([data-theme="vision"]) .badge-outline {
    border-color: #BFD5EA;
    color: #163a5c;
    background-color: #E7EFF6;
}
html:not([data-theme="vision"]) .badge-info {
    background-color: #E7EFF6;
    color: #163a5c;
    border-color: #BFD5EA;
}

/* ─── 13. Tabs ──────────────────────────────────────────────────────────────── */
html:not([data-theme="vision"]) .tab-active,
html:not([data-theme="vision"]) .tab[aria-selected="true"] {
    color: #5E6EFF;
    border-color: #5E6EFF;
    font-weight: 600;
}
html:not([data-theme="vision"]) .tab:hover:not(.tab-active) {
    color: rgba(94, 110, 255, .70);
}

/* ─── 14. Navbar / header principal ─────────────────────────────────────────── */
html:not([data-theme="vision"]) .navbar,
html:not([data-theme="vision"]) nav.bg-base-100 {
    background-color: #FFFFFF;
    border-bottom: 1px solid rgba(15, 42, 68, .10);
    box-shadow: 0 1px 6px -2px rgba(15, 42, 68, .06);
}

/* ─── 15. Modals / Dropdowns ────────────────────────────────────────────────── */
html:not([data-theme="vision"]) .modal-box,
html:not([data-theme="vision"]) .dropdown-content {
    background-color: #FFFFFF;
    border: 1px solid rgba(15, 42, 68, .10);
    box-shadow: 0 20px 50px -12px rgba(15, 42, 68, .16);
    border-radius: 8px;
}

/* ─── 16. Alerts / Dividers ─────────────────────────────────────────────────── */
html:not([data-theme="vision"]) .divider {
    color: rgba(15, 42, 68, .30);
}
html:not([data-theme="vision"]) .divider::before,
html:not([data-theme="vision"]) .divider::after {
    background-color: rgba(15, 42, 68, .10);
}

/* ─── 17. Stat / Stat-card ──────────────────────────────────────────────────── */
html:not([data-theme="vision"]) .stat {
    background-color: #FFFFFF;
    border: 1px solid rgba(15, 42, 68, .10);
    border-radius: 8px;
}
html:not([data-theme="vision"]) .stat-title {
    color: rgba(15, 42, 68, .55);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.10em;
}
html:not([data-theme="vision"]) .stat-value {
    color: #0F2A44;
    font-weight: 800;
}
html:not([data-theme="vision"]) .stat-desc {
    color: rgba(15, 42, 68, .45);
}

/* ─── 18. Scrollbar discrète ────────────────────────────────────────────────── */
html:not([data-theme="vision"]) ::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}
html:not([data-theme="vision"]) ::-webkit-scrollbar-track {
    background: #EEEEEE;
}
html:not([data-theme="vision"]) ::-webkit-scrollbar-thumb {
    background: rgba(15, 42, 68, .18);
    border-radius: 9999px;
}
html:not([data-theme="vision"]) ::-webkit-scrollbar-thumb:hover {
    background: rgba(15, 42, 68, .32);
}

/* ─── 19. Panneau contexte sidebar (sélecteur fonds/rapport) ────────────────── */
html:not([data-theme="vision"]) #ctx-panel {
    border-radius: 8px;
}
html:not([data-theme="vision"]) #ctx-toggle {
    border-radius: 6px;
}
