:root {
  --navy: #101a3d;
  --navy-2: #172554;
  --purple: var(--user-accent, #6d42ef);
  --purple-2: color-mix(in srgb, var(--purple) 76%, white);
  --blue: #eaf0ff;
  --bg: #f6f7fb;
  --card: #ffffff;
  --text: #17203a;
  --muted: #74809d;
  --line: #e8eaf2;
  --green: #18a873;
  --red: #df4661;
  --orange: #f59e0b;
  --shadow: 0 12px 35px rgba(28, 35, 71, .08);
  --radius: 18px;
  --sidebar-from: #101a3d;
  --sidebar-via: #172858;
  --sidebar-to: #452999;
  --hero-from: #182653;
  --hero-to: #5734bb;
  --accent-soft: #f0ebff;
  --accent-ink: #5d3bc4;
  --page-glow: rgba(109, 66, 239, .10);
  --surface-glass: rgba(255,255,255,.86);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font-family: "DM Sans", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }

.app { min-height: 100vh; }
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 20;
  width: 245px;
  padding: 30px 18px 20px;
  color: #dfe6ff;
  background: linear-gradient(175deg, #111b3f 0%, #172858 58%, #452999 135%);
  display: flex;
  flex-direction: column;
}
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 30px; }
.brand > i, .install-logo, .big-logo {
  display: grid;
  place-items: center;
  color: white;
  background: linear-gradient(135deg, #7857ff, #a36cff);
  box-shadow: 0 8px 18px rgba(109, 66, 239, .35);
  font-style: normal;
  font-weight: 800;
}
.brand > i { width: 42px; height: 42px; border-radius: 50%; font-size:20px; }
.brand > b { color: white; font-size: 19px; line-height: 1.05; }
.brand small { display: block; margin-top: 7px; color: #9facd2; font-size: 12px; letter-spacing: .13em; }
.sidebar nav { display: grid; gap: 6px; }
.sidebar nav a {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 45px;
  padding: 0 14px;
  border-radius: 12px;
  color: #b8c3e3;
  font-size: 14px;
  font-weight: 600;
  transition: .18s ease;
}
.sidebar nav a i { width: 20px; color: #8d9bc5; font-style: normal; text-align: center; }
.sidebar nav a:hover, .sidebar nav a.active { color: white; background: rgba(255,255,255,.11); }
.sidebar nav a.active { box-shadow: inset 3px 0 #9d7bff; }
.sidebar nav a.active i { color: #c8b6ff; }
.account {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: auto;
  padding: 15px 8px 0;
  border-top: 1px solid rgba(255,255,255,.1);
}
.account > i, .header-user i {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  color: white;
  background: #7550f1;
  font-style: normal;
  font-weight: 700;
}
.account span { min-width: 0; flex: 1; }
.account b, .account small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account b { color: white; font-size: 12px; }
.account small { margin-top: 3px; color: #9ba8cf; font-size: 12px; }
.account > a { color: #aab5d8; font-size: 20px; }

.main { min-height: 100vh; margin-left: 245px; }
.main > header {
  position: sticky;
  top: 0;
  z-index: 12;
  height: 92px;
  padding: 19px clamp(24px, 4vw, 62px);
  background: rgba(255,255,255,.9);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(16px);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
header h1 { margin: 3px 0 0; font-size: 25px; }
header small, .page-title small, .welcome small { color: #7b64d8; font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.header-user { display: flex; align-items: center; gap: 12px; }
.header-user i { width: 36px; height: 36px; }
.header-user a { color: var(--muted); font-size: 12px; font-weight: 700; }
.content { max-width: 1400px; margin: 0 auto; padding: 34px clamp(24px, 4vw, 62px) 60px; }

.welcome {
  min-height: 170px;
  padding: 36px 38px;
  border-radius: 24px;
  color: white;
  background: radial-gradient(circle at 80% 20%, rgba(255,255,255,.13), transparent 35%), linear-gradient(120deg, #182653, #5734bb);
  box-shadow: 0 18px 42px rgba(31, 34, 85, .17);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.welcome small { color: #cbbdff; }
.welcome h2 { margin: 10px 0 7px; font-size: clamp(25px, 3vw, 34px); }
.welcome p { margin: 0; color: #d5daf0; }
.welcome .btn { background: white; color: #3e2b84; box-shadow: none; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 45px;
  padding: 0 21px;
  border: 0;
  border-radius: 12px;
  color: white;
  background: linear-gradient(135deg, var(--purple), var(--purple-2));
  box-shadow: 0 9px 20px rgba(109, 66, 239, .23);
  cursor: pointer;
  font-weight: 700;
  transition: .18s ease;
}
.btn:hover { transform: translateY(-1px); filter: brightness(1.04); }

.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; margin: 23px 0 34px; }
.stats > div {
  min-height: 104px;
  padding: 21px 24px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  display: flex;
  align-items: center;
  gap: 17px;
}
.stats > div > i {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 15px;
  color: #7048e8;
  background: #f0ebff;
  font-style: normal;
  font-size: 22px;
}
.stats b { font-size: 25px; }
.stats small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 600; }

.section-title, .page-title { margin-bottom: 20px; display: flex; align-items: end; justify-content: space-between; }
.section-title h2, .page-title h2 { margin: 0; font-size: 21px; }
.page-title h2 { font-size: 27px; }
.page-title p { margin: 6px 0 0; color: var(--muted); font-size: 14px; }

.event-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.event-card {
  min-width: 0;
  overflow: hidden;
  background: white;
  border: 1px solid var(--line);
  border-radius: 19px;
  box-shadow: var(--shadow);
}
.event-cover {
  position: relative;
  min-height: 130px;
  padding: 22px;
  color: white;
  background: radial-gradient(circle at 70% 30%, rgba(255,255,255,.22), transparent 22%), linear-gradient(140deg, #596dc3, #40207e);
  display: flex;
  flex-direction: column;
  justify-content: end;
}
.event-cover::after { content: ""; position: absolute; inset: auto -25px -45px auto; width: 135px; height: 135px; border: 22px solid rgba(255,255,255,.08); border-radius: 50%; }
.event-cover > span { position: absolute; top: 17px; left: 18px; padding: 5px 9px; border-radius: 20px; background: rgba(17,24,60,.35); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.event-cover b { font-size: 39px; line-height: .9; }
.event-cover small { margin-top: 8px; color: #dfe3ff; font-size: 12px; letter-spacing: .12em; }
.event-body { padding: 20px; }
.event-body h3 { margin: 0 0 13px; font-size: 17px; }
.event-body p { margin: 7px 0; color: var(--muted); font-size: 12px; }
.event-body > a { display: block; margin-top: 17px; color: var(--purple); font-size: 12px; font-weight: 800; }
.progress-label { margin-top: 19px; display: flex; justify-content: space-between; color: var(--muted); font-size: 12px; }
.progress-label b { color: var(--text); }
.progress { height: 5px; margin-top: 7px; overflow: hidden; background: #eceef5; border-radius: 10px; }
.progress i { display: block; height: 100%; background: linear-gradient(90deg, #7650ee, #a082f4); border-radius: inherit; }

.panel {
  padding: 24px;
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.panel h3 { margin: 0 0 20px; font-size: 17px; }
.form, .add-panel { margin-bottom: 24px; }
.add-panel summary { color: var(--purple); cursor: pointer; font-weight: 800; }
.add-panel[open] summary { margin-bottom: 22px; }
label { display: grid; gap: 7px; color: #4c5672; font-size: 12px; font-weight: 700; }
input, select, textarea {
  width: 100%;
  min-height: 43px;
  padding: 10px 12px;
  color: var(--text);
  background: #fbfbfd;
  border: 1px solid #dfe3ed;
  border-radius: 10px;
  outline: none;
}
input:focus, select:focus, textarea:focus { border-color: #8a6aef; box-shadow: 0 0 0 3px rgba(109,66,239,.1); }
textarea { min-height: 95px; resize: vertical; }
.form-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 15px; margin-bottom: 17px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0,1fr)); }
.form > label, .add-panel form > label { margin-bottom: 15px; }
.event-select { max-width: 470px; margin-bottom: 22px; }
.admin-grid, .settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
.admin-grid .panel { margin: 0; }
.offline-settings { grid-column: 1/-1; display: flex; align-items: center; justify-content: space-between; gap: 28px; background: radial-gradient(circle at 92% 15%, rgba(139,92,246,.1), transparent 35%), white; }
.offline-settings small { color: var(--purple); font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.offline-settings h3 { margin: 7px 0 8px; }
.offline-settings p { max-width: 680px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.offline-settings span { display: block; margin-top: 10px; color: #52607f; font-size: 12px; font-weight: 700; }
.offline-actions { flex: 0 0 auto; display: grid; justify-items: center; gap: 11px; }
.offline-actions a { color: var(--purple); font-size: 12px; font-weight: 800; }
.connection-pill { position: fixed; z-index: 45; right: 18px; bottom: 18px; padding: 8px 12px; border: 1px solid; border-radius: 30px; box-shadow: 0 8px 25px rgba(23,32,58,.13); font-size: 12px; font-weight: 800; transition: .2s ease; }
.connection-pill.online { color: #087451; background: #e5faef; border-color: #b9efd8; }
.connection-pill.offline { color: #865a00; background: #fff5d9; border-color: #f4dfa5; }

.timeline { position: relative; display: grid; gap: 4px; }
.timeline::before { content: ""; position: absolute; top: 22px; bottom: 22px; left: 95px; width: 2px; background: #ded7f7; }
.timeline article { position: relative; display: grid; grid-template-columns: 73px 18px 1fr; gap: 14px; align-items: start; }
.time { padding-top: 21px; text-align: right; }
.time b, .time small { display: block; }
.time b { font-size: 16px; }
.time small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.timeline article > i { z-index: 1; width: 14px; height: 14px; margin-top: 26px; border: 4px solid #f4f1ff; border-radius: 50%; background: var(--purple); box-shadow: 0 0 0 2px #9d84ee; }
.timeline-card { position: relative; margin-bottom: 13px; padding: 20px 23px; background: white; border: 1px solid var(--line); border-radius: 15px; box-shadow: 0 7px 24px rgba(30,37,73,.06); }
.timeline-card > span { display: inline-block; padding: 4px 8px; color: #6843d4; background: #f1edff; border-radius: 20px; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.timeline-card h3 { margin: 10px 0 7px; font-size: 16px; }
.timeline-card p { margin: 0 0 10px; color: var(--muted); font-size: 12px; }
.timeline-card > small { color: var(--muted); font-size: 12px; }
.music-chip { margin: 10px 0; padding: 10px 12px; color: #59448a; background: #f7f4ff; border-radius: 9px; font-size: 12px; }
.delete { position: absolute; top: 17px; right: 17px; border: 0; color: #b95a6a; background: transparent; cursor: pointer; font-size: 12px; font-weight: 700; }

.table { padding: 0; overflow: hidden; }
.table-head, .table-row { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 18px; align-items: center; padding: 15px 21px; }
.table-head { color: var(--muted); background: #f7f8fb; font-size: 12px; text-transform: uppercase; }
.table-row { border-top: 1px solid var(--line); font-size: 12px; }
.table-row span b, .table-row span small { display: block; }
.table-row small { margin-top: 4px; color: var(--muted); }
.table-row em { font-style: normal; }
.table-head.users-head, .table-row.users-row { grid-template-columns: 2fr .8fr .8fr .8fr; }
.mini-btn { min-height: 32px; padding: 0 11px; color: #6040c7; background: #f1ecff; border: 0; border-radius: 8px; cursor: pointer; font-size: 12px; font-weight: 800; }
.mini-btn:disabled { opacity: .4; cursor: not-allowed; }
.mini-btn.danger { color: #b23148; background: #fee9ed; }
.permission-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.permission-grid p { color: #5b6682; font-size: 12px; }
.checks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 18px 0; }
.checks label { padding: 12px; background: #f8f7fc; border: 1px solid var(--line); border-radius: 10px; display: flex; flex-direction: row; align-items: center; }
.checks input { width: 17px; min-height: 17px; accent-color: var(--purple); }
.access-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.access-card > div { display: flex; align-items: center; gap: 11px; }
.access-card > div > i { display: grid; place-items: center; width: 38px; height: 38px; color: white; background: var(--purple); border-radius: 11px; font-style: normal; font-weight: 800; }
.access-card span b, .access-card span small { display: block; }
.access-card span small { margin-top: 4px; color: var(--muted); font-size: 12px; }
.access-card ul { padding: 12px 0; margin: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
.access-card li { padding: 5px 8px; border-radius: 20px; font-size: 12px; font-weight: 800; }
.access-card li.yes { color: #087451; background: #ddf8ec; }
.access-card li.no { color: #a6aaba; background: #f0f1f5; text-decoration: line-through; }
.module { grid-template-columns: 1fr auto; align-items: center; margin: 15px 0; padding: 14px 0; border-bottom: 1px solid var(--line); }
.module b, .module small { display: block; }
.module small { margin-top: 3px; color: var(--muted); font-weight: 500; }
.module input { width: 20px; min-height: 20px; accent-color: var(--purple); }

.music-list { padding: 0; overflow: hidden; }
.music-list article { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.music-list article:last-child { border: 0; }
.music-list article > i { display: grid; place-items: center; flex: 0 0 38px; height: 38px; color: #6b48da; background: #efeaff; border-radius: 11px; font-style: normal; }
.music-list article > span { min-width: 0; flex: 1; }
.music-list article b, .music-list article small { display: block; }
.music-list article small { margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.music-list em { padding: 5px 9px; border-radius: 20px; font-size: 12px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.music-list em.pending { color: #9a6500; background: #fff3cf; }
.music-list em.accepted { color: #087751; background: #dbf7eb; }
.music-list em.refused { color: #b12c44; background: #fee6ea; }
.music-list form { display: flex; gap: 5px; }
.music-list form button { width: 31px; height: 31px; border: 0; border-radius: 9px; color: #5a3bbf; background: #f0ebff; cursor: pointer; }

.notice { margin-bottom: 18px; padding: 13px 15px; border-radius: 11px; font-size: 12px; font-weight: 700; }
.notice.success { color: #087451; background: #ddf8ec; border: 1px solid #b8efd9; }
.notice.error { color: #ae2f45; background: #ffe9ed; border: 1px solid #facbd3; }
.notice--hidden { opacity: 0; transform: translateY(-5px); transition: .4s ease; }
.empty { grid-column: 1/-1; padding: 35px; color: var(--muted); background: white; border: 1px dashed #d9dce7; border-radius: var(--radius); text-align: center; font-size: 13px; }
.mobile-nav { display: none; }

/* Connexion */
.login { min-height: 100vh; display: grid; grid-template-columns: 48% 52%; background: white; }
.login-brand {
  position: relative;
  overflow: hidden;
  padding: clamp(45px,7vw,110px);
  color: white;
  background: radial-gradient(circle at 85% 18%, rgba(174,143,255,.27), transparent 28%), radial-gradient(circle at 8% 88%, rgba(60,97,210,.25), transparent 25%), linear-gradient(145deg, #111b3f 0%, #202b62 60%, #4f2aa3 130%);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.login-brand::after { content: ""; position: absolute; right: -110px; bottom: -100px; width: 330px; height: 330px; border: 55px solid rgba(255,255,255,.04); border-radius: 50%; }
.big-logo { width: 54px; height: 54px; border-radius: 16px; }
.login-brand h1 { margin: 14px 0 55px; font-size: 22px; }
.login-brand h1 span { color: #a78bfa; }
.login-brand h2 { margin: 0; font-size: clamp(34px,4vw,57px); line-height: 1.05; }
.login-brand > p { max-width: 510px; margin: 22px 0 30px; color: #c8d0ed; font-size: 16px; line-height: 1.65; }
.login-brand > div { display: grid; gap: 13px; color: #d9def3; font-size: 12px; }
.login-side { padding: 45px; background: #fafafe; display: grid; place-items: center; }
.login-card { width: min(100%, 435px); padding: 42px; background: white; border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 25px 70px rgba(31,36,70,.12); }
.login-card > small { color: #7350de; font-size: 12px; font-weight: 800; letter-spacing: .15em; }
.login-card h2 { margin: 11px 0 8px; font-size: 27px; }
.login-card > p { margin: 0 0 27px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.login-card label { margin-bottom: 15px; }
.login-card input { min-height: 48px; }
.login-card .btn { width: 100%; min-height: 49px; }
.login-options { margin: 1px 0 22px; display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 12px; }
.login-options label { display: flex; flex-direction: row; align-items: center; gap: 6px; margin: 0; font-weight: 500; }
.login-options input { width: 14px; min-height: 14px; accent-color: var(--purple); }
.login-options a { color: #7150dd; font-weight: 700; }
.help { margin-top: 23px; padding-top: 19px; color: var(--muted); border-top: 1px solid var(--line); text-align: center; font-size: 12px; }
.help b { display: block; margin-top: 5px; color: var(--text); }

/* Installateur Plesk */
.installer { min-height: 100vh; padding: 45px 20px; background: radial-gradient(circle at 20% 5%, #ede7ff, transparent 27%), var(--bg); display: grid; place-items: center; }
.install-card { width: min(100%, 610px); padding: 38px; background: white; border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 25px 70px rgba(28,35,71,.13); }
.install-logo { width: 52px; height: 52px; border-radius: 15px; }
.install-card h1 { margin: 17px 0 7px; }
.install-card > p { margin: 0 0 25px; color: var(--muted); }
.install-card form { display: grid; gap: 14px; }
.form-row { display: grid; grid-template-columns: 2fr 1fr; gap: 14px; }
.credentials { margin-top: 22px; padding: 16px; color: #594487; background: #f3efff; border-radius: 12px; font-size: 12px; }
.credentials b, .credentials span { display: block; }
.credentials span { margin-top: 5px; }

/* Planning interactif */
.planner-page-title { align-items: center; }
.planner-help { max-width: 360px; padding: 12px 15px; color: #55447e; background: #f0ebff; border: 1px solid #ddd2ff; border-radius: 13px; display: flex; align-items: center; gap: 11px; }
.planner-help > i { display: grid; flex: 0 0 34px; height: 34px; place-items: center; color: white; background: var(--purple); border-radius: 10px; font-style: normal; font-size: 18px; }
.planner-help b,.planner-help small { display: block; }
.planner-help b { font-size: 12px; }
.planner-help small { margin-top: 3px; color: #79699c; font-size: 12px; }
.planner-event-select { margin-bottom: 14px; }
.planner-summary { margin-bottom: 16px; padding: 18px 22px; color: white; background: radial-gradient(circle at 88% 15%,rgba(255,255,255,.12),transparent 26%),linear-gradient(125deg,#172554,#6040c9); border-radius: 18px; box-shadow: 0 14px 35px rgba(31,34,85,.14); display: grid; grid-template-columns: 60px 1fr auto; align-items: center; gap: 17px; }
.planner-summary > div { width: 60px; height: 60px; color: #2d1f65; background: white; border-radius: 13px; display: grid; place-content: center; text-align: center; }
.planner-summary > div span { font-size: 24px; font-weight: 800; line-height: 1; }
.planner-summary > div small { margin-top: 4px; color: #716788; font-size: 12px; }
.planner-summary section > small { color: #c8b9ff; font-size: 12px; font-weight: 800; letter-spacing: .13em; }
.planner-summary h3 { margin: 5px 0 3px; font-size: 17px; }
.planner-summary p { margin: 0; color: #d5daf0; font-size: 12px; }
.planner-summary strong { min-width: 70px; padding-left: 18px; border-left: 1px solid rgba(255,255,255,.16); text-align: center; }
.planner-summary strong b,.planner-summary strong small { display: block; }
.planner-summary strong b { font-size: 28px; }
.planner-summary strong small { color: #cdd4ef; font-size: 12px; }
.planner-add { margin-bottom: 16px; }
.day-planner { position: relative; overflow: hidden; background: white; border: 1px solid var(--line); border-radius: 19px; box-shadow: var(--shadow); }
.planner-toolbar { min-height: 54px; padding: 12px 19px; background: #fafafe; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.planner-toolbar span { font-size: 12px; font-weight: 800; }
.planner-toolbar span i { display: inline-block; width: 8px; height: 8px; margin-right: 7px; background: #724ce0; border-radius: 50%; box-shadow: 0 0 0 4px #eee9ff; }
.planner-toolbar small { color: var(--muted); font-size: 12px; }
.planner-scroll { max-height: 72vh; overflow: auto; overscroll-behavior: contain; scroll-behavior: smooth; }
.planner-slot { min-height: 68px; border-bottom: 1px solid #eff0f5; display: grid; grid-template-columns: 72px 1fr; }
.planner-slot:last-child { border-bottom: 0; }
.planner-slot > time { padding: 13px 13px 0 0; color: #77819a; border-right: 1px solid #e9eaf1; text-align: right; font-size: 12px; }
.planner-slot.full-hour > time b { color: #27324e; font-size: 12px; }
.planner-slot.half-hour > time b { color: #b0b6c6; font-size: 12px; font-weight: 600; }
.planner-dropzone { min-height: 67px; padding: 6px 11px; background-image: linear-gradient(90deg,rgba(109,66,239,.025),transparent 35%); display: grid; gap: 7px; transition: .16s ease; }
.planner-dropzone.is-drag-over { background: #eeeaff; box-shadow: inset 0 0 0 2px #987bed; }
.planner-card { position: relative; min-width: 0; background: white; border: 1px solid #dedff0; border-left: 4px solid #7550df; border-radius: 13px; box-shadow: 0 7px 20px rgba(31,38,74,.08); transition: transform .18s ease,box-shadow .18s ease,opacity .18s ease; }
.planner-card[draggable="true"] { cursor: grab; }
.planner-card[draggable="true"]:active { cursor: grabbing; }
.planner-card.is-dragging { opacity: .42; transform: scale(.985); }
.planner-card.is-saving { opacity: .62; pointer-events: none; }
.planner-card.just-moved { border-color: #b6a2f3; box-shadow: 0 0 0 4px rgba(126,87,226,.12),0 14px 30px rgba(66,45,132,.16); }
.planner-card.type-musique { border-left-color: #ef69a0; }
.planner-card.type-repas { border-left-color: #f59e0b; }
.planner-card.type-ceremonie { border-left-color: #2e9dd0; }
.planner-card.type-animation { border-left-color: #18a873; }
.planner-card.type-discours { border-left-color: #df6b52; }
.planner-card-main { min-height: 67px; padding: 10px 13px 10px 9px; display: grid; grid-template-columns: 27px 70px 1fr; align-items: center; gap: 10px; }
.planner-drag-handle { width: 27px; height: 38px; padding: 0; color: #978aac; background: #f4f1fb; border: 0; border-radius: 8px; cursor: grab; font-size: 18px; }
.planner-card-time { padding-right: 10px; border-right: 1px solid var(--line); }
.planner-card-time b,.planner-card-time small { display: block; }
.planner-card-time b { color: #5e3fc3; font-size: 16px; }
.planner-card-time small { margin-top: 3px; color: var(--muted); font-size: 12px; white-space: nowrap; }
.planner-card-copy { min-width: 0; }
.planner-card-copy > span { color: #7550df; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.planner-card-copy h3 { margin: 3px 0; font-size: 13px; }
.planner-card-copy p { margin: 4px 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.planner-card-copy > small { display: block; margin-top: 4px; color: #8992a7; font-size: 12px; }
.planner-card-copy .music-chip { margin-top: 5px; padding: 5px 8px; font-size: 12px; }
.planner-card-actions { padding: 8px 12px 10px 46px; background: #fbfbfe; border-top: 1px solid #eeeef4; border-radius: 0 0 12px 9px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.quick-move-form { display: flex; flex-wrap: wrap; gap: 5px; }
.quick-move-form button,.planner-editor > summary { min-height: 29px; padding: 0 10px; color: #665c7c; background: white; border: 1px solid #dedeea; border-radius: 8px; cursor: pointer; font-size: 12px; font-weight: 800; }
.quick-move-form button:hover { color: #5c39c1; border-color: #b9a7ed; }
.quick-move-form .primary-shift { color: white; background: #6f49dc; border-color: #6f49dc; }
.planner-editor { position: relative; }
.planner-editor > summary { display: flex; align-items: center; list-style: none; }
.planner-editor > summary::-webkit-details-marker { display: none; }
.planner-editor[open] { width: 100%; }
.planner-editor[open] > summary { width: max-content; margin: 0 0 11px auto; }
.planner-editor[open] > form { padding: 15px; background: white; border: 1px solid var(--line); border-radius: 12px; }
.planner-card-actions:has(.planner-editor[open]) { align-items: stretch; flex-direction: column; }
.planner-edit-buttons { display: flex; justify-content: flex-end; }
.planner-delete { margin-top: 7px !important; padding: 0 !important; background: transparent !important; border: 0 !important; text-align: right; }
.planner-delete button { padding: 0; color: var(--red); background: transparent; border: 0; cursor: pointer; font-size: 12px; font-weight: 800; }
.planner-empty { padding: 35px 20px; border-top: 1px solid var(--line); text-align: center; }
.planner-empty > i { display: grid; width: 48px; height: 48px; margin: 0 auto 10px; place-items: center; color: #7650df; background: #eeeaff; border-radius: 14px; font-style: normal; font-size: 22px; }
.planner-empty h3 { margin: 0 0 5px; }
.planner-empty p { margin: 0; color: var(--muted); font-size: 12px; }
.planner-toast { position: fixed; left: 50%; bottom: 26px; z-index: 1000; padding: 11px 17px; color: white; background: #172554; border-radius: 30px; box-shadow: 0 12px 35px rgba(23,37,84,.25); opacity: 0; transform: translate(-50%,18px); transition: .22s ease; font-size: 12px; font-weight: 800; pointer-events: none; }
.planner-toast.visible { opacity: 1; transform: translate(-50%,0); }
.sparkle-burst { position: fixed; z-index: 1200; width: 1px; height: 1px; pointer-events: none; }
.sparkle-burst i { position: absolute; width: 7px; height: 7px; border-radius: 2px; animation: sparkle-pop .9s cubic-bezier(.15,.65,.25,1) forwards; }
@keyframes sparkle-pop { 0% { opacity: 0; transform: translate(0,0) scale(.2) rotate(0); } 15% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--x),var(--y)) scale(.75) rotate(var(--r)); } }

/* Comptes et rôles personnalisés */
.mini-link { color: var(--purple); font-size: 12px; font-weight: 800; }
.admin-user-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; margin-top: 17px; }
.admin-user-card { display: grid; gap: 11px; }
.admin-user-head { display: flex; align-items: center; gap: 11px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.admin-user-head > i { display: grid; flex: 0 0 40px; height: 40px; place-items: center; color: white; background: linear-gradient(135deg,#6040ca,#9470ef); border-radius: 12px; font-style: normal; font-weight: 800; }
.admin-user-head > span { min-width: 0; flex: 1; }
.admin-user-head b,.admin-user-head small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-user-head b { font-size: 12px; }
.admin-user-head small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.user-status { padding: 5px 8px; border-radius: 20px; font-size: 12px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.user-status.active { color: #08764e; background: #def8ec; }
.user-status.disabled { color: #a3374c; background: #ffe4e9; }
.user-role-line { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.user-role-line > span { color: var(--muted); font-size: 12px; }
.user-role-line > b { font-size: 12px; }
.custom-role-badge { padding: 5px 9px; color: var(--role-color); background: color-mix(in srgb,var(--role-color) 11%,white); border: 1px solid color-mix(in srgb,var(--role-color) 24%,white); border-radius: 20px; }
.no-custom-role { color: #9aa1b2; font-weight: 600; }
.assign-role-form { padding: 11px; background: #f8f7fc; border: 1px solid #eceaf4; border-radius: 11px; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 8px; }
.assign-role-form label { margin: 0; font-size: 12px; }
.assign-role-form select { min-height: 35px; padding: 0 8px; font-size: 12px; }
.assign-role-form .mini-btn { min-height: 35px; }
.user-status-form { display: flex; justify-content: flex-end; }

.roles-layout { display: grid; grid-template-columns: minmax(230px,.7fr) minmax(0,1.8fr); align-items: start; gap: 17px; }
.roles-list { display: grid; gap: 8px; }
.role-new-card,.role-card { min-height: 72px; padding: 13px 14px; background: white; border: 1px solid var(--line); border-radius: 13px; box-shadow: 0 6px 18px rgba(28,35,71,.05); display: flex; align-items: center; gap: 11px; transition: .17s ease; }
.role-new-card:hover,.role-card:hover,.role-new-card.active,.role-card.active { border-color: #c7b7f3; box-shadow: 0 9px 24px rgba(84,58,158,.1); transform: translateY(-1px); }
.role-new-card > i { display: grid; flex: 0 0 34px; height: 34px; place-items: center; color: #6f49da; background: #eeeaff; border-radius: 10px; font-style: normal; font-size: 18px; }
.role-card > i { flex: 0 0 10px; height: 36px; background: var(--role-color); border-radius: 8px; }
.role-new-card span,.role-card span { min-width: 0; flex: 1; }
.role-new-card b,.role-new-card small,.role-card b,.role-card small { display: block; }
.role-new-card b,.role-card b { font-size: 12px; }
.role-new-card small,.role-card small { margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.role-card em { color: var(--muted); font-size: 12px; font-style: normal; white-space: nowrap; }
.role-list-empty { padding: 23px 14px; color: var(--muted); border: 1px dashed #d7d9e5; border-radius: 12px; text-align: center; font-size: 12px; }
.role-editor { display: grid; gap: 18px; }
.role-editor-title { display: flex; align-items: center; justify-content: space-between; }
.role-editor-title small { color: var(--purple); font-size: 12px; font-weight: 800; letter-spacing: .13em; }
.role-editor-title h3 { margin: 5px 0 0; font-size: 19px; }
.role-editor-title input[type="color"] { width: 46px; height: 42px; padding: 4px; background: white; border: 1px solid var(--line); border-radius: 11px; cursor: pointer; }
.permission-groups { display: grid; gap: 12px; }
.permission-groups fieldset { margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 13px; }
.permission-groups legend { padding: 0 8px; color: #4f3f76; font-size: 12px; font-weight: 800; }
.role-permissions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.role-permissions > label { min-height: 58px; margin: 0; padding: 10px; background: #fafafe; border: 1px solid #eeeeF4; border-radius: 10px; display: flex; align-items: flex-start; gap: 9px; cursor: pointer; }
.role-permissions input { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 2px; accent-color: var(--purple); }
.role-permissions span b,.role-permissions span small { display: block; }
.role-permissions span b { font-size: 12px; }
.role-permissions span small { margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.role-editor-actions { display: flex; align-items: center; gap: 15px; }
.role-editor-actions a { color: var(--muted); font-size: 12px; font-weight: 800; }
.delete-role-zone { margin-top: 17px; border-color: #f3cbd2; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.delete-role-zone span b,.delete-role-zone span small { display: block; }
.delete-role-zone span b { color: #a62f46; font-size: 12px; }
.delete-role-zone span small { margin-top: 4px; color: var(--muted); font-size: 12px; }
.delete-role-zone button { padding: 8px 12px; color: white; background: var(--red); border: 0; border-radius: 9px; cursor: pointer; font-size: 12px; font-weight: 800; }

/* Espace client simplifié */
.client-event-switch { max-width: 430px; margin: 0 0 16px auto; }
.client-hero { position: relative; min-height: 250px; overflow: hidden; padding: 38px 42px; color: white; background: radial-gradient(circle at 83% 18%,rgba(255,255,255,.16),transparent 30%),linear-gradient(125deg,#14234e,#6540ce); border-radius: 25px; box-shadow: 0 20px 45px rgba(31,34,85,.18); display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.client-hero::after { content: ""; position: absolute; right: -105px; bottom: -175px; width: 360px; height: 360px; border: 58px solid rgba(255,255,255,.045); border-radius: 50%; }
.client-hero-copy { position: relative; z-index: 1; }
.client-hero-copy > small { color: #cdbfff; font-size: 12px; font-weight: 800; letter-spacing: .15em; }
.client-hero-copy > h2 { margin: 10px 0 7px; font-size: clamp(28px,4vw,39px); }
.client-hero-copy > p { margin: 0; color: #d6dcf3; font-size: 13px; }
.client-event-name { margin-top: 25px; padding-left: 14px; border-left: 3px solid #a98aff; display: grid; gap: 4px; }
.client-event-name span { color: #c9d0ec; font-size: 12px; font-weight: 800; }
.client-event-name b { font-size: 18px; }
.client-event-name em { color: #d7dcf1; font-size: 12px; font-style: normal; }
.countdown { position: relative; z-index: 1; width: 160px; height: 160px; padding: 24px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(255,255,255,.08); box-shadow: inset 0 0 40px rgba(255,255,255,.05); display: grid; place-content: center; text-align: center; backdrop-filter: blur(8px); }
.countdown b { font-size: 49px; line-height: 1; }
.countdown span { max-width: 100px; margin-top: 8px; color: #d7dcf1; font-size: 12px; line-height: 1.35; }
.client-progress { margin: 18px 0; padding: 19px 24px; display: grid; grid-template-columns: minmax(230px,1fr) 1.5fr; align-items: center; gap: 30px; }
.client-progress span { color: var(--purple); font-size: 12px; font-weight: 800; letter-spacing: .13em; }
.client-progress h3 { margin: 5px 0 3px; font-size: 18px; }
.client-progress p { margin: 0; color: var(--muted); font-size: 12px; }
.client-progress p + a { display: inline-block; margin-top: 8px; color: var(--purple); font-size: 12px; font-weight: 800; }
.client-progress-bar { height: 9px; overflow: hidden; background: #ececf4; border-radius: 20px; }
.client-progress-bar i { display: block; height: 100%; background: linear-gradient(90deg,#6042d5,#9b79f4); border-radius: inherit; transition: width .4s ease; }
.client-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-bottom: 21px; }
.client-actions > a { min-height: 108px; padding: 20px; background: white; border: 1px solid var(--line); border-radius: 17px; box-shadow: var(--shadow); display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 14px; transition: .18s ease; }
.client-actions > a:hover { border-color: #cbbcf7; transform: translateY(-2px); }
.client-actions > a > i { display: grid; place-items: center; width: 48px; height: 48px; color: #6945d6; background: #f0ebff; border-radius: 14px; font-style: normal; font-size: 22px; }
.client-actions span b,.client-actions span small { display: block; }
.client-actions span b { font-size: 14px; }
.client-actions span small { margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.35; }
.client-actions > a > em { color: #6b47d4; font-size: 12px; font-style: normal; font-weight: 800; text-align: right; }
.client-columns { display: grid; grid-template-columns: 1.15fr .85fr; gap: 18px; }
.client-checklist .section-title,.client-next .section-title { margin-bottom: 12px; }
.client-checklist .section-title h2,.client-next .section-title h2 { font-size: 16px; }
.client-checklist > a { padding: 13px 4px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 12px; }
.client-checklist > a:last-child { border: 0; }
.client-checklist > a > i { display: grid; flex: 0 0 30px; height: 30px; place-items: center; color: #7e879d; background: #eef0f5; border-radius: 50%; font-size: 12px; font-style: normal; font-weight: 800; }
.client-checklist > a.done > i { color: white; background: var(--green); }
.client-checklist span b,.client-checklist span small { display: block; }
.client-checklist span b { font-size: 12px; }
.client-checklist span small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.client-next .section-title a { color: var(--purple); font-size: 12px; font-weight: 800; }
.client-next > div:not(.section-title) { padding: 13px 2px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 13px; }
.client-next time { flex: 0 0 47px; color: #6040c8; font-size: 14px; font-weight: 800; }
.client-next span b,.client-next span small { display: block; }
.client-next span b { font-size: 12px; }
.client-next span small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.client-no-data { padding: 20px 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.client-empty { padding: 70px 25px; text-align: center; }
.client-empty-icon { display: grid; width: 72px; height: 72px; margin: 0 auto 18px; place-items: center; color: #6c47da; background: #eee9ff; border-radius: 22px; font-size: 31px; }
.client-empty h2 { margin: 0 0 9px; }
.client-empty p { max-width: 570px; margin: 0 auto 22px; color: var(--muted); line-height: 1.6; }
.client-event-list { display: grid; gap: 15px; }
.client-event-detail { display: grid; grid-template-columns: 105px 1fr auto; align-items: center; gap: 22px; }
.client-event-date { min-height: 92px; color: white; background: linear-gradient(140deg,#172858,#7148df); border-radius: 14px; display: grid; place-content: center; text-align: center; }
.client-event-date b { font-size: 31px; line-height: 1; }
.client-event-date span { margin-top: 5px; color: #d9dff5; font-size: 12px; }
.client-event-main > small { color: var(--purple); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.client-event-main h2 { margin: 6px 0; font-size: 20px; }
.client-event-main p { margin: 0; color: var(--muted); font-size: 12px; }
.client-event-links { display: grid; justify-items: center; gap: 9px; }
.client-event-links > a:not(.btn) { color: var(--purple); font-size: 12px; font-weight: 800; }
.client-help { margin-top: 18px; display: flex; align-items: center; gap: 14px; }
.client-help > i { display: grid; flex: 0 0 42px; height: 42px; place-items: center; color: white; background: var(--purple); border-radius: 13px; font-style: normal; font-weight: 800; }
.client-help > div { flex: 1; }
.client-help h3 { margin: 0 0 4px; font-size: 14px; }
.client-help p { margin: 0; color: var(--muted); font-size: 12px; }
.client-help > a { color: var(--purple); font-size: 12px; font-weight: 800; }

.preferences-title { margin-bottom: 14px; }
.preferences-intro { margin-bottom: 17px; padding: 15px 18px; color: #594782; background: #f1edff; border: 1px solid #ded4ff; border-radius: 13px; display: flex; align-items: center; gap: 11px; }
.preferences-intro i { font-style: normal; font-size: 19px; }
.preferences-intro p { margin: 0; font-size: 12px; line-height: 1.5; }
.preferences-form { display: grid; gap: 15px; }
.preference-section { padding: 25px 27px; }
.preference-heading { margin-bottom: 19px; display: flex; align-items: center; gap: 13px; }
.preference-heading > i { display: grid; flex: 0 0 40px; height: 40px; place-items: center; color: #6845d3; background: #f0ebff; border-radius: 12px; font-size: 12px; font-style: normal; font-weight: 800; }
.preference-heading h3 { margin: 0 0 4px; font-size: 15px; }
.preference-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.preference-section textarea { min-height: 115px; background: #fafafe; line-height: 1.55; }
.preference-two { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.preferences-save { position: sticky; bottom: 14px; z-index: 10; padding: 14px 16px; background: rgba(255,255,255,.94); border: 1px solid var(--line); border-radius: 15px; box-shadow: 0 12px 35px rgba(28,35,71,.13); display: flex; align-items: center; justify-content: space-between; gap: 18px; backdrop-filter: blur(12px); }
.preferences-save span { color: var(--muted); font-size: 12px; }

/* Consultation hors ligne */
.offline-page { min-height: 100vh; background: #f4f6fb; }
.offline-header { position: sticky; top: 0; z-index: 20; min-height: 76px; padding: 12px clamp(18px,5vw,70px); background: rgba(17,27,63,.97); box-shadow: 0 8px 30px rgba(17,27,63,.16); display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.offline-brand { color: white; display: flex; align-items: center; gap: 12px; }
.offline-brand img { width: 45px; height: 45px; border-radius: 13px; }
.offline-brand b, .offline-brand small { display: block; }
.offline-brand b { font-size: 17px; }
.offline-brand small { margin-top: 4px; color: #aeb9dc; font-size: 12px; letter-spacing: .13em; }
.network-state { padding: 7px 11px; border-radius: 30px; font-size: 12px; font-weight: 800; }
.network-state.offline { color: #ffd777; background: rgba(245,158,11,.14); }
.network-state.online { color: #78efbd; background: rgba(24,168,115,.16); }
.offline-main { width: min(100%,1150px); margin: 0 auto; padding: 35px clamp(16px,4vw,45px) 90px; }
.offline-hero { min-height: 145px; margin-bottom: 22px; padding: 29px 32px; color: white; background: radial-gradient(circle at 85% 15%, rgba(255,255,255,.13), transparent 30%), linear-gradient(120deg,#172554,#5830b4); border-radius: 22px; box-shadow: 0 18px 42px rgba(31,34,85,.15); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.offline-hero small { color: #cbbdff; font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.offline-hero h1 { margin: 8px 0 7px; font-size: clamp(25px,4vw,36px); }
.offline-hero p { margin: 0; color: #d5daf0; font-size: 12px; }
.offline-hero .btn:disabled { opacity: .5; cursor: not-allowed; }
.offline-meta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; margin-bottom: 18px; }
.offline-meta > div { padding: 17px 19px; background: white; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.offline-meta span, .offline-meta b { display: block; }
.offline-meta span { color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.offline-meta b { margin-top: 6px; font-size: 13px; }
.offline-selector { margin-bottom: 15px; padding: 17px 20px; }
.offline-event-info { margin-bottom: 30px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.offline-event-info small { color: var(--purple); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.offline-event-info h2 { margin: 7px 0 0; }
.offline-event-info p { margin: 5px 0; color: var(--muted); font-size: 12px; }
.offline-planning-title { margin-top: 10px; }
.offline-empty { padding: 38px; text-align: center; }
.offline-empty h2 { margin-top: 0; }
.offline-empty p { max-width: 680px; margin: 0 auto 20px; color: var(--muted); line-height: 1.65; }
.offline-footer { position: fixed; inset: auto 0 0; z-index: 25; min-height: 52px; padding: 10px clamp(16px,5vw,70px); color: #b6c0df; background: rgba(17,27,63,.97); display: flex; align-items: center; justify-content: space-between; gap: 15px; font-size: 12px; }
.offline-footer button { color: #ffb6c3; background: transparent; border: 0; cursor: pointer; font-size: 12px; font-weight: 800; }
.logout-page { min-height: 100vh; padding: 20px; background: var(--bg); display: grid; place-items: center; }

/* =========================================================
   Identité visuelle et thèmes EventLink 1.4
   ========================================================= */
body[data-theme="velvet"] {
  --navy: #111b3f;
  --navy-2: #1b2a5a;
  --bg: #f5f5fa;
  --text: #17203a;
  --muted: #74809d;
  --line: #e7e8f1;
  --sidebar-from: #0e1736;
  --sidebar-via: #192858;
  --sidebar-to: #49279b;
  --hero-from: #15234f;
  --hero-to: #6038c4;
  --accent-soft: color-mix(in srgb, var(--purple) 11%, white);
  --accent-ink: color-mix(in srgb, var(--purple) 82%, #271b4e);
  --page-glow: color-mix(in srgb, var(--purple) 11%, transparent);
}

body[data-theme="champagne"] {
  --navy: #451b2d;
  --navy-2: #64263f;
  --bg: #fbf7f3;
  --text: #302126;
  --muted: #88767b;
  --line: #eee3df;
  --sidebar-from: #32131f;
  --sidebar-via: #552035;
  --sidebar-to: #8b542d;
  --hero-from: #4a1b30;
  --hero-to: #a15d38;
  --accent-soft: color-mix(in srgb, var(--purple) 10%, #fffaf4);
  --accent-ink: color-mix(in srgb, var(--purple) 78%, #4a2719);
  --page-glow: rgba(183,121,31,.12);
}

body[data-theme="ocean"] {
  --navy: #073b4c;
  --navy-2: #07576a;
  --bg: #f2f9f9;
  --text: #12333b;
  --muted: #69858a;
  --line: #dceced;
  --sidebar-from: #052f3d;
  --sidebar-via: #07556a;
  --sidebar-to: #087f7c;
  --hero-from: #06475b;
  --hero-to: #0d908b;
  --accent-soft: color-mix(in srgb, var(--purple) 10%, #f3fffd);
  --accent-ink: color-mix(in srgb, var(--purple) 80%, #073b4c);
  --page-glow: rgba(15,158,154,.12);
}

body[data-theme="graphite"] {
  --navy: #171b24;
  --navy-2: #252c3a;
  --bg: #f2f4f8;
  --text: #1b2230;
  --muted: #727d90;
  --line: #e1e5ed;
  --sidebar-from: #12151c;
  --sidebar-via: #232a38;
  --sidebar-to: #344168;
  --hero-from: #1c2330;
  --hero-to: #415386;
  --accent-soft: color-mix(in srgb, var(--purple) 10%, #f7f9ff);
  --accent-ink: color-mix(in srgb, var(--purple) 82%, #1b2230);
  --page-glow: rgba(77,107,254,.11);
}

body[data-theme="aurora"] {
  --navy: #15113d; --navy-2: #25205e; --bg: #f5f4fb; --text: #1d1a36; --muted: #77728f; --line: #e7e3f2;
  --sidebar-from: #0d0a29; --sidebar-via: #211752; --sidebar-to: #21516e; --hero-from: #17113f; --hero-to: #6d36b8;
  --accent-soft: color-mix(in srgb,var(--purple) 12%,#f7f5ff); --accent-ink: color-mix(in srgb,var(--purple) 80%,#261d55); --page-glow: rgba(124,58,237,.15);
}
body[data-theme="studio"] {
  --navy: #101828; --navy-2: #1d2939; --bg: #f6f7f9; --text: #182230; --muted: #667085; --line: #e2e6ec;
  --sidebar-from: #0c111d; --sidebar-via: #182230; --sidebar-to: #253a59; --hero-from: #111827; --hero-to: #244f91;
  --accent-soft: color-mix(in srgb,var(--purple) 9%,#f8fafc); --accent-ink: color-mix(in srgb,var(--purple) 78%,#172554); --page-glow: rgba(37,99,235,.09);
}
body[data-theme="horizon"] {
  --navy: #172554; --navy-2: #243b78; --bg: #fbf7f3; --text: #242844; --muted: #7d7c8d; --line: #ebe3df;
  --sidebar-from: #101a3d; --sidebar-via: #1b3470; --sidebar-to: #984b58; --hero-from: #172554; --hero-to: #d85d63;
  --accent-soft: color-mix(in srgb,var(--purple) 10%,#fff7ed); --accent-ink: color-mix(in srgb,var(--purple) 72%,#7c2d3b); --page-glow: rgba(249,115,96,.13);
}
body[data-theme="scene"] {
  --navy:#101b2a;--navy-2:#192b40;--bg:#f5f2ec;--card:#fffdf9;--text:#18222d;--muted:#7b7d7f;--line:#e5ded3;
  --sidebar-from:#0b1521;--sidebar-via:#13263a;--sidebar-to:#263b4d;--hero-from:#101c2a;--hero-to:#35495a;
  --accent-soft:color-mix(in srgb,var(--purple) 12%,#faf5eb);--accent-ink:color-mix(in srgb,var(--purple) 72%,#4a3520);--page-glow:rgba(196,154,98,.13);
}

body[data-theme] {
  background:
    radial-gradient(circle at 82% -8%, var(--page-glow), transparent 28rem),
    radial-gradient(circle at 25% 105%, color-mix(in srgb, var(--purple) 5%, transparent), transparent 34rem),
    var(--bg);
}

/* Scène — identité événementielle premium, sans néon */
body[data-theme="scene"]{background:radial-gradient(ellipse at 78% -5%,rgba(196,154,98,.17),transparent 30rem),radial-gradient(ellipse at 17% 110%,rgba(35,58,78,.10),transparent 34rem),linear-gradient(115deg,rgba(255,255,255,.52),transparent 42%),var(--bg)}
body[data-theme="scene"] .sidebar{border-right:1px solid rgba(216,187,143,.22);background:linear-gradient(164deg,var(--sidebar-from),var(--sidebar-via) 64%,var(--sidebar-to));box-shadow:18px 0 60px rgba(12,25,38,.13)}
body[data-theme="scene"] .sidebar::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.34;background:radial-gradient(ellipse at 50% -8%,rgba(226,199,157,.24),transparent 26%),linear-gradient(118deg,transparent 0 48%,rgba(255,255,255,.045) 49%,transparent 50%)}
body[data-theme="scene"] .brand>i,body[data-theme="scene"] .big-logo,body[data-theme="scene"] .login-card-logo{color:#182536;background:linear-gradient(145deg,#f2dfbf,#b98a4f);box-shadow:0 12px 28px rgba(180,133,72,.26)}
body[data-theme="scene"] .sidebar nav a.active{background:linear-gradient(90deg,rgba(212,178,127,.20),rgba(255,255,255,.06));box-shadow:inset 2px 0 #d5b17b,0 8px 22px rgba(4,12,21,.12)}
body[data-theme="scene"] .main>header{border-bottom-color:rgba(174,143,102,.24);background:color-mix(in srgb,var(--surface-glass) 90%,#fbf5ea);box-shadow:0 8px 32px rgba(27,38,48,.05)}
body[data-theme="scene"] .panel,body[data-theme="scene"] .event-card,body[data-theme="scene"] .client-actions>a,body[data-theme="scene"] .role-card,body[data-theme="scene"] .day-planner{border-color:rgba(173,143,104,.22);box-shadow:inset 0 1px rgba(211,178,131,.20),0 18px 45px rgba(31,39,46,.065)}
body[data-theme="scene"] .welcome,body[data-theme="scene"] .client-hero,body[data-theme="scene"] .planner-summary{background:radial-gradient(ellipse at 84% 0,rgba(228,202,161,.23),transparent 38%),linear-gradient(135deg,#122233,#314557);border-color:rgba(216,187,143,.24);box-shadow:0 23px 55px rgba(16,31,45,.18)}
body[data-theme="scene"] .welcome::before,body[data-theme="scene"] .client-hero::before,body[data-theme="scene"] .planner-summary::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 0 61%,rgba(255,245,226,.07) 61.3%,transparent 62%),radial-gradient(ellipse at 75% -30%,rgba(255,241,215,.13),transparent 42%)}
body[data-theme="scene"] .btn{color:#152233;background:linear-gradient(135deg,#e1c59a,#b98a50);border:1px solid rgba(111,76,35,.16);box-shadow:0 10px 25px rgba(168,122,64,.18)}
body[data-theme="scene"] .btn:hover{box-shadow:0 15px 32px rgba(168,122,64,.27)}
body[data-theme="scene"] .panel-heading-icon,body[data-theme="scene"] .stats>div>i,body[data-theme="scene"] .client-actions>a>i{color:#493721;background:linear-gradient(145deg,#f5e8d1,#dec092);border:1px solid rgba(166,127,77,.18)}
body[data-theme="scene"] .planner-card{border-left-color:#bd8d52;box-shadow:0 9px 25px rgba(38,43,48,.07)}
body[data-theme="scene"] .login-brand{background:radial-gradient(ellipse at 26% 5%,rgba(225,194,145,.20),transparent 33%),linear-gradient(145deg,#0b1622,#172b3e 61%,#35495a)}
body[data-theme="scene"] .login-brand::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(116deg,transparent 0 56%,rgba(248,225,187,.07) 56.3%,transparent 57%),radial-gradient(ellipse at 78% -10%,rgba(239,215,176,.15),transparent 34%)}
body[data-theme="scene"] .login-benefits b{border-color:rgba(227,201,159,.18);background:rgba(255,250,240,.07)}
body[data-theme="scene"] .login-benefits i{color:#2d3740;background:#e4c99f}
html[data-color-mode="dark"] body[data-theme="scene"]{--bg:#0e151c;--card:#151e26;--text:#f3eee5;--muted:#aaa59d;--line:#303840;--surface-glass:rgba(15,23,31,.91);--accent-soft:color-mix(in srgb,var(--purple) 16%,#182028);--accent-ink:#e4c79d;background:radial-gradient(ellipse at 80% -8%,rgba(196,154,98,.12),transparent 32rem),linear-gradient(120deg,rgba(255,255,255,.018),transparent 42%),var(--bg)}
html[data-color-mode="dark"] body[data-theme="scene"] .panel,html[data-color-mode="dark"] body[data-theme="scene"] .event-card,html[data-color-mode="dark"] body[data-theme="scene"] .client-actions>a,html[data-color-mode="dark"] body[data-theme="scene"] .role-card,html[data-color-mode="dark"] body[data-theme="scene"] .day-planner{background:#151e26;border-color:rgba(198,163,112,.22)}
body[data-theme]:has(> .login) { padding-bottom: 0; }

body[data-theme] .sidebar {
  width: 258px;
  padding: 27px 17px 18px;
  background:
    radial-gradient(circle at 86% 4%, rgba(255,255,255,.13), transparent 20%),
    linear-gradient(165deg, var(--sidebar-from), var(--sidebar-via) 58%, var(--sidebar-to) 125%);
  box-shadow: 18px 0 50px rgba(17,24,53,.10);
}
body[data-theme] .sidebar::before {
  content: "";
  position: absolute;
  right: -90px;
  bottom: 5%;
  width: 210px;
  height: 210px;
  border: 34px solid rgba(255,255,255,.035);
  border-radius: 50%;
  pointer-events: none;
}
body[data-theme] .sidebar > * { position: relative; z-index: 1; }
body[data-theme] .brand { padding: 0 9px 26px; }
body[data-theme] .brand > i,
body[data-theme] .big-logo,
body[data-theme] .login-card-logo,
body[data-theme] .install-logo {
  background: linear-gradient(140deg, var(--purple), var(--purple-2));
  box-shadow: 0 10px 28px color-mix(in srgb, var(--purple) 36%, transparent);
}
body[data-theme] .brand > b { font-size: 20px; letter-spacing: -.03em; }
body[data-theme] .brand small { color: rgba(224,230,255,.62); }
body[data-theme] .sidebar nav {
  min-height: 0;
  padding: 4px 2px 10px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.14) transparent;
}
body[data-theme] .sidebar nav a {
  min-height: 47px;
  padding: 0 14px;
  border: 1px solid transparent;
  color: rgba(224,230,251,.70);
  border-radius: 13px;
}
body[data-theme] .sidebar nav a i {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  color: rgba(222,227,248,.64);
  background: rgba(255,255,255,.055);
  border-radius: 8px;
}
body[data-theme] .sidebar nav a:hover {
  color: white;
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.06);
  transform: translateX(2px);
}
body[data-theme] .sidebar nav a.active {
  color: white;
  background: linear-gradient(110deg, color-mix(in srgb, var(--purple) 74%, transparent), rgba(255,255,255,.08));
  border-color: rgba(255,255,255,.10);
  box-shadow: 0 10px 25px rgba(3,8,28,.16);
}
body[data-theme] .sidebar nav a.active i { color: white; background: rgba(255,255,255,.14); }
body[data-theme] .account {
  margin-top: auto;
  padding: 16px 8px 2px;
  border-top-color: rgba(255,255,255,.10);
}
body[data-theme] .account > i,
body[data-theme] .header-user > i {
  background: linear-gradient(140deg, var(--purple), var(--purple-2));
  box-shadow: 0 7px 17px color-mix(in srgb, var(--purple) 23%, transparent);
}
body[data-theme] .main { margin-left: 258px; background: transparent; }
body[data-theme] .main > header {
  height: 86px;
  padding: 17px clamp(24px,4vw,60px);
  background: var(--surface-glass);
  border-bottom-color: color-mix(in srgb, var(--line) 80%, transparent);
  box-shadow: 0 8px 30px rgba(28,35,71,.035);
}
body[data-theme] .main > header h1 { margin-top: 4px; font-size: 23px; letter-spacing: -.025em; }
body[data-theme] header small,
body[data-theme] .page-title small,
body[data-theme] .welcome small { color: var(--accent-ink); }
body[data-theme] .header-user > span { display: grid; justify-items: end; gap: 2px; }
body[data-theme] .header-user > span b { font-size: 12px; }
body[data-theme] .header-user > span small { color: var(--muted); font-size: 12px; letter-spacing: 0; text-transform: none; }
body[data-theme] .header-user > a { margin-left: 3px; }
body[data-theme] .content { max-width: 1440px; padding-top: 31px; }

body[data-theme] .panel,
body[data-theme] .event-card,
body[data-theme] .client-actions > a,
body[data-theme] .role-new-card,
body[data-theme] .role-card,
body[data-theme] .day-planner,
body[data-theme] .empty {
  background: rgba(255,255,255,.94);
  border-color: var(--line);
  box-shadow: 0 12px 34px rgba(26,32,62,.065), 0 2px 8px rgba(26,32,62,.025);
}
body[data-theme] .panel,
body[data-theme] .event-card,
body[data-theme] .client-actions > a,
body[data-theme] .role-new-card,
body[data-theme] .role-card { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
body[data-theme] .event-card:hover,
body[data-theme] .client-actions > a:hover,
body[data-theme] .role-new-card:hover,
body[data-theme] .role-card:hover {
  border-color: color-mix(in srgb, var(--purple) 25%, var(--line));
  box-shadow: 0 17px 42px rgba(26,32,62,.10);
  transform: translateY(-3px);
}
body[data-theme] .page-title h2,
body[data-theme] .section-title h2 { letter-spacing: -.035em; }
body[data-theme] .page-title h2 { font-size: 29px; }
body[data-theme] .page-title p { max-width: 670px; line-height: 1.55; }

body[data-theme] .welcome,
body[data-theme] .client-hero,
body[data-theme] .planner-summary {
  background:
    radial-gradient(circle at 82% 16%, rgba(255,255,255,.16), transparent 28%),
    radial-gradient(circle at 15% 120%, color-mix(in srgb, var(--purple) 38%, transparent), transparent 35%),
    linear-gradient(120deg, var(--hero-from), var(--hero-to));
  box-shadow: 0 22px 54px color-mix(in srgb, var(--hero-from) 23%, transparent);
}
body[data-theme] .welcome { position: relative; overflow: hidden; }
body[data-theme] .welcome::after {
  content: "";
  position: absolute;
  right: 10%;
  bottom: -105px;
  width: 220px;
  height: 220px;
  border: 34px solid rgba(255,255,255,.045);
  border-radius: 50%;
}
body[data-theme] .welcome > * { position: relative; z-index: 1; }
body[data-theme] .event-cover,
body[data-theme] .client-event-date {
  background: radial-gradient(circle at 72% 28%, rgba(255,255,255,.22), transparent 24%), linear-gradient(140deg, var(--hero-from), var(--hero-to));
}
body[data-theme] .btn {
  min-height: 46px;
  background: linear-gradient(135deg, var(--purple), var(--purple-2));
  box-shadow: 0 10px 24px color-mix(in srgb, var(--purple) 25%, transparent);
}
body[data-theme] .btn:hover { box-shadow: 0 13px 28px color-mix(in srgb, var(--purple) 32%, transparent); transform: translateY(-2px); }
body[data-theme] .mini-btn { color: var(--accent-ink); background: var(--accent-soft); }
body[data-theme] input,
body[data-theme] select,
body[data-theme] textarea {
  background: color-mix(in srgb, var(--bg) 52%, white);
  border-color: color-mix(in srgb, var(--line) 80%, #cad0dc);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
body[data-theme] input:hover,
body[data-theme] select:hover,
body[data-theme] textarea:hover { border-color: color-mix(in srgb, var(--purple) 25%, var(--line)); }
body[data-theme] input:focus,
body[data-theme] select:focus,
body[data-theme] textarea:focus {
  background: white;
  border-color: var(--purple);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--purple) 12%, transparent);
}
body[data-theme] input[type="checkbox"],
body[data-theme] input[type="radio"] { accent-color: var(--purple); }
body[data-theme] .stats > div { border-color: var(--line); box-shadow: 0 10px 30px rgba(26,32,62,.055); }
body[data-theme] .stats > div > i,
body[data-theme] .client-actions > a > i,
body[data-theme] .preference-heading > i,
body[data-theme] .planner-empty > i,
body[data-theme] .role-new-card > i,
body[data-theme] .music-list article > i {
  color: var(--accent-ink);
  background: var(--accent-soft);
}
body[data-theme] .progress i,
body[data-theme] .client-progress-bar i { background: linear-gradient(90deg, var(--purple), var(--purple-2)); }
body[data-theme] .planner-help,
body[data-theme] .preferences-intro {
  color: var(--accent-ink);
  background: var(--accent-soft);
  border-color: color-mix(in srgb, var(--purple) 20%, white);
}
body[data-theme] .planner-toolbar { background: color-mix(in srgb, var(--bg) 62%, white); }
body[data-theme] .planner-toolbar span i { background: var(--purple); box-shadow: 0 0 0 4px var(--accent-soft); }
body[data-theme] .planner-dropzone { background-image: linear-gradient(90deg,color-mix(in srgb,var(--purple) 3%,transparent),transparent 36%); }
body[data-theme] .planner-dropzone.is-drag-over { background: var(--accent-soft); box-shadow: inset 0 0 0 2px color-mix(in srgb,var(--purple) 65%,white); }
body[data-theme] .planner-card { border-left-color: var(--purple); }
body[data-theme] .planner-card-time b,
body[data-theme] .planner-card-copy > span,
body[data-theme] .mini-link,
body[data-theme] .client-next time,
body[data-theme] .client-actions > a > em,
body[data-theme] .client-next .section-title a { color: var(--accent-ink); }
body[data-theme] .quick-move-form .primary-shift { background: var(--purple); border-color: var(--purple); }
body[data-theme] .planner-toast { background: var(--navy-2); }
body[data-theme] .mobile-nav { box-shadow: 0 -10px 32px rgba(26,32,62,.08); }

/* Nouvelle connexion */
body[data-theme] .login { grid-template-columns: minmax(440px,1.08fr) minmax(460px,.92fr); }
body[data-theme] .login-brand {
  min-height: 100vh;
  padding: clamp(38px,5.2vw,82px) clamp(42px,7vw,105px);
  background:
    radial-gradient(circle at 78% 17%, rgba(255,255,255,.15), transparent 23%),
    radial-gradient(circle at 7% 88%, color-mix(in srgb,var(--purple) 38%,transparent), transparent 28%),
    linear-gradient(145deg, var(--sidebar-from), var(--sidebar-via) 56%, var(--sidebar-to) 125%);
  justify-content: space-between;
}
body[data-theme] .login-brand::before {
  content: "";
  position: absolute;
  top: 11%;
  right: 8%;
  width: 10px;
  height: 10px;
  background: white;
  border-radius: 50%;
  opacity: .5;
  box-shadow: 55px 65px 0 -2px rgba(255,255,255,.45), -65px 90px 0 -3px rgba(255,255,255,.4), 30px 160px 0 -3px rgba(255,255,255,.35);
}
body[data-theme] .login-brand-top { position: relative; z-index: 1; display: flex !important; align-items: center; gap: 14px; color: white; }
body[data-theme] .login-brand-top h1 { margin: 0; font-size: 23px; letter-spacing: -.04em; }
body[data-theme] .login-brand-copy { position: relative; z-index: 1; display: block !important; color: white; }
body[data-theme] .login-brand-copy > small { color: rgba(235,239,255,.65); font-size: 12px; font-weight: 800; letter-spacing: .19em; }
body[data-theme] .login-brand-copy h2 { margin-top: 15px; font-size: clamp(40px,4.5vw,66px); letter-spacing: -.055em; }
body[data-theme] .login-brand-copy > p { max-width: 570px; margin: 22px 0 32px; color: rgba(232,237,255,.75); font-size: 15px; }
body[data-theme] .login-benefits { display: flex !important; flex-wrap: wrap; gap: 10px !important; }
body[data-theme] .login-benefits b { padding: 9px 13px 9px 9px; background: rgba(255,255,255,.075); border: 1px solid rgba(255,255,255,.10); border-radius: 30px; font-size: 12px; font-weight: 600; backdrop-filter: blur(8px); }
body[data-theme] .login-benefits i { display: inline-grid; width: 20px; height: 20px; margin-right: 5px; place-items: center; color: var(--navy); background: white; border-radius: 50%; font-size: 12px; font-style: normal; }
body[data-theme] .login-signature { position: relative; z-index: 1; color: rgba(232,237,255,.52); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
body[data-theme] .login-side {
  padding: clamp(28px,5vw,70px);
  background: radial-gradient(circle at 100% 0,var(--page-glow),transparent 34%), color-mix(in srgb,var(--bg) 65%,white);
}
body[data-theme] .login-card {
  position: relative;
  width: min(100%,455px);
  padding: 45px 43px 38px;
  border-color: color-mix(in srgb,var(--line) 80%,white);
  border-radius: 28px;
  box-shadow: 0 28px 80px rgba(26,32,62,.13), 0 4px 15px rgba(26,32,62,.05);
}
body[data-theme] .login-card-logo { display: grid; width: 45px; height: 45px; margin-bottom: 24px; place-items: center; color: white; border-radius: 14px; font-size: 13px; font-weight: 800; }
body[data-theme] .login-card > small { color: var(--accent-ink); }
body[data-theme] .login-card h2 { margin-top: 10px; font-size: 29px; letter-spacing: -.04em; }
body[data-theme] .login-card input { min-height: 51px; padding-inline: 15px; border-radius: 12px; }
body[data-theme] .login-submit { margin-top: 7px; padding-inline: 18px; justify-content: space-between; }
body[data-theme] .login-submit i { display: grid; width: 27px; height: 27px; place-items: center; background: rgba(255,255,255,.16); border-radius: 9px; font-style: normal; }

/* Studio d’apparence */
.site-page-title { align-items: center; }
.live-preview-badge { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; color: #0b7754; background: #e8faf2; border: 1px solid #c7efdd; border-radius: 30px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.live-preview-badge i { width: 7px; height: 7px; background: #16a875; border-radius: 50%; box-shadow: 0 0 0 4px rgba(22,168,117,.12); animation: preview-pulse 1.8s ease infinite; }
@keyframes preview-pulse { 50% { box-shadow: 0 0 0 7px rgba(22,168,117,0); } }
.site-settings-form { display: grid; gap: 20px; }
.appearance-studio { padding: 27px; }
.panel-heading { margin-bottom: 23px; display: flex; align-items: center; gap: 13px; }
.panel-heading.compact { margin-bottom: 21px; align-items: flex-start; }
.panel-heading-icon { display: grid; flex: 0 0 43px; height: 43px; place-items: center; color: white; background: linear-gradient(135deg,var(--purple),var(--purple-2)); border-radius: 13px; box-shadow: 0 8px 18px color-mix(in srgb,var(--purple) 20%,transparent); font-size: 14px; font-weight: 800; }
.panel-heading small { color: var(--accent-ink); font-size: 12px; font-weight: 800; letter-spacing: .15em; }
.panel-heading h3 { margin: 4px 0 3px; font-size: 18px; letter-spacing: -.025em; }
.panel-heading p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.theme-picker { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; }
.theme-choice { position: relative; min-width: 0; padding: 10px; background: color-mix(in srgb,var(--bg) 55%,white); border: 2px solid transparent; border-radius: 16px; cursor: pointer; transition: .2s ease; }
.theme-choice:hover { border-color: color-mix(in srgb,var(--purple) 20%,var(--line)); transform: translateY(-2px); }
.theme-choice:has(input:checked) { background: var(--accent-soft); border-color: var(--purple); box-shadow: 0 10px 28px color-mix(in srgb,var(--purple) 12%,transparent); }
.theme-choice > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.theme-preview { height: 102px; overflow: hidden; background: var(--preview-soft); border-radius: 11px; display: grid; grid-template-columns: 28% 72%; }
.theme-preview-sidebar { padding: 11px 7px; background: linear-gradient(160deg,var(--preview-dark),color-mix(in srgb,var(--preview-dark) 70%,var(--preview-accent))); display: grid; align-content: start; gap: 7px; }
.theme-preview-sidebar::before { content: ""; width: 15px; height: 15px; margin-bottom: 5px; background: var(--preview-accent); border-radius: 5px; }
.theme-preview-sidebar em { height: 4px; background: rgba(255,255,255,.24); border-radius: 5px; }
.theme-preview-sidebar em:nth-child(2) { background: rgba(255,255,255,.5); }
.theme-preview-content { padding: 12px 9px; display: grid; grid-template-columns: repeat(2,1fr); align-content: start; gap: 6px; }
.theme-preview-content::before { content: ""; grid-column: 1/-1; width: 47%; height: 5px; background: var(--preview-dark); border-radius: 6px; }
.theme-preview-content em { grid-column: 1/-1; height: 27px; margin-top: 3px; background: linear-gradient(120deg,var(--preview-dark),var(--preview-accent)); border-radius: 6px; }
.theme-preview-content b,.theme-preview-content span { height: 20px; background: white; border: 1px solid color-mix(in srgb,var(--preview-dark) 10%,transparent); border-radius: 5px; }
.theme-choice-copy { padding: 11px 3px 3px; display: block; }
.theme-choice-copy b,.theme-choice-copy small { display: block; }
.theme-choice-copy b { font-size: 12px; }
.theme-choice-copy small { margin-top: 4px; color: var(--muted); font-size: 12px; }
.theme-selected { position: absolute; top: 17px; right: 17px; display: grid; width: 22px; height: 22px; place-items: center; color: white; background: var(--purple); border: 3px solid white; border-radius: 50%; opacity: 0; transform: scale(.6); transition: .18s ease; font-size: 12px; font-style: normal; }
.theme-choice input:checked ~ .theme-selected { opacity: 1; transform: scale(1); }
.appearance-controls { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); display: grid; grid-template-columns: .8fr 1.3fr .9fr; align-items: center; gap: 18px; }
.accent-control { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.accent-control > span:first-child b,.accent-control > span:first-child small { display: block; }
.accent-control > span:first-child b { font-size: 12px; }
.accent-control > span:first-child small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.color-input-wrap { display: flex; align-items: center; gap: 8px; }
.color-input-wrap input[type="color"] { width: 42px; height: 39px; min-height: 0; padding: 4px; background: white; border-radius: 10px; cursor: pointer; }
.color-input-wrap output { color: var(--muted); font-size: 12px; font-weight: 800; }
.density-control { margin: 0; padding: 0 18px; border: 0; border-inline: 1px solid var(--line); display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; }
.density-control legend { margin-bottom: 7px; color: #4c5672; font-size: 12px; font-weight: 800; }
.density-control label { padding: 9px; background: color-mix(in srgb,var(--bg) 55%,white); border: 1px solid var(--line); border-radius: 10px; display: flex; flex-direction: row; align-items: center; gap: 7px; cursor: pointer; }
.density-control label:has(input:checked) { background: var(--accent-soft); border-color: color-mix(in srgb,var(--purple) 42%,white); }
.density-control input { flex: 0 0 auto; width: 14px; min-height: 14px; }
.density-control span b,.density-control span small { display: block; }
.density-control span b { font-size: 12px; }
.density-control span small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.site-settings-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.site-form-card { display: grid; gap: 15px; }
.site-form-card .panel-heading { margin-bottom: 3px; }
.site-modules-card .panel-heading { margin-bottom: 7px; }
.switch-row { position: relative; grid-template-columns: 1fr auto; align-items: center; cursor: pointer; }
.switch-row > input { position: absolute; right: 0; width: 42px; height: 24px; min-height: 0; opacity: 0; cursor: pointer; }
.switch-row > i:last-child { position: relative; flex: 0 0 42px; width: 42px; height: 24px; background: #dfe3eb; border-radius: 30px; transition: .2s ease; pointer-events: none; }
.switch-row > i:last-child::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; background: white; border-radius: 50%; box-shadow: 0 2px 6px rgba(23,32,58,.18); transition: .2s ease; }
.switch-row > input:checked + i:last-child { background: var(--purple); }
.switch-row > input:checked + i:last-child::after { transform: translateX(18px); }
.motion-control span b,.motion-control span small { display: block; }
.motion-control span b { font-size: 12px; }
.motion-control span small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.site-modules-card .module { margin: 0; padding: 15px 0; grid-template-columns: 42px 1fr auto; }
.site-modules-card .module:last-child { border-bottom: 0; }
.site-modules-card .module-icon { display: grid; width: 38px; height: 38px; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border-radius: 11px; font-style: normal; font-size: 16px; }
.site-save-bar { position: relative; bottom: auto; z-index: 1; margin-top: 2px; padding: 14px 15px 14px 20px; background: rgba(255,255,255,.92); border: 1px solid var(--line); border-radius: 17px; box-shadow: 0 12px 34px rgba(26,32,62,.09); display: flex; align-items: center; justify-content: space-between; gap: 20px; backdrop-filter: blur(16px); transition: border-color .2s ease,box-shadow .2s ease; }
.site-save-bar.is-dirty { border-color: color-mix(in srgb,var(--purple) 35%,var(--line)); box-shadow: 0 18px 48px color-mix(in srgb,var(--purple) 14%,transparent); }
.site-save-bar > span b,.site-save-bar > span small { display: block; }
.site-save-bar > span b { font-size: 12px; }
.site-save-bar > span small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.site-save-bar .btn { gap: 12px; }
.site-save-bar .btn:disabled { opacity: .45; cursor: not-allowed; filter: saturate(.45); box-shadow: none; transform: none; }
.site-save-bar .btn i { font-style: normal; }
.site-save-bar .btn.is-saving { opacity: .75; pointer-events: none; }

/* Densité et mouvement */
body[data-density="compact"] .content { padding-top: 23px; padding-bottom: 42px; }
body[data-density="compact"] .panel { padding: 19px; }
body[data-density="compact"] .stats { margin: 17px 0 25px; }
body[data-density="compact"] .stats > div { min-height: 86px; padding: 15px 18px; }
body[data-density="compact"] .sidebar nav a { min-height: 40px; }
body[data-density="compact"] .event-body { padding: 16px; }
body[data-density="compact"] .client-actions > a { min-height: 91px; padding: 15px; }
body[data-density="compact"] .planner-slot { min-height: 60px; }
body[data-density="compact"] .planner-dropzone { min-height: 59px; }
body[data-density="compact"] .planner-card-main { min-height: 59px; }
body[data-motion="0"] *,
body[data-motion="0"] *::before,
body[data-motion="0"] *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

@media (max-width: 1100px) {
  .event-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .form-grid, .permission-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .login-brand { padding: 60px; }
}

@media (max-width: 780px) {
  body { padding-bottom: 68px; }
  .sidebar { display: none; }
  .main { margin-left: 0; }
  .main > header { height: 75px; padding: 14px 18px; }
  header h1 { font-size: 20px; }
  .header-user a { display: none; }
  .content { padding: 22px 16px 32px; }
  .mobile-nav { position: fixed; inset: auto 0 0; z-index: 30; height: 69px; padding: 7px 8px calc(7px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-around; backdrop-filter: blur(14px); }
  .mobile-nav a { min-width: 55px; color: #8992aa; display: grid; justify-items: center; gap: 3px; font-size: 12px; font-weight: 700; }
  .mobile-nav a i { font-style: normal; font-size: 18px; }
  .mobile-nav a.active { color: var(--purple); }
  .welcome { min-height: 0; padding: 27px 23px; align-items: start; flex-direction: column; }
  .welcome h2 { font-size: 26px; }
  .stats { grid-template-columns: 1fr; gap: 10px; }
  .stats > div { min-height: 78px; padding: 14px 17px; }
  .stats > div > i { width: 42px; height: 42px; }
  .event-grid, .admin-grid, .settings-grid, .permission-grid, .access-grid, .form-grid, .form-grid.two, .checks { grid-template-columns: 1fr; }
  .page-title h2 { font-size: 23px; }
  .panel { padding: 19px; }
  .timeline::before { left: 65px; }
  .timeline article { grid-template-columns: 50px 15px 1fr; gap: 10px; }
  .time b { font-size: 13px; }
  .timeline-card { padding: 18px; }
  .delete { position: static; padding: 8px 0 0; }
  .table-head { display: none; }
  .table-row { grid-template-columns: 1fr auto; }
  .table-row.users-row { grid-template-columns: 1fr auto; }
  .table-row em:last-child { display: none; }
  .music-list article { flex-wrap: wrap; }
  .music-list article > span { width: calc(100% - 55px); }
  .offline-settings, .offline-event-info, .offline-hero { align-items: stretch; flex-direction: column; }
  .offline-actions { justify-items: stretch; }
  .connection-pill { right: 10px; bottom: 78px; }
  .offline-page { padding-bottom: 0; }
  .offline-main { padding-top: 20px; }
  .offline-meta { grid-template-columns: 1fr; gap: 8px; }
  .offline-footer { align-items: flex-start; flex-direction: column; }
  .client-hero { min-height: 0; padding: 27px 23px; align-items: stretch; flex-direction: column; }
  .countdown { width: auto; height: auto; padding: 15px; border-radius: 15px; display: flex; align-items: center; justify-content: space-between; text-align: left; }
  .countdown b { font-size: 30px; }
  .countdown span { max-width: none; margin: 0 0 0 12px; }
  .client-progress { grid-template-columns: 1fr; gap: 14px; }
  .client-actions,.client-columns,.preference-two { grid-template-columns: 1fr; }
  .client-actions > a { min-height: 92px; grid-template-columns: 44px 1fr; }
  .client-actions > a > i { width: 44px; height: 44px; }
  .client-actions > a > em { grid-column: 2; text-align: left; }
  .client-event-detail { grid-template-columns: 74px 1fr; gap: 14px; }
  .client-event-date { min-height: 76px; }
  .client-event-links { grid-column: 1/-1; justify-items: stretch; }
  .client-event-links .btn { width: 100%; }
  .client-help { align-items: flex-start; flex-wrap: wrap; }
  .client-help > a { width: 100%; margin-left: 56px; }
  .preference-section { padding: 20px 18px; }
  .preferences-save { bottom: 79px; align-items: stretch; flex-direction: column; }
  .planner-page-title { align-items: stretch; flex-direction: column; gap: 13px; }
  .planner-help { max-width: none; }
  .planner-summary { padding: 15px; grid-template-columns: 48px 1fr auto; gap: 11px; }
  .planner-summary > div { width: 48px; height: 48px; }
  .planner-summary > div span { font-size: 20px; }
  .planner-summary strong { min-width: 48px; padding-left: 10px; }
  .planner-summary strong b { font-size: 22px; }
  .planner-toolbar { align-items: flex-start; flex-direction: column; gap: 4px; }
  .planner-scroll { max-height: 68vh; }
  .planner-slot { grid-template-columns: 48px 1fr; }
  .planner-slot > time { padding-right: 7px; }
  .planner-dropzone { padding: 5px 6px; }
  .planner-card-main { padding: 9px 9px 9px 6px; grid-template-columns: 20px 53px 1fr; gap: 7px; }
  .planner-drag-handle { width: 20px; font-size: 14px; }
  .planner-card-time { padding-right: 6px; }
  .planner-card-time b { font-size: 13px; }
  .planner-card-copy h3 { font-size: 12px; }
  .planner-card-copy p { display: none; }
  .planner-card-actions { padding: 8px; align-items: stretch; flex-direction: column; }
  .quick-move-form { display: grid; grid-template-columns: repeat(2,1fr); }
  .quick-move-form button { padding: 0 5px; }
  .planner-editor > summary { justify-content: center; }
  .planner-editor[open] > summary { width: 100%; }
  .planner-toast { bottom: 84px; white-space: nowrap; }
  .admin-user-grid,.roles-layout,.role-permissions { grid-template-columns: 1fr; }
  .roles-list { grid-template-columns: 1fr; }
  .assign-role-form { grid-template-columns: 1fr; }
  .delete-role-zone { align-items: stretch; flex-direction: column; }
  .login { grid-template-columns: 1fr; }
  .login-brand { min-height: 330px; padding: 35px 28px; }
  .login-brand h1 { margin-bottom: 30px; }
  .login-brand h2 { font-size: 35px; }
  .login-brand > p { margin: 15px 0 20px; font-size: 13px; }
  .login-side { padding: 22px 15px; }
  .login-card { padding: 27px 22px; }
  .installer { padding: 20px 12px; }
  .install-card { padding: 25px 20px; }
  .form-row { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .event-grid { grid-template-columns: 1fr; }
  .event-cover { min-height: 115px; }
  .login-brand > div { display: none; }
  .login-brand { min-height: 285px; }
}

@media (max-width: 1100px) {
  .theme-picker { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .appearance-controls { grid-template-columns: 1fr 1.4fr; }
  .motion-control { grid-column: 1/-1; padding-top: 14px; border-top: 1px solid var(--line); }
}

@media (max-width: 900px) {
  body[data-theme] .login { grid-template-columns: 1fr; }
  body[data-theme] .login-brand { min-height: 430px; padding: 36px clamp(28px,7vw,65px); }
  body[data-theme] .login-brand-copy h2 { font-size: clamp(36px,7vw,52px); }
  body[data-theme] .login-signature { display: none; }
  body[data-theme] .login-side { padding-block: 38px; }
}

@media (max-width: 780px) {
  body[data-theme] .main { margin-left: 0; }
  body[data-theme] .main > header { height: 75px; padding: 14px 18px; }
  body[data-theme] .content { padding: 22px 16px 32px; }
  body[data-theme] .header-user > span { display: none; }
  body[data-theme] .page-title h2 { font-size: 24px; }
  body[data-theme] .panel { padding: 19px; }
  .site-page-title { align-items: flex-start; flex-direction: column; gap: 12px; }
  .live-preview-badge { align-self: flex-start; }
  .appearance-studio { padding: 18px; }
  .appearance-controls,.site-settings-columns { grid-template-columns: 1fr; }
  .density-control { padding: 15px 0; border: 0; border-block: 1px solid var(--line); }
  .motion-control { grid-column: auto; padding-top: 0; border: 0; }
  .site-save-bar { bottom: auto; align-items: stretch; flex-direction: column; }
  .site-save-bar .btn { width: 100%; }
  body[data-theme] .login-brand { min-height: 380px; padding: 30px 25px; }
  body[data-theme] .login-brand-top { display: flex !important; }
  body[data-theme] .login-brand-copy { display: block !important; }
  body[data-theme] .login-brand-copy > p { margin: 15px 0 21px; font-size: 13px; }
  body[data-theme] .login-brand-copy h2 { margin-bottom: 0; font-size: 37px; }
  body[data-theme] .login-benefits { gap: 7px !important; }
  body[data-theme] .login-benefits b { padding: 7px 10px 7px 7px; font-size: 12px; }
  body[data-theme] .login-side { padding: 24px 14px; }
  body[data-theme] .login-card { padding: 29px 23px; border-radius: 22px; }
}

@media (max-width: 480px) {
  .theme-picker { grid-template-columns: 1fr; }
  .theme-preview { height: 88px; }
  .density-control { grid-template-columns: 1fr; }
  .panel-heading { align-items: flex-start; }
  .panel-heading-icon { flex-basis: 38px; height: 38px; }
  .site-settings-form { gap: 14px; }
  body[data-theme] .login-brand { min-height: 350px; }
  body[data-theme] .login-brand-copy h2 { font-size: 32px; }
  body[data-theme] .login-brand-copy > small { font-size: 12px; }
  body[data-theme] .login-benefits b:last-child { display: none; }
}

/* =========================================================
   Mode jour / nuit EventLink 1.4.1
   ========================================================= */
.color-mode-toggle {
  min-height: 38px;
  padding: 5px 11px 5px 6px;
  color: var(--text);
  background: color-mix(in srgb,var(--card) 88%,transparent);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 7px 20px rgba(26,32,62,.06);
  display: inline-flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
  transition: transform .18s ease,background .18s ease,border-color .18s ease;
}
.color-mode-toggle:hover { border-color: color-mix(in srgb,var(--purple) 30%,var(--line)); transform: translateY(-1px); }
.color-mode-toggle > i,
.header-user .color-mode-toggle > i {
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  color: var(--accent-ink);
  background: var(--accent-soft);
  border-radius: 8px;
  box-shadow: none;
  font-size: 14px;
  font-style: normal;
}
.color-mode-toggle > span { font-size: 12px; font-weight: 800; white-space: nowrap; }
.login-side { position: relative; }
.login-mode-toggle { position: absolute; top: 22px; right: 22px; z-index: 4; }

html[data-color-mode="dark"] body[data-theme] {
  --bg: #0d1118;
  --card: #181d28;
  --text: #f2f5fb;
  --muted: #9aa5ba;
  --line: #2b3241;
  --blue: #182236;
  --shadow: 0 14px 38px rgba(0,0,0,.22);
  --accent-soft: color-mix(in srgb,var(--purple) 18%,#171c27);
  --accent-ink: color-mix(in srgb,var(--purple) 55%,white);
  --page-glow: color-mix(in srgb,var(--purple) 12%,transparent);
  --surface-glass: rgba(16,20,28,.88);
  background:
    radial-gradient(circle at 82% -8%,var(--page-glow),transparent 30rem),
    radial-gradient(circle at 20% 110%,color-mix(in srgb,var(--purple) 7%,transparent),transparent 38rem),
    var(--bg);
}
html[data-color-mode="dark"] body[data-theme] .main > header {
  background: var(--surface-glass);
  border-bottom-color: var(--line);
  box-shadow: 0 10px 35px rgba(0,0,0,.12);
}
html[data-color-mode="dark"] body[data-theme] .panel,
html[data-color-mode="dark"] body[data-theme] .event-card,
html[data-color-mode="dark"] body[data-theme] .client-actions > a,
html[data-color-mode="dark"] body[data-theme] .role-new-card,
html[data-color-mode="dark"] body[data-theme] .role-card,
html[data-color-mode="dark"] body[data-theme] .day-planner,
html[data-color-mode="dark"] body[data-theme] .empty,
html[data-color-mode="dark"] body[data-theme] .timeline-card,
html[data-color-mode="dark"] body[data-theme] .offline-meta > div {
  background: rgba(24,29,40,.96);
  border-color: var(--line);
  box-shadow: 0 14px 38px rgba(0,0,0,.18);
}
html[data-color-mode="dark"] body[data-theme] .stats > div { background: var(--card); border-color: var(--line); box-shadow: 0 12px 32px rgba(0,0,0,.16); }
html[data-color-mode="dark"] body[data-theme] input,
html[data-color-mode="dark"] body[data-theme] select,
html[data-color-mode="dark"] body[data-theme] textarea {
  color: var(--text);
  background: #121722;
  border-color: #343c4e;
}
html[data-color-mode="dark"] body[data-theme] input::placeholder,
html[data-color-mode="dark"] body[data-theme] textarea::placeholder { color: #707b90; }
html[data-color-mode="dark"] body[data-theme] input:focus,
html[data-color-mode="dark"] body[data-theme] select:focus,
html[data-color-mode="dark"] body[data-theme] textarea:focus { background: #161c28; }
html[data-color-mode="dark"] body[data-theme] label { color: #c2cad9; }
html[data-color-mode="dark"] body[data-theme] .table-head,
html[data-color-mode="dark"] body[data-theme] .planner-toolbar,
html[data-color-mode="dark"] body[data-theme] .assign-role-form,
html[data-color-mode="dark"] body[data-theme] .checks label,
html[data-color-mode="dark"] body[data-theme] .role-permissions > label,
html[data-color-mode="dark"] body[data-theme] .theme-choice,
html[data-color-mode="dark"] body[data-theme] .density-control label {
  background: #141924;
  border-color: var(--line);
}
html[data-color-mode="dark"] body[data-theme] .theme-choice:has(input:checked),
html[data-color-mode="dark"] body[data-theme] .density-control label:has(input:checked) {
  background: var(--accent-soft);
  border-color: var(--purple);
}
html[data-color-mode="dark"] body[data-theme] .table-row,
html[data-color-mode="dark"] body[data-theme] .music-list article,
html[data-color-mode="dark"] body[data-theme] .client-checklist > a,
html[data-color-mode="dark"] body[data-theme] .client-next > div:not(.section-title),
html[data-color-mode="dark"] body[data-theme] .planner-slot { border-color: var(--line); }
html[data-color-mode="dark"] body[data-theme] .planner-slot > time { color: var(--muted); border-color: var(--line); }
html[data-color-mode="dark"] body[data-theme] .planner-slot.full-hour > time b { color: #d8deea; }
html[data-color-mode="dark"] body[data-theme] .planner-slot.half-hour > time b { color: #667187; }
html[data-color-mode="dark"] body[data-theme] .planner-dropzone { background-image: linear-gradient(90deg,color-mix(in srgb,var(--purple) 5%,transparent),transparent 38%); }
html[data-color-mode="dark"] body[data-theme] .planner-card { color: var(--text); background: #1b2130; border-color: #343c4e; border-left-color: var(--purple); box-shadow: 0 8px 24px rgba(0,0,0,.2); }
html[data-color-mode="dark"] body[data-theme] .planner-card.type-musique { border-left-color: #ef69a0; }
html[data-color-mode="dark"] body[data-theme] .planner-card.type-repas { border-left-color: #f59e0b; }
html[data-color-mode="dark"] body[data-theme] .planner-card.type-ceremonie { border-left-color: #2e9dd0; }
html[data-color-mode="dark"] body[data-theme] .planner-card.type-animation { border-left-color: #18a873; }
html[data-color-mode="dark"] body[data-theme] .planner-card.type-discours { border-left-color: #df6b52; }
html[data-color-mode="dark"] body[data-theme] .planner-card-actions { background: #151a25; border-color: var(--line); }
html[data-color-mode="dark"] body[data-theme] .planner-drag-handle { color: #a9b2c5; background: #252c3b; }
html[data-color-mode="dark"] body[data-theme] .quick-move-form button,
html[data-color-mode="dark"] body[data-theme] .planner-editor > summary { color: #c5ccda; background: #1d2330; border-color: #394255; }
html[data-color-mode="dark"] body[data-theme] .planner-editor[open] > form { background: #171d28; border-color: var(--line); }
html[data-color-mode="dark"] body[data-theme] .music-chip { color: var(--accent-ink); background: var(--accent-soft); }
html[data-color-mode="dark"] body[data-theme] .preference-section textarea { background: #121722; }
html[data-color-mode="dark"] body[data-theme] .preferences-save,
html[data-color-mode="dark"] body[data-theme] .site-save-bar {
  background: rgba(23,28,39,.92);
  border-color: var(--line);
  box-shadow: 0 16px 45px rgba(0,0,0,.28);
}
html[data-color-mode="dark"] body[data-theme] .custom-role-badge { background: color-mix(in srgb,var(--role-color) 16%,#171c27); border-color: color-mix(in srgb,var(--role-color) 35%,#171c27); }
html[data-color-mode="dark"] body[data-theme] .permission-groups legend { color: #c9d0de; }
html[data-color-mode="dark"] body[data-theme] .role-editor-title input[type="color"],
html[data-color-mode="dark"] body[data-theme] .color-input-wrap input[type="color"] { background: #202735; border-color: var(--line); }
html[data-color-mode="dark"] body[data-theme] .switch-row > i:last-child { background: #3b4455; }
html[data-color-mode="dark"] body[data-theme] .switch-row > i:last-child::after { background: #eef1f7; }
html[data-color-mode="dark"] body[data-theme] .client-progress-bar,
html[data-color-mode="dark"] body[data-theme] .progress { background: #303747; }
html[data-color-mode="dark"] body[data-theme] .client-checklist > a > i { color: #a9b2c5; background: #2a3140; }
html[data-color-mode="dark"] body[data-theme] .planner-summary > div { color: var(--text); background: #1a202c; }
html[data-color-mode="dark"] body[data-theme] .planner-summary > div small { color: var(--muted); }
html[data-color-mode="dark"] body[data-theme] .login { background: var(--bg); }
html[data-color-mode="dark"] body[data-theme] .login-side { background: radial-gradient(circle at 100% 0,var(--page-glow),transparent 35%),#10151e; }
html[data-color-mode="dark"] body[data-theme] .login-card { background: #181e29; border-color: #303849; box-shadow: 0 28px 80px rgba(0,0,0,.35); }
html[data-color-mode="dark"] body[data-theme] .help { border-color: var(--line); }
html[data-color-mode="dark"] body[data-theme] .help b { color: var(--text); }
html[data-color-mode="dark"] body[data-theme] .mobile-nav { background: rgba(20,25,35,.96); border-color: var(--line); box-shadow: 0 -10px 32px rgba(0,0,0,.22); }
html[data-color-mode="dark"] body[data-theme] .mobile-nav a { color: #7f899d; }
html[data-color-mode="dark"] body[data-theme] .mobile-nav a.active { color: var(--accent-ink); }
html[data-color-mode="dark"] body[data-theme] .offline-page { background: var(--bg); }
html[data-color-mode="dark"] body[data-theme] .color-mode-toggle { color: var(--text); background: #202633; border-color: #343c4d; box-shadow: 0 8px 22px rgba(0,0,0,.2); }

@media (max-width: 780px) {
  .header-user .color-mode-toggle { width: 38px; padding: 5px; justify-content: center; }
  .header-user .color-mode-toggle > span { display: none; }
  .login-mode-toggle { top: 15px; right: 15px; }
}

/* =========================================================
   Dossier client guidé EventLink 1.5.0
   ========================================================= */
.sidebar nav { min-height: 0; overflow-y: auto; scrollbar-width: thin; }
.dossier-page-title { align-items: flex-start; gap: 18px; }
.dossier-status-badge {
  flex: 0 0 auto;
  padding: 9px 13px;
  color: #7b5b0b;
  background: #fff8df;
  border: 1px solid #f2df9c;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}
.dossier-status-badge.is-submitted { color: #087651; background: #e9fbf4; border-color: #b7ead8; }
.dossier-event-summary {
  margin-bottom: 22px;
  padding: 22px 26px;
  background:
    radial-gradient(circle at 88% 15%, color-mix(in srgb,var(--purple) 15%,transparent), transparent 33%),
    var(--card);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.dossier-event-summary > div:first-child > span { color: var(--accent-ink); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.dossier-event-summary h3 { margin: 7px 0 5px; font-size: 22px; }
.dossier-event-summary p { margin: 0; color: var(--muted); font-size: 12px; }
.dossier-progress-ring {
  --size: 92px;
  position: relative;
  width: var(--size);
  height: var(--size);
  flex: 0 0 var(--size);
  border-radius: 50%;
  background: conic-gradient(var(--purple) calc(var(--progress) * 1%), color-mix(in srgb,var(--line) 80%,transparent) 0);
  display: grid;
  place-content: center;
  text-align: center;
}
.dossier-progress-ring::before { content: ""; position: absolute; inset: 7px; background: var(--card); border-radius: inherit; }
.dossier-progress-ring b,.dossier-progress-ring small { position: relative; z-index: 1; }
.dossier-progress-ring b { color: var(--text); font-size: 20px; line-height: 1; }
.dossier-progress-ring small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.dossier-layout { display: grid; grid-template-columns: 270px minmax(0,1fr); align-items: start; gap: 22px; }
.dossier-stepper {
  position: sticky;
  top: 112px;
  max-height: calc(100vh - 136px);
  overflow-y: auto;
  padding: 10px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 19px;
  box-shadow: var(--shadow);
  display: grid;
  gap: 3px;
}
.dossier-stepper button {
  width: 100%;
  min-height: 55px;
  padding: 8px 9px;
  color: var(--muted);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
  cursor: pointer;
  transition: .18s ease;
}
.dossier-stepper button:hover { color: var(--text); background: color-mix(in srgb,var(--accent-soft) 45%,transparent); }
.dossier-stepper button > i {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  color: var(--accent-ink);
  background: var(--accent-soft);
  border-radius: 10px;
  font-style: normal;
}
.dossier-stepper button span { min-width: 0; flex: 1; }
.dossier-stepper button b,.dossier-stepper button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dossier-stepper button b { color: inherit; font-size: 12px; }
.dossier-stepper button small { margin-top: 3px; font-size: 12px; font-weight: 600; }
.dossier-stepper button > em { display: none; width: 20px; height: 20px; place-items: center; color: white; background: var(--green); border-radius: 50%; font-size: 12px; font-style: normal; }
.dossier-stepper button.has-data > em { display: grid; opacity: .36; }
.dossier-stepper button.is-complete > em { opacity: 1; }
.dossier-stepper button.is-active { color: var(--accent-ink); background: var(--accent-soft); border-color: color-mix(in srgb,var(--purple) 24%,var(--line)); }
.dossier-workspace { min-width: 0; }
.dossier-save-state {
  min-height: 35px;
  margin-bottom: 12px;
  padding: 0 4px;
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
}
.dossier-save-state > i { width: 8px; height: 8px; background: var(--green); border-radius: 50%; box-shadow: 0 0 0 4px color-mix(in srgb,var(--green) 13%,transparent); }
.dossier-save-state[data-state="saving"] > i { background: var(--orange); animation: dossierPulse 1s infinite; }
.dossier-save-state[data-state="dirty"] > i { background: var(--orange); }
.dossier-save-state[data-state="error"] { color: var(--red); }
.dossier-save-state[data-state="error"] > i { background: var(--red); }
@keyframes dossierPulse { 50% { opacity: .35; transform: scale(.72); } }
.dossier-step { display: none; }
.dossier-step.is-active { display: grid; gap: 17px; animation: dossierAppear .22s ease; }
@keyframes dossierAppear { from { opacity: 0; transform: translateY(7px); } }
.dossier-step > header {
  min-height: 125px;
  padding: 26px 28px;
  color: white;
  background:
    radial-gradient(circle at 90% 5%,rgba(255,255,255,.16),transparent 31%),
    linear-gradient(128deg,var(--hero-from),var(--hero-to));
  border-radius: 21px;
  box-shadow: 0 15px 36px color-mix(in srgb,var(--hero-to) 20%,transparent);
  display: flex;
  align-items: center;
  gap: 18px;
}
.dossier-step > header > i { display: grid; width: 58px; height: 58px; flex: 0 0 58px; place-items: center; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.16); border-radius: 17px; font-size: 18px; font-style: normal; font-weight: 800; }
.dossier-step > header small { color: #d4caff; font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.dossier-step > header h3 { margin: 6px 0; font-size: 24px; }
.dossier-step > header p { max-width: 740px; margin: 0; color: #dce1f2; font-size: 12px; line-height: 1.55; }
.dossier-card {
  padding: 24px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: var(--shadow);
}
.dossier-card h4 { margin: 0 0 18px; color: var(--text); font-size: 16px; }
.dossier-card > label { margin: 0; }
.dossier-repeater + label { margin-top: 18px; }
.dossier-card textarea { min-height: 92px; }
.dossier-grid { display: grid; gap: 15px; }
.dossier-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.dossier-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dossier-grid > .wide { grid-column: 1/-1; }
.dossier-card label > span,.repeat-fields label > span { min-height: 16px; }
.dossier-card input:disabled,.dossier-card select:disabled,.dossier-card textarea:disabled { opacity: 1; color: var(--text); cursor: default; }
.dossier-repeat-list { display: grid; gap: 10px; }
.dossier-repeat-row { padding: 14px; background: color-mix(in srgb,var(--bg) 74%,var(--card)); border: 1px solid var(--line); border-radius: 13px; }
.repeat-row-head { margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.repeat-row-head b { color: var(--accent-ink); font-size: 12px; }
.repeat-remove { width: 25px; height: 25px; padding: 0; color: var(--red); background: color-mix(in srgb,var(--red) 9%,transparent); border: 0; border-radius: 8px; cursor: pointer; font-size: 17px; }
.repeat-fields { display: grid; grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); gap: 10px; }
.repeat-fields input,.repeat-fields select { min-height: 40px; padding: 8px 10px; font-size: 12px; }
.repeat-fields textarea { min-height: 70px; font-size: 12px; }
.repeat-fields label { font-size: 12px; }
.repeat-add { margin-top: 12px; padding: 8px 11px; color: var(--accent-ink); background: var(--accent-soft); border: 1px dashed color-mix(in srgb,var(--purple) 42%,var(--line)); border-radius: 10px; cursor: pointer; font-size: 12px; font-weight: 800; }
.card-help { margin: -8px 0 16px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.danger-card { border-color: color-mix(in srgb,var(--red) 22%,var(--line)); }
.danger-card h4 { color: color-mix(in srgb,var(--red) 80%,var(--text)); }
.music-style-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.music-style-grid fieldset { margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
.music-style-grid legend { padding: 0 5px; color: var(--text); font-size: 12px; font-weight: 800; }
.music-style-grid fieldset > label { min-height: 32px; padding: 5px 7px; border-radius: 8px; display: flex; align-items: center; gap: 7px; cursor: pointer; }
.music-style-grid fieldset > label:has(input:checked) { color: var(--accent-ink); background: var(--accent-soft); }
.music-style-grid input { width: 15px; min-height: 15px; padding: 0; accent-color: var(--purple); }
.music-style-grid label span { min-height: auto; font-size: 12px; }
.dossier-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.dossier-checklist label { min-height: 48px; padding: 9px 11px; background: color-mix(in srgb,var(--bg) 70%,var(--card)); border: 1px solid var(--line); border-radius: 11px; display: flex; align-items: center; gap: 10px; cursor: pointer; }
.dossier-checklist input { position: absolute; opacity: 0; pointer-events: none; }
.dossier-checklist label > i { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; color: transparent; background: var(--card); border: 1px solid var(--line); border-radius: 8px; font-style: normal; }
.dossier-checklist label:has(input:checked) { color: var(--accent-ink); background: var(--accent-soft); border-color: color-mix(in srgb,var(--purple) 30%,var(--line)); }
.dossier-checklist label:has(input:checked) > i { color: white; background: var(--purple); border-color: var(--purple); }
.dossier-checklist label > span { min-height: auto; font-size: 12px; }
.final-confirm { margin-top: 18px; padding: 15px; background: var(--accent-soft); border: 1px solid color-mix(in srgb,var(--purple) 22%,var(--line)); border-radius: 12px; display: flex; grid-template-columns: none; align-items: center; gap: 11px; cursor: pointer; }
.final-confirm input { width: 18px; min-height: 18px; flex: 0 0 18px; accent-color: var(--purple); }
.final-confirm span { min-height: auto; }
.final-confirm b,.final-confirm small { display: block; }
.final-confirm b { color: var(--text); font-size: 12px; }
.final-confirm small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.final-confirm.needs-confirmation { border-color: var(--red); animation: dossierShake .25s ease; }
@keyframes dossierShake { 33% { transform: translateX(-4px); } 66% { transform: translateX(4px); } }
.dossier-navigation { margin-top: 17px; padding: 15px 18px; background: var(--card); border: 1px solid var(--line); border-radius: 15px; box-shadow: var(--shadow); display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.dossier-navigation > div { color: var(--muted); text-align: center; }
.dossier-navigation > div span,.dossier-navigation > div small { display: block; }
.dossier-navigation > div span { font-size: 12px; }
.dossier-navigation > div span b { color: var(--text); }
.dossier-navigation > div small { margin-top: 3px; font-size: 12px; }
.dossier-nav-back { min-height: 42px; padding: 0 15px; color: var(--muted); background: transparent; border: 1px solid var(--line); border-radius: 11px; cursor: pointer; font-size: 12px; font-weight: 800; }
.dossier-nav-back:disabled { opacity: .35; cursor: default; }
.dossier-final-bar { position: sticky; z-index: 11; bottom: 16px; margin: 24px 0 0 292px; padding: 14px 16px; background: var(--surface-glass); border: 1px solid color-mix(in srgb,var(--purple) 18%,var(--line)); border-radius: 17px; box-shadow: 0 18px 48px rgba(23,29,59,.18); backdrop-filter: blur(18px); display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.dossier-final-bar > div { display: flex; align-items: center; gap: 11px; }
.dossier-final-bar > div > i { width: 11px; height: 11px; background: var(--green); border-radius: 50%; box-shadow: 0 0 0 5px color-mix(in srgb,var(--green) 12%,transparent); }
.dossier-final-bar b,.dossier-final-bar small { display: block; }
.dossier-final-bar b { color: var(--text); font-size: 12px; }
.dossier-final-bar small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.dossier-submit { white-space: nowrap; }

.live-update-notice { position: fixed; z-index: 1200; right: 18px; bottom: 64px; width: min(360px,calc(100vw - 28px)); padding: 13px 14px; color: var(--text); background: var(--surface-glass); border: 1px solid color-mix(in srgb,var(--purple) 28%,var(--line)); border-radius: 15px; box-shadow: 0 18px 45px rgba(18,24,52,.2); backdrop-filter: blur(18px); display: flex; align-items: center; justify-content: space-between; gap: 14px; animation: liveNoticeIn .24s ease both; }
.live-update-notice span,.live-update-notice b,.live-update-notice small { display: block; }
.live-update-notice b { font-size: 12px; }
.live-update-notice small { margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.live-update-notice button { min-height: 36px; padding: 0 13px; color: white; background: var(--purple); border: 0; border-radius: 10px; cursor: pointer; font-size: 12px; font-weight: 800; }
@keyframes liveNoticeIn { from { opacity: 0; transform: translateY(10px); } }

html[data-color-mode="dark"] body[data-theme] .dossier-status-badge { color: #e8c866; background: #2a2618; border-color: #504621; }
html[data-color-mode="dark"] body[data-theme] .dossier-status-badge.is-submitted { color: #70dab5; background: #152c26; border-color: #275445; }
html[data-color-mode="dark"] body[data-theme] .dossier-stepper,
html[data-color-mode="dark"] body[data-theme] .dossier-card,
html[data-color-mode="dark"] body[data-theme] .dossier-navigation,
html[data-color-mode="dark"] body[data-theme] .dossier-event-summary { background-color: var(--card); border-color: var(--line); }
html[data-color-mode="dark"] body[data-theme] .dossier-repeat-row,
html[data-color-mode="dark"] body[data-theme] .dossier-checklist label { background: #141924; border-color: var(--line); }
html[data-color-mode="dark"] body[data-theme] .dossier-progress-ring::before { background: var(--card); }
html[data-color-mode="dark"] body[data-theme] .dossier-final-bar { background: rgba(23,28,39,.92); border-color: var(--line); box-shadow: 0 18px 48px rgba(0,0,0,.3); }
html[data-color-mode="dark"] body[data-theme] .dossier-checklist label > i { background: #1c2230; border-color: #3a4355; }
html[data-color-mode="dark"] body[data-theme] .music-style-grid fieldset { border-color: var(--line); }

@media (max-width: 1120px) {
  .dossier-layout { grid-template-columns: 225px minmax(0,1fr); gap: 16px; }
  .dossier-final-bar { margin-left: 241px; }
  .dossier-grid.three { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 920px) {
  .dossier-layout { display: block; }
  .dossier-stepper { position: sticky; top: 84px; z-index: 10; max-height: none; margin-bottom: 14px; padding: 7px; overflow-x: auto; overflow-y: hidden; grid-template-columns: repeat(12,150px); scrollbar-width: none; }
  .dossier-stepper::-webkit-scrollbar { display: none; }
  .dossier-stepper button { min-height: 48px; padding: 6px 7px; }
  .dossier-stepper button > i { width: 29px; height: 29px; flex-basis: 29px; }
  .dossier-stepper button small,.dossier-stepper button > em { display: none !important; }
  .dossier-save-state { margin-bottom: 8px; }
  .dossier-final-bar { margin-left: 0; }
}
@media (max-width: 680px) {
  .live-update-notice { right: 10px; bottom: 126px; width: calc(100vw - 20px); }
  .dossier-page-title { display: grid; }
  .dossier-status-badge { justify-self: start; }
  .dossier-event-summary { padding: 18px; }
  .dossier-progress-ring { --size: 76px; }
  .dossier-progress-ring b { font-size: 17px; }
  .dossier-step > header { min-height: 0; padding: 21px; align-items: flex-start; }
  .dossier-step > header > i { width: 45px; height: 45px; flex-basis: 45px; border-radius: 14px; }
  .dossier-step > header h3 { font-size: 20px; }
  .dossier-card { padding: 18px; }
  .dossier-grid.two,.dossier-grid.three,.music-style-grid,.dossier-checklist { grid-template-columns: 1fr; }
  .repeat-fields { grid-template-columns: 1fr; }
  .dossier-navigation { padding: 11px; gap: 8px; }
  .dossier-navigation > div { display: none; }
  .dossier-navigation > button { flex: 1; padding-inline: 10px; }
  .dossier-final-bar { bottom: 75px; padding: 12px; }
  .dossier-final-bar > div small { display: none; }
  .dossier-final-bar .btn { min-height: 42px; padding-inline: 13px; font-size: 12px; }
}
@media (max-width: 430px) {
  .dossier-event-summary h3 { font-size: 18px; }
  .dossier-progress-ring { --size: 68px; }
  .dossier-stepper { grid-template-columns: repeat(12,138px); }
  .dossier-step > header { padding: 18px; gap: 12px; }
  .dossier-step > header > i { width: 39px; height: 39px; flex-basis: 39px; }
  .dossier-step > header p { font-size: 12px; }
  .dossier-card { padding: 15px; }
  .dossier-final-bar > div { display: none; }
  .dossier-final-bar .btn { width: 100%; }
}

/* =========================================================
   Refonte premium EventLink 1.6
   ========================================================= */
body[data-theme="velvet"] { --bg: #f6f4fb; --card: #fffefe; --line: #e9e4f2; --sidebar-from: #0b1430; --sidebar-via: #1b2858; --sidebar-to: #5730ad; --hero-from: #172451; --hero-to: #6b3bd0; }
body[data-theme="champagne"] { --bg: #fcf8f3; --card: #fffefa; --line: #efe3d9; --sidebar-from: #2b111c; --sidebar-via: #542138; --sidebar-to: #a96c3f; --hero-from: #481b30; --hero-to: #b87547; }
body[data-theme="ocean"] { --bg: #f1f9f8; --card: #fbffff; --line: #d9ecea; --sidebar-from: #032c3a; --sidebar-via: #07576a; --sidebar-to: #07968e; --hero-from: #06485c; --hero-to: #10a89d; }
body[data-theme="graphite"] { --bg: #f3f5f9; --card: #ffffff; --line: #e0e5ee; --sidebar-from: #10141c; --sidebar-via: #252d3d; --sidebar-to: #465b92; --hero-from: #1c2432; --hero-to: #5068a4; }

body[data-theme] {
  --radius: 21px;
  --shadow: 0 18px 48px rgba(24,30,58,.075), 0 2px 10px rgba(24,30,58,.035);
  min-height: 100vh;
  background:
    radial-gradient(circle at 88% -4%, color-mix(in srgb,var(--purple) 13%,transparent), transparent 30rem),
    radial-gradient(circle at 7% 105%, color-mix(in srgb,var(--hero-to) 9%,transparent), transparent 34rem),
    linear-gradient(145deg,color-mix(in srgb,var(--bg) 92%,white),var(--bg));
}
body[data-theme]::after { content: ""; position: fixed; z-index: -1; inset: 0; opacity: .4; pointer-events: none; background-image: linear-gradient(color-mix(in srgb,var(--purple) 2.5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--purple) 2.5%,transparent) 1px,transparent 1px); background-size: 38px 38px; mask-image: linear-gradient(to bottom,black,transparent 72%); }
body[data-theme] h1,body[data-theme] h2,body[data-theme] h3 { letter-spacing: -.035em; }
body[data-theme] .sidebar { border-right: 1px solid rgba(255,255,255,.075); box-shadow: 24px 0 65px rgba(10,16,40,.14); }
body[data-theme] .sidebar::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg,rgba(255,255,255,.055),transparent 28%); }
body[data-theme] .brand > i { width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.25); border-radius: 15px; box-shadow: 0 13px 32px color-mix(in srgb,var(--purple) 42%,transparent),inset 0 1px rgba(255,255,255,.28); }
body[data-theme] .sidebar nav a { min-height: 49px; border-radius: 14px; }
body[data-theme] .sidebar nav a.active { background: linear-gradient(115deg,color-mix(in srgb,var(--purple) 82%,transparent),rgba(255,255,255,.095)); border-color: rgba(255,255,255,.15); box-shadow: 0 13px 30px rgba(3,8,28,.23),inset 0 1px rgba(255,255,255,.11); }
body[data-theme] .main > header { background: color-mix(in srgb,var(--surface-glass) 90%,transparent); border-bottom: 1px solid color-mix(in srgb,var(--line) 76%,transparent); box-shadow: 0 9px 35px rgba(24,30,58,.045); }
body[data-theme] .content { position: relative; }
body[data-theme] .panel,
body[data-theme] .event-card,
body[data-theme] .client-actions > a,
body[data-theme] .role-new-card,
body[data-theme] .role-card,
body[data-theme] .day-planner,
body[data-theme] .empty { background: color-mix(in srgb,var(--card) 95%,transparent); border: 1px solid color-mix(in srgb,var(--line) 86%,white); border-radius: var(--radius); box-shadow: var(--shadow); backdrop-filter: blur(16px); }
body[data-theme] .panel { padding: 27px; }
body[data-theme] .welcome,
body[data-theme] .client-hero,
body[data-theme] .planner-summary { border: 1px solid rgba(255,255,255,.16); border-radius: 27px; box-shadow: 0 27px 65px color-mix(in srgb,var(--hero-from) 25%,transparent),inset 0 1px rgba(255,255,255,.14); }
body[data-theme] .welcome::before,
body[data-theme] .client-hero::before,
body[data-theme] .planner-summary::before { content: ""; position: absolute; width: 160px; height: 160px; top: -105px; right: 20%; border: 28px solid rgba(255,255,255,.055); border-radius: 50%; pointer-events: none; }
body[data-theme] .btn { min-height: 47px; padding-inline: 22px; border: 1px solid color-mix(in srgb,var(--purple) 72%,white); border-radius: 14px; box-shadow: 0 12px 27px color-mix(in srgb,var(--purple) 28%,transparent),inset 0 1px rgba(255,255,255,.25); }
body[data-theme] .btn:active { transform: translateY(0) scale(.985); }
body[data-theme] input,
body[data-theme] select,
body[data-theme] textarea { min-height: 46px; padding: 11px 14px; border-radius: 12px; box-shadow: inset 0 1px 2px rgba(22,28,53,.025); }
body[data-theme] .stats { gap: 19px; }
body[data-theme] .stats > div { min-height: 112px; padding: 23px 25px; border-radius: 20px; }
body[data-theme] .stats > div > i { width: 52px; height: 52px; border-radius: 16px; box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--purple) 10%,transparent); }
body[data-theme] .event-card { border-radius: 22px; }
body[data-theme] .event-cover { min-height: 142px; }
body[data-theme] .event-body { padding: 22px; }
body[data-theme] .event-lock-status { display: inline-flex; align-items: center; gap: 5px; margin-top: 7px; padding: 6px 9px; color: #9a5d10; background: #fff5dd; border: 1px solid #f2ddb0; border-radius: 30px; font-size: 12px; font-weight: 800; }
body[data-theme] .client-actions { gap: 16px; }
body[data-theme] .client-actions > a { min-height: 112px; padding: 20px; border-radius: 20px; }
body[data-theme] .client-actions > a > i { box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--purple) 12%,transparent); }
body[data-theme] .client-progress { background: linear-gradient(135deg,color-mix(in srgb,var(--card) 96%,var(--accent-soft)),var(--card)); }
body[data-theme] .planner-card { border-radius: 14px; box-shadow: 0 9px 25px rgba(25,31,60,.07); }
body[data-theme] .planner-card:hover { box-shadow: 0 15px 34px rgba(25,31,60,.12); transform: translateY(-1px); }
body[data-theme] .planner-toolbar { padding: 15px 21px; }
body[data-theme] .dossier-stepper,
body[data-theme] .dossier-card,
body[data-theme] .dossier-navigation,
body[data-theme] .dossier-event-summary { border-radius: 20px; box-shadow: var(--shadow); }
body[data-theme] .dossier-step > header { overflow: hidden; border-radius: 22px; box-shadow: 0 20px 46px color-mix(in srgb,var(--hero-from) 18%,transparent); }
body[data-theme] .dossier-stepper button.active { box-shadow: 0 10px 24px color-mix(in srgb,var(--purple) 15%,transparent); }
body[data-theme] .login-card { border: 1px solid color-mix(in srgb,var(--line) 76%,white); box-shadow: 0 34px 95px rgba(24,30,58,.15),0 5px 18px rgba(24,30,58,.055); }
body[data-theme] .theme-choice { border-radius: 18px; }
body[data-theme] .theme-preview { border: 1px solid color-mix(in srgb,var(--line) 65%,transparent); border-radius: 13px; box-shadow: 0 8px 20px rgba(24,30,58,.06); }
body[data-theme] .mobile-nav { border-top-color: color-mix(in srgb,var(--line) 74%,transparent); backdrop-filter: blur(22px); }

.event-freeze-banner { position: relative; overflow: hidden; margin-bottom: 22px; padding: 19px 20px; color: #382710; background: linear-gradient(125deg,#fff9e9,#fff1ce); border: 1px solid #efd99d; border-radius: 19px; box-shadow: 0 14px 35px rgba(106,75,22,.10); display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 16px; }
.event-freeze-banner::after { content: ""; position: absolute; right: 18%; top: -85px; width: 150px; height: 150px; border: 25px solid rgba(178,126,35,.06); border-radius: 50%; pointer-events: none; }
.event-freeze-banner > * { position: relative; z-index: 1; }
.event-freeze-icon { display: grid; width: 48px; height: 48px; place-items: center; color: white; background: linear-gradient(145deg,#ba7b19,#e3aa40); border-radius: 15px; box-shadow: 0 10px 22px rgba(172,111,21,.24); font-size: 24px; font-weight: 800; }
.event-freeze-banner small { color: #a36a12; font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.event-freeze-banner h3 { margin: 4px 0 3px; font-size: 16px; }
.event-freeze-banner p { max-width: 790px; margin: 0; color: #7e6540; font-size: 12px; line-height: 1.55; }
.event-freeze-banner > a { padding: 10px 13px; color: #80520c; background: rgba(255,255,255,.66); border: 1px solid #e4c886; border-radius: 11px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.dossier-status-badge.is-frozen { color: #9a650e; background: #fff5dc; border-color: #edd69d; }

html[data-color-mode="dark"] body[data-theme] { --card: #171d28; --line: #2d3545; background: radial-gradient(circle at 88% -4%,color-mix(in srgb,var(--purple) 14%,transparent),transparent 32rem),radial-gradient(circle at 7% 105%,color-mix(in srgb,var(--hero-to) 9%,transparent),transparent 34rem),#0c1017; }
html[data-color-mode="dark"] body[data-theme] .panel,
html[data-color-mode="dark"] body[data-theme] .event-card,
html[data-color-mode="dark"] body[data-theme] .client-actions > a,
html[data-color-mode="dark"] body[data-theme] .role-new-card,
html[data-color-mode="dark"] body[data-theme] .role-card,
html[data-color-mode="dark"] body[data-theme] .day-planner,
html[data-color-mode="dark"] body[data-theme] .empty { background: rgba(23,29,40,.96); border-color: #2d3545; box-shadow: 0 18px 48px rgba(0,0,0,.22); }
html[data-color-mode="dark"] body[data-theme] .event-lock-status { color: #edc36c; background: #2b2518; border-color: #514521; }
html[data-color-mode="dark"] body[data-theme] .event-freeze-banner { color: #f5e7c6; background: linear-gradient(125deg,#2a2418,#242018); border-color: #504522; box-shadow: 0 15px 38px rgba(0,0,0,.24); }
html[data-color-mode="dark"] body[data-theme] .event-freeze-banner p { color: #c7b68d; }
html[data-color-mode="dark"] body[data-theme] .event-freeze-banner > a { color: #f2cf82; background: rgba(255,255,255,.055); border-color: #5d5029; }
html[data-color-mode="dark"] body[data-theme] .dossier-status-badge.is-frozen { color: #edc66e; background: #2b2619; border-color: #554a25; }

@media (max-width: 780px) {
  body[data-theme] .panel { padding: 20px; }
  body[data-theme] .stats > div { min-height: 82px; padding: 15px 17px; }
  body[data-theme] .event-cover { min-height: 122px; }
  body[data-theme] .welcome,body[data-theme] .client-hero,body[data-theme] .planner-summary { border-radius: 21px; }
  .event-freeze-banner { padding: 15px; grid-template-columns: 42px 1fr; gap: 12px; }
  .event-freeze-icon { width: 42px; height: 42px; border-radius: 13px; font-size: 20px; }
  .event-freeze-banner > a { grid-column: 1/-1; text-align: center; }
}

/* =========================================================
   Univers modernes EventLink 1.11
   ========================================================= */
.theme-choice[data-theme-choice="aurora"] .theme-preview::after,.theme-choice[data-theme-choice="studio"] .theme-preview::after,.theme-choice[data-theme-choice="horizon"] .theme-preview::after,.theme-choice[data-theme-choice="scene"] .theme-preview::after { content:""; position:absolute; inset:0; pointer-events:none; }
.theme-choice[data-theme-choice="aurora"] .theme-preview::after { background:radial-gradient(circle at 72% 18%,rgba(34,211,238,.55),transparent 18%),radial-gradient(circle at 45% 86%,rgba(168,85,247,.35),transparent 25%); mix-blend-mode:screen; }
.theme-choice[data-theme-choice="studio"] .theme-preview::after { background:linear-gradient(90deg,transparent 0 68%,rgba(37,99,235,.10) 68% 70%,transparent 70%),linear-gradient(0deg,transparent 0 64%,rgba(16,24,40,.08) 64% 66%,transparent 66%); }
.theme-choice[data-theme-choice="horizon"] .theme-preview::after { background:radial-gradient(ellipse at 82% 110%,rgba(249,115,96,.70),transparent 42%),linear-gradient(145deg,transparent 52%,rgba(255,255,255,.34) 53%,transparent 54%); }
.theme-choice[data-theme-choice="scene"] .theme-preview::after { background:radial-gradient(ellipse at 76% -10%,rgba(231,202,157,.42),transparent 34%),linear-gradient(116deg,transparent 0 59%,rgba(179,135,80,.18) 59.5%,transparent 60%); }

body[data-theme="aurora"] { background:radial-gradient(circle at 88% 3%,rgba(34,211,238,.12),transparent 27rem),radial-gradient(circle at 15% 92%,rgba(168,85,247,.13),transparent 32rem),linear-gradient(145deg,#faf9ff,#f3f3fb 52%,#f1f8fb); }
body[data-theme="aurora"] .sidebar { background:radial-gradient(circle at 78% 7%,rgba(34,211,238,.24),transparent 25%),radial-gradient(circle at 15% 82%,rgba(168,85,247,.24),transparent 30%),linear-gradient(160deg,#090720,#1c1648 58%,#123a52); }
body[data-theme="aurora"] .panel,body[data-theme="aurora"] .event-card,body[data-theme="aurora"] .client-actions>a,body[data-theme="aurora"] .day-planner { background:rgba(255,255,255,.76); border-color:rgba(173,162,210,.31); box-shadow:0 22px 55px rgba(44,32,93,.08),inset 0 1px rgba(255,255,255,.85); backdrop-filter:blur(18px) saturate(130%); }
body[data-theme="aurora"] .welcome,body[data-theme="aurora"] .client-hero,body[data-theme="aurora"] .planner-summary,body[data-theme="aurora"] .dossier-step>header { background:radial-gradient(circle at 82% 5%,rgba(34,211,238,.30),transparent 30%),linear-gradient(125deg,#15113d,#4c2588 60%,#17627b); box-shadow:0 28px 68px rgba(37,24,91,.22); }
body[data-theme="aurora"] .btn { background:linear-gradient(135deg,color-mix(in srgb,var(--purple) 82%,#8b5cf6),color-mix(in srgb,var(--purple) 56%,#06b6d4)); box-shadow:0 14px 34px color-mix(in srgb,var(--purple) 25%,transparent); }

body[data-theme="studio"] { background:linear-gradient(180deg,#fbfcfd 0,#f5f6f8 42%,#f2f4f7 100%); }
body[data-theme="studio"] .sidebar { background:linear-gradient(180deg,#0b101a,#111827 66%,#182230); box-shadow:12px 0 35px rgba(16,24,40,.09); }
body[data-theme="studio"] .sidebar::after { opacity:.3; background:linear-gradient(145deg,rgba(255,255,255,.04),transparent 32%); }
body[data-theme="studio"] .panel,body[data-theme="studio"] .event-card,body[data-theme="studio"] .client-actions>a,body[data-theme="studio"] .day-planner { border-radius:14px; background:#fff; border-color:#e4e7ec; box-shadow:0 1px 2px rgba(16,24,40,.03),0 12px 28px rgba(16,24,40,.045); }
body[data-theme="studio"] .welcome,body[data-theme="studio"] .client-hero,body[data-theme="studio"] .planner-summary,body[data-theme="studio"] .dossier-step>header { background:linear-gradient(118deg,#101828,#1d3f72 72%,color-mix(in srgb,var(--purple) 66%,#2563eb)); box-shadow:0 18px 42px rgba(16,24,40,.16); }
body[data-theme="studio"] .btn { border-radius:9px; box-shadow:0 8px 18px color-mix(in srgb,var(--purple) 19%,transparent); }
body[data-theme="studio"] input,body[data-theme="studio"] select,body[data-theme="studio"] textarea { border-radius:9px; }

body[data-theme="horizon"] { background:radial-gradient(circle at 92% 5%,rgba(249,115,96,.15),transparent 30rem),radial-gradient(circle at 12% 95%,rgba(59,130,246,.08),transparent 34rem),linear-gradient(145deg,#fffdfb,#f9f5f1); }
body[data-theme="horizon"] .sidebar { background:radial-gradient(circle at 85% 12%,rgba(249,115,96,.27),transparent 26%),linear-gradient(164deg,#101a3d,#1b3470 62%,#743d59); }
body[data-theme="horizon"] .panel,body[data-theme="horizon"] .event-card,body[data-theme="horizon"] .client-actions>a,body[data-theme="horizon"] .day-planner { background:rgba(255,253,251,.90); border-color:rgba(194,157,151,.25); box-shadow:0 20px 48px rgba(67,42,54,.07); }
body[data-theme="horizon"] .welcome,body[data-theme="horizon"] .client-hero,body[data-theme="horizon"] .planner-summary,body[data-theme="horizon"] .dossier-step>header { background:radial-gradient(circle at 92% 12%,rgba(255,198,137,.31),transparent 30%),linear-gradient(122deg,#172554,#334e8d 58%,#c65361); box-shadow:0 26px 60px rgba(57,39,79,.20); }
body[data-theme="horizon"] .btn { background:linear-gradient(135deg,color-mix(in srgb,var(--purple) 76%,#ef5f67),color-mix(in srgb,var(--purple) 62%,#fb923c)); box-shadow:0 13px 30px color-mix(in srgb,var(--purple) 22%,transparent); }

html[data-color-mode="dark"] body[data-theme="aurora"] { background:radial-gradient(circle at 88% 3%,rgba(34,211,238,.09),transparent 28rem),radial-gradient(circle at 12% 94%,rgba(168,85,247,.10),transparent 34rem),#090713; }
html[data-color-mode="dark"] body[data-theme="studio"] { background:#0b0f16; }
html[data-color-mode="dark"] body[data-theme="horizon"] { background:radial-gradient(circle at 90% 3%,rgba(249,115,96,.09),transparent 30rem),#0d1019; }

.session-security-card { margin-top:18px; }.session-security-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.session-security-grid>label,.session-security-grid>div { min-height:82px; padding:14px; background:color-mix(in srgb,var(--bg) 58%,var(--card)); border:1px solid var(--line); border-radius:14px; display:flex; align-items:center; justify-content:space-between; gap:12px; }.session-security-grid span { min-width:0; }.session-security-grid b,.session-security-grid small { display:block; }.session-security-grid b { font-size:12px; }.session-security-grid small { margin-top:4px; color:var(--muted); font-size:12px; line-height:1.4; }.session-security-grid select { width:auto; min-width:105px; min-height:40px; }.session-security-grid em { flex:0 0 auto; padding:7px 10px; color:var(--accent-ink); background:var(--accent-soft); border-radius:9px; font-size:12px; font-style:normal; font-weight:800; }
.session-expiry-warning { position:fixed; z-index:300; right:18px; bottom:18px; width:min(430px,calc(100vw - 28px)); padding:14px; color:#fff; background:linear-gradient(125deg,#171b2d,#332560); border:1px solid rgba(255,255,255,.16); border-radius:17px; box-shadow:0 24px 70px rgba(10,7,27,.34); display:flex; align-items:center; gap:11px; animation:session-warning-in .35s ease both; }.session-expiry-warning>i { flex:0 0 39px; height:39px; display:grid; place-items:center; background:rgba(255,255,255,.11); border-radius:12px; font-style:normal; }.session-expiry-warning span { min-width:0; flex:1; }.session-expiry-warning small,.session-expiry-warning b,.session-expiry-warning em { display:block; }.session-expiry-warning small { color:#c9b9ff; font-size:12px; font-weight:900; letter-spacing:.13em; }.session-expiry-warning b { margin-top:3px; font-size:12px; }.session-expiry-warning em { margin-top:3px; color:#cbd2e6; font-size:12px; font-style:normal; }.session-expiry-warning strong { color:#fff; }.session-expiry-warning a { padding:8px 10px; color:#fff; background:rgba(255,255,255,.11); border:1px solid rgba(255,255,255,.13); border-radius:9px; font-size:12px; font-weight:800; text-decoration:none; white-space:nowrap; }@keyframes session-warning-in { from { opacity:0; transform:translateY(15px) scale(.97); } to { opacity:1; transform:none; } }
@media(max-width:900px){.session-security-grid{grid-template-columns:1fr}.session-expiry-warning{right:14px;bottom:82px}}@media(max-width:520px){.session-expiry-warning{align-items:flex-start;flex-wrap:wrap}.session-expiry-warning span{width:calc(100% - 52px)}.session-expiry-warning a{width:100%;text-align:center}}

/* =========================================================
   Thème Géométrique animé EventLink 1.7
   ========================================================= */
.theme-picker { grid-template-columns: repeat(auto-fit,minmax(175px,1fr)); }
.theme-preview { position: relative; }
.theme-choice[data-theme-choice="geometric"] .theme-preview::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .62;
  pointer-events: none;
  background:
    radial-gradient(circle at 40% 20%,var(--preview-accent) 0 1.5px,transparent 2px),
    radial-gradient(circle at 66% 35%,var(--preview-accent) 0 1.5px,transparent 2px),
    radial-gradient(circle at 45% 70%,var(--preview-accent) 0 1px,transparent 1.7px),
    linear-gradient(31deg,transparent 48%,color-mix(in srgb,var(--preview-accent) 38%,transparent) 49% 50%,transparent 51%);
}

.geometric-network {
  position: fixed;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity .45s ease;
}
body[data-theme="geometric"] .geometric-network { opacity: .92; }
body[data-theme="geometric"] > .app,
body[data-theme="geometric"] > .login { position: relative; z-index: 1; }

body[data-theme="geometric"] {
  --navy: #071426;
  --navy-2: #0d2747;
  --bg: #eef5fa;
  --card: #fbfdff;
  --text: #10213a;
  --muted: #66778f;
  --line: #dbe7f0;
  --sidebar-from: #050d1b;
  --sidebar-via: #0a203b;
  --sidebar-to: #153e64;
  --hero-from: #071a31;
  --hero-to: #175a83;
  --accent-soft: color-mix(in srgb,var(--purple) 11%,#f5fbff);
  --accent-ink: color-mix(in srgb,var(--purple) 70%,#073554);
  --page-glow: color-mix(in srgb,var(--purple) 15%,transparent);
  --surface-glass: rgba(247,251,255,.80);
  background:
    radial-gradient(circle at 78% 8%,color-mix(in srgb,var(--purple) 16%,transparent),transparent 29rem),
    radial-gradient(circle at 15% 92%,rgba(16,128,174,.10),transparent 34rem),
    linear-gradient(145deg,#f8fbfd 0%,#eef5fa 48%,#eaf3f8 100%);
}
body[data-theme="geometric"]::after {
  z-index: 0;
  opacity: .38;
  background-image:
    linear-gradient(120deg,transparent 0 47%,rgba(47,130,171,.045) 47.2% 47.55%,transparent 47.8%),
    linear-gradient(30deg,transparent 0 61%,rgba(47,130,171,.035) 61.2% 61.5%,transparent 61.8%);
  background-size: 280px 220px,340px 260px;
  mask-image: linear-gradient(to bottom,black,transparent 88%);
}
body[data-theme="geometric"] .sidebar {
  overflow: hidden;
  background:
    radial-gradient(circle at 14% 8%,color-mix(in srgb,var(--purple) 32%,transparent),transparent 23%),
    linear-gradient(166deg,var(--sidebar-from),var(--sidebar-via) 57%,var(--sidebar-to) 135%);
  border-right-color: rgba(125,211,252,.13);
  box-shadow: 25px 0 70px rgba(5,18,38,.18);
}
body[data-theme="geometric"] .sidebar::before {
  right: -115px;
  bottom: 7%;
  width: 245px;
  height: 245px;
  border: 1px solid rgba(125,211,252,.16);
  border-radius: 38px;
  transform: rotate(34deg);
  box-shadow: inset 0 0 0 34px rgba(125,211,252,.018),0 0 0 34px rgba(125,211,252,.025);
}
body[data-theme="geometric"] .sidebar::after {
  background:
    linear-gradient(120deg,rgba(255,255,255,.045),transparent 27%),
    repeating-linear-gradient(145deg,transparent 0 34px,rgba(125,211,252,.025) 35px,transparent 36px);
}
body[data-theme="geometric"] .brand > i,
body[data-theme="geometric"] .login-card-logo,
body[data-theme="geometric"] .big-logo {
  background: linear-gradient(135deg,color-mix(in srgb,var(--purple) 82%,#22d3ee),#8b5cf6);
  box-shadow: 0 12px 32px color-mix(in srgb,var(--purple) 34%,transparent),inset 0 1px rgba(255,255,255,.34);
}
body[data-theme="geometric"] .sidebar nav a.active {
  background: linear-gradient(115deg,color-mix(in srgb,var(--purple) 38%,transparent),rgba(255,255,255,.075));
  border-color: rgba(125,211,252,.17);
  box-shadow: inset 3px 0 color-mix(in srgb,var(--purple) 78%,#67e8f9),0 12px 28px rgba(1,10,24,.2);
}
body[data-theme="geometric"] .main > header {
  background: rgba(246,251,255,.78);
  border-bottom-color: rgba(164,192,211,.46);
  box-shadow: 0 10px 38px rgba(17,54,82,.055);
  backdrop-filter: blur(22px) saturate(130%);
}
body[data-theme="geometric"] .panel,
body[data-theme="geometric"] .event-card,
body[data-theme="geometric"] .client-actions > a,
body[data-theme="geometric"] .role-new-card,
body[data-theme="geometric"] .role-card,
body[data-theme="geometric"] .day-planner,
body[data-theme="geometric"] .empty,
body[data-theme="geometric"] .dossier-stepper,
body[data-theme="geometric"] .dossier-card,
body[data-theme="geometric"] .dossier-navigation,
body[data-theme="geometric"] .dossier-event-summary {
  background: rgba(251,253,255,.84);
  border-color: rgba(177,204,221,.55);
  box-shadow: 0 21px 55px rgba(20,61,91,.075),inset 0 1px rgba(255,255,255,.82);
  backdrop-filter: blur(18px) saturate(125%);
}
body[data-theme="geometric"] .welcome,
body[data-theme="geometric"] .client-hero,
body[data-theme="geometric"] .planner-summary,
body[data-theme="geometric"] .dossier-step > header {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(115deg,rgba(255,255,255,.055),transparent 34%),
    radial-gradient(circle at 85% 10%,color-mix(in srgb,var(--purple) 42%,transparent),transparent 30%),
    linear-gradient(128deg,#071629,#0c3557 58%,color-mix(in srgb,var(--purple) 67%,#156184));
  border-color: rgba(125,211,252,.20);
  box-shadow: 0 28px 68px rgba(5,27,52,.22),inset 0 1px rgba(255,255,255,.14);
}
body[data-theme="geometric"] .welcome::after,
body[data-theme="geometric"] .client-hero::after,
body[data-theme="geometric"] .planner-summary::after {
  content: "";
  position: absolute;
  right: 7%;
  bottom: -65px;
  width: 180px;
  height: 180px;
  border: 1px solid rgba(255,255,255,.13);
  transform: rotate(32deg);
  pointer-events: none;
}
body[data-theme="geometric"] .btn {
  background: linear-gradient(135deg,color-mix(in srgb,var(--purple) 86%,#0891b2),color-mix(in srgb,var(--purple) 64%,#8b5cf6));
  border-color: color-mix(in srgb,var(--purple) 58%,#bdeeff);
  box-shadow: 0 14px 32px color-mix(in srgb,var(--purple) 25%,transparent),inset 0 1px rgba(255,255,255,.3);
}
body[data-theme="geometric"] input,
body[data-theme="geometric"] select,
body[data-theme="geometric"] textarea {
  background: rgba(255,255,255,.72);
  border-color: rgba(169,198,217,.64);
}
body[data-theme="geometric"] .stats > div,
body[data-theme="geometric"] .planner-card {
  background: rgba(252,254,255,.88);
  border-color: rgba(177,204,221,.56);
  box-shadow: 0 15px 38px rgba(20,61,91,.065);
  backdrop-filter: blur(14px);
}
body[data-theme="geometric"] .stats > div > i,
body[data-theme="geometric"] .client-actions > a > i {
  color: var(--accent-ink);
  background: linear-gradient(145deg,color-mix(in srgb,var(--purple) 13%,white),rgba(220,244,252,.72));
  border: 1px solid color-mix(in srgb,var(--purple) 17%,#cce7f2);
}
body[data-theme="geometric"] .planner-card { border-left-color: color-mix(in srgb,var(--purple) 76%,#22d3ee); }
body[data-theme="geometric"] .login { background: transparent; }
body[data-theme="geometric"] .login-brand {
  background:
    radial-gradient(circle at 18% 16%,color-mix(in srgb,var(--purple) 30%,transparent),transparent 29%),
    linear-gradient(142deg,rgba(5,13,27,.98),rgba(8,36,62,.96) 62%,rgba(16,71,99,.94));
}
body[data-theme="geometric"] .login-brand::after {
  width: 290px;
  height: 290px;
  border: 1px solid rgba(125,211,252,.18);
  border-radius: 42px;
  transform: rotate(32deg);
  box-shadow: inset 0 0 0 42px rgba(125,211,252,.025),0 0 0 42px rgba(125,211,252,.025);
}
body[data-theme="geometric"] .login-side { background: rgba(239,247,252,.72); backdrop-filter: blur(12px); }
body[data-theme="geometric"] .login-card {
  background: rgba(253,254,255,.86);
  border-color: rgba(177,204,221,.62);
  box-shadow: 0 35px 95px rgba(11,46,72,.16),inset 0 1px rgba(255,255,255,.9);
  backdrop-filter: blur(24px) saturate(130%);
}

html[data-color-mode="dark"] body[data-theme="geometric"] {
  --bg: #050a12;
  --card: #0d1724;
  --text: #eef7ff;
  --muted: #91a5ba;
  --line: #21344a;
  --surface-glass: rgba(7,15,25,.80);
  background:
    radial-gradient(circle at 79% 5%,color-mix(in srgb,var(--purple) 18%,transparent),transparent 31rem),
    radial-gradient(circle at 12% 94%,rgba(8,145,178,.10),transparent 35rem),
    linear-gradient(145deg,#040811,#07111d 52%,#071522);
}
html[data-color-mode="dark"] body[data-theme="geometric"] .main > header { background: rgba(6,14,24,.78); border-bottom-color: rgba(91,132,160,.24); }
html[data-color-mode="dark"] body[data-theme="geometric"] .panel,
html[data-color-mode="dark"] body[data-theme="geometric"] .event-card,
html[data-color-mode="dark"] body[data-theme="geometric"] .client-actions > a,
html[data-color-mode="dark"] body[data-theme="geometric"] .role-new-card,
html[data-color-mode="dark"] body[data-theme="geometric"] .role-card,
html[data-color-mode="dark"] body[data-theme="geometric"] .day-planner,
html[data-color-mode="dark"] body[data-theme="geometric"] .empty,
html[data-color-mode="dark"] body[data-theme="geometric"] .dossier-stepper,
html[data-color-mode="dark"] body[data-theme="geometric"] .dossier-card,
html[data-color-mode="dark"] body[data-theme="geometric"] .dossier-navigation,
html[data-color-mode="dark"] body[data-theme="geometric"] .dossier-event-summary,
html[data-color-mode="dark"] body[data-theme="geometric"] .stats > div,
html[data-color-mode="dark"] body[data-theme="geometric"] .planner-card {
  background: rgba(10,21,34,.84);
  border-color: rgba(68,104,131,.40);
  box-shadow: 0 22px 58px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.025);
}
html[data-color-mode="dark"] body[data-theme="geometric"] input,
html[data-color-mode="dark"] body[data-theme="geometric"] select,
html[data-color-mode="dark"] body[data-theme="geometric"] textarea { background: rgba(4,12,22,.72); border-color: rgba(74,111,139,.47); }
html[data-color-mode="dark"] body[data-theme="geometric"] .login-side { background: rgba(4,10,18,.72); }
html[data-color-mode="dark"] body[data-theme="geometric"] .login-card { background: rgba(8,18,30,.86); border-color: rgba(72,112,142,.42); box-shadow: 0 38px 100px rgba(0,0,0,.38); }

@media (max-width: 680px) {
  body[data-theme="geometric"] .geometric-network { opacity: .72; }
  body[data-theme="geometric"] .main > header { backdrop-filter: blur(16px); }
  body[data-theme="geometric"] .panel,
  body[data-theme="geometric"] .event-card,
  body[data-theme="geometric"] .client-actions > a { backdrop-filter: blur(12px); }
}

/* =========================================================
   Administration rapide, maintenance et supervision 1.8
   ========================================================= */
.sidebar nav { min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.17) transparent; }

.quick-account-switcher,
.impersonation-banner { margin-bottom: 20px; border: 1px solid color-mix(in srgb,var(--purple) 25%,var(--line)); border-radius: 17px; box-shadow: 0 13px 35px rgba(20,32,68,.07); }
.quick-account-switcher { overflow: hidden; background: var(--surface-glass); backdrop-filter: blur(17px); }
.quick-account-switcher > summary { min-height: 68px; padding: 12px 16px; list-style: none; display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 12px; cursor: pointer; }
.quick-account-switcher > summary::-webkit-details-marker { display: none; }
.quick-account-switcher > summary > i,
.impersonation-copy > i { display: grid; width: 42px; height: 42px; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border-radius: 13px; font-style: normal; font-size: 19px; }
.quick-account-switcher > summary span b,
.quick-account-switcher > summary span small { display: block; }
.quick-account-switcher > summary span b { font-size: 12px; }
.quick-account-switcher > summary span small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.quick-account-switcher > summary > em { color: var(--accent-ink); font-size: 12px; font-style: normal; font-weight: 800; }
.quick-account-switcher[open] > summary { background: color-mix(in srgb,var(--accent-soft) 62%,transparent); border-bottom: 1px solid var(--line); }
.quick-account-list { max-height: 370px; padding: 10px; overflow-y: auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.quick-account-list form { min-width: 0; padding: 10px; background: color-mix(in srgb,var(--card) 78%,transparent); border: 1px solid var(--line); border-radius: 13px; display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 9px; }
.quick-account-list form > i { display: grid; width: 36px; height: 36px; place-items: center; color: white; background: linear-gradient(135deg,var(--purple),var(--purple-2)); border-radius: 11px; font-size: 12px; font-style: normal; font-weight: 800; }
.quick-account-list form span { min-width: 0; }
.quick-account-list form span b,.quick-account-list form span small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quick-account-list form span b { font-size: 12px; }
.quick-account-list form span small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.quick-account-list form button { min-height: 34px; padding: 0 11px; color: var(--accent-ink); background: var(--accent-soft); border: 0; border-radius: 9px; cursor: pointer; font-size: 12px; font-weight: 800; }
.quick-account-list > p { grid-column: 1/-1; margin: 12px; color: var(--muted); font-size: 12px; }
.impersonation-banner { position: sticky; top: 111px; z-index: 10; padding: 13px 14px; color: #f8fbff; background: linear-gradient(115deg,#091a30,color-mix(in srgb,var(--purple) 75%,#14294b)); border-color: color-mix(in srgb,var(--purple) 54%,#7dd3fc); box-shadow: 0 17px 44px rgba(8,19,43,.23); display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.impersonation-copy { min-width: 0; display: flex; align-items: center; gap: 12px; }
.impersonation-copy > i { flex: 0 0 42px; color: white; background: rgba(255,255,255,.12); }
.impersonation-copy span small,.impersonation-copy span b,.impersonation-copy span em { display: block; }
.impersonation-copy span small { color: #c8bfff; font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.impersonation-copy span b { margin-top: 3px; font-size: 12px; }
.impersonation-copy span em { margin-top: 3px; color: rgba(235,242,255,.65); font-size: 12px; font-style: normal; }
.impersonation-banner form { margin: 0; }
.impersonation-banner button { min-height: 39px; padding: 0 14px; color: #10213a; background: white; border: 0; border-radius: 11px; cursor: pointer; font-size: 12px; font-weight: 800; white-space: nowrap; }

.maintenance-page-title { align-items: center; }
.maintenance-status { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border: 1px solid; border-radius: 30px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.maintenance-status i,.monitoring-live-status > i { width: 8px; height: 8px; border-radius: 50%; }
.maintenance-status.is-online { color: #0b7754; background: #e8faf2; border-color: #c7efdd; }
.maintenance-status.is-online i { background: #16a875; box-shadow: 0 0 0 4px rgba(22,168,117,.12); }
.maintenance-status.is-active { color: #986007; background: #fff7df; border-color: #f3dfa1; }
.maintenance-status.is-active i { background: #f59e0b; box-shadow: 0 0 0 4px rgba(245,158,11,.14); animation: preview-pulse 1.8s ease infinite; }
.maintenance-admin-grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(340px,.92fr); gap: 20px; align-items: start; }
.maintenance-settings-card { display: grid; gap: 20px; }
.maintenance-settings-card .panel-heading { margin-bottom: 0; }
.maintenance-master-switch { padding: 17px; background: var(--accent-soft); border: 1px solid color-mix(in srgb,var(--purple) 23%,var(--line)); border-radius: 14px; display: grid; }
.maintenance-master-switch span b,.maintenance-master-switch span small { display: block; }
.maintenance-master-switch span b { font-size: 12px; }
.maintenance-master-switch span small { max-width: 520px; margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.maintenance-fields { display: grid; gap: 14px; }
.maintenance-fields label > small { color: var(--muted); font-weight: 500; }
.maintenance-fields textarea { resize: vertical; }
.maintenance-form-actions { display: flex; align-items: center; gap: 10px; }
.maintenance-form-actions .mini-btn { min-height: 45px; padding-inline: 17px; display: inline-flex; align-items: center; }
.maintenance-preview-card { padding: 18px; }
.maintenance-preview-browser { overflow: hidden; min-height: 405px; background: linear-gradient(145deg,#061323,#0d2744 62%,color-mix(in srgb,var(--purple) 58%,#175e84)); border: 1px solid rgba(125,211,252,.2); border-radius: 17px; box-shadow: 0 22px 52px rgba(8,25,48,.22); }
.maintenance-preview-toolbar { height: 37px; padding: 0 12px; background: rgba(2,8,20,.38); border-bottom: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; gap: 6px; }
.maintenance-preview-toolbar > i { width: 7px; height: 7px; background: #ff6b6b; border-radius: 50%; }
.maintenance-preview-toolbar > i:nth-child(2) { background: #f7c948; }.maintenance-preview-toolbar > i:nth-child(3) { background: #34d399; }
.maintenance-preview-toolbar span { flex: 1; margin-left: 7px; color: rgba(255,255,255,.45); font-size: 12px; text-align: center; }
.maintenance-preview-content { min-height: 368px; padding: 35px 27px; color: white; display: flex; align-items: center; flex-direction: column; justify-content: center; text-align: center; }
.maintenance-preview-logo { display: grid; width: 46px; height: 46px; margin-bottom: 21px; place-items: center; background: linear-gradient(135deg,var(--purple),#38bdf8); border-radius: 14px; box-shadow: 0 13px 30px color-mix(in srgb,var(--purple) 32%,transparent); font-size: 12px; font-weight: 800; }
.maintenance-preview-content > small { color: #9fdcf5; font-size: 12px; font-weight: 800; letter-spacing: .18em; }
.maintenance-preview-content h3 { max-width: 410px; margin: 10px 0 8px; font-size: 25px; letter-spacing: -.04em; }
.maintenance-preview-content p { max-width: 390px; margin: 0; color: rgba(235,245,255,.67); font-size: 12px; line-height: 1.65; }
.maintenance-preview-content > b { margin-top: 21px; padding: 9px 12px; color: #d7f2ff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); border-radius: 30px; font-size: 12px; }
.maintenance-access-note { padding: 15px 5px 0; display: flex; align-items: center; gap: 10px; }
.maintenance-access-note > i { display: grid; flex: 0 0 31px; height: 31px; place-items: center; color: #0b7754; background: #e8faf2; border-radius: 10px; font-size: 12px; font-style: normal; }
.maintenance-access-note span b,.maintenance-access-note span small { display: block; }.maintenance-access-note span b { font-size: 12px; }.maintenance-access-note span small { margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.45; }

body.maintenance-public { min-height: 100vh; padding: 0; overflow-x: hidden; }
body.maintenance-public > .geometric-network { opacity: .82; }
body.maintenance-public > .maintenance-public-shell { position: relative; z-index: 1; }
.maintenance-public-shell { min-height: 100vh; padding: 35px 20px 23px; display: grid; grid-template-rows: auto 1fr auto; place-items: center; background: radial-gradient(circle at 15% 10%,color-mix(in srgb,var(--purple) 18%,transparent),transparent 25rem),radial-gradient(circle at 86% 80%,rgba(56,189,248,.11),transparent 27rem); }
.maintenance-public-card { position: relative; width: min(620px,100%); padding: clamp(38px,7vw,70px); overflow: hidden; color: var(--text); background: color-mix(in srgb,var(--surface-glass) 92%,transparent); border: 1px solid color-mix(in srgb,var(--purple) 24%,var(--line)); border-radius: 30px; box-shadow: 0 35px 100px rgba(7,24,48,.17); backdrop-filter: blur(24px) saturate(125%); text-align: center; }
.maintenance-public-card::after { content: ""; position: absolute; right: -80px; bottom: -105px; width: 250px; height: 250px; border: 1px solid color-mix(in srgb,var(--purple) 16%,transparent); border-radius: 44px; transform: rotate(31deg); pointer-events: none; }
.maintenance-public-brand { position: absolute; top: 23px; left: 25px; display: flex; align-items: center; gap: 9px; text-align: left; }
.maintenance-public-brand > i { display: grid; width: 34px; height: 34px; place-items: center; color: white; background: linear-gradient(135deg,var(--purple),#38bdf8); border-radius: 10px; font-size: 12px; font-style: normal; font-weight: 800; }
.maintenance-public-brand span b,.maintenance-public-brand span small { display: block; }.maintenance-public-brand span b { font-size: 12px; }.maintenance-public-brand span small { margin-top: 2px; color: var(--muted); font-size: 12px; text-transform: uppercase; }
.maintenance-orbit { position: relative; width: 105px; height: 105px; margin: 30px auto 27px; display: grid; place-items: center; }
.maintenance-orbit::before,.maintenance-orbit::after { content: ""; position: absolute; inset: 5px; border: 1px solid color-mix(in srgb,var(--purple) 30%,transparent); border-radius: 36%; animation: maintenance-orbit 11s linear infinite; }
.maintenance-orbit::after { inset: 18px; border-style: dashed; animation-direction: reverse; animation-duration: 8s; }
.maintenance-orbit span { display: grid; width: 53px; height: 53px; place-items: center; color: white; background: linear-gradient(135deg,var(--purple),color-mix(in srgb,var(--purple) 50%,#38bdf8)); border-radius: 17px; box-shadow: 0 17px 40px color-mix(in srgb,var(--purple) 28%,transparent); font-size: 21px; }
.maintenance-orbit > i { position: absolute; width: 7px; height: 7px; background: #38bdf8; border-radius: 50%; box-shadow: 0 0 0 5px rgba(56,189,248,.1); }.maintenance-orbit > i:nth-child(1) { top: 4px; left: 47px; }.maintenance-orbit > i:nth-child(2) { right: 5px; bottom: 22px; }.maintenance-orbit > i:nth-child(3) { left: 8px; bottom: 18px; }
@keyframes maintenance-orbit { to { transform: rotate(360deg); } }
.maintenance-eyebrow { color: var(--accent-ink); font-size: 12px; font-weight: 800; letter-spacing: .2em; }
.maintenance-public-card h1 { margin: 12px 0 12px; font-size: clamp(32px,6vw,50px); letter-spacing: -.055em; }
.maintenance-public-card > p { max-width: 470px; margin: 0 auto; color: var(--muted); font-size: 14px; line-height: 1.7; }
.maintenance-public-status { width: fit-content; max-width: 100%; margin: 27px auto 0; padding: 11px 15px; background: var(--accent-soft); border: 1px solid color-mix(in srgb,var(--purple) 20%,var(--line)); border-radius: 15px; display: flex; align-items: center; gap: 10px; text-align: left; }
.maintenance-public-status > i { width: 9px; height: 9px; background: #f59e0b; border-radius: 50%; box-shadow: 0 0 0 5px rgba(245,158,11,.13); animation: preview-pulse 1.8s ease infinite; }
.maintenance-public-status span b,.maintenance-public-status span small { display: block; }.maintenance-public-status span b { font-size: 12px; }.maintenance-public-status span small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.maintenance-admin-link { position: relative; z-index: 1; display: inline-block; margin-top: 25px; color: var(--accent-ink); font-size: 12px; font-weight: 800; }
.maintenance-mode-toggle,.maintenance-preview-return { position: fixed; z-index: 5; top: 22px; min-height: 38px; padding: 0 13px; color: var(--text); background: var(--surface-glass); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); backdrop-filter: blur(14px); font-size: 12px; font-weight: 800; }
.maintenance-mode-toggle { right: 22px; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }.maintenance-mode-toggle i { font-style: normal; }
.maintenance-preview-return { left: 22px; display: inline-flex; align-items: center; }
.maintenance-public-shell > footer { padding-top: 18px; color: var(--muted); font-size: 12px; text-align: center; }

.monitoring-page-title { align-items: center; }
.monitoring-live-status { min-width: 210px; padding: 10px 13px; border: 1px solid; border-radius: 14px; display: grid; grid-template-columns: 9px 1fr; align-items: center; column-gap: 9px; }
.monitoring-live-status > i { grid-row: 1/3; }.monitoring-live-status b,.monitoring-live-status small { display: block; }.monitoring-live-status b { font-size: 12px; }.monitoring-live-status small { margin-top: 2px; font-size: 12px; }
.monitoring-live-status.is-loading { color: var(--accent-ink); background: var(--accent-soft); border-color: color-mix(in srgb,var(--purple) 22%,var(--line)); }.monitoring-live-status.is-loading > i { background: var(--purple); animation: preview-pulse 1.5s ease infinite; }
.monitoring-live-status.is-online { color: #087451; background: #e8faf2; border-color: #bee9d5; }.monitoring-live-status.is-online > i { background: #18a873; box-shadow: 0 0 0 4px rgba(24,168,115,.11); }
.monitoring-live-status.is-warning { color: #925e0a; background: #fff7df; border-color: #f2dda0; }.monitoring-live-status.is-warning > i { background: #f59e0b; }
.monitoring-live-status.is-offline { color: #b3324a; background: #fff0f2; border-color: #f6cbd3; }.monitoring-live-status.is-offline > i { background: #df4661; }
.monitoring-vitals { margin-bottom: 18px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.monitoring-vital { position: relative; min-width: 0; padding: 17px; background: var(--surface-glass); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 12px 32px rgba(19,31,66,.06); display: grid; grid-template-columns: 39px 1fr; align-items: center; gap: 11px; backdrop-filter: blur(15px); transition: .2s ease; }
.monitoring-vital-icon { display: grid; width: 39px; height: 39px; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border-radius: 12px; font-size: 17px; }
.monitoring-vital div { min-width: 0; }.monitoring-vital div small,.monitoring-vital div strong,.monitoring-vital div em { display: block; }.monitoring-vital div small { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .11em; }.monitoring-vital div strong { margin-top: 4px; font-size: 22px; letter-spacing: -.04em; }.monitoring-vital div em { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 12px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.monitor-health-dot { position: absolute; top: 12px; right: 12px; width: 7px; height: 7px; background: #a8b0c0; border-radius: 50%; }.monitoring-vital.is-good .monitor-health-dot { background: #18a873; box-shadow: 0 0 0 4px rgba(24,168,115,.1); }.monitoring-vital.is-warning .monitor-health-dot { background: #f59e0b; }.monitoring-vital.is-danger .monitor-health-dot { background: #df4661; }.monitoring-vital.is-danger { border-color: rgba(223,70,97,.35); }
.monitoring-chart-grid { margin-bottom: 18px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }.monitor-chart-wide { grid-column: 1/-1; }
.monitor-chart-card { padding: 20px; }.monitor-chart-card > header { margin-bottom: 10px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }.monitor-chart-card > header small { color: var(--accent-ink); font-size: 12px; font-weight: 800; letter-spacing: .15em; }.monitor-chart-card > header h3 { margin: 4px 0 0; font-size: 16px; }.chart-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }.chart-legend span { color: var(--muted); font-size: 12px; font-weight: 700; }.chart-legend span::before { content: ""; display: inline-block; width: 8px; height: 3px; margin-right: 5px; border-radius: 3px; vertical-align: middle; }.chart-legend .site::before,.chart-legend .cpu::before { background: var(--purple); }.chart-legend .server::before,.chart-legend .download::before { background: #38bdf8; }.chart-legend .database::before { background: #20c997; }.chart-legend .memory::before { background: #f59e0b; }.chart-legend .upload::before { background: #a78bfa; }
.monitor-chart-wrap { position: relative; height: 225px; }.monitor-chart-wrap canvas { display: block; width: 100%; height: 100%; }.monitor-chart-wrap > span { position: absolute; inset: 0; display: grid; place-items: center; color: var(--muted); font-size: 12px; pointer-events: none; }.monitor-chart-wrap > span[hidden] { display: none; }.monitor-chart-card > footer { padding-top: 8px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; color: var(--muted); font-size: 12px; }.monitor-chart-card > footer b { color: var(--text); }
.monitoring-gauges { margin-bottom: 18px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }.monitor-gauge-card { padding: 16px; }.monitor-gauge-card > header,.monitor-gauge-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 9px; }.monitor-gauge-card > header span { color: var(--muted); font-size: 12px; font-weight: 700; }.monitor-gauge-card > header b { font-size: 13px; }.monitor-progress { height: 7px; margin: 13px 0; overflow: hidden; background: color-mix(in srgb,var(--line) 75%,transparent); border-radius: 10px; }.monitor-progress > i { display: block; width: 0; height: 100%; background: linear-gradient(90deg,var(--purple),var(--purple-2)); border-radius: inherit; transition: width .45s ease; }.monitor-progress > i.is-warning { background: linear-gradient(90deg,#f7b733,#f59e0b); }.monitor-progress > i.is-danger { background: linear-gradient(90deg,#ef7187,#df4661); }.monitor-progress.is-database > i { background: linear-gradient(90deg,#20c997,#18a873); }.monitor-gauge-card > footer { color: var(--muted); font-size: 12px; }.monitor-gauge-card > footer b { color: var(--text); }
.monitoring-detail-grid { margin-bottom: 18px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }.monitoring-info-card .panel-heading { margin-bottom: 8px; }.monitoring-definition-list { margin: 0; }.monitoring-definition-list > div { min-height: 42px; padding: 10px 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(110px,.8fr) minmax(0,1.2fr); align-items: center; gap: 12px; }.monitoring-definition-list > div:last-child { border: 0; }.monitoring-definition-list dt { color: var(--muted); font-size: 12px; font-weight: 700; }.monitoring-definition-list dd { margin: 0; overflow-wrap: anywhere; font-size: 12px; font-weight: 700; text-align: right; }
.monitoring-app-card .panel-heading { margin-bottom: 17px; }.monitoring-app-counts { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; }.monitoring-app-counts > div { min-width: 0; padding: 15px 9px; background: color-mix(in srgb,var(--bg) 68%,var(--card)); border: 1px solid var(--line); border-radius: 13px; display: grid; justify-items: center; text-align: center; }.monitoring-app-counts i { display: grid; width: 31px; height: 31px; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border-radius: 10px; font-style: normal; }.monitoring-app-counts b { margin-top: 8px; font-size: 19px; }.monitoring-app-counts span { margin-top: 2px; color: var(--muted); font-size: 12px; }
.monitoring-footnote { margin-top: 15px; padding: 13px 15px; color: var(--muted); background: color-mix(in srgb,var(--accent-soft) 45%,transparent); border: 1px solid color-mix(in srgb,var(--purple) 13%,var(--line)); border-radius: 13px; display: flex; gap: 10px; font-size: 12px; line-height: 1.55; }.monitoring-footnote i { display: grid; flex: 0 0 23px; height: 23px; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border-radius: 8px; font-style: normal; font-weight: 800; }.monitoring-footnote p { margin: 2px 0 0; }

html[data-color-mode="dark"] .quick-account-switcher,
html[data-color-mode="dark"] .monitoring-vital,
html[data-color-mode="dark"] .maintenance-public-card { background: rgba(10,21,34,.88); border-color: rgba(74,111,139,.43); }
html[data-color-mode="dark"] .quick-account-list form { background: rgba(255,255,255,.025); }
html[data-color-mode="dark"] .maintenance-status.is-online,
html[data-color-mode="dark"] .monitoring-live-status.is-online { color: #87e6c2; background: #102b25; border-color: #245442; }
html[data-color-mode="dark"] .maintenance-status.is-active,
html[data-color-mode="dark"] .monitoring-live-status.is-warning { color: #f4cf7c; background: #302716; border-color: #5a4922; }
html[data-color-mode="dark"] .monitoring-live-status.is-offline { color: #ff9caf; background: #321a21; border-color: #61313c; }
html[data-color-mode="dark"] .maintenance-access-note > i { color: #86e3bf; background: #102b25; }
html[data-color-mode="dark"] .maintenance-mode-toggle,
html[data-color-mode="dark"] .maintenance-preview-return { background: rgba(8,18,30,.88); border-color: rgba(74,111,139,.43); }

@media (max-width: 1120px) {
  .monitoring-vitals,.monitoring-gauges { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .monitoring-app-counts { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .maintenance-admin-grid { grid-template-columns: 1fr; }
  .maintenance-preview-card { max-width: 680px; width: 100%; }
}
@media (max-width: 780px) {
  .quick-account-list { grid-template-columns: 1fr; }
  .impersonation-banner { top: 86px; align-items: stretch; flex-direction: column; }
  .impersonation-banner button { width: 100%; }
  .maintenance-page-title,.monitoring-page-title { align-items: flex-start; flex-direction: column; gap: 12px; }
  .monitoring-chart-grid,.monitoring-detail-grid { grid-template-columns: 1fr; }.monitor-chart-wide { grid-column: auto; }
  .monitor-chart-wrap { height: 205px; }
}
@media (max-width: 540px) {
  .quick-account-switcher > summary { grid-template-columns: 38px 1fr; }.quick-account-switcher > summary > i { width: 38px; height: 38px; }.quick-account-switcher > summary > em { grid-column: 2; }
  .quick-account-list form { grid-template-columns: 34px 1fr; }.quick-account-list form button { grid-column: 1/-1; width: 100%; }
  .monitoring-vitals,.monitoring-gauges { grid-template-columns: 1fr; }
  .monitoring-app-counts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .monitoring-live-status { width: 100%; }
  .monitor-chart-card { padding: 15px; }.chart-legend { justify-content: flex-start; }.monitor-chart-card > header { flex-direction: column; }
  .maintenance-form-actions { align-items: stretch; flex-direction: column; }.maintenance-form-actions .btn,.maintenance-form-actions .mini-btn { width: 100%; justify-content: center; }
  .maintenance-preview-card { padding: 10px; }.maintenance-preview-content { padding-inline: 18px; }
  .maintenance-public-shell { padding: 72px 13px 18px; }.maintenance-public-card { padding: 80px 23px 38px; border-radius: 23px; }.maintenance-public-brand { top: 19px; left: 20px; }.maintenance-orbit { margin-top: 5px; }.maintenance-mode-toggle { top: 15px; right: 13px; }.maintenance-preview-return { top: 15px; left: 13px; }.maintenance-preview-return + .maintenance-mode-toggle span { display: none; }
}

/* Page introuvable — aucune route interne n’est révélée */
body.error-public { min-height: 100vh; padding: 0; overflow-x: hidden; }
body.error-public > .geometric-network { opacity: .82; }
body.error-public > .error-public-shell { position: relative; z-index: 1; }
.error-public-shell { min-height: 100vh; padding: 35px 20px 23px; display: grid; grid-template-rows: 1fr auto; place-items: center; background: radial-gradient(circle at 12% 15%,color-mix(in srgb,var(--purple) 18%,transparent),transparent 26rem),radial-gradient(circle at 87% 82%,rgba(56,189,248,.12),transparent 28rem); }
.error-public-card { position: relative; width: min(620px,100%); padding: clamp(68px,9vw,92px) clamp(28px,7vw,70px) 55px; overflow: hidden; color: var(--text); background: color-mix(in srgb,var(--surface-glass) 92%,transparent); border: 1px solid color-mix(in srgb,var(--purple) 24%,var(--line)); border-radius: 30px; box-shadow: 0 35px 100px rgba(7,24,48,.17); backdrop-filter: blur(24px) saturate(125%); text-align: center; }
.error-public-card::before,.error-public-card::after { content: ""; position: absolute; pointer-events: none; }
.error-public-card::before { inset: 0; opacity: .28; background-image: linear-gradient(120deg,transparent 48%,color-mix(in srgb,var(--purple) 18%,transparent) 49% 50%,transparent 51%),linear-gradient(30deg,transparent 58%,rgba(56,189,248,.12) 59% 60%,transparent 61%); background-size: 260px 210px,320px 250px; }
.error-public-card::after { right: -82px; bottom: -110px; width: 255px; height: 255px; border: 1px solid color-mix(in srgb,var(--purple) 18%,transparent); border-radius: 45px; transform: rotate(31deg); }
.error-public-card > * { position: relative; z-index: 1; }
.error-code { margin: 13px auto 24px; display: flex; align-items: center; justify-content: center; gap: 13px; }
.error-code span { color: var(--text); font-size: clamp(67px,13vw,103px); font-weight: 800; letter-spacing: -.09em; line-height: .85; text-shadow: 0 14px 35px color-mix(in srgb,var(--purple) 16%,transparent); }
.error-code > i { display: grid; width: 69px; height: 69px; place-items: center; color: white; background: linear-gradient(135deg,var(--purple),color-mix(in srgb,var(--purple) 45%,#38bdf8)); border-radius: 22px; box-shadow: 0 18px 42px color-mix(in srgb,var(--purple) 28%,transparent); font-size: 28px; font-style: normal; transform: rotate(12deg); animation: error-float 4.2s ease-in-out infinite; }
@keyframes error-float { 50% { transform: translateY(-8px) rotate(-8deg); } }
.error-public-card h1 { margin: 12px 0; font-size: clamp(29px,5vw,42px); letter-spacing: -.05em; }
.error-public-card > p { max-width: 475px; margin: 0 auto; color: var(--muted); font-size: 13px; line-height: 1.7; }
.error-return-button { min-width: 220px; margin-top: 28px; gap: 15px; }
.error-return-button i { display: grid; width: 25px; height: 25px; place-items: center; background: rgba(255,255,255,.16); border-radius: 8px; font-style: normal; }
.error-help { display: block; margin-top: 19px; color: var(--muted); font-size: 12px; }
.error-public-shell > footer { padding-top: 18px; color: var(--muted); font-size: 12px; text-align: center; }
html[data-color-mode="dark"] .error-public-card { background: rgba(10,21,34,.88); border-color: rgba(74,111,139,.43); }
@media (max-width: 540px) {
  .error-public-shell { padding: 72px 13px 18px; }
  .error-public-card { padding: 82px 22px 39px; border-radius: 23px; }
  .error-code { gap: 9px; }.error-code > i { width: 54px; height: 54px; border-radius: 17px; font-size: 21px; }
  .error-return-button { width: 100%; min-width: 0; }
  .error-public-card > p { font-size: 12px; }
}

/* Assistant et messagerie — clients connectés / visiteurs sans compte */
.nav-unread-badge { min-width: 18px; height: 18px; margin-left: 7px; padding: 0 5px; display: inline-grid; place-items: center; color: white; background: #ef476f; border-radius: 20px; font-size: 12px; font-style: normal; line-height: 1; vertical-align: middle; box-shadow: 0 0 0 3px rgba(239,71,111,.13); }
.chat-global-toast { position: fixed; z-index: 1250; right: 18px; bottom: 20px; min-width: 260px; padding: 12px 14px; color: var(--text); background: var(--surface-glass); border: 1px solid color-mix(in srgb,var(--purple) 28%,var(--line)); border-radius: 15px; box-shadow: 0 20px 55px rgba(10,24,52,.23); backdrop-filter: blur(18px); display: flex; align-items: center; gap: 10px; opacity: 0; transform: translateY(14px); transition: .22s ease; }.chat-global-toast.show { opacity: 1; transform: translateY(0); }.chat-global-toast > i { width: 35px; height: 35px; display: grid; place-items: center; color: white; background: linear-gradient(135deg,var(--purple),#38bdf8); border-radius: 11px; font-style: normal; }.chat-global-toast b,.chat-global-toast small { display: block; }.chat-global-toast b { font-size: 12px; }.chat-global-toast small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.eventlink-chat[hidden],.eventlink-chat-window[hidden],.eventlink-chat-identity[hidden],.eventlink-chat-launcher em[hidden] { display: none !important; }
.eventlink-chat { position: fixed; z-index: 980; right: 20px; bottom: 20px; color: var(--text); font-family: "DM Sans",Arial,sans-serif; }
.eventlink-chat-launcher { position: relative; min-width: 196px; min-height: 59px; padding: 8px 17px 8px 8px; color: var(--text); background: color-mix(in srgb,var(--surface-glass) 94%,transparent); border: 1px solid color-mix(in srgb,var(--purple) 24%,var(--line)); border-radius: 20px; box-shadow: 0 20px 55px rgba(10,24,52,.2); backdrop-filter: blur(20px) saturate(130%); display: flex; align-items: center; gap: 11px; cursor: pointer; text-align: left; transition: transform .2s ease,box-shadow .2s ease; }
.eventlink-chat-launcher:hover { transform: translateY(-2px); box-shadow: 0 23px 62px rgba(10,24,52,.24); }
.eventlink-chat-orb { position: relative; flex: 0 0 43px; height: 43px; display: grid; place-items: center; color: white; background: linear-gradient(135deg,var(--purple),#38bdf8); border-radius: 15px; box-shadow: 0 10px 25px color-mix(in srgb,var(--purple) 30%,transparent); overflow: hidden; }
.eventlink-chat-orb::after { content: ""; position: absolute; width: 65px; height: 15px; background: rgba(255,255,255,.2); transform: rotate(-40deg) translateY(-28px); animation: chat-orb-shine 4.5s ease-in-out infinite; }
.eventlink-chat-orb i { position: relative; z-index: 1; font-style: normal; font-size: 17px; animation: chat-orb-float 2.8s ease-in-out infinite; }
@keyframes chat-orb-shine { 48%,100% { transform: rotate(-40deg) translateY(50px); } }
@keyframes chat-orb-float { 50% { transform: rotate(14deg) scale(1.08); } }
.eventlink-chat-launcher > span:nth-child(2) b,.eventlink-chat-launcher > span:nth-child(2) small { display: block; }.eventlink-chat-launcher > span:nth-child(2) b { font-size: 12px; }.eventlink-chat-launcher > span:nth-child(2) small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.eventlink-chat-launcher > em { position: absolute; top: -6px; right: -5px; min-width: 22px; height: 22px; padding: 0 5px; display: grid; place-items: center; color: white; background: #ef476f; border: 3px solid var(--card); border-radius: 20px; font-size: 12px; font-style: normal; font-weight: 800; }
.eventlink-chat-launcher.has-unread { animation: chat-launcher-pulse 1.5s ease 2; }@keyframes chat-launcher-pulse { 50% { transform: translateY(-2px) scale(1.025); } }
.eventlink-chat.is-open .eventlink-chat-launcher { pointer-events: none; opacity: 0; transform: translateY(12px) scale(.94); }
.eventlink-chat-window { position: absolute; right: 0; bottom: 0; width: min(400px,calc(100vw - 28px)); height: min(650px,calc(100vh - 34px)); overflow: hidden; background: color-mix(in srgb,var(--surface-glass) 97%,transparent); border: 1px solid color-mix(in srgb,var(--purple) 26%,var(--line)); border-radius: 25px; box-shadow: 0 30px 90px rgba(7,20,46,.3); backdrop-filter: blur(24px) saturate(130%); display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; animation: chat-window-in .24s cubic-bezier(.2,.85,.25,1.1) both; }
@keyframes chat-window-in { from { opacity: 0; transform: translateY(18px) scale(.96); } }
.eventlink-chat-window > header { min-height: 76px; padding: 14px 15px; color: white; background: radial-gradient(circle at 85% 20%,rgba(56,189,248,.25),transparent 40%),linear-gradient(120deg,#091a30,color-mix(in srgb,var(--purple) 72%,#14294b)); display: flex; align-items: center; gap: 11px; }
.eventlink-chat-avatar { flex: 0 0 42px; height: 42px; display: grid; place-items: center; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.19); border-radius: 14px; font-size: 16px; }
.eventlink-chat-window > header > span:nth-child(2) { min-width: 0; flex: 1; }.eventlink-chat-window > header b,.eventlink-chat-window > header small { display: block; }.eventlink-chat-window > header b { font-size: 12px; }.eventlink-chat-window > header small { margin-top: 4px; color: #b9c9df; font-size: 12px; }.eventlink-chat-window > header small i { display: inline-block; width: 6px; height: 6px; margin-right: 4px; background: #4ade80; border-radius: 50%; box-shadow: 0 0 0 4px rgba(74,222,128,.11); }
.eventlink-chat-window > header button { width: 34px; height: 34px; color: white; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 11px; cursor: pointer; font-size: 20px; }
.eventlink-chat-intro { padding: 9px 15px; color: var(--muted); background: color-mix(in srgb,var(--accent-soft) 55%,var(--card)); border-bottom: 1px solid var(--line); font-size: 12px; line-height: 1.45; text-align: center; }
.eventlink-chat-messages { min-height: 0; padding: 16px; overflow: auto; display: flex; flex-direction: column; gap: 11px; scroll-behavior: smooth; }
.eventlink-chat-message { max-width: 84%; align-self: flex-start; }.eventlink-chat-message.is-own { align-self: flex-end; }
.eventlink-chat-message b { display: block; margin: 0 4px 4px; color: var(--muted); font-size: 12px; font-weight: 700; }
.eventlink-chat-message p { margin: 0; padding: 10px 12px; color: var(--text); background: color-mix(in srgb,var(--bg) 70%,var(--card)); border: 1px solid var(--line); border-radius: 5px 15px 15px 15px; font-size: 12px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.eventlink-chat-message.is-own p { color: white; background: linear-gradient(135deg,var(--purple),color-mix(in srgb,var(--purple) 68%,#38bdf8)); border-color: transparent; border-radius: 15px 5px 15px 15px; box-shadow: 0 9px 20px color-mix(in srgb,var(--purple) 18%,transparent); }.eventlink-chat-message.is-own b { text-align: right; }
.eventlink-chat-message.is-admin p { border-color: color-mix(in srgb,var(--purple) 20%,var(--line)); background: color-mix(in srgb,var(--accent-soft) 60%,var(--card)); }
.eventlink-chat-form { padding: 12px; background: color-mix(in srgb,var(--card) 94%,transparent); border-top: 1px solid var(--line); }
.eventlink-chat-identity { margin-bottom: 9px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }.eventlink-chat-identity label { color: var(--muted); font-size: 12px; font-weight: 700; }.eventlink-chat-identity input { width: 100%; min-height: 38px; margin-top: 4px; padding: 0 10px; color: var(--text); background: var(--card); border: 1px solid var(--line); border-radius: 10px; outline: none; font-size: 12px; }.eventlink-chat-identity input:focus { border-color: var(--purple); box-shadow: 0 0 0 3px var(--accent-soft); }
.eventlink-chat-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.eventlink-chat-composer { padding: 5px 5px 5px 12px; background: var(--card); border: 1px solid var(--line); border-radius: 15px; display: flex; align-items: end; gap: 8px; }.eventlink-chat-composer:focus-within { border-color: color-mix(in srgb,var(--purple) 55%,var(--line)); box-shadow: 0 0 0 3px var(--accent-soft); }
.eventlink-chat-composer textarea { min-height: 39px; max-height: 110px; flex: 1; padding: 10px 0 7px; resize: none; color: var(--text); background: transparent; border: 0; outline: 0; font-size: 12px; line-height: 1.4; }
.eventlink-chat-composer button { flex: 0 0 39px; height: 39px; color: white; background: linear-gradient(135deg,var(--purple),#38bdf8); border: 0; border-radius: 12px; cursor: pointer; }.eventlink-chat-composer button:disabled { opacity: .55; cursor: wait; }.eventlink-chat-composer button span { display: inline-block; transform: rotate(-9deg); }
.eventlink-chat-status { min-height: 13px; margin-top: 6px; display: block; color: var(--muted); font-size: 12px; text-align: center; }.eventlink-chat-status.is-success { color: #149366; }.eventlink-chat-status.is-error { color: var(--red); }

.chat-page-title { align-items: center; }.chat-live-badge { padding: 9px 12px; color: #087451; background: #e8faf2; border: 1px solid #bee9d5; border-radius: 30px; font-size: 12px; font-weight: 800; }.chat-live-badge i { display: inline-block; width: 6px; height: 6px; margin-right: 5px; background: #18a873; border-radius: 50%; animation: preview-pulse 1.8s ease infinite; }
.chat-admin-shell { height: min(690px,calc(100vh - 210px)); min-height: 540px; margin-bottom: 20px; padding: 0 !important; overflow: hidden; display: grid; grid-template-columns: 345px minmax(0,1fr); }
.chat-admin-sidebar { min-width: 0; padding: 17px; border-right: 1px solid var(--line); display: grid; grid-template-rows: auto auto minmax(0,1fr); gap: 12px; }
.chat-admin-tabs { padding: 4px; background: color-mix(in srgb,var(--bg) 74%,var(--card)); border: 1px solid var(--line); border-radius: 13px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }.chat-admin-tabs button { min-height: 38px; padding: 0 9px; color: var(--muted); background: transparent; border: 0; border-radius: 10px; display: flex; align-items: center; justify-content: center; gap: 7px; cursor: pointer; font-size: 12px; font-weight: 800; }.chat-admin-tabs button.active { color: var(--accent-ink); background: var(--card); box-shadow: 0 5px 16px rgba(19,31,66,.08); }.chat-admin-tabs button i { min-width: 18px; height: 18px; padding: 0 4px; display: grid; place-items: center; color: white; background: var(--purple); border-radius: 20px; font-size: 12px; font-style: normal; }
.chat-admin-search { min-height: 40px; padding: 0 11px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; display: flex; align-items: center; gap: 8px; }.chat-admin-search i { color: var(--muted); font-style: normal; }.chat-admin-search input { min-width: 0; flex: 1; color: var(--text); background: transparent; border: 0; outline: 0; font-size: 12px; }
.chat-admin-list { min-height: 0; overflow: auto; display: flex; flex-direction: column; gap: 6px; }.chat-conversation-card { width: 100%; min-height: 76px; padding: 10px; color: var(--text); background: transparent; border: 1px solid transparent; border-radius: 14px; display: grid; grid-template-columns: 39px minmax(0,1fr) auto; align-items: center; gap: 9px; cursor: pointer; text-align: left; }.chat-conversation-card:hover { background: color-mix(in srgb,var(--accent-soft) 35%,transparent); }.chat-conversation-card.active { background: color-mix(in srgb,var(--accent-soft) 68%,var(--card)); border-color: color-mix(in srgb,var(--purple) 22%,var(--line)); }.chat-conversation-card.unread { background: color-mix(in srgb,var(--accent-soft) 46%,var(--card)); }.chat-conversation-card > i { width: 39px; height: 39px; display: grid; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border-radius: 13px; font-size: 12px; font-style: normal; font-weight: 800; }.chat-conversation-card > span:nth-child(2) { min-width: 0; }.chat-conversation-card b,.chat-conversation-card small,.chat-conversation-card em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.chat-conversation-card b { font-size: 12px; }.chat-conversation-card small { margin-top: 3px; color: var(--muted); font-size: 12px; }.chat-conversation-card em { margin-top: 6px; color: var(--muted); font-size: 12px; font-style: normal; }.chat-conversation-side { align-self: stretch; display: flex; flex-direction: column; align-items: end; justify-content: space-between; }.chat-conversation-side time { color: var(--muted); font-size: 12px; }.chat-conversation-side i { min-width: 18px; height: 18px; padding: 0 4px; display: grid; place-items: center; color: white; background: #ef476f; border-radius: 20px; font-size: 12px; font-style: normal; }
.chat-admin-thread { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr) auto; }.chat-thread-header { min-height: 76px; padding: 14px 18px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 14px; }.chat-thread-header > div { min-width: 0; display: flex; align-items: center; gap: 11px; }.chat-thread-header > div > i { flex: 0 0 42px; height: 42px; display: grid; place-items: center; color: white; background: linear-gradient(135deg,var(--purple),#38bdf8); border-radius: 14px; font-size: 12px; font-style: normal; font-weight: 800; }.chat-thread-header b,.chat-thread-header small { display: block; }.chat-thread-header b { font-size: 12px; }.chat-thread-header small { max-width: 500px; margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.chat-thread-messages { min-height: 0; padding: 22px; overflow: auto; background: radial-gradient(circle at 95% 5%,color-mix(in srgb,var(--purple) 7%,transparent),transparent 24rem); display: flex; flex-direction: column; gap: 11px; }.chat-thread-message { max-width: min(620px,82%); align-self: flex-start; }.chat-thread-message.outgoing { align-self: flex-end; }.chat-thread-message b { display: block; margin: 0 4px 4px; color: var(--muted); font-size: 12px; }.chat-thread-message p { margin: 0; padding: 11px 13px; background: var(--card); border: 1px solid var(--line); border-radius: 5px 15px 15px 15px; font-size: 12px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }.chat-thread-message.outgoing p { color: white; background: linear-gradient(135deg,var(--purple),color-mix(in srgb,var(--purple) 70%,#38bdf8)); border-color: transparent; border-radius: 15px 5px 15px 15px; }.chat-thread-message.sender-assistant p { color: var(--text); background: color-mix(in srgb,var(--accent-soft) 65%,var(--card)); border-color: color-mix(in srgb,var(--purple) 20%,var(--line)); }.chat-thread-message time { margin: 4px 5px 0; display: block; color: var(--muted); font-size: 12px; }.chat-thread-message.outgoing time,.chat-thread-message.outgoing b { text-align: right; }
.chat-thread-composer { padding: 13px 15px; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }.chat-thread-composer textarea { min-height: 48px; max-height: 110px; padding: 11px 13px; resize: vertical; color: var(--text); background: var(--card); border: 1px solid var(--line); border-radius: 13px; outline: 0; font-size: 12px; }.chat-thread-composer textarea:focus { border-color: var(--purple); box-shadow: 0 0 0 3px var(--accent-soft); }.chat-thread-composer .btn { min-height: 48px; }.chat-thread-composer > small { grid-column: 1/-1; color: var(--muted); font-size: 12px; }
.chat-admin-empty,.chat-admin-list-empty,.chat-admin-loading,.chat-admin-error { min-height: 180px; padding: 24px; display: grid; place-items: center; align-content: center; gap: 7px; color: var(--muted); text-align: center; }.chat-admin-empty > i,.chat-admin-list-empty > i { width: 48px; height: 48px; display: grid; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border-radius: 16px; font-style: normal; }.chat-admin-empty h3 { margin: 4px 0 0; color: var(--text); font-size: 16px; }.chat-admin-empty p { margin: 0; font-size: 12px; }.chat-admin-list-empty b { color: var(--text); font-size: 12px; }.chat-admin-list-empty small { font-size: 12px; }.chat-admin-loading.thread { height: 100%; }.chat-admin-loading > i { width: 25px; height: 25px; border: 3px solid var(--line); border-top-color: var(--purple); border-radius: 50%; animation: maintenance-orbit .8s linear infinite; }.chat-admin-loading span,.chat-admin-error { font-size: 12px; }.chat-admin-error { color: var(--red); }
.chat-settings-panel { padding: 0 !important; overflow: hidden; }.chat-settings-panel > summary { min-height: 76px; padding: 16px 20px; list-style: none; display: flex; align-items: center; gap: 12px; cursor: pointer; }.chat-settings-panel > summary::-webkit-details-marker { display: none; }.chat-settings-panel > summary > span:nth-child(2) { flex: 1; }.chat-settings-panel > summary small,.chat-settings-panel > summary b { display: block; }.chat-settings-panel > summary small { color: var(--accent-ink); font-size: 12px; font-weight: 800; letter-spacing: .14em; }.chat-settings-panel > summary b { margin-top: 4px; font-size: 13px; }.chat-settings-panel > summary > i:last-child { color: var(--muted); font-style: normal; transition: transform .2s ease; }.chat-settings-panel[open] > summary > i:last-child { transform: rotate(180deg); }.chat-settings-form { padding: 0 22px 22px; border-top: 1px solid var(--line); }.chat-settings-grid { padding-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }.chat-settings-grid > section { min-width: 0; }.chat-settings-grid h3 { margin: 0 0 12px; font-size: 14px; }.chat-settings-form label:not(.switch-row):not(.chat-clear-key) { margin-top: 11px; display: grid; gap: 6px; color: var(--text); font-size: 12px; font-weight: 700; }.chat-settings-form input[type="email"],.chat-settings-form input[type="password"],.chat-settings-form input[name="chat_ai_model"],.chat-settings-form textarea { width: 100%; min-height: 43px; padding: 10px 12px; color: var(--text); background: var(--card); border: 1px solid var(--line); border-radius: 12px; outline: 0; font-size: 12px; }.chat-settings-form textarea { min-height: 84px; resize: vertical; }.chat-settings-form .switch-row { min-height: 58px; margin: 0; padding: 10px 0; border-bottom: 1px solid var(--line); display: flex; gap: 12px; }.chat-settings-form .switch-row span { flex: 1; }.chat-settings-form .switch-row b,.chat-settings-form .switch-row small { display: block; }.chat-settings-form .switch-row b { font-size: 12px; }.chat-settings-form .switch-row small { margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.35; }.chat-key-status { min-height: 38px; margin: 10px 0 0; padding: 8px 10px; border: 1px solid; border-radius: 11px; display: flex; align-items: center; gap: 8px; font-size: 12px; }.chat-key-status i { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 7px; font-style: normal; font-weight: 800; }.chat-key-status.configured { color: #087451; background: #e8faf2; border-color: #bee9d5; }.chat-key-status.configured i { color: white; background: #18a873; }.chat-key-status.missing { color: #925e0a; background: #fff7df; border-color: #f2dda0; }.chat-key-status.missing i { color: white; background: #f59e0b; }.chat-clear-key { margin-top: 9px; display: flex; align-items: center; gap: 7px; color: var(--red); font-size: 12px; cursor: pointer; }.chat-welcome-grid { margin-top: 17px; padding-top: 17px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.chat-settings-actions { margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 16px; }.chat-settings-actions p { margin: 0; color: var(--muted); font-size: 12px; }

html[data-color-mode="dark"] .eventlink-chat-launcher,html[data-color-mode="dark"] .eventlink-chat-window { background: rgba(9,20,33,.96); border-color: rgba(74,111,139,.5); }.eventlink-chat-window,.eventlink-chat-launcher { color-scheme: inherit; }
html[data-color-mode="dark"] .chat-live-badge,html[data-color-mode="dark"] .chat-key-status.configured { color: #87e6c2; background: #102b25; border-color: #245442; }
html[data-color-mode="dark"] .chat-key-status.missing { color: #f4cf7c; background: #302716; border-color: #5a4922; }

@media (max-width: 930px) {
  .chat-admin-shell { height: auto; min-height: 0; grid-template-columns: 1fr; }.chat-admin-sidebar { min-height: 390px; border-right: 0; border-bottom: 1px solid var(--line); }.chat-admin-thread { min-height: 540px; }.chat-settings-grid,.chat-welcome-grid { grid-template-columns: 1fr; }
}
@media (max-width: 780px) {
  body[data-role="client"] .eventlink-chat { bottom: 82px; }
  .chat-page-title { align-items: flex-start; flex-direction: column; gap: 10px; }.chat-live-badge { align-self: flex-start; }
  .chat-admin-shell { margin-inline: -8px; }.chat-settings-actions { align-items: stretch; flex-direction: column; }.chat-settings-actions .btn { width: 100%; }
}
@media (max-width: 540px) {
  .eventlink-chat { right: 11px; bottom: 11px; }.eventlink-chat-launcher { min-width: 0; width: 58px; height: 58px; padding: 7px; border-radius: 19px; }.eventlink-chat-launcher > span:nth-child(2) { display: none; }.eventlink-chat-orb { width: 42px; }
  body[data-role="client"] .eventlink-chat { bottom: 80px; }
  .eventlink-chat-window { position: fixed; inset: 8px 8px calc(8px + env(safe-area-inset-bottom)); width: auto; height: auto; border-radius: 22px; }
  .eventlink-chat-identity { grid-template-columns: 1fr; }.eventlink-chat-message { max-width: 90%; }
  .chat-admin-sidebar { min-height: 360px; padding: 12px; }.chat-admin-thread { min-height: 520px; }.chat-thread-header { padding: 11px; }.chat-thread-header small { max-width: 195px; }.chat-thread-messages { padding: 14px 11px; }.chat-thread-message { max-width: 91%; }.chat-thread-composer { padding: 10px; grid-template-columns: 1fr; }.chat-thread-composer .btn { width: 100%; }.chat-settings-form { padding-inline: 14px; }
}

/* Centre de notifications e-mail et SMS */
.sidebar nav { min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.16) transparent; }
.chat-ai-explainer { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }.chat-ai-explainer article { min-width: 0; padding: 13px; background: color-mix(in srgb,var(--accent-soft) 45%,var(--card)); border: 1px solid color-mix(in srgb,var(--purple) 15%,var(--line)); border-radius: 13px; display: flex; gap: 10px; }.chat-ai-explainer article > i { flex: 0 0 27px; height: 27px; display: grid; place-items: center; color: white; background: linear-gradient(135deg,var(--purple),#38bdf8); border-radius: 9px; font-size: 12px; font-style: normal; font-weight: 800; }.chat-ai-explainer b,.chat-ai-explainer small { display: block; }.chat-ai-explainer b { font-size: 12px; }.chat-ai-explainer small { margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.chat-ai-test-card { margin: 0 22px 22px; padding: 15px; background: color-mix(in srgb,var(--card) 92%,var(--accent-soft)); border: 1px solid var(--line); border-radius: 15px; display: flex; align-items: center; gap: 14px; }.chat-ai-test-card.is-success { border-color: #72d9b1; background: color-mix(in srgb,#e8faf2 72%,var(--card)); }.chat-ai-test-card.is-error { border-color: #f0a5aa; background: color-mix(in srgb,#fff0f1 72%,var(--card)); }.chat-ai-test-state { min-width: 270px; display: flex; align-items: center; gap: 11px; }.chat-ai-test-state > i { flex: 0 0 34px; height: 34px; display: grid; place-items: center; color: white; background: var(--muted); border-radius: 11px; font-style: normal; font-weight: 900; }.chat-ai-test-card.is-success .chat-ai-test-state > i { background: #18a873; }.chat-ai-test-card.is-error .chat-ai-test-state > i { background: #dc4f5b; }.chat-ai-test-state span { min-width: 0; }.chat-ai-test-state small,.chat-ai-test-state b,.chat-ai-test-state em { display: block; }.chat-ai-test-state small { color: var(--accent-ink); font-size: 12px; font-weight: 900; letter-spacing: .12em; }.chat-ai-test-state b { margin-top: 3px; font-size: 12px; }.chat-ai-test-state em { margin-top: 3px; color: var(--muted); font-size: 12px; font-style: normal; }.chat-ai-diagnostic { flex: 1; margin: 0; padding: 9px 11px; color: var(--text); background: color-mix(in srgb,var(--card) 80%,transparent); border-radius: 10px; font-size: 12px; line-height: 1.5; }.chat-ai-test-card form { margin-left: auto; }.chat-ai-test-card button:disabled { cursor: not-allowed; opacity: .45; }
html[data-color-mode="dark"] .chat-ai-test-card.is-success { background: #102b25; border-color: #245442; }html[data-color-mode="dark"] .chat-ai-test-card.is-error { background: #321d22; border-color: #653039; }
.notification-page-title { align-items: center; }.notification-mode-badge { min-height: 35px; padding: 0 13px; color: var(--accent-ink); background: var(--accent-soft); border: 1px solid color-mix(in srgb,var(--purple) 22%,var(--line)); border-radius: 30px; display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 800; }.notification-mode-badge i { font-style: normal; }
.notification-status-grid { margin-bottom: 18px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }.notification-status-card { min-width: 0; padding: 16px !important; display: grid; grid-template-columns: 39px minmax(0,1fr); align-items: center; gap: 11px; }.notification-status-card > i { width: 39px; height: 39px; display: grid; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border-radius: 12px; font-style: normal; font-size: 15px; }.notification-status-card small,.notification-status-card b,.notification-status-card em { display: block; }.notification-status-card small { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .12em; }.notification-status-card b { margin-top: 3px; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.notification-status-card em { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 12px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }.notification-status-card.is-ready > i { color: #087451; background: #e8faf2; }.notification-status-card.is-warning > i { color: #925e0a; background: #fff7df; }.notification-status-card.is-danger > i { color: #b3324a; background: #fff0f2; }
.notification-settings-form { margin-bottom: 18px; }.notification-channel-picker { margin-bottom: 21px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }.notification-channel-picker label { position: relative; cursor: pointer; }.notification-channel-picker input { position: absolute; opacity: 0; pointer-events: none; }.notification-channel-picker label > span { min-height: 105px; padding: 14px; background: color-mix(in srgb,var(--bg) 60%,var(--card)); border: 1px solid var(--line); border-radius: 15px; display: grid; grid-template-columns: 35px 1fr; grid-template-rows: auto auto; align-items: center; column-gap: 10px; transition: .2s ease; }.notification-channel-picker label > span > i { grid-row: 1/3; width: 35px; height: 35px; display: grid; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border-radius: 11px; font-style: normal; }.notification-channel-picker label > span b { font-size: 12px; }.notification-channel-picker label > span small { color: var(--muted); font-size: 12px; line-height: 1.4; }.notification-channel-picker input:checked + span { background: color-mix(in srgb,var(--accent-soft) 72%,var(--card)); border-color: var(--purple); box-shadow: 0 0 0 3px color-mix(in srgb,var(--purple) 10%,transparent); }.notification-channel-picker input:checked + span::after { content: "✓"; position: absolute; top: 9px; right: 9px; width: 19px; height: 19px; display: grid; place-items: center; color: white; background: var(--purple); border-radius: 50%; font-size: 12px; font-weight: 800; }
.notification-config-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 16px; }.notification-config-card { min-width: 0; padding: 18px; background: color-mix(in srgb,var(--bg) 52%,var(--card)); border: 1px solid var(--line); border-radius: 17px; transition: opacity .2s ease,filter .2s ease; }.notification-config-card.is-muted { opacity: .48; filter: saturate(.45); }.notification-config-card.is-muted:hover,.notification-config-card.is-muted:focus-within { opacity: .9; filter: none; }.notification-config-heading { margin-bottom: 13px; display: grid; grid-template-columns: 39px 1fr auto; align-items: center; gap: 10px; }.notification-config-heading > i { width: 39px; height: 39px; display: grid; place-items: center; color: white; background: linear-gradient(135deg,var(--purple),#38bdf8); border-radius: 12px; font-style: normal; }.notification-config-heading small,.notification-config-heading h3 { display: block; }.notification-config-heading small { color: var(--accent-ink); font-size: 12px; font-weight: 800; letter-spacing: .12em; }.notification-config-heading h3 { margin: 3px 0 0; font-size: 13px; }.notification-config-heading > em { padding: 5px 8px; border: 1px solid; border-radius: 20px; font-size: 12px; font-style: normal; font-weight: 800; }.notification-config-heading > em.ready { color: #087451; background: #e8faf2; border-color: #bee9d5; }.notification-config-heading > em.waiting { color: #925e0a; background: #fff7df; border-color: #f2dda0; }
.notification-config-card > label,.notification-secret-grid label { margin-top: 11px; display: grid; gap: 6px; color: var(--text); font-size: 12px; font-weight: 700; }.notification-config-card input { width: 100%; min-height: 43px; padding: 0 12px; color: var(--text); background: var(--card); border: 1px solid var(--line); border-radius: 12px; outline: 0; font-size: 12px; }.notification-config-card input:focus { border-color: var(--purple); box-shadow: 0 0 0 3px var(--accent-soft); }.notification-config-card label > small { color: var(--muted); font-size: 12px; font-weight: 500; line-height: 1.4; }.notification-secret-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }.notification-config-card > p { margin: 13px 0 0; padding: 10px; color: var(--muted); background: color-mix(in srgb,var(--accent-soft) 45%,transparent); border: 1px solid color-mix(in srgb,var(--purple) 12%,var(--line)); border-radius: 11px; display: flex; gap: 8px; font-size: 12px; line-height: 1.5; }.notification-config-card > p > i { font-style: normal; }.notification-clear-credentials { color: var(--red) !important; display: flex !important; grid-template-columns: auto 1fr; align-items: center; }.notification-clear-credentials input { width: 15px; min-height: 15px; box-shadow: none; }
.notification-form-actions { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 20px; }.notification-form-actions p { max-width: 680px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }.notification-form-actions p b { color: var(--text); }
.notification-test-panel { margin-bottom: 18px; padding: 16px 19px !important; display: flex; align-items: center; justify-content: space-between; gap: 15px; }.notification-test-panel > div { display: flex; align-items: center; gap: 11px; }.notification-test-panel > div > i { width: 40px; height: 40px; display: grid; place-items: center; color: #087451; background: #e8faf2; border-radius: 12px; font-style: normal; font-weight: 800; }.notification-test-panel small,.notification-test-panel h3,.notification-test-panel p { display: block; }.notification-test-panel small { color: var(--accent-ink); font-size: 12px; font-weight: 800; letter-spacing: .12em; }.notification-test-panel h3 { margin: 3px 0 2px; font-size: 13px; }.notification-test-panel p { margin: 0; color: var(--muted); font-size: 12px; }
.notification-history-panel .panel-heading { margin-bottom: 13px; }.notification-history-table { overflow-x: auto; }.notification-history-head,.notification-history-table article { min-width: 780px; display: grid; grid-template-columns: 130px 75px minmax(160px,1fr) minmax(170px,1fr) 95px; align-items: center; gap: 12px; }.notification-history-head { padding: 9px 12px; color: var(--muted); background: color-mix(in srgb,var(--bg) 65%,var(--card)); border-radius: 10px; font-size: 12px; font-weight: 800; letter-spacing: .08em; }.notification-history-table article { position: relative; min-height: 57px; padding: 10px 12px; border-bottom: 1px solid var(--line); font-size: 12px; }.notification-history-table article time { color: var(--muted); }.notification-history-table article > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.notification-history-table article > span small { margin-top: 3px; display: block; color: var(--muted); font-size: 12px; }.notification-channel-tag { width: fit-content; padding: 5px 7px; border-radius: 8px; font-size: 12px; font-weight: 800; }.notification-channel-tag.email { color: var(--accent-ink); background: var(--accent-soft); }.notification-channel-tag.sms { color: #087451; background: #e8faf2; }.notification-log-status { width: fit-content; padding: 6px 8px; border-radius: 9px; font-size: 12px; font-style: normal; font-weight: 800; }.notification-log-status.sent { color: #087451; background: #e8faf2; }.notification-log-status.failed { color: #b3324a; background: #fff0f2; }.notification-history-table article > p { grid-column: 1/-1; margin: 0; padding: 7px 9px; color: #b3324a; background: #fff0f2; border-radius: 8px; font-size: 12px; }.notification-history-empty { min-height: 170px; display: grid; place-items: center; align-content: center; gap: 6px; color: var(--muted); text-align: center; }.notification-history-empty > i { width: 44px; height: 44px; display: grid; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border-radius: 14px; font-style: normal; }.notification-history-empty b { color: var(--text); font-size: 12px; }.notification-history-empty small { font-size: 12px; }
html[data-color-mode="dark"] .notification-status-card.is-ready > i,html[data-color-mode="dark"] .notification-config-heading > em.ready,html[data-color-mode="dark"] .notification-test-panel > div > i,html[data-color-mode="dark"] .notification-channel-tag.sms,html[data-color-mode="dark"] .notification-log-status.sent { color: #87e6c2; background: #102b25; border-color: #245442; }
html[data-color-mode="dark"] .notification-status-card.is-warning > i,html[data-color-mode="dark"] .notification-config-heading > em.waiting { color: #f4cf7c; background: #302716; border-color: #5a4922; }
html[data-color-mode="dark"] .notification-status-card.is-danger > i,html[data-color-mode="dark"] .notification-log-status.failed,html[data-color-mode="dark"] .notification-history-table article > p { color: #ff9caf; background: #321a21; }
@media (max-width: 1120px) { .notification-status-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.notification-config-grid { grid-template-columns: 1fr; } }
@media (max-width: 780px) { .chat-ai-explainer { grid-template-columns: 1fr; }.chat-ai-test-card { margin-inline: 14px; align-items: stretch; flex-direction: column; }.chat-ai-test-state { min-width: 0; }.chat-ai-test-card form,.chat-ai-test-card .mini-btn { width: 100%; margin-left: 0; }.notification-page-title { align-items: flex-start; flex-direction: column; gap: 10px; }.notification-channel-picker { grid-template-columns: 1fr; }.notification-channel-picker label > span { min-height: 76px; }.notification-form-actions,.notification-test-panel { align-items: stretch; flex-direction: column; }.notification-form-actions .btn,.notification-test-panel .mini-btn { width: 100%; justify-content: center; } }
@media (max-width: 540px) { .notification-status-grid { grid-template-columns: 1fr; }.notification-secret-grid { grid-template-columns: 1fr; }.notification-config-heading { grid-template-columns: 36px 1fr; }.notification-config-heading > i { width: 36px; height: 36px; }.notification-config-heading > em { grid-column: 2; width: fit-content; }.notification-settings-form { padding: 18px !important; } }

/* Assistant automatique gratuit */
.chat-assistant-modes { display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:15px }.chat-assistant-modes label{position:relative;cursor:pointer}.chat-assistant-modes input{position:absolute;opacity:0;pointer-events:none}.chat-assistant-modes span{min-height:93px;padding:12px;display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center;background:color-mix(in srgb,var(--bg) 58%,var(--card));border:1px solid var(--line);border-radius:14px;transition:.2s ease}.chat-assistant-modes span>i{grid-row:1/3;width:28px;height:28px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:9px;font-style:normal}.chat-assistant-modes b{font-size:12px}.chat-assistant-modes small{color:var(--muted);font-size:12px;line-height:1.35}.chat-assistant-modes input:checked+span{border-color:var(--purple);background:color-mix(in srgb,var(--accent-soft) 70%,var(--card));box-shadow:0 0 0 3px color-mix(in srgb,var(--purple) 10%,transparent)}.chat-assistant-modes input:checked+span>i{color:white;background:linear-gradient(135deg,var(--purple),#38bdf8)}.chat-openai-optional{padding:14px;background:color-mix(in srgb,var(--bg) 48%,var(--card));border:1px dashed var(--line);border-radius:14px}.chat-openai-optional>h3{font-size:12px!important}.chat-free-replies{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.chat-free-replies>div:first-child small{color:var(--accent-ink);font-size:12px;font-weight:900;letter-spacing:.13em}.chat-free-replies>div:first-child h3{margin:4px 0;font-size:14px}.chat-free-replies>div:first-child p{margin:0;color:var(--muted);font-size:12px}.chat-free-replies-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chat-free-replies-grid label:last-child{grid-column:1/-1}.chat-free-replies-grid textarea{min-height:96px!important}.chat-free-replies-grid label:last-child textarea{min-height:72px!important}@media(max-width:780px){.chat-assistant-modes,.chat-free-replies-grid{grid-template-columns:1fr}.chat-free-replies-grid label:last-child{grid-column:auto}}

/* Accueil client : conducteur et préparation intelligente */
.client-command-hero{position:relative;min-height:220px;margin-bottom:14px;padding:34px 38px;overflow:hidden;color:#fff;background:radial-gradient(ellipse at 83% 4%,rgba(255,255,255,.15),transparent 31%),linear-gradient(125deg,var(--hero-from),var(--hero-to));border:1px solid rgba(255,255,255,.09);border-radius:26px;box-shadow:0 24px 55px rgba(18,30,51,.18);display:flex;align-items:center;justify-content:space-between;gap:30px}.client-command-hero::after{content:"";position:absolute;right:-95px;bottom:-170px;width:330px;height:330px;border:55px solid rgba(255,255,255,.045);border-radius:50%;pointer-events:none}.client-command-copy,.client-command-countdown{position:relative;z-index:1}.client-command-copy>small,.client-home-agenda>header small,.client-smart-tasks header small,.client-key-moments header small,.client-preparation-meter header small{color:color-mix(in srgb,var(--purple) 42%,#fff);font-size:12px;font-weight:900;letter-spacing:.16em}.client-command-copy h2{max-width:720px;margin:9px 0 7px;font-size:clamp(25px,3.3vw,39px);letter-spacing:-.045em}.client-command-copy>p{margin:0;color:rgba(240,244,252,.76);font-size:12px}.client-command-copy>div{margin-top:19px;display:flex;flex-wrap:wrap;gap:8px}.client-command-copy>div span{padding:7px 10px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.11);border-radius:20px;font-size:12px;font-weight:700}.client-command-countdown{flex:0 0 155px;min-height:145px;padding:20px 13px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);border-radius:22px;backdrop-filter:blur(10px);display:grid;place-items:center;align-content:center;text-align:center}.client-command-countdown small{font-size:12px;font-weight:900;letter-spacing:.13em}.client-command-countdown b{margin:5px 0;font-size:48px;line-height:1}.client-command-countdown span{color:rgba(245,247,252,.76);font-size:12px}
.client-quick-tools{margin-bottom:17px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.client-quick-tools>a,.client-quick-tools>button{min-width:0;min-height:68px;padding:11px 13px;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 9px 28px rgba(22,35,52,.055);display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left;transition:.2s ease}.client-quick-tools>a:hover,.client-quick-tools>button:hover{border-color:color-mix(in srgb,var(--purple) 35%,var(--line));transform:translateY(-2px)}.client-quick-tools i{flex:0 0 35px;height:35px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:11px;font-style:normal;font-weight:800}.client-quick-tools b,.client-quick-tools small{display:block}.client-quick-tools b{font-size:12px}.client-quick-tools small{margin-top:3px;color:var(--muted);font-size:12px}
.client-home-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);align-items:start;gap:16px}.client-home-agenda{padding:0!important;overflow:hidden}.client-home-agenda>header{padding:21px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.client-home-agenda>header h2,.client-smart-tasks h2,.client-key-moments h2{margin:4px 0;font-size:17px}.client-home-agenda>header p{margin:0;color:var(--muted);font-size:12px}.client-home-agenda>header>a,.client-key-moments>a,.client-preparation-meter>a{color:var(--accent-ink);font-size:12px;font-weight:800}.client-agenda-line{position:relative;padding:8px 20px 17px}.client-agenda-line::before{content:"";position:absolute;top:26px;bottom:31px;left:93px;width:2px;background:var(--line)}.client-agenda-moment{position:relative;min-height:82px;padding:13px 4px;display:grid;grid-template-columns:56px 16px minmax(0,1fr);gap:11px;transition:.2s ease}.client-agenda-moment>time{padding-top:4px;color:var(--text);font-size:13px;font-weight:900}.client-agenda-moment>time small{margin-top:3px;display:block;color:var(--muted);font-size:12px;font-weight:600}.client-agenda-moment>i{position:relative;z-index:1;width:12px;height:12px;margin-top:6px;background:var(--card);border:3px solid color-mix(in srgb,var(--purple) 45%,var(--line));border-radius:50%;box-shadow:0 0 0 4px var(--card)}.client-agenda-moment>div{min-width:0;padding-bottom:11px;border-bottom:1px solid var(--line)}.client-agenda-moment>div>span{color:var(--accent-ink);font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.client-agenda-moment h3{margin:3px 0;font-size:12px}.client-agenda-moment p{margin:4px 0;color:var(--muted);font-size:12px;line-height:1.45}.client-agenda-moment footer{margin-top:7px;display:flex;flex-wrap:wrap;gap:6px 13px}.client-agenda-moment footer em{padding:4px 7px;color:var(--accent-ink);background:var(--accent-soft);border-radius:7px;font-size:12px;font-style:normal}.client-agenda-moment footer small{color:var(--muted);font-size:12px}.client-agenda-moment.is-past{opacity:.48}.client-agenda-moment.is-current{margin:3px -8px;padding:13px 12px;background:var(--accent-soft);border-radius:14px;opacity:1}.client-agenda-moment.is-current>i{background:var(--purple);border-color:var(--purple);box-shadow:0 0 0 5px color-mix(in srgb,var(--purple) 14%,var(--card))}.client-agenda-moment.is-current h3::after{content:"EN COURS";margin-left:8px;padding:3px 6px;color:white;background:var(--purple);border-radius:6px;font-size:12px;vertical-align:middle}.client-agenda-moment.is-next>i{border-color:var(--purple);box-shadow:0 0 0 5px var(--accent-soft)}.client-agenda-empty{min-height:320px;display:grid;place-items:center;align-content:center;text-align:center}.client-agenda-empty>i{width:52px;height:52px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:17px;font-size:21px;font-style:normal}.client-agenda-empty h3{margin:12px 0 4px}.client-agenda-empty p{margin:0;color:var(--muted);font-size:12px}
.client-home-side{display:grid;gap:14px}.client-home-side>.panel{padding:18px}.client-smart-tasks>header,.client-key-moments>header,.client-preparation-meter>header{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.client-smart-tasks>header em{padding:5px 8px;color:var(--accent-ink);background:var(--accent-soft);border-radius:20px;font-size:12px;font-style:normal;font-weight:800}.client-smart-tasks>a{padding:10px 2px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:9px}.client-smart-tasks>a:last-child{border:0}.client-smart-tasks>a>i{flex:0 0 29px;height:29px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:10px;font-size:12px;font-style:normal;font-weight:900}.client-smart-tasks>a.is-done>i{color:#fff;background:var(--green)}.client-smart-tasks>a.is-done{opacity:.58}.client-smart-tasks b,.client-smart-tasks small,.client-key-moments b,.client-key-moments small{display:block}.client-smart-tasks b,.client-key-moments b{font-size:12px}.client-smart-tasks small,.client-key-moments small{margin-top:3px;color:var(--muted);font-size:12px}.client-key-moments>div{padding:10px 0;border-bottom:1px solid var(--line);display:flex;gap:10px}.client-key-moments time{flex:0 0 39px;color:var(--accent-ink);font-size:12px;font-weight:900}.client-key-moments>p,.client-preparation-meter>p{color:var(--muted);font-size:12px;line-height:1.5}.client-key-moments>a,.client-preparation-meter>a{margin-top:12px;display:block}.client-preparation-meter>header b{font-size:20px}.client-preparation-meter>div{height:7px;overflow:hidden;background:var(--line);border-radius:20px}.client-preparation-meter>div i{height:100%;display:block;background:linear-gradient(90deg,var(--purple),var(--purple-2));border-radius:inherit}.client-preparation-meter>p{margin:11px 0}.client-event-switch{margin-bottom:12px}.client-event-switch label{display:flex;align-items:center;justify-content:flex-end;gap:9px;color:var(--muted);font-size:12px}.client-event-switch select{width:auto;min-width:220px}
@media(max-width:1050px){.client-home-layout{grid-template-columns:1fr}.client-home-side{grid-template-columns:repeat(3,1fr)}.client-quick-tools{grid-template-columns:repeat(2,1fr)}}@media(max-width:780px){.client-command-hero{min-height:0;padding:24px 20px;align-items:stretch;flex-direction:column}.client-command-countdown{min-height:95px;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:10px}.client-command-countdown small{grid-column:1/-1}.client-command-countdown b{font-size:34px}.client-home-side{grid-template-columns:1fr}.client-home-agenda>header{align-items:flex-start;flex-direction:column}.client-agenda-line{padding-inline:12px}.client-agenda-line::before{left:81px}.client-agenda-moment{grid-template-columns:52px 14px minmax(0,1fr);gap:8px}.client-quick-tools{grid-template-columns:1fr 1fr}}@media(max-width:480px){.client-quick-tools{grid-template-columns:1fr}.client-command-copy>div{display:grid}.client-event-switch label{align-items:stretch;flex-direction:column}.client-event-switch select{width:100%;min-width:0}}@media print{.sidebar,.main>header,.mobile-nav,.eventlink-chat,.client-quick-tools,.client-event-switch,.account-switcher,.session-warning{display:none!important}.main{margin:0!important}.content{max-width:none!important;padding:0!important}.client-command-hero{min-height:0;color:#17203a;background:#fff;border:1px solid #ddd;box-shadow:none}.client-command-copy>p,.client-command-countdown span{color:#555}.client-home-layout{grid-template-columns:1fr}.client-home-side{grid-template-columns:repeat(3,1fr)}.client-home-agenda,.client-home-side>.panel{box-shadow:none!important;break-inside:avoid}}

/* Monogramme officiel Valou Évènementiel */
.brand>i,.big-logo,.login-card-logo{font-size:0}.brand>i::after,.big-logo::after,.login-card-logo::after{content:"VE";font-size:12px;font-weight:800}.brand>i::after{font-size:12px}.big-logo::after{font-size:15px}


/* Sécurité */
.security-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.security-status{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid #d8f0e4;border-radius:999px;background:#f4fcf7;color:#16845d;font-size:12px;font-weight:800}
.security-status i{width:8px;height:8px;border-radius:50%;background:#18a873;box-shadow:0 0 0 4px rgba(24,168,115,.12)}
.security-vitals{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}
.security-vital{display:flex;align-items:center;gap:15px;padding:20px}
.security-vital>i{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--accent-soft);color:var(--accent-ink);font-style:normal;font-size:21px}
.security-vital small,.security-vital em{display:block;color:var(--muted);font-style:normal}
.security-vital small{font-size:12px;font-weight:800;letter-spacing:.08em}
.security-vital strong{display:block;font-size:26px;margin:2px 0}
.security-vital em{font-size:12px}
.security-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-bottom:18px}
.security-block-list,.security-event-table{display:grid}
.security-row,.security-event-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.security-row:first-child,.security-event-row:first-child{border-top:0}
.security-row span{min-width:0;flex:1}
.security-row b,.security-row small{display:block}
.security-row small{color:var(--muted);margin-top:3px;font-size:12px}
.security-rules{list-style:none;margin:0;padding:0}
.security-rules li{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}
.security-rules li:last-child{border-bottom:0}
.security-rules b{font-size:12px}.security-rules span{color:var(--muted);font-size:12px;text-align:right}
.security-empty{padding:22px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center;font-size:12px}
.security-events{margin-bottom:18px}
.security-event-row{display:grid;grid-template-columns:76px minmax(0,1fr) 115px 145px}
.security-event-row span:nth-child(2) b,.security-event-row span:nth-child(2) small{display:block}
.security-event-row span:nth-child(2) small{color:var(--muted);font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.security-event-row code{font-size:12px;color:var(--muted)}
.security-event-row time{font-size:12px;color:var(--muted);text-align:right}
.security-level{display:inline-grid;place-items:center;width:max-content;padding:5px 7px;border-radius:7px;font-size:12px;font-weight:800}
.security-level.info{background:#edf5ff;color:#356da8}.security-level.warning{background:#fff7e7;color:#a66b00}.security-level.critical{background:#fff0f2;color:#bd304b}
.security-check{display:flex!important;align-items:center;gap:9px;margin:12px 0 15px!important;font-size:12px!important;color:var(--muted)}
.security-check input,.eventlink-chat-captcha input{width:17px;height:17px;accent-color:var(--purple)}
.eventlink-chat-captcha{display:flex;align-items:center;gap:8px;padding:8px 10px;margin:8px 0;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.7);font-size:12px;color:var(--muted)}
@media(max-width:900px){.security-vitals{grid-template-columns:repeat(2,1fr)}.security-grid{grid-template-columns:1fr}.security-event-row{grid-template-columns:70px minmax(0,1fr);}.security-event-row code,.security-event-row time{display:none}}
@media(max-width:560px){.security-vitals{grid-template-columns:1fr}.security-title{display:block}.security-status{margin-top:12px}.security-rules li{display:block}.security-rules span{display:block;text-align:left;margin-top:4px}}

/* Gestion financière — devis, factures et paiements */
.billing-page-title{align-items:center}.billing-page-title>div:first-child>small,.finance-dashboard-title small{color:var(--accent-ink);font-size:12px;font-weight:900;letter-spacing:.16em}.billing-title-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.billing-title-actions .secondary{color:var(--accent-ink);background:var(--accent-soft);box-shadow:none}.billing-profile-warning{display:flex;align-items:center;justify-content:space-between;gap:15px}.billing-profile-warning a{font-weight:800}.billing-kpis,.finance-mini-stats{margin:20px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.billing-kpis article,.finance-mini-stats article{min-width:0;padding:17px;display:flex;align-items:center;gap:12px}.billing-kpis article>i,.finance-mini-stats article>i{flex:0 0 42px;height:42px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:13px;font-size:16px;font-style:normal;font-weight:900}.billing-kpis article span,.billing-kpis small,.billing-kpis b,.billing-kpis em,.finance-mini-stats span,.finance-mini-stats small,.finance-mini-stats b{display:block;min-width:0}.billing-kpis small,.finance-mini-stats small{overflow:hidden;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.11em;text-overflow:ellipsis;white-space:nowrap}.billing-kpis b,.finance-mini-stats b{margin:3px 0;font-size:19px;letter-spacing:-.035em}.billing-kpis em{color:var(--muted);font-size:12px;font-style:normal}.billing-kpis .is-alert>i,.finance-mini-stats .is-alert>i{color:#bd304b;background:#fff0f2}.billing-back{margin:3px 0 13px}.billing-back a{color:var(--accent-ink);font-size:12px;font-weight:800}.billing-filters{margin-bottom:14px;padding:13px!important;display:grid;grid-template-columns:minmax(220px,1fr) 170px 180px auto;align-items:end;gap:9px}.billing-filters label{font-size:12px}.billing-filters input,.billing-filters select{margin-top:4px}.billing-document-list{padding:0!important;overflow:hidden}.billing-document-row{min-height:67px;padding:12px 16px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(180px,1.05fr) minmax(180px,1.15fr) 90px 100px 120px 105px;align-items:center;gap:12px;color:var(--text);transition:.18s ease}.billing-document-row:not(.billing-document-header):hover{background:color-mix(in srgb,var(--accent-soft) 48%,var(--card));transform:translateX(2px)}.billing-document-header{min-height:40px;color:var(--muted);background:color-mix(in srgb,var(--bg) 65%,var(--card));border:0;font-size:12px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.billing-document-row>span{min-width:0}.billing-document-row>span:first-child{display:grid;grid-template-columns:30px 1fr;column-gap:9px}.billing-document-row>span:first-child>i{grid-row:1/3;width:30px;height:30px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:9px;font-style:normal;font-weight:900}.billing-document-row b,.billing-document-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.billing-document-row b{font-size:12px}.billing-document-row small{margin-top:3px;color:var(--muted);font-size:12px}.billing-document-row time,.billing-document-row>strong{font-size:12px}.billing-status{width:max-content;padding:5px 7px;color:#67501e;background:#fff6dc;border:0;border-radius:7px;font-size:12px;font-style:normal;font-weight:900;text-decoration:none}.billing-status.paid,.billing-status.accepted{color:#087451;background:#e7f8f1}.billing-status.partial{color:#236693;background:#eaf5fc}.billing-status.refused,.billing-status.cancelled,.billing-status.overdue{color:#b33149;background:#fff0f2}.billing-status.draft{color:#626f84;background:#eef1f5}.billing-status.sent{color:#5943ae;background:#efeaff}.billing-empty{padding:45px!important;text-align:center;color:var(--muted)}.billing-empty>i{width:51px;height:51px;margin:auto;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:16px;font-style:normal;font-size:20px}.billing-empty h3{margin:12px 0 4px;color:var(--text)}.billing-empty p{margin:0;font-size:12px}.billing-detail-head{margin-bottom:14px;padding:18px!important;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px}.billing-detail-identity{display:flex;align-items:center;gap:13px}.billing-detail-identity>i{flex:0 0 44px;height:44px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--purple),var(--purple-2));border-radius:14px;font-style:normal;font-size:18px}.billing-detail-identity small,.billing-detail-identity h2,.billing-detail-identity p{display:block;margin:0}.billing-detail-identity small{color:var(--accent-ink);font-size:12px;font-weight:900;letter-spacing:.13em}.billing-detail-identity h2{margin:2px 0;font-size:16px}.billing-detail-identity p{color:var(--muted);font-size:12px}.billing-detail-total{text-align:right}.billing-detail-total small,.billing-detail-total b{display:block}.billing-detail-total small{color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.12em}.billing-detail-total b{margin:2px 0 5px;font-size:20px}.billing-detail-actions{display:flex;gap:7px}.billing-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);align-items:start;gap:14px}.billing-document-preview{padding:25px!important}.billing-document-preview>header{padding-bottom:15px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.billing-document-preview>header div:last-child{text-align:right}.billing-document-preview>header small,.billing-document-preview>header b{display:block}.billing-document-preview>header small,.billing-document-parties small,.billing-preview-meta small,.billing-preview-notes small{color:var(--accent-ink);font-size:12px;font-weight:900;letter-spacing:.12em}.billing-document-preview>header b{margin-top:4px;font-size:12px}.billing-document-parties{margin:18px 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.billing-document-parties article{min-height:105px;padding:14px;background:color-mix(in srgb,var(--bg) 55%,var(--card));border:1px solid var(--line);border-radius:13px}.billing-document-parties b,.billing-document-parties p,.billing-document-parties em{display:block}.billing-document-parties b{margin:5px 0;font-size:12px}.billing-document-parties p,.billing-document-parties em{margin:3px 0;color:var(--muted);font-size:12px;line-height:1.5}.billing-document-parties em{color:var(--accent-ink);font-style:normal}.billing-preview-meta{margin-bottom:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.billing-preview-meta span{padding:10px;background:var(--accent-soft);border-radius:10px}.billing-preview-meta b{display:block;margin-top:3px;font-size:12px}.billing-preview-lines>div{padding:10px 6px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(180px,1fr) 48px 80px 55px 90px;gap:8px;align-items:center}.billing-preview-lines>div:first-child{color:var(--muted);background:color-mix(in srgb,var(--bg) 55%,var(--card));border-radius:9px;font-size:12px;font-weight:900;text-transform:uppercase}.billing-preview-lines span:not(:first-child),.billing-preview-lines strong{text-align:right;font-size:12px}.billing-preview-lines b,.billing-preview-lines small{display:block}.billing-preview-lines b{font-size:12px}.billing-preview-lines small{margin-top:2px;color:var(--muted);font-size:12px}.billing-preview-totals{width:min(330px,100%);margin:15px 0 15px auto}.billing-preview-totals span{padding:7px 3px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.billing-preview-totals span:last-child{margin-top:5px;padding:11px;color:#fff;background:var(--hero-from);border:0;border-radius:10px}.billing-preview-totals small{font-size:12px}.billing-preview-totals b{font-size:12px}.billing-preview-totals span:last-child b{font-size:13px}.billing-preview-notes{padding:12px;background:color-mix(in srgb,var(--bg) 60%,var(--card));border-radius:11px}.billing-preview-notes p,.billing-vat-note{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.billing-detail-side{display:grid;gap:13px}.billing-detail-side>.panel{padding:17px!important}.billing-detail-side form label{font-size:12px}.billing-detail-side form .mini-btn,.billing-detail-side form .btn{margin-top:8px;width:100%}.billing-convert-form{margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}.billing-payment-progress{height:7px;margin:10px 0 13px;overflow:hidden;background:var(--line);border-radius:10px}.billing-payment-progress i{height:100%;display:block;background:linear-gradient(90deg,#20a874,#5bd1a6);border-radius:inherit}.billing-payment-card>article{padding:10px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:9px}.billing-payment-card>article>i{flex:0 0 27px;height:27px;display:grid;place-items:center;color:#087451;background:#e7f8f1;border-radius:9px;font-size:12px;font-style:normal}.billing-payment-card>article span{min-width:0;flex:1}.billing-payment-card>article b,.billing-payment-card>article small{display:block}.billing-payment-card>article b{font-size:12px}.billing-payment-card>article small{margin-top:2px;color:var(--muted);font-size:12px}.billing-payment-card>article button{color:#c24155;background:transparent;border:0;cursor:pointer}.billing-payment-card details{margin-top:11px;padding-top:11px;border-top:1px solid var(--line)}.billing-payment-card summary{color:var(--accent-ink);cursor:pointer;font-size:12px;font-weight:900}.billing-payment-card details form{margin-top:10px}.billing-no-payment{color:var(--muted);font-size:12px}.billing-accept-card,.billing-accepted-card{text-align:center}.billing-accept-card>i,.billing-accepted-card>i{width:45px;height:45px;margin:auto;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#13a676,#64d5a9);border-radius:15px;font-style:normal;font-size:17px}.billing-accept-card h3,.billing-accepted-card h3{margin:11px 0 4px}.billing-accept-card p,.billing-accepted-card p{color:var(--muted);font-size:12px}.billing-accept-card form label{margin:10px 0;display:flex;align-items:flex-start;gap:8px;text-align:left}.billing-accept-card form input{width:auto}.billing-editor{display:grid;gap:14px}.billing-editor-head{padding:16px 18px!important;display:flex;justify-content:space-between;align-items:center;gap:20px}.billing-editor-head small{color:var(--accent-ink);font-size:12px;font-weight:900;letter-spacing:.13em}.billing-editor-head h3{margin:4px 0 0}.billing-editor-actions{display:flex;gap:8px}.billing-editor-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:14px}.billing-editor-main,.billing-editor-side,.billing-lines,.billing-editor-notes{padding:19px!important}.billing-editor h3{margin:0 0 13px}.billing-editor-side p{color:var(--muted);font-size:12px;line-height:1.5}.billing-lines>.panel-heading{margin-bottom:12px}.billing-line{padding:6px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(210px,1fr) 75px 100px 85px 80px 92px 28px;gap:7px;align-items:center}.billing-line-header{padding:7px;color:var(--muted);background:color-mix(in srgb,var(--bg) 60%,var(--card));border:0;border-radius:9px;font-size:12px;font-weight:900;text-transform:uppercase}.billing-line input,.billing-line select{min-width:0;padding:9px 8px;font-size:12px}.billing-line strong{text-align:right;font-size:12px}.billing-line>button{width:27px;height:27px;color:#c44257;background:#fff0f2;border:0;border-radius:8px;cursor:pointer}.billing-live-total{margin:15px 0 0 auto;width:min(470px,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.billing-live-total span{padding:11px;background:color-mix(in srgb,var(--bg) 55%,var(--card));border-radius:10px}.billing-live-total span:last-child{color:#fff;background:var(--hero-from)}.billing-live-total small,.billing-live-total b{display:block}.billing-live-total small{font-size:12px}.billing-live-total b{margin-top:3px;font-size:12px}.billing-editor-notes>button{margin-top:12px}.billing-settings{padding:24px!important}.billing-settings hr{margin:24px 0;border:0;border-top:1px solid var(--line)}.billing-legal-note{margin:18px 0;padding:14px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--purple) 18%,var(--line));border-radius:13px}.billing-legal-note b{font-size:12px}.billing-legal-note p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.billing-client-list{display:grid;gap:10px}.billing-client-card{padding:16px!important;display:grid;grid-template-columns:42px minmax(0,1fr) auto 100px;align-items:center;gap:13px;color:var(--text);transition:.2s ease}.billing-client-card:hover{border-color:color-mix(in srgb,var(--purple) 33%,var(--line));transform:translateY(-2px)}.billing-client-card>i{width:42px;height:42px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:13px;font-style:normal;font-size:17px}.billing-client-card span small,.billing-client-card span b,.billing-client-card span em,.billing-client-card strong small{display:block}.billing-client-card span small{color:var(--accent-ink);font-size:12px;font-weight:900}.billing-client-card span b{margin:3px 0;font-size:12px}.billing-client-card span em,.billing-client-card strong small{color:var(--muted);font-size:12px;font-style:normal}.billing-client-card>strong{text-align:right;font-size:13px}.finance-dashboard-block{margin:24px 0}.finance-dashboard-title{align-items:flex-end}.finance-dashboard-title>div h2{margin:4px 0 0}.finance-dashboard-title>a{color:var(--accent-ink);font-size:12px;font-weight:800}.finance-mini-stats{margin:12px 0}.finance-mini-stats article{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 25px rgba(24,35,55,.05)}.finance-recent-strip{overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:15px}.finance-recent-strip>a{padding:10px 13px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) 100px 105px;align-items:center;gap:10px;color:var(--text)}.finance-recent-strip>a:first-child{border:0}.finance-recent-strip span small,.finance-recent-strip span b{display:block}.finance-recent-strip span small{color:var(--accent-ink);font-size:12px}.finance-recent-strip span b{margin-top:2px;font-size:12px}.finance-recent-strip em{text-align:right;font-size:12px;font-style:normal;font-weight:800}
.billing-revenue-chart{margin:14px 0;padding:19px!important}.billing-revenue-chart>header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.billing-revenue-chart>header small{display:block;color:var(--accent-ink);font-size:12px;font-weight:900;letter-spacing:.12em}.billing-revenue-chart>header h3{margin:4px 0 2px}.billing-revenue-chart>header p{margin:0;color:var(--muted);font-size:12px}.billing-revenue-chart>header>b{text-align:right;font-size:17px}.billing-revenue-chart>header>b small{margin-top:3px;color:var(--muted);font-size:12px;letter-spacing:0}.billing-revenue-chart>div{height:190px;margin-top:20px;padding-top:14px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:8px}.billing-revenue-chart>div>span{height:100%;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.billing-revenue-chart>div i{width:min(27px,72%);min-height:4px;background:linear-gradient(180deg,var(--purple-2),var(--purple));border-radius:8px 8px 3px 3px;box-shadow:0 7px 15px color-mix(in srgb,var(--purple) 20%,transparent);transition:.25s ease}.billing-revenue-chart>div>span:hover i{filter:saturate(1.2);transform:translateY(-3px)}.billing-revenue-chart>div small{color:var(--muted);font-size:12px;font-weight:800;text-align:center}.billing-revenue-chart>div em{display:block;margin-top:1px;font-size:12px;font-style:normal;font-weight:600;opacity:.7}
@media(max-width:1180px){.billing-kpis,.finance-mini-stats{grid-template-columns:repeat(2,1fr)}.billing-document-row{grid-template-columns:minmax(170px,1fr) minmax(160px,1fr) 85px 95px 95px}.billing-document-row>span:nth-child(5),.billing-document-header span:nth-child(5){display:none}.billing-line{grid-template-columns:minmax(180px,1fr) 65px 90px 75px 70px 85px 28px}.billing-detail-grid{grid-template-columns:1fr}.billing-detail-side{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.billing-title-actions{justify-content:flex-start}.billing-page-title{align-items:flex-start;flex-direction:column}.billing-filters{grid-template-columns:1fr 1fr}.billing-filters label:first-of-type{grid-column:1/-1}.billing-document-row{grid-template-columns:minmax(160px,1fr) 90px 95px}.billing-document-row>span:nth-child(2),.billing-document-row>time,.billing-document-header span:nth-child(2),.billing-document-header span:nth-child(3){display:none}.billing-editor-grid{grid-template-columns:1fr}.billing-line-header{display:none}.billing-line{padding:12px;grid-template-columns:1fr 1fr;background:color-mix(in srgb,var(--bg) 55%,var(--card));border:1px solid var(--line);border-radius:12px;margin-bottom:8px}.billing-line input:first-child{grid-column:1/-1}.billing-line strong{text-align:left}.billing-line>button{justify-self:end}.billing-detail-head{grid-template-columns:1fr auto}.billing-detail-actions{grid-column:1/-1}.billing-document-parties{grid-template-columns:1fr}.billing-detail-side{grid-template-columns:1fr}}
@media(max-width:560px){.billing-kpis,.finance-mini-stats{grid-template-columns:1fr}.billing-profile-warning,.billing-editor-head{align-items:flex-start;flex-direction:column}.billing-editor-actions{width:100%;flex-wrap:wrap}.billing-editor-actions .btn{flex:1}.billing-filters{grid-template-columns:1fr}.billing-filters label:first-of-type{grid-column:auto}.billing-document-header{display:none}.billing-document-row{padding:14px;grid-template-columns:1fr auto;gap:8px}.billing-document-row>strong{grid-column:2;grid-row:1}.billing-document-row>.billing-status{grid-column:2;grid-row:2}.billing-client-card{grid-template-columns:38px 1fr}.billing-client-card>strong,.billing-client-card>.billing-status{grid-column:2;text-align:left}.billing-detail-head{grid-template-columns:1fr}.billing-detail-total{text-align:left}.billing-detail-actions{grid-column:auto;flex-wrap:wrap}.billing-document-preview{padding:15px!important}.billing-preview-meta{grid-template-columns:1fr}.billing-preview-lines>div{grid-template-columns:minmax(120px,1fr) 50px 75px}.billing-preview-lines>div span:nth-child(3),.billing-preview-lines>div span:nth-child(4){display:none}.billing-line{grid-template-columns:1fr}.billing-line input:first-child{grid-column:auto}.billing-line>button{justify-self:start}.billing-live-total{grid-template-columns:1fr}.finance-recent-strip>a{grid-template-columns:1fr auto}.finance-recent-strip .billing-status{grid-column:1/-1}}

/* Univers Émeraude — bleu/vert moderne, surfaces colorées et verre doux */
.theme-choice[data-theme-choice="lagoon"] .theme-preview::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 18%,rgba(48,215,186,.52),transparent 23%),linear-gradient(145deg,transparent 50%,rgba(32,132,163,.28) 51%,transparent 52%);pointer-events:none}
body[data-theme="lagoon"]{--bg:#dcefed;--card:rgba(224,246,243,.82);--text:#102f3c;--muted:#587481;--line:rgba(34,111,124,.17);--green:#12a886;--sidebar-from:#062b3a;--sidebar-via:#073f51;--sidebar-to:#087e79;--hero-from:#073b4d;--hero-to:#07958a;--accent-soft:rgba(24,183,160,.13);--accent-ink:#087d75;--page-glow:rgba(19,156,151,.16);--surface-glass:rgba(220,244,241,.78);background:radial-gradient(circle at 92% 2%,rgba(57,190,181,.30),transparent 30rem),radial-gradient(circle at 10% 95%,rgba(28,127,166,.20),transparent 35rem),linear-gradient(145deg,#d7eeec,#cbe6e7 52%,#dcebed);background-attachment:fixed}
body[data-theme="lagoon"]::after{opacity:.8;background:radial-gradient(ellipse at 72% 18%,rgba(255,255,255,.24),transparent 30%),radial-gradient(ellipse at 25% 82%,rgba(15,143,151,.08),transparent 34%);mask-image:none}
body[data-theme="lagoon"] .sidebar{background:radial-gradient(circle at 82% 7%,rgba(45,211,181,.22),transparent 28%),linear-gradient(165deg,#052835,#073d50 55%,#08766f);box-shadow:15px 0 45px rgba(3,45,57,.16)}
body[data-theme="lagoon"] .sidebar::after{opacity:.6;background:linear-gradient(135deg,transparent 0 45%,rgba(66,219,192,.09) 45.4% 46%,transparent 46.4%),radial-gradient(circle at 12% 86%,rgba(76,204,213,.16),transparent 28%)}
body[data-theme="lagoon"] .brand>i,body[data-theme="lagoon"] .big-logo,body[data-theme="lagoon"] .login-card-logo{background:linear-gradient(135deg,#22c9aa,#258fbd);box-shadow:0 12px 28px rgba(12,174,157,.28);border-radius:14px}
body[data-theme="lagoon"] .sidebar nav a.active{background:linear-gradient(90deg,rgba(38,203,178,.21),rgba(76,183,206,.10));box-shadow:inset 3px 0 #50ddc0,0 8px 24px rgba(0,25,35,.10)}
body[data-theme="lagoon"] .main>header{background:rgba(218,239,238,.76);border-bottom-color:rgba(26,105,121,.14);backdrop-filter:blur(22px) saturate(130%)}
body[data-theme="lagoon"] .panel,body[data-theme="lagoon"] .event-card,body[data-theme="lagoon"] .client-actions>a,body[data-theme="lagoon"] .day-planner,body[data-theme="lagoon"] .stats>div,body[data-theme="lagoon"] .finance-recent-strip,body[data-theme="lagoon"] .install-card{background:linear-gradient(145deg,rgba(232,249,246,.88),rgba(204,234,234,.75));border-color:rgba(27,112,123,.17);box-shadow:0 20px 55px rgba(13,77,88,.09),inset 0 1px rgba(255,255,255,.58);backdrop-filter:blur(18px) saturate(125%)}
body[data-theme="lagoon"] .welcome,body[data-theme="lagoon"] .client-hero,body[data-theme="lagoon"] .client-command-hero,body[data-theme="lagoon"] .planner-summary,body[data-theme="lagoon"] .dossier-step>header{background:radial-gradient(circle at 88% 8%,rgba(70,222,194,.29),transparent 30%),linear-gradient(125deg,#073244,#075870 55%,#07947f);box-shadow:0 26px 62px rgba(4,74,82,.22)}
body[data-theme="lagoon"] .btn{background:linear-gradient(135deg,#0b9d8a,#20b9a4 55%,#2699bd);box-shadow:0 13px 30px rgba(8,139,132,.22)}
body[data-theme="lagoon"] input,body[data-theme="lagoon"] select,body[data-theme="lagoon"] textarea{background:rgba(232,249,247,.76);border-color:rgba(22,111,124,.20)}
body[data-theme="lagoon"] .login{background:radial-gradient(circle at 88% 8%,rgba(61,205,187,.25),transparent 30%),linear-gradient(140deg,#052a39 0 50%,#d7efed 50%)}
body[data-theme="lagoon"] .login-brand{background:radial-gradient(circle at 15% 85%,rgba(48,202,190,.20),transparent 27%),linear-gradient(145deg,#052937,#07485c 65%,#08776e)}
body[data-theme="lagoon"] .login-side{background:rgba(214,238,237,.72);backdrop-filter:blur(18px)}body[data-theme="lagoon"] .login-card{background:linear-gradient(145deg,rgba(235,250,248,.94),rgba(210,238,237,.89));border-color:rgba(22,111,124,.18);box-shadow:0 35px 90px rgba(5,73,83,.17)}
html[data-color-mode="dark"] body[data-theme="lagoon"]{--bg:#061b24;--card:rgba(10,42,51,.84);--text:#e4f7f4;--muted:#91b3b5;--line:rgba(111,190,189,.19);--accent-soft:rgba(38,203,177,.13);--accent-ink:#58dbc3;--surface-glass:rgba(8,34,43,.82);background:radial-gradient(circle at 92% 3%,rgba(19,150,138,.16),transparent 30rem),radial-gradient(circle at 8% 95%,rgba(25,113,154,.13),transparent 34rem),#061922}
html[data-color-mode="dark"] body[data-theme="lagoon"]::after{background:radial-gradient(ellipse at 72% 18%,rgba(63,218,190,.05),transparent 30%),radial-gradient(ellipse at 25% 82%,rgba(38,150,188,.06),transparent 34%)}
html[data-color-mode="dark"] body[data-theme="lagoon"] .main>header{background:rgba(5,27,36,.78)}html[data-color-mode="dark"] body[data-theme="lagoon"] .panel,html[data-color-mode="dark"] body[data-theme="lagoon"] .event-card,html[data-color-mode="dark"] body[data-theme="lagoon"] .client-actions>a,html[data-color-mode="dark"] body[data-theme="lagoon"] .day-planner,html[data-color-mode="dark"] body[data-theme="lagoon"] .stats>div,html[data-color-mode="dark"] body[data-theme="lagoon"] .finance-recent-strip,html[data-color-mode="dark"] body[data-theme="lagoon"] .install-card{background:linear-gradient(145deg,rgba(11,48,58,.90),rgba(7,38,48,.78));border-color:rgba(79,170,171,.22);box-shadow:0 24px 65px rgba(0,0,0,.18),inset 0 1px rgba(134,224,210,.05)}
html[data-color-mode="dark"] body[data-theme="lagoon"] input,html[data-color-mode="dark"] body[data-theme="lagoon"] select,html[data-color-mode="dark"] body[data-theme="lagoon"] textarea{color:#e6f7f4;background:rgba(5,29,38,.74);border-color:rgba(81,174,174,.27)}html[data-color-mode="dark"] body[data-theme="lagoon"] .login-side{background:rgba(4,25,33,.78)}html[data-color-mode="dark"] body[data-theme="lagoon"] .login-card{background:linear-gradient(145deg,rgba(9,42,51,.95),rgba(5,29,39,.91));border-color:rgba(84,183,180,.24)}

/* Comptabilité et préparation de paie */
.business-page-title{align-items:center}.business-legal-banner,.payroll-warning{margin:15px 0;padding:15px 17px;display:flex;align-items:center;gap:13px;color:#0b615a;background:linear-gradient(135deg,rgba(221,249,241,.92),rgba(206,242,238,.82));border:1px solid rgba(17,157,135,.20);border-radius:16px}.business-legal-banner>i,.payroll-warning>i{flex:0 0 39px;height:39px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#0e9f84,#25baa8);border-radius:12px;font-style:normal;font-weight:900}.business-legal-banner span,.business-legal-banner b,.business-legal-banner small{display:block}.business-legal-banner small{margin-top:3px;color:#4b7775;font-size:12px}.quarter-board{margin:14px 0;padding:18px!important}.quarter-board>header{display:flex;align-items:flex-end;justify-content:space-between;gap:25px}.quarter-board>header small{color:var(--accent-ink);font-size:12px;font-weight:900;letter-spacing:.12em}.quarter-board>header h3{margin:3px 0}.quarter-board>header p{max-width:530px;margin:0;color:var(--muted);font-size:12px;text-align:right}.quarter-board>div{margin-top:15px;display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.quarter-board a{padding:13px;color:var(--text);background:color-mix(in srgb,var(--bg) 52%,var(--card));border:1px solid var(--line);border-radius:12px;transition:.18s ease}.quarter-board a:hover,.quarter-board a.active{border-color:color-mix(in srgb,var(--purple) 50%,var(--line));transform:translateY(-2px)}.quarter-board a small,.quarter-board a b,.quarter-board a em{display:block}.quarter-board a small{color:var(--muted);font-size:12px;font-weight:900}.quarter-board a b{margin:5px 0 2px;font-size:14px}.quarter-board a em{color:#c74a5b;font-size:12px;font-style:normal}.business-dialog{width:min(760px,calc(100% - 24px));max-height:calc(100vh - 30px);padding:0;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:21px;box-shadow:0 35px 110px rgba(3,43,54,.3)}.business-dialog::backdrop{background:rgba(2,24,32,.55);backdrop-filter:blur(6px)}.business-dialog>form{padding:23px}.dialog-close{position:absolute;top:14px;right:14px;width:32px;height:32px;color:var(--text);background:var(--accent-soft);border:0;border-radius:9px;cursor:pointer;font-size:18px}.business-dialog .btn{margin-top:14px}.business-filters{margin:14px 0;padding:13px!important;display:grid;grid-template-columns:140px 190px 190px auto;align-items:end;gap:9px}.ledger{padding:0!important;overflow:hidden}.ledger-row{min-height:65px;padding:11px 15px;border-top:1px solid var(--line);display:grid;grid-template-columns:105px minmax(220px,1.2fr) minmax(130px,.7fr) minmax(140px,.7fr) 120px 90px;align-items:center;gap:12px}.ledger-head{min-height:38px;color:var(--muted);background:color-mix(in srgb,var(--bg) 58%,var(--card));border:0;font-size:12px;font-weight:900;text-transform:uppercase}.ledger-row b,.ledger-row small{display:block}.ledger-row b{font-size:12px}.ledger-row small{margin-top:3px;color:var(--muted);font-size:12px}.ledger-row>span:nth-child(3){font-size:12px}.ledger-row>strong{text-align:right;font-size:12px}.ledger-row>strong.positive{color:#078265}.ledger-row>strong.negative{color:#c64b5d}.ledger-row details{position:relative}.ledger-row summary{color:var(--accent-ink);cursor:pointer;font-size:12px;font-weight:800}.ledger-row details form{position:absolute;z-index:5;right:0;width:240px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow)}.ledger-row details input{font-size:12px}.ledger-row details button{margin-top:6px;padding:7px;color:#fff;background:#cc5060;border:0;border-radius:7px}.ledger-lock{color:var(--muted);font-style:normal}.payroll-warning{color:#684d11;background:linear-gradient(135deg,#fff4d6,#f9ead0);border-color:#ead29b}.payroll-warning>i{background:linear-gradient(135deg,#d59822,#edb74e)}.payroll-warning>div{flex:1}.payroll-warning b,.payroll-warning p{display:block;margin:0}.payroll-warning p{margin-top:3px;color:#7b6940;font-size:12px}.payroll-warning>a{padding:9px 11px;background:rgba(255,255,255,.5);border-radius:9px;font-size:12px;font-weight:900}.payroll-form{padding:22px!important}.payroll-form>.btn{margin-top:16px}.payroll-form-footer{margin-top:15px;display:flex;align-items:center;justify-content:space-between;gap:15px}.payroll-form-footer small{color:var(--muted);font-size:12px}.payroll-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:16px}.payroll-run-list{padding:0!important;overflow:hidden}.payroll-run-list>a{min-height:66px;padding:12px 14px;border-top:1px solid var(--line);display:grid;grid-template-columns:37px minmax(0,1fr) 115px 80px;align-items:center;gap:11px;color:var(--text)}.payroll-run-list>a:first-child{border:0}.payroll-run-list>a>i,.payroll-employee-list article>i{width:37px;height:37px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:11px;font-style:normal;font-weight:900}.payroll-run-list small,.payroll-run-list b,.payroll-run-list strong{display:block}.payroll-run-list span small,.payroll-run-list strong small{color:var(--muted);font-size:12px}.payroll-run-list span b{margin-top:3px;font-size:12px}.payroll-run-list strong{text-align:right;font-size:12px}.payroll-employee-list{display:grid;gap:8px}.payroll-employee-list article{padding:12px!important;display:grid;grid-template-columns:37px minmax(0,1fr) auto;align-items:center;gap:10px}.payroll-employee-list b,.payroll-employee-list small{display:block}.payroll-employee-list b{font-size:12px}.payroll-employee-list small{margin-top:3px;color:var(--muted);font-size:12px}.payroll-employee-list a{color:var(--accent-ink);font-size:12px;font-weight:900}.payroll-run-detail{padding:23px!important}.payroll-run-detail>header{display:flex;align-items:center;justify-content:space-between;gap:15px}.payroll-run-detail>header small{color:var(--accent-ink);font-size:12px;font-weight:900;letter-spacing:.12em}.payroll-run-detail>header h2{margin:4px 0}.payroll-run-detail>header p{margin:0;color:var(--muted);font-size:12px}.payroll-values{margin:20px 0;display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.payroll-values span{padding:13px;background:color-mix(in srgb,var(--bg) 57%,var(--card));border-radius:12px}.payroll-values small,.payroll-values b{display:block}.payroll-values small{color:var(--muted);font-size:12px;font-weight:900}.payroll-values b{margin-top:5px;font-size:13px}.payroll-run-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.payroll-run-actions form{margin-left:auto}
@media(max-width:1050px){.ledger-row{grid-template-columns:95px minmax(180px,1fr) 130px 105px 70px}.ledger-row>span:nth-child(3){display:none}.payroll-layout{grid-template-columns:1fr}.payroll-values{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.business-page-title{align-items:flex-start;flex-direction:column}.business-legal-banner,.payroll-warning{align-items:flex-start;flex-wrap:wrap}.payroll-warning>a{margin-left:52px}.quarter-board>header{align-items:flex-start;flex-direction:column}.quarter-board>header p{text-align:left}.quarter-board>div{grid-template-columns:1fr 1fr}.business-filters{grid-template-columns:1fr 1fr}.ledger-head{display:none}.ledger-row{grid-template-columns:90px minmax(0,1fr) 95px}.ledger-row>span:nth-child(4){display:none}.ledger-row>span:last-child{grid-column:3}.payroll-run-list>a{grid-template-columns:37px minmax(0,1fr) auto}.payroll-run-list>a>mark{grid-column:2/-1}.payroll-values{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.quarter-board>div,.business-filters,.payroll-values{grid-template-columns:1fr}.ledger-row{grid-template-columns:1fr auto}.ledger-row>span:first-child{grid-column:1}.ledger-row>span:nth-child(2){grid-column:1}.ledger-row>strong{grid-column:2;grid-row:1}.ledger-row>span:last-child{grid-column:2;grid-row:2}.payroll-form-footer{align-items:stretch;flex-direction:column}.payroll-run-actions form{margin-left:0}.payroll-warning>a{margin-left:0}}
.finance-dashboard-title>span{display:flex;gap:13px}.finance-dashboard-title>span a{color:var(--accent-ink);font-size:12px;font-weight:800}
.sidebar nav{min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(117,220,205,.35) transparent}.sidebar .account{flex:0 0 auto}

/* Aperçu instantané et envoi des devis / factures */
.billing-editor-footer-actions{margin-top:13px;display:flex;align-items:center;justify-content:flex-end;gap:9px}.billing-preview-trigger{color:var(--accent-ink)!important;background:var(--accent-soft)!important;border:1px solid color-mix(in srgb,var(--purple) 22%,var(--line))!important}.billing-preview-modal[hidden]{display:none}.billing-preview-modal{position:fixed;inset:0;z-index:1000;padding:22px;display:grid;place-items:center}.billing-preview-backdrop{position:absolute;inset:0;background:rgba(3,20,28,.68);backdrop-filter:blur(9px)}.billing-preview-window{position:relative;width:min(1080px,100%);max-height:calc(100vh - 44px);overflow:auto;background:color-mix(in srgb,var(--bg) 68%,var(--card));border:1px solid color-mix(in srgb,var(--purple) 18%,var(--line));border-radius:26px;box-shadow:0 38px 120px rgba(2,28,37,.38)}.billing-preview-window>header{position:sticky;top:0;z-index:3;padding:16px 20px;background:color-mix(in srgb,var(--card) 91%,transparent);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;backdrop-filter:blur(18px)}.billing-preview-window>header small{color:var(--accent-ink);font-size:12px;font-weight:900;letter-spacing:.15em}.billing-preview-window>header h2{margin:4px 0 0;font-size:18px}.billing-preview-window>header>div:last-child{display:flex;align-items:center;gap:8px}.billing-preview-close{width:37px;height:37px;color:var(--text);background:var(--accent-soft);border:0;border-radius:12px;cursor:pointer;font-size:22px}.billing-live-sheet{width:min(850px,calc(100% - 40px));min-height:900px;margin:22px auto;padding:42px;color:#17303b;background:#fff;border-radius:4px;box-shadow:0 20px 65px rgba(6,44,56,.13)}.billing-live-top{padding-bottom:22px;border-bottom:2px solid #10978e;display:flex;align-items:center;justify-content:space-between;gap:20px}.billing-live-top>div{display:flex;align-items:center;gap:12px}.billing-live-top>div:last-child{display:block;text-align:right}.billing-live-top i{width:43px;height:43px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#0b978b,#2da5c4);border-radius:14px;font-style:normal}.billing-live-top b,.billing-live-top small{display:block}.billing-live-top small,.billing-live-meta small,.billing-live-parties small,.billing-live-summary small,.billing-live-notes small{color:#72858c;font-size:12px;font-weight:900;letter-spacing:.12em}.billing-live-top h3{margin:4px 0 0;font-size:23px}.billing-live-meta{margin:19px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.billing-live-meta span{padding:11px 12px;background:#edf8f6;border-radius:10px}.billing-live-meta b{display:block;margin-top:4px;font-size:12px}.billing-live-parties{margin:18px 0 24px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.billing-live-parties article{min-height:110px;padding:15px;border:1px solid #dbe9e7;border-radius:13px}.billing-live-parties b,.billing-live-parties p,.billing-live-parties em{display:block}.billing-live-parties b{margin:5px 0;font-size:12px}.billing-live-parties p,.billing-live-parties em{margin:3px 0;color:#60767d;font-size:12px;line-height:1.45}.billing-live-parties em{color:#087c74;font-style:normal}.billing-live-line-head,.billing-live-lines [data-preview-lines]>div{padding:10px 8px;border-bottom:1px solid #e1ebe9;display:grid;grid-template-columns:minmax(190px,1fr) 52px 85px 55px 90px;align-items:center;gap:8px}.billing-live-line-head{color:#718187;background:#f2f7f6;border:0;border-radius:9px;font-size:12px;font-weight:900;text-transform:uppercase}.billing-live-lines span:not(:first-child),.billing-live-lines strong{text-align:right;font-size:12px}.billing-live-lines [data-preview-lines]>div span:first-child{font-weight:700}.billing-live-summary{width:min(380px,100%);margin:20px 0 20px auto}.billing-live-summary span{padding:8px 3px;border-bottom:1px solid #e0e9e8;display:flex;align-items:center;justify-content:space-between}.billing-live-summary span:last-child{margin-top:5px;padding:12px;color:#fff;background:linear-gradient(135deg,#083c4b,#10998d);border:0;border-radius:11px}.billing-live-summary b{font-size:12px}.billing-live-summary span:last-child b{font-size:15px}.billing-live-notes{padding-top:18px;border-top:1px solid #e1e9e8;display:grid;grid-template-columns:1fr 1fr;gap:20px}.billing-live-notes p{margin:6px 0 0;color:#60747b;font-size:12px;white-space:pre-line}.billing-live-sheet.doc-elegant .billing-live-top{border-color:#a77c45}.billing-live-sheet.doc-elegant .billing-live-top i,.billing-live-sheet.doc-elegant .billing-live-summary span:last-child{background:linear-gradient(135deg,#7b5530,#d2ad73)}.billing-live-sheet.doc-elegant .billing-live-meta span{background:#fbf4e9}.billing-live-sheet.doc-minimal .billing-live-top{border-color:#17202b}.billing-live-sheet.doc-minimal .billing-live-top i,.billing-live-sheet.doc-minimal .billing-live-summary span:last-child{background:#17202b;border-radius:3px}.billing-live-sheet.doc-minimal .billing-live-meta span{background:#f1f2f4;border-radius:3px}.billing-live-sheet.doc-minimal .billing-live-parties article{border-radius:3px}.billing-email-settings{margin-top:14px}.billing-copy-setting{align-content:start}.billing-copy-setting>span:first-child{font-size:12px;font-weight:700}.billing-check,.billing-send-copy{min-height:43px;padding:10px 12px;color:var(--text);background:color-mix(in srgb,var(--bg) 58%,var(--card));border:1px solid var(--line);border-radius:11px;display:flex!important;align-items:center;gap:8px;font-size:12px!important}.billing-check input,.billing-send-copy input{width:16px!important;height:16px!important;min-height:0!important}.billing-mail-help,.billing-mail-disclaimer{display:block;color:var(--muted);font-size:12px;line-height:1.55}.billing-mail-help{margin:12px 0 15px;padding:12px;background:var(--accent-soft);border-radius:11px}.billing-email-card form{display:grid;gap:9px}.billing-email-card textarea{resize:vertical}.billing-email-card .btn{margin-top:2px!important}.billing-mail-disclaimer{margin-top:2px}.billing-email-history{margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}.billing-email-history>b{display:block;margin-bottom:6px;font-size:12px}.billing-email-history article{padding:8px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px}.billing-email-history article>i{flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:8px;font-size:12px;font-style:normal;font-weight:900}.billing-email-history article>i.sent{color:#087451;background:#e7f8f1}.billing-email-history article>i.failed{color:#b33149;background:#fff0f2}.billing-email-history article span{min-width:0}.billing-email-history article strong,.billing-email-history article small{display:block;overflow:hidden;text-overflow:ellipsis}.billing-email-history article strong{font-size:12px}.billing-email-history article small{margin-top:2px;color:var(--muted);font-size:12px;white-space:normal}.billing-preview-open{overflow:hidden}

/* Nouveaux univers premium */
.theme-preview{position:relative}.theme-choice[data-theme-choice="riviera"] .theme-preview::after,.theme-choice[data-theme-choice="sage"] .theme-preview::after,.theme-choice[data-theme-choice="midnight"] .theme-preview::after,.theme-choice[data-theme-choice="pearl"] .theme-preview::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 82% 15%,color-mix(in srgb,var(--preview-accent) 42%,transparent),transparent 28%),linear-gradient(145deg,transparent 53%,color-mix(in srgb,var(--preview-accent) 18%,transparent) 54%,transparent 55%)}
body[data-theme="riviera"]{--navy:#082f40;--navy-2:#0b4658;--bg:#e9f5f4;--card:rgba(248,254,253,.78);--text:#11323d;--muted:#648087;--line:rgba(21,106,116,.15);--sidebar-from:#052a39;--sidebar-via:#08495a;--sidebar-to:#0d827b;--hero-from:#073647;--hero-to:#0fa094;--accent-soft:rgba(18,169,160,.12);--accent-ink:#087b76;--page-glow:rgba(18,169,160,.17)}
body[data-theme="sage"]{--navy:#20372f;--navy-2:#315145;--bg:#eef3ef;--card:rgba(251,253,250,.86);--text:#25372f;--muted:#748279;--line:rgba(73,102,84,.15);--sidebar-from:#182a24;--sidebar-via:#2d4b40;--sidebar-to:#668a72;--hero-from:#263e35;--hero-to:#71947e;--accent-soft:rgba(113,155,130,.14);--accent-ink:#4f795f;--page-glow:rgba(113,155,130,.14)}
body[data-theme="midnight"]{--navy:#071b31;--navy-2:#0d2f51;--bg:#eaf2f9;--card:rgba(247,251,255,.84);--text:#122d45;--muted:#6b8194;--line:rgba(36,95,139,.15);--sidebar-from:#041526;--sidebar-via:#092d50;--sidebar-to:#164f78;--hero-from:#071e36;--hero-to:#1f6da8;--accent-soft:rgba(47,132,216,.12);--accent-ink:#236fae;--page-glow:rgba(47,132,216,.16)}
body[data-theme="pearl"]{--navy:#263049;--navy-2:#3a4563;--bg:#f1f1f7;--card:rgba(253,252,255,.86);--text:#282d43;--muted:#797b91;--line:rgba(83,83,119,.13);--sidebar-from:#20283d;--sidebar-via:#343c5c;--sidebar-to:#6863a7;--hero-from:#29334c;--hero-to:#7770c7;--accent-soft:rgba(127,117,223,.11);--accent-ink:#655bc1;--page-glow:rgba(127,117,223,.13)}
body[data-theme="riviera"],body[data-theme="sage"],body[data-theme="midnight"],body[data-theme="pearl"]{background:radial-gradient(ellipse at 92% -5%,var(--page-glow),transparent 31rem),radial-gradient(ellipse at 4% 102%,color-mix(in srgb,var(--purple) 7%,transparent),transparent 36rem),linear-gradient(145deg,var(--bg),color-mix(in srgb,var(--bg) 88%,white));background-attachment:fixed}
body[data-theme="riviera"] .sidebar,body[data-theme="sage"] .sidebar,body[data-theme="midnight"] .sidebar,body[data-theme="pearl"] .sidebar{background:radial-gradient(ellipse at 80% 3%,rgba(255,255,255,.12),transparent 28%),linear-gradient(165deg,var(--sidebar-from),var(--sidebar-via) 58%,var(--sidebar-to));box-shadow:18px 0 55px color-mix(in srgb,var(--navy) 18%,transparent)}
body[data-theme="riviera"] .panel,body[data-theme="riviera"] .event-card,body[data-theme="riviera"] .client-actions>a,body[data-theme="sage"] .panel,body[data-theme="sage"] .event-card,body[data-theme="sage"] .client-actions>a,body[data-theme="midnight"] .panel,body[data-theme="midnight"] .event-card,body[data-theme="midnight"] .client-actions>a,body[data-theme="pearl"] .panel,body[data-theme="pearl"] .event-card,body[data-theme="pearl"] .client-actions>a{border-radius:22px;background:linear-gradient(145deg,color-mix(in srgb,var(--card) 94%,white),color-mix(in srgb,var(--card) 88%,var(--accent-soft)));border-color:var(--line);box-shadow:0 19px 48px color-mix(in srgb,var(--navy) 7%,transparent),inset 0 1px rgba(255,255,255,.65);backdrop-filter:blur(17px) saturate(118%)}
body[data-theme="riviera"] .welcome,body[data-theme="riviera"] .client-hero,body[data-theme="sage"] .welcome,body[data-theme="sage"] .client-hero,body[data-theme="midnight"] .welcome,body[data-theme="midnight"] .client-hero,body[data-theme="pearl"] .welcome,body[data-theme="pearl"] .client-hero{border-radius:27px;background:radial-gradient(ellipse at 88% 0,rgba(255,255,255,.15),transparent 35%),linear-gradient(125deg,var(--hero-from),var(--hero-to));box-shadow:0 28px 64px color-mix(in srgb,var(--navy) 20%,transparent)}
body[data-theme="riviera"] .btn,body[data-theme="sage"] .btn,body[data-theme="midnight"] .btn,body[data-theme="pearl"] .btn{border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--purple) 78%,var(--hero-from)),color-mix(in srgb,var(--purple) 60%,var(--hero-to)));box-shadow:0 12px 28px color-mix(in srgb,var(--purple) 20%,transparent)}
html[data-color-mode="dark"] body[data-theme="riviera"],html[data-color-mode="dark"] body[data-theme="sage"],html[data-color-mode="dark"] body[data-theme="midnight"],html[data-color-mode="dark"] body[data-theme="pearl"]{--bg:#08151b;--card:rgba(13,31,39,.90);--text:#edf7f6;--muted:#9aafb2;--line:rgba(132,183,183,.17);--surface-glass:rgba(8,24,31,.88);background:radial-gradient(ellipse at 92% -4%,color-mix(in srgb,var(--purple) 12%,transparent),transparent 30rem),#07151c}
html[data-color-mode="dark"] body[data-theme="riviera"] .panel,html[data-color-mode="dark"] body[data-theme="riviera"] .event-card,html[data-color-mode="dark"] body[data-theme="sage"] .panel,html[data-color-mode="dark"] body[data-theme="sage"] .event-card,html[data-color-mode="dark"] body[data-theme="midnight"] .panel,html[data-color-mode="dark"] body[data-theme="midnight"] .event-card,html[data-color-mode="dark"] body[data-theme="pearl"] .panel,html[data-color-mode="dark"] body[data-theme="pearl"] .event-card{background:linear-gradient(145deg,rgba(15,38,47,.94),rgba(9,28,36,.86));border-color:rgba(128,187,186,.18);box-shadow:0 22px 58px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.035)}
html[data-color-mode="dark"] body[data-theme="riviera"] input,html[data-color-mode="dark"] body[data-theme="riviera"] select,html[data-color-mode="dark"] body[data-theme="riviera"] textarea,html[data-color-mode="dark"] body[data-theme="sage"] input,html[data-color-mode="dark"] body[data-theme="sage"] select,html[data-color-mode="dark"] body[data-theme="sage"] textarea,html[data-color-mode="dark"] body[data-theme="midnight"] input,html[data-color-mode="dark"] body[data-theme="midnight"] select,html[data-color-mode="dark"] body[data-theme="midnight"] textarea,html[data-color-mode="dark"] body[data-theme="pearl"] input,html[data-color-mode="dark"] body[data-theme="pearl"] select,html[data-color-mode="dark"] body[data-theme="pearl"] textarea{color:#edf7f6;background:rgba(6,24,31,.78);border-color:rgba(126,183,184,.22)}

@media(max-width:760px){.billing-preview-modal{padding:0}.billing-preview-window{width:100%;height:100%;max-height:none;border-radius:0}.billing-preview-window>header{padding:13px 14px}.billing-preview-window>header .mini-btn{display:none}.billing-live-sheet{width:calc(100% - 20px);min-height:0;margin:10px;padding:22px 16px}.billing-live-meta{grid-template-columns:1fr}.billing-live-parties{grid-template-columns:1fr}.billing-live-line-head,.billing-live-lines [data-preview-lines]>div{grid-template-columns:minmax(120px,1fr) 42px 72px}.billing-live-line-head span:nth-child(3),.billing-live-line-head span:nth-child(4),.billing-live-lines [data-preview-lines]>div span:nth-child(3),.billing-live-lines [data-preview-lines]>div span:nth-child(4){display:none}.billing-live-notes{grid-template-columns:1fr}.billing-editor-footer-actions{align-items:stretch;flex-direction:column}.billing-editor-footer-actions>*{width:100%;justify-content:center}}
@media print{body.billing-preview-print *{visibility:hidden!important}body.billing-preview-print [data-billing-preview-modal],body.billing-preview-print [data-billing-preview-modal] *{visibility:visible!important}body.billing-preview-print [data-billing-preview-modal]{position:absolute;inset:0;display:block;padding:0;background:#fff}body.billing-preview-print .billing-preview-backdrop,body.billing-preview-print .billing-preview-window>header{display:none!important}body.billing-preview-print .billing-preview-window{width:100%;height:auto;max-height:none;overflow:visible;border:0;border-radius:0;box-shadow:none}body.billing-preview-print .billing-live-sheet{width:210mm;min-height:297mm;margin:0;padding:17mm;box-shadow:none}}

/* Centre juridique, confidentialité et consentement */
.legal-admin-title{align-items:center}.legal-admin-title>div:first-child>small{color:var(--accent-ink);font-size:12px;font-weight:850;letter-spacing:.14em}.legal-title-actions{display:flex;gap:9px}.legal-readiness{margin-bottom:18px;padding:22px!important;display:flex;align-items:center;gap:22px;overflow:hidden;position:relative}.legal-readiness:after{content:"";position:absolute;right:-45px;top:-70px;width:230px;height:230px;background:radial-gradient(circle,color-mix(in srgb,var(--purple) 14%,transparent),transparent 68%);pointer-events:none}.legal-readiness-score{flex:0 0 94px}.legal-readiness-score>span{width:92px;height:92px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--purple) var(--legal-progress),color-mix(in srgb,var(--line) 70%,transparent) 0);position:relative}.legal-readiness-score>span:before{content:"";position:absolute;inset:8px;background:var(--card);border-radius:50%}.legal-readiness-score b{position:relative;font-size:17px}.legal-readiness.ready .legal-readiness-score>span{background:conic-gradient(#19a777 var(--legal-progress),color-mix(in srgb,var(--line) 70%,transparent) 0)}.legal-readiness-copy{min-width:0;flex:1}.legal-readiness-copy>small,.legal-publish-bar>div>small{color:var(--accent-ink);font-size:12px;font-weight:850;letter-spacing:.15em}.legal-readiness-copy h3,.legal-publish-bar h3{margin:5px 0 4px;font-size:16px}.legal-readiness-copy>p,.legal-publish-bar p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.legal-publication-meta{margin-top:13px;display:flex;flex-wrap:wrap;gap:8px}.legal-publication-meta span{min-width:130px;padding:9px 11px;background:color-mix(in srgb,var(--accent-soft) 54%,var(--card));border:1px solid var(--line);border-radius:11px;font-size:12px}.legal-publication-meta b{display:block;margin-bottom:3px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.legal-document-links{margin-bottom:18px;padding:8px!important;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.legal-document-links>a{min-width:0;padding:12px;color:var(--text);border:1px solid transparent;border-radius:14px;display:flex;align-items:center;gap:9px;text-decoration:none;transition:.2s}.legal-document-links>a:hover{background:var(--accent-soft);border-color:color-mix(in srgb,var(--purple) 22%,var(--line));transform:translateY(-1px)}.legal-document-links>a>i{flex:0 0 33px;height:33px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:10px;font-style:normal;font-weight:850}.legal-document-links b,.legal-document-links small{display:block}.legal-document-links b{font-size:12px}.legal-document-links small{margin-top:3px;color:var(--muted);font-size:12px}.legal-editor{display:grid;gap:14px}.legal-editor-section{padding:0!important;overflow:hidden}.legal-editor-section>summary{min-height:78px;padding:15px 19px;list-style:none;display:flex;align-items:center;gap:13px;cursor:pointer}.legal-editor-section>summary::-webkit-details-marker{display:none}.legal-editor-section>summary>i{flex:0 0 39px;height:39px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--purple),color-mix(in srgb,var(--purple) 60%,#21b7ad));border-radius:12px;font-size:12px;font-style:normal;font-weight:900}.legal-editor-section>summary>span{min-width:0;flex:1}.legal-editor-section>summary small,.legal-editor-section>summary b,.legal-editor-section>summary em{display:block}.legal-editor-section>summary small{color:var(--accent-ink);font-size:12px;font-weight:850;letter-spacing:.15em}.legal-editor-section>summary b{margin-top:4px;font-size:12px}.legal-editor-section>summary em{margin-top:3px;color:var(--muted);font-size:12px;font-style:normal}.legal-editor-section>summary>strong{color:var(--muted);transition:transform .2s}.legal-editor-section[open]>summary>strong{transform:rotate(180deg)}.legal-editor-body{padding:20px;border-top:1px solid var(--line)}.legal-editor-body label,.legal-publish-bar>label,.legal-request-card label{display:grid;gap:6px;color:var(--text);font-size:12px;font-weight:750}.legal-editor-body input,.legal-editor-body select,.legal-editor-body textarea,.legal-publish-bar input,.legal-request-card input,.legal-request-card select,.legal-request-card textarea,.legal-request-list select{width:100%;min-height:43px;padding:10px 12px;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:11px;outline:0;font:inherit}.legal-editor-body textarea,.legal-request-card textarea{resize:vertical;line-height:1.55}.legal-editor-body input:focus,.legal-editor-body select:focus,.legal-editor-body textarea:focus,.legal-publish-bar input:focus,.legal-request-card input:focus,.legal-request-card textarea:focus{border-color:var(--purple);box-shadow:0 0 0 3px var(--accent-soft)}.legal-three-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.legal-three-columns section{min-width:0}.legal-three-columns h3{margin:0 0 12px;font-size:12px}.legal-three-columns label+label{margin-top:10px}.legal-field-help{margin:10px 0 0;padding:10px;color:#8c6506;background:#fff8df;border:1px solid #eedda7;border-radius:10px;font-size:12px;line-height:1.5}.legal-text-grid{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:15px}.legal-short-field{grid-column:span 1}.cookie-admin-grid{display:grid;grid-template-columns:minmax(220px,.7fr) 1.3fr;gap:18px}.cookie-admin-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.cookie-admin-stats article{padding:13px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--purple) 12%,var(--line));border-radius:12px}.cookie-admin-stats small,.cookie-admin-stats b{display:block}.cookie-admin-stats small{color:var(--muted);font-size:12px}.cookie-admin-stats b{margin-top:5px;font-size:17px}.legal-publish-bar{margin-bottom:18px;padding:18px!important;display:grid;grid-template-columns:minmax(250px,1fr) 140px 150px auto auto;align-items:end;gap:11px}.legal-publish-bar .btn,.legal-publish-bar .mini-btn{min-height:43px;justify-content:center}.legal-requests-panel,.legal-history-panel{margin-bottom:18px}.legal-request-list,.legal-history-list{border-top:1px solid var(--line)}.legal-request-list article{padding:13px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:38px minmax(0,1fr) 130px;align-items:start;gap:11px}.legal-request-list article>i{width:36px;height:36px;display:grid;place-items:center;color:#fff;background:#ef9f27;border-radius:11px;font-style:normal;font-weight:900}.legal-request-list article>i.processing{background:#3b82f6}.legal-request-list article>i.completed{background:#19a777}.legal-request-list article>i.rejected{background:#dc4c62}.legal-request-list b,.legal-request-list small{display:block}.legal-request-list b{font-size:12px}.legal-request-list small{margin-top:3px;color:var(--muted);font-size:12px}.legal-request-list p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.legal-request-list form{margin:0}.legal-history-list article{padding:11px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.legal-history-list article>i{width:30px;height:30px;display:grid;place-items:center;color:#087451;background:#e6f8f1;border-radius:9px;font-style:normal}.legal-history-list article>span{min-width:0;flex:1}.legal-history-list b,.legal-history-list small{display:block}.legal-history-list b{font-size:12px}.legal-history-list small{margin-top:3px;color:var(--muted);font-size:12px}.legal-history-list code{color:var(--muted);font-size:12px}.legal-admin-disclaimer{margin:0 0 25px;padding:13px 15px;color:var(--muted);background:color-mix(in srgb,var(--accent-soft) 45%,transparent);border:1px dashed color-mix(in srgb,var(--purple) 25%,var(--line));border-radius:13px;font-size:12px;line-height:1.55}

.legal-public{min-height:100vh;color:var(--text);background:radial-gradient(ellipse at 93% -8%,color-mix(in srgb,var(--purple) 14%,transparent),transparent 34rem),linear-gradient(145deg,var(--bg),color-mix(in srgb,var(--bg) 88%,white));font-size:15px}.legal-public a{color:var(--accent-ink)}.legal-public-header{min-height:80px;padding:13px clamp(20px,5vw,76px);background:color-mix(in srgb,var(--card) 90%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(18px);display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:30}.legal-public-brand{color:var(--text)!important;display:flex;align-items:center;gap:11px;text-decoration:none}.legal-public-brand>i{width:42px;height:42px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--purple),#1ba99e);border-radius:13px;font-size:12px;font-style:normal;font-weight:900;box-shadow:0 9px 25px color-mix(in srgb,var(--purple) 23%,transparent)}.legal-public-brand b,.legal-public-brand small{display:block}.legal-public-brand b{font-size:14px}.legal-public-brand small{margin-top:3px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.13em}.legal-public-header nav{display:flex;align-items:center;gap:9px}.legal-public-header nav a,.legal-public-header nav button{min-height:39px;padding:0 13px;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:11px;display:inline-flex;align-items:center;text-decoration:none;cursor:pointer;font-size:12px;font-weight:800}.legal-public-shell{width:min(1240px,calc(100% - 36px));margin:0 auto;padding:44px 0 58px}.legal-public-hero{padding:32px 36px;color:#fff;background:radial-gradient(circle at 88% 12%,rgba(255,255,255,.17),transparent 30%),linear-gradient(125deg,#07394b,#139d91);border-radius:26px;box-shadow:0 28px 65px rgba(7,50,62,.19)}.legal-public-hero small{font-size:12px;font-weight:850;letter-spacing:.17em}.legal-public-hero h1{max-width:850px;margin:8px 0 5px;font-size:clamp(27px,4vw,44px);line-height:1.08}.legal-public-hero p{margin:0;color:#d7f4f0;font-size:12px}.legal-public-layout{margin-top:22px;display:grid;grid-template-columns:245px minmax(0,1fr);align-items:start;gap:20px}.legal-public-nav{padding:14px;background:color-mix(in srgb,var(--card) 94%,transparent);border:1px solid var(--line);border-radius:20px;box-shadow:0 17px 45px color-mix(in srgb,var(--navy) 7%,transparent);position:sticky;top:102px}.legal-public-nav>b{padding:7px 9px 12px;display:block;font-size:12px}.legal-public-nav>a{padding:10px 9px;color:var(--muted);border-radius:11px;display:flex;align-items:center;gap:9px;text-decoration:none;font-size:12px;font-weight:750}.legal-public-nav>a i{width:25px;height:25px;display:grid;place-items:center;background:var(--accent-soft);border-radius:8px;font-style:normal}.legal-public-nav>a:hover,.legal-public-nav>a.active{color:var(--accent-ink);background:var(--accent-soft)}.legal-public-nav>small{margin:12px 9px 4px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);display:block;font-size:12px;line-height:1.5}.legal-public-nav>small a{display:block;margin-top:4px;overflow-wrap:anywhere}.legal-public-document{min-width:0;padding:clamp(24px,4vw,48px);background:color-mix(in srgb,var(--card) 95%,transparent);border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 55px color-mix(in srgb,var(--navy) 7%,transparent);backdrop-filter:blur(16px)}.legal-public-document .legal-lead{margin:0 0 28px;padding:17px 19px;color:var(--accent-ink);background:var(--accent-soft);border-left:4px solid var(--purple);border-radius:0 14px 14px 0;font-size:12px;line-height:1.7}.legal-public-document section+section{margin-top:28px;padding-top:25px;border-top:1px solid var(--line)}.legal-public-document h2{margin:0 0 12px;font-size:18px}.legal-public-document h3{margin:18px 0 7px;font-size:13px}.legal-public-document p,.legal-public-document li{color:var(--muted);font-size:12px;line-height:1.8}.legal-public-document strong,.legal-public-document b{color:var(--text)}.legal-public-document ul{padding-left:20px}.legal-definition-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.legal-definition-grid>div{padding:12px 13px;background:color-mix(in srgb,var(--accent-soft) 38%,var(--card));border:1px solid var(--line);border-radius:12px}.legal-definition-grid dt{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.legal-definition-grid dd{margin:5px 0 0;font-size:12px;font-weight:700;overflow-wrap:anywhere}.legal-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.legal-public-document table{min-width:690px;width:100%;border-collapse:collapse}.legal-public-document th,.legal-public-document td{padding:11px 13px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.55;text-align:left;vertical-align:top}.legal-public-document th{color:var(--muted);background:var(--accent-soft);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.legal-cookie-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.legal-cookie-cards article{padding:14px;background:color-mix(in srgb,var(--accent-soft) 35%,var(--card));border:1px solid var(--line);border-radius:14px;display:flex;gap:11px}.legal-cookie-cards article>i{flex:0 0 31px;height:31px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:9px;font-style:normal}.legal-cookie-cards b{font-size:12px}.legal-cookie-cards p{margin:4px 0 0;font-size:12px;line-height:1.55}.legal-inline-action{padding:10px 13px;color:var(--accent-ink)!important;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--purple) 25%,var(--line));border-radius:10px;text-decoration:none;cursor:pointer;font-size:12px;font-weight:800}.legal-document-footer{margin-top:35px;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.legal-document-footer button{padding:9px 12px;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:12px;font-weight:800}.legal-public-footer{padding:22px clamp(20px,5vw,76px);color:var(--muted);background:color-mix(in srgb,var(--navy) 96%,#000);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px}.legal-public-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px 14px}.legal-public-footer a,.legal-public-footer button{padding:0;color:#d5e5e8;background:none;border:0;text-decoration:none;cursor:pointer;font:inherit}.legal-preview-banner,.legal-unpublished-banner{margin-bottom:14px;padding:12px 15px;color:#815a05;background:#fff7dc;border:1px solid #ecd691;border-radius:13px;display:flex;align-items:center;gap:10px;font-size:12px}.legal-preview-banner span,.legal-unpublished-banner span{flex:1}.legal-preview-banner a{font-weight:800}.legal-request-shell{width:min(1060px,calc(100% - 36px));margin:0 auto;padding:55px 0;display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:35px}.legal-request-intro>small{color:var(--accent-ink);font-size:12px;font-weight:850;letter-spacing:.16em}.legal-request-intro h1{margin:10px 0;font-size:clamp(31px,5vw,53px);line-height:1.03}.legal-request-intro>p{max-width:520px;color:var(--muted);font-size:12px;line-height:1.65}.legal-request-intro>div{margin-top:23px;display:flex;flex-wrap:wrap;gap:8px}.legal-request-intro>div span{padding:8px 10px;background:var(--card);border:1px solid var(--line);border-radius:30px;font-size:12px;font-weight:700}.legal-request-intro>div i{color:#15956b;font-style:normal}.legal-request-card{padding:28px;background:color-mix(in srgb,var(--card) 96%,transparent);border:1px solid var(--line);border-radius:24px;box-shadow:0 25px 70px color-mix(in srgb,var(--navy) 12%,transparent)}.legal-request-card form{display:grid;gap:13px}.legal-request-card form>div:first-of-type>small{color:var(--accent-ink);font-size:12px;font-weight:850;letter-spacing:.15em}.legal-request-card h2{margin:5px 0 3px;font-size:20px}.legal-request-card form>div:first-of-type p{margin:0;color:var(--muted);font-size:12px}.legal-request-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.legal-request-card .security-check{display:flex}.legal-request-card .btn{min-height:47px;justify-content:center}.legal-request-note{color:var(--muted);font-size:12px;line-height:1.5}.legal-request-honeypot{position:absolute!important;left:-9999px!important}.legal-request-success{text-align:center}.legal-request-success>i{width:58px;height:58px;margin:0 auto 13px;display:grid;place-items:center;color:#fff;background:#19a777;border-radius:18px;font-size:24px;font-style:normal}.legal-request-success h2{font-size:24px}.legal-request-success p{color:var(--muted);font-size:12px;line-height:1.6}.legal-request-success .btn{margin-top:14px;display:inline-flex}

.app-legal-footer{margin-top:26px;padding:18px 0 90px;color:var(--muted);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px}.app-legal-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 14px}.app-legal-footer a,.app-legal-footer button{padding:0;color:var(--muted);background:none;border:0;text-decoration:none;cursor:pointer;font:inherit}.app-legal-footer a:hover,.app-legal-footer button:hover{color:var(--accent-ink)}.login-legal-footer{max-width:520px;margin:12px auto 0;display:flex;flex-wrap:wrap;justify-content:center;gap:7px 12px}.login-legal-footer a,.login-legal-footer button{padding:0;color:var(--muted);background:none;border:0;text-decoration:none;cursor:pointer;font-size:12px}.legal-acceptance-banner{margin-bottom:17px;padding:14px 16px!important;display:flex;align-items:center;gap:13px}.legal-acceptance-banner>i{flex:0 0 38px;height:38px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--purple),#19a99c);border-radius:12px;font-style:normal}.legal-acceptance-banner>span{min-width:0;flex:1}.legal-acceptance-banner b,.legal-acceptance-banner small{display:block}.legal-acceptance-banner b{font-size:12px}.legal-acceptance-banner small{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.5}.legal-acceptance-banner form{display:flex;align-items:center;gap:8px}.legal-acceptance-banner label{color:var(--muted);font-size:12px;white-space:nowrap}.legal-acceptance-banner a{color:var(--accent-ink)}

.cookie-dialog-open{overflow:hidden}.cookie-consent-banner{position:fixed;z-index:10020;left:18px;right:18px;bottom:18px;max-width:1180px;margin:auto;padding:16px 17px;color:var(--text);background:color-mix(in srgb,var(--card) 96%,transparent);border:1px solid color-mix(in srgb,var(--purple) 22%,var(--line));border-radius:19px;box-shadow:0 25px 80px rgba(5,24,43,.24);backdrop-filter:blur(24px) saturate(130%);display:grid;grid-template-columns:47px minmax(0,1fr) auto;align-items:center;gap:14px}.cookie-consent-icon{width:46px;height:46px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--purple),#16a99b);border-radius:14px;font-size:20px}.cookie-consent-copy small{color:var(--accent-ink);font-size:12px;font-weight:850;letter-spacing:.15em}.cookie-consent-copy h2{margin:4px 0 3px;font-size:14px}.cookie-consent-copy p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.cookie-consent-copy a{color:var(--accent-ink)}.cookie-consent-actions{display:grid;grid-template-columns:repeat(3,auto);gap:7px}.cookie-consent-actions button,.cookie-consent-window footer button{min-height:40px;padding:0 13px;color:var(--text);background:var(--card);border:1px solid color-mix(in srgb,var(--purple) 28%,var(--line));border-radius:11px;cursor:pointer;font-size:12px;font-weight:850}.cookie-consent-actions button:hover,.cookie-consent-window footer button:hover{background:var(--accent-soft);transform:translateY(-1px)}.cookie-consent-modal{position:fixed;z-index:10030;inset:0;padding:20px;display:grid;place-items:center}.cookie-consent-backdrop{position:absolute;inset:0;background:rgba(3,17,31,.66);border:0;backdrop-filter:blur(7px)}.cookie-consent-window{position:relative;width:min(670px,100%);max-height:min(760px,calc(100vh - 40px));overflow:hidden;color:var(--text);background:var(--card);border:1px solid color-mix(in srgb,var(--purple) 25%,var(--line));border-radius:23px;box-shadow:0 35px 110px rgba(3,15,29,.35);display:grid;grid-template-rows:auto minmax(0,1fr) auto}.cookie-consent-window>header{padding:17px 19px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.cookie-consent-window>header small{color:var(--accent-ink);font-size:12px;font-weight:850;letter-spacing:.16em}.cookie-consent-window>header h2{margin:4px 0 0;font-size:17px}.cookie-consent-close{width:36px;height:36px;color:var(--text);background:var(--accent-soft);border:0;border-radius:11px;cursor:pointer;font-size:20px}.cookie-consent-scroll{padding:18px 20px;overflow:auto}.cookie-consent-scroll>p{margin:0 0 14px;color:var(--muted);font-size:12px;line-height:1.55}.cookie-category-row{min-height:72px;padding:12px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.cookie-category-row>span{min-width:0;display:flex;align-items:center;gap:11px}.cookie-category-row>span>i{flex:0 0 34px;height:34px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent-soft);border-radius:10px;font-style:normal}.cookie-category-row b,.cookie-category-row small{display:block}.cookie-category-row b{font-size:12px}.cookie-category-row small{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45;font-weight:500}.cookie-category-row label{flex:0 0 auto;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.cookie-category-row input{width:18px;height:18px;accent-color:var(--purple)}.cookie-category-row em{font-style:normal}.cookie-category-row.always em{color:#13815f}.cookie-consent-detail{margin:13px 0 0!important;padding:11px;background:var(--accent-soft);border-radius:10px}.cookie-consent-window>footer{padding:13px 18px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cookie-consent-window>footer button{width:100%}

html[data-color-mode="dark"] .legal-field-help{color:#f0cf7b;background:#2d2717;border-color:#594b23}html[data-color-mode="dark"] .legal-preview-banner,html[data-color-mode="dark"] .legal-unpublished-banner{color:#f0cf7b;background:#2d2717;border-color:#594b23}html[data-color-mode="dark"] .legal-public{background:radial-gradient(ellipse at 93% -8%,color-mix(in srgb,var(--purple) 13%,transparent),transparent 34rem),#07151c}html[data-color-mode="dark"] .legal-history-list article>i{color:#89e5c4;background:#102c25}html[data-color-mode="dark"] .cookie-consent-banner,html[data-color-mode="dark"] .cookie-consent-window{background:rgba(9,25,33,.97);border-color:rgba(117,181,181,.25)}
.maintenance-public-shell>footer a,.maintenance-public-shell>footer button,.error-public-shell>footer a,.error-public-shell>footer button{padding:0;color:inherit;background:none;border:0;text-decoration:underline;cursor:pointer;font:inherit}

@media(max-width:1050px){.legal-three-columns{grid-template-columns:1fr 1fr}.legal-publish-bar{grid-template-columns:1fr 1fr}.legal-publish-bar>div{grid-column:1/-1}.legal-document-links{grid-template-columns:repeat(3,1fr)}.cookie-consent-banner{grid-template-columns:44px 1fr}.cookie-consent-actions{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.cookie-consent-actions button{width:100%}}
@media(max-width:790px){.legal-title-actions{width:100%;flex-wrap:wrap}.legal-readiness{align-items:flex-start}.legal-document-links{grid-template-columns:1fr 1fr}.legal-three-columns,.legal-text-grid,.cookie-admin-grid{grid-template-columns:1fr}.cookie-admin-stats{grid-template-columns:1fr 1fr}.legal-publish-bar{grid-template-columns:1fr}.legal-publish-bar>div{grid-column:auto}.legal-public-header{position:relative;padding:13px 17px}.legal-public-header nav a{display:none}.legal-public-shell{width:min(100% - 22px,1240px);padding:20px 0 35px}.legal-public-hero{padding:24px 20px;border-radius:20px}.legal-public-layout{grid-template-columns:1fr}.legal-public-nav{position:static;display:flex;overflow-x:auto}.legal-public-nav>b,.legal-public-nav>small{display:none}.legal-public-nav>a{flex:0 0 auto}.legal-public-document{padding:24px 18px;border-radius:19px}.legal-cookie-cards,.legal-definition-grid{grid-template-columns:1fr}.legal-public-footer{align-items:flex-start;flex-direction:column}.legal-public-footer nav{justify-content:flex-start}.legal-request-shell{grid-template-columns:1fr;padding:30px 0}.legal-request-intro{text-align:center}.legal-request-intro>div{justify-content:center}.app-legal-footer{align-items:flex-start;flex-direction:column}.app-legal-footer nav{justify-content:flex-start}.legal-acceptance-banner{align-items:flex-start;flex-wrap:wrap}.legal-acceptance-banner form{width:100%;justify-content:flex-end}.legal-request-list article{grid-template-columns:38px 1fr}.legal-request-list article form{grid-column:2}.cookie-consent-banner{left:9px;right:9px;bottom:9px;padding:13px}.cookie-consent-window>footer{grid-template-columns:1fr}.cookie-consent-modal{padding:8px}.cookie-consent-window{max-height:calc(100vh - 16px);border-radius:18px}}
@media(max-width:520px){.legal-readiness-score{display:none}.legal-document-links{grid-template-columns:1fr}.cookie-admin-stats{grid-template-columns:1fr 1fr}.legal-editor-section>summary{padding:13px}.legal-editor-section>summary>i{display:none}.legal-editor-body{padding:15px}.legal-request-grid{grid-template-columns:1fr}.legal-request-card{padding:20px 15px}.legal-public-header nav button{padding-inline:9px}.cookie-consent-banner{grid-template-columns:1fr}.cookie-consent-icon{display:none}.cookie-consent-actions{grid-template-columns:1fr}.cookie-category-row{align-items:flex-start;flex-direction:column}.cookie-category-row label{align-self:flex-end}}
@media print{.legal-public-header,.legal-public-nav,.legal-public-footer,.cookie-consent-banner,.cookie-consent-modal,.legal-preview-banner,.legal-unpublished-banner,.legal-document-footer button{display:none!important}.legal-public{background:#fff;color:#111}.legal-public-shell{width:100%;padding:0}.legal-public-hero{padding:20px;color:#111;background:#fff;border-bottom:2px solid #111;border-radius:0;box-shadow:none}.legal-public-hero p{color:#333}.legal-public-layout{display:block}.legal-public-document{padding:20px 0;border:0;box-shadow:none}.legal-public-document section{break-inside:avoid}}
