.channels { flex-wrap: wrap; }
.channel-btn.missing {
  display: inline-grid;
  place-items: center;
  opacity: .48;
  cursor: help;
  background: #172131;
  color: #8b9bb2;
  border: 1px dashed #34445d;
}
.channel-btn.missing svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.no-social { display: inline-flex; align-items: center; min-height: 26px; padding: 0 8px; border: 1px dashed #485974; border-radius: 7px; color: #9bacbf; font-size: 10px; white-space: nowrap; }
.demo-card-actions { display: flex; align-items: center; gap: 11px; }
.demo-page-grid { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(420px, 1.45fr); gap: 18px; align-items: start; }
.demo-form-card, .demo-table-card { overflow: hidden; }
.demo-form-card .card-head, .demo-table-card .card-head { padding: 18px 20px; border-bottom: 1px solid #273249; }
.demo-request-form { display: grid; gap: 14px; padding: 20px; }
.demo-request-form .field { display: grid; gap: 6px; }
.demo-request-form label { color: #a8b9cf; font-size: 11px; font-weight: 700; }
.demo-request-form input, .demo-request-form select, .demo-request-form textarea { min-height: 39px; box-sizing: border-box; border: 1px solid #2b3951; border-radius: 8px; padding: 0 10px; background: #182334; color: #dfe9f9; outline: none; }
.demo-request-form textarea { min-height: 86px; padding: 10px; resize: vertical; }
.demo-request-form input:focus, .demo-request-form select:focus, .demo-request-form textarea:focus { border-color: #56aafa; box-shadow: 0 0 0 3px #3b95ec25; }
.demo-consent { display: flex !important; align-items: flex-start; gap: 8px; color: #8fa1b8 !important; font-weight: 500 !important; line-height: 1.4; }
.demo-consent input { width: 15px; min-height: 15px; margin: 0; }
.demo-full-list article { display: flex; align-items: center; gap: 11px; padding: 13px 20px; border-top: 1px solid #273249; }
.demo-full-list article:first-child { border-top: 0; }
.demo-full-list article > div { min-width: 0; flex: 1; }
.demo-full-list b, .demo-full-list small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.demo-full-list b { color: #e8f1ff; font-size: 12px; }
.demo-full-list small, .demo-full-list time { margin-top: 3px; color: #8394ab; font-size: 10px; }
.demo-full-list time { max-width: 160px; white-space: nowrap; }
body.light-theme .channel-btn.missing { background: #edf3fa; color: #77899e; border-color: #b8c6d7; }
body.light-theme .no-social { border-color: #aebdce; color: #677b92; }
body.light-theme .demo-form-card .card-head, body.light-theme .demo-table-card .card-head, body.light-theme .demo-full-list article { border-color: #d8e2ee; }
body.light-theme .demo-request-form label { color: #52677f; }
body.light-theme .demo-request-form input, body.light-theme .demo-request-form select, body.light-theme .demo-request-form textarea { background: #edf3fa; border-color: #d4dfed; color: #334965; }
body.light-theme .demo-full-list b { color: #22344b; }
@media (max-width: 980px) { .demo-page-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .demo-full-list time { display: none; } .no-social { font-size: 9px; } }
.channel-filters { display: flex; flex-wrap: wrap; gap: 7px; margin: 10px 0 12px; }
.channel-filters .filter-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; }
.channel-filters svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.prospect-summary { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.prospect-summary span { border: 1px solid #2b3b53; border-radius: 8px; padding: 7px 10px; background: #151f2e; color: #96a9c2; font-size: 11px; }
.prospect-summary b { color: #71c0ff; }
.prospect-status { max-width: 140px; border: 1px solid #2d405a; border-radius: 7px; padding: 6px 8px; background: #172436; color: #c8d8ed; font-size: 10px; outline: none; }
.prospect-status:focus { border-color: #58aaff; box-shadow: 0 0 0 3px #3a96ed20; }
.duplicate-badge, .unique-badge { display: inline-flex; align-items: center; min-height: 24px; box-sizing: border-box; border-radius: 7px; padding: 0 7px; white-space: nowrap; font-size: 9px; font-weight: 750; }
.duplicate-badge { background: #473823; color: #ffd079; border: 1px solid #624b29; }
.unique-badge { background: #183b35; color: #80e0c1; border: 1px solid #28594e; }
body.light-theme .prospect-summary span { background: #f2f6fb; border-color: #d5e0ed; color: #5c7088; }
body.light-theme .prospect-status { background: #f0f5fb; border-color: #cedcea; color: #314762; }
body.light-theme .duplicate-badge { background: #fff3dc; color: #9b670f; border-color: #efd394; }
body.light-theme .unique-badge { background: #e4f5ee; color: #17715e; border-color: #b8dfd1; }
@media (max-width: 720px) { .channel-filters { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 3px; } .prospect-summary { margin-top: 8px; } }
.demo-prospects-table { overflow-x: auto; }
.demo-prospects-table .data-table { min-width: 1420px; }
.demo-person, .copy-cell { display: flex; align-items: center; gap: 8px; }
.demo-person > div { min-width: 0; }
.demo-person b, .demo-person small { display: block; max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.demo-person small, .demo-meta { margin-top: 4px; color: #8195ae; font-size: 9px; }
.copy-cell code { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #b8d0eb; font-family: inherit; font-size: 11px; }
.copy-cell .channel-btn { flex: 0 0 auto; }
.demo-contact-stack { display: grid; gap: 7px; }
.source-chip { display: inline-flex; min-height: 23px; align-items: center; padding: 0 7px; border-radius: 6px; background: #1d2d44; color: #9ec9ef; font-size: 9px; }
.compact { min-height: 29px; padding: 0 9px; font-size: 10px; white-space: nowrap; }
.demo-inline-form { grid-template-columns: repeat(4, minmax(150px, 1fr)); align-items: end; }
.demo-inline-form .field-wide { grid-column: span 3; }
.demo-inline-form .demo-consent { grid-column: 1 / -1; }
.demo-challenge { width: 230px; margin-top: 7px; }
.demo-challenge summary { overflow: hidden; color: #9eafc5; font-size: 10px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.demo-challenge[open] summary { display: none; }
.demo-challenge p { max-height: 130px; margin: 0; padding: 8px; overflow-y: auto; border: 1px solid #2b3c54; border-radius: 7px; background: #111d2b; color: #bfd0e4; font-size: 10px; line-height: 1.5; white-space: normal; }
.demo-voice-trigger { display: inline-flex; min-width: 126px; align-items: center; gap: 9px; border: 1px solid #2c4864; border-radius: 9px; padding: 7px 10px; background: #13263a; color: #dcecff; text-align: left; transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.demo-voice-trigger:hover { border-color: #4ba8ef; background: #17324b; transform: translateY(-1px); }
.demo-voice-trigger.is-loading { cursor: progress; opacity: .75; }
.demo-voice-trigger.is-playing { border-color: #4dc9ad; background: #143a3a; }
.demo-voice-icon { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 50%; background: #2d91e9; color: #fff; font-size: 10px; box-shadow: 0 5px 14px #277fd43d; }
.demo-voice-trigger.is-playing .demo-voice-icon { background: #28aa8d; }
.demo-voice-trigger b, .demo-voice-trigger small { display: block; }
.demo-voice-trigger b { font-size: 10px; }
.demo-voice-trigger small, .demo-voice-unavailable { margin-top: 2px; color: #8296ae; font-size: 9px; }
.demo-audio-dock { position: fixed; z-index: 4500; right: 24px; bottom: 20px; left: calc(238px + 24px); display: flex; max-width: 820px; min-width: 0; align-items: center; gap: 18px; margin-inline: auto; border: 1px solid #31506e; border-radius: 14px; padding: 12px 14px; background: #101b2aee; color: #edf6ff; box-shadow: 0 18px 54px #0009; backdrop-filter: blur(18px); }
.demo-audio-dock[hidden] { display: none; }
.demo-audio-summary { display: flex; min-width: 190px; align-items: center; gap: 10px; }
.demo-audio-summary > div { min-width: 0; }
.demo-audio-summary b, .demo-audio-summary small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.demo-audio-summary b { max-width: 210px; font-size: 11px; }
.demo-audio-summary small { margin-top: 3px; color: #8da5c0; font-size: 9px; }
.demo-audio-wave { display: flex; width: 36px; height: 36px; flex: 0 0 36px; align-items: center; justify-content: center; gap: 2px; border-radius: 10px; background: #183957; }
.demo-audio-wave i { width: 2px; height: 9px; border-radius: 3px; background: #65baff; }
.demo-audio-wave i:nth-child(2), .demo-audio-wave i:nth-child(4) { height: 17px; }
.demo-audio-dock.is-playing .demo-audio-wave i { animation: demo-audio-wave .7s ease-in-out infinite alternate; }
.demo-audio-dock.is-playing .demo-audio-wave i:nth-child(2) { animation-delay: -.2s; }
.demo-audio-dock.is-playing .demo-audio-wave i:nth-child(3) { animation-delay: -.4s; }
.demo-audio-controls { display: flex; flex: 1; min-width: 0; align-items: center; gap: 9px; }
.demo-audio-controls > span { min-width: 30px; color: #8fa5bf; font-size: 9px; font-variant-numeric: tabular-nums; }
.demo-audio-play, .demo-audio-speed, .demo-audio-close { border: 1px solid #304760; background: #18283a; color: #dfeeff; }
.demo-audio-play { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%; }
.demo-audio-speed { min-width: 38px; height: 29px; border-radius: 7px; font-size: 9px; }
.demo-audio-close { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 8px; font-size: 18px; }
.demo-audio-controls input[type="range"] { width: 100%; min-width: 70px; accent-color: #50adf6; }
body.sidebar-collapsed .demo-audio-dock { left: 96px; }
body.light-theme .demo-voice-trigger { border-color: #bfd3e4; background: #e9f3fb; color: #29425d; }
body.light-theme .demo-audio-dock { border-color: #c6d8e7; background: #fffffff2; color: #243a52; box-shadow: 0 16px 42px #233d5a26; }
body.light-theme .demo-audio-play, body.light-theme .demo-audio-speed, body.light-theme .demo-audio-close { border-color: #ccdae7; background: #edf4fa; color: #314961; }
@keyframes demo-audio-wave { to { height: 22px; } }
.mobile-sidebar-trigger, .mobile-sidebar-backdrop { display: none; }

@media (max-width: 800px) {
  body.sidebar-mobile-open { overflow: hidden; }
  .mobile-sidebar-trigger { position: fixed; z-index: 2800; top: max(12px, env(safe-area-inset-top)); left: 13px; display: grid; width: 42px; height: 42px; place-content: center; gap: 4px; border: 1px solid #31506d; border-radius: 11px; background: #122238ee; box-shadow: 0 10px 26px #0007; backdrop-filter: blur(14px); }
  .mobile-sidebar-trigger span { display: block; width: 17px; height: 2px; border-radius: 3px; background: #b9d9f5; }
  .mobile-sidebar-backdrop { position: fixed; z-index: 2890; inset: 0; display: block; width: 100%; height: 100%; border: 0; background: #030914b8; backdrop-filter: blur(3px); }
  .sidebar, body.sidebar-collapsed .sidebar { z-index: 2900; width: min(86vw, 300px); padding: max(17px, env(safe-area-inset-top)) 12px max(16px, env(safe-area-inset-bottom)); transform: translateX(-105%); box-shadow: none; transition: transform .22s ease, box-shadow .22s ease; }
  .sidebar.open, body.sidebar-collapsed .sidebar.open { transform: translateX(0); box-shadow: 18px 0 55px #0009; }
  .sidebar .brand, body.sidebar-collapsed .brand { display: flex; height: auto; justify-content: flex-start; padding: 5px 8px 18px; font-size: 16px; }
  .sidebar .brand span:last-of-type, body.sidebar-collapsed .brand span:last-of-type { display: inline; }
  .sidebar .mobile-close { display: grid; width: 36px; height: 36px; margin-left: auto; border: 1px solid #2d415b; border-radius: 9px; background: #18263a; color: #c6d8eb; font-size: 20px; }
  .sidebar nav, body.sidebar-collapsed .sidebar nav { margin-top: 2px; padding: 2px 2px 10px 0; }
  .sidebar .nav-button, body.sidebar-collapsed .nav-button { justify-content: flex-start; min-height: 46px; padding: 11px 12px; border-radius: 10px; }
  .sidebar .nav-button span:nth-child(2), body.sidebar-collapsed .nav-button span:nth-child(2), .sidebar .nav-count, body.sidebar-collapsed .nav-count { display: initial; }
  .sidebar .nav-count, body.sidebar-collapsed .nav-count { display: grid; }
  .main, body.sidebar-collapsed .main { width: 100%; margin-left: 0; }
  .main > .page { padding-top: 70px; }
  .demo-audio-dock, body.sidebar-collapsed .demo-audio-dock { right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); left: 10px; display: grid; gap: 10px; padding: 11px; border-radius: 13px; }
  .demo-audio-dock[hidden] { display: none; }
  .demo-audio-summary { min-width: 0; }
  .demo-audio-summary b { max-width: calc(100vw - 100px); }
  .demo-audio-controls { gap: 6px; }
  .demo-audio-controls > span { min-width: 28px; }
  .demo-audio-speed { display: none; }
  body.light-theme .mobile-sidebar-trigger { border-color: #c3d5e5; background: #fffffff0; box-shadow: 0 10px 26px #263f5b26; }
  body.light-theme .mobile-sidebar-trigger span { background: #36516d; }
}

@media (max-width: 430px) {
  .demo-prospects-table .data-table { min-width: 1180px; }
  .demo-audio-controls input[type="range"] { min-width: 40px; }
  .demo-audio-close { width: 28px; flex-basis: 28px; }
}
.demo-status-select { width: 155px; max-width: none; }
.demo-sync-error { display: flex; align-items: center; gap: 12px; padding: 12px 18px; border-bottom: 1px solid #5c3b2f; background: #3a241e; color: #ffc3a8; font-size: 10px; }
.demo-sync-error span { flex: 1; }
body.light-theme .demo-challenge p { border-color: #d0ddeb; background: #edf3fa; color: #40566f; }
body.light-theme .demo-sync-error { border-color: #efc9b8; background: #fff1e9; color: #8d4528; }
.operations-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 17px; }
.operations-stats .card { display: grid; gap: 7px; padding: 17px; }
.operations-stats span { color: #8fa1b8; font-size: 11px; }
.operations-stats b { color: #e8f2ff; font-size: 22px; }
.operations-grid { display: grid; grid-template-columns: minmax(270px, .78fr) minmax(450px, 1.45fr); gap: 18px; align-items: start; }
.operation-form-card, .operation-table-card { overflow: hidden; }
.operation-form-card .card-head, .operation-table-card .card-head { padding: 18px 20px; border-bottom: 1px solid #273249; }
.operation-form { display: grid; gap: 13px; padding: 20px; }
.operation-form .field { display: grid; gap: 6px; }
.operation-form label { color: #a8b9cf; font-size: 11px; font-weight: 700; }
.operation-form input, .operation-form select { min-height: 39px; box-sizing: border-box; border: 1px solid #2b3951; border-radius: 8px; padding: 0 10px; background: #182334; color: #dfe9f9; outline: none; }
.operation-form input:focus, .operation-form select:focus { border-color: #56aafa; box-shadow: 0 0 0 3px #3b95ec25; }
.operation-table-card td small { display: block; margin-top: 3px; color: #8294ab; font-size: 10px; }
.task-list article { display: flex; align-items: center; gap: 11px; padding: 14px 19px; border-top: 1px solid #273249; }
.task-list article > div:nth-child(2) { flex: 1; min-width: 0; }
.task-list b, .task-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.task-list b { color: #e7f1ff; font-size: 12px; }
.task-list small { margin-top: 3px; color: #8394ab; font-size: 10px; }
.task-priority { width: 8px; height: 32px; flex: 0 0 auto; border-radius: 999px; background: #3a506e; }
.task-priority.haute { background: #ed8d5c; }
.task-priority.normale { background: #52a5ef; }
.task-priority.basse { background: #5ccda4; }
body.light-theme .copy-cell code { color: #355575; }
body.light-theme .source-chip { background: #e4effb; color: #2768a7; }
body.light-theme .operations-stats .card, body.light-theme .operation-form-card .card-head, body.light-theme .operation-table-card .card-head, body.light-theme .task-list article { border-color: #d8e2ee; }
body.light-theme .operations-stats b, body.light-theme .task-list b { color: #23364e; }
body.light-theme .operation-form label { color: #52677f; }
body.light-theme .operation-form input, body.light-theme .operation-form select { background: #edf3fa; border-color: #d4dfed; color: #334965; }
@media (max-width: 1060px) { .operations-grid { grid-template-columns: 1fr; } .demo-inline-form { grid-template-columns: 1fr 1fr; } .demo-inline-form .field-wide { grid-column: span 2; } .demo-inline-form button { grid-column: span 2; } }
@media (max-width: 700px) { .operations-stats { grid-template-columns: 1fr; } .demo-inline-form { grid-template-columns: 1fr; } .demo-inline-form .field-wide, .demo-inline-form button { grid-column: auto; } .operations-grid { gap: 14px; } }
.sidebar { height: 100vh; display: flex; flex-direction: column; overflow: hidden; transition: width .2s ease; }
.sidebar nav { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding-right: 4px; scrollbar-width: thin; scrollbar-color: #3a4b65 transparent; }
.sidebar nav::-webkit-scrollbar { width: 6px; }
.sidebar nav::-webkit-scrollbar-thumb { border-radius: 99px; background: #3a4b65; }
.sidebar-toggle { width: 28px; height: 28px; margin-left: auto; border: 1px solid #31415a; border-radius: 7px; background: #172438; color: #a9c0dc; font-size: 20px; line-height: 1; }
body.sidebar-collapsed .sidebar { width: 72px; }
body.sidebar-collapsed .main { width: calc(100% - 72px); margin-left: 72px; }
body.sidebar-collapsed .brand { justify-content: center; padding: 12px 7px 20px; font-size: 0; }
body.sidebar-collapsed .brand span:last-of-type, body.sidebar-collapsed .workspace-card > div, body.sidebar-collapsed .workspace-card > span:last-child, body.sidebar-collapsed .nav-button span:nth-child(2), body.sidebar-collapsed .nav-count, body.sidebar-collapsed .usage, body.sidebar-collapsed .profile > div, body.sidebar-collapsed .profile > span:last-child { display: none; }
body.sidebar-collapsed .workspace-card { justify-content: center; padding: 10px 0; margin: 0 8px; }
body.sidebar-collapsed .nav-button { justify-content: center; padding: 11px 8px; }
body.sidebar-collapsed .profile { justify-content: center; padding: 10px 0; }
body.sidebar-collapsed .sidebar-toggle { position: absolute; top: 11px; right: -13px; z-index: 20; box-shadow: 0 4px 12px #00000033; transform: rotate(180deg); }
body.light-theme .sidebar-toggle { background: #edf3fa; border-color: #cedbea; color: #46607d; }
@media (max-width: 800px) { .sidebar-toggle { display: none; } body.sidebar-collapsed .sidebar { width: 238px; } body.sidebar-collapsed .main { width: 100%; margin-left: 0; } }
.workspace-card, .side-footer { display: none !important; }
.sidebar nav { margin-top: 4px; }
body.sidebar-collapsed .brand { height: 54px; box-sizing: border-box; padding: 8px; }
body.sidebar-collapsed .sidebar-toggle { position: static; display: grid; place-items: center; width: 34px; height: 34px; margin: 0 auto; transform: rotate(180deg); font-size: 23px; }
body.sidebar-collapsed .sidebar nav { padding-top: 7px; }
body.sidebar-collapsed .nav-button { min-height: 40px; }
.sidebar-theme-toggle { margin-top: 8px; border-top: 1px solid #243650; border-radius: 0 0 8px 8px; }
body.light-theme .sidebar-theme-toggle { border-color: #d6e1ed; }
.searchbox { height: 35px; width: min(430px, 42vw); }
.page { padding: 18px 24px; }
.page-heading { margin-bottom: 14px; }
.page-heading h1 { font-size: 25px; }
.page-heading .eyebrow { margin-bottom: 3px; }
.compact-heading { margin-bottom: 12px; }
.compact-empty { padding: 28px 18px; }
.row-actions, .template-actions { display: flex; align-items: center; gap: 4px; }
.delete-row, .delete-text { color: #ff9da8 !important; }
.delete-row:hover { background: #3b2733 !important; }
.confirm-modal { width: min(430px, 100%); }
.confirm-modal .modal-body p { margin: 0 0 8px; color: #c4d0df; font-size: 12px; line-height: 1.5; }
.confirm-modal .modal-body b { color: #f0f6ff; }
body.light-theme .confirm-modal .modal-body p { color: #596e86; }
body.light-theme .confirm-modal .modal-body b { color: #1d3048; }
@media (max-width: 800px) { .topbar { height: 52px; padding: 0 12px; } .page { padding: 14px 13px; } .page-heading { margin-bottom: 11px; } }
.document-project { max-width: 170px; border: 1px solid #2d3a53; border-radius: 8px; padding: 8px; background: #192536; color: #e8f1ff; font-size: 10px; }
body.light-theme .document-project { background: #edf3fa; border-color: #d2deeb; color: #334a68; }
@media (max-width: 900px) { .document-project { max-width: 145px; } }

/* Rendre les vues denses utilisables sans débordement horizontal. */
.kanban { grid-template-columns: repeat(6, minmax(210px, 1fr)); max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.kanban-col, .kanban-card, .email-layout, .composer, .audience { min-width: 0; }
.kanban-card header, .kanban-card footer { min-width: 0; gap: 7px; }
.kanban-card header b, .kanban-card p, .kanban-card footer { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pipeline-board .kanban-col { display: flex; flex-direction: column; min-height: 540px; transition: background .16s ease, box-shadow .16s ease; }
.pipeline-board .kanban-dropzone { flex: 1; min-height: 440px; border: 1px dashed transparent; border-radius: 9px; transition: border-color .16s ease, background .16s ease; }
.pipeline-board [data-pipeline-stage].drag-over { background: #183753; box-shadow: inset 0 0 0 1px #59aff455; }
.pipeline-board .kanban-dropzone.drag-over { border-color: #66baff; background: #1a395655; }
.pipeline-card { position: relative; cursor: grab; user-select: none; }
.pipeline-card:active { cursor: grabbing; }
.pipeline-card.dragging { opacity: .38; transform: scale(.98); }
.pipeline-card header { align-items: flex-start; }
.pipeline-card .pipeline-card-title { min-width: 0; flex: 1; padding-right: 3px; }
.pipeline-card .pipeline-prospect-name { display: block; overflow: visible; max-height: none; color: #edf5ff; font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; text-overflow: clip; white-space: normal; }
.pipeline-card .pipeline-card-title small { display: block; overflow: hidden; margin-top: 3px; color: #7f96b1; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.pipeline-card p { overflow: hidden; min-height: 32px; margin: 9px 0; color: #98aec5; line-height: 1.45; text-overflow: ellipsis; white-space: normal; }
.pipeline-card p span { color: #7390b1; font-size: 9px; }
.pipeline-tools { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; padding: 10px 12px; }
.pipeline-search { display: flex; flex: 1 1 280px; align-items: center; gap: 8px; min-width: 0; border: 1px solid #2a3e58; border-radius: 8px; padding: 0 10px; background: #111e2d; color: #76aee1; }
.pipeline-search input { width: 100%; min-width: 0; border: 0; outline: 0; padding: 9px 0; background: transparent; color: #e6f0fb; font: inherit; font-size: 11px; }
.pipeline-tools select { min-width: 150px; }
.pipeline-tools > span { color: #7f94ad; font-size: 10px; }
.pipeline-more { display: block; width: calc(100% - 12px); margin: 8px 6px 2px; text-align: center; }
body.light-theme .pipeline-search { border-color: #cad9e8; background: #f4f8fc; color: #3476aa; }
body.light-theme .pipeline-search input { color: #2d435c; }
body.light-theme .pipeline-tools > span { color: #657c94; }
.pipeline-board .empty-col { display: grid; min-height: 110px; place-items: center; padding: 18px 8px; color: #7f97b4; }
body.light-theme .pipeline-board [data-pipeline-stage].drag-over { background: #e3f1ff; box-shadow: inset 0 0 0 1px #67a8df; }
body.light-theme .pipeline-board .kanban-dropzone.drag-over { background: #dcefffaa; }
body.light-theme .pipeline-card .pipeline-prospect-name { color: #253b54; }
body.light-theme .pipeline-card .pipeline-card-title small, body.light-theme .pipeline-card p span { color: #657f9b; }
.email-layout { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); }
.editor-toolbar { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.rich-editor, .composer-body, .recipient-list { min-width: 0; overflow-wrap: anywhere; }
.recipient span, .recipient small, .attachment-list span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }

/* Documents fiables et lisibles, même avec de longs noms de fichiers. */
.documents-heading .muted { margin: 5px 0 0; font-size: 11px; }
.documents-workspace { min-width: 0; }
.document-sidebar-label { margin: 4px 10px 8px; color: #758ca8; font-size: 9px; font-weight: 800; letter-spacing: .09em; }
.document-toolbar { min-width: 0; flex-wrap: wrap; }
.document-toolbar > div { min-width: 190px; }
.document-toolbar .document-search { flex: 1 1 190px; min-width: 150px; }
.document-toolbar select { max-width: 180px; }
.document-row { min-width: 0; }
.document-row .grow { min-width: 120px; }
.document-row .grow b, .document-row .grow small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-row .document-project { flex: 0 1 160px; min-width: 96px; }
.document-drop { min-width: 0; }
.document-drop > div { min-width: 0; }

/* Projet : description et import de ressources associés. */
.operation-form textarea { min-height: 92px; resize: vertical; box-sizing: border-box; border: 1px solid #2b3951; border-radius: 8px; padding: 10px; background: #182334; color: #dfe9f9; outline: none; }
.operation-form textarea:focus { border-color: #56aafa; box-shadow: 0 0 0 3px #3b95ec25; }
.field-full { grid-column: 1 / -1; }
.project-description { max-width: 290px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-portfolio { margin-top: 18px; }
.project-document-chips, .project-resource-files { display: flex; flex-wrap: wrap; gap: 6px; min-width: 150px; }
.project-document-chips span, .project-resource-files span { display: inline-flex; max-width: 164px; align-items: center; gap: 4px; padding: 4px 7px; border: 1px solid #2c4663; border-radius: 7px; color: #a9d4ff; background: #13243a; font-size: 10px; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-no-resources { font-size: 11px; }
.project-resource-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; padding: 16px 20px; }
.project-resource-card { display: grid; gap: 10px; padding: 13px; border: 1px solid #273249; border-radius: 10px; background: #101d2d; }
.project-resource-card b, .project-resource-card small { display: block; }
.project-resource-card small { margin-top: 3px; color: #8294ab; font-size: 11px; }
.project-resources { margin-top: 18px; overflow: hidden; }
.project-resource-body { display: flex; align-items: center; gap: 10px; padding: 16px 20px; border-top: 1px solid #273249; }
.project-resource-body .document-project { flex: 1; max-width: 340px; }
.planning-type { display: inline-block; margin-right: 6px; border-radius: 5px; padding: 2px 5px; background: #1d3959; color: #7fc3ff; font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.planning-description { max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.planning-resources { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.planning-resources span { max-width: 170px; overflow: hidden; border: 1px solid #2c4663; border-radius: 5px; padding: 3px 5px; color: #9ccdf9; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
body.light-theme .operation-form textarea { background: #edf3fa; border-color: #d4dfed; color: #334965; }
body.light-theme .project-resource-body { border-color: #d8e2ee; }
body.light-theme .project-resource-card { background: #f7faff; border-color: #d8e2ee; }
body.light-theme .project-document-chips span, body.light-theme .project-resource-files span { color: #1e5e95; background: #eaf4ff; border-color: #c8dff2; }
body.light-theme .planning-type { background: #e3f1fe; color: #24699e; }
body.light-theme .planning-resources span { border-color: #c8dff2; color: #286ca2; }
@media (max-width: 1100px) { .email-layout { grid-template-columns: 1fr; } .audience { max-height: none; } }
@media (max-width: 760px) { .kanban { grid-template-columns: repeat(6, minmax(185px, 1fr)); } .document-toolbar select { flex: 1 1 130px; max-width: none; } .document-row { flex-wrap: wrap; } .document-row .grow { flex-basis: calc(100% - 52px); } .document-row .document-project { margin-left: 49px; } .project-resource-body { align-items: stretch; flex-direction: column; } .project-resource-body .document-project { max-width: none; } }

/* Stratégie : une carte d'idées compacte, manipulable et sans débordement. */
.strategy-layout { display: grid; grid-template-columns: minmax(250px, .7fr) minmax(520px, 1.8fr) minmax(270px, .8fr); gap: 16px; align-items: start; }
.strategy-side, .strategy-inspector, .strategy-canvas-card { min-width: 0; overflow: hidden; }
.strategy-side-head, .strategy-canvas-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 18px; border-bottom: 1px solid #273249; }
.strategy-side-head b { color: #84bfff; font-size: 9px; letter-spacing: .09em; }
.strategy-side-head select { max-width: 170px; min-width: 0; border: 1px solid #2d3a53; border-radius: 7px; padding: 7px; background: #192536; color: #e8f1ff; font-size: 10px; }
.strategy-canvas-head h2 { font-size: 14px; }
.strategy-canvas-head p { margin: 3px 0 0; color: #8394ab; font-size: 10px; line-height: 1.4; }
.strategy-form { display: grid; gap: 12px; padding: 17px; }
.strategy-form .field { display: grid; gap: 6px; }
.strategy-form label { color: #a8b9cf; font-size: 10px; font-weight: 750; }
.strategy-form input, .strategy-form textarea, .strategy-connection select { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #2b3951; border-radius: 8px; padding: 9px 10px; background: #182334; color: #dfe9f9; font: inherit; font-size: 11px; outline: none; }
.strategy-form textarea { min-height: 94px; resize: vertical; line-height: 1.45; }
.strategy-form input:focus, .strategy-form textarea:focus, .strategy-connection select:focus { border-color: #56aafa; box-shadow: 0 0 0 3px #3b95ec25; }
.strategy-form-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.strategy-map-scroll { min-height: 620px; overflow: auto; overscroll-behavior: contain; background: radial-gradient(circle at 50% 50%, #152e49 0, #111925 48%, #0e1622 100%); }
.strategy-map-board { position: relative; width: 1200px; min-height: 620px; background-image: radial-gradient(#3b5575 1px, transparent 1px); background-size: 22px 22px; }
.strategy-lines { position: absolute; inset: 0; width: 1200px; height: 620px; pointer-events: none; overflow: visible; }
.strategy-lines line { stroke: #579ee0; stroke-width: 2; stroke-linecap: round; opacity: .72; }
.strategy-center { position: absolute; left: 505px; top: 252px; display: grid; place-items: center; width: 190px; min-height: 116px; padding: 15px; box-sizing: border-box; border: 1px solid #5499dc; border-radius: 50%; background: radial-gradient(circle at 35% 25%, #276a9f, #163450 70%); color: #ecf5ff; text-align: center; box-shadow: 0 0 0 10px #3f8de811, 0 14px 34px #00000045; z-index: 1; }
.strategy-center span { color: #86ccff; font-size: 17px; }
.strategy-center b { max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.strategy-center small { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #b7d4f0; font-size: 9px; }
.strategy-node { position: absolute; z-index: 2; display: grid; width: 196px; min-height: 106px; gap: 5px; border: 1px solid #2b4e72; border-radius: 12px; padding: 13px 13px 11px 17px; background: linear-gradient(145deg, #17273b, #111c2c); color: #eaf3ff; text-align: left; box-shadow: 0 8px 18px #00000030; cursor: grab; touch-action: none; }
.strategy-node:hover, .strategy-node.selected { border-color: #67b6ff; box-shadow: 0 0 0 3px #4ca6ff1f, 0 12px 24px #00000048; }
.strategy-node:active { cursor: grabbing; }
.strategy-node-dot { position: absolute; left: -5px; top: 17px; width: 9px; height: 9px; border-radius: 50%; background: #79c8ff; box-shadow: 0 0 0 4px #3b8ee62e; }
.strategy-node b, .strategy-node small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.strategy-node b { font-size: 12px; }
.strategy-node small { color: #8fa7c2; font-size: 10px; }
.strategy-node em { color: #77d9c3; font-size: 9px; font-style: normal; font-weight: 750; }
.strategy-empty-map { display: grid; place-items: center; align-content: center; min-height: 360px; padding: 30px; color: #8ca2bb; text-align: center; }
.strategy-empty-map b, .strategy-empty-map span { display: block; }
.strategy-empty-map b { margin-bottom: 6px; color: #dcecff; }
.strategy-empty-map span { max-width: 330px; font-size: 11px; line-height: 1.5; }
.strategy-connection, .strategy-resources { padding: 15px 17px; border-top: 1px solid #273249; }
.strategy-connection h3, .strategy-resources h3 { margin: 0 0 9px; color: #dcecff; font-size: 11px; }
.strategy-connection form { display: grid; gap: 8px; }
.strategy-resources > .secondary { width: 100%; }
.strategy-resources ul { display: grid; gap: 7px; max-height: 190px; margin: 12px 0 0; padding: 0; overflow-y: auto; list-style: none; }
.strategy-resources li { display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 8px; align-items: center; padding: 8px; border: 1px solid #283a52; border-radius: 8px; background: #152233; }
.strategy-resources li span { grid-row: span 2; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 7px; background: #263b56; color: #9dd0ff; font-size: 9px; font-weight: 800; }
.strategy-resources li b, .strategy-resources li small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.strategy-resources li b { color: #e1edfb; font-size: 10px; }
.strategy-resources li small { color: #829ab4; font-size: 9px; }
body.light-theme .strategy-side-head, body.light-theme .strategy-canvas-head, body.light-theme .strategy-connection, body.light-theme .strategy-resources { border-color: #d8e2ee; }
body.light-theme .strategy-side-head select, body.light-theme .strategy-form input, body.light-theme .strategy-form textarea, body.light-theme .strategy-connection select { background: #edf3fa; border-color: #d4dfed; color: #334965; }
body.light-theme .strategy-form label { color: #52677f; }
body.light-theme .strategy-map-scroll { background: radial-gradient(circle at 50% 50%, #dceafa 0, #eef4fb 52%, #e5edf8 100%); }
body.light-theme .strategy-map-board { background-image: radial-gradient(#b8cce1 1px, transparent 1px); }
body.light-theme .strategy-node { background: linear-gradient(145deg, #ffffff, #eef4fb); border-color: #b9cce0; color: #26394f; }
body.light-theme .strategy-node small { color: #607892; }
body.light-theme .strategy-resources li { background: #edf3fa; border-color: #d4e0ec; }
body.light-theme .strategy-resources li b, body.light-theme .strategy-connection h3, body.light-theme .strategy-resources h3 { color: #2a405a; }
@media (max-width: 1260px) { .strategy-layout { grid-template-columns: minmax(230px, .8fr) minmax(0, 1.7fr); } .strategy-inspector { grid-column: 1 / -1; } .strategy-inspector .strategy-form { grid-template-columns: 1fr 1fr; } .strategy-inspector .strategy-form .field:nth-child(3) { grid-column: 1 / -1; } }
@media (max-width: 800px) { .strategy-layout { grid-template-columns: 1fr; } .strategy-inspector { grid-column: auto; } .strategy-inspector .strategy-form { grid-template-columns: 1fr; } .strategy-map-scroll { min-height: 490px; } .strategy-map-board { transform-origin: top left; } }

/* Stratégie V2 — véritable tableau blanc libre. */
.strategy2-page { min-width: 0; }
.strategy2-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.strategy2-header h1 { margin: 2px 0 0; font-size: 25px; line-height: 1.1; }
.strategy2-space-controls { display: flex; align-items: center; gap: 7px; min-width: 0; }
.strategy2-space-controls select { min-width: 180px; max-width: 260px; height: 36px; border: 1px solid #2d3b52; border-radius: 9px; padding: 0 34px 0 11px; background: #172334; color: #e8f1ff; font: inherit; font-size: 11px; outline: none; }
.strategy2-space-controls select:focus { border-color: #54aaf7; box-shadow: 0 0 0 3px #3f9cff20; }
.strategy-active-name { display: block; max-width: 230px; overflow: hidden; border: 1px solid #2d3b52; border-radius: 9px; padding: 9px 11px; background: #172334; color: #dbeafd; font-size: 10px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.strategy2-workspace { position: relative; height: calc(100vh - 144px); min-height: 620px; overflow: hidden; border-color: #283750; background: #0d1623; box-shadow: 0 18px 45px #050a1235; }
.strategy2-toolbar { position: relative; z-index: 22; display: grid; grid-template-columns: 1fr minmax(180px, auto) 1fr; align-items: center; min-height: 54px; gap: 12px; padding: 8px 11px; box-sizing: border-box; border-bottom: 1px solid #26364c; background: #111c2b; }
.strategy2-tool-group { display: flex; align-items: center; gap: 6px; min-width: 0; }
.strategy2-tool-group:last-child { justify-content: flex-end; }
.strategy2-tool { min-height: 34px; border-radius: 8px; white-space: nowrap; }
.strategy2-tool.active { border-color: #50b5ff; background: #153f63; color: #bde3ff; box-shadow: 0 0 0 3px #3baaff18; }
.strategy2-hint { min-width: 0; overflow: hidden; color: #7288a3; font-size: 10px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.strategy2-zoom { width: 38px; color: #8da3bd; font-size: 9px; font-weight: 800; text-align: center; }
.strategy2-tool-group .compact { min-height: 31px; padding: 0 10px; font-size: 9px; }
.strategy2-scroll { position: absolute; z-index: 1; inset: 55px 0 0; overflow: auto; overscroll-behavior: contain; scrollbar-color: #36506f #111b28; scrollbar-width: thin; background: #0b1420; }
.strategy2-scroll::-webkit-scrollbar { width: 10px; height: 10px; }
.strategy2-scroll::-webkit-scrollbar-track { background: #101a28; }
.strategy2-scroll::-webkit-scrollbar-thumb { border: 2px solid #101a28; border-radius: 10px; background: #37506d; }
.strategy2-scroll::-webkit-scrollbar-corner { background: #101a28; }
.strategy2-zoom-layer { position: relative; min-width: 100%; min-height: 100%; }
.strategy2-surface { position: absolute; left: 0; top: 0; width: 1800px; height: 1100px; overflow: hidden; transform-origin: 0 0; background-color: #0d1724; background-image: radial-gradient(circle, #334760 1px, transparent 1.2px), radial-gradient(circle at 42% 38%, #18324e55, transparent 31%), radial-gradient(circle at 70% 70%, #153f3b32, transparent 27%); background-size: 22px 22px, 100% 100%, 100% 100%; }
.strategy2-surface::after { position: absolute; inset: 0; content: ""; pointer-events: none; box-shadow: inset 0 0 100px #050b132b; }
.strategy2-lines { position: absolute; z-index: 1; inset: 0; width: 1800px; height: 1100px; overflow: visible; pointer-events: none; }
.strategy2-lines path { fill: none; stroke: #5e8fbe; stroke-width: 2; stroke-linecap: round; opacity: .66; filter: drop-shadow(0 1px 2px #0008); }
.strategy2-node { --node-accent: #59acff; position: absolute; z-index: 4; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; align-content: center; width: 212px; min-height: 84px; gap: 5px 8px; border: 1px solid #30465f; border-radius: 13px; padding: 14px 15px 13px 17px; box-sizing: border-box; background: linear-gradient(145deg, #19283b 0%, #121e2e 100%); color: #edf5ff; text-align: left; box-shadow: 0 10px 26px #00000038, inset 3px 0 0 var(--node-accent); cursor: grab; touch-action: none; user-select: none; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.strategy2-node:hover { border-color: #4d6d8f; box-shadow: 0 13px 30px #00000048, inset 3px 0 0 var(--node-accent); transform: translateY(-1px); }
.strategy2-node:active { cursor: grabbing; }
.strategy2-node.selected { z-index: 6; border-color: var(--node-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--node-accent) 18%, transparent), 0 16px 36px #00000052, inset 3px 0 0 var(--node-accent); }
.strategy2-node.connecting { animation: strategyConnectPulse 1.25s ease-in-out infinite; }
.strategy2-node.core { width: 250px; min-height: 104px; border-radius: 52px; padding: 18px 28px; background: linear-gradient(135deg, #19466e, #153453 65%, #172a42); box-shadow: 0 0 0 8px #4fa9ff0b, 0 14px 34px #00000042, inset 0 0 0 1px #ffffff0a; text-align: center; }
.strategy2-node.core b, .strategy2-node.core small { text-align: center; }
.strategy2-node b, .strategy2-node small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.strategy2-node b { color: #f2f7ff; font-size: 12px; line-height: 1.35; }
.strategy2-node b[contenteditable="true"] { position: relative; z-index: 2; border-radius: 5px; cursor: text; outline: none; }
.strategy2-node b[contenteditable="true"]:focus { overflow: visible; background: #09142258; box-shadow: 0 0 0 3px #65b8ff24; white-space: normal; }
.strategy2-node small { grid-column: 1 / -1; min-height: 14px; max-height: 42px; overflow: hidden; border-radius: 5px; color: #8298b2; font-size: 9px; line-height: 1.4; white-space: normal; cursor: text; outline: none; }
.strategy2-node small[contenteditable="true"]:empty::before { content: attr(data-placeholder); color: #667d97; pointer-events: none; }
.strategy2-node small[contenteditable="true"]:focus { max-height: 72px; overflow-y: auto; padding: 3px 4px; background: #09142258; box-shadow: 0 0 0 3px #65b8ff24; }
.strategy2-node-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 5px; min-height: 23px; }
.strategy2-node-actions button { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid #304761; border-radius: 6px; padding: 0; background: #1b2d42; color: #88bde9; font-size: 10px; cursor: pointer; }
.strategy2-node-actions button:hover { border-color: var(--node-accent); color: var(--node-accent); }
.strategy2-node-actions em { margin-left: auto; border-radius: 6px; padding: 3px 6px; background: #52a8ff17; color: var(--node-accent); font-size: 8px; font-style: normal; font-weight: 800; }
.strategy2-add-child { position: absolute; z-index: 8; right: -13px; top: calc(50% - 13px); display: grid; place-items: center; width: 26px; height: 26px; border: 2px solid #142234; border-radius: 50%; padding: 0; background: var(--node-accent); color: #081321; font-size: 16px; font-weight: 800; line-height: 1; box-shadow: 0 5px 14px #0007; cursor: pointer; opacity: .96; transition: transform .16s ease, box-shadow .16s ease; }
.strategy2-add-child:hover { transform: scale(1.12); box-shadow: 0 0 0 4px color-mix(in srgb, var(--node-accent) 21%, transparent), 0 5px 14px #0007; }
.strategy2-node.core .strategy2-add-child { right: 14px; top: auto; bottom: -13px; }
.strategy2-port { position: absolute; left: -5px; top: calc(50% - 5px); width: 9px; height: 9px; border: 2px solid #142234; border-radius: 50%; background: var(--node-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--node-accent) 18%, transparent); }
.strategy2-node.color-blue { --node-accent: #56aaff; }
.strategy2-node.color-cyan { --node-accent: #42c8e8; }
.strategy2-node.color-violet { --node-accent: #a385ff; }
.strategy2-node.color-teal { --node-accent: #43d2b4; }
.strategy2-node.color-amber { --node-accent: #f1b950; }
.strategy2-node.color-rose { --node-accent: #f47ca3; }
@keyframes strategyConnectPulse { 0%, 100% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--node-accent) 20%, transparent), 0 12px 30px #0006; } 50% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--node-accent) 8%, transparent), 0 12px 30px #0006; } }
.strategy2-empty { position: absolute; z-index: 3; left: 50%; top: 45%; display: grid; justify-items: center; width: min(410px, calc(100% - 40px)); transform: translate(-50%, -50%); color: #8399b3; text-align: center; pointer-events: none; }
.strategy2-empty.standalone { inset: 55px 0 0; width: auto; transform: none; place-content: center; }
.strategy2-empty > span { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 10px; border: 1px solid #315274; border-radius: 14px; background: #162a40; color: #5bb2ff; font-size: 19px; box-shadow: 0 12px 28px #0003; }
.strategy2-empty h2 { margin: 0; color: #e6f1ff; font-size: 17px; }
.strategy2-empty p { max-width: 380px; margin: 7px 0 15px; font-size: 11px; line-height: 1.55; }
.strategy2-empty button { pointer-events: auto; }
.strategy2-inspector { position: absolute; z-index: 25; top: 68px; right: 14px; display: flex; flex-direction: column; width: min(318px, calc(100% - 28px)); max-height: calc(100% - 82px); overflow: hidden; border: 1px solid #32445c; border-radius: 13px; background: #111c2bf2; box-shadow: 0 24px 60px #0308108a; backdrop-filter: blur(16px); }
.strategy-library { position: absolute; z-index: 30; top: 68px; left: 14px; display: flex; flex-direction: column; width: min(330px, calc(100% - 28px)); max-height: calc(100% - 82px); overflow: hidden; border: 1px solid #32445c; border-radius: 13px; background: #111c2bf5; box-shadow: 0 24px 60px #0308108a; backdrop-filter: blur(16px); }
.strategy-library > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px; border-bottom: 1px solid #29384d; }
.strategy-library > header span, .strategy-library > header b { display: block; }
.strategy-library > header span { margin-bottom: 3px; color: #5baff8; font-size: 8px; font-weight: 850; letter-spacing: .1em; }
.strategy-library > header b { color: #edf5ff; font-size: 11px; }
.strategy-library-create { width: calc(100% - 28px); min-height: 35px; margin: 13px 14px 8px; }
.strategy-library-list { display: grid; gap: 7px; padding: 6px 14px 14px; overflow-y: auto; overscroll-behavior: contain; }
.strategy-library-item { display: flex; align-items: center; gap: 8px; min-width: 0; border: 1px solid #2b3d54; border-radius: 9px; padding: 10px; background: #162334; cursor: pointer; transition: border-color .16s ease, background .16s ease; }
.strategy-library-item:hover, .strategy-library-item.active { border-color: #57aefb; background: #193350; }
.strategy-library-item > div:first-child { min-width: 0; flex: 1; }
.strategy-library-item b, .strategy-library-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.strategy-library-item b { color: #e9f3ff; font-size: 10px; }
.strategy-library-item small { margin-top: 3px; color: #7f97b2; font-size: 9px; }
.strategy-library-actions { display: flex; gap: 2px; }
.strategy-library-actions .icon-btn { width: 27px; height: 27px; font-size: 12px; }
.strategy-library-empty { padding: 23px 10px; color: #7f97b2; font-size: 10px; text-align: center; }
.strategy2-inspector > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 14px; border-bottom: 1px solid #29384d; }
.strategy2-inspector > header div { min-width: 0; }
.strategy2-inspector > header span, .strategy2-inspector > header b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.strategy2-inspector > header span { margin-bottom: 3px; color: #5baff8; font-size: 8px; font-weight: 850; letter-spacing: .1em; }
.strategy2-inspector > header b { color: #edf5ff; font-size: 11px; }
.strategy2-inspector-scroll { display: grid; gap: 13px; padding: 14px; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #3a536f transparent; scrollbar-width: thin; }
.strategy2-direct-edit-hint { margin: 0; border: 1px solid #2a4058; border-radius: 7px; padding: 8px 9px; background: #142438; color: #829ab5; font-size: 9px; line-height: 1.45; }
.strategy2-inspector-scroll > label { display: grid; gap: 6px; color: #90a4bc; font-size: 9px; font-weight: 750; }
.strategy2-inspector input, .strategy2-inspector textarea { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #2e4057; border-radius: 8px; padding: 9px 10px; background: #172435; color: #e8f1fd; font: inherit; font-size: 10px; outline: none; }
.strategy2-inspector textarea { min-height: 85px; resize: vertical; line-height: 1.45; }
.strategy2-inspector input:focus, .strategy2-inspector textarea:focus { border-color: #54aaf7; box-shadow: 0 0 0 3px #3f9cff1c; }
.strategy2-colors { display: flex; align-items: center; gap: 8px; }
.strategy2-colors > span { margin-right: auto; color: #90a4bc; font-size: 9px; font-weight: 750; }
.strategy2-colors button { --swatch: #56aaff; width: 18px; height: 18px; border: 2px solid transparent; border-radius: 50%; padding: 0; background: var(--swatch); box-shadow: 0 0 0 1px #ffffff10; cursor: pointer; }
.strategy2-colors button.active { border-color: #eff7ff; box-shadow: 0 0 0 3px #ffffff18; }
.strategy2-colors .color-cyan { --swatch: #42c8e8; }
.strategy2-colors .color-violet { --swatch: #a385ff; }
.strategy2-colors .color-teal { --swatch: #43d2b4; }
.strategy2-colors .color-amber { --swatch: #f1b950; }
.strategy2-colors .color-rose { --swatch: #f47ca3; }
.strategy2-inspector-section { display: grid; gap: 8px; padding-top: 12px; border-top: 1px solid #29384d; }
.strategy2-section-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.strategy2-section-title b { color: #dce9f8; font-size: 10px; }
.strategy2-section-title .text-btn { border: 0; padding: 3px; background: transparent; color: #63baff; font-size: 9px; font-weight: 750; cursor: pointer; }
.strategy2-inspector-section > p { margin: 0; color: #667d98; font-size: 9px; }
.strategy2-link-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; }
.strategy2-link-form input { min-width: 0; }
.strategy2-link-form button { min-height: 34px; padding-inline: 9px; font-size: 9px; }
.strategy2-inspector-section ul { display: grid; gap: 5px; max-height: 145px; margin: 0; padding: 0; overflow-y: auto; list-style: none; }
.strategy2-inspector-section li { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 7px; min-width: 0; padding: 7px 8px; border: 1px solid #293b52; border-radius: 7px; background: #162334; }
.strategy2-inspector-section li > span { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 6px; background: #223751; color: #6bbaff; font-size: 9px; }
.strategy2-inspector-section li > b, .strategy2-inspector-section li > small, .strategy2-inspector-section li > a { min-width: 0; overflow: hidden; color: #dce8f7; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.strategy2-inspector-section li > a { text-decoration: none; }
.strategy2-inspector-section li > a:hover { color: #66baff; text-decoration: underline; }
.strategy2-inspector-section li > small { color: #758ba5; }
.strategy2-inspector-section li > button { border: 0; background: transparent; color: #8195ac; cursor: pointer; }
.strategy2-inspector-section li > button:hover { color: #ff8997; }
.strategy2-delete { width: 100%; min-height: 34px; }

body.light-theme .strategy2-workspace { border-color: #d4dfec; background: #f5f8fc; box-shadow: 0 18px 45px #4a658116; }
body.light-theme .strategy2-header h1 { color: #172b43; }
body.light-theme .strategy2-space-controls select { border-color: #cbd8e6; background: #f7faff; color: #31475f; }
body.light-theme .strategy-active-name { border-color: #cbd8e6; background: #f7faff; color: #31475f; }
body.light-theme .strategy2-toolbar { border-color: #d7e1ec; background: #f7faff; }
body.light-theme .strategy2-hint, body.light-theme .strategy2-zoom { color: #617892; }
body.light-theme .strategy2-scroll { scrollbar-color: #aec0d4 #e8eff7; background: #eaf1f8; }
body.light-theme .strategy2-surface { background-color: #eef4fa; background-image: radial-gradient(circle, #b7c8da 1px, transparent 1.2px), radial-gradient(circle at 42% 38%, #cde6ff70, transparent 31%), radial-gradient(circle at 70% 70%, #c7eee570, transparent 27%); }
body.light-theme .strategy2-lines path { stroke: #7599bc; filter: none; }
body.light-theme .strategy2-node { border-color: #b8cada; background: linear-gradient(145deg, #ffffff, #edf3f9); color: #21374f; box-shadow: 0 10px 24px #4b66801c, inset 3px 0 0 var(--node-accent); }
body.light-theme .strategy2-node:hover { border-color: #8da9c4; box-shadow: 0 13px 27px #4b668028, inset 3px 0 0 var(--node-accent); }
body.light-theme .strategy2-node b { color: #21374f; }
body.light-theme .strategy2-node small { color: #637c96; }
body.light-theme .strategy2-node small[contenteditable="true"]:empty::before { color: #8094a9; }
body.light-theme .strategy2-node-actions button { border-color: #c4d5e5; background: #e7f1fa; color: #3b78a8; }
body.light-theme .strategy2-node.core { background: linear-gradient(135deg, #e4f2ff, #d9ebfb 65%, #e6f1fb); }
body.light-theme .strategy2-port { border-color: #edf3f9; }
body.light-theme .strategy2-add-child { border-color: #edf3f9; color: #16334d; }
body.light-theme .strategy2-empty h2 { color: #203750; }
body.light-theme .strategy2-empty > span { border-color: #bfd2e4; background: #e2f0fd; }
body.light-theme .strategy2-inspector { border-color: #c7d6e5; background: #f8fbfef2; box-shadow: 0 24px 60px #38536e2d; }
body.light-theme .strategy-library { border-color: #c7d6e5; background: #f8fbfef2; box-shadow: 0 24px 60px #38536e2d; }
body.light-theme .strategy2-inspector > header, body.light-theme .strategy2-inspector-section { border-color: #d8e2ed; }
body.light-theme .strategy-library > header { border-color: #d8e2ed; }
body.light-theme .strategy2-inspector > header b, body.light-theme .strategy2-section-title b { color: #263d56; }
body.light-theme .strategy-library > header b, body.light-theme .strategy-library-item b { color: #263d56; }
body.light-theme .strategy-library-item { border-color: #d2deea; background: #edf3f9; }
body.light-theme .strategy-library-item:hover, body.light-theme .strategy-library-item.active { border-color: #7eb5e5; background: #e2f0fc; }
body.light-theme .strategy2-inspector input, body.light-theme .strategy2-inspector textarea { border-color: #cedbe8; background: #edf3f9; color: #2d445d; }
body.light-theme .strategy2-inspector-section li { border-color: #d2deea; background: #edf3f9; }
body.light-theme .strategy2-inspector-section li > b { color: #2d445d; }
body.light-theme .strategy2-inspector-section li > a { color: #2f6f9f; }
body.light-theme .strategy2-direct-edit-hint { border-color: #cedde9; background: #edf5fb; color: #58708a; }

@media (max-width: 900px) {
  .strategy2-header { align-items: stretch; flex-direction: column; }
  .strategy2-space-controls { overflow-x: auto; padding-bottom: 2px; }
  .strategy2-space-controls select { flex: 1; min-width: 140px; }
  .strategy2-workspace { height: calc(100vh - 210px); min-height: 560px; }
  .strategy2-toolbar { grid-template-columns: 1fr auto; }
  .strategy2-hint { display: none; }
  .strategy2-tool-group:first-child { overflow-x: auto; }
}
@media (max-width: 600px) {
  .strategy2-workspace { height: calc(100vh - 200px); min-height: 520px; }
  .strategy2-toolbar { gap: 6px; padding: 7px; }
  .strategy2-tool-group:first-child .strategy2-tool { padding-inline: 9px; font-size: 9px; }
  .strategy2-tool-group:last-child .compact, .strategy2-zoom { display: none; }
  .strategy2-inspector { top: 64px; right: 8px; width: calc(100% - 16px); max-height: calc(100% - 72px); }
  .strategy-library { top: 64px; left: 8px; width: calc(100% - 16px); max-height: calc(100% - 72px); }
}

/* L'espace Stratégie est une zone de travail dédiée, sans barre globale. */
body.strategy-focus .topbar { display: none; }
body.strategy-focus .page { max-width: none; padding: 16px 18px; }
body.strategy-focus .strategy2-workspace { height: calc(100vh - 84px); min-height: 700px; }
body.strategy-focus .strategy2-header { margin-bottom: 10px; }
body.strategy-fullscreen { overflow: hidden; }
body.strategy-fullscreen .strategy2-workspace { position: fixed; z-index: 5000; inset: 0; width: 100vw; height: 100vh !important; min-height: 0 !important; margin: 0; box-sizing: border-box; border: 0; border-radius: 0; box-shadow: none; }
body.strategy-fullscreen .strategy2-toolbar { padding-inline: 16px; }
body.strategy-fullscreen .strategy2-scroll { bottom: 0; }
body.strategy-fullscreen .modal-layer { z-index: 6000; }
.strategy2-fullscreen-button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-width: 94px; }
@media (max-width: 800px) { body.strategy-focus .page { padding: 12px; } body.strategy-focus .strategy2-workspace { height: calc(100vh - 78px); min-height: 540px; } }
@media (max-width: 600px) { .strategy2-fullscreen-button { display: inline-flex !important; min-width: 78px; padding-inline: 8px !important; font-size: 8px !important; } }

/* Dashboard : synthèse de l'activité commerciale, projets et finances. */
.dashboard-welcome { margin: 4px 0 0; color: #8da1b9; font-size: 11px; }
.dashboard-recap-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 16px; margin: 16px 0; }
.dashboard-finance-recap, .dashboard-project-recap { min-width: 0; overflow: hidden; }
.dashboard-finance-recap .card-head, .dashboard-project-recap .card-head { padding: 16px 19px; border-bottom: 1px solid #273249; }
.dashboard-finance-recap .card-head h2, .dashboard-project-recap .card-head h2 { margin-top: 3px; }
.dashboard-finance-values, .dashboard-project-values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.dashboard-finance-values > div, .dashboard-project-values > div { display: grid; gap: 6px; min-width: 0; padding: 16px 18px; border-right: 1px solid #273249; }
.dashboard-finance-values > div:last-child, .dashboard-project-values > div:last-child { border-right: 0; }
.dashboard-finance-values span, .dashboard-project-values span { overflow: hidden; color: #849ab4; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-finance-values b { overflow: hidden; color: #e9f3ff; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-finance-values b.income { color: #62d4b8; }
.dashboard-finance-values b.expense { color: #ffa0af; }
.dashboard-project-values strong { overflow: hidden; color: #e9f3ff; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
body.light-theme .dashboard-welcome { color: #5d748d; }
body.light-theme .dashboard-finance-recap .card-head, body.light-theme .dashboard-project-recap .card-head, body.light-theme .dashboard-finance-values > div, body.light-theme .dashboard-project-values > div { border-color: #d8e2ee; }
body.light-theme .dashboard-finance-values b, body.light-theme .dashboard-project-values strong { color: #243a53; }
@media (max-width: 850px) { .dashboard-recap-grid { grid-template-columns: 1fr; } }
@media (max-width: 540px) { .dashboard-finance-values, .dashboard-project-values { grid-template-columns: 1fr 1fr; } .dashboard-finance-values > div, .dashboard-project-values > div { border-bottom: 1px solid #273249; } .dashboard-finance-values > div:last-child, .dashboard-project-values > div:last-child { border-bottom: 0; } }

/* Finances : lecture rapide, sans chiffres décoratifs. */
.finance-heading .muted { margin: 5px 0 0; font-size: 11px; }
.finance-kpis { display: grid; grid-template-columns: repeat(5, minmax(155px, 1fr)); gap: 13px; margin-bottom: 16px; overflow-x: auto; padding-bottom: 2px; }
.finance-kpi { position: relative; display: grid; min-width: 155px; gap: 7px; overflow: hidden; padding: 16px 17px; }
.finance-kpi::before { position: absolute; left: 0; top: 0; width: 3px; height: 100%; content: ""; background: #4ca8ff; }
.finance-kpi.expense::before { background: #ed7c91; }
.finance-kpi.result::before { background: #55d0ae; }
.finance-kpi.forecast::before { background: #b28aff; }
.finance-kpi.recurring::before { background: #f2bb56; }
.finance-kpi span { color: #8da1b9; font-size: 10px; font-weight: 700; }
.finance-kpi b { color: #eff6ff; font-size: 20px; letter-spacing: -.03em; white-space: nowrap; }
.finance-kpi small { min-height: 15px; color: #6f87a3; font-size: 9px; line-height: 1.35; }
.finance-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .85fr); gap: 16px; margin-bottom: 16px; align-items: start; }
.finance-chart-card, .finance-form-card, .finance-table-card, .finance-project-card { min-width: 0; overflow: hidden; }
.finance-chart-card .card-head, .finance-form-card .card-head, .finance-table-card .card-head, .finance-project-card .card-head { padding: 17px 19px; border-bottom: 1px solid #273249; }
.finance-legend { display: flex; align-items: center; gap: 7px; color: #859ab4; font-size: 9px; white-space: nowrap; }
.finance-legend i { width: 7px; height: 7px; border-radius: 50%; background: #52b1ff; }
.finance-legend i + i { margin-left: 5px; background: #f1849a; }
.finance-chart { display: flex; align-items: flex-end; justify-content: space-around; gap: 12px; min-height: 178px; padding: 22px 25px 15px; background: linear-gradient(180deg, #142235 0%, #111d2d 100%); }
.finance-bar-group { display: grid; justify-items: center; gap: 8px; min-width: 35px; }
.finance-bars { display: flex; align-items: end; justify-content: center; gap: 5px; height: 120px; }
.finance-bars span { display: block; width: 13px; min-height: 5px; border-radius: 5px 5px 2px 2px; box-shadow: 0 4px 10px #0003; }
.finance-bars .income { background: linear-gradient(180deg, #63c5ff, #3d8ee9); }
.finance-bars .expense { background: linear-gradient(180deg, #ff9caf, #d85e7a); }
.finance-bar-group b { color: #8095ad; font-size: 9px; font-weight: 700; text-transform: capitalize; }
.finance-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 17px; }
.finance-form .field { display: grid; gap: 6px; min-width: 0; }
.finance-form label { color: #9caec5; font-size: 10px; font-weight: 750; }
.finance-form input, .finance-form select { width: 100%; min-width: 0; min-height: 38px; box-sizing: border-box; border: 1px solid #2d3d54; border-radius: 8px; padding: 0 10px; background: #172435; color: #e8f1fb; font: inherit; font-size: 10px; outline: none; }
.finance-form input:focus, .finance-form select:focus { border-color: #54aaf7; box-shadow: 0 0 0 3px #3f9cff1c; }
.finance-form .field-full { grid-column: 1 / -1; }
.finance-form > .primary { grid-column: 1 / -1; min-height: 39px; }
.finance-type-switch { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.finance-type-switch label { display: block; cursor: pointer; }
.finance-type-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.finance-type-switch span { display: block; border: 1px solid #2d3d54; border-radius: 8px; padding: 9px; color: #8fa2b9; text-align: center; transition: .16s ease; }
.finance-type-switch input:checked + span { border-color: #4eaefd; background: #1b4165; color: #d9eeff; box-shadow: inset 0 0 0 1px #59b4ff25; }
.finance-type-switch label:last-child input:checked + span { border-color: #d9768f; background: #4b2938; color: #ffdbe2; }
.finance-table-card, .finance-project-card { margin-bottom: 16px; }
.finance-table { min-width: 790px; }
.finance-project-table { min-width: 760px; }
.finance-type { display: inline-flex; align-items: center; gap: 5px; border-radius: 6px; padding: 5px 7px; background: #1c3b58; color: #90d2ff; font-size: 9px; font-weight: 750; white-space: nowrap; }
.finance-type.expense { background: #422938; color: #ffb6c5; }
.finance-amount { font-weight: 800; white-space: nowrap; }
.finance-amount.income { color: #66d8bc; }
.finance-amount.expense { color: #ff9caf; }
.finance-table td small, .finance-project-table td small { display: block; max-width: 210px; margin-top: 3px; overflow: hidden; color: #8297af; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.finance-empty { display: grid; justify-items: center; gap: 7px; padding: 42px 20px; color: #859ab3; text-align: center; }
.finance-empty.compact { padding-block: 30px; }
.finance-empty > span { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 10px; background: #18304a; color: #63b8ff; font-size: 16px; }
.finance-empty b { color: #dceafb; font-size: 12px; }
.finance-empty p { max-width: 350px; margin: 0; font-size: 10px; line-height: 1.5; }

body.light-theme .finance-kpi { border-color: #d3dfeb; background: #fff; }
body.light-theme .finance-kpi b { color: #21374f; }
body.light-theme .finance-kpi span { color: #617993; }
body.light-theme .finance-chart-card .card-head, body.light-theme .finance-form-card .card-head, body.light-theme .finance-table-card .card-head, body.light-theme .finance-project-card .card-head { border-color: #d8e2ee; }
body.light-theme .finance-chart { background: linear-gradient(180deg, #eef5fb 0%, #f8fbfe 100%); }
body.light-theme .finance-form input, body.light-theme .finance-form select { border-color: #cedbe8; background: #edf3f9; color: #31475f; }
body.light-theme .finance-form label { color: #536a83; }
body.light-theme .finance-type-switch span { border-color: #cfdae7; background: #f1f6fb; color: #5d748e; }
body.light-theme .finance-type-switch input:checked + span { background: #e3f1fe; }
body.light-theme .finance-type-switch label:last-child input:checked + span { background: #ffedf1; }
body.light-theme .finance-empty b { color: #29405a; }

@media (max-width: 1080px) { .finance-kpis { grid-template-columns: repeat(3, minmax(175px, 1fr)); } .finance-layout { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .finance-kpis { grid-template-columns: repeat(5, minmax(170px, 1fr)); } .finance-chart { gap: 5px; padding-inline: 12px; } .finance-legend { display: none; } .finance-form { grid-template-columns: 1fr; } .finance-form .field-full, .finance-form > .primary, .finance-type-switch { grid-column: auto; } }
