:root {
    --bg: #f4f7fb;
    --panel: #ffffff;
    --text: #0f2342;
    --muted: #62728a;
    --line: #dbe5f1;
    --primary: #006da7;
    --primary-2: #00a7d8;
    --primary-dark: #003f73;
    --sidebar: #07274b;
    --sidebar-2: #006da7;
    --success: #20a464;
    --warning: #f5a524;
    --critical: #d92d20;
    --shadow: 0 18px 48px rgba(11, 35, 66, 0.10);
    --shadow-soft: 0 10px 28px rgba(11, 35, 66, 0.07);
    --radius: 18px;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    min-height: 100vh;
    background: var(--bg);
    color: var(--text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    line-height: 1.5;
}

a { color: inherit; text-decoration: none; }
button, input { font: inherit; }

.login-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 32px;
    background:
        radial-gradient(circle at 20% 10%, rgba(0, 167, 216, .22), transparent 32%),
        linear-gradient(135deg, #061f3b 0%, #006da7 100%);
}

.login-panel {
    width: min(100%, 460px);
    background: rgba(255,255,255,.95);
    border: 1px solid rgba(255,255,255,.6);
    border-radius: 24px;
    box-shadow: 0 32px 80px rgba(0, 20, 45, .30);
    padding: 34px;
}

.login-heading { display: flex; align-items: center; gap: 18px; margin-bottom: 28px; }
.login-heading h1 { margin: 0; font-size: 2.1rem; letter-spacing: -.04em; }
.login-heading p { margin: 2px 0 0; color: var(--muted); }
.brand-mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: linear-gradient(135deg, var(--primary), var(--primary-2)); color: #fff; font-weight: 800; }
.brand-mark.large { width: 58px; height: 58px; font-size: 1.5rem; }

.form { display: grid; gap: 12px; }
.form label { color: var(--muted); font-size: .94rem; font-weight: 700; }
.form input, .admin-form input[type="text"], .admin-form input[type="email"], .admin-form input[type="password"] {
    width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; color: var(--text); background: #fff;
}
.form input:focus, .admin-form input:focus { border-color: var(--primary); outline: 3px solid rgba(0, 109, 167, .14); }
.form button, .admin-form button, .inline-form button, .button-secondary {
    display: inline-flex; align-items: center; justify-content: center; min-height: 42px; border-radius: 12px; padding: 0 18px; font-weight: 800; cursor: pointer; border: 1px solid transparent;
}
.form button, .admin-form button { margin-top: 8px; background: linear-gradient(135deg, var(--primary), var(--primary-2)); color: #fff; }
.button-secondary, .inline-form button { background: #fff; border-color: var(--line); color: var(--text); }
.button-secondary:hover, .inline-form button:hover, .topbar-link:hover { border-color: var(--primary); color: var(--primary); }

.alert { margin: 0 0 18px; border: 1px solid #fecaca; border-radius: 12px; padding: 12px 14px; background: #fff1f2; color: #9f1239; font-weight: 700; }
.alert.success { border-color: #bbf7d0; background: #f0fdf4; color: #166534; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 280px minmax(0, 1fr); }
.sidebar {
    position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 24px 18px;
    background: linear-gradient(165deg, #061b35 0%, #004f86 58%, #0078b8 100%); color: #fff; overflow-y: auto;
}
.sidebar::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 30% 0%, rgba(255,255,255,.18), transparent 36%); pointer-events: none; }
.sidebar > * { position: relative; z-index: 1; }
.sidebar-brand { display: block; padding: 8px 12px 28px; }
.sidebar-brand img { width: 210px; max-width: 100%; height: auto; display: block; }
.sidebar-nav { display: grid; gap: 8px; margin-top: 8px; }
.sidebar-link { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-radius: 14px; color: rgba(255,255,255,.86); font-weight: 700; }
.sidebar-link:hover, .sidebar-link.is-active { background: rgba(255,255,255,.13); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
.sidebar-icon { width: 24px; text-align: center; opacity: .95; }
.sidebar-status { margin-top: auto; border-radius: 18px; padding: 18px; background: rgba(255,255,255,.12); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
.sidebar-status small, .sidebar-status span { display: block; color: rgba(255,255,255,.78); }
.sidebar-status strong { display: block; font-size: 2rem; line-height: 1; margin: 8px 0; }
.sidebar-status i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #4ade80; margin-right: 6px; }

.content-shell { min-width: 0; display: flex; flex-direction: column; min-height: 100vh; }
.topbar { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 78px; padding: 16px 32px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.86); backdrop-filter: blur(18px); }
.topbar-title { display: flex; align-items: center; gap: 14px; }
.topbar-title strong { display: block; font-size: 1.18rem; }
.topbar-title small { color: var(--muted); }
.menu-button { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--primary); }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.topbar-link { border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; background: #fff; color: var(--text); font-weight: 800; }
.topbar-link.primary { color: #fff; background: var(--primary); border-color: var(--primary); }
.user-pill { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg, var(--primary), var(--primary-2)); color: #fff; font-weight: 900; }

.page { width: min(100%, 1480px); margin: 0 auto; padding: 34px 32px 52px; flex: 1; }
.eyebrow { margin: 0 0 8px; color: var(--primary); font-weight: 900; text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; }
h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.4rem); letter-spacing: -.05em; }
h2 { margin: 0; font-size: 1.18rem; }
p { color: var(--muted); }

.welcome-panel { display: flex; justify-content: space-between; align-items: center; gap: 28px; margin-bottom: 24px; padding: 28px; border-radius: 26px; background: linear-gradient(135deg, #fff 0%, #eff7ff 100%); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.welcome-panel p { margin: 8px 0 0; }
.welcome-logo { width: 150px; height: 110px; display: grid; place-items: center; opacity: .95; }
.welcome-logo img { max-width: 140px; max-height: 100px; object-fit: contain; }

.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.kpi-card { display: flex; align-items: center; gap: 18px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-soft); }
.kpi-card small { color: var(--muted); font-weight: 800; }
.kpi-card strong { display: block; font-size: 1.75rem; line-height: 1.1; margin: 4px 0; }
.kpi-card p { margin: 0; font-size: .92rem; }
.kpi-icon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; color: #fff; font-size: 1.5rem; box-shadow: 0 12px 24px rgba(0, 109, 167, .18); }
.kpi-icon.blue { background: linear-gradient(135deg, #006da7, #00a7d8); }
.kpi-icon.violet { background: linear-gradient(135deg, #4f46e5, #7c3aed); }
.kpi-icon.green { background: linear-gradient(135deg, #0f9f69, #22c55e); }
.kpi-icon.orange { background: linear-gradient(135deg, #f59e0b, #f97316); }

.dashboard-grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: 18px; }
.panel, .admin-panel, .admin-card, .module-card, .placeholder { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-soft); }
.panel { padding: 22px; }
.panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-header p { margin: 4px 0 0; }
.panel-header a { color: var(--primary); font-weight: 900; }
.modules-panel { grid-row: span 2; }
.module-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.module-tile { display: flex; align-items: flex-start; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(180deg, #fff, #fbfdff); transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.module-tile:hover { transform: translateY(-2px); border-color: rgba(0, 109, 167, .45); box-shadow: var(--shadow-soft); }
.tile-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; color: #fff; background: linear-gradient(135deg, var(--primary), var(--primary-2)); font-weight: 900; }
.module-tile strong, .module-tile small, .module-tile em { display: block; }
.module-tile small { color: var(--muted); margin-top: 3px; }
.module-tile em { margin-top: 9px; color: var(--success); font-style: normal; font-weight: 800; font-size: .82rem; }

.health-list, .event-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.health-list li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #edf2f7; }
.health-list li:last-child { border-bottom: 0; }
.health-list strong { flex: 1; }
.health-list em { color: var(--primary-dark); font-style: normal; font-weight: 800; }
.dot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.dot.ok { background: var(--success); }
.dot.warn { background: var(--warning); }
.event-row { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid #edf2f7; }
.event-row:last-child { border-bottom: 0; }
.event-row strong, .event-row small { display: block; }
.event-row small { color: var(--muted); }
.event-row p { margin: 3px 0 0; }
.event-dot { margin-top: 6px; width: 11px; height: 11px; border-radius: 50%; background: var(--warning); flex: 0 0 auto; }
.event-dot.blue-dot { background: var(--primary); }
.empty-state, .panel-note { margin: 0; padding: 14px; border-radius: 14px; background: #f7faff; color: var(--muted); }

.hero, .placeholder { padding: 28px; margin-bottom: 22px; }
.module-grid, .admin-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.module-card, .admin-card { display: grid; gap: 8px; padding: 22px; transition: transform .16s ease, box-shadow .16s ease; }
.module-card:hover, .admin-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.module-card span { font-size: 1.4rem; font-weight: 900; }
.module-card small { color: var(--muted); }

.admin-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.admin-header p { margin: 8px 0 0; }
.admin-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.admin-nav a { padding: 10px 13px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--muted); font-weight: 800; }
.admin-nav a.is-active, .admin-nav a:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.admin-card, .admin-panel { padding: 22px; }
.admin-panel { margin-bottom: 18px; }
.admin-card p { margin: 4px 0 14px; }
.status-badge { display: inline-flex; align-items: center; width: fit-content; border-radius: 999px; padding: 4px 9px; font-weight: 900; font-size: .78rem; }
.status-ok { background: #dcfce7; color: #166534; }
.status-info { background: #e0f2fe; color: #075985; }
.status-warning { background: #fef3c7; color: #92400e; }
.status-critical { background: #fee2e2; color: #991b1b; }
.info-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.info-list div { padding: 14px; border-radius: 14px; background: #f8fbff; border: 1px solid #edf2f7; }
.info-list dt { color: var(--muted); font-weight: 800; }
.info-list dd { margin: 4px 0 0; font-weight: 900; }
.table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: 13px 12px; border-bottom: 1px solid #edf2f7; text-align: left; vertical-align: top; }
.admin-table th { color: var(--muted); font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; }
code, .temp-password { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; background: #f1f5f9; border-radius: 8px; padding: 3px 7px; }
.temp-password { display: inline-block; font-size: 1.15rem; padding: 10px 12px; }
.admin-form { display: grid; gap: 14px; }
.admin-form.compact-form { margin-top: 16px; }
.checkline { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; color: var(--text); }
.permissions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.permissions-grid fieldset { border: 1px solid var(--line); border-radius: 14px; padding: 12px; }
.permissions-grid legend { font-weight: 900; }
.permissions-grid label { display: block; margin-top: 8px; }
.user-list { display: grid; gap: 16px; }
.user-card { border: 1px solid var(--line); border-radius: 16px; padding: 18px; background: #fbfdff; }
.user-card-header { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.user-card h3 { margin: 0 0 4px; }
.badge-stack { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.inline-form { margin-top: 12px; }
.critical-panel { border-color: #fecaca; background: #fff7f7; }

.app-footer { margin-top: auto; display: flex; justify-content: space-between; gap: 16px; padding: 18px 32px; color: #6b7a90; font-size: .86rem; border-top: 1px solid var(--line); background: #fff; }

@media (max-width: 1100px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar { position: relative; height: auto; border-radius: 0 0 24px 24px; }
    .sidebar-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sidebar-status { display: none; }
    .kpi-grid, .dashboard-grid, .module-grid, .admin-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
    .topbar { align-items: flex-start; padding: 14px 18px; flex-direction: column; }
    .topbar-actions { flex-wrap: wrap; }
    .page { padding: 22px 16px 36px; }
    .welcome-panel { align-items: flex-start; }
    .welcome-logo { display: none; }
    .kpi-grid, .dashboard-grid, .module-tiles, .module-grid, .admin-grid, .info-list, .permissions-grid { grid-template-columns: 1fr; }
    .sidebar-nav { grid-template-columns: 1fr; }
    .app-footer { flex-direction: column; padding: 16px; }
}
.brand-login { align-items: center; }
.brand-login img { width: 170px; height: auto; display: block; }
.brand-login h1 { font-size: 1.9rem; }
@media (max-width: 520px) { .brand-login { flex-direction: column; align-items: flex-start; } }

/* HUB v0.7 - Compact professional density */
:root {
    --radius: 14px;
    --shadow: 0 14px 36px rgba(11, 35, 66, 0.09);
    --shadow-soft: 0 7px 18px rgba(11, 35, 66, 0.06);
}
.app-shell { grid-template-columns: 236px minmax(0, 1fr); }
.sidebar { padding: 18px 14px; }
.sidebar-brand { padding: 4px 10px 18px; }
.sidebar-brand img { width: 178px; }
.sidebar-nav { gap: 6px; }
.sidebar-link { padding: 10px 12px; border-radius: 12px; font-size: .95rem; }
.sidebar-icon { width: 20px; }
.sidebar-status { padding: 14px; border-radius: 14px; }
.sidebar-status strong { font-size: 1.55rem; }
.topbar { min-height: 62px; padding: 10px 24px; }
.topbar-title strong { font-size: 1.05rem; }
.topbar-title small { font-size: .86rem; }
.menu-button, .user-pill { width: 38px; height: 38px; border-radius: 10px; }
.topbar-link { padding: 8px 12px; border-radius: 10px; font-size: .92rem; }
.page { max-width: none; padding: 20px 24px 34px; }
.eyebrow { margin-bottom: 4px; font-size: .72rem; letter-spacing: .07em; }
h1 { font-size: clamp(1.85rem, 2.5vw, 2.65rem); letter-spacing: -.045em; }
h2 { font-size: 1.05rem; }
p { margin-top: 6px; }
.welcome-panel { margin-bottom: 16px; padding: 22px 24px; border-radius: 22px; }
.welcome-panel p { margin-top: 6px; }
.welcome-logo { width: 108px; height: 78px; }
.welcome-logo img { max-width: 98px; max-height: 72px; }
.kpi-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; }
.kpi-card { padding: 16px; gap: 13px; border-radius: 15px; min-height: 112px; }
.kpi-card small { font-size: .82rem; }
.kpi-card strong { font-size: 1.42rem; margin: 2px 0; }
.kpi-card p { font-size: .84rem; line-height: 1.35; }
.kpi-icon { width: 46px; height: 46px; border-radius: 14px; font-size: 1.16rem; }
.dashboard-grid { gap: 14px; grid-template-columns: 1.35fr 1fr; }
.panel { padding: 16px; border-radius: 15px; }
.panel-header { margin-bottom: 12px; }
.panel-header p { margin-top: 2px; font-size: .88rem; }
.module-tiles { gap: 10px; }
.module-tile { padding: 12px; gap: 11px; border-radius: 13px; }
.tile-icon { width: 38px; height: 38px; border-radius: 12px; }
.module-tile small { font-size: .84rem; line-height: 1.35; }
.module-tile em { margin-top: 6px; font-size: .76rem; }
.health-list { gap: 4px; }
.health-list li { padding: 7px 0; font-size: .9rem; }
.event-row { padding: 8px 0; }
.event-row p { margin: 2px 0 0; font-size: .86rem; line-height: 1.35; }
.app-footer { padding: 12px 24px; font-size: .78rem; }
.admin-card, .module-card, .placeholder { border-radius: 15px; }
.admin-table th, .admin-table td { padding: 10px; }
@media (max-width: 1300px) {
    .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar-brand img { width: 160px; }
}

/* HUB v1.0 - Administration and security controls */
.admin-form select {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px 14px;
    color: var(--text);
    background: #fff;
}
.admin-form select:focus {
    border-color: var(--primary);
    outline: 3px solid rgba(0, 109, 167, .14);
}
.inline-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 4px;
}
.inline-actions .inline-form { margin-top: 0; }
.compact-info-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .compact-info-list { grid-template-columns: 1fr; } }

/* V2.2 login premium */
.login-page-xadice{grid-template-columns:minmax(420px,620px) minmax(360px,460px);gap:34px;place-content:center;background:radial-gradient(circle at 22% 18%,rgba(0,167,216,.26),transparent 30%),linear-gradient(135deg,#041a33 0%,#00558b 52%,#0077ad 100%)}
.login-visual{color:#fff;padding:42px 48px;border-radius:34px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 34px 90px rgba(0,20,45,.25);min-height:430px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-visual::after{content:'';position:absolute;right:-90px;bottom:-120px;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.10)}.login-visual img{width:330px;max-width:80%;height:auto;margin-bottom:34px}.login-visual h2{font-size:4.6rem;line-height:.92;margin:0;letter-spacing:-.06em}.login-visual p{font-size:1.22rem;color:rgba(255,255,255,.82);margin:16px 0 0}.login-page-xadice .login-panel{width:100%;border-radius:28px;padding:38px;box-shadow:0 34px 90px rgba(0,20,45,.32)}.brand-login img{width:72px;height:72px;object-fit:contain}.login-page-xadice .form button{min-height:48px;border-radius:14px;font-size:1.02rem}.login-page-xadice .form input{min-height:46px}.login-page-xadice .login-heading h1{font-size:2rem}.login-page-xadice .login-heading{margin-bottom:30px}@media(max-width:900px){.login-page-xadice{grid-template-columns:1fr}.login-visual{display:none}.login-page-xadice .login-panel{max-width:480px;margin:auto}}


/* HUB v2.5 - Accueil premium et déploiement collaborateurs */
.login-v25 {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 42px;
    background:
        radial-gradient(circle at 12% 18%, rgba(0, 167, 216, .32), transparent 28%),
        radial-gradient(circle at 82% 8%, rgba(255,255,255,.16), transparent 24%),
        linear-gradient(135deg, #061a34 0%, #063a67 48%, #0075a8 100%);
}
.login-shell-v25 { width: min(1120px, 100%); display: grid; grid-template-columns: 1.15fr 420px; gap: 28px; align-items: stretch; }
.login-brand-v25 { color: #fff; padding: 36px; min-height: 560px; border: 1px solid rgba(255,255,255,.18); border-radius: 32px; background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.05)); box-shadow: 0 30px 90px rgba(0,0,0,.24); display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; position: relative; }
.login-brand-v25:after { content: "X"; position: absolute; right: -70px; bottom: -115px; font-size: 36rem; line-height: .72; font-weight: 900; letter-spacing: -.12em; color: rgba(255,255,255,.075); font-family: Arial, Helvetica, sans-serif; transform: rotate(-8deg); pointer-events: none; }
.login-brand-v25 img { width: 280px; height: auto; position: relative; z-index: 1; }
.eyebrow-light { margin: 0 0 8px; color: rgba(255,255,255,.72); font-weight: 900; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; }
.login-brand-copy { position: relative; z-index: 1; max-width: 620px; }
.login-brand-copy h1 { color: #fff; font-size: clamp(4rem, 10vw, 7rem); line-height: .85; letter-spacing: -.08em; margin: 0 0 16px; }
.login-brand-copy p { color: rgba(255,255,255,.84); font-size: 1.15rem; max-width: 560px; }
.login-feature-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.login-feature-grid span { border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.10); border-radius: 999px; padding: 10px 14px; color: rgba(255,255,255,.90); font-weight: 800; font-size: .88rem; }
.login-v25 .login-panel { align-self: center; }
.login-footnote { margin: 16px 0 0; font-size: .86rem; text-align: center; }

.dashboard-v25 .hero-command { display: grid; grid-template-columns: minmax(0, 1.5fr) 360px; gap: 18px; margin-bottom: 18px; }
.hero-command > div { border-radius: 24px; }
.hero-copy { padding: 28px; border: 1px solid var(--line); background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(241,248,255,.96)),
    radial-gradient(circle at 88% 18%, rgba(0, 167, 216, .18), transparent 28%); box-shadow: var(--shadow-soft); }
.hero-copy h1 { font-size: clamp(2.1rem, 4.2vw, 4.1rem); }
.hero-subtitle { max-width: 740px; font-size: 1.02rem; margin-bottom: 18px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.button-primary, .button-secondary, .button-ghost { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 10px 14px; border-radius: 12px; font-weight: 900; border: 1px solid transparent; }
.button-primary { background: linear-gradient(135deg, var(--primary), var(--primary-2)); color: #fff; box-shadow: 0 12px 24px rgba(0,109,167,.18); }
.button-secondary { background: #fff; border-color: var(--line); color: var(--primary-dark); }
.button-ghost { background: #eef7ff; color: var(--primary); border-color: #cfe8fb; }
.button-secondary.full { display: flex; width: 100%; margin-top: 14px; }
.hero-status-card { padding: 24px; border: 1px solid rgba(0,109,167,.18); background: linear-gradient(160deg, #06234a, #006da7); color: #fff; box-shadow: var(--shadow); display: flex; align-items: center; gap: 18px; }
.hero-status-card p, .hero-status-card small { color: rgba(255,255,255,.78); margin: 4px 0 0; }
.hero-status-card strong { display: block; font-size: 1.2rem; }
.status-ring { --score: 0; width: 96px; height: 96px; flex: 0 0 auto; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(#6ee7b7 calc(var(--score) * 1%), rgba(255,255,255,.18) 0); position: relative; }
.status-ring:after { content:""; position:absolute; inset:10px; border-radius:50%; background:#08365f; }
.status-ring span { position: relative; z-index: 1; color:#fff; font-weight: 950; font-size: 1.2rem; }
.compact-kpi { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.compact-kpi .kpi-card { padding: 14px; gap: 12px; border-radius: 16px; }
.compact-kpi .kpi-icon { width: 44px; height: 44px; border-radius: 14px; font-size: 1.1rem; }
.compact-kpi .kpi-card strong { font-size: 1.35rem; }
.dashboard-layout-v25 { display: grid; grid-template-columns: minmax(0, 1.55fr) 390px; gap: 18px; margin-bottom: 18px; }
.module-command-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.module-command-card { min-height: 150px; display: flex; flex-direction: column; justify-content: space-between; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(180deg, #fff, #f8fbff); transition: .16s ease; }
.module-command-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-soft); border-color: rgba(0,109,167,.36); }
.module-command-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 14px; color: #fff; background: linear-gradient(135deg, var(--primary), var(--primary-2)); font-weight: 950; margin-bottom: 14px; }
.module-command-card strong { font-size: 1.08rem; }
.module-command-card p { margin: 6px 0 12px; font-size: .92rem; }
.module-command-card small { font-weight: 900; color: var(--success); }
.right-rail-v25 { display: grid; gap: 18px; }
.mini-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.mini-checklist li { display: flex; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid #edf2f7; color: var(--text); font-weight: 750; }
.mini-checklist li:last-child { border-bottom: 0; }
.compact-health li { padding: 8px 0; }
.lower-dashboard-v25 { grid-template-columns: 1fr 1fr; }
.compact-events .event-row { padding: 9px 0; }
.compact-events .event-row p { font-size: .88rem; }
.backup-summary { padding: 14px; border: 1px solid #dbeafe; border-radius: 16px; background: #f0f7ff; margin-bottom: 12px; }
.backup-summary strong { color: var(--primary-dark); }
.backup-summary p { margin: 4px 0; }

@media (max-width: 1180px) {
    .login-shell-v25, .dashboard-v25 .hero-command, .dashboard-layout-v25 { grid-template-columns: 1fr; }
    .login-brand-v25 { min-height: 420px; }
    .module-command-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 820px) {
    .login-v25 { padding: 18px; }
    .login-shell-v25 { gap: 16px; }
    .login-brand-v25 { padding: 24px; min-height: 360px; }
    .login-brand-v25 img { width: 220px; }
    .login-feature-grid, .compact-kpi, .module-command-grid, .lower-dashboard-v25 { grid-template-columns: 1fr; }
    .hero-status-card { align-items: flex-start; }
}

/* V2.6 - Accès collaborateurs */
.access-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr);
    gap: 24px;
    align-items: center;
    background: linear-gradient(135deg, rgba(16, 54, 94, .98), rgba(22, 104, 164, .88));
    color: #fff;
    border: 0;
    box-shadow: 0 22px 55px rgba(10, 35, 65, .20);
}
.access-hero h2,
.access-hero p,
.access-hero .eyebrow { color: #fff; }
.access-hero .eyebrow { opacity: .78; }
.access-steps { display: grid; gap: 10px; }
.access-steps span {
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.18);
    font-weight: 700;
    font-size: .9rem;
}
.form-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.access-preset-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0;
}
.preset-card {
    padding: 14px;
    border-radius: 16px;
    background: #f7fafc;
    border: 1px solid #e5edf5;
}
.preset-card strong { display: block; color: #12385f; margin-bottom: 6px; }
.preset-card p { margin: 0 0 8px; font-size: .86rem; color: #526273; line-height: 1.35; }
.preset-card small { color: #748194; font-weight: 700; }
.credential-box {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 10px 16px;
    align-items: center;
    max-width: 720px;
}
.credential-box span { font-weight: 800; color: #12385f; }
.credential-box code { display: inline-block; padding: 10px 12px; border-radius: 12px; background: #fff; border: 1px solid #d8e2ee; }
.access-matrix { overflow-x: auto; }
.access-matrix table { width: 100%; border-collapse: collapse; min-width: 760px; }
.access-matrix th,
.access-matrix td {
    padding: 12px 14px;
    border-bottom: 1px solid #e8eef5;
    text-align: left;
    vertical-align: middle;
    font-size: .92rem;
}
.access-matrix th {
    color: #526273;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    background: #f8fafc;
}
.access-matrix td small { color: #748194; }
@media (max-width: 1100px) {
    .access-preset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .form-grid-3 { grid-template-columns: 1fr; }
    .access-hero { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .access-preset-grid { grid-template-columns: 1fr; }
    .credential-box { grid-template-columns: 1fr; }
}

/* V2.7 - Login épuré : suppression des pastilles marketing et grand X graphique */
.login-feature-grid{display:none!important}
.login-brand-v25 .login-brand-copy p{max-width:360px}

/* V2.9 - Invitations collaborateurs prêtes à transmettre */
.invite-message-panel .panel-header { align-items: flex-start; }
.invite-message-panel .credential-box { margin: 12px 0 14px; }
.invite-textarea {
    width: 100%;
    min-height: 190px;
    resize: vertical;
    border: 1px solid #cbd7e6;
    border-radius: 14px;
    padding: 14px 16px;
    background: #ffffff;
    color: #0f2342;
    font: 600 0.95rem/1.55 ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    box-shadow: inset 0 1px 2px rgba(15, 35, 66, .04);
}
.copy-invite-button { white-space: nowrap; }
.access-password-panel .temp-password,
.invite-message-panel .temp-password {
    font-size: 1.04rem;
    font-weight: 950;
    letter-spacing: .02em;
}
.user-card .badge-stack .status-info { background: #e8f2ff; color: #0b4a7a; }

/* HUB v3.0 — direction graphique XADICE */
:root {
    --xadice-night: #03152d;
    --xadice-night-2: #06244a;
    --xadice-blue: #006da7;
    --xadice-cyan: #00a7d8;
    --glass-line: rgba(255,255,255,.16);
    --glass-bg: rgba(8, 34, 72, .58);
    --glass-bg-2: rgba(12, 48, 96, .72);
}

body:has(.login-xadice-hero) { background: var(--xadice-night); overflow: hidden; }
.login-xadice-hero { min-height: 100vh; display: grid; grid-template-columns: 1.15fr .85fr; background: radial-gradient(circle at 52% 74%, rgba(255,255,255,.12), transparent 18%), linear-gradient(135deg, #03152d 0%, #052a56 56%, #021027 100%); color: #fff; }
.login-visual-panel { position: relative; display: flex; align-items: center; justify-content: center; min-height: 100vh; overflow: hidden; }
.login-visual-panel::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 50% 83%, rgba(255,255,255,.45), transparent 10%), linear-gradient(to top, rgba(7,56,98,.92) 0%, rgba(7,56,98,.45) 16%, transparent 48%); opacity: .88; }
.login-horizon { position: absolute; left: -10%; right: -10%; bottom: 0; height: 28%; background: linear-gradient(to top, rgba(2,22,49,.98), rgba(11,76,124,.58) 35%, transparent), radial-gradient(ellipse at center, rgba(255,255,255,.55), transparent 28%); filter: blur(.2px); }
.login-x-watermark { position: absolute; width: 980px; height: 980px; left: -240px; top: -80px; opacity: .18; transform: rotate(-18deg); background: url('../img/logo-symbol-white.png') center/contain no-repeat; }
.login-brand-logo { position: relative; z-index: 2; width: min(430px, 48vw); filter: drop-shadow(0 18px 32px rgba(0,0,0,.28)); }
.login-form-zone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px; padding: 48px; }
.login-card-premium { width: min(520px, 100%); padding: 54px 48px 42px; border-radius: 18px; background: rgba(255,255,255,.96); color: #10213f; box-shadow: 0 34px 80px rgba(0,0,0,.36); border: 1px solid rgba(255,255,255,.7); }
.login-card-premium h1 { text-align: center; font-size: 2.7rem; letter-spacing: .02em; }
.login-subtitle, .login-intro, .secure-footnote { text-align: center; }
.login-subtitle { margin: 8px 0 22px; font-size: 1.16rem; }
.login-rule { display: grid; grid-template-columns: 1fr 54px 1fr; align-items: center; gap: 0; margin: 22px 0 32px; }
.login-rule::before, .login-rule::after { content:''; height: 1px; background: #dce5ef; }
.login-rule span { height: 3px; background: #006da7; }
.login-intro { margin-bottom: 26px; }
.login-form-premium { gap: 12px; }
.login-form-premium label { margin-top: 8px; color: #263955; }
.input-icon-wrap { display: grid; grid-template-columns: 42px 1fr; align-items: center; border: 1px solid #d4dfec; border-radius: 9px; background: #fff; }
.input-icon-wrap span { text-align: center; color: #50647f; font-weight: 900; }
.input-icon-wrap input { border: 0 !important; box-shadow: none !important; padding-left: 0 !important; }
.login-form-premium button { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 16px; min-height: 54px; background: linear-gradient(135deg, #0057c2, #0079bd); }
.login-form-premium button span { font-size: 1.5rem; }
.login-copyright { color: rgba(255,255,255,.82); margin: 0; }
.secure-footnote { margin: 26px 0 0; color: #4d6079; }

.dark-shell { background: radial-gradient(circle at 67% 8%, rgba(0, 167, 216, .16), transparent 26%), linear-gradient(135deg, #021026 0%, #031a3b 55%, #010a18 100%); color: #fff; }
.dark-shell .content-shell { background: transparent; }
.dark-shell .sidebar { background: linear-gradient(180deg, rgba(2,18,43,.96), rgba(0,56,96,.88)); border-right: 1px solid rgba(255,255,255,.13); box-shadow: none; }
.dark-shell .sidebar-link { color: rgba(255,255,255,.82); background: transparent; border: 1px solid transparent; }
.dark-shell .sidebar-link:hover, .dark-shell .sidebar-link.is-active { background: linear-gradient(135deg, rgba(0,104,220,.92), rgba(0,123,190,.76)); color: #fff; border-color: rgba(255,255,255,.12); }
.sidebar-user-card { margin-top: auto; display: flex; gap: 12px; align-items: center; padding: 15px; border: 1px solid rgba(255,255,255,.13); border-radius: 16px; background: rgba(255,255,255,.04); }
.sidebar-avatar { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #0e62d8, #00a7d8); font-weight: 900; }
.sidebar-user-card strong, .sidebar-user-card small { display:block; color:#fff; }
.sidebar-user-card small { opacity:.72; }
.dark-shell .sidebar-status { background: transparent; box-shadow: none; border: 0; color: rgba(255,255,255,.54); padding: 10px 6px 0; }
.dark-shell .sidebar-status strong { display: none; }
.dark-shell .topbar-dark { background: rgba(2, 13, 31, .52); border-bottom: 1px solid rgba(255,255,255,.12); color: #fff; backdrop-filter: blur(18px); }
.dark-shell .topbar-dark small { color: rgba(255,255,255,.64); }
.dark-shell .topbar-link { color: #fff; background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.14); }
.dark-shell .topbar-link.primary { background: #0077b5; }
.dark-shell .menu-button { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.14); }

.dashboard-dark-page { width: min(100%, 1540px); padding: 28px 36px 36px; color: #fff; }
.dark-hero-dashboard { position: relative; overflow: hidden; border-radius: 0; padding: 18px 8px 20px; min-height: 260px; }
.dark-hero-dashboard::before { content:''; position:absolute; inset:-90px -80px auto 32%; height: 360px; background: radial-gradient(circle at center, rgba(255,255,255,.22), transparent 38%), linear-gradient(90deg, transparent, rgba(255,255,255,.06), transparent); opacity:.85; pointer-events:none; }
.hero-x-watermark { position: absolute; width: 520px; height: 520px; right: 110px; top: -140px; opacity: .24; background: url('../img/logo-symbol-white.png') center/contain no-repeat; transform: rotate(8deg); pointer-events:none; }
.dark-eyebrow { position:relative; margin: 0 0 10px; color: #00a7ff; text-transform: uppercase; font-weight: 800; letter-spacing: .08em; }
.dark-hero-dashboard h1 { position:relative; font-size: clamp(2.5rem, 4.4vw, 4.2rem); color: #fff; font-weight: 500; letter-spacing: -.04em; }
.dark-subtitle { position:relative; color: rgba(255,255,255,.9); font-size: 1.45rem; margin: 12px 0 34px; }
.glass-kpis { position:relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.glass-kpi, .glass-panel, .glass-module { border: 1px solid var(--glass-line); background: linear-gradient(135deg, rgba(7,41,88,.68), rgba(6,27,63,.62)); box-shadow: 0 20px 60px rgba(0,0,0,.18); backdrop-filter: blur(14px); }
.glass-kpi { display:flex; align-items:center; gap: 18px; border-radius: 12px; padding: 22px 24px; min-height: 112px; }
.glass-kpi strong { display:block; font-size: 2.15rem; line-height: 1; color:#fff; }
.glass-kpi p { margin: 6px 0 8px; color:#fff; }
.glass-kpi small { color: rgba(255,255,255,.76); }
.glass-icon { width:54px; height:54px; display:grid; place-items:center; border-radius:50%; font-size:1.6rem; font-weight:900; }
.glass-icon.cyan { color:#00c8ff; background: rgba(0,174,255,.1); }
.glass-icon.green { color:#00e1bd; background: rgba(0,225,189,.1); }
.glass-icon.purple { color:#9b5cf6; background: rgba(155,92,246,.12); }
.glass-icon.orange { color:#ff9a2e; background: rgba(255,154,46,.12); }
.dark-dashboard-grid { display:grid; grid-template-columns: 1.4fr .9fr; gap: 16px; }
.glass-panel { border-radius: 12px; padding: 22px; }
.glass-panel h2 { color:#fff; font-size: 1.25rem; margin-bottom: 18px; }
.quick-panel { grid-column: span 1; }
.glass-module-grid { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.glass-module { display:flex; flex-direction:column; min-height: 168px; border-radius: 12px; padding: 18px; color:#fff; transition: transform .16s ease, border-color .16s ease, background .16s ease; }
.glass-module:hover { transform: translateY(-2px); border-color: rgba(0,167,216,.55); background: linear-gradient(135deg, rgba(7,55,117,.75), rgba(6,36,82,.7)); }
.glass-module-icon { font-size: 2rem; margin-bottom: 12px; color:#00a7ff; }
.glass-module strong { color:#fff; }
.glass-module p { color: rgba(255,255,255,.78); font-size: .9rem; margin: 8px 0 16px; }
.glass-module em { margin-top:auto; display:flex; justify-content:space-between; align-items:center; font-style: normal; color:#fff; background: rgba(0,100,220,.8); border-radius: 8px; padding: 10px 12px; }
.glass-module.is-disabled { opacity:.72; pointer-events:none; }
.system-list-dark { list-style:none; padding:0; margin:0 0 18px; }
.system-list-dark li { display:flex; justify-content:space-between; align-items:center; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.system-list-dark span { color: rgba(255,255,255,.84); }
.system-list-dark strong.ok { color:#00e1a8; }
.system-list-dark strong.warn { color:#ffb24d; }
.glass-button { display:block; text-align:center; padding: 13px 16px; background: rgba(0,100,220,.82); border-radius: 8px; color:#fff; }
.activity-panel { min-height: 260px; }
.panel-topline { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom: 12px; }
.panel-topline h2 { margin:0; }
.panel-topline a { color:#7dd3fc; font-weight: 800; }
.dark-event-list { display:grid; gap: 0; }
.dark-event { display:grid; grid-template-columns: 28px 1fr auto; gap: 12px; align-items:start; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.dark-event span { color:#00c8ff; }
.dark-event strong { color:#fff; }
.dark-event p { color: rgba(255,255,255,.72); margin: 3px 0 0; }
.dark-event time { color: rgba(255,255,255,.52); font-size:.82rem; white-space: nowrap; }
.dark-empty { color: rgba(255,255,255,.72); }

@media (max-width: 1100px) {
    .login-xadice-hero { grid-template-columns: 1fr; overflow:auto; }
    .login-visual-panel { min-height: 36vh; }
    .login-form-zone { padding: 28px 18px; }
    .glass-kpis, .glass-module-grid, .dark-dashboard-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
    body:has(.login-xadice-hero) { overflow:auto; }
    .login-brand-logo { width: 280px; }
    .login-card-premium { padding: 34px 24px; }
    .dashboard-dark-page { padding: 22px 16px; }
    .glass-kpis, .glass-module-grid, .dark-dashboard-grid { grid-template-columns: 1fr; }
}

/* HUB v3.1 - corrections demandées */
:root {
    --hub-blue-950: #03142b;
    --hub-blue-900: #062246;
    --hub-blue-800: #063b6c;
    --hub-blue-600: #006da7;
    --hub-card-light: rgba(248, 252, 255, .96);
    --hub-card-line: rgba(186, 210, 235, .72);
}

/* Page de connexion : reprise de la direction graphique validée */
body:has(.login-xadice-hero) {
    background: #03142b;
    overflow: hidden;
}
.login-xadice-hero {
    min-height: 100vh;
    grid-template-columns: 1.08fr .92fr;
    background:
        radial-gradient(ellipse at 30% 92%, rgba(255,255,255,.38), transparent 14%),
        radial-gradient(ellipse at 42% 78%, rgba(76,139,190,.34), transparent 26%),
        linear-gradient(135deg, #021026 0%, #06325d 54%, #021026 100%);
    position: relative;
}
.login-visual-panel {
    position: relative;
    min-height: 100vh;
    display: grid;
    place-items: center;
    overflow: hidden;
    isolation: isolate;
}
.login-visual-panel::before {
    content: '';
    position: absolute;
    inset: auto -12% 0 -12%;
    height: 33%;
    background:
        linear-gradient(to top, rgba(1,15,35,.94), rgba(12,73,119,.50) 42%, transparent),
        radial-gradient(ellipse at center, rgba(255,255,255,.55), rgba(255,255,255,.16) 18%, transparent 34%);
    z-index: 1;
}
.login-visual-panel::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, transparent 0 70%, rgba(0, 0, 0, .10)),
        linear-gradient(90deg, rgba(3,20,43,.18), transparent 45%, rgba(3,20,43,.10));
    z-index: 2;
    pointer-events: none;
}
.login-x-watermark {
    width: 1040px;
    height: 1040px;
    left: -270px;
    top: -170px;
    opacity: .20;
    filter: blur(.1px);
    transform: rotate(-17deg);
    z-index: 0;
}
.login-brand-logo {
    z-index: 3;
    width: min(470px, 48vw);
    transform: translateY(6vh);
    filter: drop-shadow(0 24px 38px rgba(0,0,0,.34));
}
.login-horizon { display: none; }
.login-form-zone {
    position: relative;
    z-index: 4;
    padding: 56px 7vw 56px 4vw;
}
.login-card-premium {
    width: min(520px, 100%);
    border-radius: 18px;
    padding: 54px 48px 42px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 38px 95px rgba(0,0,0,.42);
}
.login-card-premium h1 { font-size: 2.55rem; }
.login-form-premium button { background: linear-gradient(135deg, #045ecb, #0080c5); }

/* Dashboard : modules plus clairs et plus lisibles */
.glass-kpi {
    background: linear-gradient(135deg, rgba(248,252,255,.97), rgba(226,240,254,.92));
    color: #0f2342;
    border-color: var(--hub-card-line);
}
.glass-kpi strong,
.glass-kpi p { color: #0f2342; }
.glass-kpi small { color: #52657f; }
.glass-panel.quick-panel,
.glass-panel.system-panel {
    background: linear-gradient(135deg, rgba(248,252,255,.97), rgba(225,241,254,.91));
    color: #0f2342;
    border-color: var(--hub-card-line);
}
.glass-panel.quick-panel h2,
.glass-panel.system-panel h2 { color: #0f2342; }
.glass-module {
    background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(238,247,255,.96));
    color: #0f2342;
    border-color: rgba(185, 207, 230, .85);
    box-shadow: 0 14px 32px rgba(2, 21, 48, .18);
}
.glass-module:hover {
    background: linear-gradient(180deg, #ffffff, #e9f5ff);
    border-color: rgba(0, 129, 190, .55);
}
.glass-module strong { color: #0f2342; }
.glass-module p { color: #4b5f7a; }
.glass-module-icon { color: #0077bd; }
.glass-module em {
    color: #fff;
    background: linear-gradient(135deg, #055fc7, #0084c8);
}
.glass-module.is-disabled {
    background: linear-gradient(180deg, rgba(245,248,252,.92), rgba(231,238,247,.88));
}
.system-list-dark li { border-bottom-color: rgba(15,35,66,.12); }
.system-list-dark span { color: #42536d; }
.system-list-dark strong { color: #0f2342; }
.glass-button { background: linear-gradient(135deg, #055fc7, #0084c8); }

/* Dashboard utilisateur : aucune information d'administration */
.user-dashboard .dark-hero-dashboard { min-height: 180px; }
.user-dashboard .dark-subtitle { margin-bottom: 16px; }
.user-module-home { position: relative; z-index: 2; }
.user-only-panel { max-width: 920px; }
.user-module-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.empty-access-card { pointer-events: none; opacity: .74; }
.empty-access-card em { background: #d8e6f4; color: #52657f; }

/* Cohérence CRM / Macros avec la charte HUB sombre */
.crm-page, .macros-page {
    color: #f8fbff;
}
.crm-page .crm-topbar, .macros-page .macros-hero-embedded {
    background: linear-gradient(135deg, rgba(248,252,255,.96), rgba(227,241,252,.90));
    border: 1px solid rgba(186,210,235,.72);
    border-radius: 18px;
    padding: 18px 20px;
    box-shadow: 0 18px 42px rgba(2,21,48,.18);
    color: #0f2342;
}
.crm-page .crm-topbar h1, .macros-page .macros-hero-embedded h1 { color: #0f2342; }
.crm-page .crm-topbar p, .macros-page .macros-hero-embedded p { color: #52657f; }
.crm-page .eyebrow, .macros-page .eyebrow { color: #0084c8; }

@media (max-width: 1100px) {
    .login-xadice-hero { grid-template-columns: 1fr; }
    .login-visual-panel { min-height: 42vh; }
    .login-brand-logo { transform: none; }
    .user-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    body:has(.login-xadice-hero) { overflow: auto; }
    .login-form-zone { padding: 28px 18px; }
    .user-module-grid { grid-template-columns: 1fr; }
}


/* HUB v3.2 - rationalisation navigation et densité CRM */
.sidebar-account-links {
    display: grid;
    gap: 8px;
    margin: auto 16px 14px;
}
.sidebar-account-links a {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 12px;
    border-radius: 12px;
    color: rgba(255,255,255,.86);
    text-decoration: none;
    font-weight: 850;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(255,255,255,.045);
}
.sidebar-account-links a:hover { background: rgba(255,255,255,.10); color:#fff; }
.sidebar-account-links a.logout {
    background: linear-gradient(135deg, #0567c9, #0086c9);
    color: #fff;
    border-color: rgba(72,170,230,.58);
}
.topbar-actions.compact-only { min-width: 0; }
.topbar-actions.compact-only .user-pill { display: none; }
.topbar-dark { min-height: 56px; }

.crm-page { padding-top: 10px; }
.crm-production-page .crm-topbar { display: none !important; }
.crm-toolbar.crm-toolbar-production {
    display: block;
    margin: 0 0 10px;
}
.crm-search.crm-search-production {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    padding: 8px;
    border-radius: 14px;
}
.crm-search.crm-search-production input[type=search] { min-width: 320px; flex: 1 1 460px; }
.crm-search.crm-search-production select { flex: 0 0 165px; }
.crm-search.crm-search-production .button-secondary,
.crm-search.crm-search-production .crm-new-link,
.crm-search.crm-search-production button { height: 40px; display: inline-flex; align-items:center; justify-content:center; }
.crm-db-note, .crm-rights, .status-pill.ok { display: none !important; }
.crm-kpis.crm-kpis-compact { margin-top: 0; }
.crm-main-production { margin-top: 0; }

/* Connexion : retour vers la direction graphique validée, plus ouverte */
.login-xadice-hero {
    grid-template-columns: 1.25fr .75fr;
    background:
        radial-gradient(ellipse at 30% 92%, rgba(255,255,255,.34), transparent 14%),
        radial-gradient(ellipse at 43% 82%, rgba(76,139,190,.32), transparent 24%),
        linear-gradient(135deg, #021127 0%, #06305b 52%, #03142b 100%) !important;
}
.login-visual-panel {
    justify-content: center;
    align-items: center;
}
.login-x-watermark {
    position: absolute;
    width: 1080px;
    height: 1080px;
    left: -280px;
    top: -170px;
    opacity: .22;
    background: url('../img/logo-symbol-white.png') center/contain no-repeat;
}
.login-brand-logo {
    width: min(500px, 48vw);
    transform: translateY(7vh);
}
.login-card-premium {
    width: min(470px, 100%);
    padding: 46px 42px 38px;
}
.login-form-zone { padding-right: 9vw; }
.login-card-premium h1 { font-size: 2.35rem; }

@media (max-width: 1180px) {
    .crm-search.crm-search-production { flex-wrap: wrap; }
    .crm-search.crm-search-production input[type=search] { min-width: 100%; flex-basis: 100%; }
    .crm-search.crm-search-production select { flex: 1 1 180px; }
}
@media (max-width: 860px) {
    .sidebar-account-links { margin-top: 18px; }
    .login-xadice-hero { grid-template-columns: 1fr; }
    .login-form-zone { padding: 28px 18px; }
}


/* HUB v4.0 — refonte visuelle et densité métier */
:root {
    --v4-night: #020b1c;
    --v4-navy: #051a35;
    --v4-blue: #006da7;
    --v4-cyan: #00a7d8;
    --v4-panel: rgba(255,255,255,.94);
    --v4-panel-soft: rgba(244,250,255,.92);
    --v4-line: rgba(179,204,232,.78);
}

/* Connexion : version premium réellement intégrée, sans surcharge */
body:has(.login-xadice-hero) {
    overflow: hidden;
    background: var(--v4-night);
}
.login-xadice-hero {
    min-height: 100vh;
    grid-template-columns: 56% 44% !important;
    background:
        radial-gradient(ellipse at 29% 89%, rgba(255,255,255,.36), transparent 13%),
        radial-gradient(ellipse at 37% 78%, rgba(0,167,216,.22), transparent 22%),
        linear-gradient(135deg, #021027 0%, #062a55 54%, #020a19 100%) !important;
}
.login-visual-panel {
    position: relative;
    justify-content: center !important;
    align-items: center !important;
    min-height: 100vh;
    padding-left: 6vw;
}
.login-visual-panel::before {
    opacity: .78 !important;
    background:
        linear-gradient(to top, rgba(2,14,31,.96) 0%, rgba(0,66,112,.44) 20%, transparent 54%),
        radial-gradient(ellipse at 52% 88%, rgba(255,255,255,.42), transparent 14%) !important;
}
.login-visual-panel::after {
    content: '';
    position: absolute;
    left: -8%; right: -8%; bottom: -10%; height: 32%;
    background:
        linear-gradient(to top, rgba(1,11,26,.92), transparent),
        radial-gradient(ellipse at 45% 45%, rgba(255,255,255,.22), transparent 24%);
    pointer-events: none;
}
.login-horizon { opacity: .5; }
.login-x-watermark {
    width: 1000px !important;
    height: 1000px !important;
    left: -310px !important;
    top: -80px !important;
    opacity: .20 !important;
    transform: rotate(-16deg) !important;
    filter: blur(.2px);
}
.login-brand-logo {
    position: relative;
    z-index: 3;
    width: min(430px, 36vw) !important;
    transform: translate(-3vw, 8vh) !important;
    filter: drop-shadow(0 22px 42px rgba(0,0,0,.34));
}
.login-form-zone {
    align-items: flex-start !important;
    padding: 56px 7vw 56px 2vw !important;
}
.login-card-premium {
    width: min(430px, 100%) !important;
    padding: 48px 42px 38px !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.965) !important;
    box-shadow: 0 38px 90px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.9) !important;
}
.login-card-premium h1 { font-size: 2.55rem !important; }
.login-subtitle { font-size: 1.06rem !important; color: #586b86; }
.login-intro { color: #5b6d86; }
.input-icon-wrap { min-height: 48px; border-radius: 11px !important; }
.login-form-premium button { min-height: 52px; border-radius: 11px; }
.login-copyright { width: min(430px, 100%); text-align: center; }

/* Navigation : les actions restent à gauche, topbar sobre */
.topbar-actions.compact-only { display: none !important; }
.sidebar-account-links { margin-top: 18px !important; }
.sidebar-user-card { margin-top: 14px !important; }

/* Dashboard : cartes plus claires pour augmenter le contraste */
.glass-kpi,
.glass-panel,
.glass-module {
    background: linear-gradient(135deg, rgba(247,252,255,.96), rgba(227,241,253,.88)) !important;
    border-color: rgba(197,219,239,.72) !important;
    color: #0f2342 !important;
    box-shadow: 0 18px 44px rgba(2,18,43,.20) !important;
}
.glass-panel h2,
.glass-module strong,
.glass-kpi strong,
.glass-kpi p { color: #0f2342 !important; }
.glass-kpi small,
.glass-module p { color: #54667f !important; }
.glass-module em,
.glass-button { background: linear-gradient(135deg, #075fc1, #0087c9) !important; color: #fff !important; }
.system-list-dark span { color: #34465f !important; }
.system-list-dark li { border-bottom-color: rgba(15,35,66,.10) !important; }
.dark-event strong { color: #0f2342 !important; }
.dark-event p { color: #52657f !important; }
.dark-event time { color: #6b7a90 !important; }
.dark-empty { color: #52657f !important; }

/* Dashboard utilisateur : tableau sobre, sans données système */
.user-module-home .glass-panel {
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,247,255,.92)) !important;
}
.user-only-panel h2 { color: #0f2342 !important; }
.empty-access-card { opacity: .72; }

/* CRM : aucune ligne marketing en haut, actions sur la ligne de recherche */
.crm-page { background: #f3f6fb !important; }
.crm-production-page .crm-topbar { display: none !important; }
.crm-toolbar-production { margin-top: 0 !important; }
.crm-search-production {
    background: rgba(255,255,255,.96) !important;
    border: 1px solid #d9e4f0 !important;
    box-shadow: 0 10px 26px rgba(15,35,66,.08) !important;
}
.crm-db-note, .crm-rights, .status-pill.ok { display: none !important; }
.crm-column { background: #e8e5df !important; }
.crm-card { background: #fff !important; }

/* Macros : même base visuelle que HUB/CRM */
.macros-page,
.macros-hub-page {
    background: #f3f6fb !important;
    color: #0f2342 !important;
}
.macros-page .macros-hero-embedded,
.macros-page .macro-card,
.macros-page .macros-panel,
.macros-page .catalog-card,
.macros-page .search-panel {
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,247,255,.92)) !important;
    border: 1px solid #d9e4f0 !important;
    color: #0f2342 !important;
    box-shadow: 0 10px 28px rgba(15,35,66,.08) !important;
}
.macros-page h1,
.macros-page h2,
.macros-page h3,
.macros-page strong { color: #0f2342 !important; }
.macros-page p,
.macros-page small { color: #52657f !important; }

@media (max-width: 1100px) {
    .login-xadice-hero { grid-template-columns: 1fr !important; overflow: auto; }
    body:has(.login-xadice-hero) { overflow: auto; }
    .login-visual-panel { min-height: 34vh; padding-left: 0; }
    .login-brand-logo { width: min(320px, 70vw) !important; transform: none !important; }
    .login-form-zone { align-items: center !important; padding: 26px 18px 40px !important; }
}

/* HUB v4.1 — tableau de bord métier et contraste */
.dashboard-v41 .glass-kpi,
.dashboard-v41 .glass-panel,
.dashboard-v41 .glass-module {
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(232,244,255,.90)) !important;
    color: #092447 !important;
    border-color: rgba(194,216,236,.84) !important;
    box-shadow: 0 18px 55px rgba(0, 28, 66, .22) !important;
}
.dashboard-v41 .glass-kpi p,
.dashboard-v41 .glass-kpi small,
.dashboard-v41 .glass-module p,
.dashboard-v41 .system-list-dark span,
.dashboard-v41 .dark-event p,
.dashboard-v41 .dark-empty { color: #4f6380 !important; }
.dashboard-v41 .glass-kpi strong,
.dashboard-v41 .glass-module strong,
.dashboard-v41 .glass-panel h2,
.dashboard-v41 .system-list-dark strong { color: #0a2344 !important; }
.dashboard-v41 .glass-module em,
.dashboard-v41 .glass-button { background: linear-gradient(135deg, #005fca, #008ed0) !important; color: #fff !important; }
.dashboard-v41 .glass-module.is-disabled em { background: #d9e6f4 !important; color: #59708d !important; }
.dashboard-v41 .dark-event,
.dashboard-v41 .priority-row { border-color: rgba(15, 50, 90, .10) !important; }
.user-dashboard-grid { grid-template-columns: minmax(0, 1.2fr) 420px; }
.user-only-panel .glass-module-grid { grid-template-columns: repeat(3, minmax(180px, 1fr)); }
.priority-list { display: grid; gap: 10px; }
.priority-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; background: rgba(255,255,255,.70); }
.priority-row strong { color: #0a2344; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.priority-row small { color: #526985; font-weight: 800; }
.priority-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 28px; border-radius: 999px; font-weight: 900; font-size: .78rem; }
.priority-badge.p1 { background: #fee2e2; color: #b91c1c; }
.priority-badge.p2 { background: #fef3c7; color: #a16207; }
.priority-badge.p3 { background: #dbeafe; color: #1d4ed8; }
.admin-priority-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1100px) { .user-dashboard-grid { grid-template-columns: 1fr; } .admin-priority-list { grid-template-columns: 1fr; } }


/* HUB v4.2 — refonte réelle de la page de connexion */
html:has(.login-xadice-hero),
body:has(.login-xadice-hero) {
    min-height: 100%;
    background: #03162d !important;
    overflow: hidden;
}
.login-xadice-hero {
    min-height: 100vh !important;
    width: 100vw;
    display: grid !important;
    grid-template-columns: minmax(640px, 1.18fr) minmax(480px, .82fr) !important;
    background:
        radial-gradient(circle at 48% 86%, rgba(255,255,255,.30), transparent 8%),
        radial-gradient(circle at 28% 20%, rgba(0,128,196,.28), transparent 28%),
        linear-gradient(135deg, #041229 0%, #062a55 50%, #020b1d 100%) !important;
    color: #fff;
    position: relative;
    isolation: isolate;
}
.login-xadice-hero::before {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: 34vh;
    background:
        linear-gradient(to top, rgba(1,11,29,.96), rgba(3,47,88,.70) 42%, transparent 100%),
        radial-gradient(ellipse at 32% 58%, rgba(255,255,255,.52), rgba(255,255,255,.10) 15%, transparent 32%),
        linear-gradient(180deg, transparent 0%, rgba(28,107,164,.32) 58%, rgba(5,27,59,.92) 100%);
    opacity: .88;
    pointer-events: none;
    z-index: -1;
}
.login-xadice-hero::after {
    content: '';
    position: absolute;
    left: -4vw;
    right: -4vw;
    bottom: 17vh;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.38), transparent);
    opacity: .55;
    z-index: -1;
}
.login-visual-panel {
    position: relative !important;
    min-height: 100vh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 0 6vw !important;
}
.login-visual-panel::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background:
        linear-gradient(90deg, rgba(2,13,31,.30), transparent 42%, rgba(2,13,31,.06)),
        radial-gradient(circle at 35% 84%, rgba(0,169,222,.20), transparent 24%) !important;
    opacity: 1 !important;
}
.login-visual-panel::after {
    content: '';
    position: absolute;
    width: min(70vw, 980px);
    height: min(70vw, 980px);
    left: -18vw;
    top: -10vh;
    background: url('../img/logo-symbol-white.png') center/contain no-repeat;
    opacity: .135;
    transform: rotate(-18deg);
    filter: blur(.1px);
    pointer-events: none;
}
.login-x-watermark {
    display: none !important;
}
.login-horizon {
    display: none !important;
}
.login-brand-logo {
    position: relative !important;
    z-index: 2 !important;
    width: min(520px, 42vw) !important;
    max-width: 92% !important;
    transform: translate(-2vw, 4vh) !important;
    filter: drop-shadow(0 24px 48px rgba(0,0,0,.34)) !important;
}
.login-form-zone {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 100vh !important;
    padding: 56px 7vw 56px 36px !important;
}
.login-card-premium {
    width: min(500px, 100%) !important;
    padding: 50px 48px 42px !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,.965) !important;
    color: #10213f !important;
    border: 1px solid rgba(255,255,255,.82) !important;
    box-shadow:
        0 34px 90px rgba(0, 0, 0, .34),
        inset 0 1px 0 rgba(255,255,255,.95) !important;
    backdrop-filter: blur(18px);
}
.login-card-premium h1 {
    margin: 0 !important;
    text-align: center !important;
    color: #10213f !important;
    font-size: 3rem !important;
    line-height: 1 !important;
    letter-spacing: .015em !important;
    font-weight: 900 !important;
}
.login-subtitle {
    margin: 12px 0 22px !important;
    text-align: center !important;
    color: #61718a !important;
    font-size: 1.18rem !important;
}
.login-rule {
    display: grid !important;
    grid-template-columns: 1fr 64px 1fr !important;
    align-items: center !important;
    margin: 20px 0 34px !important;
}
.login-rule::before,
.login-rule::after {
    content: '' !important;
    height: 1px !important;
    background: #d9e3ee !important;
}
.login-rule span {
    height: 3px !important;
    background: linear-gradient(90deg, #005fca, #00a7d8) !important;
}
.login-intro {
    margin: 0 0 30px !important;
    text-align: center !important;
    color: #61718a !important;
}
.login-form-premium {
    gap: 14px !important;
}
.login-form-premium label {
    margin: 2px 0 2px !important;
    color: #183252 !important;
    font-weight: 900 !important;
}
.input-icon-wrap {
    display: grid !important;
    grid-template-columns: 44px 1fr !important;
    align-items: center !important;
    border: 1px solid #d2deeb !important;
    border-radius: 10px !important;
    background: #fff !important;
    min-height: 52px !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9) !important;
}
.input-icon-wrap:focus-within {
    border-color: #007fc1 !important;
    box-shadow: 0 0 0 4px rgba(0,127,193,.12) !important;
}
.input-icon-wrap span {
    color: #55708e !important;
    font-weight: 900 !important;
}
.input-icon-wrap input {
    min-height: 50px !important;
    font-size: 1rem !important;
    color: #10213f !important;
    background: transparent !important;
}
.login-form-premium button {
    margin-top: 18px !important;
    min-height: 58px !important;
    border-radius: 12px !important;
    background: linear-gradient(135deg, #005fca 0%, #008fd1 100%) !important;
    font-size: 1.02rem !important;
    box-shadow: 0 14px 30px rgba(0, 96, 202, .28) !important;
}
.login-footnote.secure-footnote {
    margin-top: 26px !important;
    color: #64748b !important;
}
.login-footnote.secure-footnote::before {
    content: '◇ ';
}
.login-copyright {
    color: rgba(255,255,255,.82) !important;
    text-align: center !important;
    font-size: .95rem !important;
    margin: 0 !important;
}
@media (max-width: 1050px) {
    .login-xadice-hero { grid-template-columns: 1fr !important; overflow: auto !important; }
    body:has(.login-xadice-hero) { overflow: auto !important; }
    .login-visual-panel { min-height: 36vh !important; padding: 24px !important; }
    .login-visual-panel::after { width: 620px; height: 620px; left: -120px; top: -140px; }
    .login-brand-logo { width: min(360px, 78vw) !important; transform: none !important; }
    .login-form-zone { min-height: auto !important; padding: 24px 18px 44px !important; }
    .login-card-premium { padding: 34px 26px !important; }
}

/* HUB v4.2 — module Macros harmonisé avec la charte sombre */
.dark-shell .macros-page {
    background: radial-gradient(circle at 70% 0%, rgba(0,167,216,.12), transparent 26%), #f3f6fb !important;
}
.macros-page .macros-hero-embedded {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    align-items: end;
    margin-bottom: 18px;
    padding: 26px 30px !important;
    border-radius: 22px !important;
}
.macros-page .macros-hero-embedded h1 {
    margin: 0 0 8px !important;
    font-size: clamp(2rem, 3vw, 3rem) !important;
    letter-spacing: -.04em;
}
.macros-page .search-panel,
.macros-page .summary,
.macros-page .results,
.macros-page .tool-card,
.macros-page .macro-card {
    border-radius: 18px !important;
}

/* HUB v5.0 — refonte front-end majeure */
:root {
    --v5-navy:#061b35;
    --v5-navy-2:#082848;
    --v5-blue:#006fc9;
    --v5-cyan:#00a8e8;
    --v5-ink:#0a1d38;
    --v5-muted:#63738b;
    --v5-card:#ffffff;
    --v5-line:#d8e3f0;
}
body:has(.login-premium-v5) { overflow:hidden; }
.login-premium-v5 {
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(620px, 1.05fr) minmax(520px, .95fr);
    background: radial-gradient(circle at 36% 82%, rgba(14,166,220,.22), transparent 27%), linear-gradient(135deg,#061b35 0%,#063a66 48%,#041529 100%);
    color:#fff;
}
.login-v5-visual { position:relative; overflow:hidden; min-height:100vh; }
.login-v5-scene {
    position:absolute; inset:0;
    background-image:url('../img/login-scene.jpg');
    background-size:cover; background-position:center center;
    transform:scale(1.01);
    filter:saturate(1.05) contrast(1.03);
}
.login-v5-overlay {
    position:absolute; inset:0;
    background:linear-gradient(90deg, rgba(4,21,41,.05) 0%, rgba(4,21,41,.18) 72%, rgba(4,21,41,.82) 100%);
}
.login-v5-form-zone {
    position:relative;
    display:flex; flex-direction:column; justify-content:center; align-items:center;
    min-height:100vh; padding:64px 72px 48px;
    background:
        radial-gradient(circle at 28% 20%, rgba(0,168,232,.18), transparent 32%),
        linear-gradient(135deg, rgba(5,25,48,.96), rgba(2,12,25,.90));
}
.login-v5-card {
    width:min(100%, 560px);
    padding:56px 58px 44px;
    border-radius:16px;
    background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,251,255,.96));
    color:var(--v5-ink);
    box-shadow:0 34px 80px rgba(0,0,0,.32), 0 0 0 1px rgba(255,255,255,.80) inset;
}
.login-v5-card h1 { margin:0; text-align:center; font-size:3rem; line-height:1; letter-spacing:-.04em; color:#13233d; }
.login-v5-subtitle { text-align:center; color:#60718a; margin:16px 0 24px; font-size:1.15rem; }
.login-v5-rule { display:flex; align-items:center; justify-content:center; height:1px; margin:0 0 34px; background:#d8e2ee; }
.login-v5-rule span { width:64px; height:4px; border-radius:99px; background:linear-gradient(90deg,#006fc9,#00a8e8); }
.login-v5-intro { text-align:center; margin:0 0 28px; color:#5f708a; }
.login-v5-form { display:grid; gap:13px; }
.login-v5-form label { color:#223551; font-weight:900; font-size:.94rem; }
.login-v5-input { display:flex; align-items:center; gap:10px; height:56px; border:1px solid #d6e2ef; border-radius:10px; background:#fff; padding:0 14px; }
.login-v5-input span { width:20px; text-align:center; color:#55708f; font-size:.9rem; }
.login-v5-input input { flex:1; min-width:0; border:0; outline:0; background:transparent; height:100%; color:#10213b; font-size:1rem; }
.login-v5-input:focus-within { border-color:#1677c8; box-shadow:0 0 0 4px rgba(22,119,200,.12); }
.login-v5-options { display:flex; justify-content:space-between; align-items:center; margin:6px 0 12px; color:#31445f; font-size:.93rem; }
.login-v5-options label { display:flex; gap:8px; align-items:center; font-weight:500; }
.login-v5-options input { width:20px; height:20px; accent-color:#0875ce; }
.login-v5-options span { color:#0060b9; }
.login-v5-form button { display:flex; justify-content:center; align-items:center; gap:24px; height:58px; border:0; border-radius:8px; background:linear-gradient(135deg,#075ed0,#00a2e1); color:#fff; font-weight:950; box-shadow:0 16px 28px rgba(0,100,190,.24); cursor:pointer; }
.login-v5-form button:hover { filter:brightness(1.04); transform:translateY(-1px); }
.login-v5-separator { display:flex; gap:18px; align-items:center; margin:32px 0 18px; color:#6c7c91; }
.login-v5-separator span { flex:1; height:1px; background:#dfe6ef; }
.login-v5-separator em { font-style:normal; }
.login-v5-secure { margin:0; text-align:center; color:#5c6d83; }
.login-v5-copyright { margin:28px 0 0; color:rgba(255,255,255,.82); font-size:.95rem; }
.login-v5-card .alert { margin-bottom:18px; }

/* Layout premium plus clair et homogène */
.dark-shell .sidebar { background:linear-gradient(180deg,#07192f 0%, #092a4c 58%, #043d66 100%); }
.dark-shell .content-shell { background:#07172b; }
.dashboard-dark-page { max-width:none; padding:28px 34px 46px; background:#07172b; }
.dark-hero-dashboard {
    position:relative; overflow:hidden; border-radius:0; padding:34px 34px 26px; margin:-28px -34px 22px;
    background:
      linear-gradient(90deg, rgba(7,23,43,1) 0%, rgba(8,44,76,.86) 48%, rgba(7,23,43,.55) 100%),
      radial-gradient(circle at 72% 48%, rgba(0,168,232,.22), transparent 30%);
}
.dark-hero-dashboard::after { content:""; position:absolute; right:60px; top:-150px; width:540px; height:540px; opacity:.18; background:url('../img/logo-symbol-white.png') center/contain no-repeat; transform:rotate(-8deg); }
.dark-hero-dashboard > * { position:relative; z-index:1; }
.dark-eyebrow { color:#00b6ff; font-size:.82rem; letter-spacing:.14em; font-weight:950; }
.dark-hero-dashboard h1 { color:#fff; font-size:clamp(2.4rem,4vw,4.2rem); }
.dark-subtitle { color:#dbeafe; font-size:1.26rem; }
.glass-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:28px; }
.glass-kpi, .glass-panel {
    background:rgba(255,255,255,.92) !important;
    border:1px solid rgba(218,230,244,.92) !important;
    box-shadow:0 24px 58px rgba(0,0,0,.18) !important;
    color:#0b213c !important;
}
.glass-kpi { border-radius:14px; padding:20px; display:flex; gap:18px; align-items:center; }
.glass-kpi strong { color:#0a1d38; font-size:2rem; }
.glass-kpi p { color:#0f2342; font-weight:900; margin:0; }
.glass-kpi small, .glass-panel p, .system-list-dark span, .priority-row small { color:#5c6d84 !important; }
.dark-dashboard-grid { display:grid; grid-template-columns:1.25fr .85fr; gap:20px; }
.glass-panel { border-radius:16px; padding:24px; }
.glass-panel h2 { color:#0b213c; }
.glass-module-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.glass-module {
    background:linear-gradient(180deg,#fff,#f4f8fd) !important;
    border:1px solid #d8e4f1 !important;
    border-radius:13px; padding:18px; min-height:190px;
    box-shadow:0 10px 22px rgba(9,31,62,.08);
    color:#0b213c !important;
}
.glass-module:hover { transform:translateY(-3px); box-shadow:0 22px 40px rgba(9,31,62,.14); }
.glass-module-icon { background:linear-gradient(135deg,#e8f5ff,#ffffff); color:#0278d4; border:1px solid #d3e7f8; }
.glass-module strong { color:#0b213c; }
.glass-module em, .glass-button { background:linear-gradient(135deg,#0866d6,#079fdd) !important; color:white !important; border-radius:8px; }
.system-list-dark li { border-bottom:1px solid #e0e8f2; }
.system-list-dark strong.ok { color:#009b72 !important; }
.system-list-dark strong.warn { color:#d98a00 !important; }
.priority-row { background:#f7fbff !important; border:1px solid #dde9f6; }
.priority-row strong { color:#0b213c; }
.user-dashboard .dark-hero-dashboard { padding-bottom:34px; }
.user-dashboard-grid { grid-template-columns:1fr; }
.user-module-grid { grid-template-columns:repeat(3,minmax(0,280px)); }

/* CRM v5 — application plus dense et plus claire */
.crm-page { background:#eef4fb !important; padding:18px 22px 14px !important; }
.crm-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0 0 12px !important; }
.crm-kpis article { background:#fff !important; border:1px solid #d5e2f0 !important; border-radius:14px !important; padding:14px 18px !important; box-shadow:0 12px 28px rgba(7,23,43,.08) !important; }
.crm-toolbar-production { margin-bottom:12px !important; }
.crm-search-production { border-radius:14px !important; padding:10px !important; border-color:#d5e2f0 !important; box-shadow:0 12px 28px rgba(7,23,43,.08) !important; }
.crm-search button, .crm-new-link { background:linear-gradient(135deg,#0866d6,#079fdd) !important; border:0 !important; }
.crm-main-production { display:block !important; }
.crm-board-production { grid-template-columns:1fr 1fr 1fr !important; gap:14px !important; }
.crm-column { background:#f4f7fb !important; border:1px solid #d5e2f0 !important; border-radius:14px !important; max-height:calc(100vh - 250px) !important; }
.crm-column-title { background:#fff !important; border-bottom:1px solid #d5e2f0 !important; padding:12px 14px !important; }
.crm-card { border-color:#dbe5f2 !important; border-radius:12px !important; box-shadow:0 8px 18px rgba(7,23,43,.08) !important; }
.crm-card:hover,.crm-card.is-selected { border-color:#079fdd !important; box-shadow:0 18px 32px rgba(7,23,43,.15) !important; }
.crm-detail { border-left:1px solid #d5e2f0 !important; box-shadow:-30px 0 70px rgba(7,23,43,.24) !important; }
.crm-card-actions button { background:#fff !important; }

/* Macros v5 — même charte que le CRM */
.macros-page main, .macros-standalone main { padding:18px 22px !important; }
.macros-hero-embedded { background:linear-gradient(135deg,#ffffff,#eef7ff) !important; border-radius:16px !important; box-shadow:0 18px 40px rgba(7,23,43,.12) !important; }
.macros-standalone .search-panel,.macros-standalone .summary,.macros-standalone .results,.macros-standalone .tool-card { border-radius:14px !important; box-shadow:0 12px 28px rgba(7,23,43,.08) !important; background:#fff !important; }
.macros-standalone .chip.active { background:linear-gradient(135deg,#0866d6,#079fdd) !important; }
.macros-standalone button:hover,.macros-standalone .chip:hover { border-color:#079fdd !important; }

@media (max-width:1200px){
 .login-premium-v5{grid-template-columns:1fr}.login-v5-visual{display:none}.login-v5-form-zone{padding:36px 20px}.glass-kpis,.glass-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dark-dashboard-grid{grid-template-columns:1fr}.crm-board-production{grid-template-columns:1fr!important}.crm-column{max-height:none!important}
}
@media (max-width:720px){.login-v5-card{padding:34px 24px}.login-v5-options{display:none}.glass-kpis,.glass-module-grid,.user-module-grid{grid-template-columns:1fr}.dashboard-dark-page{padding:20px 16px}.dark-hero-dashboard{margin:-20px -16px 18px;padding:28px 20px}}

/* HUB v5.1 — direction graphique validée XADICE
   Fond bleu commun, un seul X en filigrane, cartes blanches, vert XADICE en accent parcimonieux. */
:root{
    --xadice-green:#8cc63f;
    --xadice-green-dark:#35a853;
    --xadice-green-soft:rgba(140,198,63,.16);
    --xadice-deep:#061b35;
    --xadice-page:#07172b;
    --xadice-card:#ffffff;
    --xadice-card-soft:#f7fbff;
    --xadice-text:#0a1d38;
    --xadice-muted:#5d6e86;
    --xadice-border:#d8e4f1;
}

/* Fond applicatif commun à toutes les pages authentifiées */
.dark-shell .content-shell{
    position:relative;
    background:
        radial-gradient(circle at 76% 14%, rgba(0,167,216,.16), transparent 26%),
        linear-gradient(135deg,#07172b 0%,#082d52 52%,#061426 100%) !important;
    overflow:hidden;
}
.dark-shell .content-shell::before{
    content:"";
    position:fixed;
    right:4vw;
    top:78px;
    width:min(760px,52vw);
    height:min(760px,52vw);
    background:url('../img/logo-symbol-white.png') center/contain no-repeat;
    opacity:.105;
    transform:rotate(-9deg);
    pointer-events:none;
    z-index:0;
}
.dark-shell .content-shell > *{position:relative;z-index:1;}
.dark-shell .page,
.dark-shell .crm-page,
.dark-shell .macros-page,
.dark-shell .admin-page{
    background:transparent !important;
}

/* Sidebar : vert uniquement sur sélection / hover */
.dark-shell .sidebar-link:hover,
.dark-shell .sidebar-link.is-active{
    background:linear-gradient(135deg,rgba(140,198,63,.95),rgba(35,169,87,.86)) !important;
    color:#fff !important;
    border-color:rgba(255,255,255,.18) !important;
    box-shadow:0 14px 28px rgba(34,197,94,.18) !important;
}
.dark-shell .sidebar-account-links a:hover,
.dark-shell .sidebar-account-links a.logout:hover{
    border-color:var(--xadice-green) !important;
    box-shadow:0 0 0 1px var(--xadice-green-soft) inset !important;
}
.sidebar-avatar,
.user-pill{
    background:linear-gradient(135deg,var(--xadice-green),var(--xadice-green-dark)) !important;
}
.sidebar-status i{background:var(--xadice-green) !important;}

/* Dashboard : une seule marque X en filigrane. Suppression du doublon ancien. */
.dark-hero-dashboard{
    background:transparent !important;
    margin:0 0 20px !important;
    padding:34px 0 26px !important;
    min-height:auto !important;
}
.dark-hero-dashboard::before,
.dark-hero-dashboard::after,
.hero-x-watermark{
    display:none !important;
}
.dark-eyebrow{
    color:var(--xadice-green) !important;
    letter-spacing:.18em !important;
}
.dark-hero-dashboard h1,
.dark-subtitle{
    color:#fff !important;
}
.dark-subtitle{font-size:1.18rem !important;}

/* Cartes blanches et contraste élevé */
.glass-kpis{margin-top:26px !important;}
.glass-kpi,
.glass-panel,
.glass-module,
.admin-panel,
.admin-card,
.module-card,
.placeholder{
    background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%) !important;
    border:1px solid var(--xadice-border) !important;
    color:var(--xadice-text) !important;
    box-shadow:0 22px 52px rgba(4,18,38,.22) !important;
    backdrop-filter:none !important;
    transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease !important;
}
.glass-kpi:hover,
.glass-panel:hover,
.glass-module:hover,
.admin-panel:hover,
.admin-card:hover,
.module-card:hover,
.placeholder:hover{
    border-color:var(--xadice-green) !important;
    box-shadow:0 24px 56px rgba(4,18,38,.22),0 0 0 1px var(--xadice-green-soft) !important;
}
.glass-kpi strong,
.glass-panel h2,
.glass-module strong,
.system-list-dark strong,
.priority-row strong{
    color:var(--xadice-text) !important;
}
.glass-kpi p,
.glass-module p,
.glass-panel p,
.system-list-dark span,
.priority-row small{
    color:var(--xadice-muted) !important;
}
.glass-icon.green,
.glass-module-icon,
.tile-icon{
    color:var(--xadice-green-dark) !important;
    background:var(--xadice-green-soft) !important;
    border:1px solid rgba(140,198,63,.28) !important;
}
.glass-icon.cyan{color:#0077b5 !important;background:#e8f6ff !important;}
.glass-icon.purple{color:#7c3aed !important;background:#f2eaff !important;}
.glass-icon.orange{color:#f97316 !important;background:#fff2e2 !important;}
.glass-module em,
.glass-button,
.crm-search button,
.crm-new-link,
.login-v5-form button,
.admin-form button{
    background:linear-gradient(135deg,#0873d1,#0098dc) !important;
}
.glass-module em:hover,
.glass-button:hover,
.crm-search button:hover,
.crm-new-link:hover,
.admin-form button:hover{
    box-shadow:0 0 0 2px var(--xadice-green-soft),0 14px 26px rgba(6,103,190,.20) !important;
}
.panel-topline a,
.system-list-dark strong.ok,
.dark-shell a:not(.sidebar-link):not(.glass-module):not(.crm-card):not(.button-secondary):hover{
    color:var(--xadice-green-dark) !important;
}
.system-list-dark li,
.dark-event,
.health-list li{border-color:#e3ebf5 !important;}
.dark-event strong,
.dark-event p,
.dark-event time{color:var(--xadice-text) !important;}
.dark-event span{color:var(--xadice-green-dark) !important;}

/* Dashboard utilisateur : mêmes règles, sans info système */
.user-dashboard-grid .glass-panel,
.user-dashboard-grid .glass-module{background:linear-gradient(180deg,#fff,#f8fbff) !important;}
.empty-access-card{border-style:dashed !important;}

/* CRM : même fond global + cartes blanches + vert en hover */
.crm-page{
    color:var(--xadice-text) !important;
}
.crm-title-block h1{color:#fff !important;}
.crm-title-block p{color:rgba(255,255,255,.82) !important;}
.crm-production-page .crm-topbar{
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    padding:8px 0 12px !important;
}
.crm-kpis article,
.crm-search,
.crm-column,
.crm-detail,
.crm-card,
.crm-note,
.crm-detail .admin-form{
    background:linear-gradient(180deg,#fff,#f8fbff) !important;
    border-color:var(--xadice-border) !important;
    color:var(--xadice-text) !important;
}
.crm-kpis article:hover,
.crm-search:hover,
.crm-column:hover,
.crm-card:hover,
.crm-card.is-selected{
    border-color:var(--xadice-green) !important;
    box-shadow:0 18px 36px rgba(4,18,38,.18),0 0 0 1px var(--xadice-green-soft) !important;
}
.crm-column-title{
    background:#ffffff !important;
    border-color:var(--xadice-border) !important;
}
.crm-column-title h2::before{color:var(--xadice-green-dark) !important;}
.crm-column-late .crm-column-title h2::before{color:#d92d20 !important;}
.crm-column-upcoming .crm-column-title h2::before{color:#0077b5 !important;}
.crm-card strong,
.crm-detail-head h2,
.crm-kpis strong{color:var(--xadice-text) !important;}
.crm-card p,
.crm-card small,
.crm-detail label{color:var(--xadice-muted) !important;}
.crm-card-actions button:hover{border-color:var(--xadice-green) !important;background:#f3fbec !important;}

/* Macros : alignement CRM / HUB */
.dark-shell .macros-page,
.macros-page main,
.macros-standalone main{
    background:transparent !important;
    color:var(--xadice-text) !important;
}
.macros-hero-embedded{
    background:transparent !important;
    color:#fff !important;
    border:0 !important;
    box-shadow:none !important;
    padding:18px 0 10px !important;
}
.macros-hero-embedded h1{color:#fff !important;}
.macros-hero-embedded .eyebrow{color:var(--xadice-green) !important;}
.macros-hero-embedded .subtitle{color:rgba(255,255,255,.82) !important;}
.macros-hero-embedded .stats{
    background:#fff !important;
    border:1px solid var(--xadice-border) !important;
    color:var(--xadice-text) !important;
}
.macros-standalone .search-panel,
.macros-standalone .summary,
.macros-standalone .results,
.macros-standalone .tool-card{
    background:linear-gradient(180deg,#fff,#f8fbff) !important;
    border-color:var(--xadice-border) !important;
}
.macros-standalone .search-panel:hover,
.macros-standalone .summary:hover,
.macros-standalone .results:hover,
.macros-standalone .tool-card:hover{
    border-color:var(--xadice-green) !important;
    box-shadow:0 18px 36px rgba(4,18,38,.16),0 0 0 1px var(--xadice-green-soft) !important;
}
.macros-standalone .chip.active{
    background:linear-gradient(135deg,var(--xadice-green),var(--xadice-green-dark)) !important;
    border-color:var(--xadice-green) !important;
}
.macros-standalone button:hover,
.macros-standalone .chip:hover{border-color:var(--xadice-green) !important;}

/* Login v5.1 : rééquilibrage visuel, logo moins isolé, profondeur accrue */
.login-premium-v5{
    grid-template-columns:minmax(660px,1.08fr) minmax(520px,.92fr) !important;
    background:linear-gradient(135deg,#041429 0%,#052b51 54%,#020b18 100%) !important;
}
.login-v5-visual::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 46% 84%, rgba(255,255,255,.52), transparent 12%),linear-gradient(to top, rgba(5,31,58,.98), rgba(6,47,85,.54) 34%, transparent 62%);
    z-index:2;
    pointer-events:none;
}
.login-v5-visual::after{
    content:"";
    position:absolute;
    left:7%;
    top:3%;
    width:980px;
    height:980px;
    background:url('../img/logo-symbol-white.png') center/contain no-repeat;
    opacity:.16;
    transform:rotate(-17deg);
    z-index:3;
    pointer-events:none;
}
.login-v5-overlay{background:linear-gradient(90deg,rgba(3,16,31,.22) 0%,rgba(3,16,31,.12) 64%,rgba(3,16,31,.88) 100%) !important;z-index:4;}
.login-v5-form-zone{background:linear-gradient(135deg,rgba(4,21,41,.88),rgba(2,11,23,.98)) !important;}
.login-v5-card:hover{box-shadow:0 36px 86px rgba(0,0,0,.34),0 0 0 1px rgba(140,198,63,.28) inset !important;}

@media(max-width:1200px){
    .dark-shell .content-shell::before{width:620px;height:620px;right:-120px;}
}

/* HUB v5.2 — consolidation visuelle et usage quotidien
   - un seul X filigrane global
   - cartes blanches conservées
   - vert XADICE réservé aux états OK, hover et actions secondaires
   - raccourcis CRM opérationnels */
:root{--xadice-green:#8cc63f;--xadice-green-strong:#35a853;--xadice-green-soft:rgba(140,198,63,.18);}
.dark-shell .content-shell::before{
    right:clamp(24px,7vw,120px) !important;
    top:96px !important;
    width:min(720px,46vw) !important;
    height:min(720px,46vw) !important;
    opacity:.095 !important;
    transform:rotate(-7deg) !important;
}
.dashboard-v52 .glass-kpi{position:relative;text-decoration:none;min-height:110px;}
.dashboard-v52 .glass-kpi>b{margin-left:auto;color:var(--xadice-green-strong);font-size:1.45rem;}
.dashboard-v52 .glass-kpi:hover,
.dashboard-v52 .glass-module:hover,
.dashboard-v52 .glass-panel:hover{border-color:var(--xadice-green)!important;transform:translateY(-2px);}
.dashboard-v52 .glass-module-icon{border-radius:18px;display:grid;place-items:center;width:52px;height:52px;margin-bottom:12px;}
.dashboard-v52 .dark-hero-dashboard{padding-top:28px!important;}
.dashboard-v52 .glass-kpis{margin-top:24px!important;}
.dashboard-v52 .system-list-dark strong.ok{color:var(--xadice-green-strong)!important;}
.crm-focusbar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;}
.crm-focusbar a{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(216,228,241,.96);background:linear-gradient(180deg,#fff,#f7fbff);color:#0a1d38;border-radius:999px;padding:8px 12px;font-size:.82rem;font-weight:950;text-decoration:none;box-shadow:0 8px 18px rgba(4,18,38,.08);}
.crm-focusbar a:hover,.crm-focusbar a.is-active{border-color:var(--xadice-green);box-shadow:0 12px 22px rgba(4,18,38,.12),0 0 0 1px var(--xadice-green-soft);}
.crm-focusbar a.is-active{background:#f3fbec;color:#215d2f;}
.crm-focusbar a.reset{color:#52657f;background:#fff;}
.crm-production-page .crm-toolbar{margin-bottom:8px!important;}
.crm-production-page .crm-search{border-radius:14px!important;}
.crm-production-page .crm-kpis article{border-radius:14px!important;}
.macros-standalone .tool-card{border-radius:16px!important;}
.macros-standalone .tool-card:hover .tool-title{color:#134b78;}
.login-v5-form button:hover{box-shadow:0 16px 32px rgba(0,100,190,.24),0 0 0 3px var(--xadice-green-soft)!important;}
@media(max-width:900px){.crm-focusbar{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.crm-focusbar a{white-space:nowrap}.dashboard-v52 .glass-kpi>b{display:none}}

/* =========================
   HUB v6.0 — Production design system
   ========================= */
:root {
    --xadice-blue-950:#061b35;
    --xadice-blue-900:#082647;
    --xadice-blue-800:#0b355f;
    --xadice-blue-700:#0a4d7f;
    --xadice-blue-600:#006da7;
    --xadice-green:#7abf49;
    --xadice-green-soft:#e8f6df;
    --v6-card:#ffffff;
    --v6-line:rgba(16,46,86,.14);
    --v6-muted:#60718a;
    --v6-shadow:0 22px 55px rgba(1,18,43,.18);
    --v6-shadow-soft:0 12px 30px rgba(1,18,43,.10);
}
body { background: radial-gradient(circle at 82% 7%, rgba(122,191,73,.16), transparent 26%), radial-gradient(circle at 10% 8%, rgba(0,109,167,.18), transparent 28%), linear-gradient(135deg, #06213f 0%, #0b3156 42%, #eef5fb 42%, #f6f9fc 100%) !important; }
.app-shell.dark-shell { background: transparent; }
.content-shell { background: transparent; position:relative; }
.content-shell::before { content:'X'; position:fixed; right:5vw; top:12vh; font-weight:950; font-size:min(58vw,780px); line-height:.7; color:rgba(255,255,255,.065); pointer-events:none; z-index:0; }
.content-shell > * { position:relative; z-index:1; }
.sidebar { background: linear-gradient(180deg, rgba(6,27,53,.96), rgba(8,38,71,.94)) !important; border-right:1px solid rgba(255,255,255,.10); box-shadow: 18px 0 55px rgba(1,18,43,.24); }
.sidebar-brand { border-bottom:1px solid rgba(255,255,255,.10); margin-bottom:12px; }
.sidebar-link { color:rgba(255,255,255,.78); border:1px solid transparent; transition:.16s ease; }
.sidebar-link:hover, .sidebar-link.is-active { background:rgba(255,255,255,.10); border-color:rgba(122,191,73,.55); color:#fff; transform:translateX(2px); }
.sidebar-account-links { border-top:1px solid rgba(255,255,255,.10); border-bottom:1px solid rgba(255,255,255,.10); padding:12px 0; margin:16px 0; display:grid; gap:6px; }
.sidebar-account-links a { color:rgba(255,255,255,.72); padding:8px 12px; border-radius:12px; font-weight:800; }
.sidebar-account-links a:hover { color:#fff; background:rgba(122,191,73,.14); }
.sidebar-account-links .logout { color:#ffe0e0; }
.sidebar-user-card { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); }
.sidebar-avatar { background: linear-gradient(135deg, var(--xadice-green), #a2d36c); color:#082647; }
.topbar.topbar-dark { background:rgba(255,255,255,.78); backdrop-filter:blur(16px); border-bottom:1px solid rgba(255,255,255,.42); color:#082647; }
.topbar-title small { color:#60718a; }
.app-footer { background:rgba(255,255,255,.76); backdrop-filter:blur(14px); }

/* Login premium */
.login-v6 { min-height:100vh; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr); background:#061b35; overflow:hidden; }
.login-v6-art { position:relative; min-height:100vh; padding:42px; display:flex; flex-direction:column; justify-content:space-between; color:#fff; isolation:isolate; background: linear-gradient(135deg, #061b35, #0a4d7f 58%, #0b355f); }
.login-v6-art::after { content:''; position:absolute; inset:0; background:linear-gradient(115deg, rgba(255,255,255,.08), transparent 34%, rgba(122,191,73,.12)); z-index:-1; }
.login-v6-glow { position:absolute; border-radius:999px; filter:blur(8px); opacity:.7; z-index:-1; }
.login-v6-glow-a { width:420px; height:420px; background:rgba(0,166,216,.26); left:8%; top:8%; }
.login-v6-glow-b { width:520px; height:520px; background:rgba(122,191,73,.18); right:-10%; bottom:8%; }
.login-v6-xmark { position:absolute; right:-4vw; top:15vh; font-size:min(47vw,640px); font-weight:950; line-height:.78; color:rgba(255,255,255,.075); letter-spacing:-.12em; }
.login-v6-brand img { width:210px; height:auto; }
.login-v6-copy { max-width:720px; }
.login-v6-pill { display:inline-flex; width:max-content; padding:8px 13px; border:1px solid rgba(122,191,73,.48); background:rgba(122,191,73,.14); color:#dff4cd; border-radius:999px; font-weight:900; letter-spacing:.02em; }
.login-v6-copy h1 { margin:22px 0 10px; color:#fff; font-size:clamp(4rem, 9vw, 8rem); line-height:.82; letter-spacing:-.08em; }
.login-v6-copy p { max-width:520px; color:rgba(255,255,255,.78); font-size:1.18rem; line-height:1.55; }
.login-v6-panel { display:grid; place-items:center; padding:38px; background:linear-gradient(180deg,#f7fbff,#eef5fb); }
.login-v6-card { width:min(100%,430px); background:rgba(255,255,255,.94); border:1px solid rgba(10,77,127,.16); border-radius:32px; padding:34px; box-shadow:0 28px 80px rgba(1,18,43,.18); }
.login-v6-card-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:24px; }
.login-v6-card-head img { max-width:172px; height:auto; }
.login-v6-card-head span { padding:6px 10px; border-radius:999px; background:var(--xadice-green-soft); color:#315f1d; font-weight:900; font-size:.78rem; }
.login-v6-card h2 { font-size:2.2rem; margin:0; color:#082647; }
.login-v6-card p { color:#60718a; }
.login-v6-form { display:grid; gap:11px; margin-top:22px; }
.login-v6-form label { color:#1d3557; font-weight:900; font-size:.84rem; }
.login-v6-form input { height:48px; border:1px solid #cbd9e7; border-radius:14px; padding:0 14px; background:#fff; color:#082647; font-size:1rem; }
.login-v6-form input:focus { border-color:var(--xadice-green); box-shadow:0 0 0 4px rgba(122,191,73,.16); outline:none; }
.login-v6-form button { height:50px; margin-top:8px; border:0; border-radius:14px; background:linear-gradient(135deg, var(--xadice-blue-700), var(--xadice-blue-600)); color:#fff; font-weight:950; font-size:1rem; cursor:pointer; box-shadow:0 12px 28px rgba(0,109,167,.26); }
.login-v6-form button:hover { box-shadow:0 0 0 4px rgba(122,191,73,.18), 0 18px 34px rgba(0,109,167,.30); }
.login-v6-footnote { margin:20px 0 0; font-size:.86rem; }
.alert { background:#fff1f2; border:1px solid #fecdd3; color:#9f1239; border-radius:14px; padding:10px 12px; font-weight:800; }

/* Generic v6 layout */
.hub-page-v6 { color:#082647; }
.hub-hero-v6 { position:relative; overflow:hidden; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; min-height:190px; padding:30px; border-radius:28px; margin-bottom:18px; background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(236,246,255,.93)); border:1px solid rgba(255,255,255,.70); box-shadow:var(--v6-shadow); }
.hub-hero-v6.compact { align-items:center; min-height:150px; }
.hub-x-watermark { position:absolute; right:20px; top:8px; font-size:260px; line-height:.75; font-weight:950; color:rgba(0,109,167,.055); letter-spacing:-.11em; pointer-events:none; }
.hub-eyebrow { position:relative; z-index:1; margin:0 0 8px; color:var(--xadice-blue-600); text-transform:uppercase; letter-spacing:.1em; font-size:.75rem; font-weight:950; }
.hub-hero-v6 h1 { position:relative; z-index:1; margin:0; color:#082647; font-size:clamp(2rem, 4vw, 4.2rem); line-height:.94; letter-spacing:-.07em; }
.hub-hero-v6 p { position:relative; z-index:1; color:#60718a; max-width:740px; }
.v6-hero-search { position:relative; z-index:1; display:flex; min-width:min(410px, 42vw); background:#fff; border:1px solid rgba(10,77,127,.14); border-radius:18px; padding:7px; box-shadow:var(--v6-shadow-soft); }
.v6-hero-search input { flex:1; min-width:0; border:0; padding:0 12px; font-weight:800; color:#082647; }
.v6-hero-search input:focus { outline:0; }
.v6-hero-search button { width:42px; border:0; border-radius:12px; background:var(--xadice-blue-700); color:#fff; font-weight:950; }
.hub-card-v6 { background:rgba(255,255,255,.96); border:1px solid rgba(255,255,255,.70); border-radius:24px; padding:22px; box-shadow:var(--v6-shadow-soft); transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.hub-card-v6:hover { border-color:rgba(122,191,73,.65); box-shadow:0 0 0 1px rgba(122,191,73,.18), var(--v6-shadow); }
.v6-card-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.v6-card-head h2 { margin:0; font-size:1.05rem; letter-spacing:-.02em; }
.v6-card-head a { color:var(--xadice-blue-600); font-weight:950; }
.v6-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.v6-kpi { display:block; background:#fff; border:1px solid rgba(16,46,86,.13); border-radius:22px; padding:18px; color:#082647; box-shadow:var(--v6-shadow-soft); transition:.15s ease; }
.v6-kpi:hover { border-color:var(--xadice-green); transform:translateY(-2px); }
.v6-kpi span { display:block; color:#60718a; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; font-weight:950; }
.v6-kpi strong { display:block; margin:8px 0 4px; font-size:2rem; line-height:1; }
.v6-kpi small { color:#60718a; font-weight:800; }
.v6-dashboard-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:18px; align-items:start; }
.v6-modules-panel { grid-row:span 2; }
.v6-module-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.v6-module-card { display:flex; gap:14px; align-items:flex-start; padding:16px; border-radius:18px; background:linear-gradient(180deg,#fff,#f7fbff); border:1px solid rgba(16,46,86,.12); color:#082647; transition:.15s ease; }
.v6-module-card:hover { border-color:var(--xadice-green); transform:translateY(-2px); }
.v6-module-mark { flex:0 0 46px; height:46px; display:grid; place-items:center; border-radius:16px; background:linear-gradient(135deg,var(--xadice-blue-700),var(--xadice-blue-600)); color:#fff; font-size:.75rem; font-weight:950; letter-spacing:.04em; }
.v6-module-card strong { display:block; font-size:1rem; }
.v6-module-card p { margin:4px 0 8px; color:#60718a; font-size:.9rem; line-height:1.35; }
.v6-module-card small { color:#315f1d; background:var(--xadice-green-soft); border-radius:999px; padding:4px 8px; font-weight:900; font-size:.73rem; }
.v6-priority-list, .v6-event-list { display:grid; gap:10px; }
.v6-priority-row { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:10px; border:1px solid rgba(16,46,86,.11); border-radius:14px; color:#082647; background:#fff; }
.v6-priority-row:hover { border-color:var(--xadice-green); }
.v6-priority-row small { color:#60718a; font-weight:800; }
.v6-health-list { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.v6-health-list li { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:10px; background:#fff; border:1px solid rgba(16,46,86,.10); border-radius:14px; }
.v6-health-list span { width:11px; height:11px; border-radius:999px; background:#f59e0b; }
.v6-health-list span.ok { background:var(--xadice-green); }
.v6-health-list em { font-style:normal; color:#60718a; font-weight:900; }
.v6-event-list > div { padding:10px; background:#fff; border:1px solid rgba(16,46,86,.10); border-radius:14px; }
.v6-event-list strong { display:block; font-size:.86rem; }
.v6-event-list p { margin:4px 0; color:#334761; font-size:.9rem; }
.v6-event-list small { color:#60718a; }
.user-access-v6 { margin-bottom:18px; }
.user-modules-only { grid-template-columns:repeat(3,minmax(0,1fr)); }
.v6-empty-state { padding:24px; border-radius:16px; background:#f7fbff; color:#60718a; }
.global-search-form { position:relative; z-index:1; width:min(100%,780px); display:flex; gap:10px; margin-top:18px; }
.global-search-form input { flex:1; border:1px solid rgba(16,46,86,.16); border-radius:16px; padding:14px 16px; }
.global-search-form button { border:0; border-radius:16px; padding:0 18px; background:var(--xadice-blue-700); color:#fff; font-weight:950; }
.search-results-list { display:grid; gap:10px; }
.search-result-row { display:grid; grid-template-columns:92px 1fr auto; gap:10px; align-items:center; padding:13px; border:1px solid rgba(16,46,86,.10); border-radius:16px; color:#082647; background:#fff; }
.search-result-row:hover { border-color:var(--xadice-green); }
.search-result-row span { width:max-content; padding:4px 8px; border-radius:999px; background:#e8f2ff; color:var(--xadice-blue-700); font-weight:950; font-size:.75rem; }
.search-result-row p { grid-column:2/4; margin:0; color:#60718a; }
.search-result-row small { color:#60718a; font-weight:800; }

@media (max-width:1100px){
    .login-v6{grid-template-columns:1fr}.login-v6-art{min-height:44vh}.login-v6-panel{padding:26px}.v6-kpi-grid,.v6-dashboard-grid{grid-template-columns:1fr 1fr}.v6-modules-panel{grid-row:auto}.user-modules-only{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
    .hub-hero-v6{display:block;padding:22px}.v6-hero-search{min-width:0;width:100%;margin-top:18px}.v6-kpi-grid,.v6-dashboard-grid,.v6-module-grid,.user-modules-only{grid-template-columns:1fr}.search-result-row{grid-template-columns:1fr}.search-result-row p{grid-column:auto}.login-v6-art{padding:28px}.login-v6-copy h1{font-size:4rem}.login-v6-card{padding:26px;border-radius:24px}
}

/* V6.1 - Centre d'actions */
.notifications-page-v6 .hub-hero-v6 { margin-bottom: 18px; }
.action-center-card { max-width: 1120px; }
.action-count-badge { display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:0 12px; border-radius:999px; background:var(--xadice-green-soft); color:#315f1d; font-weight:950; font-size:.8rem; }
.action-list-v6 { display:grid; gap:12px; }
.action-list-v6.compact { gap:9px; }
.action-item-v6 { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:14px; border-radius:17px; background:#fff; border:1px solid rgba(16,46,86,.12); color:#082647; box-shadow:0 8px 24px rgba(9,44,83,.06); transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.action-item-v6:hover { transform:translateY(-2px); border-color:var(--xadice-green); box-shadow:0 0 0 1px rgba(122,191,73,.18), 0 16px 36px rgba(9,44,83,.12); }
.action-item-v6 strong { display:block; font-size:.96rem; letter-spacing:-.01em; }
.action-item-v6 p { margin:3px 0 0; color:#60718a; font-size:.88rem; line-height:1.35; }
.action-item-v6 em { font-style:normal; color:var(--xadice-blue-600); font-weight:950; font-size:.82rem; }
.action-level-dot { width:12px; height:12px; border-radius:999px; background:#94a3b8; box-shadow:0 0 0 4px rgba(148,163,184,.14); }
.action-item-v6.level-success .action-level-dot { background:var(--xadice-green); box-shadow:0 0 0 4px rgba(122,191,73,.18); }
.action-item-v6.level-info .action-level-dot { background:var(--xadice-blue-600); box-shadow:0 0 0 4px rgba(0,109,167,.15); }
.action-item-v6.level-warning .action-level-dot { background:#f59e0b; box-shadow:0 0 0 4px rgba(245,158,11,.16); }
.action-item-v6.level-critical .action-level-dot { background:#dc2626; box-shadow:0 0 0 4px rgba(220,38,38,.14); }
.action-list-v6.compact .action-item-v6 { grid-template-columns:auto 1fr; padding:11px 12px; box-shadow:none; }
.action-list-v6.compact .action-item-v6 em { display:none; }
@media (max-width:760px){ .action-item-v6{grid-template-columns:auto 1fr}.action-item-v6 em{display:none} }

/* =========================
   HUB v6.3 — stabilisation demandée
   ========================= */
:root{--v63-green:#7abf49;--v63-green-soft:rgba(122,191,73,.20);--v63-red:#d92d20;--v63-orange:#f59e0b;}
.topbar.topbar-dark{display:none!important;}
.content-shell{padding-top:0!important;}
.app-footer{display:none!important;}
.sidebar-account-links a:not(.logout){display:none!important;}
.sidebar-account-links{border-top:1px solid rgba(255,255,255,.10)!important;border-bottom:0!important;padding:10px 0!important;margin:14px 0!important;}
.sidebar-user-card{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;}
.sidebar-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:950;letter-spacing:.02em;}
.dark-shell .content-shell::before{display:none!important;}
.content-shell::before{content:'X'!important;position:fixed!important;right:clamp(20px,7vw,110px)!important;top:84px!important;width:auto!important;height:auto!important;background:none!important;font-size:min(54vw,760px)!important;line-height:.72!important;color:rgba(255,255,255,.075)!important;opacity:1!important;transform:rotate(-7deg)!important;z-index:0!important;pointer-events:none!important;}
.dark-shell .content-shell,.content-shell{background:linear-gradient(135deg,#061b35 0%,#0b3156 48%,#eef5fb 48%,#f6f9fc 100%)!important;}

/* Login : retour visuel validé, sans mention inutile */
.login-v5-secure,.login-v5-separator{display:none!important;}
.login-premium-v5{grid-template-columns:minmax(620px,1.05fr) minmax(520px,.95fr)!important;background:radial-gradient(circle at 36% 82%,rgba(14,166,220,.22),transparent 27%),linear-gradient(135deg,#061b35 0%,#063a66 48%,#041529 100%)!important;}
.login-v5-visual::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 46% 84%,rgba(255,255,255,.52),transparent 12%),linear-gradient(to top,rgba(5,31,58,.98),rgba(6,47,85,.54) 34%,transparent 62%);z-index:2;pointer-events:none;}
.login-v5-visual::after{content:"";position:absolute;left:-8%;top:-6%;width:980px;height:980px;background:url('../img/logo-symbol-white.png') center/contain no-repeat;opacity:.18;transform:rotate(-18deg);z-index:3;pointer-events:none;}
.login-v5-scene{background-image:url('../img/login-scene.jpg')!important;background-size:cover!important;background-position:center!important;}
.login-v5-overlay{background:linear-gradient(90deg,rgba(3,16,31,.18) 0%,rgba(3,16,31,.08) 60%,rgba(3,16,31,.86) 100%)!important;z-index:4;}
.login-v5-form-zone{background:linear-gradient(135deg,rgba(4,21,41,.88),rgba(2,11,23,.98))!important;}
.login-v5-card{width:min(100%,560px)!important;padding:56px 58px 44px!important;border-radius:16px!important;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,251,255,.96))!important;box-shadow:0 34px 80px rgba(0,0,0,.32),0 0 0 1px rgba(255,255,255,.80) inset!important;}
.login-v5-options{margin-bottom:18px!important;}
.login-v5-copyright{color:rgba(255,255,255,.82)!important;}

/* Dashboard simplifié */
.dashboard-v63{padding-top:28px!important;}
.hub-hero-v63{min-height:auto!important;padding:0!important;margin:0 0 20px!important;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;display:block!important;}
.hub-hero-v63 h1{color:#fff!important;font-size:clamp(2.3rem,4vw,3.6rem)!important;}
.hub-hero-v63 p{color:rgba(255,255,255,.86)!important;}
.hub-hero-v63 .hub-eyebrow{color:var(--v63-green)!important;}
.v63-kpi-grid .v6-kpi{background:linear-gradient(180deg,#fff,#f8fbff)!important;border-color:rgba(216,228,241,.96)!important;}
.v63-kpi-grid .v6-kpi:hover,.v63-dashboard-grid .hub-card-v6:hover{border-color:var(--v63-green)!important;box-shadow:0 18px 40px rgba(4,18,38,.16),0 0 0 1px var(--v63-green-soft)!important;}
.v6-kpi.health-ok{border-color:rgba(122,191,73,.55)!important;}
.v6-kpi.health-warning{border-color:rgba(245,158,11,.65)!important;}
.v6-kpi.health-critical{border-color:rgba(217,45,32,.75)!important;}
.v6-kpi.health-ok strong{color:#1f7a3d!important;}.v6-kpi.health-warning strong{color:#b45309!important;}.v6-kpi.health-critical strong{color:#b42318!important;}
.v63-dashboard-grid{grid-template-columns:1.2fr .8fr!important;align-items:start!important;}
.v63-dashboard-grid .hub-card-v6{background:linear-gradient(180deg,#fff,#f8fbff)!important;border-color:rgba(216,228,241,.96)!important;}
.v63-module-card .v6-module-mark{display:none!important;}
.v63-module-card small{display:none!important;}
.v63-module-card{min-height:112px!important;}
.v63-health-card{align-self:start!important;}
.v63-health-ok{display:grid;gap:4px;padding:18px;border:1px solid rgba(122,191,73,.45);background:#f2faed;border-radius:16px;color:#174f2a;}
.v63-health-ok strong{font-size:1.2rem;}.v63-health-ok span{color:#315f1d;}
.v63-health-details{margin-top:12px!important;}
.v6-health-list li.issue-critical span{background:var(--v63-red)!important;}.v6-health-list li.issue-warning span{background:var(--v63-orange)!important;}
.user-access-v6>p{display:none!important;}

/* CRM : suppression des options inutiles, cartes alignées */
.crm-focusbar,.crm-view-switch,.crm-card-actions{display:none!important;}
.crm-production-page .crm-toolbar{margin-bottom:12px!important;}
.crm-production-page .crm-search{display:flex!important;align-items:center!important;gap:10px!important;}
.crm-board-production .crm-card{height:172px!important;min-height:172px!important;display:grid!important;grid-template-rows:auto auto 1fr auto!important;position:relative!important;padding:14px 16px!important;overflow:hidden!important;}
.crm-board-production .crm-card strong{padding-right:54px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.crm-board-production .crm-card small{display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.crm-board-production .crm-card p{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical!important;overflow:hidden!important;min-height:62px!important;line-height:1.35!important;margin:6px 0!important;}
.crm-board-production .crm-card .crm-priority{position:absolute!important;right:12px!important;top:12px!important;}
.crm-date-row{margin-top:auto!important;}
.crm-list-view{display:none!important;}

/* Macros : nettoyage des textes et contraste titre */
.macros-page-v63 .macros-hero-embedded{background:transparent!important;border:0!important;box-shadow:none!important;padding:8px 0 16px!important;color:#fff!important;}
.macros-page-v63 .macros-hero-embedded::after{display:none!important;}
.macros-page-v63 .macros-hero-embedded h1{color:#fff!important;text-shadow:0 2px 18px rgba(0,0,0,.22);}
.macros-page-v63 .macros-hero-embedded .stats{background:linear-gradient(180deg,#fff,#f8fbff)!important;border:1px solid rgba(216,228,241,.96)!important;color:#0f2342!important;}
.macros-page-v63 .macros-hero-embedded .stats small{color:#60718a!important;}
.macros-page-v63 .hint,.macros-page-v63 .subtitle,.macros-page-v63 .eyebrow{display:none!important;}
.macros-standalone .tool-card{min-height:210px;}

@media(max-width:1100px){.topbar.topbar-dark{display:none!important}.v63-dashboard-grid{grid-template-columns:1fr!important}.content-shell::before{font-size:620px!important;right:-160px!important}.crm-board-production .crm-card{height:auto!important;min-height:154px!important}}
@media(max-width:720px){.login-premium-v5{grid-template-columns:1fr!important}.login-v5-visual{display:none!important}.login-v5-form-zone{padding:32px 18px!important}.login-v5-card{padding:34px 24px!important}.dashboard-v63{padding-top:20px!important}}
.dark-shell .content-shell::before{display:block!important;}


/* =========================
   HUB v6.4 — stabilisation graphique et fonctionnelle
   ========================= */
:root{--v64-green:#7abf49;--v64-green-soft:rgba(122,191,73,.22);}
/* Login validé : image complète, scroll disponible */
body:has(.login-premium-v5){overflow:auto!important;min-height:100vh!important;}
.login-premium-v5{min-height:100vh!important;grid-template-columns:minmax(58vw,1fr) minmax(460px,42vw)!important;background:#061b35!important;overflow:visible!important;}
.login-v5-visual{min-height:100vh!important;}
.login-v5-scene{background-image:url('../img/login-scene.jpg')!important;background-size:cover!important;background-position:center bottom!important;filter:none!important;}
.login-v5-visual::before,.login-v5-visual::after{display:none!important;}
.login-v5-overlay{background:linear-gradient(90deg,rgba(2,13,26,.06) 0%,rgba(2,13,26,.12) 60%,rgba(2,13,26,.70) 100%)!important;}
.login-v5-form-zone{min-height:100vh!important;overflow-y:auto!important;padding:56px 7vw!important;background:linear-gradient(135deg,rgba(5,24,45,.94),rgba(2,12,24,.99))!important;}
.login-v5-card{width:min(100%,520px)!important;padding:46px 52px!important;border-radius:14px!important;}
.login-v5-card h1{font-size:3rem!important;}
.login-v5-secure,.login-v5-separator{display:none!important;}

/* Fond intérieur validé : bleu profond + un seul X filigrane */
body:not(:has(.login-premium-v5)){background:linear-gradient(135deg,#061b35 0%,#082647 52%,#0b355f 100%)!important;}
.dark-shell .content-shell,.content-shell{background:linear-gradient(135deg,#061b35 0%,#082647 52%,#0b355f 100%)!important;}
.content-shell::before{content:'X'!important;position:fixed!important;right:4vw!important;top:8vh!important;font-size:min(52vw,760px)!important;line-height:.72!important;font-weight:950!important;color:rgba(255,255,255,.065)!important;opacity:1!important;transform:rotate(-6deg)!important;background:none!important;z-index:0!important;pointer-events:none!important;}

/* Menu : partie navigation en haut, fonctions en bas */
.sidebar{overflow-y:auto!important;}
.sidebar-nav{margin-bottom:18px!important;}
.sidebar-account-links{margin-top:auto!important;margin-bottom:10px!important;border-top:1px solid rgba(255,255,255,.16)!important;padding-top:16px!important;}
.sidebar-account-links .logout{display:flex!important;justify-content:center!important;align-items:center!important;min-height:44px!important;background:linear-gradient(135deg,#0673c9,#00a4dc)!important;color:#fff!important;border-radius:14px!important;font-weight:950!important;}
.sidebar-user-card{margin-top:0!important;margin-bottom:10px!important;}
.sidebar-status{margin-top:0!important;}
.sidebar-link:hover,.sidebar-link.is-active{border-color:var(--v64-green)!important;box-shadow:inset 0 0 0 1px var(--v64-green-soft)!important;}

/* Titres : un seul titre par page */
.hub-hero-v63{margin-bottom:18px!important;}
.hub-hero-v63 h1{font-size:clamp(2.25rem,3.8vw,3.35rem)!important;}
.hub-hero-v63 .hub-eyebrow{display:none!important;}

/* Cartes blanches, hover vert plus visible */
.hub-card-v6,.v6-kpi,.admin-card,.admin-panel,.module-card,.crm-card,.tool-card,.search-panel,.summary,.results{background:linear-gradient(180deg,#fff,#f8fbff)!important;border:1px solid rgba(216,228,241,.98)!important;}
.hub-card-v6:hover,.v6-kpi:hover,.admin-card:hover,.admin-panel:hover,.module-card:hover,.crm-card:hover,.tool-card:hover,.v6-module-card:hover{border-color:var(--v64-green)!important;box-shadow:0 0 0 2px var(--v64-green-soft),0 18px 42px rgba(1,18,43,.16)!important;}

/* Dashboard */
.dashboard-v63{padding-top:26px!important;}
.v63-dashboard-grid{align-items:start!important;}
.v63-health-card{align-self:start!important;}
.v6-module-card{border-width:1px!important;}
.v6-module-card:hover{border-width:1px!important;}
.v6-module-card p{margin-top:6px!important;}

/* Administration : raccourcis rationalisés et homogènes */
.admin-nav{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:10px!important;}
.admin-nav a{display:flex!important;align-items:center!important;justify-content:center!important;min-height:42px!important;text-align:center!important;border-radius:14px!important;}
.admin-nav a:hover,.admin-nav a.is-active{box-shadow:0 0 0 2px var(--v64-green-soft)!important;}
.admin-header .eyebrow{display:none!important;}
.admin-grid{align-items:stretch!important;}
.admin-card{min-height:180px!important;}
.admin-card .button-secondary{margin-top:auto!important;width:max-content!important;}

/* CRM figé : Kanban fixe, cartes régulières */
.crm-board-production .crm-card{height:172px!important;min-height:172px!important;max-height:172px!important;}
.crm-board-production .crm-card p{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical!important;overflow:hidden!important;min-height:58px!important;}
.crm-board-production .crm-card small:empty{display:block!important;min-height:20px!important;}
.crm-focusbar,.crm-view-switch,.crm-card-actions,.global-search,.action-center-card{display:none!important;}

/* Macros : conserver la structure, meilleure lisibilité */
.macros-page-v63 .macros-hero-embedded h1{color:#fff!important;}
.macros-standalone .tool-card{min-height:210px!important;}
.macros-standalone .tool-card:hover{border-color:var(--v64-green)!important;}

@media(max-width:920px){.login-premium-v5{grid-template-columns:1fr!important}.login-v5-visual{display:none!important}.login-v5-form-zone{padding:36px 20px!important}.login-v5-card{padding:34px 24px!important}.content-shell::before{right:-180px!important;font-size:620px!important}.sidebar-account-links{margin-top:20px!important}}


/* =========================
   HUB v6.6 — corrections graphiques limitées
   Périmètre strict : login plein écran, assets HD, fond intérieur unique.
   ========================= */
:root{--v65-blue-bg:#061b35;--v65-blue-bg-2:#082647;}

/* Login : image validée sur toute la largeur, formulaire fonctionnel conservé */
body:has(.login-premium-v5){
    min-height:100vh!important;
    overflow:auto!important;
    background:#061b35!important;
}
.login-premium-v5{
    position:relative!important;
    display:block!important;
    min-height:100vh!important;
    overflow:visible!important;
    background-image:url('../img/login-background.png')!important;
    background-size:cover!important;
    background-position:center bottom!important;
    background-repeat:no-repeat!important;
}
.login-premium-v5::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    background:linear-gradient(90deg,rgba(2,13,26,.00) 0%,rgba(2,13,26,.04) 52%,rgba(2,13,26,.26) 100%)!important;
    pointer-events:none!important;
    z-index:0!important;
}
.login-v5-visual{display:none!important;}
.login-v5-form-zone{
    position:relative!important;
    z-index:1!important;
    min-height:100vh!important;
    width:100%!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:flex-end!important;
    padding:56px clamp(48px,7vw,132px) 56px 48px!important;
    background:transparent!important;
    overflow-y:auto!important;
}
.login-v5-card{
    width:min(520px,100%)!important;
    padding:46px 52px!important;
    border-radius:14px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.985),rgba(248,251,255,.965))!important;
    box-shadow:0 34px 80px rgba(0,0,0,.28),0 0 0 1px rgba(255,255,255,.82) inset!important;
}
.login-v5-copyright{
    width:min(520px,100%)!important;
    text-align:center!important;
    color:rgba(255,255,255,.86)!important;
    margin:22px 0 0!important;
}
.login-v5-secure,.login-v5-separator{display:none!important;}
@media(max-width:920px){
    .login-premium-v5{background-position:38% center!important;}
    .login-v5-form-zone{align-items:center!important;padding:32px 20px!important;}
    .login-v5-card{padding:34px 24px!important;}
}

/* Pages internes : fond bleu uni + logo X bleu HD en filigrane discret, identique partout */
body:not(:has(.login-premium-v5)){
    background:linear-gradient(135deg,var(--v65-blue-bg) 0%,var(--v65-blue-bg-2) 52%,#0b355f 100%)!important;
}
.dark-shell .content-shell,.content-shell{
    position:relative!important;
    background:linear-gradient(135deg,var(--v65-blue-bg) 0%,var(--v65-blue-bg-2) 52%,#0b355f 100%)!important;
}
.content-shell::before{
    content:""!important;
    position:fixed!important;
    right:clamp(-160px,-6vw,-40px)!important;
    top:clamp(56px,8vh,110px)!important;
    width:min(116vw,1640px)!important;
    height:min(116vw,1640px)!important;
    background:url('../img/logo-symbol-blue-hd.png') center/contain no-repeat!important;
    opacity:.16!important;
    filter:brightness(1.28) saturate(1.05)!important;
    transform:rotate(-6deg)!important;
    z-index:0!important;
    pointer-events:none!important;
}
.page,.dashboard-v63,.hub-page-v6{position:relative!important;z-index:1!important;}

/* Bloc version/statut : visible uniquement sur tableau de bord administrateur */
.sidebar-status{display:none!important;}
body:has(.dashboard-admin-v6) .sidebar-status{display:block!important;}

/* Limite volontaire : CRM, Macros, Administration, Dashboard et sauvegardes non restructurés en v6.6 */

/* =========================
   HUB v6.7 — corrections graphiques strictement limitées
   ========================= */

/* Login : fond plein écran propre, sans faux formulaire intégré */
.login-premium-v5{
    background-image:url('../img/login-background.png')!important;
    background-size:100% 100%!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
}
.login-premium-v5::before{
    background:linear-gradient(90deg,rgba(2,13,26,.00) 0%,rgba(2,13,26,.03) 55%,rgba(2,13,26,.16) 100%)!important;
}
.login-v5-form-zone{
    align-items:flex-end!important;
    padding:56px clamp(64px,8vw,150px) 56px 48px!important;
}
.login-v5-card{
    width:min(520px,100%)!important;
}
@media(max-width:920px){
    .login-premium-v5{background-size:cover!important;background-position:34% center!important;}
    .login-v5-form-zone{align-items:center!important;}
}

/* Pages internes : même fond bleu + X bleu HD en filigrane doublé */
body:not(:has(.login-premium-v5)),
.dark-shell .content-shell,
.content-shell{
    background:#061b35!important;
}
.content-shell::before{
    content:""!important;
    position:fixed!important;
    right:clamp(-520px,-22vw,-180px)!important;
    top:clamp(-40px,2vh,60px)!important;
    width:min(210vw,3000px)!important;
    height:min(210vw,3000px)!important;
    background:url('../img/logo-symbol-blue-hd.png') center/contain no-repeat!important;
    opacity:.16!important;
    filter:brightness(1.25) saturate(1.05)!important;
    transform:rotate(-6deg)!important;
    z-index:0!important;
    pointer-events:none!important;
}

/* Titres homogènes : une ligne verte, puis contenu aligné */
.hub-hero-v63,
.hub-page-title-v67,
.admin-header,
.macros-page-v63 .macros-hero-embedded{
    margin:0 0 18px!important;
    padding:0!important;
    min-height:70px!important;
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    color:#fff!important;
}
.hub-hero-v63 h1,
.hub-page-title-v67 h1,
.admin-header h1,
.macros-page-v63 .macros-hero-embedded h1{
    margin:0!important;
    color:#7abf49!important;
    font-size:clamp(2.25rem,3.8vw,3.35rem)!important;
    line-height:1.05!important;
    letter-spacing:.02em!important;
    text-shadow:none!important;
}
.hub-hero-v63 .hub-eyebrow,
.admin-header .eyebrow,
.admin-header p,
.macros-page-v63 .eyebrow,
.macros-page-v63 .subtitle,
.macros-page-v63 .hint{
    display:none!important;
}
.dashboard-v63,
.crm-page,
.macros-page-v63,
.admin-page{
    padding-top:26px!important;
}
.crm-kpis.crm-kpis-compact,
.macros-standalone,
.admin-nav{
    margin-top:0!important;
}

/* CRM : libellé simplifié uniquement */
.sidebar-link span:last-child{white-space:normal;}

/* Macros : titre conservé, compteur compact pour ne pas casser l'alignement */
.macros-page-v63 .macros-hero-embedded .stats{
    min-width:86px!important;
    max-width:96px!important;
    min-height:54px!important;
    padding:8px 10px!important;
    display:grid!important;
    place-items:center!important;
    text-align:center!important;
    line-height:1.05!important;
}
.macros-page-v63 .macros-hero-embedded .stats span{font-size:1.6rem!important;line-height:1!important;}
.macros-page-v63 .macros-hero-embedded .stats small{display:block!important;font-size:.72rem!important;line-height:1.05!important;}

/* Responsive titre */
@media(max-width:720px){
    .hub-hero-v63,
    .hub-page-title-v67,
    .admin-header,
    .macros-page-v63 .macros-hero-embedded{min-height:auto!important;margin-bottom:14px!important;}
    .hub-hero-v63 h1,
    .hub-page-title-v67 h1,
    .admin-header h1,
    .macros-page-v63 .macros-hero-embedded h1{font-size:2.1rem!important;}
}

/* =========================
   HUB v6.8 — corrections strictes : login + filigrane intérieur
   Périmètre : aucun changement fonctionnel.
   ========================= */
:root{--v68-inner-bg:#061b35;}

/* Login : image propre, ultrawide, sans déformation ni faux formulaire */
.login-premium-v5{
    background-image:url('../img/login-background.png')!important;
    background-size:cover!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
}
.login-premium-v5::before{
    background:linear-gradient(90deg,rgba(2,13,26,.00) 0%,rgba(2,13,26,.03) 58%,rgba(2,13,26,.14) 100%)!important;
}
.login-v5-form-zone{
    align-items:flex-end!important;
    padding:56px clamp(72px,7vw,150px) 56px 48px!important;
    background:transparent!important;
}
.login-v5-card{
    width:min(520px,100%)!important;
}
@media(max-width:920px){
    .login-premium-v5{background-position:35% center!important;}
    .login-v5-form-zone{align-items:center!important;padding:32px 20px!important;}
}

/* Pages intérieures : un seul X bleu, nettement plus grand, ratio conservé */
body:not(:has(.login-premium-v5)),
.dark-shell .content-shell,
.content-shell{
    background:var(--v68-inner-bg)!important;
}
.content-shell::before{
    content:""!important;
    position:fixed!important;
    top:clamp(20px,4vh,70px)!important;
    right:clamp(-260px,-12vw,-80px)!important;
    width:clamp(980px,72vw,1550px)!important;
    height:clamp(980px,72vw,1550px)!important;
    background:url('../img/logo-symbol-blue-hd.png') center/contain no-repeat!important;
    opacity:.14!important;
    filter:brightness(1.22) saturate(1.05)!important;
    transform:rotate(-6deg)!important;
    z-index:0!important;
    pointer-events:none!important;
}
.content-shell::after{display:none!important;}
.page,.dashboard-v63,.hub-page-v6,.crm-page,.macros-page-v63,.admin-page{position:relative!important;z-index:1!important;}


/* =========================
   HUB v6.9 — correction fond intérieur validé
   Fichier complet fourni par ChatGPT — remplacement direct recommandé.
   Périmètre : aucune modification fonctionnelle, uniquement fond des pages internes.
   Pré-requis : déposer l'image validée dans /assets/img/internal-background-v69.png
   ========================= */

body:not(:has(.login-premium-v5)),
.dark-shell .content-shell,
.content-shell {
    background: #061b35 url('../img/internal-background-v69.png') center center / cover no-repeat fixed !important;
}

.content-shell::before,
.dark-shell .content-shell::before {
    display: none !important;
    content: none !important;
    background: none !important;
}

.content-shell::after,
.dark-shell .content-shell::after {
    display: none !important;
    content: none !important;
    background: none !important;
}


/* HUB v7.0 — ajustements finaux administration */
.danger-button {
    border-color: #fecaca !important;
    color: #b42318 !important;
    background: #fff7f7 !important;
}
.danger-button:hover {
    border-color: #d92d20 !important;
    color: #991b1b !important;
    box-shadow: 0 0 0 2px rgba(217,45,32,.12) !important;
}
.v6-kpi.health-ok strong,
.v6-kpi.health-ok small {
    color: #1f7a3d !important;
}
