/* Sorti de variations.php le 19/09/2026.
 *
 * Les feuilles etaient ecrites dans les pages, ce qui obligeait la
 * politique de securite a autoriser 'unsafe-inline' sur style-src : toute
 * injection de HTML devenait alors une injection de style. En fichier, le
 * navigateur peut les mettre en cache, et la politique peut se fermer.
 *
 * Deplace sans une modification : ce qui suit est le bloc d'origine. */

html,body{height:100%;overflow:hidden;}
.app{height:100vh;overflow:hidden;}
.main{height:100vh;min-height:0;overflow:hidden;display:flex;flex-direction:column;}
.vt-shell{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}

/* page header */
.vt-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-8) 0;flex-shrink:0;gap:var(--space-3);}
.vt-kicker{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--psg-gold-dark,#b8860b);margin-bottom:2px;}
.vt-title{font-size:1.5rem;font-weight:900;color:var(--psg-navy);margin:0;line-height:1.1;}
.vt-sub{font-size:.8rem;color:var(--grey-400);font-weight:600;margin-top:3px;}

/* filter bar */
.vt-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:#fff;flex-shrink:0;flex-wrap:wrap;border-radius:10px;margin:var(--space-5) var(--space-8) 0;border:1px solid #d9d9d9;}

/* tabs */
.vt-tabs{display:flex;gap:2px;background:#fff;flex-shrink:0;margin:var(--space-5) var(--space-8) 0;border-radius:10px;border:1px solid #d9d9d9;padding:0 var(--space-5);}
.vt-tab{padding:12px 16px;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--grey-400);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;white-space:nowrap;display:flex;align-items:center;gap:6px;}
.vt-tab:hover{color:var(--grey-700);}
.vt-tab.active{color:var(--psg-navy);border-bottom-color:var(--psg-navy);}
.vt-tab svg{width:14px;height:14px;flex-shrink:0;}

/* panels */
.vt-panels{flex:1;min-height:0;overflow-y:auto;padding:var(--space-5) var(--space-8);background:var(--grey-100);}
.vt-panel{display:none;}
.vt-panel.active{display:block;}

/* kpi grid */
.vt-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin-bottom:var(--space-4);}
.vt-kpi{background:#fff;border:1px solid #d9d9d9;border-radius:12px;padding:var(--space-4);position:relative;overflow:hidden;}
.vt-kpi::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--sa,var(--psg-navy));opacity:.3;}
.vt-kpi-label{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--grey-500);}
.vt-kpi-value{font-size:1.2rem;font-weight:800;color:var(--psg-navy);margin-top:5px;}
.vt-kpi-sub{font-size:.72rem;color:var(--grey-400);font-weight:600;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* radar table */
.vt-table{width:100%;border-collapse:collapse;font-size:.875rem;}
.vt-table th{padding:10px 14px;font-weight:800;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;color:var(--grey-500);border-bottom:2px solid var(--grey-100);text-align:left;white-space:nowrap;cursor:pointer;user-select:none;}
.vt-table th:hover{color:var(--psg-navy);}
.vt-table th.sort-asc::after{content:' ▲';}
.vt-table th.sort-desc::after{content:' ▼';}
.vt-table td{padding:10px 14px;border-bottom:1px solid var(--grey-50);vertical-align:middle;color:var(--grey-700);font-weight:600;}
.vt-table tbody tr:hover{background:var(--grey-50);cursor:pointer;}
.vt-table tbody tr:last-child td{border-bottom:0;}
.vt-empty{padding:60px;text-align:center;color:var(--grey-400);font-weight:700;}

/* delta badge */
.delta-badge{display:inline-flex;align-items:center;gap:3px;border-radius:999px;padding:3px 9px;font-size:.72rem;font-weight:800;white-space:nowrap;}
.delta-up{background:#fee2e2;color:#991b1b;}
.delta-down{background:#dcfce7;color:#166534;}
.delta-flat{background:var(--grey-100);color:var(--grey-500);}

/* reliable badge */
.rel-ok{background:#f0fdf4;color:#166534;border-radius:999px;padding:1px 7px;font-size:.6rem;font-weight:800;}
.rel-warn{background:#fef3c7;color:#b45309;border-radius:999px;padding:1px 7px;font-size:.6rem;font-weight:800;}

/* sparkline cell */
.spark-cell{min-width:80px;}

/* history panel */
.vt-search-wrap{position:relative;max-width:520px;}
.vt-search{width:100%;padding:10px 16px;border:1px solid var(--grey-200);border-radius:10px;font-size:.875rem;font-weight:600;color:var(--grey-700);font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;}
.vt-search:focus{border-color:var(--psg-navy);box-shadow:0 0 0 2px rgba(0,26,47,.12);}
.vt-autocomplete{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--grey-200);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.1);z-index:100;max-height:280px;overflow-y:auto;}
.vt-autocomplete.open{display:block;}
.vt-ac-item{padding:10px 16px;font-size:.875rem;font-weight:600;cursor:pointer;color:var(--grey-700);border-bottom:1px solid var(--grey-50);}
.vt-ac-item:last-child{border-bottom:0;}
.vt-ac-item:hover,.vt-ac-item.focused{background:var(--grey-50);}
.vt-ac-sku{font-size:.7rem;color:var(--grey-400);font-weight:700;margin-top:1px;}
.vt-ac-empty{padding:16px;text-align:center;color:var(--grey-400);font-size:.83rem;font-weight:700;}

/* history kpis */
.vt-hkpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);margin:var(--space-4) 0;}

/* chart card */
.vt-chart-card{background:#fff;border:1px solid #d9d9d9;border-radius:12px;padding:var(--space-4);margin-bottom:var(--space-4);}
.vt-chart-label{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--grey-500);margin-bottom:12px;}

/* history table */
.vt-hist-table{width:100%;border-collapse:collapse;font-size:.82rem;}
.vt-hist-table th{padding:8px 12px;font-weight:800;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--grey-500);border-bottom:2px solid var(--grey-100);text-align:left;white-space:nowrap;}
.vt-hist-table td{padding:9px 12px;border-bottom:1px solid var(--grey-50);color:var(--grey-700);font-weight:600;vertical-align:middle;}
.vt-hist-table tbody tr:last-child td{border-bottom:0;}
.vt-hist-table tbody tr:hover{background:var(--grey-50);}
.vt-order-link{color:var(--psg-navy);font-weight:800;font-family:monospace;text-decoration:none;}
.vt-order-link:hover{text-decoration:underline;}
