/* « Mon agence » — LilBooking agency management */
.gx { --nv:#0a2d63; --lm:#8cbf1f; --ink:#16213b; --mut:#5d6b82; --line:#e3e8f0; --soft:#f4f7fb; --red:#d93f3f; --amb:#c98a00;
      font-family:'Poppins','Cairo',sans-serif; color:var(--ink); max-width:none; width:100%; margin:0; padding:24px clamp(14px,1.6vw,32px) 60px;
      display:grid; grid-template-columns:230px minmax(0,1fr); gap:28px; align-items:start; }
.gx a { text-decoration:none; }
.gx-side { position:sticky; top:16px; background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px; }
.gx-org { display:flex; gap:10px; align-items:center; padding:4px 6px 14px; border-bottom:1px solid var(--line); margin-bottom:10px; }
.gx-org img { width:38px; height:38px; object-fit:contain; border-radius:8px; background:var(--soft); }
.gx-org .ini { width:38px; height:38px; border-radius:8px; background:var(--nv); color:#fff; display:grid; place-items:center; font-weight:700; }
.gx-org b { display:block; font-size:14px; line-height:1.2; color:var(--nv); }
.gx-org small { color:var(--mut); font-size:12px; }
.gx-nav a { display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:9px; color:var(--ink); font-size:14.5px; font-weight:500; }
.gx-nav a i { width:18px; text-align:center; color:var(--mut); }
.gx-nav a:hover { background:var(--soft); }
.gx-nav a.on { background:var(--nv); color:#fff; }
.gx-nav a.on i { color:var(--lm); }
.gx-nav .sep { height:1px; background:var(--line); margin:8px 4px; }
.gx-main { min-width:0; }
.gx-head { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
.gx-head h2 { font-size:1.45rem; font-weight:700; color:var(--nv); margin:0; }
.gx-head .sub { color:var(--mut); font-size:14px; margin-top:2px; }
.gx-btn { display:inline-flex; align-items:center; gap:8px; border-radius:10px; padding:9px 16px; font-weight:600; font-size:14px;
          border:1px solid var(--nv); background:var(--nv); color:#fff !important; cursor:pointer; line-height:1.3; }
.gx-btn:hover { background:#0f3f86; }
.gx-btn.lime { background:var(--lm); border-color:var(--lm); }
.gx-btn.ghost { background:#fff; color:var(--nv) !important; border-color:var(--line); }
.gx-btn.ghost:hover { border-color:var(--nv); }
.gx-btn.sm { padding:6px 11px; font-size:13px; }
.gx-btn.danger { background:#fff; color:var(--red) !important; border-color:#f3c7c7; }
.gx-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:20px; }
.gx-kpi { background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 18px; }
.gx-kpi.dark { background:var(--nv); border-color:var(--nv); color:#fff; }
.gx-kpi small { color:var(--mut); font-size:13px; display:block; }
.gx-kpi.dark small { color:#c9d6ee; }
.gx-kpi b { font-size:1.55rem; font-weight:700; display:block; margin-top:4px; white-space:nowrap; }
.gx-kpi a { font-size:12.5px; color:var(--lm); font-weight:600; }
.gx-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px; margin-bottom:18px; }
.gx-card h3 { font-size:1.05rem; font-weight:700; color:var(--nv); margin:0 0 12px; display:flex; justify-content:space-between; align-items:center; gap:8px; flex-wrap:wrap; }
.gx-grid2 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
.gx-grid2 > * { min-width:0; }
.gx-table { width:100%; border-collapse:collapse; font-size:14px; }
.gx-table th { text-align:start; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--mut); font-weight:600; padding:9px 10px; border-bottom:1px solid var(--line); background:var(--soft); white-space:nowrap; }
.gx-table td { padding:10px; border-bottom:1px solid var(--line); vertical-align:middle; }
.gx-table tbody tr:nth-child(odd) > td { background-color:#fff !important; box-shadow:none !important; }
.gx-table tbody tr:nth-child(even) > td { background-color:#eef1f5 !important; box-shadow:none !important; }
.gx-table tbody tr:hover > td { background-color:#dfe9f7 !important; }
html[data-theme="dark"] .gx-table tbody tr:nth-child(odd) > td { background-color:#141d33 !important; color:#e6ebf5; }
html[data-theme="dark"] .gx-table tbody tr:nth-child(even) > td { background-color:#1d2a4a !important; color:#e6ebf5; }
html[data-theme="dark"] .gx-table tbody tr:hover > td { background-color:#2a3d6b !important; color:#fff; }
html[data-theme="dark"] .gx-table tbody td a.row, html[data-theme="dark"] .gx-table tbody td a { color:#8db8ff; }
.gx-table .num { text-align:end; white-space:nowrap; font-variant-numeric:tabular-nums; }
.gx-table a.row { color:var(--nv); font-weight:600; display:inline; margin:0; padding:0; }
.gx-scroll { overflow-x:auto; }
.gx-empty { color:var(--mut); text-align:center; padding:26px 10px; }
.gx-pill { display:inline-block; border-radius:999px; padding:2px 10px; font-size:12px; font-weight:600; white-space:nowrap; background:var(--soft); color:var(--ink); }
.gx-pill.nouveau { background:#e8f0fe; color:#1a56c4; }
.gx-pill.en_cours { background:#fff4d6; color:#8a6100; }
.gx-pill.documents { background:#fde7e7; color:#b42318; }
.gx-pill.confirme { background:#e5f6e0; color:#2f6b12; }
.gx-pill.termine { background:#e9ecf2; color:#3b4659; }
.gx-pill.annule { background:#f1f1f1; color:#888; text-decoration:line-through; }
.gx-pill.lb { background:var(--lm); color:#fff; }
.gx-pill.warn { background:#fde7e7; color:#b42318; }
.gx-pill.soon { background:#fff4d6; color:#8a6100; }
.gx-due { color:var(--red); font-weight:600; }
.gx-ok { color:#2f6b12; font-weight:600; }
.gx-filters { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.gx-filters input, .gx-filters select { border:1px solid var(--line); border-radius:10px; padding:8px 12px; font-size:14px; background:#fff; min-width:0; }
.gx-filters input[type=search] { flex:1 1 220px; }
.gx-form { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; }
.gx-form .full { grid-column:1 / -1; }
.gx-form label { font-size:13px; font-weight:600; color:var(--ink); margin-bottom:4px; display:block; }
.gx-form .help { font-size:12px; color:var(--mut); margin-top:3px; }
.gx-form .err { font-size:12.5px; color:var(--red); margin-top:3px; }
.gx-form .check { display:flex; align-items:center; gap:8px; }
.gx-form .check label { margin:0; font-weight:500; }
.gx-form .form-control, .gx-form .form-select { border-radius:10px; border-color:var(--line); }
.gx-dl { display:grid; grid-template-columns:repeat(3,1fr); gap:12px 18px; margin:0; }
.gx-dl dt { font-size:12px; color:var(--mut); font-weight:500; }
.gx-dl dd { margin:0; font-weight:600; font-size:14.5px; }
.gx-docs { display:flex; gap:8px; flex-wrap:wrap; }
.gx-docs span { border-radius:8px; padding:4px 10px; font-size:13px; border:1px solid var(--line); }
.gx-docs .y { background:#e5f6e0; border-color:#c6e7b8; color:#2f6b12; }
.gx-docs .n { background:#fff; color:var(--mut); }
.gx-bar { height:8px; border-radius:6px; background:var(--soft); overflow:hidden; min-width:60px; }
.gx-bar i { display:block; height:100%; background:var(--nv); border-radius:6px; }
.gx-progress { height:8px; border-radius:6px; background:#fde7e7; overflow:hidden; }
.gx-progress i { display:block; height:100%; background:var(--lm); }
.gx-pages { display:flex; gap:6px; justify-content:center; margin-top:14px; }
.gx-inline { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.gx-inline > div { flex:1 1 140px; }
.gx-inline label { font-size:12.5px; font-weight:600; display:block; margin-bottom:3px; }
.gx-alert { border-radius:12px; padding:12px 16px; margin-bottom:16px; font-size:14px; }
.gx-alert.info { background:#eef4ff; color:#1a3f7a; }
.gx-alert.warn { background:#fff4d6; color:#7a5b00; }
@media (max-width: 1199px) { .gx-kpis { grid-template-columns:repeat(2,1fr); } .gx-dl { grid-template-columns:repeat(2,1fr); } }
@media (max-width: 991px) {
  .gx { grid-template-columns:minmax(0,1fr); padding:16px 16px 50px; gap:14px; }
  .gx-side { position:static; padding:8px; min-width:0; }
  .gx-org { display:none; }
  .gx-nav { display:flex; overflow-x:auto; gap:4px; }
  .gx-nav a { white-space:nowrap; font-size:13.5px; }
  .gx-nav .sep { display:none; }
  .gx-grid2, .gx-form { grid-template-columns:minmax(0,1fr); }
}
@media (max-width: 575px) { .gx-kpis { grid-template-columns:1fr 1fr; gap:10px; } .gx-kpi b { font-size:1.2rem; } .gx-dl { grid-template-columns:1fr 1fr; } }
/* « Prévenir sur WhatsApp » */
.gx-btn.wa { background:#25D366; border-color:#25D366; color:#fff !important; }
.gx-btn.wa:hover { background:#1ebe5b; }
.gx-wa { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#25D366; color:#fff !important; font-size:15px; flex:none; }
.gx-wa:hover { background:#1ebe5b; }
.gx-alert .gx-btn { margin-inline-start:8px; }
/* team: working days picker */
.gx-days { display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.gx-day { position:relative; cursor:pointer; margin:0; }
.gx-day input { position:absolute; opacity:0; inset:0; cursor:pointer; }
.gx-day span { display:inline-block; min-width:52px; text-align:center; padding:7px 10px; border:1.5px solid var(--line); border-radius:10px; font-weight:600; font-size:13.5px; color:var(--mut); background:var(--soft); transition:.15s; }
.gx-day input:checked + span { background:var(--nv); border-color:var(--nv); color:#fff; }
html[data-theme="dark"] .gx-day input:checked + span { background:#1f4c9c; border-color:#1f4c9c; }
.gx-day input:focus-visible + span { outline:2px solid var(--lm); outline-offset:2px; }
.gx-hours-tag { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--mut); }
/* cash closing: live difference */
.gx-ecart { display:flex; justify-content:space-between; align-items:center; border-radius:12px; padding:12px 16px; font-weight:600; background:var(--soft); }
.gx-ecart b { font-size:1.3rem; }
.gx-ecart.ok { background:#eaf6dc; color:#2f6b12; }
.gx-ecart.neg { background:#fdecec; color:#c62828; }
.gx-ecart.pos { background:#fff4d6; color:#7a5b00; }
html[data-theme="dark"] .gx-ecart.ok { background:#16301a; color:#9fd65a; }
html[data-theme="dark"] .gx-ecart.neg { background:#3a1416; color:#ff9b9b; }
html[data-theme="dark"] .gx-ecart.pos { background:#3a2c08; color:#ffe2a0; }
.gx-sched .st { font-size:12px; }
/* activity log */
.gx-day-sep { font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--mut); padding:14px 0 6px; border-bottom:1px solid var(--line); }
.gx-day-sep:first-child { padding-top:0; }
.gx-log { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); font-size:14px; }
.gx-log .ic { width:32px; height:32px; flex:none; border-radius:10px; background:var(--soft); color:var(--nv); display:grid; place-items:center; font-size:13px; }
.gx-log > div { flex:1; min-width:0; }
.gx-log small { color:var(--mut); white-space:nowrap; }

/* ---- Messagerie (team chat) ---- */
.gx-badge { margin-inline-start:auto; background:var(--red); color:#fff; border-radius:999px; font-size:11px; font-weight:700; padding:1px 7px; line-height:1.5; }
.gx-nav a.on .gx-badge { background:var(--lm); color:var(--nv); }
.gc { display:grid; grid-template-columns:260px minmax(0,1fr); gap:0; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; height:min(72vh,680px); min-height:420px; }
.gc-list { border-inline-end:1px solid var(--line); overflow-y:auto; background:var(--soft); padding:10px; }
.gc-list h6 { font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--mut); margin:12px 8px 6px; font-weight:700; }
.gc-item { display:flex; align-items:center; gap:9px; padding:9px 10px; border-radius:10px; color:var(--ink) !important; font-size:14px; font-weight:500; border:0; background:none; width:100%; text-align:start; cursor:pointer; }
.gc-item:hover { background:#fff; }
.gc-item.on { background:var(--nv); color:#fff !important; }
.gc-item .av { width:30px; height:30px; flex:0 0 30px; border-radius:50%; background:#dbe6f7; color:var(--nv); display:grid; place-items:center; font-weight:700; font-size:13px; }
.gc-item.on .av { background:var(--lm); color:var(--nv); }
.gc-item .tt { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }
.gc-item .gx-badge { margin-inline-start:0; }
.gc-main { display:flex; flex-direction:column; min-width:0; min-height:0; }
.gc-head { padding:12px 16px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:10px; }
.gc-head b { color:var(--nv); font-size:1rem; }
.gc-head small { color:var(--mut); }
.gc-back { display:none; }
.gc-feed { flex:1; overflow-y:auto; padding:16px; background:#f9fbfe; display:flex; flex-direction:column; gap:6px; }
.gc-day { align-self:center; font-size:11.5px; color:var(--mut); background:#eaf0f8; border-radius:999px; padding:2px 12px; margin:8px 0 4px; }
.gc-msg { max-width:78%; display:flex; flex-direction:column; }
.gc-msg.me { align-self:flex-end; align-items:flex-end; }
.gc-msg .who { font-size:12px; color:var(--mut); margin:0 6px 2px; }
.gc-bubble { background:#fff; border:1px solid var(--line); border-radius:14px 14px 14px 4px; padding:8px 12px; font-size:14.5px; line-height:1.45; word-break:break-word; white-space:pre-wrap; }
.gc-msg.me .gc-bubble { background:var(--nv); border-color:var(--nv); color:#fff; border-radius:14px 14px 4px 14px; }
.gc-msg .tm { font-size:11px; color:var(--mut); margin:2px 6px 0; }
.gc-bubble img { display:block; max-width:260px; max-height:240px; border-radius:10px; margin-top:6px; cursor:zoom-in; }
.gc-bubble a.file { display:inline-flex; gap:8px; align-items:center; margin-top:6px; background:#eef3fb; color:var(--nv) !important; border-radius:9px; padding:6px 10px; font-size:13.5px; font-weight:600; }
.gc-bubble a.dos { display:inline-flex; gap:6px; align-items:center; margin-top:6px; background:var(--lm); color:var(--nv) !important; border-radius:9px; padding:3px 10px; font-size:12.5px; font-weight:700; }
.gc-empty { margin:auto; color:var(--mut); text-align:center; font-size:14px; }
.gc-form { border-top:1px solid var(--line); padding:10px 12px; display:flex; gap:8px; align-items:flex-end; background:#fff; }
.gc-form textarea { flex:1; resize:none; border:1px solid var(--line); border-radius:12px; padding:9px 12px; font-size:14.5px; max-height:120px; min-height:42px; font-family:inherit; }
.gc-form textarea:focus { outline:2px solid var(--lm); border-color:var(--lm); }
.gc-clip { width:42px; height:42px; border-radius:12px; border:1px solid var(--line); background:#fff; color:var(--nv); cursor:pointer; flex:0 0 42px; }
.gc-send { width:46px; height:42px; border-radius:12px; border:0; background:var(--lm); color:var(--nv); font-size:17px; cursor:pointer; flex:0 0 46px; }
.gc-send[disabled] { opacity:.5; }
.gc-err { color:var(--red); font-size:13px; padding:0 14px 8px; background:#fff; }
.gc-chosen { font-size:12.5px; color:var(--mut); padding:0 14px 6px; background:#fff; display:none; }
@media (max-width:820px) {
  .gc { grid-template-columns:1fr; height:calc(100vh - 210px); }
  .gc .gc-list { display:block; }
  .gc.chat-open .gc-list { display:none; }
  .gc:not(.chat-open) .gc-main { display:none; }
  .gc-back { display:inline-grid; place-items:center; width:34px; height:34px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--nv); }
  .gc-msg { max-width:90%; }
}
html[data-theme="dark"] .gc, html[data-theme="dark"] .gc-form, html[data-theme="dark"] .gc-err, html[data-theme="dark"] .gc-chosen { background:#16213a; border-color:#2a3b5f; }
html[data-theme="dark"] .gc-list { background:#101a2f; border-color:#2a3b5f; }
html[data-theme="dark"] .gc-feed { background:#0f1829; }
html[data-theme="dark"] .gc-bubble { background:#1b2a47; border-color:#2a3b5f; color:#e8eefb; }
html[data-theme="dark"] .gc-msg.me .gc-bubble { background:#2b5bb5; border-color:#2b5bb5; }
html[data-theme="dark"] .gc-item { color:#e8eefb !important; }
html[data-theme="dark"] .gc-item:hover { background:#1b2a47; }
html[data-theme="dark"] .gc-head b { color:#fff; }
html[data-theme="dark"] .gc-form textarea { background:#0f1829; color:#fff; border-color:#2a3b5f; }
html[data-theme="dark"] .gc-clip { background:#16213a; color:#fff; border-color:#2a3b5f; }

.gc-head { display:flex; align-items:center; gap:10px; }
.gc-head > div { flex:1; min-width:0; }
.gc-snd { margin-inline-start:auto; width:36px; height:36px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--nv); cursor:pointer; display:grid; place-items:center; }
.gc-snd.off { color:#9aa4b2; }
[data-theme="dark"] .gc-snd { background:#16213a; color:#dbe6ff; border-color:#2b3a5c; }
[data-theme="dark"] .gc-snd.off { color:#6f7c93; }
