/* =========================================================
 * AUXILIUM CENTER - theme charte AKILI sur GLPI 11
 * Post-login : theme LIGHT
 * Page de login (body.welcome-anonymous) : DARK CYBER
 * ========================================================= */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Inter+Tight:wght@500;580;600;700&family=JetBrains+Mono:wght@400;500&display=swap");
:root {
  --bg: #f7f5f1;
  --bg2: #FFFFFF;
  --bg3: #f1edf7;
  --border: rgba(109,78,255,0.18);
  --border2: rgba(109,78,255,0.35);
  --accent: #6d4eff;
  --accent2: #9b6bff;
  --violet: #7c3aed;
  --glow: rgba(109,78,255,0.12);
  --cyan: #06B6D4;
  --text: #0e0a1c;
  --text2: #5b556d;
  --text3: #8a8499;
  --success: #10B981;
  --warning: #F59E0B;
  --danger: #EF4444;
  --aix-grad: linear-gradient(135deg, #6d4eff 0%, #7c3aed 100%);
  --aix-grad-soft: linear-gradient(135deg, rgba(109,78,255,.07), rgba(147,51,234,.04));
  --sev-faible: #64748b;
  --sev-moyen: #ca8a04;
  --sev-important: #ea580c;
  --sev-critique: #dc2626;
}

/* =====  Theme LIGHT (post-login, defaut) ===== */
html, body, .page, .page-wrapper, .page-body {
  background: var(--bg) !important;
  color: var(--text) !important;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size: 14px;
}

* {
  font-family: inherit;
}

/* ===== Post-login layout : memes tokens que login (clair, violet en accent) =====
 * Top bar : blanche + border violet subtil
 * Sidebar : tres clair, items violet sur hover/active
 * Brand : symbole couleur + texte AUXILIUM CENTER en gradient
 */
/* Top horizontal bar - tous les variants Tabler / GLPI 11 */
body:not(.welcome-anonymous) .navbar,
body:not(.welcome-anonymous) header.navbar,
body:not(.welcome-anonymous) #header,
body:not(.welcome-anonymous) #header_top,
body:not(.welcome-anonymous) .navbar-glpi,
body:not(.welcome-anonymous) .navbar.navbar-glpi,
body:not(.welcome-anonymous) .navbar.navbar-expand-md:not(.navbar-vertical),
body:not(.welcome-anonymous) .navbar-horizontal,
body:not(.welcome-anonymous) .navbar-light,
body:not(.welcome-anonymous) .navbar-dark,
body:not(.welcome-anonymous) .topbar,
body:not(.welcome-anonymous) #topbar,
body:not(.welcome-anonymous) .navbar.bg-primary,
body:not(.welcome-anonymous) .page > header,
body:not(.welcome-anonymous) .page-wrapper > header,
body:not(.welcome-anonymous) .page-wrapper > .navbar {
  background: var(--bg2) !important;
  background-color: var(--bg2) !important;
  background-image: none !important;
  border-bottom: 1px solid var(--border) !important;
  color: var(--text) !important;
  backdrop-filter: blur(12px);
}

/* Force all nav links in topbar to dark text */
body:not(.welcome-anonymous) .navbar:not(.navbar-vertical) a,
body:not(.welcome-anonymous) .navbar:not(.navbar-vertical) .nav-link,
body:not(.welcome-anonymous) .navbar:not(.navbar-vertical) .navbar-nav .nav-link,
body:not(.welcome-anonymous) .navbar:not(.navbar-vertical) .breadcrumb,
body:not(.welcome-anonymous) .navbar:not(.navbar-vertical) .breadcrumb a {
  color: var(--text) !important;
}

/* Search input + button in topbar */
body:not(.welcome-anonymous) .navbar:not(.navbar-vertical) input.form-control,
body:not(.welcome-anonymous) header input[type=search],
body:not(.welcome-anonymous) header input[type=text] {
  background: var(--bg3) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}

body:not(.welcome-anonymous) .navbar:not(.navbar-vertical) button[type=submit],
body:not(.welcome-anonymous) header .search-bar button,
body:not(.welcome-anonymous) header .input-group-text {
  background: var(--accent) !important;
  border: 1px solid var(--accent) !important;
  color: #FFFFFF !important;
}

/* User dropdown pill (top right) */
body:not(.welcome-anonymous) .navbar .dropdown-toggle,
body:not(.welcome-anonymous) .navbar .user-menu,
body:not(.welcome-anonymous) .navbar .nav-item.dropdown > a {
  color: var(--text) !important;
  background: transparent !important;
}

body:not(.welcome-anonymous) .navbar .dropdown-toggle::after {
  color: var(--text2) !important;
}

/* Dropdown menus opened from user/profile/lang */
body:not(.welcome-anonymous) .dropdown-menu {
  background: var(--bg2) !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08) !important;
  padding: 6px !important;
}

body:not(.welcome-anonymous) .dropdown-menu .dropdown-header {
  color: var(--text3) !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 6px 12px !important;
}

body:not(.welcome-anonymous) .dropdown-menu .dropdown-item {
  color: var(--text) !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
  font-size: 13px !important;
}

body:not(.welcome-anonymous) .dropdown-menu .dropdown-item:hover,
body:not(.welcome-anonymous) .dropdown-menu .dropdown-item:focus {
  background: var(--glow) !important;
  color: var(--accent) !important;
}

body:not(.welcome-anonymous) .dropdown-menu .dropdown-divider {
  border-color: var(--border) !important;
}

/* DEPRECATED rule below kept as fallback (sera ignore par body:not selecteur ci-dessus) */
.navbar.welcome-anonymous,
.navbar-glpi {
  /* fallback - en cas de selecteur cible specifique */
}

.navbar-brand, .navbar-brand-autodark,
.navbar a, .nav-link, .navbar-glpi .nav-link, header.navbar a {
  color: var(--text) !important;
}

/* Hide all native logo bearers (img/svg/background-image) */
.navbar-brand img, .navbar-brand .logo,
.navbar-brand svg, .navbar-brand picture,
.navbar-glpi .navbar-brand img, #header .logo img,
.navbar-brand-autodark img, .navbar-brand-autodark .logo {
  display: none !important;
  visibility: hidden !important;
}

.navbar-brand, .navbar-brand-autodark, .navbar-glpi .navbar-brand {
  --glpi-logo: none !important;
  --glpi-logo-dark-login: none !important;
  --logo: none !important;
  background-image: none !important;
  display: inline-flex !important;
  align-items: center !important;
  text-decoration: none !important;
}

.navbar-brand::before, .navbar-glpi .navbar-brand::before, .navbar-brand-autodark::before {
  content: "";
  display: inline-block;
  width: 30px;
  height: 30px;
  background: url("/aix/aix-symbol-color.png") center/contain no-repeat;
  margin-right: 10px;
  vertical-align: middle;
}

/* Hide GLPI native .glpi-logo image (post-login sidebar) */
body:not(.welcome-anonymous) .navbar-brand .glpi-logo,
body:not(.welcome-anonymous) .navbar-brand span.glpi-logo,
body:not(.welcome-anonymous) .page .glpi-logo,
body:not(.welcome-anonymous) .navbar-vertical .glpi-logo,
body:not(.welcome-anonymous) aside .glpi-logo {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
  content: none !important;
  --glpi-logo: none !important;
  --glpi-logo-light: none !important;
  --glpi-logo-dark: none !important;
  --glpi-logo-reduced: none !important;
  --logo: none !important;
  position: absolute !important;
  left: -9999px !important;
}

.navbar-brand::after, .navbar-glpi .navbar-brand::after, .navbar-brand-autodark::after {
  content: "AUXILIUM CENTER";
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.12em;
  vertical-align: middle;
  background: linear-gradient(120deg, var(--accent), var(--violet));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}

/* Sidebar verticale (navbar-vertical Tabler GLPI) : claire avec accent violet */
.navbar-vertical, .navbar.navbar-vertical,
aside.navbar, aside.navbar-vertical,
.sidebar, .aside, .navbar-side {
  background: var(--bg2) !important;
  border-right: 1px solid var(--border) !important;
  color: var(--text) !important;
}

.navbar-vertical .nav-link, .navbar-vertical .navbar-nav .nav-link,
.sidebar .nav-link, aside .nav-link {
  color: var(--text2) !important;
  border-radius: 8px !important;
  margin: 2px 8px !important;
  padding: 8px 12px !important;
}

.navbar-vertical .nav-link:hover, .navbar-vertical .nav-link.active,
.navbar-vertical .nav-item.active > .nav-link,
.sidebar .nav-link:hover, .sidebar .nav-link.active,
aside .nav-link:hover, aside .nav-link.active {
  background: var(--glow) !important;
  color: var(--accent) !important;
}

.navbar-vertical .navbar-brand, .sidebar .navbar-brand,
aside .navbar-brand {
  padding: 14px 16px !important;
  border-bottom: 1px solid var(--border) !important;
}

/* Search input dans sidebar */
.navbar-vertical input.form-control,
.sidebar input.form-control,
aside input.form-control {
  background: var(--bg3) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}

/* Bouton reduire le menu / collapse */
.navbar-vertical .btn-toggle-aside, .navbar-vertical-toggle {
  background: transparent !important;
  color: var(--text2) !important;
  border-top: 1px solid var(--border) !important;
}

/* Top header user pill */
.navbar .dropdown-toggle, .navbar .user-menu {
  color: var(--text) !important;
}

/* Search input top header */
.navbar input.form-control, header.navbar input {
  background: var(--bg3) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}

/* Cards */
.card {
  background: var(--bg2) !important;
  border: 1px solid var(--border) !important;
  border-radius: 14px !important;
  transition: border-color 0.2s !important;
  box-shadow: none !important;
}

.card:hover {
  border-color: var(--border2) !important;
}

.card-header {
  padding: 13px 20px !important;
  border-bottom: 1px solid var(--border) !important;
  background: transparent !important;
  color: var(--text3) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}

.card-body {
  padding: 20px !important;
}

/* Buttons */
.btn {
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  transition: all 0.15s !important;
}

.btn-primary, button.btn-primary, input[type=submit].btn-primary, .btn-info {
  background: var(--aix-grad) !important;
  border: none !important;
  color: #FFFFFF !important;
  box-shadow: 0 4px 24px var(--glow) !important;
  padding: 9px 18px !important;
}

.btn-primary:hover, .btn-info:hover {
  box-shadow: 0 4px 32px rgba(109, 78, 255, 0.3) !important;
  transform: translateY(-1px);
}

.btn-sm {
  padding: 4px 12px !important;
  font-size: 11px !important;
}

.btn-danger, .btn-outline-danger {
  background: rgba(239, 68, 68, 0.1) !important;
  border: 1px solid rgba(239, 68, 68, 0.3) !important;
  color: var(--danger) !important;
  box-shadow: none !important;
}

.btn-warning, .btn-outline-warning {
  background: rgba(245, 158, 11, 0.1) !important;
  border: 1px solid rgba(245, 158, 11, 0.3) !important;
  color: #b45309 !important;
  box-shadow: none !important;
}

.btn-success, .btn-outline-success {
  background: rgba(16, 185, 129, 0.1) !important;
  border: 1px solid rgba(16, 185, 129, 0.3) !important;
  color: var(--success) !important;
}

.btn-secondary, .btn-outline-secondary, .btn-default {
  background: rgba(109, 78, 255, 0.04) !important;
  border: 1px solid var(--border) !important;
  color: var(--text2) !important;
  box-shadow: none !important;
}

/* Forms (post-login) */
.form-control, .form-select, input.form-control, select.form-select, textarea.form-control,
input[type=text], input[type=email], input[type=password],
input[type=number], input[type=search], select, textarea {
  background: var(--bg3) !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  color: var(--text) !important;
  font-size: 13px !important;
  padding: 9px 12px !important;
}

.form-control:focus, .form-select:focus, input:focus, select:focus, textarea:focus {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px var(--glow) !important;
  outline: none !important;
}

.form-label, label.form-label {
  font-size: 10px !important;
  font-weight: 700 !important;
  color: var(--text3) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 4px !important;
}

.select2-selection {
  background: var(--bg3) !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  min-height: 38px !important;
}

.select2-selection--single .select2-selection__rendered {
  color: var(--text) !important;
  line-height: 36px !important;
  padding-left: 12px !important;
}

.select2-container--default.select2-container--focus .select2-selection {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px var(--glow) !important;
}

/* Tables */
.table, table.tab_cadre, table.tab_cadre_fixe, table {
  font-size: 13px !important;
  color: var(--text) !important;
  background: transparent !important;
}

.table thead th, table thead th, th, .table > :not(caption) > * > * {
  background: transparent !important;
  color: var(--text3) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  border-bottom: 1px solid var(--border) !important;
  padding: 10px 12px !important;
}

.table tbody td, table tbody td, td {
  color: var(--text2) !important;
  border-bottom: 1px solid rgba(109, 78, 255, 0.06) !important;
  padding: 10px 12px !important;
  background: transparent !important;
}

.table tbody tr:hover td, table tbody tr:hover td, .table-hover tbody tr:hover td {
  background: rgba(109, 78, 255, 0.04) !important;
}

.table-striped tbody tr:nth-of-type(odd) td {
  background: rgba(109, 78, 255, 0.02) !important;
}

/* Badges */
.badge {
  font-size: 10px !important;
  padding: 2px 8px !important;
  border-radius: 20px !important;
  font-weight: 600 !important;
}

.badge.bg-primary, .badge.badge-primary {
  background: rgba(109, 78, 255, 0.12) !important;
  color: var(--accent) !important;
  border: 1px solid rgba(109, 78, 255, 0.2) !important;
}

.badge.bg-danger, .badge.badge-danger {
  background: rgba(239, 68, 68, 0.12) !important;
  color: #B91C1C !important;
  border: 1px solid rgba(239, 68, 68, 0.2) !important;
}

.badge.bg-warning, .badge.badge-warning {
  background: rgba(245, 158, 11, 0.1) !important;
  color: #92400E !important;
  border: 1px solid rgba(245, 158, 11, 0.18) !important;
}

.badge.bg-success, .badge.badge-success {
  background: rgba(16, 185, 129, 0.1) !important;
  color: #065F46 !important;
  border: 1px solid rgba(16, 185, 129, 0.18) !important;
}

.badge.bg-info, .badge.badge-info {
  background: rgba(6, 182, 212, 0.12) !important;
  color: #0E7490 !important;
  border: 1px solid rgba(6, 182, 212, 0.2) !important;
}

.badge.bg-secondary, .badge.badge-secondary {
  background: rgba(255, 255, 255, 0.04) !important;
  color: var(--text2) !important;
  border: 1px solid var(--border) !important;
}

/* Alerts */
.alert {
  padding: 11px 16px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  border-top: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-left: 3px solid !important;
}

.alert-success {
  background: rgba(16, 185, 129, 0.08) !important;
  color: #047857 !important;
  border-color: var(--success) !important;
}

.alert-danger {
  background: rgba(239, 68, 68, 0.08) !important;
  color: #B91C1C !important;
  border-color: var(--danger) !important;
}

.alert-warning {
  background: rgba(245, 158, 11, 0.08) !important;
  color: #92400E !important;
  border-color: var(--warning) !important;
}

.alert-info {
  background: rgba(109, 78, 255, 0.08) !important;
  color: var(--accent) !important;
  border-color: var(--accent) !important;
}

/* Sidebar / nav links */
.list-group-item.active, .nav-pills .nav-link.active, .nav-link.active,
.dropdown-item.active, .dropdown-item:active {
  background: var(--glow) !important;
  color: var(--accent) !important;
  font-weight: 600 !important;
  border-color: transparent !important;
}

.list-group-item:hover, .nav-link:hover, .dropdown-item:hover {
  background: var(--glow) !important;
  color: var(--text) !important;
}

/* Severites */
.ticket_priority_5, [data-priority="5"] {
  color: var(--sev-critique) !important;
  font-weight: 700;
}

.ticket_priority_4, [data-priority="4"] {
  color: var(--sev-important) !important;
  font-weight: 600;
}

.ticket_priority_3, [data-priority="3"] {
  color: var(--sev-moyen) !important;
}

.ticket_priority_2, [data-priority="2"] {
  color: var(--sev-faible) !important;
}

.ticket_priority_1, [data-priority="1"] {
  color: var(--sev-faible) !important;
  opacity: 0.7;
}

/* Hero / page header */
.page-header {
  background: var(--aix-grad-soft) !important;
  border: 1px solid var(--border) !important;
  border-radius: 14px !important;
  padding: 24px 28px !important;
  margin-bottom: 20px !important;
}

.page-title, h1.page-title, h1, h2.page-title {
  font-size: 20px !important;
  font-weight: 800 !important;
  background: linear-gradient(135deg, var(--text), var(--accent2));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Dropdowns */
.dropdown-menu {
  background: var(--bg2) !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08) !important;
}

.dropdown-item {
  color: var(--text2) !important;
  font-size: 13px !important;
}

/* Scrollbars */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: var(--bg3);
}

::-webkit-scrollbar-thumb {
  background: var(--border2);
  border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--accent);
}

a, a:link {
  color: var(--accent);
}

a:hover {
  color: var(--accent2);
  text-decoration: none;
}

hr {
  border-color: var(--border);
}

code {
  background: var(--bg3) !important;
  color: var(--accent) !important;
  border-radius: 4px;
  padding: 1px 4px;
}

/* ===========================================================
/* ===========================================================
 * LOGIN PAGE - charte AKILI auth (spec utilisateur 2026-05-12)
 * - Canvas dot matrix anime (radial wave) injecte via twig patch
 * - Theme toggle persistant via localStorage (cle "aix-theme")
 * - Card centree 440px, glassmorphism
 * - Logo wordmark COULEUR AGENCE IX
 * =========================================================== */
/* ===== Light theme tokens (defaut) ===== */
html {
  background: var(--auth-bg, #f7f5f1);
}

:root {
  --auth-bg: #f7f5f1;
  --auth-bg-grain: #f3f0ea;
  --auth-surface: #ffffff;
  --auth-surface-2: #f1edf7;
  --auth-border: rgba(20, 14, 40, 0.08);
  --auth-border-strong: rgba(20, 14, 40, 0.14);
  --auth-text: #0e0a1c;
  --auth-text-muted: #5b556d;
  --auth-text-dim: #8a8499;
  --auth-accent: #6d4eff;
  --auth-accent-2: #9b6bff;
  --auth-accent-deep: #4a2fd9;
  --auth-accent-glow: rgba(109, 78, 255, 0.32);
  --auth-accent-soft: rgba(109, 78, 255, 0.10);
  --auth-success: #16a34a;
  --auth-danger: #ef4444;
  --auth-shadow-md: 0 8px 28px rgba(46, 28, 110, 0.08), 0 2px 6px rgba(20, 14, 40, 0.04);
  --auth-radius-lg: 22px;
  --font-display: "Inter Tight", "Inter", system-ui, sans-serif;
  --font-text: "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
}

[data-theme=dark] {
  --auth-bg: #07050e;
  --auth-bg-grain: #0a0814;
  --auth-surface: #110c1f;
  --auth-surface-2: #161029;
  --auth-border: rgba(255, 255, 255, 0.07);
  --auth-border-strong: rgba(255, 255, 255, 0.14);
  --auth-text: #f4f1ff;
  --auth-text-muted: #a39cb8;
  --auth-text-dim: #6e6786;
  --auth-accent: #8b6dff;
  --auth-accent-2: #b89cff;
  --auth-accent-deep: #6d4eff;
  --auth-accent-glow: rgba(139, 109, 255, 0.45);
  --auth-accent-soft: rgba(139, 109, 255, 0.14);
  --auth-shadow-md: 0 10px 30px rgba(0, 0, 0, 0.5);
}

/* ===== Layout body / canvas ===== */
body.welcome-anonymous {
  margin: 0 !important;
  padding: 0 !important;
  min-height: 100vh !important;
  display: flex !important;
  flex-direction: column !important;
  background: var(--auth-bg) !important;
  color: var(--auth-text) !important;
  font-family: var(--font-text) !important;
  position: relative !important;
  -webkit-font-smoothing: antialiased;
}

body.welcome-anonymous .auth-canvas {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 0 !important;
  pointer-events: none;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
}

/* ===== Theme toggle ===== */
body.welcome-anonymous .auth-theme-toggle {
  position: fixed !important;
  top: 16px !important;
  right: 16px !important;
  width: 38px !important;
  height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: color-mix(in srgb, var(--auth-surface) 80%, transparent);
  backdrop-filter: saturate(140%) blur(8px);
  -webkit-backdrop-filter: saturate(140%) blur(8px);
  border: 1px solid var(--auth-border) !important;
  border-radius: 10px !important;
  color: var(--auth-text) !important;
  cursor: pointer !important;
  z-index: 10 !important;
  transition: transform 0.3s !important;
  padding: 0 !important;
  box-shadow: none !important;
}

body.welcome-anonymous .auth-theme-toggle:hover {
  transform: rotate(15deg);
}

/* ===== Shell + card ===== */
body.welcome-anonymous .page-anonymous {
  flex: 1 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  z-index: 2 !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  min-height: calc(100vh - 80px) !important;
}

body.welcome-anonymous .page-anonymous > .flex-fill {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  padding: 56px 20px !important;
  margin: 0 !important;
  flex: 1 0 auto !important;
}

body.welcome-anonymous .container-tight {
  width: 100% !important;
  max-width: 440px !important;
  padding: 0 !important;
  margin: 0 auto !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.welcome-anonymous .container-tight > .text-center {
  text-align: center;
  margin: 0 0 28px !important;
}

/* Brand: logo wordmark COULEUR AGENCE IX */
body.welcome-anonymous .auth-brand {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
}

body.welcome-anonymous .auth-brand-img {
  max-width: 200px !important;
  height: auto !important;
  display: block !important;
}

/* La card devient l'auth-card AKILI */
body.welcome-anonymous .card.card-md.main-content-card {
  width: 100% !important;
  max-width: 440px !important;
  background: color-mix(in srgb, var(--auth-surface) 92%, transparent) !important;
  backdrop-filter: saturate(140%) blur(12px) !important;
  -webkit-backdrop-filter: saturate(140%) blur(12px) !important;
  border: 1px solid var(--auth-border) !important;
  border-radius: var(--auth-radius-lg) !important;
  padding: 40px 36px !important;
  box-shadow: var(--auth-shadow-md) !important;
  margin: 0 auto !important;
}

/* Heading + sub */
body.welcome-anonymous .auth-heading {
  font-family: var(--font-display) !important;
  font-size: 28px !important;
  font-weight: 580 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.02em !important;
  margin: 0 0 8px !important;
  text-align: center !important;
  color: var(--auth-text) !important;
}

body.welcome-anonymous .auth-heading em {
  font-style: normal !important;
  background: linear-gradient(120deg, var(--auth-accent), var(--auth-accent-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}

body.welcome-anonymous .auth-sub {
  text-align: center !important;
  font-size: 14px !important;
  color: var(--auth-text-muted) !important;
  margin: 0 0 24px !important;
  line-height: 1.5 !important;
}

body.welcome-anonymous .auth-sub-brand {
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  color: var(--auth-text) !important;
  font-size: 13px !important;
}

body.welcome-anonymous .auth-sub-tag {
  font-size: 13px !important;
  color: var(--auth-text-dim) !important;
}

/* Hide GLPI native card-header text */
body.welcome-anonymous .card-header {
  display: none !important;
}

/* Form layout: force col-md-5 a 100% pour que les champs prennent toute la card */
body.welcome-anonymous .card-body {
  padding: 0 !important;
}

body.welcome-anonymous .card-body form {
  width: 100%;
}

body.welcome-anonymous .card-body .row,
body.welcome-anonymous .card-body .row.justify-content-center {
  margin: 0 !important;
  width: 100% !important;
}

body.welcome-anonymous .col-md-5,
body.welcome-anonymous [class*=col-md-] {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
}

body.welcome-anonymous .card-header.mb-4 {
  display: none !important;
}

body.welcome-anonymous .mb-3, body.welcome-anonymous .mb-4, body.welcome-anonymous .mb-2 {
  margin-bottom: 12px !important;
}

/* Hide GLPI native logo if it sneaks back via CSS content var(--logo) */
body.welcome-anonymous .glpi-logo,
body.welcome-anonymous span.glpi-logo,
body.welcome-anonymous .page .glpi-logo,
body.welcome-anonymous .page-anonymous .glpi-logo {
  display: none !important;
  content: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  position: absolute !important;
  left: -9999px !important;
  --glpi-logo: none !important;
  --glpi-logo-dark-login: none !important;
  --logo: none !important;
}

/* Labels uppercase mono pour les titres de champs (mais PAS pour checkbox) */
body.welcome-anonymous .form-label {
  display: block !important;
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--auth-text-muted) !important;
  margin-top: 0 !important;
  margin-bottom: 6px !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
}

/* Checkbox "Se souvenir de moi" : style normal lisible */
body.welcome-anonymous .form-check {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-family: var(--font-text) !important;
  font-size: 13px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--auth-text-muted) !important;
  white-space: nowrap !important;
  margin: 6px 0 !important;
  padding: 0 !important;
}

body.welcome-anonymous .form-check-input {
  margin: 0 !important;
  width: 18px !important;
  height: 18px !important;
}

body.welcome-anonymous .form-footer {
  margin-top: 16px !important;
}

body.welcome-anonymous .form-control,
body.welcome-anonymous input[type=text],
body.welcome-anonymous input[type=email],
body.welcome-anonymous input[type=password],
body.welcome-anonymous select.form-select,
body.welcome-anonymous select {
  width: 100% !important;
  padding: 12px 14px !important;
  font: inherit !important;
  font-size: 14px !important;
  color: var(--auth-text) !important;
  background: var(--auth-bg-grain) !important;
  border: 1px solid var(--auth-border) !important;
  border-radius: 10px !important;
  outline: none !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
}

body.welcome-anonymous .form-control:focus,
body.welcome-anonymous input:focus,
body.welcome-anonymous select:focus {
  border-color: var(--auth-accent) !important;
  box-shadow: 0 0 0 3px var(--auth-accent-soft) !important;
}

/* Bouton primary gradient AKILI */
body.welcome-anonymous .btn-primary,
body.welcome-anonymous button[type=submit] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 46px !important;
  padding: 0 18px !important;
  width: 100% !important;
  font: 500 15px/1 var(--font-text) !important;
  border-radius: 12px !important;
  border: 1px solid transparent !important;
  cursor: pointer !important;
  margin-top: 14px !important;
  background: linear-gradient(180deg, var(--auth-accent-2), var(--auth-accent)) !important;
  color: #fff !important;
  box-shadow: 0 8px 22px var(--auth-accent-glow), inset 0 1px 0 rgba(255, 255, 255, 0.18) !important;
  transition: transform 0.15s ease, box-shadow 0.25s ease !important;
}

body.welcome-anonymous .btn-primary:hover,
body.welcome-anonymous button[type=submit]:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 14px 30px var(--auth-accent-glow), inset 0 1px 0 rgba(255, 255, 255, 0.22) !important;
}

/* Flash messages */
body.welcome-anonymous .alert {
  padding: 11px 14px !important;
  border-radius: 10px !important;
  font-size: 13px !important;
  margin-bottom: 18px !important;
  border: 1px solid !important;
  border-left: 1px solid !important;
  background: color-mix(in srgb, var(--auth-danger) 10%, transparent) !important;
  border-color: color-mix(in srgb, var(--auth-danger) 30%, transparent) !important;
  color: var(--auth-danger) !important;
}

body.welcome-anonymous .alert-success {
  background: color-mix(in srgb, var(--auth-success) 10%, transparent) !important;
  border-color: color-mix(in srgb, var(--auth-success) 30%, transparent) !important;
  color: var(--auth-success) !important;
}

/* Footer GLPI tres discret en bas */
body.welcome-anonymous .text-center.text-muted.mt-3,
body.welcome-anonymous .text-muted {
  text-align: center !important;
  font-size: 12px !important;
  color: var(--auth-text-dim) !important;
  font-family: var(--font-mono) !important;
  letter-spacing: 0.06em !important;
  margin-top: 18px !important;
}

body.welcome-anonymous a {
  color: var(--auth-accent) !important;
  text-decoration: none !important;
}

body.welcome-anonymous a:hover {
  color: var(--auth-accent-2) !important;
}

/* Light theme dark images si dark */
[data-theme=dark] body.welcome-anonymous .auth-brand-img {
  filter: brightness(1.15);
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  body.welcome-anonymous .auth-canvas {
    display: none;
  }
}