:root {
  --navy: #173a63;
  --navy-2: #0f2b4b;
  --blue: #2f6fbd;
  --blue-soft: #eaf2fb;
  --green: #1f8f63;
  --green-soft: #e8f7f0;
  --amber: #c97a12;
  --amber-soft: #fff4df;
  --red: #c34242;
  --red-soft: #fdecec;
  --ink: #1f2937;
  --muted: #667085;
  --line: #dfe5ec;
  --surface: #ffffff;
  --canvas: #f4f7fb;
  --radius: 14px;
  --shadow: 0 8px 24px rgba(15, 43, 75, .08);
}

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

.app-shell { min-height: 100vh; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 68px;
  padding: 10px 22px;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}
.brand { display: flex; align-items: center; gap: 12px; font-weight: 800; color: var(--navy); }
.brand-mark {
  width: 40px; height: 40px; border-radius: 12px;
  display: grid; place-items: center;
  color: white; background: linear-gradient(145deg, var(--navy), var(--blue));
  box-shadow: var(--shadow);
}
.topbar-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sync-pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 11px; border-radius: 999px;
  background: var(--blue-soft); color: var(--navy); font-size: 13px; font-weight: 700;
}
.sync-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--green); }
.sync-pill.offline { background: var(--amber-soft); color: #7a4a08; }
.sync-pill.offline .sync-dot { background: var(--amber); }
.sync-pill.pending { background: var(--red-soft); color: #8a2727; }
.sync-pill.pending .sync-dot { background: var(--red); }

.page { padding: 24px; max-width: 1480px; margin: 0 auto; }
.page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.page-title h1 { margin: 0 0 5px; font-size: clamp(24px, 3vw, 34px); color: var(--navy-2); }
.page-title p { margin: 0; color: var(--muted); }
.actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

.btn {
  min-height: 42px; border: 1px solid transparent; border-radius: 11px;
  padding: 9px 14px; font-weight: 750; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { color: #fff; background: var(--navy); box-shadow: 0 5px 14px rgba(23,58,99,.18); }
.btn-secondary { color: var(--navy); background: var(--blue-soft); border-color: #d3e3f6; }
.btn-success { color: #fff; background: var(--green); }
.btn-danger { color: var(--red); background: var(--red-soft); }
.btn-ghost { color: var(--ink); background: #fff; border-color: var(--line); }
.btn-sm { min-height: 34px; padding: 6px 10px; font-size: 13px; border-radius: 9px; }
.icon-btn { border: 0; background: transparent; min-width: 38px; min-height: 38px; border-radius: 10px; font-size: 22px; }
.icon-btn:hover { background: var(--blue-soft); }

.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; margin-bottom: 20px; }
.kpi-card, .card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
}
.kpi-card { padding: 18px; }
.kpi-label { color: var(--muted); font-size: 13px; font-weight: 700; margin-bottom: 8px; }
.kpi-value { font-size: clamp(24px, 3vw, 34px); font-weight: 850; color: var(--navy-2); }
.kpi-foot { margin-top: 8px; color: var(--muted); font-size: 12px; }
.card { padding: 18px; }
.card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.card h2, .card h3 { margin: 0; color: var(--navy-2); }
.card h2 { font-size: 19px; }
.card h3 { font-size: 16px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.stack { display: grid; gap: 14px; }

.toolbar {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 13px; margin-bottom: 15px;
}
.input, select, textarea {
  width: 100%; border: 1px solid #cfd7e2; border-radius: 10px; background: #fff; color: var(--ink);
  min-height: 42px; padding: 9px 11px; outline: none;
}
.input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,111,189,.12); }
.toolbar .input, .toolbar select { width: auto; min-width: 180px; flex: 1 1 180px; }
textarea { min-height: 110px; resize: vertical; }
.field { display: grid; gap: 6px; }
.field label { font-size: 13px; font-weight: 750; color: #344054; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-grid .full { grid-column: 1 / -1; }

.table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
table { width: 100%; border-collapse: collapse; min-width: 760px; }
th, td { padding: 12px 13px; border-bottom: 1px solid #edf0f4; text-align: left; vertical-align: middle; }
th { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; background: #f9fbfd; }
td { font-size: 14px; }
tr:last-child td { border-bottom: 0; }
.row-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }

.badge { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 800; background: #eef2f6; color: #475467; }
.badge.green { background: var(--green-soft); color: #176b4a; }
.badge.amber { background: var(--amber-soft); color: #8b550a; }
.badge.red { background: var(--red-soft); color: #912e2e; }
.badge.blue { background: var(--blue-soft); color: var(--navy); }
.priority-high { color: var(--red); font-weight: 800; }
.priority-medium { color: var(--amber); font-weight: 800; }
.priority-low { color: var(--green); font-weight: 800; }

.progress { height: 9px; border-radius: 999px; background: #edf1f5; overflow: hidden; }
.progress > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--blue), var(--green)); }
.money-positive { color: var(--green); font-weight: 800; }
.money-negative { color: var(--red); font-weight: 800; }
.muted { color: var(--muted); }
.small { font-size: 12px; }
.empty { padding: 32px 18px; text-align: center; color: var(--muted); }

.site-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); min-height: calc(100vh - 68px); }
.site-sidebar {
  position: sticky; top: 68px; align-self: start; height: calc(100vh - 68px); overflow-y: auto;
  padding: 18px 12px; background: #fff; border-right: 1px solid var(--line);
}
.site-summary { padding: 10px 10px 16px; border-bottom: 1px solid var(--line); margin-bottom: 10px; }
.site-summary strong { display: block; color: var(--navy-2); }
.site-summary span { color: var(--muted); font-size: 12px; }
.nav-list { display: grid; gap: 4px; }
.nav-item {
  width: 100%; border: 0; background: transparent; border-radius: 10px; padding: 10px 11px;
  display: flex; align-items: center; gap: 10px; color: #475467; font-weight: 700; text-align: left;
}
.nav-item:hover { background: #f3f7fb; color: var(--navy); }
.nav-item.active { color: var(--navy); background: var(--blue-soft); }
.site-content { min-width: 0; padding: 22px; }
.mobile-site-tabs { display: none; }

.site-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.site-card { position: relative; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.site-card:hover { border-color: #b9cde5; }
.site-card h3 { margin: 0 0 5px; color: var(--navy-2); }
.site-card .meta { display: grid; gap: 6px; margin: 14px 0; color: var(--muted); font-size: 13px; }
.site-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }

.alert-list { display: grid; gap: 9px; }
.alert-item { display: flex; align-items: flex-start; gap: 11px; padding: 11px; border-radius: 10px; background: #f8fafc; border: 1px solid #edf1f5; }
.alert-icon { flex: 0 0 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--amber-soft); }

.legend { display: grid; gap: 8px; width: 100%; }
.legend-row { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }

.timeline { position: relative; display: grid; gap: 12px; padding-left: 20px; }
.timeline::before { content: ""; position: absolute; left: 7px; top: 4px; bottom: 4px; width: 2px; background: #dce4ed; }
.timeline-item { position: relative; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.timeline-item::before { content: ""; position: absolute; left: -19px; top: 17px; width: 10px; height: 10px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 4px var(--canvas); }

.report-preview { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 24px; }
.report-head { display: flex; justify-content: space-between; gap: 18px; border-bottom: 2px solid var(--navy); padding-bottom: 14px; margin-bottom: 18px; }
.report-section { margin: 20px 0; }
.report-section h3 { color: var(--navy); border-bottom: 1px solid var(--line); padding-bottom: 7px; }

.modal { width: min(720px, calc(100vw - 24px)); max-height: calc(100vh - 30px); border: 0; padding: 0; border-radius: 16px; box-shadow: 0 24px 80px rgba(15,43,75,.25); }
.modal::backdrop { background: rgba(15, 23, 42, .45); backdrop-filter: blur(2px); }
.modal form { display: flex; flex-direction: column; max-height: calc(100vh - 30px); }
.modal-header, .modal-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; }
.modal-header { border-bottom: 1px solid var(--line); }
.modal-header h2 { margin: 0; color: var(--navy-2); font-size: 20px; }
.modal-footer { border-top: 1px solid var(--line); justify-content: flex-end; }
.modal-body { overflow-y: auto; padding: 18px; }
.toast {
  position: fixed; right: 20px; bottom: 20px; z-index: 100;
  transform: translateY(20px); opacity: 0; pointer-events: none;
  max-width: 380px; padding: 13px 16px; border-radius: 11px; color: #fff; background: var(--navy-2); box-shadow: var(--shadow);
  transition: .2s ease;
}
.toast.show { opacity: 1; transform: translateY(0); }

.checkbox-row { display: flex; align-items: center; gap: 9px; }
.checkbox-row input { width: 19px; height: 19px; }
.quick-attendance { display: flex; gap: 5px; }
.quick-attendance button { min-width: 36px; }

@media (max-width: 1100px) {
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-card-grid, .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .topbar { padding: 9px 12px; }
  .brand span:last-child { display: none; }
  .page { padding: 16px 12px 90px; }
  .page-header { flex-direction: column; }
  .site-layout { display: block; }
  .site-sidebar { display: none; }
  .site-content { padding: 14px 12px 90px; }
  .mobile-site-tabs {
    display: flex; position: sticky; top: 68px; z-index: 30; overflow-x: auto; gap: 7px;
    padding: 9px 10px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line);
  }
  .mobile-site-tabs .nav-item { width: auto; flex: 0 0 auto; padding: 8px 11px; }
  .grid-2, .grid-3, .site-card-grid, .form-grid { grid-template-columns: 1fr; }
  .form-grid .full { grid-column: auto; }
}

@media (max-width: 560px) {
  .kpi-grid { grid-template-columns: 1fr; }
  .topbar-actions .btn span { display: none; }
  .sync-pill { max-width: 150px; overflow: hidden; white-space: nowrap; }
  .actions { width: 100%; }
  .actions .btn { flex: 1 1 auto; }
  .report-head { flex-direction: column; }
}

@media print {
  body { background: #fff; }
  .topbar, .site-sidebar, .mobile-site-tabs, .no-print, .toolbar, .actions { display: none !important; }
  .site-layout { display: block; }
  .site-content, .page { padding: 0; max-width: none; }
  .card, .report-preview { box-shadow: none; border: 0; }
}

/* Chantier Pro V2 */
.topbar-left { display:flex; align-items:center; gap:10px; min-width:0; }
.brand { border:0; background:transparent; padding:0; }
.breadcrumb { color:var(--muted); font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:360px; }
.back-button { display:inline-grid; place-items:center; }
.dashboard-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
.kpi-clickable { width:100%; text-align:left; cursor:pointer; transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.kpi-clickable:hover,.kpi-clickable:focus-visible { transform:translateY(-2px); border-color:#a9c4e4; box-shadow:0 12px 30px rgba(15,43,75,.13); outline:none; }
.risk-card { border-color:#f1b8b8; background:linear-gradient(180deg,#fff,#fff9f9); }
.dashboard-note { margin:18px 0 0; padding:13px 15px; border:1px dashed #b7c7da; border-radius:12px; color:var(--muted); background:#fff; }
.summary-row { width:100%; border:1px solid var(--line); background:#fff; border-radius:11px; padding:11px; display:flex; align-items:center; justify-content:space-between; gap:12px; text-align:left; }
.summary-row span:first-child { display:grid; gap:3px; }
.summary-row small,.alert-button small { display:block; color:var(--muted); margin-top:3px; }
.site-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.advanced-toolbar { align-items:end; }
.filter-field { display:grid; gap:5px; min-width:150px; flex:1 1 150px; }
.filter-field.grow { flex:2 1 240px; }
.filter-field > span { font-size:11px; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.checkbox-filter { display:flex; align-items:center; min-height:42px; gap:8px; white-space:nowrap; }
.checkbox-filter input { width:19px; height:19px; }
.filter-summary { display:grid; align-content:center; min-width:72px; text-align:center; }
.filter-summary strong { font-size:20px; color:var(--navy); }
.filter-summary span { font-size:11px; color:var(--muted); }
.filter-summary-line { padding:10px 12px; background:var(--blue-soft); border-radius:9px; margin-bottom:14px; }
.alert-button { width:100%; color:inherit; text-align:left; justify-content:flex-start; }
.alert-button > span:nth-child(2) { flex:1; }
.alert-list.large .alert-item { padding:15px; }
.site-identity-strip { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:-4px 0 18px; padding:10px 14px; border-radius:12px; background:#eef4fb; }
.site-identity-strip div { display:grid; gap:2px; }
.site-identity-strip span { color:var(--muted); font-size:13px; }
.metric-list { display:grid; gap:0; }
.metric-list > div { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; padding:10px 0; border-bottom:1px solid #edf1f5; }
.metric-list > div:last-child { border-bottom:0; }
.metric-list span { color:var(--muted); }
.metric-list strong { text-align:right; }
.metric-list.compact > div { padding:7px 0; font-size:13px; }
.inline-alert { margin:12px 0; padding:12px 14px; border-radius:11px; border:1px solid #cbdced; background:#f5f9fe; }
.inline-alert.info { border-color:#bfd6ef; background:#edf6ff; }
.inline-alert.warning { border-color:#f1d09c; background:var(--amber-soft); }
.inline-alert.danger { border-color:#efb1b1; background:var(--red-soft); color:#7d2525; }
.loss-card { border-color:#e9aaaa; box-shadow:0 8px 24px rgba(195,66,66,.09); }
.period-banner { display:flex; justify-content:space-between; align-items:center; gap:14px; margin:12px 0 16px; padding:14px 16px; border:1px solid #c6dbef; background:#eef6ff; border-radius:13px; }
.period-banner > div:first-child { display:grid; gap:4px; }
.period-banner span { color:var(--muted); font-size:13px; }
.period-banner.locked { background:#f3f4f6; border-color:#d7dbe0; }
.week-picker { width:155px; }
.payroll-actions,.top-space { margin-top:16px; }
.tab-switcher { display:flex; gap:6px; overflow-x:auto; margin:0 0 16px; padding:5px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.tab-switcher button { min-height:40px; padding:8px 14px; border:0; border-radius:9px; background:transparent; font-weight:750; white-space:nowrap; }
.tab-switcher button.active { background:var(--navy); color:#fff; }
.budget-line { display:grid; grid-template-columns:minmax(120px,1fr) minmax(150px,1fr) auto; gap:14px; align-items:center; padding:11px 0; border-bottom:1px solid #edf1f5; }
.budget-line > div { display:grid; gap:5px; }
.budget-line small { color:var(--muted); }
.report-preview { --report-color:var(--navy); }
.report-head { border-color:var(--report-color); }
.report-head h2 { margin:5px 0; color:var(--report-color); }
.report-kpis > div { padding:13px; border:1px solid var(--line); border-radius:10px; display:grid; gap:5px; }
.report-kpis span { color:var(--muted); font-size:12px; }
.report-kpis strong { font-size:20px; color:var(--report-color); }
.report-builder .color-input { padding:4px; }
.offline-map { position:relative; min-height:410px; border-radius:14px; overflow:hidden; background:linear-gradient(135deg,#e8eef3,#f8fafc); border:1px solid var(--line); }
.map-grid-lines,.mini-map-grid { position:absolute; inset:0; opacity:.55; background-image:linear-gradient(rgba(47,111,189,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(47,111,189,.14) 1px,transparent 1px); background-size:36px 36px; transform:rotate(-8deg) scale(1.2); }
.map-zone { position:absolute; left:50%; top:50%; width:150px; height:150px; margin:-75px; border:2px solid rgba(47,111,189,.48); border-radius:50%; background:rgba(47,111,189,.1); animation:pulse-zone 2.4s infinite; }
.map-marker { position:absolute; left:50%; top:50%; width:28px; height:28px; margin:-14px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--red); box-shadow:0 5px 16px rgba(195,66,66,.35); animation:marker-blink 1.4s infinite; }
.map-marker span { position:absolute; inset:7px; border-radius:50%; background:#fff; }
.map-caption { position:absolute; left:12px; bottom:12px; padding:8px 10px; border-radius:9px; background:rgba(255,255,255,.94); font-weight:800; }
@keyframes pulse-zone { 50% { transform:scale(1.14); opacity:.65; } }
@keyframes marker-blink { 50% { opacity:.45; } }
.mobile-bottom-nav,.mobile-more-panel { display:none; }
.mobile-nav-item,.mobile-more-item { border:0; background:transparent; color:#536174; }
.mobile-nav-item span { font-size:19px; line-height:1; }
.mobile-nav-item small { font-size:10px; }
.mobile-nav-item.active { color:var(--navy); }
.mobile-more-panel { position:fixed; z-index:79; left:10px; right:10px; bottom:72px; padding:12px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 18px 50px rgba(15,43,75,.22); }
.mobile-more-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.mobile-more-item { min-height:66px; border:1px solid var(--line); border-radius:11px; display:grid; place-items:center; gap:3px; font-weight:700; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; background:#f7f9fb; padding:10px; border-radius:9px; }

@media (max-width:1100px) { .dashboard-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:820px) {
  .mobile-site-tabs { display:none !important; }
  .mobile-bottom-nav { display:grid; grid-template-columns:repeat(5,1fr); position:fixed; z-index:80; left:0; right:0; bottom:0; min-height:64px; padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left)); background:rgba(255,255,255,.98); border-top:1px solid var(--line); box-shadow:0 -5px 20px rgba(15,43,75,.08); }
  .mobile-nav-item { min-height:49px; display:grid; place-items:center; align-content:center; gap:3px; border-radius:9px; }
  .mobile-nav-item.active { background:var(--blue-soft); }
  .mobile-more-panel { display:block; }
  .site-content,.page { padding-bottom:95px; }
  .dashboard-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .breadcrumb { display:none; }
  .period-banner { align-items:flex-start; flex-direction:column; }
  .budget-line { grid-template-columns:1fr; }
  .offline-map { min-height:320px; }
}
@media (max-width:560px) {
  .dashboard-kpis { grid-template-columns:1fr 1fr; gap:10px; }
  .dashboard-kpis .kpi-card { padding:13px; }
  .dashboard-kpis .kpi-value { font-size:25px; }
  .site-card-footer { align-items:flex-start; flex-direction:column; }
  .site-card-footer .row-actions { width:100%; }
  .site-card-footer .row-actions .btn { flex:1 1 42%; }
  .metric-list > div { flex-direction:column; gap:3px; }
  .metric-list strong { text-align:left; }
  .advanced-toolbar { display:grid; grid-template-columns:1fr 1fr; }
  .advanced-toolbar .grow,.advanced-toolbar .filter-summary { grid-column:1/-1; }
  .filter-field { min-width:0; }
  .mobile-more-grid { grid-template-columns:repeat(2,1fr); }
  .report-preview { padding:14px; }
  .report-kpis { grid-template-columns:1fr !important; }
}
@media (max-width:350px) {
  .dashboard-kpis { grid-template-columns:1fr; }
  .topbar { gap:6px; }
  .sync-pill { max-width:112px; font-size:11px; }
  .mobile-nav-item small { font-size:9px; }
  .advanced-toolbar { grid-template-columns:1fr; }
  .advanced-toolbar > * { grid-column:1 !important; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; } }

/* Chantier Pro V3 premium components */
.label-with-help{display:inline-flex;align-items:center;gap:6px;max-width:100%}
.info-help{display:inline-grid;place-items:center;width:19px;height:19px;min-width:19px;padding:0;border:1px solid #91a8c2;border-radius:50%;background:#f5f9ff;color:var(--navy);font:800 11px/1 system-ui;cursor:pointer;vertical-align:middle;transition:.18s ease}
.info-help:hover,.info-help:focus-visible{background:var(--navy);color:#fff;transform:translateY(-1px);outline:2px solid rgba(47,111,189,.2);outline-offset:2px}
.help-detail{display:flex;gap:14px;align-items:flex-start;padding:8px 2px}.help-detail p{margin:3px 0 0;line-height:1.6}.help-i{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;background:var(--blue-soft);color:var(--navy);font-weight:900;font-size:18px}
.financial-live-check{min-height:0}.cap-check{display:grid;gap:7px;padding:12px;border:1px solid #d8e2ed;border-radius:11px;background:#f8fbfe}.cap-check.warning{border-color:#efc77d;background:#fff9ec}.cap-check.danger{border-color:#e5a0a0;background:#fff2f2}.cap-check.success{border-color:#a5d6be;background:#effaf5}.cap-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cap-check-grid>div{display:grid;gap:3px}.cap-check-grid span{color:var(--muted);font-size:11px}.cap-check-grid strong{font-size:14px}
.visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}.visual-card{min-height:250px}.visual-split{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center}
.bar-chart{display:grid;gap:13px}.bar-row{display:grid;gap:6px}.bar-head{display:flex;justify-content:space-between;gap:12px;font-size:12px}.bar-head span{overflow:hidden;text-overflow:ellipsis}.bar-head strong{white-space:nowrap}.bar-track{height:9px;border-radius:99px;background:#e7edf4;overflow:hidden}.bar-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),#62a4df);min-width:2px}.area-chart{width:100%;height:130px;display:block}.trend-caption{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.compact-kpis .kpi-card{min-height:112px}.risk-card{border-color:#efb0b0!important;background:linear-gradient(145deg,#fff,#fff3f3)!important}.cap-breached{border-left:4px solid var(--red);padding-left:12px}.money-negative{color:var(--red)!important}.money-positive{color:var(--green)!important}
.inline-alert.success{border-color:#a6d8bf;background:#effaf5;color:#245b42}.inline-alert.info{border-color:#a9c7e8;background:#f1f7fd;color:#244e78}

.grid-map{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,.75fr);gap:16px}.map-card{overflow:hidden}.real-map{position:relative;height:min(64vh,620px);min-height:430px;border-radius:14px;overflow:hidden;background:#dce7ef;touch-action:none;cursor:grab;border:1px solid var(--line)}.real-map:active{cursor:grabbing}.map-tiles{position:absolute;inset:0;overflow:hidden}.map-tile{position:absolute;width:256px;height:256px;user-select:none;-webkit-user-drag:none;background:#edf2f6}.map-tile.tile-error{opacity:0;background:linear-gradient(135deg,#e5edf3,#f8fafc)}.map-site-zone{position:absolute;left:50%;top:50%;width:142px;height:142px;transform:translate(-50%,-50%);border-radius:50%;border:3px solid rgba(34,111,190,.78);background:rgba(47,111,189,.15);box-shadow:0 0 0 12px rgba(47,111,189,.07);pointer-events:none;animation:pulse-zone 2.4s infinite}.map-site-marker{position:absolute;left:50%;top:50%;width:30px;height:30px;transform:translate(-50%,-64%) rotate(-45deg);border-radius:50% 50% 50% 0;background:#d9383e;border:3px solid #fff;box-shadow:0 5px 18px rgba(97,13,17,.45);pointer-events:none;animation:marker-blink 1.5s infinite}.map-site-marker span{position:absolute;inset:7px;background:#fff;border-radius:50%}.map-controls{position:absolute;top:14px;right:14px;display:grid;gap:7px;z-index:4}.map-controls button{width:42px;height:42px;border:1px solid rgba(24,55,88,.25);border-radius:10px;background:rgba(255,255,255,.95);color:var(--navy);font-size:20px;font-weight:800;box-shadow:0 4px 14px rgba(15,43,75,.16)}.map-network-state,.map-live-coordinates,.map-attribution{position:absolute;z-index:4;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border:1px solid rgba(40,69,100,.12);border-radius:8px;padding:6px 9px;font-size:11px;box-shadow:0 3px 12px rgba(15,43,75,.12)}.map-network-state{left:12px;top:12px}.map-network-state.online{color:#16734c}.map-network-state.offline{color:#9a6210}.map-live-coordinates{left:12px;bottom:12px;font-weight:700}.map-attribution{right:8px;bottom:8px;font-size:9px;padding:3px 5px}.route-help{margin-top:16px;padding:14px;background:#f4f8fc;border-radius:11px;line-height:1.55}

.report-builder-card{overflow:visible}.report-filter-groups{display:grid;gap:14px}.report-filter-group{margin:0;padding:15px;border:1px solid #dce5ef;border-radius:13px;background:#fbfdff}.report-filter-group legend{padding:0 8px;color:var(--navy);font-size:13px;font-weight:850}.report-actions{justify-content:flex-end;position:sticky;bottom:74px;z-index:5;padding:11px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);box-shadow:0 8px 24px rgba(15,43,75,.1)}.report-preview-card{overflow:hidden}.preview-loading{display:grid;place-items:center;min-height:180px;text-align:center}.preview-status{display:inline-flex;align-items:center;gap:6px;color:#1d7a52;font-size:12px;font-weight:750}.preview-status span{width:8px;height:8px;border-radius:50%;background:#2a9b69;box-shadow:0 0 0 5px rgba(42,155,105,.12)}.premium-report{border:1px solid #d7e0ea;border-radius:13px;overflow:hidden;background:#fff;box-shadow:0 14px 35px rgba(15,43,75,.08)}.premium-report .report-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;padding:22px 24px;background:linear-gradient(135deg,var(--report-color),color-mix(in srgb,var(--report-color) 72%,#fff));color:#fff;border:0}.report-brand{display:flex;align-items:center;gap:9px}.report-brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#fff;color:var(--report-color);font-weight:900}.report-brand div,.report-site-id{display:grid;gap:2px}.report-brand small,.report-site-id small{color:rgba(255,255,255,.76)}.report-title-block h2{color:#fff;margin:0 0 5px}.report-title-block p{margin:0;color:rgba(255,255,255,.82);line-height:1.4}.report-site-id{text-align:right}.filter-summary-line{padding:11px 24px;background:#f2f6fa;border-bottom:1px solid #dfe7ef;font-size:12px}.report-visual-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:20px 24px 0}.report-kpi{display:grid;gap:7px;padding:14px;border:1px solid #dfe7ef;border-radius:11px;background:#fff}.report-kpi span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.report-kpi strong{font-size:20px;color:var(--report-color)}.report-kpi small{color:var(--muted);font-size:10px}.report-kpi.danger{border-color:#e5a0a0;background:#fff5f5}.report-kpi.danger strong{color:var(--red)}.report-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 24px}.report-chart-card{padding:14px;border:1px solid #dfe7ef;border-radius:11px;background:#fbfdff}.report-chart-card h3{font-size:13px;margin:0 0 12px;color:var(--navy)}.report-section{margin:0 24px 18px;padding-top:15px;border-top:1px solid #e4eaf0}.report-section h3{color:var(--report-color);margin:0 0 10px}.report-preview table{font-size:11px}.report-preview th{background:#f1f5f9;color:#33475c}.report-preview td,.report-preview th{padding:8px}

.conflict-list{display:grid;gap:16px}.conflict-card{padding:20px;border:1px solid #e0b979;border-left:5px solid #d68a1f;border-radius:14px;background:#fffdfa;box-shadow:0 8px 24px rgba(15,43,75,.07)}.conflict-card.financial{border-color:#e7aaaa;border-left-color:var(--red);background:#fffafa}.conflict-top{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.conflict-top h2{font-size:18px;margin:5px 0}.conflict-type{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.conflict-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.conflict-grid>div{display:grid;gap:4px;padding:10px;border-radius:9px;background:#f5f8fb}.conflict-grid span{color:var(--muted);font-size:11px}.conflict-explanation{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.conflict-explanation>div{padding:13px;border-radius:10px;background:#f4f7fb}.conflict-explanation p{margin:5px 0 0;line-height:1.5}.version-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.version-compare>div{min-width:0}.version-compare pre{max-height:230px;overflow:auto;font-size:10px}

@media(max-width:1000px){.grid-map{grid-template-columns:1fr}.report-visual-grid{grid-template-columns:repeat(2,1fr)}.report-chart-grid{grid-template-columns:1fr 1fr}.conflict-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.visual-grid{grid-template-columns:1fr}.visual-split{grid-template-columns:1fr}.real-map{min-height:360px;height:55vh}.premium-report .report-head{grid-template-columns:1fr;text-align:left}.report-site-id{text-align:left}.report-visual-grid,.report-chart-grid{grid-template-columns:1fr}.report-preview{padding:0}.report-section{margin-left:12px;margin-right:12px}.report-filter-group{padding:12px}.report-actions{bottom:72px;display:grid;grid-template-columns:1fr}.report-actions .btn{width:100%}.conflict-grid,.conflict-explanation,.version-compare{grid-template-columns:1fr}.conflict-top{flex-direction:column}.cap-check-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:380px){.real-map{min-height:320px}.map-controls button{width:38px;height:38px}.report-visual-grid{padding-left:10px;padding-right:10px}.report-chart-grid{padding-left:10px;padding-right:10px}.filter-summary-line{padding-left:12px;padding-right:12px}.cap-check-grid{grid-template-columns:1fr}}
.finance-help-popover{position:fixed;z-index:5000;padding:14px 38px 14px 14px;border:1px solid #a8bdd3;border-radius:12px;background:#fff;box-shadow:0 14px 38px rgba(15,43,75,.22);color:#21364d;animation:help-pop .16s ease-out}.finance-help-popover:before{content:'';position:absolute;top:-6px;left:50%;width:11px;height:11px;background:#fff;border-left:1px solid #a8bdd3;border-top:1px solid #a8bdd3;transform:rotate(45deg)}.finance-help-popover button{position:absolute;right:8px;top:7px;width:26px;height:26px;border:0;border-radius:50%;background:#edf3f8;color:#314a64;font-size:18px}.finance-help-popover strong{font-size:13px;color:var(--navy)}.finance-help-popover p{margin:6px 0 0;line-height:1.5;font-size:13px}@keyframes help-pop{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}


/* Chantier Pro V4 — densité, graphiques circulaires et verrouillages métier */
.page { padding: 20px; }
.site-content { padding: 18px; }
.kpi-grid { gap: 12px; margin-bottom: 16px; }
.kpi-card { padding: 13px 14px; min-height: 98px; }
.kpi-label { font-size: 12px; margin-bottom: 5px; }
.kpi-value { font-size: clamp(21px,2.35vw,29px); line-height: 1.08; }
.kpi-foot { margin-top: 5px; font-size: 11px; }
.card { padding: 15px; }
.card h2 { font-size: 17px; }
.site-card-grid { gap: 13px; }
.site-card { padding: 15px; }
.site-card h3 { font-size: 16px; }
.visual-grid { gap: 13px; margin: 13px 0; }
.visual-card { min-height: 215px; }
.compact-visual { min-height: 190px; }
.compact-kpis .kpi-card { min-height: 96px; }
.non-financial-kpis .kpi-value { font-size: 27px; }

.pie-wrap { margin: 0; display: grid; grid-template-columns: minmax(92px,128px) minmax(110px,1fr); align-items: center; gap: 14px; padding: 5px; }
.pie-wrap.mini .pie-disc { width: 118px; }
.pie-disc { position: relative; width: 142px; max-width: 100%; aspect-ratio: 1; border-radius: 50%; box-shadow: 0 10px 24px rgba(19,52,88,.14), inset 0 0 0 1px rgba(16,43,75,.08); overflow: hidden; }
.pie-disc::after { content:""; position:absolute; inset:0; border-radius:50%; background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.36),transparent 28%),linear-gradient(145deg,transparent 54%,rgba(15,43,75,.12)); pointer-events:none; }
.pie-gloss { position:absolute; left:18%; top:13%; width:30%; height:16%; border-radius:50%; background:rgba(255,255,255,.34); transform:rotate(-22deg); filter:blur(1px); }
.pie-wrap figcaption { display:grid; gap:2px; align-content:center; min-width:0; }
.pie-wrap figcaption strong { font-size:25px; color:var(--navy-2); line-height:1; }
.pie-wrap figcaption span { font-size:12px; font-weight:800; color:#344054; }
.pie-wrap figcaption small { color:var(--muted); font-size:11px; line-height:1.35; }
.categorical-pie { display:grid; grid-template-columns:minmax(118px,150px) 1fr; gap:18px; align-items:center; }
.categorical-pie .pie-disc { width:145px; }
.pie-legend { display:grid; gap:8px; }
.pie-legend > div { display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:8px; font-size:12px; }
.pie-legend i { width:10px; height:10px; border-radius:50%; }
.pie-legend span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pie-legend strong { color:var(--navy-2); white-space:nowrap; }
.empty-chart { min-height:130px; display:grid; place-items:center; color:var(--muted); font-size:12px; }

.lot-summary-strip { display:grid; grid-template-columns:auto auto minmax(120px,1fr); align-items:center; gap:12px; margin:0 0 13px; padding:10px 13px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--muted); font-size:12px; }
.lot-summary-strip strong { color:var(--navy-2); font-size:17px; }
.lot-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.lot-progress-head { display:flex; justify-content:space-between; gap:10px; margin:8px 0 5px; font-size:12px; color:var(--muted); }
.lot-pie-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:12px 0; padding:10px; border-radius:12px; background:#f7f9fc; }
.lot-pie-row .pie-wrap { grid-template-columns:82px 1fr; gap:8px; padding:0; }
.lot-pie-row .pie-disc { width:78px; }
.lot-pie-row .pie-wrap figcaption strong { font-size:18px; }

.field label { display:flex; align-items:center; gap:6px; }
.field-locked { padding:10px; border:1px dashed #d2a450; border-radius:11px; background:#fff9ed; }
.field-locked input:disabled,.field-locked select:disabled,.field-locked textarea:disabled { background:#edf0f4; color:#7c8796; border-color:#d6dce4; cursor:not-allowed; opacity:1; }
.field-notice { display:block; color:var(--muted); font-size:11px; line-height:1.4; }
.field-notice.warning { color:#8a5a12; }
.budget-gate-banner { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:12px 0 15px; padding:15px; border:1px solid #e5b45b; border-left:5px solid var(--amber); border-radius:12px; background:#fff8e9; }
.budget-gate-banner strong { color:#7a4a08; }
.budget-gate-banner p { margin:4px 0 0; color:#785f39; font-size:12px; line-height:1.5; }

.info-help { position:relative; z-index:2; flex:0 0 auto; }
.finance-help-popover { z-index:10000!important; box-shadow:0 18px 50px rgba(15,43,75,.24)!important; }
.modal .info-help { pointer-events:auto; }
.sync-all-button { white-space:nowrap; }
.sync-cluster { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }

.map-site-marker,.map-site-zone { left:0; top:0; will-change:left,top,width,height; }
.map-site-marker.outside-map,.map-site-zone.outside-map { display:none; }
.map-live-coordinates { max-width:min(420px,calc(100% - 24px)); line-height:1.35; }
.map-live-coordinates span { font-weight:500; color:var(--muted); }

@media(max-width:980px){
  .lot-card-grid { grid-template-columns:1fr; }
}
@media(max-width:700px){
  .page,.site-content { padding:14px; }
  .kpi-card { min-height:88px; padding:11px 12px; }
  .card,.site-card { padding:13px; }
  .pie-wrap { grid-template-columns:96px 1fr; }
  .pie-wrap.mini .pie-disc { width:92px; }
  .categorical-pie { grid-template-columns:110px 1fr; }
  .categorical-pie .pie-disc { width:108px; }
  .lot-pie-row { grid-template-columns:1fr; }
  .lot-pie-row .pie-wrap { grid-template-columns:74px 1fr; }
  .budget-gate-banner { align-items:flex-start; flex-direction:column; }
  .sync-all-button { min-height:34px; padding:6px 9px; }
}
@media(max-width:430px){
  .topbar { padding:8px 10px; }
  .brand span:last-child,.breadcrumb { display:none; }
  .sync-pill { font-size:11px; padding:6px 8px; }
  .sync-all-button { font-size:11px; }
  .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .kpi-value { font-size:20px; }
  .pie-wrap { grid-template-columns:78px 1fr; gap:9px; }
  .pie-wrap.mini .pie-disc { width:76px; }
  .pie-wrap figcaption strong { font-size:19px; }
  .categorical-pie { grid-template-columns:88px 1fr; gap:10px; }
  .categorical-pie .pie-disc { width:86px; }
  .lot-summary-strip { grid-template-columns:1fr auto; }
  .lot-summary-strip .progress { grid-column:1/-1; }
}

.storage-flow { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:10px; align-items:center; margin:8px 0 14px; }
.storage-node { min-height:110px; display:flex; gap:10px; align-items:flex-start; padding:12px; border:1px solid var(--line); border-radius:12px; background:#f8fafc; }
.storage-node > span { width:28px; height:28px; flex:0 0 28px; display:grid; place-items:center; border-radius:9px; background:var(--navy); color:white; font-weight:800; }
.storage-node p { margin:5px 0; font-size:12px; }
.storage-node small { color:var(--muted); line-height:1.35; }
.storage-arrow { font-size:24px; color:var(--blue); font-weight:900; }
.server-url-list { display:grid; gap:7px; margin:10px 0 12px; }
.server-url-list code { display:block; padding:8px 10px; border-radius:8px; background:#eef4fb; color:var(--navy-2); overflow-wrap:anywhere; font-size:12px; }
@media(max-width:700px){.storage-flow{grid-template-columns:1fr}.storage-arrow{transform:rotate(90deg);justify-self:center}.storage-node{min-height:0}}

/* V6 · GPS dans la carte et diagramme de Gantt interactif */
.gps-capture-panel{display:grid;gap:.7rem;padding:1rem;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,#f5f9ff,#eef8f5)}
.gps-capture-panel p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}
.map-user-marker{position:absolute;z-index:8;width:24px;height:24px;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;background:#1769d2;box-shadow:0 0 0 8px rgba(23,105,210,.18),0 3px 10px rgba(0,0,0,.28)}
.map-user-marker span{position:absolute;inset:6px;border-radius:50%;background:#fff}
.map-user-link{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none;overflow:visible}
.map-user-link line{stroke:#1769d2;stroke-width:3;stroke-dasharray:8 7;opacity:.75}

.gantt-card{padding:0;overflow:hidden;margin-top:1rem}
.gantt-card>.card-header{padding:1rem 1rem .75rem;align-items:flex-start}
.gantt-scale{display:flex;gap:.35rem;flex-wrap:wrap}
.gantt-legend{display:flex;gap:.75rem;flex-wrap:wrap;padding:0 1rem .9rem;color:var(--muted);font-size:.82rem}
.gantt-legend{font-style:italic;font-weight:700;background:#f5f8fc;border:1px solid #cbd8e6;border-radius:12px;margin:0 1rem 1rem;padding:.8rem 1rem}.advanced-gantt .gantt-track{background-color:#f8fafc!important;background-image:linear-gradient(to right,#c5d2df 1px,transparent 1px),linear-gradient(to bottom,#dbe4ed 1px,transparent 1px)!important}.advanced-gantt .gantt-bar{box-shadow:0 4px 12px rgba(20,52,84,.28);border:2px solid rgba(13,43,73,.35)}.dependency-path{stroke-width:3!important;opacity:1!important}
.gantt-legend span{display:inline-flex;align-items:center;gap:.35rem}
.gantt-legend span:before{content:"";width:11px;height:11px;border-radius:4px;background:#7d93ac}
.gantt-legend .in_progress:before{background:#2f6fbd}.gantt-legend .blocked:before{background:#c94b4b}.gantt-legend .delayed:before{background:#db8b20}.gantt-legend .done:before{background:#22835c}
.gantt-shell{display:grid;grid-template-columns:minmax(230px,300px) 1fr;grid-template-rows:44px auto;overflow:auto;border-top:1px solid var(--border);max-height:620px;background:#fff}
.gantt-label-head{position:sticky;left:0;top:0;z-index:12;padding:.8rem 1rem;background:#f5f8fc;border-right:1px solid var(--border);border-bottom:1px solid var(--border);font-weight:700}
.gantt-calendar-head{display:flex;position:sticky;top:0;z-index:10;background:#f5f8fc;border-bottom:1px solid var(--border);min-width:max-content}
.gantt-day{flex:0 0 auto;text-align:center;border-right:1px solid #e8edf4;font-size:.7rem;color:#65758a;padding:.85rem 0}
.gantt-day.major{border-left:2px solid #a9b8ca;font-weight:800;color:#27384c}.gantt-day.today{background:#fff3d6;color:#8c5a00}
.gantt-body{display:contents}
.gantt-row{display:contents}
.gantt-label{position:sticky;left:0;z-index:5;padding:.7rem .8rem;background:#fff;border-right:1px solid var(--border);border-bottom:1px solid #edf1f6;min-height:86px}
.gantt-title{border:0;background:transparent;padding:0;text-align:left;font:inherit;font-weight:800;color:var(--text);cursor:pointer}
.gantt-label small{display:block;color:var(--muted);margin-top:.2rem;line-height:1.3}
.gantt-row-tools{display:flex;gap:.4rem;align-items:center;margin-top:.45rem;flex-wrap:wrap}
.gantt-row-tools select{max-width:125px;border:1px solid var(--border);border-radius:8px;padding:.28rem .4rem;font-size:.74rem;background:#fff}
.gantt-auto,.gantt-manual{font-size:.66rem;font-weight:800;border-radius:999px;padding:.25rem .45rem;background:#e9f5ef;color:#166846}.gantt-manual{background:#f1eef8;color:#65489a}
.gantt-track{position:relative;min-width:max-content;min-height:86px;border-bottom:1px solid #edf1f6;background-image:linear-gradient(to right,#edf1f6 1px,transparent 1px);background-repeat:repeat;overflow:hidden}
.gantt-bar{position:absolute;top:22px;height:42px;min-width:26px;border-radius:11px;background:#7891ab;color:#fff;box-shadow:0 5px 12px rgba(36,57,81,.18);cursor:grab;touch-action:none;overflow:hidden;transition:box-shadow .15s ease}
.gantt-bar:active{cursor:grabbing;box-shadow:0 8px 20px rgba(36,57,81,.28)}
.gantt-bar.status-in_progress{background:#2f6fbd}.gantt-bar.status-blocked{background:#c94b4b}.gantt-bar.status-delayed{background:#db8b20}.gantt-bar.status-done{background:#22835c}.gantt-bar.status-planning{background:#70869e}
.gantt-fill{position:absolute;inset:0 auto 0 0;background:rgba(255,255,255,.22);pointer-events:none}
.gantt-bar-label{position:absolute;inset:0 16px;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.25);pointer-events:none}
.gantt-handle{position:absolute;z-index:4;top:0;bottom:0;width:13px;border:0;background:rgba(255,255,255,.18);cursor:ew-resize}.gantt-handle.start{left:0}.gantt-handle.end{right:0}
.gantt-handle:hover{background:rgba(255,255,255,.38)}

@media(max-width:700px){
  .gantt-shell{grid-template-columns:190px 1fr;max-height:560px}
  .gantt-label{min-height:96px;padding:.6rem}.gantt-track{min-height:96px}.gantt-bar{top:27px}
  .gantt-card>.card-header{display:grid;gap:.7rem}.gantt-legend{gap:.5rem;font-size:.72rem}
}

/* V6 · authentification, rôles et administration temps réel */
.login-page{min-height:100vh;display:grid;place-items:center;padding:1.2rem;background:radial-gradient(circle at 15% 15%,#dcecff 0,transparent 34%),radial-gradient(circle at 85% 85%,#dff3e9 0,transparent 36%),#f4f7fb}
.login-panel{width:min(460px,100%);background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:0 24px 70px rgba(29,49,75,.16);padding:1.5rem;display:grid;gap:1rem}
.login-brand{display:flex;align-items:center;gap:.9rem}.login-brand .brand-mark{width:54px;height:54px;font-size:1.05rem}.login-brand h1{margin:0;font-size:1.45rem}.login-brand p{margin:.15rem 0 0;color:var(--muted)}
#login-form{display:grid;gap:.85rem}.login-code{font-size:1.15rem;letter-spacing:.08em}.login-submit{min-height:48px}.login-security{padding:.9rem;border-radius:14px;background:#f5f8fc;color:var(--muted);font-size:.85rem}.login-security p{margin:.35rem 0 0;line-height:1.5}
.user-chip{display:grid;padding:.34rem .65rem;border:1px solid var(--border);border-radius:12px;background:#fff;line-height:1.1}.user-chip strong{font-size:.75rem}.user-chip small{font-size:.63rem;color:var(--muted);margin-top:.18rem}
.admin-section{margin-top:1.4rem}.admin-section>h2{margin-bottom:.7rem}.admin-user-grid,.access-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem}.admin-user-card,.access-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.7rem;padding:1rem}.admin-user-card>div,.access-card>div{display:grid}.admin-user-card span,.access-card span{color:var(--muted);font-size:.8rem}.admin-user-card .btn,.access-card .btn{grid-column:1/-1}.admin-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.admin-role-card{padding:1rem}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin:.75rem 0}.permission-toggle{display:flex;align-items:center;gap:.5rem;padding:.55rem .65rem;border:1px solid var(--border);border-radius:10px;background:#f9fbfd;font-size:.82rem}.permission-toggle input{width:18px;height:18px}.permission-toggle.disabled{opacity:.45}
@media(max-width:850px){.topbar-actions .user-chip{display:none}.topbar-actions .sync-all-button{display:none}.admin-role-grid{grid-template-columns:1fr}}
@media(max-width:520px){.login-panel{padding:1.1rem;border-radius:18px}.permission-grid{grid-template-columns:1fr}.admin-user-card,.access-card{grid-template-columns:1fr}.topbar-actions [data-nav="/admin"]{display:none}}


/* V6 — entête professionnel, identité visuelle et rapports premium */
.topbar{display:grid;grid-template-columns:minmax(280px,1fr) auto;align-items:center;gap:18px;padding:9px 18px;min-height:70px;overflow:visible}
.topbar-left{min-width:0;display:flex;align-items:center;gap:10px}
.brand{min-width:0;border:0;background:transparent;padding:0;flex:0 1 auto}
.brand-copy{display:grid;line-height:1.05;text-align:left;min-width:0}
.brand-copy strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}
.brand-copy small{font-size:10px;color:var(--muted);font-weight:650;letter-spacing:.03em}
.brand-mark.compact,.app-logo.compact{width:38px;height:38px;border-radius:11px;flex:0 0 38px}
.app-logo{width:48px;height:48px;border-radius:14px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:4px;box-shadow:var(--shadow)}
.topbar-actions{justify-content:flex-end;flex-wrap:nowrap;min-width:0;gap:8px}
.topbar-sync{min-width:0}.topbar-sync .sync-cluster{display:flex;align-items:center;gap:7px;white-space:nowrap}
.install-button{flex:0 0 auto}.user-chip{flex:0 0 auto}.logout-button{flex:0 0 auto}
.dashboard-sites-section{margin:22px 0 18px;padding:20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 10px 30px rgba(15,43,75,.055)}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:15px}.section-heading h2{margin:0 0 3px;color:var(--navy-2);font-size:20px}.section-heading p{margin:0;color:var(--muted);font-size:13px}
.dashboard-site-list .site-card{box-shadow:0 5px 18px rgba(15,43,75,.065)}
.map-empty-state{min-height:320px;display:grid;place-items:center;text-align:center;padding:40px;gap:12px}.map-empty-state h2,.map-empty-state p{margin:0;max-width:700px}.map-empty-icon{width:72px;height:72px;border-radius:24px;display:grid;place-items:center;background:var(--blue-soft);color:var(--navy);font-size:34px;box-shadow:0 12px 30px rgba(23,58,99,.12)}
.install-guide{text-align:center;display:grid;gap:12px;justify-items:center;padding:8px}.install-guide h3,.install-guide p{margin:0}.install-icon{display:grid;place-items:center}
.branding-editor{display:grid;gap:18px}.branding-preview{display:flex;align-items:center;gap:14px;padding:16px;border-radius:16px;background:linear-gradient(135deg,#f3f7fc,#fff);border:1px solid var(--line)}.branding-preview>div{display:grid;gap:3px}.branding-preview strong{font-size:18px;color:var(--navy)}.branding-preview span{font-size:12px;color:var(--muted)}
.report-builder-card{border-radius:20px;box-shadow:0 15px 38px rgba(15,43,75,.08);border-color:#d7e2ee}
.report-filter-group{border-radius:18px!important;background:linear-gradient(180deg,#fff,#f8fbfe)!important;padding:18px!important;box-shadow:0 4px 14px rgba(15,43,75,.035)}
.report-filter-group legend{font-size:13px!important;font-style:italic;letter-spacing:.015em;background:#fff;border:1px solid #dde7f0;border-radius:999px;padding:5px 11px!important}
.premium-report{border-radius:22px!important;box-shadow:0 20px 48px rgba(15,43,75,.12)!important}
.premium-report .report-head{padding:28px 30px!important;position:relative;overflow:hidden}.premium-report .report-head:after{content:"";position:absolute;right:-90px;top:-120px;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.08)}
.report-title-block p{font-style:italic;font-size:13px}.filter-summary-line{padding:13px 30px!important;font-style:italic;color:#475a70}
.report-visual-grid{gap:14px!important;padding:24px 30px 2px!important}.report-kpi{border-radius:16px!important;padding:17px!important;background:linear-gradient(155deg,#fff,#f7faff)!important;box-shadow:0 5px 16px rgba(15,43,75,.045)}.report-kpi strong{font-size:22px!important}
.report-chart-grid{gap:14px!important;padding:14px 30px!important}.report-chart-card{border-radius:16px!important;padding:17px!important;background:linear-gradient(180deg,#fff,#f8fbfe)!important}
.report-section{margin:0 30px 22px!important;padding-top:19px!important}.report-section h3{font-size:15px;letter-spacing:.015em}.report-section>p{line-height:1.65}.report-closing-note{padding:18px 20px!important;border:1px solid #dde7f0!important;border-radius:16px;background:#f8fbfe}.report-closing-note p{margin:0;color:#5d6e80}
.report-preview table{border-collapse:separate;border-spacing:0;border:1px solid #dfe7ef;border-radius:14px;overflow:hidden}.report-preview th:first-child{border-top-left-radius:13px}.report-preview th:last-child{border-top-right-radius:13px}.report-preview tbody tr:nth-child(even){background:#fafcff}
@media(max-width:1050px){.topbar{grid-template-columns:1fr}.topbar-actions{justify-content:space-between;overflow-x:auto;padding-bottom:2px}.topbar-sync{flex:1 1 auto}.breadcrumb{display:none}}
@media(max-width:700px){.topbar{display:flex;flex-direction:column;align-items:stretch;padding:8px 10px}.topbar-left,.topbar-actions{width:100%}.topbar-actions{justify-content:flex-end}.brand-copy small{display:none}.brand-copy strong{max-width:145px}.topbar-sync{margin-right:auto}.topbar-sync .sync-pill{font-size:0;padding:8px}.topbar-sync .sync-pill .sync-dot{margin:0}.install-button span{display:inline!important}.dashboard-sites-section{padding:14px}.section-heading{align-items:flex-start}.report-visual-grid,.report-chart-grid{padding-left:14px!important;padding-right:14px!important}.report-section{margin-left:14px!important;margin-right:14px!important}.filter-summary-line{padding-left:14px!important;padding-right:14px!important}}
@media(max-width:430px){.topbar-actions .admin-button,.topbar-actions .user-chip{display:none}.topbar-actions{gap:6px}.install-button,.logout-button{min-height:34px;padding:6px 9px}.brand-mark.compact,.app-logo.compact{width:34px;height:34px;flex-basis:34px}.dashboard-site-list .site-card{padding:12px}.section-heading{display:grid}.section-heading .btn{justify-self:start}}
.report-brand-mark img{width:100%;height:100%;object-fit:contain;border-radius:10px;background:#fff;padding:3px}

/* V7 — rapports officiels, baseline/réel et chemin critique */
.report-inclusion-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f8fbfe}
.report-inclusion-grid label{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--navy-2)}
.report-inclusion-grid input{width:18px;height:18px}
.report-font-modern{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.report-font-classic{font-family:Georgia,"Times New Roman",serif}
.report-font-elegant{font-family:"Palatino Linotype",Palatino,Georgia,serif}
.report-font-technical{font-family:"Courier New",monospace}
.report-other-details{border:1px dashed color-mix(in srgb,var(--report-color) 42%,#dce6ef);border-radius:16px;padding:18px!important;background:linear-gradient(135deg,#fff,#f8fbff)}
.report-signature-block{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:22px 30px;padding:22px;border:1px solid #dce6ef;border-radius:18px;background:linear-gradient(160deg,#fff,#f6f9fc)}
.report-signature-block>div{display:grid;gap:6px;min-height:106px;align-content:start}
.report-signature-block span{font-size:12px;color:var(--muted);font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.report-signature-block strong{font-size:16px;color:var(--navy-2)}
.report-signature-block i{margin-top:auto;padding-top:30px;border-bottom:1px solid #9aa8b7;color:var(--muted);font-size:12px}
.report-preview-footer{display:flex;justify-content:space-between;gap:14px;margin-top:24px;padding:16px 30px;border-radius:0 0 22px 22px;background:var(--report-color);color:#fff;font-size:12px}
.advanced-gantt .gantt-shell{position:relative}
.advanced-gantt .gantt-body{position:relative}
.gantt-baseline-bar{position:absolute;top:16px;height:10px;border-radius:999px;background:repeating-linear-gradient(135deg,#aab5c2 0 7px,#d4dbe3 7px 14px);box-shadow:inset 0 0 0 1px rgba(48,63,82,.18);z-index:2;overflow:hidden}
.gantt-baseline-bar span{position:absolute;left:8px;top:-1px;font-size:7px;color:#26374a;white-space:nowrap;font-weight:800}
.advanced-gantt .gantt-bar{top:43px;height:36px;z-index:4}
.advanced-gantt .gantt-track,.advanced-gantt .gantt-label{min-height:104px}
.gantt-dependencies{position:absolute;left:300px;top:44px;z-index:3;pointer-events:none;overflow:visible}
.dependency-path{fill:none;stroke:#54708e;stroke-width:2;stroke-dasharray:5 4;opacity:.78;vector-effect:non-scaling-stroke}
.dependency-path.critical{stroke:#c63535;stroke-width:3;stroke-dasharray:none}
.gantt-dependencies marker path{fill:#54708e}.critical-row .gantt-label{box-shadow:inset 4px 0 0 #c63535}.gantt-bar.critical{outline:3px solid rgba(198,53,53,.82);outline-offset:2px}
.gantt-critical-chip,.gantt-delay-chip,.gantt-early-chip{font-size:.65rem;font-weight:850;border-radius:999px;padding:.25rem .5rem}
.gantt-critical-chip{background:#ffe5e5;color:#a42525}.gantt-delay-chip{background:#fff0dc;color:#9b5800}.gantt-early-chip{background:#e3f6ec;color:#16704b}
.gantt-legend .baseline:before{background:repeating-linear-gradient(135deg,#9da9b7 0 4px,#d2d9e1 4px 8px)}.gantt-legend .critical:before{background:#c63535}
.critical-timeline{border-left:4px solid #c63535!important}
.branding-preview .app-logo,.report-brand-mark img{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
@media(max-width:700px){.report-signature-block{grid-template-columns:1fr;margin:16px 14px}.report-preview-footer{flex-direction:column;padding:14px}.advanced-gantt .gantt-shell{grid-template-columns:200px 1fr}.advanced-gantt .gantt-bar{top:46px}.gantt-baseline-bar{top:18px}}

@media(max-width:700px){.gantt-dependencies{left:200px}.advanced-gantt .gantt-label,.advanced-gantt .gantt-label-head{width:200px;min-width:200px}}
.expense-mini{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}
.expense-mini:last-child{border-bottom:0}.actions.wrap{flex-wrap:wrap}.file-button{cursor:pointer}.plan-card{min-height:150px}.plan-card h3{overflow-wrap:anywhere}
.allocation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.allocation-card{display:grid;gap:8px;padding:16px;border:1px solid #d9e3ed;border-radius:16px;background:linear-gradient(145deg,#fff,#f4f8fc)}.allocation-card strong{font-size:1rem;color:var(--navy-2)}.allocation-card span{font-size:.82rem;color:var(--muted)}
[data-action="purchase-status"]{color:#b4232b!important;font-weight:900!important;font-style:italic!important;border-color:#efb8bc!important;background:#fff3f4!important}[data-action="purchase-status"]:hover{background:#ffe6e8!important}.advanced-gantt .gantt-bar{min-height:40px;border-radius:12px!important}.advanced-gantt .gantt-label{padding:14px!important}.gantt-legend span{padding:.3rem .55rem;border-radius:999px;background:#fff;box-shadow:0 1px 4px rgba(20,50,80,.1)}.chart-axis-labels{display:flex;justify-content:space-between;gap:6px;overflow:hidden;color:var(--muted);font-size:.68rem;font-style:italic}

/* V8.4 — rapports/PDF visuellement cohérents et Gantt à contraste renforcé */
.report-content-badge{display:inline-flex;padding:10px 14px;border:1px solid #b8cee3;border-radius:999px;background:#edf5fc;color:#173a63;font-weight:800}
.premium-report table{border-collapse:separate!important;border-spacing:0!important;border:2px solid #9eb2c7!important;border-radius:14px!important;overflow:hidden}
.premium-report th{background:#e8eff6!important;border-right:1px solid #9eb2c7!important;border-bottom:2px solid #9eb2c7!important;color:#173a63!important;font-weight:900!important}
.premium-report td{border-right:1px solid #b7c6d5!important;border-bottom:1px solid #b7c6d5!important}
.premium-report tr:last-child td{border-bottom:0!important}.premium-report th:last-child,.premium-report td:last-child{border-right:0!important}
.report-summary{padding:18px!important;border:1px solid #c8d6e4!important;border-radius:16px;background:#f7fafe}.report-summary p{line-height:1.7;margin:0}
.report-signature-block{margin-top:76px!important;min-height:180px!important;break-inside:avoid;page-break-inside:avoid}.report-signature-block>div{min-height:142px!important}.report-signature-block i{padding-top:58px!important}
.report-chart-card .bar-track{border:1px solid #c5d1de;background:#e7edf4}.report-chart-card .bar-fill{box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.advanced-gantt .gantt-bar{background:#dce8f5!important;border:2px solid #3174b9!important;overflow:hidden}.advanced-gantt .gantt-fill{background:linear-gradient(90deg,#0e9f6e,#22c78d)!important;opacity:1!important}.advanced-gantt .gantt-bar-label{color:#092844!important;text-shadow:0 1px 0 #fff;font-weight:900!important;z-index:5}.advanced-gantt .status-blocked{border-color:#c43d3d!important}.advanced-gantt .status-blocked .gantt-fill{background:linear-gradient(90deg,#c43d3d,#e66a57)!important}.advanced-gantt .status-done .gantt-fill{background:linear-gradient(90deg,#13795b,#2caf7f)!important}
.gantt-legend span:before{border:1px solid rgba(9,40,68,.28)}
@media print{.premium-report{box-shadow:none!important;border:0!important}.report-signature-block{margin-top:90px!important}.report-preview-footer{print-color-adjust:exact;-webkit-print-color-adjust:exact}.premium-report table,.premium-report th,.premium-report td{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* V8.5 — papier configurable, synthèses longues et bandeaux pleine largeur */
.premium-report .report-head{width:100%!important;border-radius:0!important}.premium-report .report-preview-footer{width:100%!important;margin-left:0!important;margin-right:0!important;border-radius:0!important}
.report-summary p{white-space:pre-line}.report-chart-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))!important}.report-chart-grid-one{grid-template-columns:1fr!important}.text-danger{color:#b4232b}
.report-paper-a3{max-width:1500px}.report-paper-a4{max-width:1120px}.report-landscape{aspect-ratio:auto}.report-portrait{max-width:820px}
@media(max-width:700px){.report-chart-grid-two{grid-template-columns:1fr!important}}
@media print{.report-preview-card{padding:0!important}.premium-report{margin:0!important;width:100%!important;max-width:none!important}.premium-report .report-head,.premium-report .report-preview-footer{width:100vw!important;margin-left:calc(50% - 50vw)!important}}

/* Rendu progressif : les longues sections hors écran ne bloquent plus la navigation. */
.page>.card,.page>.admin-section,.page>.timeline,.page>.top-space{content-visibility:auto;contain-intrinsic-size:auto 360px}.table-wrap{contain:layout paint}.gantt-body{contain:layout paint}.btn,.nav-item{touch-action:manipulation}

/* V8.6 — typographie unifiée aperçu/impression, pagination longue et tableaux haute lisibilité */
.premium-report{font-size:var(--report-font-size,12pt)!important;line-height:1.48}.premium-report p,.premium-report li,.premium-report td,.premium-report th{font-size:1em!important}.premium-report small{font-size:.82em!important}.premium-report h2{font-size:1.65em!important}.premium-report h3{font-size:1.18em!important}.premium-report .report-kpi strong{font-size:1.55em!important}
.premium-report table{border:2px solid #111!important;border-collapse:separate!important;border-spacing:0!important}.premium-report th,.premium-report td{border-right:1.5px solid #111!important;border-bottom:1.5px solid #111!important;color:#101820!important}.premium-report th{background:#e7edf3!important;color:#071b30!important}.premium-report tr:last-child td{border-bottom:0!important}.premium-report th:last-child,.premium-report td:last-child{border-right:0!important}
.report-recommendations{border:2px solid color-mix(in srgb,var(--report-color) 55%,#111)!important;border-radius:16px;padding:18px!important;background:#f7faff}.report-recommendations ol{margin:8px 0 0;padding-left:1.4em}.report-recommendations li+li{margin-top:.55em}.chart-comment{margin:12px 4px 0;color:#33475c;line-height:1.55}.report-chart-card{break-inside:avoid;page-break-inside:avoid}
@media print{@page{margin:0}.print-export .premium-report{font-size:var(--report-font-size,12pt)!important}.print-export .report-head{border-radius:0!important}.print-export .report-preview-footer{border-radius:0!important}.print-export table thead{display:table-header-group}.print-export table tfoot{display:table-footer-group}.print-export table tr,.print-export .report-chart-card,.print-export .report-kpi,.print-export .report-recommendations{break-inside:avoid;page-break-inside:avoid}.print-export *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}

/* V8.7 — graphiques inspirés des références fournies et protection anti-chevauchement. */
.premium-report>.report-chart-grid{display:none!important}.report-graphs{padding-top:20px!important}.report-graphs>h3{font-size:1.35em!important;margin-bottom:4px!important}.chart-section-intro{margin:0 0 16px;color:#50657a}.report-chart-grid-four{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:0!important;gap:16px!important}.report-chart-grid-four .report-chart-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1.5px solid #9eb2c7!important;background:linear-gradient(155deg,#fff,#f4f9fd)!important}.report-chart-card h4{margin:0 0 12px;color:#173a63;font-size:1.05em}.report-chart-card>p{margin:12px 0 0;line-height:1.45;color:#42576c}.v87-line-chart{display:grid;gap:8px;min-height:190px}.v87-line-chart svg{width:100%;height:160px;overflow:visible}.v87-line-chart .chart-area{fill:rgba(25,169,159,.18);stroke:none}.v87-line-chart .chart-line{fill:none;stroke:#168f88;stroke-width:4;stroke-linejoin:round}.v87-line-chart circle{fill:#e85656;stroke:#fff;stroke-width:2}.v87-line-chart text{font-size:10px;font-weight:800;text-anchor:middle;fill:#173a63}.v87-gauge{position:relative;width:min(260px,92%);aspect-ratio:2/1;margin:18px auto 4px;overflow:hidden}.v87-gauge:before{content:"";position:absolute;inset:0;border-radius:260px 260px 0 0;background:conic-gradient(from 270deg at 50% 100%,#14a98f 0deg var(--gauge),#e5ebf1 var(--gauge) 180deg,transparent 180deg)}.v87-gauge-hole{position:absolute;left:17%;right:17%;bottom:0;height:66%;display:grid;place-content:end center;padding-bottom:8px;border-radius:180px 180px 0 0;background:#fff;text-align:center}.v87-gauge-hole strong{font-size:2em;color:#173a63}.v87-gauge-hole span{color:#60758a}.report-recommendations p{white-space:pre-line;line-height:1.7}.report-pagination-note{border:2px solid #d39b27!important;background:#fff8e7;padding:16px!important;border-radius:14px}.premium-report .report-head,.premium-report .report-preview-footer,.premium-report .report-section,.premium-report .report-chart-card{overflow-wrap:anywhere;word-break:normal}.premium-report table{table-layout:auto;width:100%}.premium-report td,.premium-report th{vertical-align:top}.print-export .report-graphs{break-before:auto}.print-export .report-chart-grid-four{break-inside:auto}.print-export .report-chart-card{min-height:260px}
@media(max-width:800px){.report-chart-grid-four{grid-template-columns:1fr!important}}

/* V9 — contrôles éditables, pagination bornée et stabilité d'impression. */
.field-label-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.field-label-actions label{margin:0}.field-help{display:block;margin-top:7px;color:var(--muted);font-size:.78rem;line-height:1.4}
.report-chart-card[data-chart-kind="bars"] .bar-chart:empty:after{content:"0 — aucune valeur filtrée";display:grid;place-items:center;min-height:130px;color:var(--muted)}
.report-page-limited .report-pagination-note{break-inside:avoid;page-break-inside:avoid}.premium-report p,.premium-report li{orphans:3;widows:3}.premium-report h2,.premium-report h3,.premium-report h4{break-after:avoid;page-break-after:avoid}
@media print{
  .print-export .report-section,.print-export .report-signature-block,.print-export .report-pagination-note{position:relative;z-index:1}
  .print-export .report-chart-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
  .print-export .report-chart-card{overflow:hidden!important;break-inside:avoid!important;page-break-inside:avoid!important}
  .print-export .report-page-limit-2 .report-chart-card{min-height:178px;padding:12px!important}
  .print-export .report-page-limit-2 .v87-line-chart{min-height:128px}.print-export .report-page-limit-2 .v87-line-chart svg{height:112px}
  .print-export .report-page-limit-2 .v87-gauge{max-width:190px;margin-top:8px}
  .print-export .report-page-limit-2 .report-signature-block{margin-top:24px!important;min-height:130px!important}.print-export .report-page-limit-2 .report-signature-block>div{min-height:100px!important}.print-export .report-page-limit-2 .report-signature-block i{padding-top:28px!important}
}

/* V13.3 — équipes, traçabilité financière et adaptation multi-écrans. */
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:14px;margin-bottom:20px}.team-card{min-width:0;border-top:4px solid #197f73}.team-card.is-archived{opacity:.76;border-top-color:#8492a0;background:#f7f8fa}.team-finance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.team-finance-grid span{min-width:0;padding:9px 10px;border:1px solid #d8e2eb;border-radius:9px;background:#f8fafc}.team-finance-grid small,.team-finance-grid strong{display:block;overflow-wrap:anywhere}.team-finance-grid small{color:#607286;font-size:.72rem}.team-finance-grid strong{margin-top:3px;color:#173a63;font-size:.92rem}
.financial-alert-list{display:grid;gap:8px;margin:0 0 16px}.financial-alert{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;width:100%;padding:12px 14px;border:1px solid #f0b4b8;border-left:5px solid #c9373f;border-radius:10px;background:#fff4f5;color:#632228;text-align:left;cursor:pointer}.financial-alert strong{min-width:0;overflow-wrap:anywhere}.financial-alert span{grid-column:1;color:#7f3a40;font-size:.82rem}.financial-alert b{grid-column:2;grid-row:1/3;align-self:center;white-space:nowrap}.financial-alert:hover,.financial-alert:focus-visible{background:#ffe8ea;outline:3px solid rgba(201,55,63,.15)}.financial-row-focus{animation:financial-focus 1.2s ease 2;background:#fff0f1!important;box-shadow:inset 5px 0 #c9373f}@keyframes financial-focus{50%{background:#ffdadd;box-shadow:inset 8px 0 #b4232b}}
.table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:max(100%,680px)}.page-header,.card-header,.section-heading{min-width:0}.page-title,.page-title h1,.page-title p,.card-header>div{min-width:0;overflow-wrap:anywhere}.row-actions{flex-wrap:wrap}
@media(max-width:900px){.page-header{align-items:flex-start;flex-wrap:wrap;gap:12px}.page-header>.actions{width:100%;flex-wrap:wrap}.dashboard-grid,.grid-2,.grid-3,.visual-grid,.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.advanced-toolbar{align-items:stretch}.advanced-toolbar .filter-field{flex:1 1 180px}.modal-card{width:min(96vw,720px);max-height:94dvh}.team-finance-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){body{overflow-x:hidden}.page{padding-inline:10px}.dashboard-grid,.grid-2,.grid-3,.visual-grid,.kpi-grid,.team-finance-grid{grid-template-columns:1fr!important}.page-header>.actions,.page-header>.actions .btn,.page-header>.actions .file-button{width:100%}.card{padding:13px}.financial-alert{grid-template-columns:1fr}.financial-alert span,.financial-alert b{grid-column:1;grid-row:auto}.financial-alert b{justify-self:start}.quick-attendance{display:grid;grid-template-columns:repeat(3,minmax(42px,1fr));min-width:150px}.btn,button,input,select,textarea{min-height:42px}.btn-sm{min-height:36px}.modal-card{inset:auto;width:calc(100vw - 12px);margin:6px;max-height:calc(100dvh - 12px);border-radius:14px}.modal-body,.modal-header,.modal-footer{padding-inline:14px}.form-grid{grid-template-columns:1fr!important}.team-card .row-actions .btn{flex:1 1 130px}.gantt-shell{max-width:100%;overflow:auto}}
@media(max-width:390px){.page{padding-inline:7px}.card{padding:11px}.team-card .row-actions{display:grid;grid-template-columns:1fr}.team-card .row-actions .btn{width:100%}.kpi-card{padding:11px}.page-title h1{font-size:1.45rem}}
@media print{.financial-alert-list,.team-card .row-actions{display:none!important}.financial-row-focus{animation:none!important;box-shadow:none!important}.table-wrap{overflow:visible!important}.table-wrap table{min-width:0}}

/* V10 — grille de 8/12 graphiques, légendes explicites et blocs anti-chevauchement. */
.report-chart-grid-v10{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px!important;padding:0!important}
.report-chart-grid-v10 .report-chart-card{display:flex;flex-direction:column;min-width:0;min-height:330px;overflow:hidden;border:1px solid #d8e2ec!important;box-shadow:0 10px 28px rgba(15,34,54,.08)}
.report-chart-grid-v10 .report-chart-card h4{min-height:44px;margin:0 0 12px;color:var(--report-color,#173a63);font-size:1.02rem;line-height:1.35}
.report-chart-grid-v10 .chart-legend{margin-top:auto;padding:10px 12px;border-left:4px solid var(--report-color,#173a63);background:#f2f6fa;color:#26384a;font-size:.86rem;line-height:1.45}
.report-chart-grid-v10 .chart-explanation{margin:10px 0 0;color:#4b5c6c;font-size:.84rem;line-height:1.5}
.report-page-exact .report-graphs,.report-page-exact .report-summary,.report-page-exact .report-recommendations{break-inside:avoid;page-break-inside:avoid}
@media(max-width:760px){.report-chart-grid-v10{grid-template-columns:1fr}.report-chart-grid-v10 .report-chart-card{min-height:300px}}
@media print{.report-chart-grid-v10{grid-template-columns:repeat(2,minmax(0,1fr))!important}.report-chart-grid-v10 .report-chart-card{min-height:280px;box-shadow:none;break-inside:avoid;page-break-inside:avoid}.report-chart-grid-v10 .chart-legend,.report-chart-grid-v10 .chart-explanation{orphans:3;widows:3}}

/* V11 — l’aperçu reprend exactement le modèle paginé utilisé par le PDF. */
.report-document-v11{display:grid;gap:28px;background:#edf2f7;padding:24px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#142231}
.v11-report-page{position:relative;display:grid;grid-template-rows:auto 1fr auto;width:100%;margin:0 auto;background:#fff;box-shadow:0 18px 50px rgba(16,39,63,.16);overflow:hidden;break-after:page;page-break-after:always}
.v11-landscape .v11-report-page{max-width:1120px;aspect-ratio:1.414/1}.v11-portrait .v11-report-page{max-width:790px;aspect-ratio:1/1.414}
.v11-page-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.34fr);align-items:center;gap:24px;min-height:82px;padding:18px 30px;background:var(--report-color,#173a63);color:#fff}
.v11-page-head>div{min-width:0}.v11-page-head strong{display:block;font-size:.7em;letter-spacing:.15em;text-transform:uppercase}.v11-page-head h2{margin:5px 0 0;font-size:1.25em;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v11-page-head>div:last-child{text-align:right}.v11-page-head span,.v11-page-head small{display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v11-page-head small{color:#dce8f3;font-size:.68em}
.v11-page-body{min-height:0;padding:20px 30px;overflow:hidden}.v11-page-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:34px;padding:7px 30px;background:var(--report-color,#173a63);color:#fff;font-size:.64em}
.v11-filter-line{padding:8px 12px;border-left:4px solid var(--report-color,#173a63);background:#f1f5f9;font-size:.72em}.v11-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.v11-kpis>div{padding:10px 12px;border:1px solid #cbd7e3;border-radius:8px;background:#f8fafc}.v11-kpis span{display:block;color:#5d6c7b;font-size:.64em;text-transform:uppercase;letter-spacing:.06em}.v11-kpis strong{display:block;margin-top:4px;color:var(--report-color,#173a63);font-size:1.05em}
.v11-prose{padding:12px 14px;border:1px solid #d2dce6;border-radius:8px;background:#fff}.v11-prose h3,.v11-prose h4,.v11-action h3,.v11-action h4,.v11-section-title h3{margin:0 0 7px;color:var(--report-color,#173a63);font-size:.86em;letter-spacing:.05em;text-transform:uppercase}.v11-prose p,.v11-action p{margin:0;white-space:pre-line;font-size:.67em;line-height:1.42;text-align:justify}.v11-prose-compact{margin-bottom:10px}.v11-prose-compact p{font-size:.64em;line-height:1.38}
.v11-action{margin-top:10px;padding:10px 14px;border-left:4px solid #c28b20;background:#fff8e8}.v11-action p+p{margin-top:5px}.v11-action-compact{padding:9px 12px}.v11-signatures{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:10px}.v11-signatures>div{display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:8px;padding:8px 10px;border:1px solid #111}.v11-signatures span{font-size:.62em;color:#5b6875}.v11-signatures strong{font-size:.7em}.v11-signatures i{padding:0 28px 2px 0;border-bottom:1px solid #111;font-size:.6em;color:#5b6875}
.v11-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:10px}.v11-section-title h3{font-size:.95em}.v11-section-title p{margin:0;color:#5b6c7d;font-size:.66em}
.v11-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;height:calc(100% - 34px)}.v11-chart-grid-dense{grid-template-rows:repeat(4,minmax(0,1fr))}.v11-chart-card{display:grid;grid-template-rows:auto minmax(76px,1fr) auto auto;min-width:0;min-height:0;padding:10px 12px;border:1.6px solid #1a2733;border-radius:8px;background:#fff;overflow:hidden}.v11-chart-card h4{margin:0 0 5px;color:var(--report-color,#173a63);font-size:.69em;line-height:1.25}.v11-chart-visual{display:grid;align-items:center;min-height:0;overflow:hidden}.v11-chart-card .bar-chart{gap:4px}.v11-chart-card .bar-row{grid-template-columns:minmax(62px,.34fr) 1fr auto;gap:5px;font-size:.58em}.v11-chart-card .bar-track{height:8px}.v11-chart-card .v87-line-chart{min-height:72px;gap:2px}.v11-chart-card .v87-line-chart svg{height:82px}.v11-chart-card .v87-line-chart>strong{font-size:.58em}.v11-chart-card .v87-gauge{width:min(150px,70%);margin:2px auto;max-height:86px}.v11-chart-card .v87-gauge-hole strong{font-size:1.15em}.v11-chart-card .v87-gauge-hole span{font-size:.55em}.v11-chart-card .pie{max-width:110px;margin:0 auto}.v11-legend,.v11-reading{margin:4px 0 0;font-size:.56em;line-height:1.28;color:#465667}.v11-reading{color:#1e2b36}
.v11-table-wrap{overflow:hidden}.v11-report-table{width:100%;table-layout:fixed;border-collapse:collapse!important;border:2px solid #000!important;font-size:.63em}.v11-report-table th,.v11-report-table td{padding:6px 7px!important;border:1.4px solid #000!important;text-align:left;vertical-align:top;line-height:1.25}.v11-report-table th{background:#dfe7ef!important;color:#111!important;font-weight:800}.v11-report-table th:nth-child(1),.v11-report-table td:nth-child(1){width:5%}.v11-report-table th:nth-child(2),.v11-report-table td:nth-child(2){width:16%}.v11-report-table th:nth-child(4),.v11-report-table td:nth-child(4){width:13%}
@media(max-width:800px){.report-document-v11{padding:8px;gap:16px}.v11-page-head{grid-template-columns:1fr;gap:5px;padding:14px 18px}.v11-page-head>div:last-child{text-align:left}.v11-page-body{padding:14px 18px}.v11-kpis{grid-template-columns:repeat(2,1fr)}.v11-report-page{aspect-ratio:auto!important;min-height:760px}.v11-chart-grid{grid-template-columns:1fr;height:auto}.v11-chart-card{min-height:220px}}
@media print{.report-document-v11{display:block;padding:0;background:#fff}.v11-report-page{width:100%;max-width:none!important;margin:0;box-shadow:none;break-after:page;page-break-after:always}.v11-report-page:last-child{break-after:auto;page-break-after:auto}.v11-report-table,.v11-report-table th,.v11-report-table td{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.v11-page-head,.v11-page-foot{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}

/* V12.1 - rendu fidèle aux données, signatures finales et responsive renforcé. */
.v121-svg-chart{display:block;width:100%;height:112px;max-width:100%;overflow:visible}.v121-svg-chart text{font:600 22px "Segoe UI",Roboto,Arial,sans-serif;fill:#243447}.v121-pie{--value:0;width:104px;height:104px;margin:4px auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#138a76 calc(var(--value)*1%),#e4eaf0 0);position:relative}.v121-pie::after{content:"";position:absolute;inset:24px;border-radius:50%;background:#fff}.v121-pie strong{position:relative;z-index:1;font-size:15px;color:#172b3a}.v121-last-page .v11-page-body{display:flex;flex-direction:column;min-height:0}.v121-last-page .v11-chart-section{min-height:0;flex:1}.v121-final-signatures{margin-top:auto;padding-top:10px;flex:0 0 auto}.v11-page-head,.v11-page-foot{color:#fff}.v11-page-head *,.v11-page-foot *{color:#fff!important}.v11-table-wrap{max-width:100%;overflow-x:auto}.v11-report-table{min-width:620px}.page,.card,.modal-card,.form-grid,.dashboard-grid,.visual-grid{min-width:0}img,svg,canvas{max-width:100%;height:auto}input,select,textarea,button{max-width:100%}
@media(max-width:1024px){.page{padding-inline:clamp(10px,2vw,24px)}.dashboard-grid,.visual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-document-v11{padding:12px}.v11-page-head{gap:14px}.v11-page-head h2{font-size:1.05em}}
@media(max-width:760px){.dashboard-grid,.visual-grid,.form-grid,.v11-chart-grid{grid-template-columns:1fr!important}.v11-report-page{min-height:0;aspect-ratio:auto!important}.v11-page-head{grid-template-columns:1fr;min-height:0}.v11-page-head>div:last-child{text-align:left}.v11-page-head h2,.v11-page-head span,.v11-page-head small{white-space:normal;overflow:visible}.v11-page-body{overflow:visible}.v11-chart-grid{height:auto}.v11-chart-card{min-height:210px}.v121-final-signatures{grid-template-columns:1fr;gap:8px}.v11-page-foot{flex-wrap:wrap}.table-wrap,.v11-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}}
@media(max-width:420px){body{font-size:14px}.page{padding-inline:8px}.card{padding:12px}.v11-page-head,.v11-page-body,.v11-page-foot{padding-left:12px;padding-right:12px}.v11-kpis{grid-template-columns:1fr 1fr;gap:6px}.v11-kpis>div{padding:7px}.v11-chart-card{padding:8px}.v121-svg-chart{height:96px}.actions,.toolbar,.card-header{flex-wrap:wrap}.actions .btn,.toolbar .btn{width:100%}}
@media print{.v121-last-page .v11-page-body{display:flex!important;flex-direction:column!important}.v121-final-signatures{margin-top:auto!important;break-inside:avoid;page-break-inside:avoid}.v11-table-wrap{overflow:hidden!important}.v11-page-head,.v11-page-foot,.v11-page-head *,.v11-page-foot *{color:#fff!important}.v121-svg-chart{width:100%!important;height:auto!important;max-height:112px!important}}

/* V13 — WYSIWYG, rubriques professionnelles et graphiques 3D inspirés du référentiel fourni. */
.v13-wysiwyg-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:7px;border:1px solid #cbd8e5;border-radius:10px 10px 0 0;background:#edf3f8}
.v13-wysiwyg-toolbar button{min-width:34px;padding:6px 9px;border:1px solid #aebdcb;border-radius:7px;background:#fff;color:#173a63;cursor:pointer;font:inherit}
.v13-wysiwyg-toolbar button:hover,.v13-wysiwyg-toolbar button:focus-visible{border-color:#197f73;background:#e9f7f4;outline:2px solid rgba(25,127,115,.16)}
.v13-wysiwyg{min-height:138px;padding:12px 14px;border:1px solid #9eafbf;border-top:0;border-radius:0 0 10px 10px;background:#fff;line-height:1.5;overflow-wrap:anywhere}
.v13-wysiwyg:focus{outline:3px solid rgba(25,127,115,.18);border-color:#197f73}.v13-wysiwyg p{margin:0 0 8px}.v13-wysiwyg ul,.v13-wysiwyg ol{margin:6px 0;padding-left:22px}
.report-document-v13{font-size:var(--report-font-size,11pt)}
.report-document-v13 .v11-report-page{isolation:isolate}.report-document-v13 .v11-page-body{padding-bottom:12mm}
.v13-report-meta{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0 0 10px}
.v13-report-meta span{min-width:0;padding:7px 9px;border:1px solid #cbd7e3;border-radius:7px;background:#f8fafc;font-size:.62em;overflow-wrap:anywhere}
.v13-report-meta b{display:block;margin-bottom:3px;color:#516274;font-size:.86em;text-transform:uppercase;letter-spacing:.05em}
.v13-rich-report{font-size:.68em;line-height:1.48;text-align:justify}.v13-rich-report p{margin:0 0 8px}.v13-rich-report p:last-child{margin-bottom:0}.v13-rich-report ul,.v13-rich-report ol{margin:5px 0;padding-left:20px}
.v13-recommendations{padding:15px 17px;border:1.5px solid #111;border-left:5px solid var(--report-color,#173a63);border-radius:8px;background:linear-gradient(145deg,#fff,#f5f9fc)}
.v13-editable,.v13-chart-field,[data-v13-table-cell]{outline:1px dashed rgba(25,127,115,.32);outline-offset:2px;cursor:text}
.v13-editable:focus,.v13-chart-field:focus,[data-v13-table-cell]:focus{outline:2px solid #197f73;background:#f2fbf9}
.v13-svg-chart{display:block;width:100%;height:112px;overflow:visible;filter:drop-shadow(5px 8px 6px rgba(27,52,76,.16))}
.v13-svg-chart text{font:600 22px "Segoe UI",Roboto,Arial,sans-serif;fill:#243447}
.v13-pie-stage{display:grid;place-items:center;min-height:108px;perspective:560px;overflow:visible}
.v13-pie3d{--segments:conic-gradient(#e5ebf1 0 100%);position:relative;width:116px;height:116px;border-radius:50%;display:grid;place-items:center;background:var(--segments);transform:rotateX(57deg) rotateZ(-3deg);box-shadow:0 16px 0 #b9c4ce,0 25px 20px rgba(21,46,69,.28)}
.v13-pie3d::after{content:"";position:absolute;inset:28px;border-radius:50%;background:#fff;box-shadow:inset 0 8px 7px rgba(19,45,68,.22)}
.v13-pie3d:not(.is-doughnut)::after{inset:52px;background:#f7fafc}.v13-pie3d strong{position:relative;z-index:2;color:#173a63;font-size:18px;transform:rotateZ(3deg) rotateX(-57deg);text-shadow:0 1px #fff}
.v13-gauge3d{--rate:0deg;position:relative;width:min(230px,86%);height:105px;margin:2px auto;overflow:hidden;filter:drop-shadow(7px 10px 6px rgba(22,45,68,.20))}
.v13-gauge3d::before{content:"";position:absolute;inset:0;border-radius:220px 220px 0 0;background:conic-gradient(from 270deg at 50% 100%,#19b89f 0deg var(--rate),#f0ae39 var(--rate) 135deg,#df6b67 180deg,transparent 180deg)}
.v13-gauge3d::after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:64%;border-radius:180px 180px 0 0;background:#fff;box-shadow:inset 0 5px 8px rgba(23,58,99,.18)}
.v13-gauge3d>div{position:absolute;z-index:2;left:0;right:0;bottom:4px;display:grid;text-align:center}.v13-gauge3d strong{font-size:18px;color:#173a63}.v13-gauge3d span{font-size:10px;color:#607286}
.report-document-v13 .v11-chart-card{grid-template-rows:auto minmax(86px,1fr) auto auto;background:linear-gradient(145deg,#fff,#f4f8fb);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}
.report-document-v13 .v11-chart-grid{grid-template-rows:repeat(2,minmax(0,1fr));gap:11px}.report-document-v13 .v11-chart-card h4{min-height:0}
.report-document-v13 .v11-legend,.report-document-v13 .v11-reading{font-size:.54em;line-height:1.22}
.v13-signature-section{margin-top:auto;padding-top:10px;break-inside:avoid;page-break-inside:avoid}.v13-signature-section>h3{margin:0 0 6px;color:var(--report-color,#173a63);font-size:.72em;text-transform:uppercase;letter-spacing:.06em}
.v13-editable-table{min-width:0!important}.v13-editable-table td{overflow-wrap:anywhere;word-break:normal}
.v13-report-data-editor{margin:20px 0 0;padding:18px;border:1px solid #c9d6e3;border-radius:14px;background:#f6f9fc}.v13-report-data-editor>div>h3{margin:0;color:#173a63}.v13-report-data-editor>div>p{margin:4px 0 12px;color:#5a6b7c}.v13-report-data-editor details{margin-top:9px;border:1px solid #d4dee8;border-radius:10px;background:#fff}.v13-report-data-editor summary{padding:11px 13px;cursor:pointer;font-weight:800;color:#173a63}
.v13-chart-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px}.v13-chart-edit-card{min-width:0;padding:10px;border:1px solid #d7e1ea;border-radius:9px;background:#fbfdff}.v13-chart-edit-card>strong{display:block;margin-bottom:7px;color:#173a63}.v13-chart-edit-card label{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:6px;margin-top:5px}.v13-chart-edit-card input{min-width:0;padding:6px 8px;border:1px solid #b8c6d3;border-radius:6px}
.v13-chart-edit-card label.has-secondary{grid-template-columns:minmax(0,1fr) 88px 88px}
.v13-table-actions{display:grid;gap:8px;padding:10px}.v13-table-actions>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px;border:1px solid #dde5ed;border-radius:8px}.v13-table-actions span{margin-right:auto;font-weight:750;color:#26384a}
/* Les graphiques généraux de l'application reprennent le même relief discret. */
.pie,.mini-pie,.bar-track,.kpi-progress,.progress-track{filter:drop-shadow(2px 4px 3px rgba(23,58,99,.16))}.bar-fill,.progress-fill{background-image:linear-gradient(180deg,rgba(255,255,255,.42),transparent 38%,rgba(14,43,67,.16))!important;box-shadow:inset 0 -3px 0 rgba(17,44,68,.18)}
@media(max-width:900px){.v13-report-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.v13-chart-edit-grid{grid-template-columns:1fr}}
@media(max-width:760px){.report-document-v13 .v11-page-body{padding-bottom:18px}.v13-report-meta{grid-template-columns:1fr 1fr}.v13-rich-report{font-size:.8em}.v13-svg-chart{height:126px}.v13-pie-stage{min-height:132px}.v13-report-data-editor{padding:12px}.v13-chart-edit-card label{grid-template-columns:1fr 86px}.v13-chart-edit-card label.has-secondary{grid-template-columns:1fr 76px 76px}}
@media(max-width:420px){.v13-report-meta{grid-template-columns:1fr}.v13-wysiwyg-toolbar button{flex:1 1 30%}.v13-chart-edit-card label{grid-template-columns:1fr}.v13-table-actions .btn{width:100%}}
@media print{
  .report-document-v13 .v11-page-body{padding-bottom:12mm!important;overflow:hidden!important}
  .report-document-v13 .v11-page-foot{color:#fff!important}.report-document-v13 .v11-page-foot *{color:#fff!important}
  .v13-editable,.v13-chart-field,[data-v13-table-cell]{outline:0!important;background:transparent!important}
  .v13-svg-chart{height:112px!important;filter:drop-shadow(4px 6px 4px rgba(27,52,76,.14))}
  .v13-pie3d,.v13-gauge3d{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .v13-report-data-editor,.v13-wysiwyg-toolbar{display:none!important}
  .v13-signature-section{margin-top:auto!important}
}

/* V13.1 — gabarits fidèles aux rapports de référence fournis. */
.reference-report-v14{font-size:10pt!important;line-height:1.34;color:#111;background:#edf0f2}
.reference-report-v14.reference-global,.reference-report-v14.reference-expenses{font-family:"Times New Roman",Georgia,serif}
.reference-report-v14.reference-stock{font-family:Arial,"Segoe UI",sans-serif}
.reference-report-v14 .v14-reference-page{display:grid;grid-template-rows:minmax(0,1fr) auto;color:#111;background:#fff}
.reference-report-v14.v11-portrait .v14-reference-page{max-width:790px;aspect-ratio:1/1.414}.reference-report-v14.v11-landscape .v14-reference-page{max-width:1120px;aspect-ratio:1.414/1}
.v14-reference-body{display:flex;min-height:0;flex-direction:column;padding:17mm 20mm 10mm;overflow:hidden}
.v14-reference-body>div{min-height:0}.v14-reference-meta{padding:0 0 11px;border-bottom:1.4px solid #8d8d8d}
.reference-report-v14 .v14-reference-meta h2{margin:0 0 13px;color:#111;font-family:inherit,"Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:13pt!important;line-height:1.2;font-weight:800;text-transform:uppercase;letter-spacing:0}
.v14-reference-meta p{margin:2px 0!important;color:#111;font-size:9.5pt!important;line-height:1.26}
.v14-reference-meta strong{font-weight:800}.v14-reference-section{padding:13px 0 12px;border-bottom:1.2px solid #a2a2a2;break-inside:avoid;page-break-inside:avoid}
.v14-reference-section:last-child{border-bottom:0}.reference-report-v14 .v14-reference-section h3{margin:0 0 10px;color:#111;font-size:10.6pt!important;line-height:1.28;font-weight:800;text-transform:uppercase;letter-spacing:0}
.v14-reference-kpis{margin:0;padding-left:25px}.v14-reference-kpis li{margin:0 0 9px;padding-left:5px;font-size:9.7pt!important;line-height:1.42}
.v14-reference-kpis li:last-child{margin-bottom:0}.v14-reference-kpis strong{font-weight:800}.v14-reference-kpis span{font-style:normal;color:#2f2f2f}
.v14-reference-figure figure{margin:0;break-inside:avoid;page-break-inside:avoid}.reference-report-v14 .v14-reference-figure h4{margin:0 0 5px;color:#111;text-align:center;font-size:10pt!important;font-weight:500}
.v14-reference-chart-svg{display:block;width:100%;height:auto;max-height:92mm;overflow:visible}.v14-reference-chart-svg text{font:500 15px Arial,"Segoe UI",sans-serif;fill:#171717}.v14-reference-figure figcaption{margin:5px auto 0;max-width:92%;color:#333;text-align:center;font-size:8.5pt!important;line-height:1.3}
.v14-reference-table-wrap{width:100%;overflow:hidden}.reference-report-v14 .v14-reference-table{min-width:0!important;width:100%!important;table-layout:auto!important;border:0!important;border-collapse:collapse!important;border-spacing:0!important;font-size:8.7pt!important}
.reference-report-v14 .v14-reference-table th,.reference-report-v14 .v14-reference-table td{width:auto!important;padding:5px 4px!important;border:0!important;border-bottom:.8px solid #222!important;background:#fff!important;color:#111!important;line-height:1.25;vertical-align:middle;overflow-wrap:anywhere}
.reference-report-v14 .v14-reference-table th{font-weight:800;text-align:left}.reference-report-v14 .v14-reference-table tbody tr:last-child td{border-bottom:1.1px solid #000!important}
.reference-report-v14 .v14-reference-table[data-v13-table="attendance"]{font-size:7.4pt!important}.reference-report-v14 .v14-reference-table[data-v13-table="attendance"] th,.reference-report-v14 .v14-reference-table[data-v13-table="attendance"] td{padding:2.5px 4px!important;line-height:1.12}
.reference-report-v14.reference-expenses .v14-reference-section h3{text-transform:none}
.v14-reference-prose .v13-rich-report{padding:0;border:0;background:transparent;color:#111;font-size:9.5pt!important;line-height:1.45;text-align:left}
.v14-reference-prose .v13-rich-report p{margin:0 0 8px}.v14-reference-prose .v13-rich-report ul,.v14-reference-prose .v13-rich-report ol{margin:5px 0 0;padding-left:25px}.v14-reference-prose .v13-rich-report li{margin:0 0 7px;font-size:9.5pt!important}
.v14-reference-signatures{display:grid;grid-template-columns:1fr 1fr;gap:25mm;margin-top:auto;padding-top:9mm;break-inside:avoid;page-break-inside:avoid}
.v14-reference-signatures>div{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:end;min-height:25mm;border:0;border-top:1px solid #999;padding-top:5px}
.v14-reference-signatures strong,.v14-reference-signatures span,.v14-reference-signatures i{font-size:8.5pt}.v14-reference-signatures i{grid-column:1/-1;padding-top:9mm;border-bottom:1px solid #555;color:#444}
.v14-reference-page-number{display:flex;justify-content:space-between;padding:3mm 20mm 4mm;border:0;color:#666;background:#fff;font-size:7.5pt}
.reference-report-v14 .v13-editable,.reference-report-v14 .v13-chart-field,.reference-report-v14 [data-v13-table-cell]{outline-color:rgba(25,127,115,.24)}
@media(max-width:760px){.reference-report-v14 .v14-reference-page{aspect-ratio:auto;min-height:0}.v14-reference-body{padding:18px 16px}.v14-reference-chart-svg{max-height:280px}.v14-reference-page-number{padding:7px 16px}.reference-report-v14 .v14-reference-table{font-size:8pt!important}.v14-reference-signatures{grid-template-columns:1fr;gap:16px}}
@media print{
  .reference-report-v14{display:block!important;padding:0!important;background:#fff!important;font-size:10pt!important}
  .reference-report-v14 .v14-reference-page{max-width:none!important;aspect-ratio:auto!important;margin:0!important;box-shadow:none!important;overflow:hidden!important;break-after:page!important;page-break-after:always!important}
  .reference-report-v14.v11-a4.v11-portrait .v14-reference-page{width:210mm!important;height:297mm!important}.reference-report-v14.v11-a4.v11-landscape .v14-reference-page{width:297mm!important;height:210mm!important}
  .reference-report-v14.v11-a3.v11-portrait .v14-reference-page{width:297mm!important;height:420mm!important}.reference-report-v14.v11-a3.v11-landscape .v14-reference-page{width:420mm!important;height:297mm!important}
  .reference-report-v14 .v14-reference-page:last-child{break-after:auto!important;page-break-after:auto!important}
  .reference-report-v14.v11-portrait .v14-reference-body{padding:17mm 20mm 10mm!important}.reference-report-v14.v11-landscape .v14-reference-body{padding:12mm 18mm 8mm!important}.reference-report-v14.v11-a3 .v14-reference-body{padding-left:22mm!important;padding-right:22mm!important}.v14-reference-body{overflow:hidden!important}.v14-reference-chart-svg{max-height:92mm!important}
  .reference-report-v14 .v14-reference-table,.reference-report-v14 .v14-reference-table th,.reference-report-v14 .v14-reference-table td{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .v14-reference-page-number{padding:3mm 20mm 4mm!important;color:#666!important;background:#fff!important}
}
