@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");

/*
 * Espace client PermisMag Ads — identité visuelle
 * -----------------------------------------------
 * Palette et signature empruntent au vocabulaire de la signalisation
 * routière française (le sujet même de PermisMag) plutôt qu'à un style
 * SaaS générique : bleu directionnel, papier administratif, accent ambre
 * d'avertissement. Élément signature : les indicateurs clés sont traités
 * comme des panneaux circulaires (type limitation de vitesse) plutôt que
 * des cartes rectangulaires.
 */

/*
 * Les variables sont déclarées sur `body` plutôt que sur `.pmam-account-root`
 * : la modale et les notifications sont ajoutées directement à `document.body`
 * par le script (nécessaire pour un positionnement fixe fiable au-dessus de
 * toute la page), donc en dehors de `.pmam-account-root`. Des variables
 * déclarées uniquement sur ce dernier seraient invisibles pour elles (les
 * variables CSS ne se transmettent qu'aux descendants, jamais aux éléments
 * frères) — c'était la cause du problème d'affichage sur les modales et les
 * messages de succès (couleurs/fonds non résolus).
 */
body {
    --ink: #14213d;
    --route-blue: #1d4e89;
    --route-blue-dark: #123a68;
    --signal-amber: #f2a93b;
    --paper: #f7f6f2;
    --panel: #ffffff;
    --line: #dedbd2;
    --muted: #5b6472;
    --success: #2e7d46;
    --success-bg: #e7f3ea;
    --warning-bg: #fdf1de;
    --warning-text: #8a5a12;
    --danger: #c1432d;
    --danger-bg: #fbeae6;
}

/* Le thème PermisMag utilise un en-tête sticky ("#header-outer") qui n'a
   pas sa place dans cet espace applicatif dédié. Idem pour les enveloppes
   d'en-tête/pied de page du constructeur de page tagDiv Composer
   (".tdc-header-wrap" / ".tdc-footer-wrap"), et le fil d'Ariane /
   en-tête de page classiques du thème (".td-crumb-container" /
   ".td-page-header"). */
#header-outer,
.tdc-header-wrap,
.tdc-footer-wrap,
.td-crumb-container,
.td-page-header {
    display: none !important;
}

.pmam-account-root {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--ink);
    margin: 0 auto;
    padding: 32px 20px 64px;
}

.pmam-account-root * {
    box-sizing: border-box;
}

/* ---------- Connexion ---------- */

.pmam-account-login {
    max-width: 440px;
    margin: 64px auto;
    text-align: center;
    padding: 48px 32px;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 4px;
    border-top: 4px solid var(--route-blue);
}

.pmam-account-login p {
    color: var(--muted);
    margin: 0 0 20px;
}

.pmam-account-login__button {
    display: inline-block;
    background: var(--route-blue);
    color: #fff;
    padding: 11px 28px;
    border-radius: 3px;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.01em;
    transition: background-color 0.15s ease;
}

.pmam-account-login__button:hover {
    background: var(--route-blue-dark);
}

.pmam-account-login__button:focus-visible {
    outline: 3px solid var(--signal-amber);
    outline-offset: 2px;
}

/* ---------- En-tête ---------- */

.pmam-acc-header {
    margin-bottom: 14px;
    padding-bottom: 4px;
    border-bottom: 3px solid var(--ink);
    position: relative;
}

.pmam-acc-header-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.pmam-acc-logout {
    flex-shrink: 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--muted);
    text-decoration: none;
    padding: 8px 14px;
    border: 1px solid var(--line);
    border-radius: 3px;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.pmam-acc-logout:hover {
    color: var(--danger);
    border-color: var(--danger);
}

.pmam-acc-logout:focus-visible {
    outline: 2px solid var(--signal-amber);
    outline-offset: 2px;
}

.pmam-acc-eyebrow {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--route-blue);
    margin-bottom: 6px;
}

.pmam-acc-header h1 {
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -0.01em;
    margin: 0 0 4px;
    line-height: 1.15;
}

.pmam-acc-header::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    width: 56px;
    height: 3px;
    background: var(--signal-amber);
}

/* ---------- Navigation par onglets ---------- */

.pmam-acc-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.pmam-acc-tab {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 4px;
    margin-right: 22px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    color: var(--muted);
    transition: color 0.15s ease, border-color 0.15s ease;
}

.pmam-acc-tab:hover {
    color: var(--ink);
}

.pmam-acc-tab.is-active {
    color: var(--route-blue);
    border-bottom-color: var(--route-blue);
}

.pmam-acc-tab:focus-visible {
    outline: 2px solid var(--signal-amber);
    outline-offset: 2px;
}

/* ---------- Contenu ---------- */

.pmam-acc-content {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 4px;
    padding: 28px;
}

.pmam-acc-upload-status {
    display: block;
    font-size: 13px;
    color: #007017;
    margin: -8px 0 14px;
}

.pmam-acc-hint {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    color: var(--muted);
    font-size: 13.5px;
    line-height: 1.5;
    margin: 0 0 18px;
    padding: 12px 14px;
    background: var(--paper);
    border-left: 3px solid var(--route-blue);
}

.pmam-acc-hint__text {
    flex: 1 1 auto;
}

.pmam-acc-hint__close {
    flex: 0 0 auto;
    border: none;
    background: transparent;
    color: var(--muted);
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 3px;
}

.pmam-acc-hint__close:hover {
    background: var(--line);
    color: var(--ink);
}

.pmam-acc-hint--collapsed {
    display: inline-flex;
    border: 1px solid var(--line);
    border-left: 3px solid var(--route-blue);
    background: var(--panel);
    color: var(--muted);
    font-size: 13px;
    line-height: 1;
    margin: 0 0 18px;
    padding: 5px 9px;
    cursor: pointer;
}

.pmam-acc-hint--collapsed:hover {
    color: var(--ink);
}

.pmam-acc-hint--warning {
    background: var(--warning-bg);
    border-left-color: var(--danger);
    color: var(--danger);
    font-weight: 600;
}

.pmam-acc-error {
    background: var(--danger-bg);
    color: var(--danger);
    padding: 16px 20px;
    border-radius: 3px;
    border-left: 3px solid var(--danger);
    font-size: 14px;
}

.pmam-account-loading {
    color: var(--muted);
    text-align: center;
    padding: 48px 0;
    font-size: 14px;
}

.pmam-acc-loading-inline {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 24px 4px;
    color: var(--muted);
    font-size: 14px;
}

.pmam-acc-spinner {
    width: 18px;
    height: 18px;
    border: 2px solid var(--line);
    border-top-color: var(--route-blue);
    border-radius: 50%;
    animation: pmam-acc-spin 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes pmam-acc-spin {
    to { transform: rotate(360deg); }
}

/* ---------- Tableau ---------- */

.pmam-acc-table {
    border-collapse: collapse;
    width: 100%;
}

.pmam-acc-table th,
.pmam-acc-table td {
    text-align: left;
    padding: 6px 10px;
    border-bottom: 1px solid var(--line);
    font-size: 13px;
}

.pmam-acc-table th {
    color: var(--muted);
    font-weight: 700;
    font-size: 10.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--ink);
}

.pmam-acc-sortable-th {
    cursor: pointer;
    user-select: none;
}

.pmam-acc-sortable-th:hover {
    color: var(--ink);
}

.pmam-acc-table tbody tr:hover {
    background: var(--paper);
}

.pmam-acc-breakdown-row {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    flex-wrap: wrap;
}

.pmam-acc-breakdown-col {
    flex: 1 1 48%;
    min-width: 280px;
}

.pmam-acc-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 11px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    background: var(--paper);
    color: var(--muted);
    border: 1px solid var(--line);
}

.pmam-acc-badge--active { background: var(--success-bg); color: var(--success); border-color: transparent; }
.pmam-acc-badge--scheduled { background: #e7eef7; color: var(--route-blue); border-color: transparent; }
.pmam-acc-badge--draft,
.pmam-acc-badge--to_validate { background: var(--warning-bg); color: var(--warning-text); border-color: transparent; }
.pmam-acc-badge--suspended { background: var(--warning-bg); color: var(--warning-text); border-color: transparent; }
.pmam-acc-badge--archived,
.pmam-acc-badge--completed { background: var(--paper); color: var(--muted); }

/* ---------- Indicateurs clés (élément signature : panneaux circulaires) ---------- */

.pmam-acc-cards {
    display: flex;
    gap: 20px;
    margin-bottom: 28px;
    flex-wrap: wrap;
}

.pmam-acc-range-presets {
    display: flex;
    gap: 6px;
}

.pmam-acc-stats-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 18px;
}

.pmam-acc-stats-toolbar h3 {
    margin: 0;
    margin-right: auto;
}

.pmam-acc-stats-toolbar select {
    width: auto;
}

.pmam-acc-inline-field {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--muted);
}

.pmam-acc-inline-field input {
    padding: 6px !important;
    border: 1px solid var(--line);
    border-radius: 3px;
    font-size: 13px;
    background: var(--panel);
    color: var(--ink);
}

.pmam-acc-cards--compact {
    gap: 10px;
    margin-bottom: 20px;
}

.pmam-acc-stat-compact {
    background: var(--panel);
    border: 1px solid var(--line);
    border-left: 3px solid var(--route-blue);
    border-radius: 4px;
    padding: 10px 18px;
    min-width: 120px;
}

.pmam-acc-stat-compact__sparkline {
    margin-top: 4px;
    line-height: 0;
}

.pmam-acc-stat-compact__delta {
    display: inline-block;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 600;
    color: var(--muted);
}

.pmam-acc-stat-compact__delta--up {
    color: var(--success);
}

.pmam-acc-stat-compact__delta--down {
    color: var(--danger);
}

.pmam-acc-info-icon {
    display: inline-block;
    margin-left: 4px;
    color: var(--muted);
    cursor: help;
    font-size: 13px;
    line-height: 1;
}

.pmam-acc-info-icon:hover,
.pmam-acc-info-icon:focus {
    color: var(--ink);
}

.pmam-acc-refresh-status {
    display: flex;
    align-items: center;
    font-size: 12px;
    color: var(--muted);
    margin: 8px 0 16px;
}

.pmam-acc-top-list {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 4px;
}

.pmam-acc-top-list__item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--line);
}

.pmam-acc-top-list__item:last-child {
    border-bottom: none;
}

.pmam-acc-top-list__rank {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--paper);
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pmam-acc-top-list__body {
    flex: 1 1 auto;
    min-width: 0;
}

.pmam-acc-top-list__row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
}

.pmam-acc-top-list__label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}

.pmam-acc-top-list__value {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
}

.pmam-acc-top-list__bar-track {
    height: 4px;
    border-radius: 2px;
    background: var(--paper);
    overflow: hidden;
}

.pmam-acc-top-list__bar {
    height: 100%;
    background: var(--route-blue);
    border-radius: 2px;
}

.pmam-acc-sparkline {
    width: 100%;
    max-width: 100px;
    height: 22px;
    display: block;
}

.pmam-acc-sparkline-line {
    stroke-width: 1.5;
    vector-effect: non-scaling-stroke;
}

.pmam-acc-realtime-panel {
    background: var(--panel);
    border: 1px solid var(--line);
    border-left: 3px solid var(--success);
    border-radius: 4px;
    padding: 12px 18px;
    max-width: 340px;
}

.pmam-acc-realtime-panel__header {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--muted);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
}

.pmam-acc-realtime-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--success);
    display: inline-block;
    animation: pmam-acc-realtime-pulse 2s ease-in-out infinite;
}

@keyframes pmam-acc-realtime-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

.pmam-acc-realtime-panel__value {
    font-size: 28px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.1;
}

.pmam-acc-realtime-panel__label {
    font-size: 11px;
    color: var(--muted);
    margin-bottom: 10px;
}

.pmam-acc-realtime-bars {
    width: 100%;
    height: 52px;
    display: block;
}

.pmam-acc-realtime-bar {
    opacity: 0.85;
}

.pmam-acc-stat-compact__value {
    font-size: 22px;
    font-weight: 800;
    color: var(--ink);
    line-height: 1.2;
}

.pmam-acc-stat-compact__label {
    font-size: 11.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--muted);
}

.pmam-acc-chart-wrap {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 4px;
    padding: 14px 10px 4px;
    margin-bottom: 24px;
}

.pmam-acc-chart {
    width: 100%;
    height: auto;
    display: block;
}

.pmam-acc-chart-grid {
    stroke: var(--line);
    stroke-width: 1;
}

.pmam-acc-chart-axis-label {
    font-size: 10px;
    fill: var(--muted);
}

.pmam-acc-chart-area {
    opacity: 0.1;
}

.pmam-acc-chart-line {
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.pmam-acc-chart-point {
    cursor: pointer;
}

.pmam-acc-chart-marker {
    cursor: pointer;
}

.pmam-acc-chart-marker-dot {
    fill: var(--ink);
}

.pmam-acc-chart-marker-icon {
    stroke: #fff;
    stroke-width: 0.6;
    fill: none;
}

.pmam-acc-chart-viz {
    position: relative;
}

.pmam-acc-chart-hit-area {
    cursor: crosshair;
}

.pmam-acc-chart-crosshair {
    stroke: var(--line);
    stroke-width: 1;
    stroke-dasharray: 3 3;
    pointer-events: none;
}

.pmam-acc-chart-hover-dot {
    stroke: #fff;
    stroke-width: 2;
    pointer-events: none;
}

.pmam-acc-chart-tooltip {
    position: absolute;
    z-index: 10;
    background: #1d2327;
    color: #fff;
    padding: 6px 10px;
    border-radius: 4px;
    font-size: 12px;
    line-height: 1.4;
    white-space: nowrap;
    pointer-events: none;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.pmam-acc-chart-tooltip__date {
    color: #c3c4c7;
    font-size: 11px;
}

.pmam-acc-chart-tooltip__value {
    font-weight: 600;
}

.pmam-acc-chart-tooltip--multi {
    white-space: normal;
}

.pmam-acc-chart-tooltip__series {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    margin-top: 2px;
}

.pmam-acc-chart-tooltip__dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.pmam-acc-compare {
    margin-top: 8px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}

.pmam-acc-compare-toggle {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.pmam-acc-compare-picker {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin-bottom: 16px;
    max-height: 140px;
    overflow-y: auto;
    padding: 10px 12px;
    background: var(--paper);
    border-radius: 4px;
}

.pmam-acc-compare-picker__item {
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.pmam-acc-compare-picker__item--disabled {
    color: var(--muted);
}

.pmam-acc-compare-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin: 10px 0 16px;
}

.pmam-acc-compare-legend__item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
}

.pmam-acc-pagination {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 10px 0;
}

.pmam-acc-pagination__status {
    font-size: 12.5px;
    color: var(--muted);
}

.pmam-acc-stat-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 128px;
}

.pmam-acc-stat-card__value {
    width: 108px;
    height: 108px;
    border-radius: 50%;
    border: 4px solid var(--route-blue);
    background: var(--panel);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 800;
    color: var(--ink);
    line-height: 1.1;
    text-align: center;
    padding: 4px;
}

.pmam-acc-stat-card__label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted);
    text-align: center;
}

/* ---------- Formulaire (nouvelle campagne) ---------- */

.pmam-acc-form .pmam-acc-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 18px;
}

.pmam-acc-form label {
    font-weight: 700;
    font-size: 12.5px;
    color: var(--ink);
}

.pmam-acc-field-tooltip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    margin-left: 6px;
    border-radius: 50%;
    background: var(--line);
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    cursor: help;
    vertical-align: middle;
}

.pmam-acc-form input,
.pmam-acc-form select,
.pmam-acc-form textarea {
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 3px;
    font-size: 14px;
    width: 100%;
    background: var(--panel);
    color: var(--ink);
    transition: border-color 0.15s ease;
    font-family: inherit;
}

.pmam-acc-form textarea {
    resize: vertical;
    font-family: Consolas, Menlo, monospace;
    font-size: 12.5px;
}

.pmam-acc-form input:focus,
.pmam-acc-form select:focus,
.pmam-acc-form textarea:focus {
    border-color: var(--route-blue);
    outline: none;
}

.pmam-acc-form input:focus-visible,
.pmam-acc-form select:focus-visible,
.pmam-acc-form textarea:focus-visible {
    outline: 2px solid var(--signal-amber);
    outline-offset: 1px;
}

.pmam-acc-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 18px;
}

.pmam-acc-button {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 3px;
    border: 1px solid var(--line);
    background: var(--panel);
    color: var(--ink);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.pmam-acc-button--primary {
    background: var(--route-blue);
    color: #fff;
    border-color: var(--route-blue);
}

.pmam-acc-button--primary:hover {
    background: var(--route-blue-dark);
    border-color: var(--route-blue-dark);
}

.pmam-acc-button:focus-visible {
    outline: 3px solid var(--signal-amber);
    outline-offset: 2px;
}

/* ---------- Notifications ---------- */

.pmam-acc-toast {
    position: fixed;
    bottom: 24px;
    right: 24px;
    background: var(--ink);
    color: #fff;
    padding: 13px 20px;
    border-radius: 3px;
    font-size: 14px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    z-index: 100001;
    box-shadow: 0 6px 20px rgba(20, 33, 61, 0.25);
    box-sizing: border-box;
}

.pmam-acc-toast--error {
    background: var(--danger);
}

/* ---------- Barre d'outils ---------- */

.pmam-acc-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.pmam-acc-toolbar select {
    width: auto !important;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 3px;
    font-size: 13.5px;
    background: var(--panel);
    color: var(--ink);
}

/* ---------- Actions en ligne de tableau ---------- */

.pmam-acc-row-actions {
    display: flex;
    gap: 6px;
    white-space: nowrap;
}

.pmam-acc-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid var(--line);
    border-radius: 3px;
    background: var(--panel);
    color: var(--ink);
    font-size: 14px;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.pmam-acc-icon-btn:hover {
    border-color: var(--route-blue);
    color: var(--route-blue);
}

.pmam-acc-icon-btn:focus-visible {
    outline: 2px solid var(--signal-amber);
    outline-offset: 1px;
}

/* ---------- Modales ---------- */

.pmam-acc-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(20, 33, 61, 0.55);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 40px 20px;
    z-index: 100000;
    overflow-y: auto;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--ink);
}

.pmam-acc-modal-overlay * {
    box-sizing: border-box;
}

.pmam-acc-modal {
    background: var(--panel);
    border-radius: 4px;
    border-top: 4px solid var(--route-blue);
    padding: 28px 32px;
    width: 100%;
    max-width: 520px;
    box-shadow: 0 12px 40px rgba(20, 33, 61, 0.3);
}

.pmam-acc-modal--wide {
    max-width: 760px;
}

.pmam-acc-modal h2 {
    font-size: 19px;
    font-weight: 800;
    margin: 0 0 18px;
}

.pmam-acc-modal h3 {
    font-size: 14px;
    font-weight: 700;
    margin: 22px 0 10px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.pmam-acc-form-actions {
    display: flex;
    gap: 10px;
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

/* ---------- Liens sortants (éditeur de bannière) ---------- */

.pmam-acc-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pmam-acc-link-row {
    display: grid;
    grid-template-columns: 1fr 1.6fr 1fr 1fr auto;
    gap: 8px;
    align-items: center;
}

.pmam-acc-link-row input {
    padding: 7px 9px;
    border: 1px solid var(--line);
    border-radius: 3px;
    font-size: 13px;
}

/* ---------- Shortcode ---------- */

.pmam-acc-shortcode {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pmam-acc-shortcode code {
    background: var(--paper);
    border: 1px solid var(--line);
    padding: 4px 9px;
    border-radius: 3px;
    font-size: 12px;
    font-family: Consolas, Menlo, monospace;
}

/* ---------- Liste d'affectations ---------- */

.pmam-acc-assignment-list {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pmam-acc-assignment-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px;
    background: var(--paper);
    border-radius: 3px;
    font-size: 13.5px;
}

/* ---------- Case à cocher ---------- */

.pmam-acc-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 400 !important;
    font-size: 14px !important;
    margin: 14px 0;
    cursor: pointer;
}

.pmam-acc-checkbox input {
    width: auto !important;
}

/* ---------- Accessibilité / mouvement ---------- */

@media (prefers-reduced-motion: reduce) {
    .pmam-account-root * {
        transition: none !important;
    }

    .pmam-acc-spinner {
        animation: none;
        border-top-color: var(--line);
    }
}

/* ---------- Réactif ---------- */

@media (max-width: 640px) {
    .pmam-account-root {
        padding: 20px 16px 48px;
    }

    .pmam-acc-content {
        padding: 18px;
    }

    .pmam-acc-grid {
        grid-template-columns: 1fr;
    }

    .pmam-acc-tabs {
        gap: 0;
    }

    .pmam-acc-tab {
        margin-right: 14px;
        font-size: 13px;
    }

    .pmam-acc-cards {
        gap: 14px;
    }

    .pmam-acc-stat-card {
        width: 96px;
    }

    .pmam-acc-modal {
        padding: 20px;
    }

    .pmam-acc-link-row {
        grid-template-columns: 1fr;
    }

    .pmam-acc-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .pmam-acc-stat-card__value {
        width: 84px;
        height: 84px;
        font-size: 18px;
    }
}

.pmam-acc-targeting-editor {
    background: var(--paper);
    border-radius: 4px;
    padding: 14px 16px;
    margin: 10px 0 16px;
}

.pmam-acc-targeting-toggle {
    display: flex;
    gap: 6px;
    margin-bottom: 12px;
}

.pmam-acc-targeting-rows {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 10px;
}

.pmam-acc-targeting-row {
    display: grid;
    grid-template-columns: 200px 1fr auto auto;
    gap: 8px;
    align-items: center;
}

.pmam-acc-targeting-row select,
.pmam-acc-targeting-row input {
    width: 100%;
    box-sizing: border-box;
}

.pmam-acc-targeting-negate {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.pmam-acc-targeting-novalue {
    color: var(--muted);
    font-size: 12px;
    font-style: italic;
}

@media (max-width: 640px) {
    .pmam-acc-targeting-row {
        grid-template-columns: 1fr;
    }
}


/* ========================================================================== 
   Premium Bento UI — frontend-only redesign (light mode only)
   ========================================================================== */

body {
    --ink: #0f172a;
    --route-blue: #2563eb;
    --route-blue-dark: #1d4ed8;
    --signal-amber: #f59e0b;
    --paper: #fafafa;
    --panel: #ffffff;
    --line: #e2e8f0;
    --muted: #64748b;
    --success: #059669;
    --success-bg: #ecfdf5;
    --warning-bg: #fffbeb;
    --warning-text: #b45309;
    --danger: #dc2626;
    --danger-bg: #fef2f2;
}

.pmam-account-root {
    width: 100%;
    max-width: 1580px;
    min-height: 100vh;
    margin: 0 auto;
    padding: 24px 20px 56px;
    background:
        radial-gradient(circle at 7% 0%, rgba(219, 234, 254, .62), transparent 28rem),
        radial-gradient(circle at 94% 2%, rgba(224, 231, 255, .42), transparent 28rem),
        #fafafa;
    color: #0f172a;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.pmam-account-root *,
.pmam-acc-modal-overlay *,
.pmam-acc-toast { box-sizing: border-box; }

.pmam-account-root button,
.pmam-account-root input,
.pmam-account-root select,
.pmam-account-root textarea,
.pmam-acc-modal-overlay button,
.pmam-acc-modal-overlay input,
.pmam-acc-modal-overlay select,
.pmam-acc-modal-overlay textarea {
    font-family: inherit;
}

.pmam-account-root button:focus-visible,
.pmam-account-root a:focus-visible,
.pmam-account-root input:focus-visible,
.pmam-account-root select:focus-visible,
.pmam-account-root textarea:focus-visible,
.pmam-acc-modal-overlay button:focus-visible,
.pmam-acc-modal-overlay input:focus-visible,
.pmam-acc-modal-overlay select:focus-visible,
.pmam-acc-modal-overlay textarea:focus-visible {
    outline: 3px solid rgba(59, 130, 246, .22);
    outline-offset: 2px;
}

.pmam-acc-app { width: 100%; margin: 0 auto; }

.pmam-acc-topbar {
    min-height: 74px;
    margin-bottom: 18px;
    padding: 12px 14px 12px 18px;
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr);
    align-items: center;
    gap: 18px;
    border: 1px solid rgba(226, 232, 240, .94);
    border-radius: 24px;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 10px 40px -20px rgba(15, 23, 42, .18);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    animation: pmam-reveal .8s cubic-bezier(.16, 1, .3, 1) both;
}

.pmam-acc-brand { display: flex; align-items: center; gap: 13px; min-width: 0; }
.pmam-acc-brand-mark {
    width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center;
    border-radius: 14px; color: #fff;
    background: linear-gradient(145deg, #2563eb, #4f46e5);
    box-shadow: 0 12px 25px -12px rgba(37, 99, 235, .8);
}
.pmam-acc-brand-mark svg { width: 22px; height: 22px; display: block; }
.pmam-acc-brand-title { color: #0f172a; font-size: 15px; font-weight: 800; letter-spacing: -.025em; white-space: nowrap; }
.pmam-acc-brand-subtitle { margin-top: 1px; overflow: hidden; color: #64748b; font-size: 10px; font-weight: 600; letter-spacing: .12em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }

.pmam-acc-tabs {
    display: flex; align-items: center; justify-content: center; gap: 4px;
    margin: 0; padding: 4px; border: 1px solid #eef2f7; border-radius: 15px; background: #f8fafc;
}
.pmam-acc-tab {
    position: relative; min-height: 38px; margin: 0; padding: 0 15px; border: 0; border-radius: 11px;
    background: transparent; color: #64748b; cursor: pointer; font-size: 13px; font-weight: 600;
    transition: color .22s ease, background .22s ease, box-shadow .22s ease, transform .22s ease;
}
.pmam-acc-tab::after { display: none; }
.pmam-acc-tab:hover { color: #0f172a; transform: translateY(-1px); }
.pmam-acc-tab.is-active { background: #fff; color: #0f172a; box-shadow: 0 5px 16px -9px rgba(15, 23, 42, .35), inset 0 0 0 1px #e2e8f0; }

.pmam-acc-topbar-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.pmam-acc-account-pill,
.pmam-acc-soft-chip {
    display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border: 1px solid #e2e8f0;
    border-radius: 999px; background: #f8fafc; color: #64748b; font-size: 10px; font-weight: 700;
    letter-spacing: .06em; text-transform: uppercase; white-space: nowrap;
}
.pmam-acc-logout {
    min-height: 40px; padding: 0 13px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid #e2e8f0;
    border-radius: 13px; background: #fff; color: #475569; font-size: 12px; font-weight: 700; text-decoration: none;
    transition: transform .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.pmam-acc-logout svg { width: 17px; height: 17px; }
.pmam-acc-logout:hover { color: #2563eb; border-color: rgba(59, 130, 246, .35); transform: translateY(-2px); box-shadow: 0 10px 20px -12px rgba(15, 23, 42, .3); }

.pmam-acc-page-heading {
    margin: 0 0 18px; padding: 10px 4px 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px;
    animation: pmam-reveal .8s cubic-bezier(.16, 1, .3, 1) .05s both;
}
.pmam-acc-heading-copy { min-width: 0; }
.pmam-acc-eyebrow,
.pmam-acc-card-kicker {
    display: block; margin: 0 0 6px; color: #3b82f6; font-size: 10px; font-weight: 800;
    letter-spacing: .16em; text-transform: uppercase;
}
.pmam-acc-page-heading h1 { margin: 0; color: #0f172a; font-size: clamp(28px, 3vw, 42px); font-weight: 800; letter-spacing: -.045em; line-height: 1.06; }
.pmam-acc-page-heading p { max-width: 720px; margin: 7px 0 0; color: #64748b; font-size: 14px; }
.pmam-acc-live-status { display: flex; align-items: center; gap: 8px; padding: 8px 11px; color: #475569; font-size: 11px; font-weight: 600; white-space: nowrap; }
.pmam-acc-live-dot,
.pmam-acc-realtime-dot {
    position: relative; width: 8px; height: 8px; flex: 0 0 8px; border-radius: 999px; background: #10b981; box-shadow: 0 0 0 4px rgba(16, 185, 129, .11);
}
.pmam-acc-live-dot::after,
.pmam-acc-realtime-dot::after { content: ""; position: absolute; inset: -5px; border: 1px solid rgba(16, 185, 129, .5); border-radius: inherit; animation: pmam-pulse 2.2s ease-out infinite; }

.pmam-acc-content { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.pmam-acc-content > div { min-width: 0; }

.pmam-acc-bento-card,
.pmam-acc-stat-compact,
.pmam-acc-realtime-panel,
.pmam-acc-breakdown-col,
.pmam-acc-compare,
.pmam-acc-filter-card {
    position: relative; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 28px; background: #fff;
    box-shadow: 0 10px 40px -10px rgba(0, 0, 0, .04);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.pmam-acc-bento-card::before,
.pmam-acc-stat-compact::before,
.pmam-acc-realtime-panel::before,
.pmam-acc-breakdown-col::before,
.pmam-acc-compare::before {
    content: ""; position: absolute; top: 0; left: 24px; right: 24px; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.95), transparent); opacity: .7; pointer-events: none;
}
.pmam-acc-bento-card:hover,
.pmam-acc-stat-compact:hover,
.pmam-acc-realtime-panel:hover,
.pmam-acc-breakdown-col:hover,
.pmam-acc-compare:hover {
    border-color: rgba(59, 130, 246, .3); transform: translateY(-5px); box-shadow: 0 20px 40px -10px rgba(0, 0, 0, .08);
}
.pmam-acc-reveal { animation: pmam-reveal .8s cubic-bezier(.16, 1, .3, 1) both; }
.pmam-acc-reveal:nth-child(2) { animation-delay: .06s; }
.pmam-acc-reveal:nth-child(3) { animation-delay: .12s; }
.pmam-acc-reveal:nth-child(4) { animation-delay: .18s; }
.pmam-acc-reveal:nth-child(5) { animation-delay: .24s; }
.pmam-acc-reveal:nth-child(6) { animation-delay: .30s; }
.pmam-acc-reveal:nth-child(7) { animation-delay: .36s; }
.pmam-acc-reveal:nth-child(8) { animation-delay: .42s; }

.pmam-acc-filter-card {
    margin: 0 0 18px; padding: 14px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    border-radius: 22px; background: rgba(255, 255, 255, .88); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
.pmam-acc-stats-toolbar { margin-bottom: 18px; padding-bottom: 0; border-bottom: 0; }
.pmam-acc-range-presets { display: flex; gap: 5px; padding: 4px; border: 1px solid #eef2f7; border-radius: 13px; background: #f8fafc; }
.pmam-acc-inline-field { display: inline-flex; align-items: center; gap: 7px; color: #64748b; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }

.pmam-account-root input:not([type="checkbox"]):not([type="radio"]),
.pmam-account-root select,
.pmam-account-root textarea,
.pmam-acc-modal-overlay input:not([type="checkbox"]):not([type="radio"]),
.pmam-acc-modal-overlay select,
.pmam-acc-modal-overlay textarea {
    min-height: 42px; padding: 9px 12px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; color: #0f172a;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .02); transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.pmam-account-root textarea,
.pmam-acc-modal-overlay textarea { min-height: 110px; resize: vertical; }
.pmam-account-root input:hover,
.pmam-account-root select:hover,
.pmam-account-root textarea:hover,
.pmam-acc-modal-overlay input:hover,
.pmam-acc-modal-overlay select:hover,
.pmam-acc-modal-overlay textarea:hover { border-color: #cbd5e1; }
.pmam-account-root input:focus,
.pmam-account-root select:focus,
.pmam-account-root textarea:focus,
.pmam-acc-modal-overlay input:focus,
.pmam-acc-modal-overlay select:focus,
.pmam-acc-modal-overlay textarea:focus { border-color: #60a5fa; box-shadow: 0 0 0 4px rgba(59, 130, 246, .1); }

.pmam-acc-button,
.pmam-acc-icon-btn {
    min-height: 40px; padding: 0 14px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; color: #334155;
    cursor: pointer; font-size: 12px; font-weight: 700; box-shadow: none;
    transition: transform .22s ease, color .22s ease, border-color .22s ease, background .22s ease, box-shadow .22s ease;
}
.pmam-acc-button:hover,
.pmam-acc-icon-btn:hover { color: #2563eb; border-color: rgba(59, 130, 246, .35); background: #f8fbff; transform: translateY(-2px); box-shadow: 0 10px 20px -14px rgba(15, 23, 42, .35); }
.pmam-acc-button--primary { border-color: #2563eb; background: linear-gradient(145deg, #2563eb, #4f46e5); color: #fff; box-shadow: 0 12px 24px -14px rgba(37, 99, 235, .9); }
.pmam-acc-button--primary:hover { border-color: #1d4ed8; background: linear-gradient(145deg, #1d4ed8, #4338ca); color: #fff; }
.pmam-acc-button[disabled],
.pmam-acc-icon-btn[disabled] { opacity: .45; pointer-events: none; transform: none; }
.pmam-acc-icon-btn { width: 38px; min-width: 38px; padding: 0; display: inline-grid; place-items: center; font-size: 16px; }
.pmam-acc-toolbar { margin: 0 0 16px; }

.pmam-acc-refresh-status { margin: -8px 4px 14px auto; color: #94a3b8; font-size: 11px; text-align: right; }
.pmam-acc-info-icon { color: #94a3b8; }

.pmam-acc-cards--compact {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 0 18px;
}
.pmam-acc-stat-compact,
.pmam-acc-realtime-panel { min-width: 0; min-height: 190px; padding: 24px; display: flex; flex-direction: column; align-items: stretch; text-align: left; }
.pmam-acc-stat-compact__top { min-height: 30px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pmam-acc-metric-orb { width: 38px; height: 38px; border-radius: 13px; background: linear-gradient(145deg, #eff6ff, #eef2ff); box-shadow: inset 0 0 0 1px rgba(59, 130, 246, .1); }
.pmam-acc-stat-compact:nth-child(2) .pmam-acc-metric-orb { background: linear-gradient(145deg, #eef2ff, #f5f3ff); }
.pmam-acc-stat-compact:nth-child(3) .pmam-acc-metric-orb { background: linear-gradient(145deg, #ecfdf5, #f0fdfa); }
.pmam-acc-stat-compact:nth-child(4) .pmam-acc-metric-orb { background: linear-gradient(145deg, #fffbeb, #fff7ed); }
.pmam-acc-stat-compact__value { margin: auto 0 0; color: #0f172a; font-size: clamp(28px, 3vw, 42px); font-weight: 800; letter-spacing: -.045em; line-height: 1; }
.pmam-acc-stat-compact__label { margin-top: 9px; color: #64748b; font-size: 11px; font-weight: 700; letter-spacing: .09em; line-height: 1.35; text-transform: uppercase; }
.pmam-acc-stat-compact__delta { min-height: 25px; padding: 4px 8px; border-radius: 999px; background: #f8fafc; color: #64748b; font-size: 10px; font-weight: 800; white-space: nowrap; }
.pmam-acc-stat-compact__delta--up { background: #ecfdf5; color: #047857; }
.pmam-acc-stat-compact__delta--down { background: #fef2f2; color: #dc2626; }
.pmam-acc-stat-compact__sparkline { width: 100%; height: 35px; margin-top: 14px; }
.pmam-acc-sparkline { width: 100%; height: 100%; overflow: visible; }
.pmam-acc-sparkline-line { stroke: #3b82f6; stroke-width: 2.5; filter: drop-shadow(0 5px 5px rgba(59, 130, 246, .18)); }

.pmam-acc-realtime-panel { justify-content: flex-start; background: linear-gradient(145deg, #fff, #fbfdff); }
.pmam-acc-realtime-panel__header { color: #047857; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pmam-acc-realtime-panel__value { margin: 18px 0 0; color: #0f172a; font-size: 42px; font-weight: 800; letter-spacing: -.045em; line-height: 1; }
.pmam-acc-realtime-panel__label { margin-top: 8px; color: #64748b; font-size: 11px; line-height: 1.4; }
.pmam-acc-realtime-panel__bars { margin-top: auto; padding-top: 14px; }
.pmam-acc-realtime-bars { width: 100%; height: 48px; }
.pmam-acc-realtime-bar { fill: #3b82f6; opacity: .7; transition: opacity .2s ease; }
.pmam-acc-realtime-bar:hover { opacity: 1; }

.pmam-acc-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.pmam-acc-card-header h3 { margin: 0; color: #0f172a; font-size: 17px; font-weight: 800; letter-spacing: -.025em; line-height: 1.25; }
.pmam-acc-card-header select { min-width: 190px; }
.pmam-acc-hero-card { margin: 0 0 18px; padding: 30px 32px 24px; }
.pmam-acc-hero-summary { margin: 25px 0 8px; display: flex; align-items: flex-end; gap: 16px; }
.pmam-acc-hero-number { color: #0f172a; font-size: clamp(38px, 5vw, 64px); font-weight: 800; letter-spacing: -.06em; line-height: .95; }
.pmam-acc-hero-copy { padding-bottom: 5px; display: flex; flex-direction: column; gap: 2px; }
.pmam-acc-hero-copy strong { color: #334155; font-size: 12px; font-weight: 700; }
.pmam-acc-hero-copy span { color: #94a3b8; font-size: 11px; }
.pmam-acc-chart-wrap { margin: 12px 0 0; padding: 0; border: 0; background: transparent; }
.pmam-acc-chart-viz { position: relative; overflow: visible; }
.pmam-acc-chart { width: 100%; height: 230px; overflow: visible; }
.pmam-acc-chart-grid { stroke: #eef2f7; stroke-width: 1; }
.pmam-acc-chart-line { stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 8px 8px rgba(59, 130, 246, .12)); }
.pmam-acc-chart-area { opacity: .08; }
.pmam-acc-chart-axis-label { fill: #94a3b8; font-size: 10px; font-weight: 600; }
.pmam-acc-chart-point { stroke-width: 2; }
.pmam-acc-chart-crosshair { stroke: #cbd5e1; stroke-dasharray: 4 4; }
.pmam-acc-chart-tooltip { z-index: 5; padding: 9px 11px; border: 1px solid #e2e8f0; border-radius: 11px; background: rgba(15, 23, 42, .94); color: #fff; box-shadow: 0 15px 30px -12px rgba(15,23,42,.45); font-size: 11px; }

.pmam-acc-insight-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px; margin: 0 0 18px; }
.pmam-acc-health-card { grid-column: span 5; padding: 28px; }
.pmam-acc-device-card { grid-column: span 3; padding: 28px; }
.pmam-acc-placement-card { grid-column: span 4; padding: 28px; }
.pmam-acc-health-summary { margin: 28px 0 22px; display: flex; align-items: center; gap: 18px; }
.pmam-acc-health-score { width: 88px; height: 88px; flex: 0 0 88px; display: grid; align-content: center; justify-items: center; border-radius: 27px; background: linear-gradient(145deg, #eff6ff, #eef2ff); box-shadow: inset 0 0 0 1px rgba(59, 130, 246, .1); }
.pmam-acc-health-score strong { color: #2563eb; font-size: 25px; font-weight: 800; letter-spacing: -.04em; }
.pmam-acc-health-score span { color: #64748b; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pmam-acc-health-main { display: flex; flex-direction: column; gap: 5px; }
.pmam-acc-health-main strong { color: #0f172a; font-size: 15px; font-weight: 750; }
.pmam-acc-health-main span { color: #64748b; font-size: 12px; }
.pmam-acc-status-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.pmam-acc-status-item { min-height: 42px; padding: 0 11px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; border: 1px solid #eef2f7; border-radius: 13px; background: #fafcff; color: #64748b; font-size: 11px; }
.pmam-acc-status-item strong { color: #0f172a; font-size: 12px; }
.pmam-acc-status-dot { width: 8px; height: 8px; border-radius: 999px; background: #94a3b8; }
.pmam-acc-status-dot--active { background: #10b981; box-shadow: 0 0 0 4px rgba(16,185,129,.1); }
.pmam-acc-status-dot--scheduled { background: #3b82f6; }
.pmam-acc-status-dot--to_validate { background: #f59e0b; }
.pmam-acc-status-dot--suspended { background: #ef4444; }

.pmam-acc-device-layout { min-height: 210px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; }
.pmam-acc-device-donut { position: relative; width: 138px; height: 138px; display: grid; place-items: center; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(226,232,240,.4), 0 20px 35px -25px rgba(37,99,235,.5); }
.pmam-acc-device-donut::after { content: ""; position: absolute; inset: 22px; border-radius: 999px; background: #fff; box-shadow: 0 2px 10px rgba(15,23,42,.04); }
.pmam-acc-device-donut__center { position: relative; z-index: 1; display: grid; justify-items: center; }
.pmam-acc-device-donut__center strong { color: #0f172a; font-size: 20px; font-weight: 800; letter-spacing: -.035em; }
.pmam-acc-device-donut__center span { color: #94a3b8; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.pmam-acc-device-legend { width: 100%; display: grid; gap: 8px; }
.pmam-acc-device-item { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; color: #64748b; font-size: 11px; }
.pmam-acc-device-item strong { color: #0f172a; }
.pmam-acc-device-dot { width: 8px; height: 8px; border-radius: 999px; background: #3b82f6; }
.pmam-acc-device-item:nth-child(2) .pmam-acc-device-dot { background: #6366f1; }
.pmam-acc-device-item:nth-child(3) .pmam-acc-device-dot { background: #10b981; }
.pmam-acc-device-item:nth-child(4) .pmam-acc-device-dot { background: #f59e0b; }

.pmam-acc-top-list { margin: 22px 0 0; padding: 0; list-style: none; }
.pmam-acc-top-list__item { display: grid; grid-template-columns: 26px 1fr; gap: 9px; align-items: center; padding: 8px 0; border: 0; }
.pmam-acc-top-list__rank { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 8px; background: #f1f5f9; color: #64748b; font-size: 10px; font-weight: 800; }
.pmam-acc-top-list__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pmam-acc-top-list__label { overflow: hidden; color: #334155; font-size: 11px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.pmam-acc-top-list__value { color: #0f172a; font-size: 11px; font-weight: 800; }
.pmam-acc-top-list__bar-track { height: 5px; margin-top: 7px; overflow: hidden; border-radius: 999px; background: #f1f5f9; }
.pmam-acc-top-list__bar { height: 100%; border-radius: inherit; background: linear-gradient(90deg, #3b82f6, #6366f1); animation: pmam-grow .9s cubic-bezier(.16,1,.3,1) both; }

.pmam-acc-breakdown-row { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 18px; margin: 0 0 18px; }
.pmam-acc-breakdown-col { min-width: 0; padding: 28px; }
.pmam-acc-breakdown-col h3,
.pmam-acc-compare h3 { margin: 0 0 16px; color: #0f172a; font-size: 17px; font-weight: 800; letter-spacing: -.025em; }
.pmam-acc-compare { margin-top: 0; padding: 30px; }
.pmam-acc-compare-toggle,
.pmam-acc-compare-picker { gap: 8px; }
.pmam-acc-compare-picker__item { min-height: 42px; padding: 0 12px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fafcff; }

.pmam-acc-table { width: 100%; border: 0; border-collapse: separate; border-spacing: 0; border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 1px #eef2f7; }
.pmam-acc-table thead { background: #f8fafc; }
.pmam-acc-table th { padding: 13px 14px; border: 0; border-bottom: 1px solid #e2e8f0; color: #64748b; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.pmam-acc-table th:first-child { border-top-left-radius: 16px; }
.pmam-acc-table th:last-child { border-top-right-radius: 16px; }
.pmam-acc-table td { padding: 14px; border: 0; border-bottom: 1px solid #eef2f7; color: #334155; font-size: 12px; vertical-align: middle; }
.pmam-acc-table tbody tr { transition: background .18s ease; }
.pmam-acc-table tbody tr:hover { background: #f8fbff; }
.pmam-acc-table tbody tr:last-child td { border-bottom: 0; }
.pmam-acc-sortable-th { cursor: pointer; }
.pmam-acc-badge { display: inline-flex; align-items: center; min-height: 27px; padding: 0 9px; border: 0; border-radius: 999px; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pmam-acc-badge--active { background: #ecfdf5; color: #047857; }
.pmam-acc-badge--scheduled { background: #eff6ff; color: #1d4ed8; }
.pmam-acc-badge--to_validate { background: #fffbeb; color: #b45309; }
.pmam-acc-badge--suspended { background: #fef2f2; color: #dc2626; }
.pmam-acc-badge--completed,
.pmam-acc-badge--archived { background: #f1f5f9; color: #64748b; }
.pmam-acc-badge--draft { background: #f8fafc; color: #64748b; }
.pmam-acc-row-actions { display: flex; justify-content: flex-end; gap: 5px; }

.pmam-acc-content > div > .pmam-acc-table,
.pmam-acc-content > div > .pmam-acc-assignment-list,
.pmam-acc-content > div > .pmam-acc-links {
    padding: 8px; border: 1px solid #e2e8f0; border-radius: 24px; background: #fff; box-shadow: 0 10px 40px -10px rgba(0,0,0,.04);
}
.pmam-acc-content > div > .pmam-acc-table { display: table; }

.pmam-acc-hint { margin: 12px 0 0; padding: 10px 12px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; color: #64748b; font-size: 11px; }
.pmam-acc-hint--warning { border-color: #fde68a; background: #fffbeb; color: #92400e; }
.pmam-acc-hint--collapsed { min-width: 34px; justify-content: center; }
.pmam-acc-hint__close { color: #94a3b8; }
.pmam-acc-shortcode { padding: 5px 8px; border-radius: 8px; background: #f1f5f9; color: #334155; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }

.pmam-acc-form { display: grid; gap: 15px; }
.pmam-acc-field { display: grid; gap: 7px; }
.pmam-acc-field > label { color: #334155; font-size: 11px; font-weight: 750; }
.pmam-acc-checkbox { color: #475569; }
.pmam-acc-form-actions { padding-top: 8px; display: flex; justify-content: flex-end; gap: 8px; }
.pmam-acc-targeting-editor { border: 1px solid #e2e8f0; border-radius: 18px; background: #f8fafc; }
.pmam-acc-targeting-row { gap: 9px; }
.pmam-acc-link-row { border-color: #e2e8f0; border-radius: 14px; background: #fafcff; }

.pmam-acc-modal-overlay {
    padding: 24px; background: rgba(15, 23, 42, .28); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.pmam-acc-modal {
    max-height: min(88vh, 900px); padding: 30px; border: 1px solid rgba(226,232,240,.95); border-radius: 28px; background: #fff;
    box-shadow: 0 35px 90px -30px rgba(15,23,42,.5); font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    animation: pmam-modal-in .35s cubic-bezier(.16,1,.3,1) both;
}
.pmam-acc-modal h2 { margin: 0 0 22px; color: #0f172a; font-size: 23px; font-weight: 800; letter-spacing: -.035em; }
.pmam-acc-toast { right: 24px; bottom: 24px; padding: 13px 16px; border: 1px solid #bbf7d0; border-radius: 14px; background: #f0fdf4; color: #166534; box-shadow: 0 20px 50px -20px rgba(15,23,42,.38); font-family: "Inter", sans-serif; font-size: 12px; font-weight: 700; }
.pmam-acc-toast--error { border-color: #fecaca; background: #fef2f2; color: #991b1b; }

.pmam-account-loading,
.pmam-acc-loading-inline { color: #64748b; }
.pmam-acc-loading-inline { min-height: 160px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.pmam-acc-spinner { width: 22px; height: 22px; border: 2px solid #dbeafe; border-top-color: #2563eb; border-radius: 999px; animation: pmam-spin .7s linear infinite; }
.pmam-acc-error { padding: 20px; border: 1px solid #fecaca; border-radius: 18px; background: #fef2f2; color: #991b1b; }

.pmam-account-login { max-width: 480px; margin: 10vh auto; padding: 44px; border: 1px solid #e2e8f0; border-radius: 28px; background: #fff; box-shadow: 0 20px 60px -30px rgba(15,23,42,.38); }
.pmam-account-login__button { padding: 12px 22px; border-radius: 12px; background: linear-gradient(145deg, #2563eb, #4f46e5); color: #fff; }

@keyframes pmam-reveal {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes pmam-grow {
    from { transform: scaleX(0); transform-origin: left; }
    to { transform: scaleX(1); transform-origin: left; }
}
@keyframes pmam-pulse {
    0% { opacity: .8; transform: scale(.75); }
    70%, 100% { opacity: 0; transform: scale(1.55); }
}
@keyframes pmam-spin { to { transform: rotate(360deg); } }
@keyframes pmam-modal-in {
    from { opacity: 0; transform: translateY(18px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 1180px) {
    .pmam-acc-topbar { grid-template-columns: auto 1fr auto; }
    .pmam-acc-brand-subtitle,
    .pmam-acc-account-pill { display: none; }
    .pmam-acc-cards--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pmam-acc-health-card { grid-column: span 7; }
    .pmam-acc-device-card { grid-column: span 5; }
    .pmam-acc-placement-card { grid-column: span 12; }
}

@media (max-width: 900px) {
    .pmam-account-root { padding: 16px 14px 44px; }
    .pmam-acc-topbar { grid-template-columns: auto 1fr; }
    .pmam-acc-tabs { grid-column: 1 / -1; width: 100%; order: 3; overflow-x: auto; justify-content: flex-start; }
    .pmam-acc-topbar-actions { justify-self: end; }
    .pmam-acc-page-heading { align-items: flex-start; }
    .pmam-acc-live-status { display: none; }
    .pmam-acc-cards--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pmam-acc-health-card,
    .pmam-acc-device-card,
    .pmam-acc-placement-card { grid-column: span 12; }
    .pmam-acc-device-layout { flex-direction: row; }
    .pmam-acc-breakdown-row { grid-template-columns: 1fr; }
    .pmam-acc-table { min-width: 720px; }
    .pmam-acc-breakdown-col { overflow-x: auto; }
    .pmam-acc-content > div > .pmam-acc-table { display: block; overflow-x: auto; }
}

@media (max-width: 620px) {
    .pmam-account-root { padding-inline: 10px; }
    .pmam-acc-topbar { padding: 10px; border-radius: 20px; }
    .pmam-acc-brand-mark { width: 38px; height: 38px; flex-basis: 38px; border-radius: 12px; }
    .pmam-acc-brand-title { font-size: 13px; }
    .pmam-acc-logout span { display: none; }
    .pmam-acc-logout { width: 40px; padding: 0; justify-content: center; }
    .pmam-acc-page-heading { padding-inline: 2px; }
    .pmam-acc-page-heading h1 { font-size: 30px; }
    .pmam-acc-page-heading p { font-size: 12px; }
    .pmam-acc-filter-card { padding: 11px; align-items: stretch; }
    .pmam-acc-range-presets { width: 100%; overflow-x: auto; }
    .pmam-acc-inline-field { flex: 1; }
    .pmam-acc-filter-card > select,
    .pmam-acc-filter-card > button { flex: 1 1 150px; }
    .pmam-acc-cards--compact { grid-template-columns: 1fr; }
    .pmam-acc-stat-compact,
    .pmam-acc-realtime-panel { min-height: 170px; }
    .pmam-acc-hero-card,
    .pmam-acc-health-card,
    .pmam-acc-device-card,
    .pmam-acc-placement-card,
    .pmam-acc-breakdown-col,
    .pmam-acc-compare { padding: 22px; border-radius: 23px; }
    .pmam-acc-card-header { align-items: stretch; flex-direction: column; }
    .pmam-acc-card-header select { width: 100%; min-width: 0; }
    .pmam-acc-hero-summary { align-items: flex-start; flex-direction: column; gap: 8px; }
    .pmam-acc-chart { height: 190px; }
    .pmam-acc-health-summary { align-items: flex-start; }
    .pmam-acc-status-grid { grid-template-columns: 1fr; }
    .pmam-acc-device-layout { flex-direction: column; }
    .pmam-acc-modal-overlay { padding: 10px; }
    .pmam-acc-modal { padding: 22px; border-radius: 22px; }
    .pmam-acc-targeting-row { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .pmam-account-root *,
    .pmam-account-root *::before,
    .pmam-account-root *::after,
    .pmam-acc-modal-overlay * {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}


/* ================================================================
   Correctifs UX — 2.11.5 Bento frontend revision 2
   ================================================================ */

/* 1. Campagnes : action replacée sous le titre et alignée à gauche. */
.pmam-account-root .pmam-acc-campaign-toolbar {
    width: 100% !important;
    margin: 0 0 16px 4px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    clear: both !important;
}
.pmam-account-root .pmam-acc-campaign-toolbar .pmam-acc-button {
    float: none !important;
    margin: 0 auto 0 0 !important;
    position: static !important;
}

/* 2. Toutes les modales disposent désormais de leur propre défilement. */
.pmam-acc-modal-overlay {
    align-items: center;
    overflow: hidden;
}
.pmam-acc-modal {
    max-height: calc(100dvh - 48px);
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
}
.pmam-acc-modal::-webkit-scrollbar { width: 10px; }
.pmam-acc-modal::-webkit-scrollbar-track { background: transparent; }
.pmam-acc-modal::-webkit-scrollbar-thumb {
    min-height: 48px;
    border: 3px solid transparent;
    border-radius: 999px;
    background: #cbd5e1;
    background-clip: padding-box;
}
.pmam-acc-modal::-webkit-scrollbar-thumb:hover { background-color: #94a3b8; }
.pmam-acc-modal-body { min-width: 0; }

/* 3. Icônes des indicateurs statistiques. */
.pmam-acc-metric-orb {
    flex: 0 0 38px;
    display: inline-grid;
    place-items: center;
    color: #2563eb;
    overflow: visible;
}
.pmam-acc-metric-orb svg {
    width: 20px;
    height: 20px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.pmam-acc-stat-compact:nth-child(2) .pmam-acc-metric-orb { color: #4f46e5; }
.pmam-acc-stat-compact:nth-child(3) .pmam-acc-metric-orb { color: #059669; }
.pmam-acc-stat-compact:nth-child(4) .pmam-acc-metric-orb { color: #d97706; }
.pmam-acc-stat-compact:nth-child(5) .pmam-acc-metric-orb { color: #7c3aed; background: linear-gradient(145deg, #f5f3ff, #faf5ff); }
.pmam-acc-stat-compact:nth-child(6) .pmam-acc-metric-orb { color: #0891b2; background: linear-gradient(145deg, #ecfeff, #f0fdfa); }
.pmam-acc-stat-compact:nth-child(7) .pmam-acc-metric-orb { color: #e11d48; background: linear-gradient(145deg, #fff1f2, #fdf2f8); }

/* 4. Barre de filtres statistiques : espacements normalisés. */
.pmam-account-root .pmam-acc-stats-toolbar.pmam-acc-filter-card {
    width: 100%;
    margin: 0 0 10px !important;
    padding: 10px 12px !important;
    display: flex;
    align-items: center;
    gap: 8px 10px;
    overflow: visible;
    border-bottom: 1px solid #e2e8f0;
}
.pmam-account-root .pmam-acc-stats-toolbar > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.pmam-account-root .pmam-acc-stats-toolbar .pmam-acc-range-presets {
    flex: 0 1 auto;
    margin: 0 !important;
}
.pmam-account-root .pmam-acc-stats-toolbar .pmam-acc-inline-field {
    min-height: 42px;
    flex: 0 0 auto;
    margin: 0 !important;
}
.pmam-account-root .pmam-acc-stats-toolbar .pmam-acc-inline-field input {
    width: 150px;
    margin: 0 !important;
}
.pmam-account-root .pmam-acc-stats-toolbar > select {
    min-width: 180px;
    flex: 1 1 180px;
    margin: 0 !important;
}
.pmam-account-root .pmam-acc-stats-toolbar > .pmam-acc-button:last-child {
    flex: 0 0 auto;
    margin: 0 !important;
}
.pmam-account-root .pmam-acc-refresh-status {
    margin: 0 4px 14px auto;
}

/* 5. SVG responsive sans étirement non proportionnel. */
.pmam-acc-chart-viz { width: 100%; min-width: 0; }
.pmam-acc-chart {
    width: 100%;
    height: 230px;
    display: block;
    overflow: visible;
    shape-rendering: geometricPrecision;
}
.pmam-acc-chart-axis-label {
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0;
}
.pmam-acc-chart-grid,
.pmam-acc-chart-line,
.pmam-acc-chart-crosshair,
.pmam-acc-chart-marker-icon { vector-effect: non-scaling-stroke; }
.pmam-acc-chart-point,
.pmam-acc-chart-hover-dot,
.pmam-acc-chart-marker-dot { vector-effect: non-scaling-stroke; }
.pmam-acc-chart-hit-area { cursor: crosshair; }

@media (max-width: 900px) {
    .pmam-account-root .pmam-acc-stats-toolbar.pmam-acc-filter-card { align-items: stretch; }
    .pmam-account-root .pmam-acc-stats-toolbar .pmam-acc-range-presets { width: 100%; overflow-x: auto; }
    .pmam-account-root .pmam-acc-stats-toolbar .pmam-acc-inline-field { flex: 1 1 180px; }
    .pmam-account-root .pmam-acc-stats-toolbar .pmam-acc-inline-field input { width: 100%; }
}

@media (max-width: 620px) {
    .pmam-acc-modal-overlay { padding: 10px; align-items: center; }
    .pmam-acc-modal { max-height: calc(100dvh - 20px); }
    .pmam-account-root .pmam-acc-campaign-toolbar { margin-left: 2px !important; }
    .pmam-account-root .pmam-acc-stats-toolbar.pmam-acc-filter-card { padding: 10px !important; }
    .pmam-account-root .pmam-acc-stats-toolbar > select,
    .pmam-account-root .pmam-acc-stats-toolbar > .pmam-acc-button:last-child { flex: 1 1 100%; width: 100%; }
}
