/* =========================================================================
   Scolarys — habillage de marque + finitions du thème Nifty (Bootstrap 5).
   Primaire : bleu Scolarys #1a53a5 · Accent : orange #f99f1e.
   ========================================================================= */

:root {
    /* Palette de marque */
    --sc-primary: #1a53a5;
    --sc-primary-600: #164788;
    --sc-primary-700: #12345f;
    --sc-primary-050: #eef3fb;
    --sc-accent: #f99f1e;
    --sc-accent-600: #e08a10;

    /* Neutres */
    --sc-bg: #f2f5fb;
    --sc-surface: #ffffff;
    --sc-border: #e7ebf3;
    --sc-text: #38445c;
    --sc-heading: #1e2941;
    --sc-muted: #8592a8;

    --sc-radius: .7rem;
    --sc-radius-sm: .5rem;
    --sc-shadow-sm: 0 1px 2px rgba(24, 45, 90, .06), 0 1px 3px rgba(24, 45, 90, .05);
    --sc-shadow-md: 0 6px 22px rgba(24, 45, 90, .10);

    /* --- Overrides Bootstrap --- */
    --bs-body-bg: var(--sc-bg);
    --bs-body-color: var(--sc-text);
    --bs-body-font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --bs-border-color: var(--sc-border);
    --bs-heading-color: var(--sc-heading);
    --bs-primary: var(--sc-primary);
    --bs-primary-rgb: 26, 83, 165;
    --bs-link-color: var(--sc-primary);
    --bs-link-color-rgb: 26, 83, 165;
    --bs-link-hover-color: var(--sc-primary-700);
    --bs-secondary-color: var(--sc-muted);
    --bs-emphasis-color: var(--sc-heading);
    --bs-border-radius: var(--sc-radius-sm);

    /* --- Overrides Nifty (--nf-*) --- */
    --nf-header-bg: var(--sc-surface);
    --nf-header-color: var(--sc-text);
    --nf-header-shadow: 0 1px 0 var(--sc-border);
    --nf-brand-bg: transparent;
    --nf-brand-color: var(--sc-primary);
    --nf-brand-font-family: var(--bs-body-font-family);
    --nf-mainnav-bg: var(--sc-surface);
    --nf-mainnav-border-color: var(--sc-border);
    --nf-content-title-color: var(--sc-heading);
}

* { scrollbar-color: #c7d0e0 transparent; }

body {
    background-color: var(--sc-bg);
    color: var(--sc-text);
    font-family: var(--bs-body-font-family);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    letter-spacing: -.005em;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .page-title {
    font-family: var(--bs-body-font-family) !important;
    color: var(--sc-heading);
    font-weight: 700;
    letter-spacing: -.015em;
}

.page-title {
    font-size: 1.4rem;
    text-transform: none !important;
    margin-bottom: 0;
}

/* ------------------------------------------------------------------ Header */
.header { border-bottom: 1px solid var(--sc-border); }
.header__brand .brand-title { color: var(--sc-heading); font-weight: 600; }
.header__btn { color: #59688a; border-radius: .6rem; }
.header__btn:hover { background: var(--sc-primary-050); color: var(--sc-primary); }

/* ----------------------------------------------------------------- Sidebar */
.mainnav { border-right: 1px solid var(--sc-border); }
.mainnav__caption {
    color: #9aa6bd;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .09em;
    font-weight: 700;
    padding-left: .85rem;
}
.mainnav__menu .nav-link {
    color: #4b5a75;
    font-weight: 500;
    border-radius: .6rem;
    padding: .55rem .8rem;
    margin: .12rem .35rem;
    transition: background-color .15s ease, color .15s ease;
}
.mainnav__menu .nav-link:hover { background: var(--sc-primary-050); color: var(--sc-primary); }
.mainnav__menu .nav-link.active {
    background: linear-gradient(90deg, rgba(26, 83, 165, .12), rgba(26, 83, 165, .05));
    color: var(--sc-primary);
    font-weight: 600;
    position: relative;
}
.mainnav__menu .nav-link.active::before {
    content: "";
    position: absolute;
    left: 0; top: 20%; bottom: 20%;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--sc-primary);
}
.mainnav__menu .nav-link i { opacity: .85; }

/* ------------------------------------------------------------------- Cards */
.card {
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    box-shadow: var(--sc-shadow-sm);
    background: var(--sc-surface);
}
.card-header {
    background: transparent;
    border-bottom: 1px solid var(--sc-border);
    font-weight: 600;
    color: var(--sc-heading);
    padding: .85rem 1.1rem;
}
.card-body { padding: 1.25rem; }

/* ------------------------------------------------------------------ Tables */
.table { --bs-table-color: var(--sc-text); margin-bottom: 0; }
.table > :not(caption) > * > * { padding: .8rem 1.1rem; border-bottom-color: var(--sc-border); }
.table > thead th {
    text-transform: uppercase;
    font-size: .72rem;
    letter-spacing: .05em;
    font-weight: 700;
    color: #8592a8;
    background: #fafbfe;
    border-bottom: 1px solid var(--sc-border);
}
.table-hover > tbody > tr:hover > * { background-color: #f6f9ff; }
.table > tbody > tr:last-child > * { border-bottom: 0; }
.card > .table-responsive { border-radius: var(--sc-radius); overflow: hidden; }

/* ----------------------------------------------------------------- Buttons */
.btn { border-radius: .6rem; font-weight: 500; padding: .5rem .95rem; transition: all .15s ease; }
.btn-sm { border-radius: .5rem; padding: .35rem .7rem; }
.btn-primary {
    --bs-btn-bg: var(--sc-primary);
    --bs-btn-border-color: var(--sc-primary);
    --bs-btn-hover-bg: var(--sc-primary-600);
    --bs-btn-hover-border-color: var(--sc-primary-600);
    --bs-btn-active-bg: var(--sc-primary-700);
    --bs-btn-active-border-color: var(--sc-primary-700);
    --bs-btn-disabled-bg: var(--sc-primary);
    --bs-btn-disabled-border-color: var(--sc-primary);
    box-shadow: 0 3px 10px rgba(26, 83, 165, .28);
}
.btn-primary:hover { box-shadow: 0 5px 16px rgba(26, 83, 165, .34); transform: translateY(-1px); }
.btn-outline-primary {
    --bs-btn-color: var(--sc-primary);
    --bs-btn-border-color: var(--sc-primary);
    --bs-btn-hover-bg: var(--sc-primary);
    --bs-btn-hover-border-color: var(--sc-primary);
    --bs-btn-active-bg: var(--sc-primary);
}
.btn-light { --bs-btn-bg: #eef1f7; --bs-btn-border-color: #eef1f7; --bs-btn-hover-bg: #e3e8f2; --bs-btn-hover-border-color: #e3e8f2; color: #4b5a75; }
.btn-accent {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--sc-accent);
    --bs-btn-border-color: var(--sc-accent);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--sc-accent-600);
    --bs-btn-hover-border-color: var(--sc-accent-600);
    --bs-btn-active-bg: var(--sc-accent-600);
    box-shadow: 0 3px 10px rgba(249, 159, 30, .30);
}
.btn-link { font-weight: 500; }
.bg-primary { background-color: var(--sc-primary) !important; }
.text-primary { color: var(--sc-primary) !important; }
.link-primary { color: var(--sc-primary) !important; }
.text-accent { color: var(--sc-accent) !important; }
.bg-accent { background-color: var(--sc-accent) !important; }

/* -------------------------------------------------------------------- Forms */
.form-control, .form-select {
    border-radius: .6rem;
    border-color: #d9e0ee;
    padding: .5rem .8rem;
    color: var(--sc-text);
    background-color: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control-sm, .form-select-sm { border-radius: .5rem; }
.form-control:focus, .form-select:focus {
    border-color: #7fa5da;
    box-shadow: 0 0 0 .2rem rgba(26, 83, 165, .16);
}
.form-label { font-weight: 500; font-size: .85rem; color: #47566f; margin-bottom: .35rem; }
.form-check-input { border-color: #c7d0e0; }
.form-check-input:checked { background-color: var(--sc-primary); border-color: var(--sc-primary); }
.form-check-input:focus { border-color: #7fa5da; box-shadow: 0 0 0 .2rem rgba(26, 83, 165, .16); }
.input-group-text { background: #f4f6fb; border-color: #d9e0ee; border-radius: .6rem; color: var(--sc-muted); }

/* --------------------------------------------------------------- Dropdowns */
.dropdown-menu {
    border: 1px solid var(--sc-border);
    border-radius: .7rem;
    box-shadow: var(--sc-shadow-md);
    padding: .4rem;
}
.dropdown-item { border-radius: .5rem; padding: .5rem .7rem; font-weight: 500; }
.dropdown-item:hover, .dropdown-item:focus { background: var(--sc-primary-050); color: var(--sc-primary); }
.dropdown-item.text-danger:hover { background: #fdecec; color: #c0392b; }
.dropdown-header { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--sc-muted); }

/* ------------------------------------------------------------------ Badges */
.badge { font-weight: 600; padding: .38em .65em; border-radius: .45rem; letter-spacing: .01em; }
.badge.text-bg-success { background: #e5f6ec !important; color: #1a7d47 !important; }
.badge.text-bg-secondary { background: #eceff5 !important; color: #5a6b85 !important; }
.badge.text-bg-danger { background: #fdeaea !important; color: #c0392b !important; }
.badge.text-bg-warning { background: #fff2dd !important; color: #b26a00 !important; }
.badge.text-bg-primary { background: rgba(26, 83, 165, .12) !important; color: var(--sc-primary) !important; }
.badge.text-bg-dark { background: #2b3548 !important; color: #fff !important; }

/* ------------------------------------------------------------------ Alerts */
.alert { border: 0; border-radius: .7rem; }
.alert-success { background: #e5f6ec; color: #157043; }
.alert-danger { background: #fdeaea; color: #b5342a; }
.alert-warning { background: #fff2dd; color: #9a5c00; }
.alert-info { background: var(--sc-primary-050); color: var(--sc-primary-700); }

/* -------------------------------------------------------------- List group */
.list-group-item { border-color: var(--sc-border); }

/* ------------------------------------------------------------- Auth (guest) */
.sc-authpanel { position: relative; }
.sc-authpanel::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 85% 15%, rgba(249, 159, 30, .18), transparent 42%),
        radial-gradient(circle at 10% 90%, rgba(255, 255, 255, .10), transparent 40%);
    pointer-events: none;
}
.sc-auth-card { border-radius: 1rem !important; box-shadow: 0 18px 50px rgba(24, 45, 90, .16) !important; }

/* --------------------------------------------------------- Dashboard bits */
.sc-hero {
    border: 0;
    border-radius: var(--sc-radius);
    color: #fff;
    background: linear-gradient(120deg, var(--sc-primary) 0%, var(--sc-primary-700) 100%);
    position: relative;
    overflow: hidden;
}
.sc-hero::after {
    content: "";
    position: absolute;
    top: -40%; right: -5%;
    width: 320px; height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(249, 159, 30, .35), transparent 60%);
}
.sc-hero .badge.text-bg-light { background: rgba(255, 255, 255, .18) !important; color: #fff !important; }

.sc-quick {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem 1.1rem;
    background: var(--sc-surface);
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    box-shadow: var(--sc-shadow-sm);
    color: var(--sc-heading);
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.sc-quick:hover { transform: translateY(-2px); box-shadow: var(--sc-shadow-md); border-color: #cfdcf0; color: var(--sc-primary); }
.sc-quick__ico {
    flex: 0 0 auto;
    width: 2.75rem; height: 2.75rem;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: .7rem;
    background: var(--sc-primary-050);
    color: var(--sc-primary);
    font-size: 1.25rem;
}
.sc-quick__title { font-weight: 600; line-height: 1.1; }
.sc-quick__sub { font-size: .8rem; color: var(--sc-muted); }

/* --------------------------------------------------------------- Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #c7d0e0; border-radius: 8px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: #aeb9ce; background-clip: content-box; }

[x-cloak] { display: none !important; }
