/* ═══════════════════════════════════════════════════════════════════════════
   Planning Poste Garde — styles
   Utilisé par tous les modules qui embarquent le planning camion
   (posteGardeV2, quaisOpp, quaisMpe, serviceOpp).

   Note : la propriété min-width de .pgv2PlanningTable est dynamique selon
   le nombre de colonnes (de 440 à 1200 px) — appliquée en style inline
   par PlanningGrid::render().
   ═══════════════════════════════════════════════════════════════════════════ */
.pgv2PlanningWrap{ font-size:13px; }
.pgv2PlanningHeader{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:8px 0 14px; border-bottom:1px solid #e3e8ef; margin-bottom:14px; }
.pgv2PlanningTitle{ display:inline-flex; align-items:center; gap:8px; font-size:15px; font-weight:600; color:#0f172a; flex:1 0 100%; min-width:0; flex-wrap:wrap; }
.pgv2PlanningRange{ font-size:12.5px; color:#64748b; font-weight:400; }
.pgv2PlanningStat{ font-size:12px; color:#1e40af; background:#eff6ff; border:1px solid #bfdbfe; padding:2px 10px; border-radius:999px; font-weight:600; margin-left:6px; }
.pgv2PlanningNav{ display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }
.pgv2PlanningNavBtn{ background:#fff; border:1px solid #e3e8ef; color:#475569; width:32px; height:32px; border-radius:8px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; font-size:13px; }
.pgv2PlanningNavBtn:hover{ background:#f1f5f9; }
.pgv2PlanningTodayBtn{ width:auto; min-width:120px; padding:0 16px; font-size:12.5px; font-weight:500; gap:7px; white-space:nowrap; }
.pgv2PlanningTodayBtn i{ font-size:12px; opacity:0.85; }

/* Sélecteur nb de jours (contextes pv2opp / pv2mpe uniquement) */
.pgv2PlanningNbDays{
    height:32px; padding:0 8px;
    background:#fff; border:1px solid #e3e8ef; border-radius:8px;
    color:#475569; font-size:12px; font-weight:600;
    cursor:pointer; outline:none;
}
.pgv2PlanningNbDays:hover{ border-color:#cbd5e1; }
.pgv2PlanningNbDays:focus{ border-color:#6366f1; box-shadow:0 0 0 2px rgba(99,102,241,0.18); }

/* Filtre jours de la semaine (bouton + dropdown panel) — pv2opp / pv2mpe */
.pgv2PlanningDowBox{ position:relative; display:inline-block; }
.pgv2PlanningDowBtn.is-active{ background:#ecfdf5; border-color:#6ee7b7; color:#047857; }
.pgv2PlanningDowCount{
    position:absolute; top:-4px; right:-4px;
    background:#10b981; color:#fff;
    font-size:9.5px; font-weight:700;
    padding:1px 5px; border-radius:999px;
    min-width:14px; text-align:center; line-height:1.3;
}
.pgv2PlanningDowPanel{
    position:absolute; top:calc(100% + 6px); right:0;
    z-index:1000;
    width:220px; max-width:90vw;
    background:#fff; border:1px solid #e3e8ef; border-radius:10px;
    box-shadow:0 12px 32px rgba(15,23,42,0.18);
    overflow:hidden;
}
.pgv2PlanningDowHeader{
    display:flex; align-items:center; justify-content:space-between;
    padding:10px 14px;
    background:#f8fafc; border-bottom:1px solid #e3e8ef;
    font-size:13px; font-weight:600; color:#047857;
}
.pgv2PlanningDowHeader i{ margin-right:6px; }
.pgv2PlanningDowClose{
    background:transparent; border:none; cursor:pointer;
    color:#64748b; padding:2px 6px; border-radius:5px;
}
.pgv2PlanningDowClose:hover{ background:#e2e8f0; color:#0f172a; }
.pgv2PlanningDowActions{
    display:flex; gap:6px; padding:8px 12px;
    border-bottom:1px solid #f1f5f9;
}
.pgv2PlanningDowActions button{
    flex:1; background:#f1f5f9; color:#334155;
    border:1px solid #cbd5e1; border-radius:6px;
    padding:5px 8px; font-size:11.5px; font-weight:600;
    cursor:pointer;
}
.pgv2PlanningDowActions button:hover{ background:#e2e8f0; }
.pgv2PlanningDowList{
    max-height:280px; overflow-y:auto;
    padding:6px 8px;
}
.pgv2PlanningDowItem{
    display:flex; align-items:center; gap:8px;
    padding:7px 8px;
    border-radius:6px;
    cursor:pointer;
    font-size:12.5px;
    color:#1e293b;
}
.pgv2PlanningDowItem:hover{ background:#ecfdf5; }
.pgv2PlanningDowItem input{ margin:0; cursor:pointer; }
.pgv2PlanningDowItem.is-we{ color:#9a3412; }
.pgv2PlanningDowItem.is-we:hover{ background:#fff7ed; }
.pgv2PlanningDowItemLabel{ font-weight:500; }
.pgv2PlanningDowFooter{
    padding:10px 12px;
    background:#f8fafc; border-top:1px solid #e3e8ef;
    display:flex; justify-content:flex-end;
}
.pgv2PlanningDowApply{
    background:linear-gradient(135deg,#059669,#10b981);
    color:#fff; border:none;
    padding:7px 16px; border-radius:7px;
    font-size:12.5px; font-weight:600;
    cursor:pointer;
    display:inline-flex; align-items:center; gap:6px;
    box-shadow:0 2px 6px rgba(16,185,129,0.3);
}
.pgv2PlanningDowApply:hover{ background:linear-gradient(135deg,#047857,#059669); }

.pgv2BtnVisitArrival{
    display:inline-flex; align-items:center; gap:7px;
    height:32px; padding:0 14px;
    background:linear-gradient(135deg,#0e7490 0%,#0891b2 100%);
    color:#fff; border:none; border-radius:8px;
    font-size:12.5px; font-weight:600; letter-spacing:0.2px;
    cursor:pointer; white-space:nowrap;
    box-shadow:0 2px 6px rgba(8,145,178,0.30);
    transition:all 0.15s ease;
    margin-left:6px;
}
.pgv2BtnVisitArrival:hover{
    background:linear-gradient(135deg,#155e75 0%,#0e7490 100%);
    box-shadow:0 4px 10px rgba(8,145,178,0.45);
    transform:translateY(-1px);
}
.pgv2BtnVisitArrival i{ font-size:12px; }

.pgv2BtnPrintFlux{
    display:inline-flex; align-items:center; gap:7px;
    height:32px; padding:0 14px;
    background:#fff; color:#475569;
    border:1px solid #cbd5e1; border-radius:8px;
    font-size:12.5px; font-weight:600; letter-spacing:0.2px;
    cursor:pointer; white-space:nowrap;
    transition:all 0.15s ease;
    margin-left:6px;
}
.pgv2BtnPrintFlux:hover{
    background:#f1f5f9; border-color:#94a3b8;
    box-shadow:0 2px 6px rgba(15,23,42,0.10);
    transform:translateY(-1px);
}
.pgv2BtnPrintFlux i{ font-size:12px; color:#64748b; }
.pgv2BtnManuelAdd{
    display:inline-flex; align-items:center; gap:7px;
    height:32px; padding:0 14px;
    background:linear-gradient(135deg,#4338ca 0%,#6366f1 100%);
    color:#fff; border:none; border-radius:8px;
    font-size:12.5px; font-weight:600; letter-spacing:0.2px;
    cursor:pointer; white-space:nowrap;
    box-shadow:0 3px 8px rgba(79,70,229,0.30);
    transition:all 0.15s ease;
    margin-left:6px;
}
.pgv2BtnManuelAdd:hover{
    background:linear-gradient(135deg,#3730a3 0%,#4338ca 100%);
    box-shadow:0 4px 12px rgba(79,70,229,0.42);
    transform:translateY(-1px);
}
.pgv2BtnManuelAdd i{ font-size:12px; }
.pgv2BtnSearch{
    display:inline-flex; align-items:center; gap:7px;
    height:32px; padding:0 14px;
    background:#fff; color:#1e40af;
    border:1.5px solid #bfdbfe; border-radius:8px;
    font-size:12.5px; font-weight:600; letter-spacing:0.2px;
    cursor:pointer; white-space:nowrap;
    transition:all 0.15s ease;
    margin-left:6px;
}
.pgv2BtnSearch:hover{
    background:#eff6ff; border-color:#3b82f6;
    box-shadow:0 2px 8px rgba(59,130,246,0.18);
    transform:translateY(-1px);
}
.pgv2BtnSearch i{ font-size:12px; }

/* Focus visuel d'une card après navigation depuis la recherche */
.pgv2Card.pgv2CardFocus{
    animation: pgv2CardFocusPulse 0.7s ease-in-out 3;
    outline: 3px solid #3b82f6; outline-offset: 2px;
    z-index: 5; position: relative;
}
@keyframes pgv2CardFocusPulse{
    0%   { box-shadow: 0 0 0 0 rgba(59,130,246,0.55); }
    50%  { box-shadow: 0 0 0 10px rgba(59,130,246,0.15); }
    100% { box-shadow: 0 0 0 0 rgba(59,130,246,0); }
}
.pgv2TodayLabel{ display:inline; }
.pgv2PlanningNav input[type="date"]{ padding:6px 8px; border:1px solid #e3e8ef; border-radius:8px; font-size:13px; outline:none; background:#fff; }
.pgv2PlanningWeek{ display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border-radius:8px; background:#eef2ff; color:#1e40af; border:1px solid #c7d2fe; font-size:13px; font-weight:600; }
.pgv2PlanningWeek i{ font-size:11px; opacity:0.8; }

.pgv2PlanningFiltersLabel{ font-size:11px; color:#64748b; margin-bottom:4px; display:flex; align-items:center; gap:5px; }
.pgv2PlanningFiltersLabel i{ color:#3b82f6; font-size:10px; }
.pgv2PlanningFilters{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; align-items:center; }
.pgv2FilterSep{ width:1px; height:24px; background:#cbd5e1; margin:0 4px; }
.pgv2FilterTab.active.blue{ background:#3b82f6; border-color:#3b82f6; }
.pgv2FilterTab{
    padding:8px 14px; border-radius:8px; cursor:pointer;
    background:#f8fafc; border:1px solid #e3e8ef; font-size:13px; color:#475569;
    display:inline-flex; align-items:center; gap:6px;
    transition:all 0.15s ease;
}
.pgv2FilterTab:hover{ background:#f1f5f9; }
.pgv2FilterTab.active{ background:#3b82f6; color:#fff; border-color:#3b82f6; }
.pgv2FilterTab.active.grey{ background:#475569; border-color:#334155; }
.pgv2FilterTab.active.green{ background:#10b981; border-color:#059669; }
.pgv2FilterTab.active.purple{ background:#8b5cf6; border-color:#7c3aed; }
.pgv2FilterCount{
    background:rgba(255,255,255,0.3); padding:1px 7px; border-radius:999px;
    font-size:11px; font-weight:700;
}
.pgv2FilterTab:not(.active) .pgv2FilterCount{ background:#e2e8f0; color:#334155; }

.pgv2PlanningLegend{ display:none; gap:14px 18px; flex-wrap:wrap; margin:0 0 12px 0; padding:8px 12px; background:#f8fafc; border:1px solid #e3e8ef; border-radius:8px; font-size:11.5px; color:#475569; }
.pgv2LegendItem{ display:inline-flex; align-items:center; gap:6px; }
.pgv2LegendDot{ display:inline-block; width:11px; height:11px; border-radius:3px; border:1px solid rgba(0,0,0,0.1); }
.pgv2LegendDot.default{ background:#fff; border-color:#cbd5e1; }
.pgv2LegendDot.arrive{ background:#10b981; box-shadow:0 0 0 2px rgba(16,185,129,0.3); }
.pgv2LegendDot.parti{ background:#8b5cf6; box-shadow:0 0 0 2px rgba(139,92,246,0.3); }
.pgv2LegendDir{ display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:4px; font-size:9px; color:#fff; }
.pgv2LegendDir.out{ background:#64748b; }
.pgv2LegendDir.in{ background:#3b82f6; }

.pgv2PlanningScroll{ overflow-x:auto; border:1px solid #e3e8ef; border-radius:10px; background:#fff; }
.pgv2PlanningTable{ border-collapse:collapse; width:100%; table-layout:fixed; }
.pgv2PlanningTable th, .pgv2PlanningTable td{ border:1px solid #e3e8ef; vertical-align:top; padding:0; text-align:center; }
.pgv2HourHead{ background:#f8fafc; color:#475569; width:64px; min-width:64px; font-size:11px; font-weight:600; padding:8px 4px; text-transform:uppercase; }
.pgv2DayHead{ background:#1e3a8a; color:#fff; font-size:14px; font-weight:600; padding:8px 6px; }
.pgv2ColHead-expe{ background:#9a3412; }
.pgv2ColHead-opp{ background:#1e40af; }
.pgv2ColHead-mpe{ background:#166534; }
.pgv2ColHead-visit{ background:linear-gradient(135deg,#0e7490,#0891b2); }
.pgv2ColHead-d0, .pgv2ColHead-d1, .pgv2ColHead-d2, .pgv2ColHead-d3, .pgv2ColHead-d4{ background:#166534; }
.pgv2ColHead-today{ background:linear-gradient(135deg,#15803d 0%,#22c55e 100%); box-shadow:inset 0 -3px 0 rgba(255,255,255,0.35); }
.pgv2ColHeadLabelRow{ display:inline-flex; align-items:center; gap:8px; justify-content:center; flex-wrap:wrap; }
.pgv2ColHeadLabel{ font-size:15px; font-weight:800; letter-spacing:0.5px; }
.pgv2ColHeadSub{ display:block; font-size:10.5px; font-weight:400; opacity:0.85; margin-top:1px; }
/* Badge "Inventaire" : visible quand le jour affiché est un jour d'inventaire pour ce pôle.
   Posé sur la même ligne que le label (label_row en flex). */
.pgv2ColHeadInvBadge{
    display:inline-flex; align-items:center; gap:5px;
    padding:2px 9px;
    background:rgba(255,255,255,0.22);
    border:1px solid rgba(255,255,255,0.45);
    border-radius:999px;
    color:#fff;
    font-size:10px; font-weight:700; letter-spacing:0.4px;
    text-transform:uppercase;
    line-height:1.3;
    white-space:nowrap;
}
.pgv2ColHeadInvBadge i{ font-size:9.5px; }
.pgv2DayHead.has-inv{ box-shadow:inset 0 -3px 0 #ea580c; }
.pgv2DayHead.has-inv.pgv2ColHead-today{ box-shadow:inset 0 -3px 0 #ea580c, inset 0 3px 0 rgba(255,255,255,0.35); }
.pgv2HourCell{ background:#f8fafc; color:#94a3b8; font-size:11px; font-weight:600; padding:8px 4px; width:64px; min-width:64px; }
.pgv2Cell{ min-height:60px; padding:4px !important; background:#fff; vertical-align:top; text-align:left; }
.pgv2Cell-expe{ background:#fffaf5; }
.pgv2Cell-opp{ background:#f8faff; }
.pgv2Cell-mpe{ background:#f7fdf9; }
.pgv2Cell-visit{ background:#ecfeff; }
.pgv2CellInner{ display:grid; grid-template-columns:1fr; gap:5px; }
.pgv2CellInner .pgv2Card{ margin-bottom:0; }

.pgv2Card{ position:relative; border-radius:6px; padding:6px 8px; margin-bottom:4px; font-size:11.5px; line-height:1.35; border:1px solid rgba(0,0,0,0.08); color:#1f2937; box-shadow:0 1px 2px rgba(0,0,0,0.04); cursor:pointer; transition:transform 0.1s ease, box-shadow 0.15s ease; }
.pgv2Card:hover{ transform:translateY(-1px); box-shadow:0 3px 8px rgba(0,0,0,0.12); }
.pgv2Card.default{ background:#ffffff; border-color:#e3e8ef; }
.pgv2Card.direction-out{ border-left:4px solid #64748b; }
.pgv2Card.direction-in{  border-left:4px solid #3b82f6; }
.pgv2Card.direction-pal{ border-left:4px solid #a855f7; }
.pgv2Card.direction-visit{ border-left:4px solid #0891b2; }
.pgv2Card.direction-visit.kind-livreur{ border-left-color:#ea580c; }
.pgv2CardDocLabel.out{ background:#e2e8f0; color:#334155; }
.pgv2CardDocLabel.in{  background:#dbeafe; color:#1e40af; }
.pgv2CardDocLabel.pal{ background:#f3e8ff; color:#6b21a8; }
.pgv2CardDocLabel.visit{ background:#cffafe; color:#0e7490; }
.pgv2CardDocLabel i{ font-size:8px; margin-right:1px; }
.pgv2Card.arrive{ border:2px solid #10b981 !important; box-shadow:0 0 0 3px rgba(16,185,129,0.18), 0 1px 2px rgba(0,0,0,0.04); }
.pgv2Card.arrive:hover{ box-shadow:0 0 0 3px rgba(16,185,129,0.18), 0 4px 10px rgba(16,185,129,0.25); }
.pgv2Card.parti{ border:2px solid #8b5cf6 !important; opacity:0.65; filter:grayscale(0.7); box-shadow:0 0 0 3px rgba(139,92,246,0.15); transition:filter 0.18s ease, opacity 0.18s ease; }
.pgv2Card.parti:hover{ opacity:1; filter:grayscale(0); }

.pgv2CardLabels{ display:flex; flex-wrap:wrap; align-items:center; gap:3px; margin-bottom:4px; }
.pgv2CardLabels .pgv2CardHour{ margin-left:auto; }
.pgv2CardContent{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; }
.pgv2CardTag{
    display:inline-flex; align-items:center; gap:3px;
    padding:2px 7px; border-radius:999px;
    font-size:10px; font-weight:700; line-height:1.3;
    border:1px solid;
}
.pgv2CardTag.expe{     background:#fff7ed; color:#9a3412; border-color:#fed7aa; }
.pgv2CardTag.stock-cfa{ background:#378ADD; color:#fff; border-color:#185FA5; }
.pgv2CardTag.stock-cfm{ background:#1D9E75; color:#fff; border-color:#0F6E56; }
.pgv2CardTag.stock-mix{ background:linear-gradient(135deg,#378ADD 0%,#378ADD 50%,#1D9E75 50%,#1D9E75 100%); color:#fff; border-color:#185FA5; }
.pgv2CardTag.pole-opp{ background:#dbeafe; color:#1e40af; border-color:#93c5fd; }
.pgv2CardTag.pole-mpe{ background:#dcfce7; color:#166534; border-color:#86efac; }
.pgv2CardTag.pal{      background:#f3e8ff; color:#6b21a8; border-color:#d8b4fe; }
.pgv2CardTag.arrive{   background:#10b981; color:#fff; border-color:#059669; }
.pgv2CardTag.atquai{   background:#3b82f6; color:#fff; border-color:#1e40af; }
.pgv2CardTag.parti{    background:#8b5cf6; color:#fff; border-color:#7c3aed; }
.pgv2CardTag.litige{   background:#dc2626; color:#fff; border-color:#b91c1c; }
.pgv2CardTag.repas{    background:#fef3c7; color:#92400e; border-color:#fde047; }
.pgv2CardTag.msg{      background:#2563eb; color:#fff;    border-color:#1d4ed8; cursor:pointer; box-shadow:0 1px 2px rgba(37,99,235,0.3); }
.pgv2CardTag.msg:hover{ background:#1d4ed8; }
.pgv2CardTag.att{      background:#0891b2; color:#fff;    border-color:#0e7490; cursor:pointer; box-shadow:0 1px 2px rgba(8,145,178,0.3); }
.pgv2CardTag.att:hover{ background:#0e7490; }

/* Toggle "Repas sur place" dans le composant liste personnes */
.pgv2RepasToggleLabel{
    display:inline-flex !important; align-items:center; gap:8px; cursor:pointer;
    padding:8px 10px; border:1px solid #e3e8ef; border-radius:7px;
    background:#fff; color:#475569;
    transition:all 0.15s ease;
    user-select:none;
}
.pgv2RepasToggleLabel:hover{ border-color:#fcd34d; }
.pgv2RepasToggleLabel:has(.pgv2RepasToggleInp:checked){
    background:#fef3c7; border-color:#f59e0b; color:#92400e; font-weight:600;
}
.pgv2RepasToggleLabel i{ font-size:13px; }
.pgv2RepasToggleInp{ width:16px; height:16px; accent-color:#f59e0b; cursor:pointer; }

/* Tag "repas" dans la liste personnes (mode PG complet) */
.pgv2VisitorCardTag.pgv2VisitorCardTagRepas{
    background:#fef3c7; color:#92400e; border-color:#fde047;
}
.pgv2CardTag.planned{  background:#f5f3ff; color:#5b21b6; border-color:#c4b5fd; }
.pgv2CardTag.appel-demande{ background:#fef3c7; color:#92400e; border-color:#fcd34d; }
.pgv2CardTag.appel-pec{     background:#cffafe; color:#155e75; border-color:#67e8f9; }
.pgv2CardTag.visit{    background:#cffafe; color:#155e75; border-color:#67e8f9; }
.pgv2CardTag.livreur{  background:#fff7ed; color:#9a3412; border-color:#fed7aa; }
.pgv2CardTag.vl{       background:#ecfeff; color:#0e7490; border-color:#a5f3fc; }
.pgv2CardTag.pl{       background:#cffafe; color:#0e7490; border-color:#67e8f9; }
.pgv2CardTag.pers{     background:#f1f5f9; color:#475569; border-color:#cbd5e1; }
.pgv2CardTag.chauffeur{ background:#dbeafe; color:#1e40af; border-color:#93c5fd; font-family:"SF Mono","Roboto Mono",monospace; letter-spacing:0.3px; }
.pgv2CardTag.prevu{    background:#f5f3ff; color:#5b21b6; border-color:#c4b5fd; font-style:italic; }
.pgv2Card.preplan{ opacity:0.85; border-style:dashed !important; }
.pgv2Card.preplan .pgv2CardDoc{ font-style:italic; }

.pgv2CardQuai{
    display:inline-flex; align-items:center; gap:6px;
    margin:0 0 5px 0; padding:4px 10px;
    background:linear-gradient(135deg,#0f172a,#1e293b);
    color:#fff; border-radius:6px;
    font-size:11px; font-weight:600;
    letter-spacing:0.5px;
    box-shadow:0 1px 3px rgba(15,23,42,0.25);
}
.pgv2CardQuai i{ font-size:11px; opacity:0.9; }
.pgv2CardQuaiLabel{ font-size:9.5px; opacity:0.75; }
.pgv2CardQuai strong{ font-size:14px; font-weight:800; letter-spacing:0.3px; }
.pgv2CardQuai-empty{ background:#94a3b8; box-shadow:none; }

.pgv2CardDoc{ display:inline-flex; align-items:baseline; gap:5px; font-family:monospace; font-size:15px; color:#0f172a; font-weight:800; letter-spacing:0.3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pgv2CardDocLabel{ font-family:inherit; font-size:9px; font-weight:700; color:#1e40af; background:#dbeafe; padding:1px 5px; border-radius:3px; letter-spacing:0.5px; }
.pgv2CardHour{ font-weight:700; font-size:12px; color:#1e40af; flex-shrink:0; background:rgba(255,255,255,0.7); padding:1px 8px; border-radius:999px; }
.pgv2CardDelivery{ font-family:monospace; font-size:10.5px; color:#64748b; margin-bottom:2px; }
.pgv2CardDelivery.pgv2CardTradeshift{ color:#c2410c; }
.pgv2CardDelivery.pgv2CardTradeshift i{ color:#ea580c; }
.pgv2CardDest{ font-size:11.5px; color:#0f172a; line-height:1.3; overflow:hidden; }
.pgv2CardCity{ display:block; font-size:10.5px; color:#64748b; margin-left:14px; margin-top:1px; }

/* Card EXPÉ (sortants) : ODC mis en avant + destination en noir */
.direction-out .pgv2CardDoc{ font-size:20px; }
.direction-out .pgv2CardDest{ color:#000; font-weight:600; font-size:12.5px; }

/* Badge "sur parking" — gros marqueur bleu visible quand le camion attend au parking */
.pgv2CardParkingFlag{
    position:absolute;
    top:32px; right:8px;
    width:42px; height:42px;
    border-radius:10px;
    background:#2563eb;
    color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-size:28px; font-weight:900; line-height:1;
    box-shadow:0 2px 6px rgba(37,99,235,0.35);
    pointer-events:none;
    z-index:2;
}
.pgv2CardCarrierBlock{ margin-top:4px; font-size:12px; color:#1e293b; line-height:1.45; }
.pgv2CardCarrierBlock i{ color:#475569; }
.pgv2CardCarrier{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; }
.pgv2CardRef{ font-family:monospace; color:#475569; font-size:10px; opacity:0.85; }
.pgv2CardActions{ display:flex; justify-content:space-between; align-items:center; gap:4px; margin-top:4px; font-size:10.5px; color:#64748b; }
.pgv2CardPal{ font-weight:600; flex-shrink:0; }
.pgv2CardActionBtn{
    background:#10b981; color:#fff; border:none;
    padding:3px 9px; border-radius:6px; cursor:pointer;
    font-size:10.5px; font-weight:600;
    display:inline-flex; align-items:center; gap:4px;
    transition:background 0.12s ease;
}
.pgv2CardActionBtn:hover{ background:#059669; }
.pgv2CardActionBtn i{ font-size:10px; }
.pgv2CardActionBtn.pv2BtnResume{ background:#f59e0b; }
.pgv2CardActionBtn.pv2BtnResume:hover{ background:#d97706; }
.pgv2CardActionBtn.pgv2CardActionBtnQuai{
    background:linear-gradient(135deg,#ea580c 0%,#fb923c 100%);
    box-shadow:0 1px 3px rgba(234,88,12,0.35);
}
.pgv2CardActionBtn.pgv2CardActionBtnQuai:hover{
    background:linear-gradient(135deg,#c2410c 0%,#ea580c 100%);
    box-shadow:0 2px 6px rgba(234,88,12,0.5);
}
.pgv2CardActionBtn.pgv2CardActionBtnEntry{
    background:linear-gradient(135deg,#0e7490 0%,#0891b2 100%);
    box-shadow:0 1px 3px rgba(8,145,178,0.35);
}
.pgv2CardActionBtn.pgv2CardActionBtnEntry:hover{
    background:linear-gradient(135deg,#155e75 0%,#0e7490 100%);
    box-shadow:0 2px 6px rgba(8,145,178,0.5);
}
.pgv2CardActionBtn.pgv2CardActionBtnCall{
    background:linear-gradient(135deg,#be185d 0%,#ec4899 100%);
    box-shadow:0 1px 3px rgba(190,24,93,0.35);
}
.pgv2CardActionBtn.pgv2CardActionBtnCall:hover{
    background:linear-gradient(135deg,#9d174d 0%,#db2777 100%);
    box-shadow:0 2px 6px rgba(190,24,93,0.5);
}
.pgv2CardActionBtn.pgv2CardActionBtnAck{
    background:linear-gradient(135deg,#155e75 0%,#0891b2 100%);
    box-shadow:0 1px 3px rgba(8,145,178,0.35);
}
.pgv2CardActionBtn.pgv2CardActionBtnAck:hover{
    background:linear-gradient(135deg,#164e63 0%,#0e7490 100%);
    box-shadow:0 2px 6px rgba(8,145,178,0.5);
}

@keyframes pgv2PulseAppel{
    0%   { box-shadow:0 0 0 0 rgba(251,146,60,0.7),  0 1px 4px rgba(15,23,42,0.08); }
    60%  { box-shadow:0 0 0 10px rgba(251,146,60,0),  0 1px 4px rgba(15,23,42,0.08); }
    100% { box-shadow:0 0 0 0 rgba(251,146,60,0),    0 1px 4px rgba(15,23,42,0.08); }
}
.pgv2Card.pulse-appel{
    animation:pgv2PulseAppel 1.5s ease-out infinite;
    border-color:#fb923c !important;
}

.pgv2PlanningNote{ margin-top:12px; padding:8px 12px; background:#f1f5f9; border:1px solid #e2e8f0; border-radius:8px; font-size:12px; color:#475569; }

@media (max-width:900px){
    .pgv2Card{ padding:8px 10px; font-size:12px; }
    .pgv2CardActionBtn{ padding:8px 14px; font-size:12.5px; min-height:36px; }
    .pgv2CardDoc{ font-size:14px; }
    .pgv2FilterTab{ padding:9px 14px; font-size:13px; min-height:38px; }
    .pgv2PlanningNavBtn{ width:36px; height:36px; }
    .pgv2PlanningTodayBtn{ height:36px; }
    .pgv2PlanningTitle{ font-size:14px; }
    .pgv2PlanningRange{ font-size:12px; }
    .pgv2PlanningNav{ flex-wrap:wrap; gap:6px 6px; }
    .pgv2PlanningHeader{ gap:10px; padding-bottom:10px; margin-bottom:10px; }
}
@media (max-width:640px){
    .pgv2HourHead, .pgv2HourCell{ width:46px; min-width:46px; font-size:10px; padding:6px 2px; }
    .pgv2DayHead{ font-size:12px; padding:6px 4px; }
    .pgv2ColHeadLabel{ font-size:13px; }
    .pgv2ColHeadSub{ font-size:9.5px; }
    .pgv2Cell{ padding:3px !important; }
    .pgv2Card{ padding:7px 9px; font-size:11.5px; }
    .pgv2CardDoc{ font-size:13.5px; }
    .pgv2CardLabels{ gap:3px; }
    .pgv2CardTag{ font-size:9.5px; padding:2px 6px; }
    .pgv2FilterTab{ padding:7px 11px; font-size:12px; }
    .pgv2PlanningFilters{ gap:5px; }
    .pgv2FilterSep{ display:none; }
    .pgv2PlanningHeader{ gap:8px; }
    .pgv2TodayLabel{ display:none; }
    .pgv2PlanningTodayBtn{ width:36px; padding:0; }
    .pgv2PlanningWeek{ padding:6px 8px; font-size:12px; }
    .pgv2PlanningNav input[type="date"]{ font-size:12.5px; padding:6px; }
}

/* ─── Bandeau "Camions en attente d'entrée" (ctx pgv2 uniquement) ──────────── */
.pgv2PendingBanner{
    background: linear-gradient(135deg, #9a3412 0%, #ea580c 50%, #fb923c 100%);
    color: #fff;
    border-radius: 10px;
    margin-bottom: 12px;
    padding: 10px 14px;
    box-shadow: 0 4px 12px rgba(234, 88, 12, 0.35);
    animation: pgv2PendingPulse 2s ease-in-out infinite;
    display: flex; flex-direction: column; gap: 8px;
}
@keyframes pgv2PendingPulse{
    0%, 100% { box-shadow: 0 4px 12px rgba(234, 88, 12, 0.35); }
    50%      { box-shadow: 0 6px 24px rgba(234, 88, 12, 0.65); }
}
.pgv2PendingBannerHeader{
    font-weight: 700; font-size: 14px;
    display: flex; align-items: center; gap: 8px;
}
.pgv2PendingBannerHeader i{ font-size: 16px; }
.pgv2PendingBannerList{
    display: flex; flex-wrap: wrap; gap: 8px;
}
.pgv2PendingItem{
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 8px;
    padding: 6px 10px;
    display: flex; align-items: center; gap: 10px;
    font-size: 12.5px;
    backdrop-filter: blur(4px);
}
.pgv2PendingTime{
    font-family: monospace; font-weight: 700;
    background: rgba(0, 0, 0, 0.2);
    padding: 2px 6px; border-radius: 4px;
    display: inline-flex; align-items: center; gap: 4px;
}
.pgv2PendingRef{ font-family: monospace; font-weight: 600; }
.pgv2PendingName{ opacity: 0.9; font-style: italic; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pgv2PendingFocusBtn{
    background: #fff; color: #9a3412;
    border: none; padding: 5px 10px;
    border-radius: 6px; cursor: pointer;
    font-size: 12px; font-weight: 600;
    display: inline-flex; align-items: center; gap: 4px;
    transition: background 0.15s, transform 0.1s;
}
.pgv2PendingFocusBtn:hover{ background: #fef3c7; transform: translateY(-1px); }
.pgv2PendingFocusBtn:active{ transform: translateY(0); }

/* Pulse de focus appliqué sur la card cible quand l'user clique "Voir" */
.pgv2Card.pgv2PendingFocusPulse{
    animation: pgv2PendingCardPulse 0.6s ease-in-out 3;
    outline: 3px solid #ea580c;
    outline-offset: 2px;
}
@keyframes pgv2PendingCardPulse{
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.04); }
}
