:root {
  --bg: #f6f7fb;
  --surface: #ffffff;
  --surface-soft: #f2f4f8;
  --line: #e4e7ee;
  --line-strong: #d5dae5;
  --ink: #171821;
  --muted: #73788a;
  --accent: #171821;
  --podca: #ffd7d1;
  --podca-strong: #f4a6b9;
  --green: #22c55e;
  --blue: #3b82f6;
  --red: #ef4444;
  --shadow: 0 16px 40px rgba(17, 24, 39, .10);
  --radius: 18px;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, Helvetica, sans-serif;
  font-size: 14px;
}
button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }

.app-frame {
  display: grid;
  grid-template-columns: 245px minmax(0, 1fr);
  min-height: 100vh;
}

.main-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  background: var(--surface);
  border-right: 1px solid var(--line);
  padding: 18px 14px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.brand-block {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 6px 12px;
  font-weight: 800;
  font-size: 16px;
}
.brand-logo { width: 120px; height: auto; display: block; }
.brand-block span { color: var(--muted); font-weight: 700; }

.workspace-card {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(135deg, #fff, #fff5f3);
}
.workspace-dot {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: var(--podca-strong);
  color: white;
  font-size: 13px;
}
.workspace-card strong, .workspace-card small { display: block; }
.workspace-card small { color: var(--muted); margin-top: 2px; }

.side-nav { display: grid; gap: 4px; }
.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  border: 0;
  background: transparent;
  color: #3d4252;
  border-radius: 12px;
  padding: 10px 12px;
  cursor: pointer;
  text-align: left;
  font-weight: 700;
}
.nav-item span { width: 18px; color: var(--muted); }
.nav-item:hover { background: var(--surface-soft); }
.nav-item.active { background: #171821; color: #fff; }
.nav-item.active span { color: #fff; }

.nav-label {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.channel-list {
  display: grid;
  gap: 8px;
  padding: 4px 8px;
}
.channel-list span {
  color: #596070;
  font-size: 13px;
}
.sidebar-footer {
  margin-top: auto;
  display: grid;
  gap: 8px;
}
.sidebar-footer a, .logout-form button {
  display: block;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 9px 11px;
  background: white;
  cursor: pointer;
  text-align: center;
  color: var(--muted);
}
.logout-form { margin: 0; }

.app-main { min-width: 0; }
.planner-page { padding: 22px; }
.planner-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 16px;
}
.breadcrumb { color: var(--muted); margin: 0 0 6px; }
h1, h2 { margin: 0; line-height: 1.1; letter-spacing: -.03em; }
h1 { font-size: clamp(28px, 4vw, 44px); }
h2 { font-size: 24px; }
.eyebrow {
  margin: 0 0 7px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: 11px;
  font-weight: 800;
}
.hint { color: var(--muted); margin: 0; }

.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
.search-box {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: min(360px, 48vw);
  background: white;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0 12px;
  color: var(--muted);
}
.search-box input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  padding: 11px 0;
}

.primary-btn, .ghost-btn, .danger-btn, .icon-btn, .secondary-btn {
  border: 0;
  border-radius: 999px;
  padding: 11px 16px;
  cursor: pointer;
  font-weight: 800;
}
.primary-btn { background: var(--accent); color: white; }
.ghost-btn, .secondary-btn { background: white; color: var(--ink); border: 1px solid var(--line); }
.danger-btn { background: var(--red); color: white; }
.icon-btn {
  width: 38px;
  height: 38px;
  padding: 0;
  display: grid;
  place-items: center;
  background: var(--surface-soft);
  font-size: 22px;
}

.filters-bar {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
}
label { display: grid; gap: 6px; font-weight: 800; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px;
  background: white;
  color: var(--ink);
  outline: 0;
}
input:focus, select:focus, textarea:focus { border-color: #171821; box-shadow: 0 0 0 4px rgba(23,24,33,.08); }
textarea { resize: vertical; }

.content-panel {
  background: white;
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 14px;
  box-shadow: var(--shadow);
  min-height: calc(100vh - 130px);
}
.hidden { display: none !important; }
.panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 16px;
  padding: 4px 6px;
}

/* FullCalendar, façon dashboard éditorial */
.fc { font-family: inherit; }
.fc .fc-toolbar { align-items: center; gap: 10px; }
.fc .fc-toolbar-title { font-size: 24px; letter-spacing: -.02em; }
.fc .fc-button-primary {
  background: var(--surface-soft);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 999px;
  text-transform: capitalize;
  box-shadow: none !important;
}
.fc .fc-button-primary:not(:disabled):hover,
.fc .fc-button-primary:not(:disabled).fc-button-active {
  background: #171821;
  color: white;
  border-color: #171821;
}
.fc-theme-standard td, .fc-theme-standard th, .fc-theme-standard .fc-scrollgrid { border-color: var(--line); }
.fc .fc-col-header-cell { background: #f8f9fc; padding: 10px 0; color: var(--muted); }
.fc .fc-daygrid-day-frame { min-height: 150px; background: #fbfcfe; }
.fc .fc-day-today { background: #fff4f2 !important; }
.fc .fc-daygrid-day-number { color: var(--muted); padding: 8px; font-weight: 800; }
.fc .fc-daygrid-event {
  border: 0;
  background: transparent !important;
  margin: 3px 6px;
  overflow: visible;
  cursor: grab;
}
.fc .fc-daygrid-event:active { cursor: grabbing; }
.fc-event-main { color: var(--ink) !important; }
.fc-event.is-file-hover .calendar-post-card { outline: 3px dashed var(--podca-strong); outline-offset: 3px; }

.calendar-post-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(17, 24, 39, .09);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.calendar-post-card:hover { transform: translateY(-1px); box-shadow: 0 14px 30px rgba(17, 24, 39, .12); border-color: var(--line-strong); }
.card-media {
  height: 76px;
  background: linear-gradient(135deg, var(--podca), #f7f9ff);
  position: relative;
  display: grid;
  place-items: center;
  color: rgba(23,24,33,.65);
  font-weight: 900;
}
.card-media img, .card-media video { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-chip, .media-placeholder {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(23,24,33,.85);
  color: white;
}
.card-body { padding: 9px; display: grid; gap: 6px; }
.card-title {
  display: block;
  font-size: 13px;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.card-meta { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--surface-soft);
  color: #4b5563;
  font-size: 11px;
  font-weight: 800;
}
.status-dot { width: 8px; height: 8px; border-radius: 999px; display: inline-block; }
.avatar-mini {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  margin-left: auto;
  background: #171821;
  color: white;
  font-size: 11px;
  font-weight: 900;
}

/* Board */
.kanban-board {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(260px, 1fr);
  gap: 14px;
  overflow-x: auto;
  padding-bottom: 12px;
}
.kanban-column {
  background: #f6f7fb;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 10px;
  min-height: 520px;
}
.kanban-column.drag-over { outline: 3px dashed var(--podca-strong); outline-offset: -6px; }
.kanban-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 4px 12px;
  font-weight: 900;
}
.kanban-count {
  background: white;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 2px 7px;
  font-size: 12px;
  color: var(--muted);
}
.board-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 10px;
  cursor: grab;
  box-shadow: 0 8px 20px rgba(17, 24, 39, .07);
}
.board-card:active { cursor: grabbing; }
.board-card .card-media { height: 112px; }
.board-card .card-body { padding: 11px; }
.board-card.dragging { opacity: .5; transform: rotate(1deg); }

/* Gantt */
.gantt { overflow-x: auto; display: grid; gap: 8px; padding-bottom: 14px; }
.gantt-head, .gantt-row { display: grid; grid-template-columns: 280px minmax(900px, 1fr); gap: 14px; align-items: center; }
.gantt-scale {
  position: relative;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: repeating-linear-gradient(90deg, #f8f9fc 0 1px, white 1px calc(100% / 31));
}
.gantt-scale span {
  position: absolute;
  top: 11px;
  transform: translateX(-50%);
  color: var(--muted);
  font-weight: 800;
  font-size: 12px;
}
.gantt-row { min-height: 58px; }
.gantt-label { display: grid; min-width: 0; }
.gantt-label strong, .gantt-label small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gantt-label small { color: var(--muted); margin-top: 3px; }
.gantt-line {
  position: relative;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8f9fc;
  overflow: hidden;
}
.gantt-bar {
  position: absolute;
  top: 5px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  color: white;
  font-weight: 900;
  font-size: 12px;
  padding: 0 28px;
  text-align: left;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  cursor: grab;
  box-shadow: 0 8px 18px rgba(17,24,39,.18);
}
.gantt-bar:active { cursor: grabbing; }
.gantt-handle {
  position: absolute;
  top: 0;
  height: 100%;
  width: 18px;
  background: rgba(255,255,255,.25);
  cursor: ew-resize;
}
.gantt-handle.left { left: 0; border-radius: 999px 0 0 999px; }
.gantt-handle.right { right: 0; border-radius: 0 999px 999px 0; }
.gantt-media-badge { opacity: .95; }
.empty-state {
  border-radius: 18px;
  border: 1px dashed var(--line-strong);
  background: #f8f9fc;
  color: var(--muted);
  padding: 28px;
  text-align: center;
}

/* Modal */
.modal {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: rgba(17, 24, 39, .46);
  backdrop-filter: blur(4px);
  display: grid;
  place-items: center;
  padding: 20px;
}
.modal-card {
  width: min(860px, 100%);
  max-height: 92vh;
  overflow: auto;
  background: white;
  border-radius: 26px;
  border: 1px solid var(--line);
  box-shadow: 0 30px 90px rgba(17, 24, 39, .3);
  padding: 18px;
}
.modal-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 14px; }
.event-form { display: grid; gap: 12px; }
.two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.modal-actions { display: flex; justify-content: space-between; gap: 10px; align-items: center; }

.drop-zone {
  position: relative;
  min-height: 116px;
  display: grid;
  place-items: center;
  text-align: center;
  border: 2px dashed var(--line-strong);
  border-radius: 18px;
  background: #fafbff;
  color: var(--muted);
  cursor: pointer;
}
.drop-zone strong { display: block; color: var(--ink); margin-bottom: 4px; }
.drop-zone input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}
.drop-zone.drag-over { border-color: var(--podca-strong); background: #fff3f1; }
.selected-files {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.file-chip {
  border: 1px solid var(--line);
  background: white;
  border-radius: 999px;
  padding: 6px 10px;
  color: var(--muted);
}
.media-preview, .media-library {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 12px;
}
.media-tile {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: white;
}
.media-tile img, .media-tile video { width: 100%; height: 130px; object-fit: cover; display: block; background: #111; }
.media-meta, .file-tile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px;
  font-size: 12px;
}
.media-meta span, .file-tile a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asset-delete {
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 999px;
  background: var(--red);
  color: white;
  cursor: pointer;
  flex: 0 0 auto;
}
.quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.quick-actions button {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  padding: 7px 11px;
  cursor: pointer;
  color: #4b5563;
  font-weight: 800;
}

.team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.team-card {
  display: flex;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  padding: 14px;
}
.avatar {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--podca);
  font-weight: 900;
}
.team-card strong, .team-card small { display: block; }
.team-card small { color: var(--muted); margin-top: 3px; }

/* Login */
.login-body {
  min-height: 100vh;
  background: radial-gradient(circle at 35% 15%, #fff0ed, transparent 36rem), #f6f7fb;
  display: grid;
  place-items: center;
  padding: 20px;
}
.login-shell {
  width: min(960px, 100%);
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 18px;
  align-items: stretch;
}
.login-visual, .login-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 28px;
  padding: 28px;
  box-shadow: var(--shadow);
}
.login-visual {
  background: linear-gradient(135deg, white, #fff0ed);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.login-logo { width: 180px; height: auto; margin-bottom: 32px; }
.login-visual h1 { font-size: clamp(36px, 6vw, 64px); max-width: 620px; }
.login-visual p { color: var(--muted); font-size: 17px; max-width: 480px; }
.login-form { display: grid; gap: 14px; }
.login-card h2 { margin-bottom: 20px; }
.alert {
  background: #fff1f1;
  border: 1px solid #fecaca;
  color: #991b1b;
  border-radius: 14px;
  padding: 10px;
  margin-bottom: 14px;
}

@media (max-width: 980px) {
  .app-frame { grid-template-columns: 1fr; }
  .main-sidebar { position: static; height: auto; }
  .planner-header { flex-direction: column; }
  .header-actions, .search-box { width: 100%; min-width: 0; }
  .filters-bar { grid-template-columns: 1fr; }
  .login-shell { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .planner-page { padding: 12px; }
  .two-cols { grid-template-columns: 1fr; }
  .fc .fc-toolbar { flex-direction: column; }
}

/* V4 - suivi, étapes et informations de production */
.filters-bar { grid-template-columns: repeat(4, minmax(150px, 1fr)); }
.modal-card-wide { width: min(1120px, 100%); }
.field-help { color: var(--muted); font-weight: 500; }
.form-section {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
}
.form-section summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 900;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: linear-gradient(135deg, #fff, #fff7f6);
}
.form-section summary::-webkit-details-marker { display: none; }
.form-section summary::after {
  content: '⌄';
  color: var(--muted);
  transition: transform .18s ease;
}
.form-section[open] summary::after { transform: rotate(180deg); }
.form-section-body {
  display: grid;
  gap: 12px;
  padding: 14px;
}
.two-cols-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.form-section textarea { min-height: 96px; }
select[multiple] {
  min-height: 118px;
  border-radius: 14px;
}
.progress-box {
  display: grid;
  grid-template-columns: minmax(160px, 220px) minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  border: 1px solid var(--line);
  background: #fafbff;
  border-radius: 16px;
  padding: 12px;
}
.progress-box small { display: block; color: var(--muted); margin-top: 3px; }
.progress-track, .mini-progress {
  overflow: hidden;
  height: 9px;
  border-radius: 999px;
  background: #e8ebf2;
}
.progress-track span, .mini-progress span {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #f4a6b9, #171821);
  transition: width .2s ease;
}
.mini-progress {
  height: 6px;
  margin-top: 8px;
}
.muted-progress span { background: #d6dae4; }
.empty-inline {
  margin: 0;
  border: 1px dashed var(--line-strong);
  border-radius: 16px;
  padding: 16px;
  color: var(--muted);
  background: #fafbff;
}
.steps-list, .activity-list, .tracking-timeline {
  display: grid;
  gap: 10px;
}
.step-row {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr) 140px 34px;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 10px;
  background: #fff;
}
.step-dot {
  width: 11px;
  height: 11px;
  border-radius: 999px;
}
.step-main strong, .step-main small { display: block; }
.step-main small, .step-main p { color: var(--muted); margin: 2px 0 0; }
.step-status-select { padding: 8px; }
.step-delete {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  background: #fff1f1;
  color: var(--red);
  font-size: 18px;
  cursor: pointer;
}
.new-step-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px 150px auto;
  gap: 8px;
  align-items: center;
}
.new-activity-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}
.activity-entry, .tracking-entry {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 11px;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  background: #fff;
}
.tracking-entry { cursor: pointer; }
.tracking-entry:hover { border-color: var(--line-strong); box-shadow: 0 10px 24px rgba(17, 24, 39, .06); }
.activity-avatar {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--podca);
  font-weight: 900;
}
.activity-entry p, .tracking-entry p { margin: 4px 0; color: #414756; }
.activity-entry small, .tracking-entry small { color: var(--muted); }
.card-title-row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: flex-start;
}
.card-topic, .last-activity {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.25;
}
.priority-chip {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 2px 7px;
  font-size: 10px;
  font-weight: 900;
  border: 1px solid var(--line);
  color: #4b5563;
  background: #fff;
}
.priority-chip.importante { color: #92400e; background: #fffbeb; border-color: #fde68a; }
.priority-chip.urgente { color: #991b1b; background: #fff1f1; border-color: #fecaca; }
.priority-chip.basse { color: #475569; background: #f8fafc; }

@media (max-width: 1100px) {
  .filters-bar { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .new-step-box { grid-template-columns: 1fr 1fr; }
  .new-activity-box { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .two-cols-form, .progress-box, .step-row, .new-step-box { grid-template-columns: 1fr; }
  .step-row { align-items: stretch; }
  .step-dot { display: none; }
}

/* V5 refinements */
.platform-links a {
  color: inherit;
  text-decoration: none;
  display: block;
  padding: 7px 10px;
  border-radius: 12px;
  transition: background .15s ease, transform .15s ease;
}
.platform-links a:hover {
  background: rgba(255,255,255,.75);
  transform: translateX(2px);
}
.priority-dot {
  width: 13px;
  height: 13px;
  border-radius: 999px;
  display: inline-block;
  flex: 0 0 auto;
  box-shadow: 0 0 0 3px rgba(255,255,255,.7), 0 2px 8px rgba(0,0,0,.14);
}
.priority-dot.inline {
  width: 10px;
  height: 10px;
  margin-right: 5px;
  vertical-align: -1px;
}
.date-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 6px 0 2px;
}
.date-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 999px;
  padding: 3px 7px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .02em;
}
.date-start {
  background: #dbeafe;
  color: #1d4ed8;
}
.date-publish {
  background: #ffe4e6;
  color: #be123c;
}
.avatar-stack {
  display: inline-flex;
  align-items: center;
  gap: 0;
  margin-left: auto;
}
.avatar-stack .avatar-mini {
  margin-left: -5px;
  border: 2px solid #fff;
}
.priority-select option[value="basse"] { color: #15803d; }
.priority-select option[value="normale"] { color: #a16207; }
.priority-select option[value="importante"] { color: #c2410c; }
.priority-select option[value="urgente"] { color: #b91c1c; }
.full-span {
  grid-column: 1 / -1;
}
.step-row {
  cursor: grab;
}
.step-row.dragging {
  opacity: .55;
  transform: scale(.99);
}
.step-drag {
  border: 0;
  background: rgba(15,23,42,.06);
  color: #64748b;
  border-radius: 10px;
  width: 26px;
  height: 32px;
  cursor: grab;
  font-weight: 900;
}
.activity-table-container,
.tracking-timeline {
  width: 100%;
}
.activity-scroll {
  max-height: 260px;
  overflow: auto;
  border: 1px solid rgba(15,23,42,.1);
  border-radius: 16px;
  background: rgba(255,255,255,.78);
}
.tracking-scroll {
  max-height: 66vh;
}
.activity-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.activity-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  text-align: left;
  background: #fff7f4;
  color: #475569;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(15,23,42,.08);
}
.activity-table td {
  vertical-align: top;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(15,23,42,.06);
}
.activity-table tr:hover td {
  background: rgba(255,215,209,.35);
}
.activity-table td:nth-child(2) {
  white-space: nowrap;
  color: #64748b;
}
.activity-table span {
  color: #475569;
}
.gantt-panel-head {
  align-items: flex-start;
  gap: 16px;
}
.gantt-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: end;
  margin-left: auto;
}
.gantt-controls label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #64748b;
  display: grid;
  gap: 4px;
}
.gantt-controls select,
.gantt-controls input {
  min-height: 38px;
  border: 1px solid rgba(15,23,42,.14);
  border-radius: 12px;
  padding: 6px 10px;
  background: white;
  color: #0f172a;
}
.gantt {
  overflow-x: auto;
}
.gantt-scroll {
  min-width: 1280px;
}
.gantt-scale {
  position: relative;
  min-height: 38px;
}
.gantt-scale-cell {
  position: absolute;
  top: 0;
  height: 100%;
  border-left: 1px solid rgba(15,23,42,.1);
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
  padding-left: 5px;
  white-space: nowrap;
}
.month-cell {
  background: linear-gradient(90deg, rgba(255,215,209,.35), rgba(255,255,255,0));
}
.week-cell:nth-child(odd) {
  color: #94a3b8;
}
.team-grid-extended {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}
.team-editor-card {
  align-items: flex-start;
}
.team-editor-body {
  width: 100%;
  display: grid;
  gap: 10px;
}
.team-profile-form,
.absence-form {
  display: grid;
  gap: 8px;
}
.team-profile-form label,
.absence-box {
  display: grid;
  gap: 5px;
}
.team-profile-form select,
.team-profile-form input,
.absence-form select,
.absence-form input {
  border: 1px solid rgba(15,23,42,.14);
  border-radius: 12px;
  padding: 9px 10px;
  background: #fff;
}
.absence-box {
  padding-top: 10px;
  border-top: 1px solid rgba(15,23,42,.08);
}
.absence-form {
  grid-template-columns: 1fr 1fr 1fr;
}
.absence-form .absence-note {
  grid-column: 1 / -1;
}
.absence-form .absence-add {
  grid-column: 1 / -1;
}
.absence-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.absence-chip {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  background: #eef2ff;
  color: #3730a3;
  padding: 6px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}
.absence-delete {
  border: 0;
  background: rgba(55,48,163,.14);
  color: #312e81;
  border-radius: 999px;
  width: 18px;
  height: 18px;
  cursor: pointer;
}
.empty-absence {
  color: #94a3b8;
}
@media (max-width: 860px) {
  .gantt-controls { margin-left: 0; width: 100%; }
  .absence-form { grid-template-columns: 1fr; }
}

/* V6 refinements */
.tool-links a,
.platform-links a {
  color: inherit;
  text-decoration: none;
}
.tool-links a:hover,
.platform-links a:hover { color: #111827; }

.checkbox-grid {
  display: grid;
  gap: 8px;
  max-height: 170px;
  overflow: auto;
  padding: 6px;
}
.compact-grid { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.choice-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: #fff;
  min-width: 0;
}
.choice-card legend {
  padding: 0 8px;
  font-weight: 900;
}
.check-line,
.check-pill {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 10px;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 12px;
  cursor: pointer;
  background: #fafbff;
}
.check-pill { font-size: 13px; }
.check-line input,
.check-pill input { width: 18px; height: 18px; accent-color: #f43f5e; }
.people-choice-row { align-items: stretch; }

.profile-directory { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }
.team-card.team-editor-card {
  align-items: flex-start;
  padding: 16px;
}
.team-editor-body { flex: 1; min-width: 0; display: grid; gap: 12px; }
.profile-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.own-profile-badge {
  border-radius: 999px;
  background: #fff1f2;
  color: #be123c;
  padding: 4px 9px;
  font-size: 12px;
  font-weight: 900;
}
.team-avatar-preview.avatar {
  width: 54px;
  height: 54px;
  font-size: 28px;
  border: 2px solid rgba(255,255,255,.85);
  box-shadow: 0 10px 22px rgba(15,23,42,.08);
}
.team-profile-form {
  grid-template-columns: 1fr 110px;
  align-items: end;
}
.team-profile-form label:last-of-type { grid-column: 1 / -1; }
.team-profile-save { grid-column: 1 / -1; }
.profile-readonly-box {
  display: grid;
  gap: 4px;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid var(--line);
  padding: 12px;
}
.profile-readonly-box span { color: var(--muted); font-weight: 800; font-size: 12px; text-transform: uppercase; }
.absence-chip { background: #eef2ff; color: #3730a3; }
.absence-event-card {
  border-radius: 12px;
  background: #eef2ff;
  color: #3730a3;
  padding: 7px 9px;
  display: grid;
  gap: 2px;
  line-height: 1.12;
  border: 1px solid #c7d2fe;
}
.absence-event-card strong { font-size: 12px; }
.absence-event-card small { font-size: 11px; opacity: .8; }

.progress-track span { background: #facc15; }
.step-row {
  grid-template-columns: 34px 12px minmax(0, 1fr) minmax(320px, 420px) 38px;
  align-items: stretch;
}
.step-main {
  min-width: 0;
  display: grid;
  gap: 6px;
  align-content: center;
}
.step-main strong {
  display: block;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.2;
}
.step-details {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--muted);
}
.dependency-label { color: #7c3aed !important; }
.step-controls {
  display: grid;
  grid-template-columns: 115px 128px minmax(140px, 1fr);
  gap: 7px;
  align-items: center;
}
.step-controls select,
.step-controls input,
.new-step-box textarea,
.new-step-box select,
.new-step-box input {
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  padding: 9px 10px;
  background: white;
  font: inherit;
}
.new-step-box {
  grid-template-columns: minmax(260px, 1fr) 135px 145px 200px auto;
  align-items: stretch;
}
.new-step-box textarea { resize: vertical; min-height: 54px; }

.gantt-head, .gantt-row { grid-template-columns: 320px minmax(980px, 1fr); }
.gantt-body-wrap { position: relative; }
.step-gantt-scroll { min-width: 1380px; }
.step-gantt-row { min-height: 68px; }
.step-gantt-label { gap: 5px; }
.gantt-title-line { display: flex; align-items: center; gap: 8px; min-width: 0; }
.gantt-title-line strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gantt-line { overflow: visible; background: repeating-linear-gradient(90deg, #f8f9fc 0 1px, white 1px calc(100% / 31)); }
.step-gantt-bar {
  height: 38px;
  top: 2px;
  gap: 8px;
  justify-content: flex-start;
  padding: 0 28px 0 10px;
  min-width: 160px;
  box-shadow: 0 10px 22px rgba(15,23,42,.13);
}
.gantt-bar-avatars { display: flex; flex-shrink: 0; }
.gantt-avatar {
  margin-left: -4px;
  border: 2px solid rgba(255,255,255,.75);
  font-size: 13px;
}
.gantt-bar-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.gantt-bar-date {
  margin-left: auto;
  font-size: 11px;
  opacity: .9;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  padding: 2px 7px;
  white-space: nowrap;
}
.gantt-dependency-svg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: visible;
  z-index: 4;
}
.gantt-dependency-svg path {
  stroke: rgba(100,116,139,.65);
  stroke-width: 2;
  stroke-dasharray: 5 4;
}
.gantt-dependency-svg polygon { fill: rgba(100,116,139,.8); }
.gantt-color-0 { filter: saturate(1.1); }
.gantt-color-1 { filter: hue-rotate(18deg) saturate(1.15); }
.gantt-color-2 { filter: hue-rotate(42deg) saturate(1.1); }
.gantt-color-3 { filter: hue-rotate(80deg) saturate(1.1); }
.gantt-color-4 { filter: hue-rotate(120deg) saturate(1.05); }
.gantt-color-5 { filter: hue-rotate(160deg) saturate(1.05); }

@media (max-width: 1100px) {
  .profile-directory { grid-template-columns: 1fr; }
  .step-row { grid-template-columns: 34px minmax(0,1fr); }
  .step-dot { display: none; }
  .step-controls { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .new-step-box { grid-template-columns: 1fr; }
}
.avatar-mini { margin-left: 0; }
.avatar-stack { display: flex; margin-left: auto; }

/* V7 - retours Jeff */
.main-sidebar {
  overflow-y: auto;
  min-height: 0;
  scrollbar-width: thin;
}
.channel-list {
  gap: 4px;
  padding: 2px 6px;
}
.channel-list a {
  padding: 6px 8px;
  line-height: 1.15;
}
.sidebar-footer {
  margin-top: 8px;
  position: sticky;
  bottom: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.75), #fff 24%);
  padding-top: 10px;
  z-index: 2;
}
.profile-directory {
  grid-template-columns: repeat(auto-fit, minmax(520px, 1fr));
  align-items: start;
}
.team-card.team-editor-card {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  max-width: 100%;
}
.team-avatar-preview.avatar {
  width: 68px;
  height: 68px;
  font-size: 34px;
  justify-self: center;
}
.team-profile-form {
  grid-template-columns: minmax(0, 1fr) 140px;
  gap: 12px;
  align-items: end;
}
.team-profile-form label { min-width: 0; }
.team-profile-form label:nth-of-type(3) { grid-column: 1 / -1; }
.team-profile-save { grid-column: 1 / -1; }
.absence-form {
  grid-template-columns: 94px minmax(130px, 1fr) minmax(130px, 1fr);
  gap: 10px;
}
.absence-form .absence-note,
.absence-form .absence-add { grid-column: 1 / -1; }

.event-options { position: relative; }
.event-options-menu {
  position: absolute;
  left: 0;
  bottom: calc(100% + 8px);
  min-width: 210px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: white;
  padding: 8px;
  box-shadow: 0 18px 42px rgba(15,23,42,.16);
  z-index: 10;
}
.danger-option {
  width: 100%;
  border: 0;
  border-radius: 12px;
  padding: 10px 12px;
  color: #991b1b;
  background: #fff1f1;
  font-weight: 900;
  cursor: pointer;
  text-align: left;
}
.danger-option:hover { background: #fee2e2; }

.new-step-box-v7 {
  grid-template-columns: minmax(280px, 1fr) 130px 145px 190px minmax(240px, .8fr) auto;
  align-items: stretch;
}
.step-people-card {
  padding: 8px;
  max-height: 112px;
  overflow: auto;
}
.step-people-card legend { font-size: 12px; }
.step-user-checkboxes { max-height: 86px; padding: 0; }
.mini-check-line {
  padding: 5px 7px;
  font-size: 12px;
  background: #fff;
}
.mini-check-line span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}
.step-row {
  grid-template-columns: 34px 12px minmax(260px, 1fr) minmax(440px, 560px) 38px;
}
.step-title-line {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}
.step-title-line strong { flex: 1; }
.step-avatar { font-size: 12px; border: 2px solid #fff; }
.step-controls-v7 {
  grid-template-columns: 110px 126px minmax(150px, 1fr) minmax(160px, 1fr);
}
.step-people-details {
  position: relative;
  align-self: center;
}
.step-people-details summary {
  list-style: none;
  cursor: pointer;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  padding: 9px 10px;
  background: white;
  font-weight: 800;
}
.step-people-details summary::-webkit-details-marker { display: none; }
.step-people-grid {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  z-index: 25;
  width: 240px;
  max-height: 220px;
  overflow: auto;
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  padding: 8px;
  box-shadow: 0 18px 40px rgba(15,23,42,.16);
}

.media-template-box {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: #fff;
}
.template-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}
.template-head small { display: block; color: var(--muted); margin-top: 3px; }
.small-btn { padding: 7px 10px; font-size: 12px; }
.asset-library-picker {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px;
  max-height: 260px;
  overflow: auto;
}
.asset-choice {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fafbff;
  padding: 8px;
  cursor: pointer;
}
.asset-choice input { width: 18px; height: 18px; accent-color: #f43f5e; }
.asset-choice > span {
  height: 82px;
  border-radius: 12px;
  overflow: hidden;
  background: #111827;
  display: grid;
  place-items: center;
  color: white;
}
.asset-choice img,
.asset-choice video { width: 100%; height: 100%; object-fit: cover; display: block; }
.asset-choice strong,
.asset-choice small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asset-choice small { color: var(--muted); }

.gantt-scroll { min-width: 1180px; }
.gantt-head, .gantt-row { grid-template-columns: 380px minmax(860px, 1fr); }
.step-gantt-row { min-height: 74px; }
.step-gantt-label {
  padding: 8px 0;
}
.gantt-title-line {
  display: flex;
  align-items: center;
  gap: 8px;
}
.gantt-title-line .gantt-avatar:first-child { margin-left: 0; }
.step-gantt-label small {
  display: block;
  font-size: 13px;
  color: #475569;
  white-space: normal;
  line-height: 1.2;
}
.step-gantt-bar {
  min-width: 220px;
  color: white;
  display: flex;
  align-items: center;
}
.gantt-bar-title {
  display: inline-flex;
  gap: 4px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gantt-bar-title strong { flex-shrink: 0; }
.gantt-bar-date { flex-shrink: 0; }
.gantt-scale { background: repeating-linear-gradient(90deg, #f8f9fc 0 1px, white 1px 52px); }

@media (max-width: 1100px) {
  .profile-directory { grid-template-columns: 1fr; }
  .team-card.team-editor-card { grid-template-columns: 72px minmax(0,1fr); }
  .team-profile-form { grid-template-columns: 1fr; }
  .new-step-box-v7 { grid-template-columns: 1fr; }
  .step-row { grid-template-columns: 34px minmax(0,1fr); }
  .step-controls-v7 { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .step-people-grid { position: static; width: auto; margin-top: 6px; }
}

/* V8 - profils, disponibilités et corrections interface */
.planner-header {
  position: relative;
  z-index: 5;
}
.header-actions,
.header-actions .primary-btn,
#newEventButton {
  position: relative;
  z-index: 6;
  pointer-events: auto;
}
.profile-split-layout {
  display: grid;
  grid-template-columns: minmax(420px, 0.92fr) minmax(420px, 1.08fr);
  gap: 18px;
  align-items: start;
}
.section-mini-title {
  margin: 0 0 10px;
  color: var(--muted);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .09em;
  font-size: 12px;
}
.own-profile-column,
.other-profiles-column {
  min-width: 0;
}
.other-profile-stack {
  display: grid;
  gap: 14px;
}
.own-profile-card,
.compact-profile-card {
  width: 100%;
}
.compact-profile-card {
  min-height: 0;
}
.profile-split-layout .team-card.team-editor-card {
  grid-template-columns: 82px minmax(0, 1fr);
}
.availability-box {
  display: grid;
  gap: 8px;
  border-top: 1px solid rgba(15,23,42,.08);
  padding-top: 12px;
}
.micro-hint {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.availability-week {
  display: grid;
  grid-template-columns: repeat(7, minmax(58px, 1fr));
  gap: 7px;
}
.availability-day {
  border: 1px solid var(--line);
  border-radius: 14px;
  min-height: 58px;
  padding: 7px 5px;
  display: grid;
  place-items: center;
  gap: 2px;
  text-align: center;
  font-weight: 900;
  cursor: pointer;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.availability-day span {
  font-size: 13px;
  text-transform: lowercase;
}
.availability-day small {
  font-size: 10px;
  font-weight: 800;
  opacity: .84;
}
.availability-day:not(.readonly):hover {
  transform: translateY(-1px);
}
.availability-day.is-available {
  background: #ecfdf5;
  color: #166534;
  border-color: #86efac;
}
.availability-day.is-away {
  background: #fef2f2;
  color: #991b1b;
  border-color: #fecaca;
}
.availability-day.readonly {
  cursor: default;
}
.compact-availability-week {
  grid-template-columns: repeat(7, minmax(42px, 1fr));
  gap: 5px;
}
.compact-availability-week .availability-day {
  min-height: 46px;
  padding: 5px 3px;
  border-radius: 12px;
}
.compact-availability-week .availability-day span { font-size: 11px; }
.compact-availability-week .availability-day small { font-size: 9px; }
.readonly-absence-box {
  padding-top: 10px;
}
.profile-readonly-box {
  min-height: 54px;
}
.step-controls-v7 .step-people-details {
  min-width: 0;
}
.step-avatar-stack {
  margin-left: 10px;
  flex-shrink: 0;
}
.muted-mini {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.gantt-scroll {
  overflow-x: auto;
}
.gantt-title-line strong {
  font-size: 15px;
}
.step-gantt-label small b {
  color: var(--ink);
}
.gantt-bar-title {
  display: grid;
  gap: 0;
  line-height: 1.05;
}
.gantt-bar-title strong,
.gantt-bar-title em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-style: normal;
}
.gantt-bar-title em {
  opacity: .86;
  font-size: 11px;
  font-weight: 800;
}
.step-gantt-bar {
  min-width: 250px;
}
@media (max-width: 1180px) {
  .profile-split-layout { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .availability-week { grid-template-columns: repeat(4, minmax(62px, 1fr)); }
  .profile-split-layout .team-card.team-editor-card { grid-template-columns: 1fr; }
  .team-avatar-preview.avatar { justify-self: start; }
}

/* V9 additions */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.content-panel-lite { background: #fff; border: 1px solid #e3e7f0; border-radius: 22px; padding: 18px; }
.dashboard-grid { display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 16px; }
.dashboard-card { background: #fff; border: 1px solid #e3e7f0; border-radius: 24px; padding: 18px; box-shadow: 0 18px 40px rgba(15,23,42,.04); }
.dashboard-card span { color: #7c8497; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; font-size: 12px; }
.dashboard-card strong { display: block; font-size: 34px; margin-top: 8px; }
.dashboard-card.warning strong { color: #f97316; }
.dashboard-card.wide { grid-column: span 2; }
.dashboard-line { width: 100%; display: flex; justify-content: space-between; gap: 12px; background: #f8fafc; border: 1px solid #e3e7f0; border-radius: 14px; padding: 10px 12px; margin: 6px 0; cursor: pointer; }
.dashboard-list { margin: 8px 0 0; padding-left: 18px; }
.contacts-layout { display: grid; grid-template-columns: minmax(300px, 420px) minmax(0, 1fr); gap: 18px; align-items: start; }
.contact-form { display: grid; gap: 10px; position: sticky; top: 20px; }
.contact-form input, .contact-form textarea, .contact-form select { width: 100%; }
.contacts-list { display: grid; gap: 12px; }
.contact-card { background: #fff; border: 1px solid #e3e7f0; border-radius: 22px; padding: 16px; }
.contact-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.contact-head span { background: #fff1f2; color: #be123c; border-radius: 999px; padding: 5px 10px; font-weight: 900; font-size: 12px; }
.contact-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.contact-links a { background: #f1f5f9; border-radius: 999px; padding: 6px 10px; text-decoration: none; color: #0f172a; font-weight: 800; font-size: 12px; }
.validation-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.publication-links-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.budget-detail-box { margin-top: 18px; border: 1px solid #e3e7f0; border-radius: 22px; padding: 16px; background: #fff; }
.new-budget-box { display: grid; grid-template-columns: minmax(220px, 1fr) 120px 120px 100px minmax(180px, 1fr) auto; gap: 10px; align-items: end; margin-top: 12px; }
.budget-total-row { display: flex; gap: 12px; flex-wrap: wrap; margin: 8px 0; }
.budget-total-row span { background: #f8fafc; border: 1px solid #e3e7f0; border-radius: 999px; padding: 8px 12px; }
.danger-mini { border: 0; background: #fee2e2; color: #ef4444; border-radius: 999px; padding: 8px 12px; font-weight: 900; cursor: pointer; }
.media-section-grid { display: grid !important; grid-template-columns: minmax(320px, 1fr) minmax(360px, 1fr); gap: 18px; align-items: start; }
.media-upload-column, .image-bank-box { min-width: 0; }
.media-preview-full { grid-column: 1 / -1; }
.compact-drop-zone { min-height: 190px; }
.small-select-label { display: block; margin-bottom: 10px; }
.image-bank-box { height: 100%; }
.image-bank-box select { width: 100%; margin: 10px 0; }
.media-bank-section { margin-bottom: 26px; }
.media-bank-section h3 { display: flex; gap: 8px; align-items: center; margin-bottom: 12px; }
.media-bank-section h3 small { color: #7c8497; font-size: 13px; }
.modal-card-wide { width: min(1480px, calc(100vw - 40px)); overflow-x: hidden; }
.step-row { grid-template-columns: 42px 16px minmax(360px, 1fr) minmax(460px, 600px) 44px !important; align-items: start; }
.step-main { min-width: 0; }
.step-controls-v7 { min-width: 0; display: grid; grid-template-columns: 140px 145px minmax(170px, 1fr); gap: 10px; }
.step-blocked-input, .step-people-details { grid-column: 1 / -1; }
.step-comments { margin-top: 8px; background: #f8fafc; border: 1px solid #e3e7f0; border-radius: 14px; padding: 8px 10px; }
.step-comments-list { display: grid; gap: 8px; margin: 8px 0; }
.step-comment-add { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: end; }
.blocked-reason { background: #fff1f2; border: 1px solid #fecdd3; color: #be123c; border-radius: 14px; padding: 8px 10px; }
.new-step-box-v7 { grid-template-columns: minmax(320px, 1fr) 130px 145px 190px 180px minmax(260px, .7fr) auto !important; align-items: stretch; }
.new-step-box-v7 textarea { min-height: 92px; }
.profile-split-layout { grid-template-columns: minmax(420px, .95fr) minmax(520px, 1.05fr) !important; gap: 18px; align-items: start; }
.team-card { overflow: hidden; }
.team-editor-card { grid-template-columns: 82px minmax(0, 1fr) !important; align-items: start; }
.team-avatar-preview { grid-row: 1 / span 2; }
.team-editor-body { min-width: 0; }
.team-profile-form { grid-template-columns: minmax(220px, 1fr) 150px !important; gap: 12px; }
.team-profile-form label:last-child { grid-column: 1 / -1; }
.availability-week { display: grid; grid-template-columns: repeat(7, minmax(64px, 1fr)); gap: 8px; }
.absence-form { grid-template-columns: 120px 1fr 1fr !important; }
.absence-note, .absence-add { grid-column: 1 / -1; }
.main-sidebar { overflow-y: auto; }
.main-sidebar .brand-logo { object-fit: contain; }
@media (max-width: 1200px) {
  .dashboard-grid, .contacts-layout, .media-section-grid, .profile-split-layout { grid-template-columns: 1fr !important; }
  .dashboard-card.wide { grid-column: auto; }
  .new-budget-box, .new-step-box-v7, .step-row, .step-controls-v7 { grid-template-columns: 1fr !important; }
}

/* V10 corrections demandées */
.side-nav button[data-view="dashboard"] { order: 1; }
.side-nav button[data-view="calendar"] { order: 2; }
.side-nav button[data-view="board"] { order: 3; }
.side-nav button[data-view="gantt"] { order: 4; }
.side-nav button[data-view="media"] { order: 5; }
.side-nav button[data-view="tracking"] { order: 6; }
.side-nav button[data-view="contacts"] { order: 7; }
.side-nav button[data-view="team"] { order: 8; }
.side-nav { display: flex; flex-direction: column; }

/* Profils : icône + nom lisibles, moins de texte et plus de centrage */
.profile-split-layout {
  grid-template-columns: minmax(500px, 0.98fr) minmax(500px, 1.02fr) !important;
  gap: 20px !important;
}
.profile-split-layout .team-card.team-editor-card {
  display: grid !important;
  grid-template-columns: 78px minmax(0, 1fr) !important;
  gap: 16px !important;
  padding: 18px !important;
  align-items: start !important;
  overflow: visible !important;
}
.team-avatar-preview.avatar {
  width: 68px !important;
  height: 68px !important;
  font-size: 34px !important;
  justify-self: center;
  margin-top: 2px;
}
.team-editor-body { min-width: 0 !important; overflow: visible !important; }
.profile-title-row {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  min-width: 0;
}
.profile-title-row > div { min-width: 0; }
.profile-title-row strong {
  font-size: 17px;
  line-height: 1.05;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.profile-title-row small {
  font-size: 13px;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.own-profile-badge {
  margin-left: auto;
  flex: 0 0 auto;
  font-size: 12px !important;
  padding: 6px 10px !important;
}
.team-profile-form {
  grid-template-columns: minmax(0, 1fr) 96px !important;
  gap: 10px !important;
}
.team-profile-form label { min-width: 0; font-size: 14px; }
.team-profile-form label:nth-child(3) { grid-column: 1 / -1; }
.team-profile-form input,
.team-profile-form select { min-width: 0; width: 100%; }
.availability-box strong,
.absence-box strong { font-size: 15px; }
.micro-hint { font-size: 13px; }
.availability-week { grid-template-columns: repeat(7, minmax(58px, 1fr)) !important; gap: 7px !important; }
.availability-day { padding: 8px 6px !important; min-height: 56px; }
.availability-day span { font-size: 13px; }
.availability-day small { font-size: 11px; }
.absence-form { grid-template-columns: minmax(110px, .6fr) minmax(130px, 1fr) minmax(130px, 1fr) !important; gap: 8px !important; }
.absence-note, .absence-add { grid-column: 1 / -1 !important; }
.compact-profile-card .profile-readonly-box { padding: 10px 12px; }
.compact-profile-card .profile-readonly-box span { font-size: 11px; }
.compact-profile-card .profile-readonly-box strong { font-size: 15px; }

/* Étapes : plus de débordement à droite */
.step-row {
  grid-template-columns: 38px 14px minmax(260px, 1fr) minmax(340px, 480px) 38px !important;
  gap: 9px !important;
  overflow: visible !important;
}
.step-main strong { white-space: normal; line-height: 1.25; }
.step-main small { overflow-wrap: anywhere; }
.step-controls-v7 {
  grid-template-columns: minmax(110px, 130px) minmax(120px, 140px) minmax(155px, 1fr) !important;
  gap: 8px !important;
}
.new-step-box-v7 {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 10px !important;
  overflow: visible !important;
}
.new-step-box-v7 > textarea { flex: 1 1 360px; min-width: 280px; }
.new-step-box-v7 > select,
.new-step-box-v7 > input { flex: 0 1 150px; min-width: 130px; }
.new-step-box-v7 .step-people-card { flex: 1 1 300px; min-width: 260px; max-height: 170px; overflow: auto; }
.new-step-box-v7 > button { flex: 0 0 180px; min-width: 160px; }
.step-user-checkboxes { max-height: 120px; overflow: auto; }

/* Budget seul, sans bloc liens publiés */
.budget-detail-box { margin-top: 0 !important; }
.new-budget-box { grid-template-columns: minmax(200px, 1fr) 110px 110px 90px minmax(160px, 1fr) auto; }

/* Mini CRM : filtres, édition et retours ligne lisibles */
.contacts-layout { grid-template-columns: minmax(320px, 420px) minmax(0, 1fr) !important; }
.contacts-results { display: grid; gap: 12px; }
.contacts-filterbar { display: grid; grid-template-columns: minmax(220px, 1fr) 160px 160px; gap: 10px; padding: 14px; }
.contact-form textarea { min-height: 78px; resize: vertical; }
.contact-form-actions, .contact-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.contact-card small { display: block; margin-top: 4px; color: var(--muted); white-space: pre-wrap; }
.contact-card p { white-space: normal; line-height: 1.35; }
.contact-card .secondary-btn.small-btn { padding: 8px 12px; border-radius: 999px; }

/* Média : banque d'image à côté de l'upload */
.media-section-grid { grid-template-columns: minmax(340px, 1fr) minmax(340px, 1fr) !important; align-items: stretch !important; }
.media-upload-column, .image-bank-box { min-width: 0; height: 100%; }

@media (max-width: 1300px) {
  .profile-split-layout,
  .contacts-layout,
  .media-section-grid { grid-template-columns: 1fr !important; }
  .contacts-filterbar { grid-template-columns: 1fr; }
  .step-row { grid-template-columns: 1fr !important; }
  .step-controls-v7 { grid-template-columns: 1fr !important; }
}
@media (max-width: 760px) {
  .profile-split-layout .team-card.team-editor-card { grid-template-columns: 1fr !important; }
  .team-avatar-preview.avatar { justify-self: start; }
  .team-profile-form { grid-template-columns: 1fr !important; }
  .availability-week { grid-template-columns: repeat(4, minmax(58px, 1fr)) !important; }
}

/* V11 corrections */
.side-nav button[data-view="dashboard"] { order: 1 !important; }
.side-nav button[data-view="calendar"] { order: 2 !important; }
.side-nav button[data-view="board"] { order: 3 !important; }
.side-nav button[data-view="gantt"] { order: 4 !important; }
.side-nav button[data-view="contacts"] { order: 5 !important; }
.side-nav button[data-view="team"] { order: 6 !important; }
.side-nav button[data-view="media"] { order: 7 !important; }
.side-nav button[data-view="tracking"] { order: 8 !important; }

.step-edit-details { margin-top: 10px; border: 1px solid #e3e7f0; border-radius: 14px; background: #fff; padding: 8px 10px; }
.step-edit-details summary { cursor: pointer; font-weight: 900; color: #536077; }
.step-edit-grid { display: grid; gap: 9px; margin-top: 8px; }
.step-edit-grid label { display: grid; gap: 5px; font-weight: 800; color: #1a1b25; }
.step-edit-grid textarea { width: 100%; min-height: 72px; resize: vertical; }
.step-controls-v7 { grid-template-columns: minmax(110px, 130px) minmax(118px, 135px) minmax(118px, 135px) minmax(155px, 1fr) !important; }
.step-blocked-input, .step-people-details { grid-column: 1 / -1 !important; }
.new-step-box-v7 > input#stepStartDate,
.new-step-box-v7 > input#stepDueDate { flex: 0 1 145px; min-width: 130px; }
.step-main a, .activity-table a, .contact-card a { color: #2563eb; font-weight: 850; text-decoration: underline; text-underline-offset: 2px; }

/* Gantt regroupé par projet */
.gantt-project-group { display: grid; gap: 6px; margin-bottom: 16px; }
.gantt-project-header { display: grid; grid-template-columns: 380px minmax(860px, 1fr); gap: 14px; align-items: center; color: #0f172a; }
.gantt-project-header > div { display: flex; align-items: center; gap: 8px; font-size: 18px; }
.gantt-project-header small { color: #7c8497; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.step-gantt-bar { cursor: grab; }
.step-gantt-bar .gantt-handle.left,
.step-gantt-bar .gantt-handle.right { opacity: .55; }
.step-gantt-bar:hover .gantt-handle.left,
.step-gantt-bar:hover .gantt-handle.right { opacity: 1; }
.gantt-bar-title strong,
.gantt-bar-title em { max-width: 170px; }
.gantt-bar-date { white-space: nowrap; }

/* Vue année plus visuelle */
.fc-multimonth .fc-event,
.fc-multimonth .fc-daygrid-event { white-space: normal !important; }
.fc-multimonth .fc-daygrid-day-frame { min-height: 94px; }
.fc-multimonth .fc-daygrid-event-harness { margin: 1px 2px; }
.year-card { display: grid; gap: 2px; padding: 5px 6px; border-radius: 10px; background: linear-gradient(135deg, #fff, #fff7f7); border: 1px solid #e7eaf2; box-shadow: none; }
.year-card .year-card-title-row { display: flex; align-items: center; gap: 5px; min-width: 0; }
.year-card strong { font-size: 11px; line-height: 1.05; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.year-card small { font-size: 10px; color: #687084; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.year-card .date-chip-row { gap: 3px; margin: 0; }
.year-card .date-chip { padding: 1px 4px; font-size: 9px; }
.year-card .priority-dot { width: 8px; height: 8px; flex: 0 0 auto; }

@media (max-width: 1300px) {
  .gantt-project-header { grid-template-columns: 1fr; }
}

/* V12 - Gantt groupé, CRM multiline et zones lisibles */
.gantt-controls select option[value="day"] { font-weight: 800; }
.step-gantt-scroll { min-width: 1240px !important; }
.step-gantt-scroll .gantt-head,
.step-gantt-scroll .gantt-row { grid-template-columns: 310px minmax(820px, 1fr) !important; }
.compact-gantt-project {
  gap: 2px !important;
  margin: 0 0 28px !important;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(15,23,42,.08);
}
.compact-gantt-project:last-child { border-bottom: 0; }
.compact-gantt-project .gantt-project-header {
  margin: 0 0 4px;
  min-height: 34px;
  align-items: center;
}
.compact-step-gantt-row {
  min-height: 44px !important;
}
.compact-step-label {
  padding: 2px 0 2px 22px !important;
  display: flex;
  align-items: center;
}
.gantt-step-name {
  display: flex;
  gap: 7px;
  align-items: center;
  min-width: 0;
  max-width: 100%;
}
.gantt-step-name strong {
  font-size: 14px;
  line-height: 1.15;
  overflow-wrap: anywhere;
  white-space: normal;
}
.compact-step-gantt-row .gantt-line {
  min-height: 42px;
}
.compact-step-gantt-row .step-gantt-bar {
  min-width: 150px !important;
  min-height: 34px;
  padding: 4px 12px 4px 8px;
  gap: 5px;
}
.compact-step-gantt-row .gantt-bar-title {
  gap: 0;
  font-size: 13px;
}
.compact-step-gantt-row .gantt-bar-title strong { display: none; }
.compact-step-gantt-row .gantt-bar-title em {
  font-style: normal;
  font-weight: 850;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.compact-step-gantt-row .gantt-bar-date {
  font-size: 11px;
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
}
.gantt-scale-day {
  background: repeating-linear-gradient(90deg, #f8f9fc 0 1px, white 1px 38px) !important;
}
.gantt-scale-cell.day-cell {
  font-size: 11px;
  color: #64748b;
  white-space: nowrap;
}

/* CRM : les champs deviennent de vraies zones de texte, multi-lignes */
.contact-form textarea#contactName,
.contact-form textarea#contactEmail,
.contact-form textarea#contactPhone,
.contact-form textarea#contactInstagram,
.contact-form textarea#contactTiktok,
.contact-form textarea#contactLinkedin,
.contact-form textarea#contactWebsite {
  min-height: 54px;
  resize: vertical;
  line-height: 1.25;
}
.contact-card .contact-head strong {
  display: block;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.15;
}
.contact-card small,
.contact-card p {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.contact-links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: flex-start;
}
.contact-links a,
.contact-links span {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  border-radius: 999px;
  padding: 7px 10px;
  background: #f1f5f9;
  color: #111827;
  font-weight: 850;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.contact-links a:hover { background: #ffe4ea; color: #be123c; }

/* Checklist : évite les débordements quand une étape ou un lien est long */
.step-row { max-width: 100%; }
.step-main,
.step-main strong,
.step-main small,
.step-comments-list,
.step-comments-list small { overflow-wrap: anywhere; }
.step-controls-v7 { min-width: 0; }
.step-blocked-input { min-height: 46px; resize: vertical; }

@media (max-width: 1180px) {
  .step-gantt-scroll .gantt-head,
  .step-gantt-scroll .gantt-row { grid-template-columns: 250px minmax(720px, 1fr) !important; }
  .compact-step-label { padding-left: 10px !important; }
}

/* V13 - Gantt vraiment zoomable : jours précis, semaines moyen, mois dézoomé */
.step-gantt-scroll {
  min-width: var(--gantt-scroll-width, 1240px) !important;
}
.step-gantt-scroll .gantt-head,
.step-gantt-scroll .gantt-row,
.compact-gantt-project .gantt-project-header {
  grid-template-columns: 310px var(--gantt-timeline-width, 980px) !important;
}
.step-gantt-scroll .gantt-scale,
.step-gantt-scroll .gantt-line {
  width: var(--gantt-timeline-width, 980px);
}
.step-gantt-scroll .gantt-scale-cell {
  position: absolute;
  transform: none !important;
  top: 0 !important;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 2px;
  border-left: 1px solid rgba(148,163,184,.22);
  color: #64748b;
  text-align: center;
  line-height: 1.05;
  overflow: hidden;
}
.step-gantt-scroll .gantt-scale-cell b {
  font-size: 12px;
  font-weight: 950;
  color: #64748b;
}
.step-gantt-scroll .gantt-scale-cell small {
  font-size: 10px;
  font-weight: 800;
  color: #9aa3b6;
}
.step-gantt-scroll .day-cell.weekend {
  background: rgba(255, 215, 209, .32);
}
.gantt-zoom-day .gantt-scale {
  height: 54px;
  background: repeating-linear-gradient(90deg, #eef2f8 0 1px, #fff 1px var(--gantt-unit-width, 58px)) !important;
}
.gantt-zoom-day .gantt-line {
  background: repeating-linear-gradient(90deg, #f3f6fb 0 1px, white 1px var(--gantt-unit-width, 58px)) !important;
}
.gantt-zoom-day .compact-step-gantt-row {
  min-height: 48px !important;
}
.gantt-zoom-day .step-gantt-bar {
  min-width: 120px !important;
}
.gantt-zoom-week .gantt-scale {
  height: 48px;
  background: repeating-linear-gradient(90deg, #eef2f8 0 1px, #fff 1px var(--gantt-unit-width, 64px)) !important;
}
.gantt-zoom-week .gantt-line {
  background: repeating-linear-gradient(90deg, #f3f6fb 0 1px, white 1px var(--gantt-unit-width, 64px)) !important;
}
.gantt-zoom-month .gantt-scale {
  height: 48px;
  background: repeating-linear-gradient(90deg, #eef2f8 0 1px, #fff 1px var(--gantt-unit-width, 180px)) !important;
}
.gantt-zoom-month .gantt-line {
  background: repeating-linear-gradient(90deg, #f3f6fb 0 1px, white 1px var(--gantt-unit-width, 180px)) !important;
}
.compact-gantt-project {
  margin-bottom: 34px !important;
  padding-bottom: 24px !important;
}
.compact-gantt-project .gantt-project-header {
  margin-bottom: 6px !important;
}
.compact-step-gantt-row + .compact-step-gantt-row {
  margin-top: 2px;
}

/* V14 - affinage Gantt, année visuelle et nuances de progression */
.year-card.year-card-has-media {
  min-height: 48px;
  background-size: cover;
  background-position: center;
  color: #fff;
  border-color: rgba(255,255,255,.45);
  box-shadow: 0 8px 18px rgba(15,23,42,.12);
  overflow: hidden;
}
.year-card.year-card-has-media strong,
.year-card.year-card-has-media small { color: #fff; text-shadow: 0 1px 5px rgba(15,23,42,.45); }
.year-card.year-card-has-media .date-chip { background: rgba(255,255,255,.86); text-shadow: none; }
.year-card.year-card-has-media .priority-dot { border: 1px solid rgba(255,255,255,.85); }

.step-gantt-scroll .gantt-scale-cell.day-cell {
  align-items: center;
  justify-content: center;
  padding: 2px 4px;
  white-space: normal;
}
.step-gantt-scroll .gantt-scale-cell.day-cell b {
  font-size: 18px;
  line-height: .95;
  color: #111827;
  letter-spacing: -.04em;
}
.step-gantt-scroll .gantt-scale-cell.day-cell small {
  margin-top: 3px;
  font-size: 11px;
  line-height: 1;
  color: #475569;
  text-transform: lowercase;
}
.gantt-zoom-day .gantt-scale { height: 58px; }
.gantt-zoom-day .gantt-line { min-width: var(--gantt-timeline-width, 1180px); }
.gantt-zoom-week .gantt-scale-cell.week-cell b { font-size: 15px; color: #334155; }
.gantt-zoom-month .gantt-scale-cell.month-cell { align-items: flex-start; padding-left: 10px; }
.gantt-zoom-month .gantt-scale-cell.month-cell b { font-size: 14px; }

.compact-gantt-project { margin-bottom: 40px !important; padding-bottom: 26px !important; }
.compact-gantt-project .gantt-project-header > div { font-size: 18px; gap: 0; }
.compact-gantt-project .gantt-project-header .avatar-mini { display: none !important; }
.step-label-avatars { margin-left: 8px; flex: 0 0 auto; }
.gantt-step-name { justify-content: flex-start; }
.gantt-step-name .avatar-mini { width: 20px; height: 20px; font-size: 11px; border: 2px solid #fff; margin-left: -5px; }
.gantt-step-name .avatar-mini:first-child { margin-left: 0; }

.mini-progress span,
.progress-track span {
  transition: width .22s ease, background .22s ease;
}

/* V15 - concepts/projets, étapes complètes et Gantt filtrable */
.project-kind-card { margin-bottom: 12px; }
.two-choice-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
.new-step-box-v7 .step-type-card,
.new-step-box-v7 .step-platform-card,
.new-step-box-v7 .step-people-card { flex: 1 1 260px; min-width: 240px; max-height: 190px; overflow: auto; }
.new-step-box-v7 #stepPriority { flex: 0 1 145px; min-width: 130px; }
.step-mini-checkboxes { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 6px; }
.step-details { display: flex; gap: 10px; flex-wrap: wrap; }
.step-details small { display: inline-flex; align-items: center; gap: 4px; }
.step-edit-grid .choice-card { padding: 10px; }
.step-edit-grid select { border: 1px solid var(--line-strong); border-radius: 12px; padding: 9px 10px; background: #fff; }
.event-options-menu button { width: 100%; text-align: left; border: 0; background: transparent; padding: 10px 12px; border-radius: 12px; font-weight: 850; cursor: pointer; }
.event-options-menu button:hover { background: #f4f6fb; }
@media print {
  .main-sidebar, .planner-header, .modal-header .icon-btn, .modal-actions, .quick-actions { display: none !important; }
  .app-frame { display: block; }
  .modal { position: static !important; background: #fff !important; overflow: visible !important; }
  .modal-card { box-shadow: none !important; width: 100% !important; max-width: none !important; }
  .form-section { break-inside: avoid; }
}

/* V16 — Ma semaine + Analytics */
.my-week-head { align-items: flex-start; }
.my-week-controls { display: flex; gap: 16px; align-items: end; }
.my-week-grid { display: grid; gap: 24px; }
.my-week-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.my-week-summary article,
.analytics-kpis article { border: 1px solid var(--line); border-radius: 24px; padding: 22px; background: rgba(255,255,255,.86); box-shadow: var(--soft-shadow); }
.my-week-summary span,
.analytics-kpis span { color: var(--muted); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; }
.my-week-summary strong,
.analytics-kpis strong { display:block; font-size: 2rem; margin-top: 6px; }
.my-week-summary small,
.analytics-kpis small { color: var(--muted); }
.my-week-summary .warning strong,
.analytics-kpis .warning strong { color: #ef4444; }
.my-week-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.my-week-section { border: 1px solid var(--line); border-radius: 28px; padding: 20px; background: rgba(255,255,255,.9); }
.my-week-section h3 { margin: 0 0 14px; display:flex; justify-content:space-between; align-items:center; }
.my-week-section h3 small { color: var(--muted); }
.my-week-list { display: grid; gap: 10px; }
.my-task-card { width:100%; border:1px solid var(--line); border-radius:20px; background: #fff; padding: 14px; display:grid; grid-template-columns:auto 1fr auto auto; gap: 12px; align-items:center; text-align:left; cursor:pointer; }
.my-task-card:hover { transform: translateY(-1px); box-shadow: var(--soft-shadow); }
.my-task-main strong { display:block; line-height:1.15; }
.my-task-main small { display:block; color: var(--muted); margin-top:4px; }
.priority-dot { width: 10px; height: 10px; border-radius:999px; display:inline-block; }
.analytics-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.analytics-card { border:1px solid var(--line); border-radius:28px; padding:22px; background:rgba(255,255,255,.9); box-shadow: var(--soft-shadow); }
.analytics-card.wide, .analytics-kpis { grid-column: 1 / -1; }
.analytics-kpis { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.analytics-card h3 { margin-top: 0; }
.analytics-card p { color: var(--muted); }
.analytics-card a { color:#2563eb; font-weight:800; text-decoration:none; }
.analytics-list { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.analytics-list li { display:flex; justify-content:space-between; gap: 12px; border-bottom:1px solid var(--line); padding-bottom:8px; }
.analytics-project-line { width:100%; text-align:left; display:grid; grid-template-columns: 1.5fr 1fr auto; gap:12px; align-items:center; padding:14px 0; border:0; background:transparent; border-bottom:1px solid var(--line); cursor:pointer; }
.analytics-project-line strong { font-size:1.05rem; }
.analytics-project-line span, .analytics-project-line small { color:var(--muted); }
@media (max-width: 1100px) {
  .my-week-summary, .analytics-kpis { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .my-week-columns, .analytics-grid { grid-template-columns: 1fr; }
}

/* V17 navigation par catégories */
.categorized-nav {
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
}
.categorized-nav button.nav-item {
  order: unset !important;
}
.nav-section-title {
  margin: 14px 8px 6px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.nav-section-title:first-child { margin-top: 4px; }
.categorized-nav .nav-item { padding: 9px 12px; }
.categorized-nav .nav-item span { text-align: center; font-weight: 900; }
.analytics-placeholder { display: grid; gap: 14px; }
.analytics-links-row { display: flex; gap: 10px; flex-wrap: wrap; }
.analytics-links-row a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 10px 14px;
  background: #fff;
  color: #111827;
  font-weight: 900;
  text-decoration: none;
}
.analytics-links-row a:hover { background: var(--surface-soft); }

/* V18 CRM category */
.crm-create-layout { max-width: 860px; }
.crm-create-form { width: 100%; display: grid; gap: 12px; }
.contacts-results-full { display: grid; gap: 14px; }
.contacts-results-full .contacts-list { display: grid; gap: 14px; }

/* V19 - Google Analytics */
.analytics-google-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}
.analytics-controls-row {
  display: flex;
  align-items: end;
  gap: 12px;
  flex-wrap: wrap;
}
.analytics-controls-row label {
  display: grid;
  gap: 6px;
  font-weight: 900;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .78rem;
}
.analytics-controls-row select {
  min-width: 190px;
}
.google-kpis {
  margin-top: 18px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.analytics-table-scroll {
  max-height: 420px;
}
.analytics-data-table td:first-child {
  max-width: 340px;
  word-break: break-word;
}
.analytics-data-table a {
  color: #2563eb;
  text-decoration: none;
  font-weight: 800;
}
.analytics-setup-card code {
  background: #f1f5f9;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 2px 6px;
}
.analytics-setup-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0;
}
.analytics-setup-grid article {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: #fff;
}
.analytics-setup-grid span {
  display: block;
  color: var(--muted);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .72rem;
}
.analytics-setup-grid strong {
  display: block;
  margin-top: 6px;
  overflow-wrap: anywhere;
}
.setup-steps {
  margin: 10px 0 0 20px;
  color: var(--ink);
  line-height: 1.55;
}
.error-inline {
  color: #ef4444 !important;
  font-weight: 900;
}
@media (max-width: 1200px) {
  .google-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analytics-setup-grid { grid-template-columns: 1fr; }
}


/* Patch V19 — mise en page Analytics Google */
.google-analytics-content {
  grid-column: 1 / -1;
  width: 100%;
}
.google-analytics-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
}
.google-analytics-results .google-kpis {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 0;
}
.google-analytics-results .analytics-card {
  min-width: 0;
}
.google-analytics-results .analytics-data-table {
  width: 100%;
}
.analytics-warning-note ul {
  margin: 10px 0 0 18px;
  color: var(--muted);
  line-height: 1.45;
}
.analytics-warning-note li + li {
  margin-top: 6px;
}
@media (max-width: 1200px) {
  .google-analytics-results { grid-template-columns: 1fr; }
  .google-analytics-results .google-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .google-analytics-results .google-kpis { grid-template-columns: 1fr; }
}

/* Patch V19 — YouTube Analytics détaillé */
.youtube-controls label {
  min-width: 180px;
}
.youtube-analytics-results .youtube-kpis {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.youtube-channel-card {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
}
.youtube-channel-card img,
.youtube-channel-placeholder {
  width: 96px;
  height: 96px;
  border-radius: 28px;
  object-fit: cover;
  box-shadow: var(--soft-shadow);
}
.youtube-channel-placeholder {
  display: grid;
  place-items: center;
  background: #fee2e2;
  color: #ef4444;
  font-weight: 900;
  font-size: 2rem;
}
.youtube-video-grid {
  display: grid;
  gap: 12px;
}
.youtube-video-card {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  text-decoration: none;
  color: var(--ink) !important;
  transition: transform .15s ease, box-shadow .15s ease;
}
.youtube-video-card:hover {
  transform: translateY(-1px);
  box-shadow: var(--soft-shadow);
}
.youtube-video-card img,
.youtube-thumb-placeholder {
  width: 128px;
  aspect-ratio: 16 / 9;
  border-radius: 14px;
  object-fit: cover;
  background: var(--surface-soft);
}
.youtube-thumb-placeholder {
  display: grid;
  place-items: center;
  color: var(--muted);
  font-weight: 900;
}
.youtube-video-card strong {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: .96rem;
}
.youtube-video-card span,
.youtube-video-card small {
  display: block;
  color: var(--muted);
  margin-top: 4px;
  line-height: 1.25;
}
.youtube-distribution {
  display: grid;
  gap: 16px;
}
.youtube-share-bar {
  width: 100%;
  height: 18px;
  border-radius: 999px;
  background: var(--surface-soft);
  overflow: hidden;
  display: flex;
}
.youtube-share-bar span {
  display: block;
  height: 100%;
  background: #ef4444;
}
.youtube-share-bar i {
  display: block;
  height: 100%;
  background: #6366f1;
}
.youtube-all-table td:first-child {
  min-width: 240px;
}
.compact-list li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--line);
  padding: 10px 0;
}
@media (max-width: 1300px) {
  .youtube-analytics-results .youtube-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .youtube-analytics-results .youtube-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .youtube-channel-card,
  .youtube-video-card { grid-template-columns: 1fr; }
  .youtube-video-card img,
  .youtube-thumb-placeholder { width: 100%; }
  .youtube-analytics-results .youtube-kpis { grid-template-columns: 1fr; }
}

/* Spotify Creators CSV/RSS */
.spotify-controls-row {
  align-items: end;
  gap: 1rem;
}

.spotify-controls-row label {
  min-width: min(360px, 100%);
}

.spotify-controls-row input[type="file"],
.spotify-controls-row input[type="url"] {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: .95rem 1rem;
  background: #fff;
  font-weight: 800;
  color: var(--ink);
}

.spotify-rss-controls {
  display: flex;
  justify-content: space-between;
  gap: 1.25rem;
  align-items: center;
}

.spotify-analytics-results .analytics-card h3 {
  margin-bottom: .85rem;
}

.spotify-list li span {
  max-width: 70%;
  white-space: normal;
  line-height: 1.25;
}

.spotify-rss-grid .spotify-episode-card small {
  line-height: 1.25;
}

.spotify-kpis article strong {
  font-size: clamp(1.6rem, 2.5vw, 2.45rem);
}

/* === PODCA Analytics unified dashboard v1 === */
.analytics-source-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.analytics-source-head h3 {
  margin: 0 0 8px;
  font-size: clamp(1.4rem, 2vw, 2rem);
}
.analytics-head-actions {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 14px;
  min-width: min(100%, 520px);
}
.analytics-period-box {
  display: flex;
  align-items: end;
  gap: 10px;
  flex-wrap: wrap;
}
.analytics-period-box label,
.analytics-head-actions label,
.analytics-section-title label {
  display: grid;
  gap: 6px;
  font-weight: 900;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .74rem;
}
.analytics-period-box select,
.analytics-head-actions select,
.analytics-section-title select,
.analytics-period-box input,
.analytics-import-inner input {
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 13px 16px;
  font: inherit;
  font-weight: 900;
  color: var(--ink);
  background: #fff;
}
.analytics-custom-range {
  display: flex;
  align-items: center;
  gap: 8px;
}
.analytics-tabs-card {
  padding: 8px 16px !important;
}
.analytics-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.analytics-tabs button {
  border: 0;
  background: transparent;
  border-radius: 999px;
  padding: 12px 16px;
  font: inherit;
  font-weight: 950;
  color: var(--muted);
  cursor: pointer;
}
.analytics-tabs button.active {
  background: var(--ink);
  color: white;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .16);
}
.analytics-unified-content {
  display: block;
}
.analytics-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.analytics-grid-2 > .wide,
.analytics-grid-2 > .analytics-kpis {
  grid-column: 1 / -1;
}
.analytics-kpi-unified {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.analytics-kpi-unified article {
  min-height: 132px;
}
.analytics-kpi-unified article strong {
  font-size: clamp(2rem, 4vw, 3.2rem);
}
.analytics-section-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.analytics-section-title h3 {
  margin: 0;
}
.analytics-line-chart {
  width: 100%;
  min-height: 260px;
}
.analytics-line-chart svg {
  width: 100%;
  height: 230px;
  display: block;
  overflow: visible;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(to bottom, transparent 0, transparent 24%, rgba(148,163,184,.12) 24.5%, transparent 25%, transparent 49%, rgba(148,163,184,.12) 49.5%, transparent 50%, transparent 74%, rgba(148,163,184,.12) 74.5%, transparent 75%);
}
.analytics-chart-area {
  fill: rgba(244, 63, 94, .08);
}
.analytics-chart-line {
  fill: none;
  stroke: #6d5dfc;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 10px 15px rgba(109,93,252,.14));
}
.analytics-chart-labels {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-weight: 850;
  font-size: .8rem;
  padding: 8px 4px 0;
}
.analytics-progress-list {
  display: grid;
  gap: 12px;
}
.analytics-progress-row {
  display: grid;
  grid-template-columns: 36px minmax(100px, 1fr) minmax(120px, 1.6fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}
.analytics-row-icon {
  font-size: 1.55rem;
  display: grid;
  place-items: center;
}
.analytics-progress-row strong {
  font-size: 1rem;
  line-height: 1.15;
}
.analytics-progress-row em {
  font-style: normal;
  font-weight: 950;
  white-space: nowrap;
}
.analytics-bar {
  height: 9px;
  border-radius: 999px;
  background: #e9edf4;
  overflow: hidden;
}
.analytics-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #7c3aed, #14b8a6);
}
.analytics-donut-wrap {
  display: grid;
  grid-template-columns: minmax(160px, 240px) 1fr;
  align-items: center;
  gap: 24px;
}
.analytics-donut {
  width: min(220px, 100%);
  aspect-ratio: 1;
  border-radius: 50%;
  position: relative;
  margin: auto;
}
.analytics-donut::after {
  content: '';
  position: absolute;
  inset: 22%;
  border-radius: 50%;
  background: white;
}
.analytics-donut-list {
  display: grid;
  gap: 12px;
}
.analytics-donut-list p {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 10px;
  margin: 0;
  font-weight: 800;
}
.analytics-donut-list span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--dot);
  display: inline-block;
  margin-right: 8px;
}
.analytics-media-list {
  display: grid;
  gap: 14px;
}
.analytics-media-card {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 18px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: white;
  color: inherit;
  text-decoration: none;
}
.analytics-media-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 20px 45px rgba(15, 23, 42, .08);
}
.analytics-media-card img,
.youtube-thumb-placeholder {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 18px;
  background: #f3f5f9;
}
.analytics-media-card strong {
  display: block;
  font-size: 1.25rem;
  line-height: 1.1;
  margin-bottom: 6px;
}
.analytics-media-card span,
.analytics-media-card small {
  display: block;
  color: var(--muted);
  font-weight: 850;
  margin-top: 3px;
}
.analytics-import-compact details {
  width: 100%;
}
.analytics-import-compact summary {
  cursor: pointer;
  font-weight: 950;
  color: var(--ink);
}
.analytics-import-inner {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}
.analytics-import-inner input[type="url"] {
  min-width: min(100%, 380px);
}
.youtube-channel-card {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 18px;
  align-items: center;
}
.youtube-channel-card img,
.youtube-channel-placeholder {
  width: 92px;
  height: 92px;
  border-radius: 24px;
  object-fit: cover;
  display: grid;
  place-items: center;
  background: #f2f4f8;
  font-weight: 950;
}
.analytics-placeholder .analytics-links-row button,
.analytics-links-row button {
  cursor: pointer;
}
@media (max-width: 1100px) {
  .analytics-source-head,
  .analytics-head-actions {
    display: grid;
    justify-content: stretch;
  }
  .analytics-grid-2 {
    grid-template-columns: 1fr;
  }
  .analytics-progress-row {
    grid-template-columns: 32px 1fr;
  }
  .analytics-progress-row .analytics-bar,
  .analytics-progress-row em {
    grid-column: 2;
  }
  .analytics-media-card {
    grid-template-columns: 1fr;
  }
  .analytics-donut-wrap {
    grid-template-columns: 1fr;
  }
}

/* === PODCA Analytics true two-column full width v3 === */
/* Objectif : les onglets Google / YouTube / Spotify utilisent toute la largeur
   disponible, avec deux colonnes lisibles et des lignes de progression sans chevauchement. */

/* On libère les conteneurs Analytics des max-width hérités. */
#analyticsGrid,
#googleAnalyticsContent,
#youtubeAnalyticsContent,
#spotifyAnalyticsContent,
.analytics-unified-content,
.analytics-source-head,
.analytics-tabs-card,
.google-analytics-results,
.analytics-grid-2 {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Quand la page contient les onglets analytics, on laisse le contenu respirer. */
main:has(.analytics-tabs-card),
main:has(.analytics-unified-content),
.page-main:has(.analytics-tabs-card),
.page-content:has(.analytics-tabs-card),
.content-main:has(.analytics-tabs-card),
.app-main:has(.analytics-tabs-card),
.workspace-main:has(.analytics-tabs-card) {
  width: 100% !important;
  max-width: none !important;
}

/* Deux vraies colonnes sur toute la largeur. */
.analytics-grid-2,
.google-analytics-results {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 24px !important;
  align-items: start !important;
}

.analytics-grid-2 > *,
.google-analytics-results > *,
.analytics-unified-content > *,
#googleAnalyticsContent > *,
#youtubeAnalyticsContent > *,
#spotifyAnalyticsContent > * {
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.analytics-grid-2 > .wide,
.analytics-grid-2 > .analytics-kpis,
.google-analytics-results > .wide,
.google-analytics-results > .analytics-kpis,
.analytics-card.wide,
.analytics-kpis.wide {
  grid-column: 1 / -1 !important;
  width: 100% !important;
}

/* Cartes KPI : plus compactes et régulières sur toute la largeur. */
.analytics-kpi-unified,
.analytics-kpis.analytics-kpi-unified {
  width: 100% !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important;
  gap: 18px !important;
}

.analytics-kpi-unified article,
.analytics-kpis.analytics-kpi-unified article {
  min-width: 0 !important;
  width: 100% !important;
}

/* Lignes type Top pays / Top villes / sources : plus de chevauchement. */
.analytics-progress-list {
  width: 100% !important;
  max-width: none !important;
  display: grid !important;
  gap: 10px !important;
}

.analytics-progress-row {
  width: 100% !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: 46px minmax(150px, 230px) minmax(180px, 1fr) minmax(96px, max-content) !important;
  column-gap: 18px !important;
  row-gap: 8px !important;
  align-items: center !important;
  padding: 14px 0 !important;
  overflow: visible !important;
  position: relative !important;
}

.analytics-progress-row > * {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  position: relative !important;
  z-index: 1 !important;
}

.analytics-row-icon {
  width: 46px !important;
  min-width: 46px !important;
  height: 34px !important;
  display: grid !important;
  place-items: center !important;
  font-size: 1.45rem !important;
  line-height: 1 !important;
}

.analytics-progress-row strong {
  display: block !important;
  width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  line-height: 1.15 !important;
  font-size: clamp(.95rem, .9vw, 1.08rem) !important;
  color: var(--ink) !important;
}

.analytics-progress-row .analytics-bar,
.analytics-bar {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 10px !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  background: #e9edf4 !important;
}

.analytics-bar i {
  display: block !important;
  height: 100% !important;
  min-width: 4px !important;
  border-radius: inherit !important;
}

.analytics-progress-row em {
  display: block !important;
  justify-self: end !important;
  text-align: right !important;
  white-space: nowrap !important;
  font-style: normal !important;
  font-weight: 950 !important;
  color: var(--ink) !important;
  opacity: 1 !important;
  transform: none !important;
}

/* Les cartes médias gardent aussi la largeur disponible. */
.analytics-media-list,
.analytics-media-card {
  width: 100% !important;
  max-width: none !important;
}

.analytics-media-card {
  grid-template-columns: minmax(170px, 240px) minmax(0, 1fr) !important;
}

/* YouTube / Spotify / Google : les cards ne doivent plus se limiter à une petite colonne. */
.analytics-card,
.analytics-source-card,
.analytics-panel,
.analytics-results-card {
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Responsive : on passe en une colonne seulement quand l'écran devient vraiment trop étroit. */
@media (max-width: 1180px) {
  .analytics-grid-2,
  .google-analytics-results {
    grid-template-columns: 1fr !important;
  }

  .analytics-progress-row {
    grid-template-columns: 42px minmax(150px, 240px) minmax(160px, 1fr) minmax(90px, max-content) !important;
  }
}

@media (max-width: 760px) {
  .analytics-progress-row {
    grid-template-columns: 38px minmax(0, 1fr) !important;
  }

  .analytics-progress-row .analytics-bar,
  .analytics-progress-row em {
    grid-column: 2 !important;
    justify-self: stretch !important;
    text-align: left !important;
  }

  .analytics-media-card {
    grid-template-columns: 1fr !important;
  }
}

/* === PODCA Analytics layout v4 - vraie largeur + lignes lisibles === */
/* Cette version corrige la structure visuelle, pas seulement le max-width. */

.app-main,
.planner-page,
.analytics-unified-content,
.analytics-source-head,
.analytics-tabs-card,
#analyticsGrid,
#googleAnalyticsContent,
#youtubeAnalyticsContent,
#spotifyAnalyticsContent,
.google-analytics-results,
.analytics-grid-2 {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Les onglets analytics doivent utiliser toute la largeur disponible de la zone centrale. */
.planner-page:has(.analytics-tabs),
.planner-page:has(.analytics-unified-content),
.planner-page:has(#googleAnalyticsContent),
.planner-page:has(#youtubeAnalyticsContent),
.planner-page:has(#spotifyAnalyticsContent) {
  max-width: none !important;
}

.analytics-source-head,
.analytics-tabs-card,
.analytics-tabs,
.analytics-unified-content,
.google-analytics-results,
.analytics-grid-2 {
  max-width: none !important;
}

/* Deux vraies colonnes 50/50 sur toute la page. */
.analytics-grid-2,
.google-analytics-results {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 26px !important;
  align-items: start !important;
  width: 100% !important;
}

.analytics-grid-2 > *,
.google-analytics-results > * {
  min-width: 0 !important;
  max-width: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.analytics-grid-2 > .wide,
.google-analytics-results > .wide,
.analytics-card.wide,
.analytics-kpis.wide {
  grid-column: 1 / -1 !important;
}

.analytics-card,
.analytics-source-card,
.analytics-panel,
.analytics-results-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* KPI : plusieurs cartes sur toute la largeur. */
.analytics-kpi-unified,
.analytics-kpis.analytics-kpi-unified {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 18px !important;
  width: 100% !important;
}

.analytics-kpi-unified article,
.analytics-kpis.analytics-kpi-unified article {
  min-width: 0 !important;
  width: 100% !important;
}

/* Ancienne structure : neutralisation pour éviter les superpositions si elle subsiste. */
.analytics-progress-row {
  grid-template-columns: 46px minmax(150px, 220px) minmax(170px, 1fr) minmax(110px, max-content) !important;
  gap: 16px !important;
  overflow: hidden !important;
}
.analytics-progress-row em {
  opacity: 1 !important;
  transform: none !important;
  position: relative !important;
  z-index: 3 !important;
  background: var(--surface, #fff) !important;
  padding-left: 8px !important;
}

/* Nouvelle structure propre des lignes pays / villes / sources. */
.analytics-progress-list,
.analytics-progress-list-v4 {
  width: 100% !important;
  display: grid !important;
  gap: 0 !important;
}

.analytics-progress-row-v4 {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(190px, .9fr) minmax(210px, 1.35fr) minmax(112px, max-content) !important;
  align-items: center !important;
  gap: 20px !important;
  padding: 16px 0 !important;
  border-bottom: 1px solid var(--line, #e4e7ee) !important;
  overflow: hidden !important;
}

.analytics-row-main-v4 {
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 14px !important;
}

.analytics-row-icon-v4 {
  width: 44px !important;
  min-width: 44px !important;
  height: 34px !important;
  display: grid !important;
  place-items: center !important;
  font-size: 1.45rem !important;
  line-height: 1 !important;
}

.analytics-row-name-v4 {
  min-width: 0 !important;
  display: block !important;
  color: var(--ink, #171821) !important;
  font-weight: 950 !important;
  font-size: clamp(.98rem, .9vw, 1.08rem) !important;
  line-height: 1.15 !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.analytics-row-track-v4 {
  width: 100% !important;
  min-width: 0 !important;
  height: 11px !important;
  border-radius: 999px !important;
  background: #e9edf4 !important;
  overflow: hidden !important;
}

.analytics-row-track-v4 i {
  display: block !important;
  height: 100% !important;
  min-width: 4px !important;
  border-radius: inherit !important;
  background: linear-gradient(90deg, #7c3aed, #14b8a6) !important;
}

.analytics-row-value-v4 {
  justify-self: end !important;
  white-space: nowrap !important;
  text-align: right !important;
  color: var(--ink, #171821) !important;
  font-weight: 950 !important;
  font-size: clamp(.95rem, .85vw, 1.05rem) !important;
  line-height: 1.15 !important;
}

.analytics-row-value-v4 small {
  color: var(--muted, #73788a) !important;
  font-weight: 850 !important;
}

.analytics-media-list,
.analytics-media-card {
  width: 100% !important;
  max-width: none !important;
}

.analytics-media-card {
  grid-template-columns: minmax(180px, 240px) minmax(0, 1fr) !important;
}

@media (max-width: 1120px) {
  .analytics-grid-2,
  .google-analytics-results {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  .analytics-progress-row-v4 {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .analytics-row-track-v4,
  .analytics-row-value-v4 {
    width: 100% !important;
    justify-self: stretch !important;
    text-align: left !important;
  }
  .analytics-media-card {
    grid-template-columns: 1fr !important;
  }
}

/* PODCA_ANALYTICS_WIDTH_VALUES_V5
   Force les onglets Analytics à utiliser toute la largeur disponible
   et répare les lignes pays / villes / sources : nom | barre | valeur.
*/
body .main-content,
body .content,
body .page-content,
body .planner-content,
body .app-content,
body .workspace,
body .workspace-main,
body .content-shell,
body .page-shell,
body .analytics-shell,
body .analytics-page,
body .analytics-dashboard,
body .analytics-tab-panel,
body .analytics-section,
body .analytics-block,
body .analytics-fullwidth {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

body .analytics-shell,
body .analytics-page,
body .analytics-dashboard,
body .analytics-tab-panel {
  display: block !important;
}

body .analytics-two-columns,
body .analytics-grid-2,
body .analytics-two-col,
body .analytics-split,
body .analytics-duo,
body .analytics-columns,
body .analytics-layout-grid,
body .podca-analytics-wide-two {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 28px !important;
  width: 100% !important;
  max-width: none !important;
  align-items: stretch !important;
}

body .analytics-two-columns > *,
body .analytics-grid-2 > *,
body .analytics-two-col > *,
body .analytics-split > *,
body .analytics-duo > *,
body .analytics-columns > *,
body .analytics-layout-grid > *,
body .podca-analytics-wide-two > * {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

body .analytics-card,
body .analytics-panel,
body .analytics-chart-card,
body .analytics-ranking-card,
body .analytics-list-card,
body .analytics-kpi-card,
body .metric-card,
body .podca-analytics-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

/* Rangées classiques : icône | libellé | barre | valeur */
body .podca-analytics-rank-row,
body .analytics-country-row,
body .analytics-location-row,
body .analytics-city-row,
body .analytics-source-row,
body .analytics-ranking-row,
body .analytics-list-row,
body .country-row,
body .city-row,
body .source-row,
body .ranking-row {
  display: grid !important;
  grid-template-columns: 44px minmax(180px, .85fr) minmax(240px, 1.7fr) minmax(110px, max-content) !important;
  column-gap: 18px !important;
  row-gap: 8px !important;
  align-items: center !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 62px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  position: relative !important;
}

body .podca-analytics-rank-row > *,
body .analytics-country-row > *,
body .analytics-location-row > *,
body .analytics-city-row > *,
body .analytics-source-row > *,
body .analytics-ranking-row > *,
body .analytics-list-row > *,
body .country-row > *,
body .city-row > *,
body .source-row > *,
body .ranking-row > * {
  min-width: 0 !important;
  position: relative !important;
  z-index: 2 !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

body .podca-analytics-rank-row > :first-child,
body .analytics-country-row > :first-child,
body .analytics-location-row > :first-child,
body .analytics-city-row > :first-child,
body .analytics-source-row > :first-child,
body .analytics-ranking-row > :first-child,
body .analytics-list-row > :first-child,
body .country-row > :first-child,
body .city-row > :first-child,
body .source-row > :first-child,
body .ranking-row > :first-child {
  grid-column: 1 !important;
  justify-self: center !important;
  text-align: center !important;
  font-size: 1.35rem !important;
  line-height: 1 !important;
  width: 36px !important;
}

body .podca-analytics-rank-row strong,
body .podca-analytics-rank-row .label,
body .podca-analytics-rank-row .name,
body .podca-analytics-rank-row .title,
body .analytics-country-row strong,
body .analytics-location-row strong,
body .analytics-city-row strong,
body .analytics-source-row strong,
body .analytics-ranking-row strong,
body .analytics-list-row strong,
body .country-row strong,
body .city-row strong,
body .source-row strong,
body .ranking-row strong {
  grid-column: 2 !important;
  color: #151722 !important;
  opacity: 1 !important;
  font-weight: 900 !important;
  line-height: 1.12 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  text-align: left !important;
}

body .podca-analytics-rank-row .analytics-bar,
body .podca-analytics-rank-row .bar,
body .podca-analytics-rank-row .progress,
body .podca-analytics-rank-row [class*="bar"],
body .podca-analytics-rank-row [class*="progress"],
body .analytics-country-row [class*="bar"],
body .analytics-location-row [class*="bar"],
body .analytics-city-row [class*="bar"],
body .analytics-source-row [class*="bar"],
body .analytics-ranking-row [class*="bar"],
body .analytics-list-row [class*="bar"],
body .country-row [class*="bar"],
body .city-row [class*="bar"],
body .source-row [class*="bar"],
body .ranking-row [class*="bar"],
body .analytics-country-row [class*="progress"],
body .analytics-location-row [class*="progress"],
body .analytics-city-row [class*="progress"],
body .analytics-source-row [class*="progress"],
body .analytics-ranking-row [class*="progress"],
body .analytics-list-row [class*="progress"],
body .country-row [class*="progress"],
body .city-row [class*="progress"],
body .source-row [class*="progress"],
body .ranking-row [class*="progress"] {
  grid-column: 3 !important;
  width: 100% !important;
  min-width: 180px !important;
  max-width: none !important;
  height: 12px !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  justify-self: stretch !important;
  opacity: 1 !important;
}

body .podca-analytics-rank-value,
body .analytics-rank-value,
body .analytics-row-value,
body .analytics-country-value,
body .analytics-location-value,
body .analytics-source-value,
body .analytics-value,
body .rank-value,
body .row-value,
body .value {
  grid-column: 4 !important;
  justify-self: end !important;
  text-align: right !important;
  color: #151722 !important;
  opacity: 1 !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
  min-width: 96px !important;
  z-index: 4 !important;
}

body .podca-analytics-rank-row .podca-analytics-rank-value {
  grid-column: 4 !important;
}

/* Cache les valeurs fantômes dupliquées au milieu des lignes si un ancien style les plaçait mal. */
body .podca-analytics-rank-row .podca-ghost-value {
  display: none !important;
}

@media (max-width: 1050px) {
  body .analytics-two-columns,
  body .analytics-grid-2,
  body .analytics-two-col,
  body .analytics-split,
  body .analytics-duo,
  body .analytics-columns,
  body .analytics-layout-grid,
  body .podca-analytics-wide-two {
    grid-template-columns: 1fr !important;
  }
  body .podca-analytics-rank-row,
  body .analytics-country-row,
  body .analytics-location-row,
  body .analytics-city-row,
  body .analytics-source-row,
  body .analytics-ranking-row,
  body .analytics-list-row,
  body .country-row,
  body .city-row,
  body .source-row,
  body .ranking-row {
    grid-template-columns: 36px minmax(120px, 1fr) minmax(120px, 1fr) minmax(84px, max-content) !important;
    column-gap: 10px !important;
  }
}

/* -------------------------------------------------------------------------
   PODCA Meta / Instagram Analytics — ajouté par patch
   ------------------------------------------------------------------------- */
#podcaMetaAnalytics,
.podca-meta-analytics-page {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

.podca-meta-analytics-page {
  display: grid;
  gap: 1.4rem;
  margin-top: 1.4rem;
}

.podca-analytics-hero,
.podca-analytics-tabs,
.podca-analytics-card,
.podca-media-card {
  border: 1px solid rgba(120, 130, 155, .22);
  border-radius: 28px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 18px 50px rgba(21, 25, 40, .035);
}

.podca-analytics-hero {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  gap: 1.5rem;
  align-items: center;
  padding: 1.6rem 1.8rem;
}

.podca-analytics-hero span,
.podca-kpi span,
.podca-period-controls label,
.podca-analytics-card h3 {
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted, #73798f);
  font-weight: 900;
}

.podca-analytics-hero h2 {
  margin: .15rem 0 .35rem;
  font-size: clamp(2rem, 4vw, 4.2rem);
  line-height: .95;
}

.podca-analytics-hero p,
.podca-muted,
.podca-empty {
  color: var(--muted, #73798f);
  font-weight: 700;
}

.podca-period-controls {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: end;
  justify-content: flex-end;
}

.podca-period-controls label {
  display: grid;
  gap: .35rem;
  font-size: .8rem;
}

.podca-period-controls select,
.podca-period-controls input,
.podca-period-controls button,
.podca-content-toolbar select {
  min-height: 44px;
  border: 1px solid rgba(120,130,155,.28);
  border-radius: 16px;
  padding: .55rem .9rem;
  background: #fff;
  color: var(--ink, #161821);
  font-weight: 900;
}

.podca-period-controls button {
  background: var(--ink, #161821);
  color: #fff;
  cursor: pointer;
  padding-inline: 1.4rem;
}

.podca-analytics-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  padding: .55rem;
}

.podca-analytics-tabs button {
  border: 0;
  border-radius: 22px;
  padding: .9rem 1.25rem;
  background: transparent;
  color: var(--muted, #73798f);
  font-weight: 950;
  font-size: 1rem;
  cursor: pointer;
}

.podca-analytics-tabs button.active {
  background: var(--ink, #161821);
  color: #fff;
  box-shadow: 0 15px 28px rgba(21,25,40,.16);
}

.podca-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 1rem;
}

.podca-kpi {
  min-height: 132px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .25rem;
  border: 1px solid rgba(120, 130, 155, .22);
  border-radius: 28px;
  background: rgba(255,255,255,.92);
  padding: 1.25rem;
}

.podca-kpi strong {
  font-size: clamp(2rem, 4vw, 4.3rem);
  line-height: .95;
}

.podca-kpi small {
  color: var(--muted, #73798f);
  font-weight: 800;
}

.podca-two-cols {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: stretch;
}

.podca-analytics-card {
  padding: 1.45rem;
  min-width: 0;
  overflow: hidden;
}

.podca-analytics-card h3 {
  margin: 0 0 1.1rem;
  color: var(--ink, #161821);
  text-transform: none;
  letter-spacing: 0;
  font-size: 1.25rem;
}

.podca-row-list {
  display: grid;
  gap: .75rem;
}

.podca-analytics-row {
  display: grid;
  grid-template-columns: minmax(160px, 1.2fr) minmax(160px, 2fr) minmax(110px, auto);
  gap: 1rem;
  align-items: center;
  min-width: 0;
}

.podca-row-name {
  display: flex;
  gap: .7rem;
  align-items: center;
  min-width: 0;
  font-weight: 950;
}

.podca-row-name span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.podca-row-icon {
  width: 1.8rem;
  flex: 0 0 1.8rem;
  text-align: center;
}

.podca-row-bar {
  position: relative;
  height: 11px;
  border-radius: 999px;
  background: #e9edf5;
  overflow: hidden;
}

.podca-row-bar span {
  display: block;
  height: 100%;
  min-width: 4px;
  border-radius: inherit;
  background: linear-gradient(90deg, #7c4dff, #18c2b6);
}

.podca-row-value {
  display: flex;
  gap: .45rem;
  justify-content: flex-end;
  align-items: baseline;
  font-weight: 950;
  white-space: nowrap;
}

.podca-row-value small {
  color: var(--muted, #73798f);
  font-weight: 900;
}

.podca-svg-chart {
  height: 220px;
  color: #6d63ff;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(109,99,255,.10), rgba(109,99,255,0));
  overflow: hidden;
}

.podca-svg-chart svg {
  width: 100%;
  height: 100%;
}

.podca-chart-footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: .85rem;
  color: var(--muted, #73798f);
  font-weight: 900;
}

.podca-chart-footer strong {
  color: var(--ink, #161821);
}

.podca-simple-bars {
  display: grid;
  gap: .8rem;
}

.podca-simple-bars > div {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) minmax(140px, 2fr) auto;
  gap: 1rem;
  align-items: center;
  font-weight: 900;
}

.podca-simple-bars b {
  display: block;
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, #7c4dff, #18c2b6);
  min-width: 5px;
}

.podca-content-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: flex-end;
  align-items: end;
  margin-bottom: 1rem;
}

.podca-content-toolbar label {
  display: grid;
  gap: .35rem;
  color: var(--muted, #73798f);
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.podca-media-list {
  display: grid;
  gap: 1rem;
}

.podca-media-card {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 1.1rem;
  padding: 1rem;
  align-items: center;
}

.podca-media-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 20px;
  overflow: hidden;
  background: #eceff6;
}

.podca-media-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.podca-thumb-placeholder {
  height: 100%;
  display: grid;
  place-items: center;
  font-weight: 950;
  color: var(--muted, #73798f);
}

.podca-media-body h4 {
  margin: 0 0 .35rem;
  font-size: clamp(1.2rem, 2vw, 2rem);
  line-height: 1.08;
}

.podca-media-body p {
  margin: .25rem 0;
  color: var(--muted, #73798f);
  font-weight: 850;
}

.podca-media-body strong {
  display: block;
  margin-top: .35rem;
}

.podca-error {
  color: #ff3b5f;
  font-weight: 950;
}

@media (max-width: 1100px) {
  .podca-analytics-hero,
  .podca-two-cols,
  .podca-kpi-grid,
  .podca-media-card {
    grid-template-columns: 1fr;
  }
  .podca-period-controls {
    justify-content: flex-start;
  }
  .podca-kpi-grid {
    grid-template-columns: repeat(2, minmax(160px, 1fr));
  }
}

@media (max-width: 720px) {
  .podca-kpi-grid,
  .podca-analytics-row,
  .podca-simple-bars > div {
    grid-template-columns: 1fr;
  }
  .podca-row-value {
    justify-content: flex-start;
  }
}

/* -------------------------------------------------------------------------
   PODCA Meta CSV / ZIP Analytics
   ------------------------------------------------------------------------- */
#podcaMetaAnalytics,
.podca-meta-analytics-page,
.podca-meta-csv-page {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.podca-import-card {
  margin: 18px 0;
}
.podca-import-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}
.podca-import-zone {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 14px;
  padding: 14px;
  border: 1px dashed rgba(255,255,255,.22);
  border-radius: 18px;
  background: rgba(255,255,255,.04);
}
.podca-import-zone input[type="file"] {
  max-width: 420px;
}
.podca-import-zone button,
.podca-period-controls button {
  border: 0;
  border-radius: 999px;
  padding: 10px 15px;
  font-weight: 700;
  cursor: pointer;
}
.podca-secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  border: 1px solid rgba(255,255,255,.18);
}
.podca-success {
  margin-top: 12px;
  color: #2fbf71;
  font-weight: 700;
}
.podca-error {
  margin-top: 12px;
  color: #ff6b6b;
  font-weight: 700;
}
.podca-import-history {
  display: grid;
  gap: 10px;
}
.podca-import-history > div {
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.05);
}
.podca-import-history span,
.podca-import-history small,
.podca-muted {
  opacity: .72;
}
.podca-meta-csv-card .podca-media-thumb {
  text-decoration: none;
}
@media (max-width: 760px) {
  .podca-import-head,
  .podca-import-zone {
    align-items: stretch;
    flex-direction: column;
  }
  .podca-import-zone input[type="file"] {
    max-width: 100%;
  }
}

/* PODCA Meta CSV import safety fix */
#metaCsvSelectedFilesLabel,
#metaCsvSafetyMessage {
  display: block;
  width: 100%;
}
#metaImportBtn:disabled {
  opacity: .65;
  cursor: wait;
}

/* Instagram CSV import : même logique visuelle que Spotify Creators */
.instagram-controls-row input[type="file"] {
  max-width: 440px;
}
.instagram-analytics-results .analytics-card h3 {
  margin-bottom: 12px;
}
.instagram-content-card .youtube-thumb-placeholder {
  min-height: 120px;
}
.instagram-content-card small {
  line-height: 1.35;
}

/* PODCA analytics fullwidth readable layout START */
/* Layout only: no color changes. Forces all analytics pages to use a full-width header, full-width KPI block, then two equal readable columns. */
.app-main,
.planner-page,
#analyticsPanel,
#analyticsGrid,
.google-analytics-content,
#googleAnalyticsContent,
#youtubeAnalyticsContent,
#spotifyAnalyticsContent,
#instagramAnalyticsContent,
#metaAnalyticsContent {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#analyticsGrid {
  display: block !important;
}

#analyticsGrid > .analytics-card,
#analyticsGrid > .analytics-source-head,
#analyticsGrid > .analytics-tabs-card,
#analyticsGrid > .analytics-google-controls,
.analytics-source-head,
.analytics-tabs-card,
.analytics-google-controls,
.youtube-controls,
.spotify-controls,
.spotify-rss-controls {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.google-analytics-results,
.youtube-analytics-results,
.spotify-analytics-results,
.instagram-analytics-results,
.meta-analytics-results,
.analytics-results,
.analytics-grid-2 {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2vw, 28px) !important;
  align-items: stretch !important;
  box-sizing: border-box !important;
}

.google-analytics-results > *,
.youtube-analytics-results > *,
.spotify-analytics-results > *,
.instagram-analytics-results > *,
.meta-analytics-results > *,
.analytics-results > *,
.analytics-grid-2 > * {
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

.google-analytics-results > .wide,
.youtube-analytics-results > .wide,
.spotify-analytics-results > .wide,
.instagram-analytics-results > .wide,
.meta-analytics-results > .wide,
.analytics-results > .wide,
.analytics-grid-2 > .wide,
.google-analytics-results > .analytics-kpis,
.youtube-analytics-results > .analytics-kpis,
.spotify-analytics-results > .analytics-kpis,
.instagram-analytics-results > .analytics-kpis,
.meta-analytics-results > .analytics-kpis,
.google-analytics-results > .google-kpis,
.youtube-analytics-results > .youtube-kpis,
.spotify-analytics-results > .spotify-kpis,
.instagram-analytics-results > .instagram-kpis,
.meta-analytics-results > .meta-kpis,
.google-analytics-results > .analytics-setup-card,
.youtube-analytics-results > .analytics-setup-card,
.spotify-analytics-results > .analytics-setup-card,
.instagram-analytics-results > .analytics-setup-card,
.meta-analytics-results > .analytics-setup-card,
.google-analytics-results > .youtube-channel-card,
.youtube-analytics-results > .youtube-channel-card,
.spotify-analytics-results > .spotify-rss-controls,
.instagram-analytics-results > .instagram-import-card,
.meta-analytics-results > .instagram-import-card,
.google-analytics-results > .analytics-meta,
.youtube-analytics-results > .analytics-meta,
.spotify-analytics-results > .analytics-meta,
.instagram-analytics-results > .analytics-meta,
.meta-analytics-results > .analytics-meta {
  grid-column: 1 / -1 !important;
}

.analytics-card,
.analytics-source-head,
.analytics-tabs-card,
.analytics-google-controls {
  min-width: 0 !important;
  max-width: none !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.analytics-kpis,
.google-kpis,
.youtube-kpis,
.spotify-kpis,
.instagram-kpis,
.meta-kpis {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: clamp(14px, 1.5vw, 24px) !important;
  box-sizing: border-box !important;
}

.analytics-kpis article,
.google-kpis article,
.youtube-kpis article,
.spotify-kpis article,
.instagram-kpis article,
.meta-kpis article,
.dashboard-card,
.analytics-card article {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.analytics-kpis article span,
.google-kpis article span,
.youtube-kpis article span,
.spotify-kpis article span,
.instagram-kpis article span,
.meta-kpis article span,
.analytics-kpis article small,
.google-kpis article small,
.youtube-kpis article small,
.spotify-kpis article small,
.instagram-kpis article small,
.meta-kpis article small {
  display: block !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

.analytics-kpis article strong,
.google-kpis article strong,
.youtube-kpis article strong,
.spotify-kpis article strong,
.instagram-kpis article strong,
.meta-kpis article strong {
  display: block !important;
  max-width: 100% !important;
  line-height: 1.05 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  font-size: clamp(2rem, 4vw, 4.4rem) !important;
}

.analytics-card h3,
.analytics-card p,
.analytics-card small,
.analytics-card strong,
.analytics-card span,
.analytics-card a,
.analytics-card li,
.youtube-video-card,
.youtube-video-card strong,
.youtube-video-card small,
.spotify-episode-card,
.spotify-episode-card strong,
.spotify-episode-card small {
  max-width: 100% !important;
  min-width: 0 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  box-sizing: border-box !important;
}

.analytics-list,
.spotify-list,
.compact-list,
.analytics-links-row,
.analytics-controls-row,
.spotify-controls-row,
.youtube-distribution,
.youtube-video-grid,
.spotify-rss-grid {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.youtube-video-grid,
.spotify-rss-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap: clamp(14px, 1.5vw, 22px) !important;
}

.activity-scroll,
.analytics-table-scroll,
.analytics-data-table,
.activity-table {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.analytics-table-scroll {
  overflow-x: auto !important;
}

.analytics-data-table th,
.analytics-data-table td,
.activity-table th,
.activity-table td {
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  vertical-align: top !important;
}

@media (max-width: 1180px) {
  .google-analytics-results,
  .youtube-analytics-results,
  .spotify-analytics-results,
  .instagram-analytics-results,
  .meta-analytics-results,
  .analytics-results,
  .analytics-grid-2 {
    grid-template-columns: 1fr !important;
  }

  .analytics-kpis,
  .google-kpis,
  .youtube-kpis,
  .spotify-kpis,
  .instagram-kpis,
  .meta-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 720px) {
  .analytics-source-head,
  .analytics-google-controls,
  .youtube-controls,
  .spotify-controls,
  .spotify-rss-controls {
    display: block !important;
  }

  .analytics-kpis,
  .google-kpis,
  .youtube-kpis,
  .spotify-kpis,
  .instagram-kpis,
  .meta-kpis,
  .youtube-video-grid,
  .spotify-rss-grid {
    grid-template-columns: 1fr !important;
  }
}
/* PODCA analytics fullwidth readable layout END */


/* PODCA analytics full width readable v2 */
#analyticsPanel,
#analyticsGrid,
#googleAnalyticsContent,
.google-analytics-content,
.google-analytics-results,
.youtube-analytics-results,
.spotify-analytics-results,
.instagram-analytics-results,
.meta-analytics-results,
.podca-global-results {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

.google-analytics-results,
.youtube-analytics-results,
.spotify-analytics-results,
.instagram-analytics-results,
.meta-analytics-results,
.podca-global-results {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  align-items: stretch !important;
}

.google-analytics-results > .analytics-card,
.youtube-analytics-results > .analytics-card,
.spotify-analytics-results > .analytics-card,
.instagram-analytics-results > .analytics-card,
.meta-analytics-results > .analytics-card,
.podca-global-results > .analytics-card {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.google-analytics-results > .analytics-card.wide,
.youtube-analytics-results > .analytics-card.wide,
.spotify-analytics-results > .analytics-card.wide,
.instagram-analytics-results > .analytics-card.wide,
.meta-analytics-results > .analytics-card.wide,
.podca-global-results > .analytics-card.wide,
.google-analytics-results > .analytics-kpis,
.youtube-analytics-results > .analytics-kpis,
.spotify-analytics-results > .analytics-kpis,
.instagram-analytics-results > .analytics-kpis,
.meta-analytics-results > .analytics-kpis,
.podca-global-results > .analytics-kpis,
.analytics-google-controls,
.spotify-rss-controls,
.youtube-channel-card,
.analytics-setup-card {
  grid-column: 1 / -1 !important;
}

.analytics-kpis,
.google-kpis,
.spotify-kpis,
.youtube-kpis,
.podca-global-kpis {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap: 20px !important;
  align-items: stretch !important;
}

.analytics-kpis article,
.google-kpis article,
.spotify-kpis article,
.youtube-kpis article,
.podca-global-kpis article,
.analytics-setup-grid article {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.analytics-kpis article span,
.google-kpis article span,
.spotify-kpis article span,
.youtube-kpis article span,
.podca-global-kpis article span {
  display: block !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

.analytics-kpis article strong,
.google-kpis article strong,
.spotify-kpis article strong,
.youtube-kpis article strong,
.podca-global-kpis article strong {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  font-size: clamp(3rem, 5.2vw, 6.2rem) !important;
  line-height: .95 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  letter-spacing: -0.05em !important;
}

/* Suppression des sous-titres inutiles dans les modules analytics */
.analytics-kpis article small,
.google-kpis article small,
.spotify-kpis article small,
.youtube-kpis article small,
.podca-global-kpis article small,
.analytics-google-controls p,
.youtube-controls p,
.spotify-controls p,
.spotify-rss-controls p,
.podca-global-intro p,
.youtube-channel-card p:not(.hint),
.analytics-placeholder .hint {
  display: none !important;
}

.analytics-card h3,
.analytics-card strong,
.analytics-card span,
.analytics-card p,
.analytics-card li,
.analytics-card td,
.analytics-card th,
.analytics-card a {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}

.analytics-list.compact-list li,
.podca-summary-card .analytics-list li {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  gap: 12px !important;
  align-items: center !important;
  width: 100% !important;
}

.analytics-list.compact-list li em,
.podca-summary-card .analytics-list li em {
  font-style: normal !important;
  opacity: .55 !important;
  font-size: .85rem !important;
  white-space: nowrap !important;
}

.analytics-table-scroll,
.activity-scroll {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
}

.analytics-data-table,
.activity-table.analytics-data-table {
  width: 100% !important;
  table-layout: fixed !important;
}

.analytics-data-table th,
.analytics-data-table td {
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

@media (max-width: 980px) {
  .google-analytics-results,
  .youtube-analytics-results,
  .spotify-analytics-results,
  .instagram-analytics-results,
  .meta-analytics-results,
  .podca-global-results {
    grid-template-columns: 1fr !important;
  }
  .analytics-kpis article strong,
  .google-kpis article strong,
  .spotify-kpis article strong,
  .youtube-kpis article strong,
  .podca-global-kpis article strong {
    font-size: clamp(2.6rem, 12vw, 4.8rem) !important;
  }
}

/* PODCA TikTok CSV analytics patch */
.tiktok-controls input[type="file"],
.tiktok-controls-row input[type="file"] {
  max-width: 100%;
}

.tiktok-tabs-card {
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
}

.tiktok-tabs-card button {
  border: 0;
  border-radius: 999px;
  padding: 14px 24px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  background: transparent;
}

.tiktok-tabs-card button.active {
  background: #11121c;
  color: #fff;
}

.tiktok-analytics-results {
  width: 100%;
}

.tiktok-kpis {
  width: 100%;
}

.tiktok-content-card .youtube-thumb-placeholder {
  min-height: 120px;
}


/* PODCA analytics refonte v10 CSS START */
#analyticsPanel > .panel-head { display: none !important; }
#analyticsGrid,
.google-analytics-content,
.podca-v10-general,
.podca-v10-grid { width:100% !important; max-width:none !important; box-sizing:border-box !important; }
.podca-v10-general,
.podca-v10-grid { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:22px !important; align-items:stretch !important; }
.podca-v10-general > .wide,
.podca-v10-grid > .wide,
.podca-v10-global-kpis,
.podca-v10-hero,
.podca-v10-tabs { grid-column:1 / -1 !important; }
.podca-v10-hero { display:grid !important; grid-template-columns:minmax(0,1fr) auto !important; gap:24px !important; align-items:center !important; border-left:10px solid var(--podca-platform-color,#11121c) !important; }
.podca-v10-hero h3 { margin:0 !important; font-size:clamp(2.4rem,4vw,4.4rem) !important; line-height:.95 !important; }
.podca-v10-hero p:not(.eyebrow), .podca-v10-hero small, .podca-v10-kpi small, .analytics-kpis article small, .google-kpis article small, .spotify-kpis article small, .youtube-kpis article small { display:none !important; }
.podca-v10-youtube { --podca-platform-color:#ff0033; }
.podca-v10-instagram { --podca-platform-color:#ff7a9d; }
.podca-v10-tiktok { --podca-platform-color:#11121c; }
.podca-v10-spotify { --podca-platform-color:#1db954; }
.podca-v10-controls { display:flex !important; gap:14px !important; align-items:end !important; flex-wrap:wrap !important; justify-content:flex-end !important; }
.podca-v10-controls label { display:grid !important; gap:8px !important; font-weight:800 !important; text-transform:uppercase !important; letter-spacing:.12em !important; color:#73788a !important; }
.podca-v10-controls select,
.podca-v10-controls input[type=file] { min-width:220px !important; max-width:100% !important; }
.podca-v10-tabs { display:flex !important; gap:12px !important; align-items:center !important; flex-wrap:wrap !important; }
.podca-v10-tabs button { border:0 !important; border-radius:999px !important; padding:14px 26px !important; background:transparent !important; font:inherit !important; font-weight:900 !important; color:#73788a !important; cursor:pointer !important; }
.podca-v10-tabs button.active { background:#11121c !important; color:white !important; }
.podca-v10-global-kpis { width:100% !important; display:grid !important; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)) !important; gap:20px !important; }
.podca-v10-kpi,
.podca-v10-global-kpis article { width:100% !important; min-width:0 !important; box-sizing:border-box !important; overflow:hidden !important; }
.podca-v10-kpi span,
.podca-v10-global-kpis article span { display:block !important; font-weight:900 !important; text-transform:uppercase !important; letter-spacing:.12em !important; color:#73788a !important; white-space:normal !important; }
.podca-v10-kpi strong,
.podca-v10-global-kpis article strong { display:block !important; max-width:100% !important; font-size:clamp(3.5rem,5.8vw,7rem) !important; line-height:.92 !important; letter-spacing:-.06em !important; white-space:normal !important; overflow-wrap:anywhere !important; }
.podca-v10-list { min-width:0 !important; overflow:hidden !important; }
.podca-v10-list h3,
.podca-v10-chart h3 { margin-top:0 !important; }
.podca-v10-row { display:grid !important; grid-template-columns:minmax(170px,1fr) minmax(180px,1.6fr) auto !important; gap:18px !important; align-items:center !important; padding:18px 0 !important; border-bottom:1px solid #e5e7f0 !important; font-family:inherit !important; }
.podca-v10-label { display:flex !important; gap:12px !important; align-items:center !important; font-size:1.05rem !important; font-weight:800 !important; line-height:1.15 !important; white-space:normal !important; overflow-wrap:anywhere !important; }
.podca-v10-label i { font-style:normal !important; font-size:1.2rem !important; }
.podca-v10-row b { position:relative !important; display:block !important; height:18px !important; background:#eef1f7 !important; border-radius:999px !important; overflow:hidden !important; }
.podca-v10-row b em { position:absolute !important; inset:0 auto 0 0 !important; display:block !important; border-radius:999px !important; background:linear-gradient(90deg,#7c3aed,#14b8a6) !important; }
.podca-v10-row strong { font-size:1.35rem !important; white-space:nowrap !important; }
.podca-v10-bars { height:240px !important; display:flex !important; gap:8px !important; align-items:end !important; padding:18px !important; background:#f7f8fc !important; border-radius:28px !important; }
.podca-v10-bars span { flex:1 !important; min-width:8px !important; border-radius:999px 999px 0 0 !important; background:linear-gradient(180deg,#7c3aed,#14b8a6) !important; }
.podca-v10-media-grid { display:grid !important; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important; gap:16px !important; }
.podca-v10-media { display:grid !important; gap:8px !important; padding:18px !important; border:1px solid #e1e5ef !important; border-radius:24px !important; text-decoration:none !important; color:inherit !important; min-width:0 !important; }
.podca-v10-media strong { overflow-wrap:anywhere !important; }
.podca-v10-media em { font-style:normal !important; font-size:1.6rem !important; font-weight:900 !important; }
.analytics-list.compact-list li span,
.podca-summary-card .analytics-list li span { white-space:normal !important; font-size:1.05rem !important; line-height:1.15 !important; }
.analytics-list.compact-list li em,
.podca-summary-card .analytics-list li em { display:none !important; }
.youtube-channel-card { display:none !important; }
@media (max-width: 1100px) {
  .podca-v10-general,.podca-v10-grid { grid-template-columns:1fr !important; }
  .podca-v10-hero { grid-template-columns:1fr !important; }
  .podca-v10-controls { justify-content:flex-start !important; }
  .podca-v10-row { grid-template-columns:1fr !important; }
  .podca-v10-kpi strong,.podca-v10-global-kpis article strong { font-size:clamp(3rem,13vw,5rem) !important; }
}
/* PODCA analytics refonte v10 CSS END */

