/* Accueil : graphiques, disposition, réorganisation et impression. */
.dashboard-main .page-head { align-items: center; gap: 20px; flex-wrap: wrap; padding-top: 14px; }
.dashboard-main .page-head__main { flex: 1 1 320px; }
.dashboard-summary { width: min(100%, 330px); padding: 11px 14px; border: 1px solid var(--cg-line); border-radius: 10px; background: var(--cg-surface); }
.dashboard-summary__head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 6px; }
.dashboard-summary__head span { font-size: 15px; font-weight: 600; }
.dashboard-summary__head strong { font-size: 30px; font-weight: 800; line-height: 1; color: var(--dashboard-status, #bf7410); }
.dashboard-summary__track { height: 12px; position: relative; border-radius: 4px; background: #edf0f4; overflow: hidden; }
.dashboard-summary__fill { display: block; height: 100%; width: 83%; background: var(--dashboard-status, #bf7410); }
.dashboard-summary__scale { display: flex; justify-content: space-between; margin-top: 5px; font-size: 11px; color: var(--cg-muted); }
.dashboard-summary__legend { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 5px; font-size: 11px; color: #4d5869; }
.dashboard-summary__legend span { display: inline-flex; align-items: center; gap: 5px; }
.dashboard-summary__legend i { width: 7px; height: 7px; border-radius: 50%; background: var(--swatch); }
.dashboard-toolbar { display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; margin: 10px 0 0; }
.dashboard-toolbar__note { flex: 1 1 245px; margin: 0; color: var(--cg-muted); font-size: 12px; }
.dashboard-toolbar__actions { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.dashboard-icon-button { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; padding: 0; border: 1px solid transparent; border-radius: 10px; color: #6c7c90; background: transparent; font-size: 17px; transition: background .15s, color .15s, border-color .15s; }
.dashboard-icon-button:hover { color: var(--cg-primary); background: #e3eaf5; border-color: #d5dfed; }
.dashboard-icon-button:focus-visible, .dashboard-edit-done:focus-visible { outline: 3px solid rgba(56,105,183,.35); outline-offset: 2px; }
.dashboard-icon-button[hidden], .dashboard-toolbar__edit[hidden], .dashboard-card__controls[hidden] { display: none !important; }
.dashboard-toolbar__edit { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.dashboard-toolbar__mode { margin-right: 7px; font-size: 12px; font-weight: 600; color: #3d5b86; }
.dashboard-edit-done { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 36px; padding: 7px 12px; margin: 0 6px; border: 1px solid #d4dfed; border-radius: 10px; font-size: 12px; font-weight: 600; color: #315886; background: #fff; }
.dashboard-edit-done:hover { background: #edf3fb; border-color: #b8cde6; }
.dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 12px; }
.dashboard-grid .dash-card { min-width: 0; overflow: hidden; transition: outline-color .15s, opacity .15s; }
.dashboard-main.is-editing .dashboard-grid .dash-card { outline: 1px dashed #9fb5d0; outline-offset: 3px; }
.dashboard-main.is-editing .dashboard-card__head { padding-top: 8px; }
.dashboard-grid .dash-card[hidden] { display: none; }
.dashboard-grid .dash-card__body { display: block; padding: 14px 16px; }
.dashboard-grid .dash-card__foot { padding: 10px 16px; }
.dashboard-grid .dash-card__foot { margin-top: auto; }
.dashboard-card__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 13px 0 16px; }
.dashboard-card__head .dash-card__title { padding: 0; font-size: 13px; }
.dashboard-card__controls { display: flex; gap: 2px; flex: none; }
.dashboard-card__controls button { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; border-radius: 9px; color: #637894; background: transparent; font-size: 15px; }
.dashboard-card__controls button:hover, .dashboard-card__controls button:focus-visible { color: var(--cg-primary); background: var(--cg-primary-soft); }
.dashboard-card__controls button:focus-visible { outline: 2px solid #a8bfe0; outline-offset: -2px; }
.dashboard-card__controls button:disabled { opacity: .25; }
.dashboard-card__grip { cursor: grab; }
.dashboard-card__grip:active { cursor: grabbing; }
.dashboard-grid .is-dragging { opacity: .5; }
.dashboard-main.is-editing .dashboard-grid .is-drop-target { outline: 2px solid var(--cg-primary); outline-offset: 3px; }
.dashboard-parc { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(100px, 1fr); align-items: center; gap: 16px; }
.dashboard-parc__details { min-width: 0; }
.dashboard-parc__details .dash-list { margin-top: 12px; gap: 6px; }
.dashboard-parc__details .dash-list li { gap: 6px; font-size: 12.5px; }
.dashboard-parc__details .dash-list__pct { font-size: 11.5px; margin-left: 2px; }
.dashboard-parc .dash-stat { align-items: flex-start; }
.dashboard-parc .dash-stat__ico { width: 40px; height: 40px; font-size: 20px; }
.dashboard-chart { margin: 0; min-width: 0; text-align: center; }
.dashboard-chart svg { display: block; width: 100%; height: auto; max-height: 140px; }
.dashboard-chart figcaption { font-size: 12px; color: #657184; margin-top: 0; }
.dashboard-chart__total { font-size: 20px; font-weight: 700; fill: #22344d; text-anchor: middle; }
.dashboard-chart__label { font-size: 11px; fill: #657184; text-anchor: middle; }
.dashboard-parc + .dash-list { margin-top: 14px; }
.dashboard-grid .dash-list { gap: 9px; }
.dashboard-grid .dash-list__pct { display: inline; }
.dashboard-retards { display: grid; grid-template-columns: minmax(0, 1fr) minmax(140px, .95fr); gap: 18px; align-items: center; }
.dashboard-retards .dash-list { margin-top: 17px; }
.dashboard-retards .dash-stat__ico { width: 40px; height: 40px; font-size: 20px; }
.dashboard-current { display: flex; align-items: center; justify-content: space-between; gap: 15px; border-top: 1px solid var(--cg-line-2); margin: 0 20px; padding: 12px 0; font-size: 14px; }
.dashboard-current strong { font-size: 30px; line-height: 1; font-weight: 800; color: var(--dashboard-status, #bf7410); }
.dashboard-planning__summary { margin: 0 0 5px; font-size: 13px; color: #4d5869; }
.dashboard-planning__summary strong { font-size: 21px; color: var(--cg-ink); }
.dashboard-bars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; align-items: end; min-height: 170px; padding: 5px 6px 0; }
.dashboard-bars__item { text-align: center; min-width: 0; }
.dashboard-bars__plot { height: 140px; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; border-bottom: 1px solid #cbd5e2; }
.dashboard-bars__value { font-weight: 700; font-size: 13px; color: #253951; margin-bottom: 4px; }
.dashboard-bars__bar { display: block; min-height: 2px; background: var(--bar-color); height: var(--bar-height); border-radius: 5px 5px 0 0; width: 70%; align-self: center; }
.dashboard-bars__label { display: block; margin-top: 8px; font-size: 12px; color: #536277; line-height: 1.2; }
.dashboard-planning__note { margin: 14px 0 0; color: var(--cg-muted); font-size: 11px; }
.dashboard-ce__message { margin: 17px 0 0; font-size: 14px; color: #536277; max-width: 440px; }
.dashboard-grid .dash-note { margin-top: 12px; }
.dashboard-provider { margin-top: 18px; }
.dashboard-provider a { display: flex; gap: 8px; align-items: center; width: 100%; color: var(--cg-link); }
.dashboard-provider a:hover .dash-list__label { text-decoration: underline; }
.dashboard-history { grid-column: 1 / -1; margin-top: 0; }
.dashboard-history .table-responsive { padding-top: 11px; }
.dashboard-history .dash-alerts__table th, .dashboard-history .dash-alerts__table td { padding: 10px 14px; }
.dashboard-history .col-type { width: 45px; }
.dashboard-history .col-when { white-space: nowrap; }
.dashboard-history .dash-alerts__table td.col-detail { white-space: normal; }
.dashboard-dialog__note { color: #536277; font-size: 14px; }
.dashboard-block-choices { display: grid; gap: 7px; margin-top: 18px; }
.dashboard-block-choice { display: flex; align-items: center; gap: 12px; min-height: 49px; padding: 11px 14px; border: 1px solid #e1e7ef; border-radius: 12px; background: #f8fafd; cursor: pointer; color: #354761; font-size: 14px; }
.dashboard-block-choice:hover { border-color: #bdcde2; background: #f1f5fb; }
.dashboard-block-choice:has(input:checked) { border-color: #cedded; background: #f2f6fb; }
.dashboard-block-choice .form-check-input { flex: none; margin: 0; }
.dashboard-certificates th, .dashboard-certificates td { padding: 11px; }
.dashboard-certificates td { vertical-align: middle; }
.dashboard-certificates .certificate-name { display: block; font-size: 12px; color: #647185; max-width: 260px; }
.dashboard-workflow__list { display: grid; gap: 8px; }
.dashboard-workflow__list a { padding: 10px 12px; border: 1px solid var(--cg-line); border-radius: 6px; }
.dashboard-workflow__list a span { display: block; color: #536277; font-size: 13px; margin-top: 2px; }
.dashboard-files { margin-top: 12px; padding-left: 20px; font-size: 14px; }
@media (max-width: 1199.98px) {
  .dashboard-parc { grid-template-columns: minmax(0, 1fr) minmax(100px, .75fr); gap: 10px; }
  .dashboard-parc .dash-stat__ico { display: none; }
  .dashboard-parc__details .dash-list__value { white-space: normal; text-align: right; }
  .dashboard-parc__details .dash-list__pct { display: block; }
}
@media (max-width: 767.98px) {
  .dashboard-main .page-head { gap: 16px; }
  .dashboard-summary { width: 100%; }
  .dashboard-grid { grid-template-columns: minmax(0, 1fr); }
  .dashboard-parc .dash-stat { display: flex; }
  .dashboard-parc .dash-stat__ico { display: flex; width: 32px; height: 32px; font-size: 17px; }
  .dashboard-parc__details .dash-list__value { white-space: nowrap; }
  .dashboard-parc__details .dash-list__pct { display: inline; }
  .dashboard-toolbar__note { flex-basis: 210px; }
  .dashboard-main.is-editing .dashboard-toolbar__actions { flex-basis: 100%; }
  .dashboard-grid .dash-card__title { font-size: 12px; }
  .dashboard-history .dash-alerts__table { font-size: 12px; }
}
@media (pointer: coarse) {
  .dashboard-icon-button, .dashboard-card__controls button { width: 44px; height: 44px; }
  .dashboard-edit-done { min-height: 44px; }
}
@media (max-width: 420px) {
  .dashboard-parc .dash-stat { display: flex; }
  .dashboard-retards { gap: 10px; grid-template-columns: 1fr 130px; }
  .dashboard-retards .dash-stat__ico { display: none; }
  .dashboard-retards .dash-list li { font-size: 12px; }
  .dashboard-bars { gap: 7px; }
  .dashboard-card__head { padding-left: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-grid .dash-card { transition: none; }
  .dashboard-icon-button { transition: none; }
}
@media print {
  @page { size: A4 portrait; margin: 12mm; }
  html, body { height: auto !important; background: #fff !important; color: #17243b !important; }
  .app-header, .app-sidebar, .sidebar-toggle, .btn-families, .dashboard-toolbar__actions, .dashboard-card__controls, .dash-card__foot, .offcanvas, .modal, .app-notice, .dashboard-print-hide { display: none !important; }
  .app-body { display: block !important; margin: 0 !important; padding: 0 !important; }
  .app-main.dashboard-main { width: 100% !important; margin: 0 !important; padding: 0 !important; background: #fff !important; }
  .dashboard-main .page-head { display: flex; margin: 0 0 10px; padding: 0; }
  .dashboard-main .page-head__main { flex: 1 1 50%; }
  .dashboard-summary { width: 260px; padding: 10px 12px; }
  .dashboard-main .page-title { font-size: 21px; }
  .dashboard-summary__head strong { font-size: 29px; }
  .dashboard-toolbar { margin: 0; }
  .dashboard-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px; }
  .dashboard-grid .dash-card { break-inside: avoid; page-break-inside: avoid; box-shadow: none; }
  .dashboard-main.is-editing .dashboard-grid .dash-card { outline: none; }
  .dashboard-card__head { padding: 12px 12px 0; }
  .dashboard-grid .dash-card__body { padding: 12px; }
  .dashboard-grid .dash-stat__ico { display: none; }
  .dashboard-grid .dash-stat { display: block; }
  .dashboard-grid .dash-stat__value { font-size: 27px; }
  .dashboard-grid .dash-list li, .dashboard-grid .dash-stat__label, .dashboard-ce__message { font-size: 11px; }
  .dashboard-retards { grid-template-columns: 1fr 110px; gap: 10px; }
  .dashboard-parc { grid-template-columns: 1fr 120px; }
  .dashboard-current { margin: 0 12px; padding: 8px 0; }
  .dashboard-current strong { font-size: 25px; }
  .dashboard-bars__plot { height: 100px; }
  .dashboard-bars { min-height: 135px; }
  .dashboard-grid .dash-quick { padding: 12px; gap: 5px; }
  .dashboard-grid .dash-quick__item { padding: 7px; font-size: 11px; }
  .dashboard-history .dash-alerts__table { font-size: 10px; min-width: 0; }
  .dashboard-history .dash-alerts__table th, .dashboard-history .dash-alerts__table td { padding: 7px; }
  .dashboard-history .table-responsive { overflow: visible; }
  .dashboard-history table { width: 100%; table-layout: auto; }
  .dashboard-history td, .dashboard-history th { white-space: normal !important; }
  a { color: inherit !important; text-decoration: none !important; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
