.pb-wrap,
.pb-wrap * { box-sizing:border-box; }
.pb-wrap {
  --pb-primary:#2563eb;
  --pb-primary-dark:#1d4ed8;
  --pb-primary-soft:#eff6ff;
  --pb-text:#0f172a;
  --pb-muted:#64748b;
  --pb-border:#dbe4ef;
  --pb-soft:#f8fafc;
  --pb-surface:#ffffff;
  --pb-danger:#b91c1c;
  --pb-danger-soft:#fef2f2;
  --pb-success:#047857;
  --pb-success-soft:#ecfdf5;
  color:var(--pb-text);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:0 12px;
  line-height:1.5;
}
.pb-wrap h1,.pb-wrap h2,.pb-wrap h3,.pb-wrap h4,.pb-wrap p { margin-top:0; }
/* ------------------------------------------------------------------
   Échelle de proportions (v6.5.15) — à respecter pour tout nouvel ajout
   Rayons     : 10px (boutons/champs/pilules) · 14px (encarts compacts)
                18px (cartes standards) · 24px (grandes cartes landing)
                999px (pilules pleines) · 50% (cercles)
   Hauteurs   : 36px (contrôles compacts) · 44px (contrôles standards)
                50px (CTA/boutons proéminents)
                Exception assumée : formulaires du tableau de bord
                organisateur en 40px (densité volontairement réduite)
   Espacements: multiples pairs (gap/padding/margin) — éviter les
                valeurs impaires type 7px/9px/13px pour les nouveaux styles
   ------------------------------------------------------------------ */
.pb-wrap h1,.pb-wrap h2,.pb-wrap h3,.pb-wrap h4 { color:var(--pb-text); line-height:1.18; }
.pb-wrap a { text-decoration:none; }
.pb-wrap button,.pb-wrap input,.pb-wrap select,.pb-wrap textarea { font-family:inherit; }
.pb-kicker { display:block; margin-bottom:7px; color:var(--pb-primary); font-size:.74rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.pb-muted { color:var(--pb-muted); font-size:.9rem; }
.pb-card { background:#fff; border:1px solid var(--pb-border); border-radius:18px; padding:18px; box-shadow:0 8px 30px rgba(15,23,42,.055); }
.pb-alert { border-radius:14px; padding:14px 16px; margin:0 0 18px; font-weight:650; }
.pb-alert-success { background:var(--pb-success-soft); border:1px solid #a7f3d0; color:#065f46; }
.pb-alert-error { background:var(--pb-danger-soft); border:1px solid #fecaca; color:#991b1b; }
.pb-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 18px; border:0; border-radius:10px; background:var(--pb-primary); color:#fff !important; font-weight:750; cursor:pointer; text-decoration:none !important; transition:background .15s ease,transform .15s ease,box-shadow .15s ease; }
.pb-button:hover { background:var(--pb-primary-dark); transform:translateY(-1px); box-shadow:0 7px 18px rgba(37,99,235,.2); }
.pb-button-secondary { background:#eef2ff; color:#3730a3 !important; }
.pb-button-secondary:hover { background:#e0e7ff; box-shadow:none; }
.pb-button-danger { background:#dc2626; }
.pb-button-danger:hover { background:#b91c1c; }
.pb-button-large { width:100%; min-height:50px; }
.pb-text-button,.pb-text-danger { padding:0; border:0; background:none; font:inherit; cursor:pointer; font-weight:750; }
.pb-text-button { color:#475569; }
.pb-text-danger { color:var(--pb-danger); }

/* Forms */
.pb-form { display:grid; gap:14px; }
.pb-form label,.pb-inline-form label,.pb-form-grid label,.pb-day-row label,.pb-position-row label,.pb-capacity-form label { display:block; font-weight:700; font-size:.89rem; color:#334155; }
.pb-field-help { display:block; margin:3px 0 1px; color:#64748b; font-size:.76rem; font-weight:500; line-height:1.35; }
.pb-wrap input[type=text],.pb-wrap input[type=email],.pb-wrap input[type=tel],.pb-wrap input[type=password],.pb-wrap input[type=number],.pb-wrap input[type=date],.pb-wrap input[type=time],.pb-wrap select,.pb-wrap textarea {
  width:100%; min-height:44px; margin-top:6px; padding:10px 12px; border:1px solid #cbd5e1; border-radius:10px; background:#fff; color:#111827; font:inherit; box-shadow:none;
}
.pb-wrap textarea { min-height:92px; resize:vertical; }
.pb-wrap input:focus,.pb-wrap select:focus,.pb-wrap textarea:focus { outline:3px solid rgba(37,99,235,.13); border-color:var(--pb-primary); }
.pb-form-grid,.pb-account-grid,.pb-position-manage-grid { display:grid; grid-template-columns:1fr; gap:14px; }
.pb-inline-form { display:grid; grid-template-columns:1fr; gap:10px; align-items:end; }
.pb-check-row { display:flex !important; align-items:center; gap:10px; font-weight:650; }
.pb-check-row input { width:auto !important; min-height:0 !important; margin:0 !important; }

/* Public planning — V3 */
.pb-public-hero { display:grid; gap:18px; margin:6px 0 22px; padding:22px; border:1px solid #dce6f2; border-radius:24px; background:linear-gradient(135deg,#ffffff 0%,#f8fbff 100%); box-shadow:0 14px 38px rgba(15,23,42,.06); }
.pb-public-hero-main h2 { margin:0 0 10px; font-size:clamp(1.75rem,5vw,2.7rem); letter-spacing:-.025em; }
.pb-event-description { max-width:760px; margin-bottom:10px; color:#475569; font-size:.98rem; }
.pb-organizer-name { margin:0; color:#64748b; font-size:.91rem; }
.pb-public-code { display:flex; flex-direction:column; align-items:flex-start; gap:6px; min-width:0; }
.pb-public-code span { color:#64748b; font-size:.76rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.pb-public-code strong,.pb-code-inline { display:inline-flex; max-width:100%; padding:10px 12px; border-radius:10px; background:#0f172a; color:#fff; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.95rem; font-weight:800; letter-spacing:.04em; overflow-wrap:anywhere; }
.pb-public-instructions { display:flex; flex-direction:column; gap:14px; margin:0 0 18px; padding:16px 18px; border:1px solid #dbeafe; border-radius:18px; background:#f8fbff; }
.pb-step-intro { display:flex; align-items:flex-start; gap:12px; }
.pb-step-intro strong { display:block; margin:1px 0 3px; font-size:1.03rem; }
.pb-step-intro p { margin:0; color:#64748b; font-size:.9rem; }
.pb-step-number { display:inline-flex; flex:0 0 32px; width:32px; height:32px; align-items:center; justify-content:center; border-radius:50%; background:var(--pb-primary); color:#fff; font-size:.88rem; font-weight:850; }
.pb-legend { display:flex; flex-wrap:wrap; gap:8px 14px; color:#64748b; font-size:.82rem; }
.pb-legend span { display:inline-flex; align-items:center; gap:6px; }
.pb-legend-dot { width:9px; height:9px; border-radius:50%; background:#10b981; }
.pb-legend-dot.is-selected { background:var(--pb-primary); }
.pb-legend-dot.is-full { background:#ef4444; }
.pb-empty-state { text-align:center; padding:34px 20px; }
.pb-empty-state p { margin:6px 0 0; color:#64748b; }

.pb-planning-list { display:grid; gap:20px; }
.pb-day-section { overflow:hidden; border:1px solid var(--pb-border); border-radius:24px; background:#fff; box-shadow:0 8px 30px rgba(15,23,42,.045); }
.pb-day-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--pb-border); background:#f8fafc; }
.pb-day-title { min-width:0; }
.pb-day-title span { display:block; color:var(--pb-primary); font-size:.76rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.pb-day-title strong { display:block; margin-top:2px; font-size:1.13rem; line-height:1.2; }
.pb-day-summary { flex:0 0 auto; padding:6px 10px; border-radius:999px; background:#eaf2ff; color:#1e40af; font-size:.76rem; font-weight:800; }
.pb-day-periods { display:grid; }
.pb-time-block { display:grid; grid-template-columns:1fr; border-bottom:1px solid #e8eef5; }
.pb-time-block:last-child { border-bottom:0; }
.pb-time-rail { display:flex; align-items:center; gap:8px; padding:10px 14px; background:#fbfdff; border-bottom:1px solid #edf2f7; }
.pb-time-label { margin-right:auto; color:#94a3b8; font-size:.72rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.pb-time-rail strong { font-size:.96rem; }
.pb-time-separator { color:#94a3b8; }
.pb-time-positions { min-width:0; padding:10px 12px; }
.pb-position-list { display:grid; grid-template-columns:1fr; gap:8px; }

.pb-position-card { display:block; min-width:0; margin:0 !important; padding:10px 12px; border:1px solid #dfe7f1; border-radius:14px; background:#fff; color:var(--pb-text); cursor:pointer; transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,transform .15s ease; }
.pb-position-card.is-available:hover { border-color:#93c5fd; box-shadow:0 8px 20px rgba(37,99,235,.08); transform:translateY(-1px); }
.pb-position-card.is-selected { border-color:var(--pb-primary); background:#f5f9ff; box-shadow:0 0 0 3px rgba(37,99,235,.12); }
.pb-position-card.is-full { cursor:default; background:#fafafa; opacity:.8; }
.pb-position-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.pb-position-heading { min-width:0; }
.pb-wrap .pb-position-name { display:block; margin:0; color:#0f172a; font-size:.96rem !important; line-height:1.25 !important; font-weight:850 !important; overflow-wrap:anywhere; }
.pb-position-description { display:block; margin-top:2px; color:#64748b; font-size:.75rem !important; line-height:1.3; font-weight:400; }
.pb-status-pill { flex:0 0 auto; display:inline-flex; align-items:center; max-width:48%; padding:4px 8px; border-radius:999px; background:#ecfdf5; color:#047857; font-size:.69rem; line-height:1.15; font-weight:850; text-align:center; }
.pb-status-pill.is-full { background:#fef2f2; color:#b91c1c; }
.pb-occupancy { margin-top:7px; }
.pb-occupancy-row { display:flex; justify-content:space-between; gap:10px; color:#64748b; font-size:.71rem; line-height:1.2; }
.pb-progress { height:4px; margin-top:4px; overflow:hidden; border-radius:999px; background:#e9eff6; }
.pb-progress span { display:block; height:100%; border-radius:inherit; background:#60a5fa; }
.pb-position-card.is-full .pb-progress span { background:#f87171; }
.pb-position-volunteers { margin-top:8px; padding-top:7px; border-top:1px solid #edf2f7; }
.pb-volunteer-label { display:block; margin-bottom:5px; color:#64748b; font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.pb-volunteer-chips { display:flex; flex-wrap:wrap; gap:6px; }
.pb-volunteer-chip { display:inline-flex; padding:3px 8px; border-radius:999px; background:#f1f5f9; color:#334155; font-size:.73rem; font-weight:700; }
.pb-no-volunteer { display:none; }
.pb-position-select { display:flex; align-items:center; gap:8px; margin-top:8px; padding:8px 10px; border-radius:10px; background:#f1f5ff; color:#1e3a8a; font-size:.8rem; line-height:1.2; font-weight:800; }
.pb-position-card.is-selected .pb-position-select { background:#dbeafe; color:#1d4ed8; }
.pb-position-select input[type=checkbox] { position:absolute; opacity:0; pointer-events:none; }
.pb-checkmark { position:relative; flex:0 0 18px; width:18px; height:18px; border:2px solid #93a4bd; border-radius:5px; background:#fff; }
.pb-position-card.is-selected .pb-checkmark { border-color:var(--pb-primary); background:var(--pb-primary); }
.pb-position-card.is-selected .pb-checkmark::after { content:""; position:absolute; left:4px; top:0; width:5px; height:10px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.pb-position-unavailable { margin-top:8px; padding:8px 10px; border-radius:10px; background:#f1f5f9; color:#64748b; font-size:.77rem; font-weight:700; text-align:center; }

.pb-registration-panel { margin-top:24px; scroll-margin-top:20px; }
.pb-step-contact { margin-bottom:12px; }
.pb-registration-card { padding:18px; border:1px solid var(--pb-border); border-radius:18px; background:#fff; box-shadow:0 8px 30px rgba(15,23,42,.05); }
.pb-selection-summary { display:grid; gap:8px; margin:18px 0; padding:14px; border:1px solid #dbeafe; border-radius:14px; background:#f8fbff; }
.pb-selection-summary strong { display:block; }
.pb-selection-eyebrow,.pb-sticky-eyebrow { display:block; color:#64748b; font-size:.7rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.pb-selection-summary ul { margin:4px 0 0; padding-left:18px; color:#475569; font-size:.85rem; }
.pb-sticky-selection { position:fixed; left:50%; bottom:14px; z-index:9999; width:min(calc(100% - 24px),720px); transform:translateX(-50%); display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 12px 12px 16px; border:1px solid rgba(255,255,255,.12); border-radius:14px; background:#0f172a; color:#fff; box-shadow:0 16px 42px rgba(15,23,42,.35); }
.pb-sticky-selection[hidden] { display:none; }
.pb-sticky-selection strong { display:block; font-size:.9rem; }
.pb-sticky-selection .pb-sticky-eyebrow { color:#94a3b8; }
.pb-sticky-selection .pb-button { min-height:36px; white-space:nowrap; }
.pb-join-card { max-width:560px; margin:22px auto; }
.pb-join-card .pb-form { margin-top:15px; }
.pb-organizer-link { margin-top:18px; padding-top:15px; border-top:1px solid var(--pb-border); color:#64748b; font-size:.9rem; }

/* Auth & dashboard */
.pb-dashboard { padding-bottom:24px; }
.pb-auth-shell { display:grid; gap:20px; max-width:950px; margin:28px auto; }
.pb-auth-intro { padding:20px 4px; }
.pb-auth-intro h2 { font-size:clamp(1.75rem,6vw,2.55rem); margin-bottom:10px; letter-spacing:-.02em; }
.pb-auth-card { max-width:540px; width:100%; }
.pb-auth-switch,.pb-auth-links { margin:14px 0 0; font-size:.9rem; color:#64748b; }
.pb-dashboard-header { display:flex; flex-direction:column; gap:16px; justify-content:space-between; align-items:flex-start; margin:16px 0 26px; padding:18px; border:1px solid var(--pb-border); border-radius:18px; background:#fff; box-shadow:0 8px 28px rgba(15,23,42,.045); }
.pb-dashboard-header h2 { margin-bottom:5px; }
.pb-dashboard-nav,.pb-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.pb-section { margin:26px 0; }
.pb-section-head { display:flex; flex-direction:column; gap:12px; justify-content:space-between; align-items:flex-start; margin-bottom:15px; }
.pb-event-list { display:grid; gap:14px; }
.pb-event-item { display:flex; flex-direction:column; gap:16px; justify-content:space-between; border-left:4px solid #93c5fd; }
.pb-event-item h3 { margin-bottom:8px; font-size:1.12rem; }
.pb-event-item-main { min-width:0; }
.pb-meta { display:flex; flex-wrap:wrap; gap:8px; color:#64748b; font-size:.82rem; }
.pb-meta span { display:inline-flex; align-items:center; padding:6px 8px; border-radius:999px; background:#f1f5f9; }
.pb-meta strong { color:#334155; }

.pb-button-compact { min-height:36px; padding:8px 12px; border-radius:10px; font-size:.84rem; font-weight:800; }
.pb-button-ghost { border:1px solid #bfdbfe; background:#fff; color:#1d4ed8 !important; box-shadow:none; }
.pb-button-ghost:hover { border-color:#60a5fa; background:#eff6ff; box-shadow:none; }
.pb-button-whatsapp { background:#16a34a; }
.pb-button-whatsapp:hover { background:#15803d; box-shadow:0 7px 18px rgba(22,163,74,.18); }
.pb-dashboard-nav .pb-button { min-height:36px; padding:8px 12px; border-radius:10px; font-size:.84rem; }
.pb-dashboard-nav .pb-text-button { min-height:36px; padding:8px 4px; font-size:.84rem; }
.pb-events-section-head { align-items:flex-start; }
.pb-events-section-head h2 { margin-bottom:5px; }
.pb-events-section-head .pb-muted { margin-bottom:0; max-width:680px; }
.pb-event-list { gap:16px; }
.pb-event-card { padding:0; overflow:hidden; border-left:0; box-shadow:0 10px 32px rgba(15,23,42,.055); }
.pb-event-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:18px 18px; border-bottom:1px solid #e8eef5; background:linear-gradient(180deg,#fff,#fbfdff); }
.pb-event-card-title { display:flex; align-items:center; gap:12px; min-width:0; }
.pb-event-card-title h3 { margin:0 0 3px; font-size:1.12rem; letter-spacing:-.015em; }
.pb-event-card-title p { margin:0; color:#64748b; font-size:.82rem; }
.pb-event-icon { display:inline-flex; flex:0 0 38px; width:38px; height:38px; align-items:center; justify-content:center; border-radius:12px; background:#eff6ff; color:#2563eb; font-size:1.25rem; font-weight:900; }
.pb-event-fill-badge { display:inline-flex; flex:0 0 auto; align-items:center; min-height:28px; padding:6px 10px; border-radius:999px; font-size:.75rem; font-weight:850; white-space:nowrap; }
.pb-event-fill-badge.is-empty { background:#fff1f2; color:#be123c; }
.pb-event-fill-badge.is-progress { background:#fffbeb; color:#b45309; }
.pb-event-fill-badge.is-full { background:#ecfdf5; color:#15803d; }
.pb-event-card-body { display:grid; grid-template-columns:1fr; gap:14px; padding:16px 18px; }
.pb-event-summary { min-width:0; }
.pb-event-progress-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:7px; color:#64748b; font-size:.8rem; font-weight:750; }
.pb-event-progress-row strong { color:#0f172a; font-size:.88rem; }
.pb-event-progress { height:8px; overflow:hidden; border-radius:999px; background:#e2e8f0; }
.pb-event-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#2563eb,#22c55e); }
.pb-event-metrics { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:13px; color:#64748b; font-size:.8rem; }
.pb-event-metrics span { display:inline-flex; align-items:baseline; gap:4px; }
.pb-event-metrics strong { color:#0f172a; font-size:.95rem; }
.pb-event-statuses { display:flex; flex-wrap:wrap; gap:6px; margin-top:11px; }
.pb-event-statuses span { display:inline-flex; padding:4px 8px; border-radius:999px; font-size:.72rem; font-weight:800; }
.pb-event-statuses .is-empty { background:#fff1f2; color:#be123c; }
.pb-event-statuses .is-partial { background:#fffbeb; color:#b45309; }
.pb-event-statuses .is-full { background:#ecfdf5; color:#15803d; }
.pb-event-share-panel { padding:14px; border:1px solid #bfdbfe; border-radius:14px; background:#f5f9ff; }
.pb-event-code-label { display:block; margin-bottom:7px; color:#475569; font-size:.72rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.pb-event-code-row { display:flex; align-items:center; gap:8px; }
.pb-event-code-row code { flex:1; min-width:0; display:block; padding:10px 12px; border:1px solid #93c5fd; border-radius:10px; background:#fff; color:#0f172a; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:1rem; font-weight:850; letter-spacing:.08em; line-height:1.2; overflow-wrap:anywhere; user-select:all; }
.pb-event-share-panel p { margin:8px 0 10px; color:#64748b; font-size:.75rem; }
.pb-event-share-actions { display:flex; flex-wrap:wrap; gap:8px; }
.pb-event-card-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; padding:12px 18px; border-top:1px solid #e8eef5; background:#fbfdff; }
.pb-share-feedback { display:block; min-height:20px; margin-top:8px; color:#047857; font-size:.8rem; font-weight:750; }
#pb-create-event { scroll-margin-top:18px; }
.pb-create-card { margin-top:26px; border-top:4px solid #2563eb; }
.pb-create-intro { margin-bottom:20px; }
.pb-create-intro h2 { margin-bottom:6px; }
.pb-create-step { margin-top:18px; }
.pb-create-step-head { display:flex; align-items:flex-start; gap:12px; }
.pb-create-step-head > span { display:inline-flex; flex:0 0 30px; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%; background:#dbeafe; color:#1d4ed8; font-size:.82rem; font-weight:850; }
.pb-create-step-head h3 { margin:2px 0 3px; font-size:1.02rem; }
.pb-create-step-head p { margin:0; color:#64748b; font-size:.86rem; }
.pb-create-step > .pb-form-grid { margin-top:13px; }
.pb-create-step > label { display:block; margin-top:13px; }
.pb-create-submit { margin-top:20px; }
.pb-builder { margin:20px 0; padding:16px; background:#f8fafc; border:1px solid var(--pb-border); border-radius:14px; }
.pb-builder .pb-section-head h3 { margin-bottom:4px; }
.pb-day-row,.pb-position-row { position:relative; display:grid; grid-template-columns:1fr; gap:12px; padding:16px 44px 16px 16px; margin-top:12px; background:#fff; border:1px solid var(--pb-border); border-radius:14px; }
.pb-position-description-field { grid-column:1/-1; }
.pb-icon-button { position:absolute; top:10px; right:10px; width:31px; height:31px; border:0; border-radius:50%; background:#fee2e2; color:#991b1b; font-size:20px; line-height:1; cursor:pointer; }
.pb-manage-top { margin:12px 0; }
.pb-manage-hero { display:flex; flex-direction:column; gap:16px; justify-content:space-between; border-top:4px solid #2563eb; }
.pb-manage-nav { display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 4px; padding:10px; border:1px solid var(--pb-border); border-radius:14px; background:#f8fafc; }
.pb-manage-nav a { display:inline-flex; padding:8px 10px; border-radius:10px; color:#334155; font-size:.84rem; font-weight:800; }
.pb-manage-nav a:hover { background:#fff; color:#1d4ed8; }
.pb-section-title { margin-bottom:13px; }
#pb-event-overview,#pb-event-info,#pb-event-positions,#pb-event-planning { scroll-margin-top:20px; }

/* Vue d'ensemble du planning organisateur */
.pb-overview-section { margin-top:18px; }
.pb-overview-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:14px 0 12px; }
.pb-overview-stat { padding:14px; border:1px solid var(--pb-border); border-radius:14px; background:#fff; }
.pb-overview-stat > span { display:block; color:#64748b; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.pb-overview-stat strong { display:block; margin:4px 0 2px; color:#0f172a; font-size:1.65rem; line-height:1; }
.pb-overview-stat small { color:#64748b; font-size:.78rem; }
.pb-overview-stat-empty { border-color:#fecdd3; background:#fff7f8; }
.pb-overview-stat-partial { border-color:#fde68a; background:#fffbeb; }
.pb-overview-stat-full { border-color:#bbf7d0; background:#f0fdf4; }
.pb-overview-legend { display:flex; flex-wrap:wrap; gap:12px; margin:8px 0 14px; color:#475569; font-size:.82rem; font-weight:700; }
.pb-overview-legend span { display:inline-flex; align-items:center; gap:6px; }
.pb-legend-dot { width:10px; height:10px; border-radius:50%; display:inline-block; }
.pb-legend-empty { background:#fb7185; }
.pb-legend-partial { background:#f59e0b; }
.pb-legend-full { background:#22c55e; }
.pb-overview-days { display:grid; gap:14px; }
.pb-overview-day { overflow:hidden; border:1px solid var(--pb-border); border-radius:18px; background:#fff; box-shadow:0 4px 18px rgba(15,23,42,.04); }
.pb-overview-day-head { display:flex; flex-direction:column; gap:2px; padding:14px 16px; border-bottom:1px solid var(--pb-border); background:#f8fafc; }
.pb-overview-day-name { color:#2563eb; font-size:.78rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; }
.pb-overview-day-head strong { color:#0f172a; font-size:1rem; }
.pb-overview-period { display:grid; grid-template-columns:1fr; border-bottom:1px solid #eef2f7; }
.pb-overview-period:last-child { border-bottom:0; }
.pb-overview-time { padding:14px 16px 8px; }
.pb-overview-time span { display:block; margin-bottom:2px; color:#94a3b8; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.pb-overview-time strong { color:#0f172a; font-size:.96rem; }
.pb-overview-position-grid { display:grid; grid-template-columns:1fr; gap:10px; padding:8px 16px 16px; }
.pb-overview-slot { min-width:0; padding:12px; border:1px solid; border-radius:14px; }
.pb-overview-slot-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.pb-overview-slot-head strong { min-width:0; color:#0f172a; font-size:.9rem; }
.pb-overview-slot-head span { flex:0 0 auto; display:inline-flex; padding:3px 8px; border-radius:999px; background:rgba(255,255,255,.78); color:#334155; font-size:.72rem; font-weight:850; }
.pb-overview-slot-status { margin-top:5px; font-size:.78rem; font-weight:850; }
.pb-overview-slot-empty { border-color:#fda4af; background:#fff1f2; }
.pb-overview-slot-empty .pb-overview-slot-status { color:#be123c; }
.pb-overview-slot-partial { border-color:#fcd34d; background:#fffbeb; }
.pb-overview-slot-partial .pb-overview-slot-status { color:#b45309; }
.pb-overview-slot-full { border-color:#86efac; background:#ecfdf5; }
.pb-overview-slot-full .pb-overview-slot-status { color:#15803d; }
.pb-overview-names { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
.pb-overview-names span { display:inline-flex; max-width:100%; padding:4px 8px; border-radius:999px; background:rgba(255,255,255,.78); color:#334155; font-size:.72rem; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pb-overview-no-name { display:block; margin-top:8px; color:#94a3b8; font-size:.75rem; }
.pb-manage-hero h2 { margin-bottom:8px; }
.pb-add-position-card { border-style:dashed; background:#fbfdff; }
.pb-position-manage-grid { align-items:start; }
.pb-position-manage-grid > .pb-card { height:100%; }
.pb-admin-period { margin:14px 0 20px; padding:16px; background:#f8fafc; border:1px solid var(--pb-border); border-radius:14px; }
.pb-admin-period h4 { margin-bottom:12px; font-size:1.05rem; }
.pb-admin-slot { box-shadow:none; border-top:3px solid #bfdbfe; }
.pb-slot-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.pb-admin-volunteers { margin-top:12px; border-top:1px solid var(--pb-border); }
.pb-volunteer-row { display:flex; flex-direction:column; gap:8px; padding:12px 0; border-bottom:1px solid #eef2f7; }
.pb-volunteer-row small { display:block; margin-top:3px; color:#64748b; }
.pb-volunteer-row form { margin:0; }
.pb-slot-admin-actions { display:flex; flex-direction:column; gap:10px; margin-top:13px; padding-top:13px; border-top:1px solid #eef2f7; }
.pb-capacity-form { display:flex; align-items:flex-end; gap:8px; }
.pb-capacity-form label { max-width:110px; }
.pb-capacity { display:inline-flex; padding:6px 8px; border-radius:999px; background:#eff6ff; color:#1d4ed8; font-size:.78rem; font-weight:800; white-space:nowrap; }
.pb-date-title { margin:24px 0 12px; padding-bottom:8px; border-bottom:1px solid var(--pb-border); font-size:1.15rem; }
.pb-danger-zone { margin-top:30px; padding:20px; border:1px solid #fecaca; border-radius:14px; background:#fff7f7; }
.pb-account-grid { align-items:start; }

/* WP admin */
.pb-admin-wrap { max-width:1200px; margin:20px 0; padding:0; }
.pb-admin-user-list { display:grid; gap:12px; }
.pb-admin-user { display:flex; flex-direction:column; gap:12px; justify-content:space-between; }
.pb-admin-user h3 { margin-bottom:4px; }

@media (min-width:640px) {
  .pb-wrap { padding:0 16px; }
  .pb-public-hero { grid-template-columns:minmax(0,1fr) auto; align-items:center; }
  .pb-public-code { align-items:flex-end; }
  .pb-public-instructions { flex-direction:row; align-items:center; justify-content:space-between; }
  .pb-form-grid,.pb-account-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pb-overview-stats { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .pb-overview-position-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pb-position-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pb-position-manage-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pb-inline-form { grid-template-columns:repeat(3,minmax(120px,1fr)); }
  .pb-day-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pb-position-row { grid-template-columns:minmax(0,2fr) minmax(120px,1fr); }
  .pb-event-header,.pb-section-head,.pb-event-item,.pb-dashboard-header,.pb-manage-hero,.pb-admin-user { flex-direction:row; align-items:center; }
  .pb-event-item-main { flex:1; }
  .pb-volunteer-row { flex-direction:row; align-items:center; justify-content:space-between; }
  .pb-slot-admin-actions { flex-direction:row; align-items:flex-end; justify-content:space-between; }
}

@media (min-width:760px) {
  .pb-event-card-body { grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr); align-items:stretch; }
  .pb-overview-period { grid-template-columns:120px minmax(0,1fr); }
  .pb-overview-time { padding:16px; border-right:1px solid #eef2f7; }
  .pb-overview-position-grid { padding:12px 16px; }
  .pb-time-block { grid-template-columns:112px minmax(0,1fr); }
  .pb-time-rail { flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; padding:14px 14px; border-right:1px solid #edf2f7; border-bottom:0; }
  .pb-time-label { margin:0 0 3px; }
  .pb-time-rail strong { font-size:.98rem; }
  .pb-time-separator { display:none; }
  .pb-time-positions { padding:12px 12px; }
}

@media (min-width:900px) {
  .pb-overview-position-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pb-position-manage-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pb-day-row { grid-template-columns:repeat(5,minmax(120px,1fr)); }
  .pb-position-row { grid-template-columns:minmax(0,2fr) minmax(120px,1fr) minmax(0,2fr); }
  .pb-inline-form { grid-template-columns:repeat(5,minmax(120px,1fr)) auto; }
  .pb-auth-shell { grid-template-columns:1fr 1fr; align-items:start; }
}

@media (max-width:639px) {
  .pb-event-card-head { flex-direction:column; }
  .pb-event-code-row { align-items:stretch; }
  .pb-event-code-row code { font-size:.92rem; }
  .pb-event-card-actions { justify-content:stretch; }
  .pb-event-card-actions .pb-button { flex:1 1 auto; }
  .pb-public-hero { padding:18px; }
  .pb-public-code strong { font-size:.88rem; }
  .pb-day-header { align-items:flex-start; }
  .pb-day-summary { margin-top:2px; }
  .pb-position-card-head { flex-direction:row; }
  .pb-status-pill { max-width:48%; }
  .pb-sticky-selection { align-items:center; }
  .pb-sticky-selection .pb-button { min-height:36px; padding:10px 12px; font-size:.82rem; }
}


@media (max-width:420px) {
  .pb-position-card-head { flex-direction:column; gap:6px; }
  .pb-status-pill { max-width:100%; }
}

/* Landing page — V4 */
.pb-home { max-width:1240px; padding-top:10px; padding-bottom:30px; }
.pb-home-hero { position:relative; display:grid; gap:34px; align-items:center; padding:42px 22px 38px; margin:4px 0 28px; overflow:hidden; border:1px solid #dbeafe; border-radius:24px; background:radial-gradient(circle at 86% 12%,rgba(96,165,250,.20),transparent 32%),linear-gradient(135deg,#f8fbff 0%,#ffffff 48%,#eff6ff 100%); box-shadow:0 24px 65px rgba(15,23,42,.08); }
.pb-home-hero::before { content:""; position:absolute; width:220px; height:220px; left:-100px; bottom:-130px; border-radius:50%; background:rgba(37,99,235,.07); }
.pb-home-hero-copy { position:relative; z-index:1; min-width:0; }
.pb-home-eyebrow { display:inline-flex; padding:8px 12px; margin-bottom:16px; border:1px solid #bfdbfe; border-radius:999px; background:#fff; color:#1d4ed8; font-size:.76rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; box-shadow:0 5px 14px rgba(37,99,235,.08); }
.pb-home-hero h1 { margin:0 0 18px; max-width:760px; font-size:clamp(2.3rem,7vw,4.9rem); line-height:.98; letter-spacing:-.055em; }
.pb-home-hero h1 span { color:#2563eb; }
.pb-home-lead { max-width:690px; margin-bottom:22px; color:#475569; font-size:clamp(1rem,2.2vw,1.16rem); line-height:1.7; }
.pb-home-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:18px; }
.pb-home-primary { min-height:50px; padding:12px 20px; border-radius:14px; }
.pb-home-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:12px 18px; border:1px solid #cbd5e1; border-radius:14px; background:#fff; color:#0f172a !important; font-weight:800; text-decoration:none !important; transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease; }
.pb-home-secondary:hover { border-color:#93c5fd; transform:translateY(-1px); box-shadow:0 8px 22px rgba(15,23,42,.08); }
.pb-home-trust { display:flex; flex-wrap:wrap; gap:8px 16px; color:#64748b; font-size:.82rem; font-weight:700; }
.pb-home-trust span { white-space:nowrap; }
.pb-home-preview { position:relative; z-index:1; width:100%; max-width:470px; justify-self:center; padding:16px; border:1px solid rgba(255,255,255,.7); border-radius:24px; background:#fff; box-shadow:0 25px 65px rgba(37,99,235,.18); transform:rotate(1.2deg); }
.pb-home-preview-top { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:8px 8px 16px; border-bottom:1px solid #e2e8f0; }
.pb-home-preview-top small { display:block; color:#64748b; font-weight:700; }
.pb-home-preview-top strong { display:block; margin-top:2px; font-size:1.08rem; }
.pb-home-preview-top > span { padding:6px 10px; border-radius:10px; background:#0f172a; color:#fff; font-size:.76rem; font-weight:800; white-space:nowrap; }
.pb-home-preview-list { display:grid; gap:8px; padding:14px 0 8px; }
.pb-home-preview-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 12px; border:1px solid #e2e8f0; border-radius:14px; background:#fff; }
.pb-home-preview-row strong { display:block; font-size:.92rem; }
.pb-home-preview-row small { display:block; margin-top:2px; color:#64748b; font-size:.74rem; }
.pb-home-preview-row > span { padding:6px 8px; border-radius:999px; font-size:.74rem; font-weight:850; white-space:nowrap; }
.pb-home-preview-row.is-open > span { background:#ecfdf5; color:#047857; }
.pb-home-preview-row.is-full { opacity:.72; background:#f8fafc; }
.pb-home-preview-row.is-full > span { background:#fee2e2; color:#b91c1c; }
.pb-home-preview-foot { display:flex; align-items:center; gap:6px; padding:8px 6px 2px; color:#64748b; }
.pb-home-preview-foot span { width:7px; height:7px; border-radius:50%; background:#60a5fa; }
.pb-home-preview-foot span:nth-child(2) { background:#34d399; }
.pb-home-preview-foot span:nth-child(3) { background:#fbbf24; }
.pb-home-preview-foot em { margin-left:auto; font-size:.72rem; font-style:normal; font-weight:750; }

.pb-home-join { display:grid; gap:24px; align-items:center; margin:28px 0 52px; padding:24px; border:1px solid #c7d2fe; border-radius:24px; background:linear-gradient(120deg,#eef2ff,#f8fbff); }
.pb-home-join-copy h2 { margin-bottom:9px; font-size:clamp(1.55rem,4vw,2.25rem); letter-spacing:-.025em; }
.pb-home-join-copy p { margin:0; max-width:660px; color:#64748b; }
.pb-home-code-form { padding:16px; border:1px solid #dbe4ef; border-radius:14px; background:#fff; box-shadow:0 10px 28px rgba(15,23,42,.06); }
.pb-home-code-form > label { display:block; margin-bottom:7px; color:#334155; font-size:.8rem; font-weight:800; }
.pb-home-code-row { display:grid; gap:10px; }
.pb-home-code-row input { margin-top:0 !important; min-height:50px !important; font-family:ui-monospace,SFMono-Regular,Menlo,monospace !important; font-weight:800 !important; letter-spacing:.04em; }
.pb-home-code-form small { display:block; margin-top:8px; color:#94a3b8; font-size:.72rem; }

.pb-home-section { margin:52px 0; }
.pb-home-section-head { max-width:760px; margin-bottom:24px; }
.pb-home-section-head h2 { margin-bottom:10px; font-size:clamp(1.75rem,4vw,2.7rem); letter-spacing:-.035em; }
.pb-home-section-head p { color:#64748b; font-size:1rem; }
.pb-home-steps { display:grid; grid-template-columns:1fr; gap:14px; }
.pb-home-steps article { position:relative; min-height:245px; padding:22px; overflow:hidden; border:1px solid #e2e8f0; border-radius:24px; background:#fff; box-shadow:0 10px 32px rgba(15,23,42,.045); }
.pb-home-steps article > span { position:absolute; top:14px; right:16px; color:#dbeafe; font-size:2.7rem; font-weight:900; line-height:1; }
.pb-home-step-icon { display:flex; width:46px; height:46px; align-items:center; justify-content:center; margin-bottom:42px; border-radius:14px; background:#eff6ff; color:#2563eb; font-size:1.5rem; font-weight:850; }
.pb-home-steps h3 { margin-bottom:8px; font-size:1.14rem; }
.pb-home-steps p { margin:0; color:#64748b; font-size:.9rem; }

.pb-home-roles { display:grid; grid-template-columns:1fr; gap:14px; margin:52px 0; }
.pb-home-role-card { padding:26px; border-radius:24px; }
.pb-home-role-card h2 { max-width:570px; margin-bottom:16px; font-size:clamp(1.5rem,4vw,2.2rem); letter-spacing:-.03em; }
.pb-home-role-card ul { display:grid; gap:10px; margin:0 0 22px; padding:0; list-style:none; }
.pb-home-role-card li { position:relative; padding-left:26px; color:#475569; }
.pb-home-role-card li::before { content:"✓"; position:absolute; left:0; top:0; display:flex; width:19px; height:19px; align-items:center; justify-content:center; border-radius:50%; background:#dbeafe; color:#1d4ed8; font-size:.7rem; font-weight:900; }
.pb-home-role-organizer { border:1px solid #bfdbfe; background:linear-gradient(145deg,#eff6ff,#fff); }
.pb-home-role-volunteer { border:1px solid #d1fae5; background:linear-gradient(145deg,#ecfdf5,#fff); }
.pb-home-role-volunteer .pb-kicker { color:#047857; }
.pb-home-role-volunteer li::before { background:#d1fae5; color:#047857; }

.pb-home-positions { display:grid; gap:26px; align-items:center; margin:52px 0; padding:26px; border:1px solid #e2e8f0; border-radius:24px; background:#0f172a; color:#fff; overflow:hidden; }
.pb-home-positions h2 { color:#fff; margin-bottom:10px; font-size:clamp(1.6rem,4vw,2.5rem); letter-spacing:-.03em; }
.pb-home-positions p { margin:0; color:#cbd5e1; }
.pb-home-positions .pb-kicker { color:#93c5fd; }
.pb-home-position-cloud { display:flex; flex-wrap:wrap; gap:10px; align-content:center; }
.pb-home-position-cloud span { display:inline-flex; padding:10px 12px; border:1px solid rgba(255,255,255,.13); border-radius:999px; background:rgba(255,255,255,.08); color:#fff; font-size:.84rem; font-weight:800; backdrop-filter:blur(8px); }
.pb-home-position-cloud span:last-child { border-color:#60a5fa; background:#2563eb; }

.pb-home-final { display:grid; gap:22px; align-items:center; margin:52px 0 10px; padding:28px; border-radius:24px; background:linear-gradient(135deg,#1d4ed8,#2563eb 55%,#3b82f6); color:#fff; box-shadow:0 22px 55px rgba(37,99,235,.22); }
.pb-home-final .pb-kicker { color:#bfdbfe; }
.pb-home-final h2 { max-width:800px; margin-bottom:9px; color:#fff; font-size:clamp(1.75rem,4vw,2.8rem); letter-spacing:-.035em; }
.pb-home-final p { margin:0; color:#dbeafe; }
.pb-home-final-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.pb-home-final .pb-home-primary { background:#fff; color:#1d4ed8 !important; }
.pb-home-final .pb-home-primary:hover { background:#eff6ff; }
.pb-home-final-link { color:#fff !important; font-weight:800; text-decoration:none !important; padding:10px 4px; }
.pb-home-final-link:hover { text-decoration:underline !important; }

@media (min-width:700px) {
  .pb-home-hero { grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); padding:58px 44px; }
  .pb-home-join { grid-template-columns:minmax(0,1fr) minmax(340px,.75fr); padding:30px; }
  .pb-home-code-row { grid-template-columns:minmax(0,1fr) auto; }
  .pb-home-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pb-home-roles { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pb-home-positions { grid-template-columns:minmax(0,1fr) minmax(330px,.8fr); padding:34px; }
  .pb-home-final { grid-template-columns:minmax(0,1fr) auto; padding:36px; }
  .pb-home-final-actions { justify-content:flex-end; }
}

@media (max-width:699px) {
  .pb-home-hero { padding:32px 18px 26px; border-radius:24px; }
  .pb-home-preview { max-width:420px; transform:none; }
  .pb-home-trust span { white-space:normal; }
  .pb-home-join,.pb-home-role-card,.pb-home-positions,.pb-home-final { padding:22px 18px; border-radius:24px; }
  .pb-home-actions > * { width:100%; }
  .pb-home-final-actions > * { width:100%; text-align:center; justify-content:center; }
}


/* PYT – Plan Your Team branding */
.pb-home-eyebrow {
    letter-spacing: .14em;
    font-weight: 800;
}
.pb-home-signature {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 30px 0 8px;
    padding: 18px 16px;
    color: #65708a;
    text-align: center;
}
.pb-home-signature strong {
    color: #172033;
    font-size: 1.15rem;
    letter-spacing: .08em;
}
.pb-home-signature span {
    color: #2459f6;
    font-weight: 700;
}
.pb-home-signature em {
    width: 100%;
    font-style: normal;
    font-size: .9rem;
}


/* Partage du planning */
.pb-share-panel {
  display: grid;
  gap: 18px;
  margin: 16px 0 22px;
  border-color: #bfdbfe;
  background: linear-gradient(135deg, #eff6ff 0%, #ffffff 70%);
}
.pb-share-panel-copy h3 {
  margin: 3px 0 8px;
  font-size: 1.3rem;
}
.pb-share-panel-copy p {
  max-width: 760px;
  margin: 0;
  color: #64748b;
}
.pb-share-link-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}
.pb-share-link-row input {
  width: 100%;
  min-width: 0;
  margin: 0 !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace !important;
  font-size: .82rem !important;
  background: #fff !important;
}
.pb-share-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.pb-whatsapp-button {
  background: #16a34a !important;
  border-color: #16a34a !important;
  color: #fff !important;
}
.pb-whatsapp-button:hover {
  background: #15803d !important;
  border-color: #15803d !important;
}
.pb-share-feedback {
  min-height: 1.2em;
  margin: -8px 0 0;
  color: #047857;
  font-size: .84rem;
  font-weight: 750;
}
.pb-public-code {
  gap: 6px;
}
.pb-share-mini {
  appearance: none;
  margin-top: 4px;
  padding: 6px 0;
  border: 0;
  background: transparent;
  color: #2563eb;
  font: inherit;
  font-size: .76rem;
  font-weight: 800;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pb-share-mini:hover { color: #1d4ed8; }

@media (min-width: 640px) {
  .pb-share-link-row {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }
}

/* Horaires spécifiques par poste — V6.2 */
#pb-event-position-schedules { scroll-margin-top:20px; }
.pb-position-schedule-grid { display:grid; grid-template-columns:1fr; gap:16px; margin-top:14px; }
.pb-schedule-card { padding:0; overflow:hidden; }
.pb-schedule-card-head { display:flex; flex-direction:column; gap:8px; justify-content:space-between; padding:16px 18px; border-bottom:1px solid var(--pb-border); background:linear-gradient(180deg,#fff,#f8fbff); }
.pb-schedule-card-head h3 { margin:0; font-size:1.15rem; }
.pb-schedule-card-head .pb-kicker { margin-bottom:3px; }
.pb-schedule-default { display:inline-flex; align-self:flex-start; padding:6px 8px; border-radius:999px; background:#eff6ff; color:#1d4ed8; font-size:.74rem; font-weight:800; }
.pb-position-schedule-form { padding:16px 18px 18px; }
.pb-schedule-days { display:grid; gap:10px; }
.pb-schedule-day { display:grid; grid-template-columns:1fr; gap:10px; padding:14px; border:1px solid #e2e8f0; border-radius:14px; background:#fff; }
.pb-schedule-day-label strong { display:block; color:#0f172a; font-size:.9rem; }
.pb-schedule-day-label small { display:block; margin-top:2px; color:#64748b; font-size:.78rem; }
.pb-schedule-time-fields { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.pb-schedule-time-fields[hidden] { display:none !important; }
.pb-schedule-note { margin:0; padding:10px 12px; border-radius:10px; background:#f8fafc; color:#64748b; font-size:.8rem; }

@media (min-width:700px) {
  .pb-schedule-card-head { flex-direction:row; align-items:center; }
  .pb-schedule-day { grid-template-columns:minmax(190px,1.2fr) minmax(170px,.8fr) minmax(220px,1fr); align-items:end; }
}

/* PYT 6.3 - FAQ SEO / contenu public */
.pb-home-faq-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:26px;
}
.pb-home-faq-grid article {
  padding:22px;
  border:1px solid #dbe7f5;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 30px rgba(15,23,42,.045);
}
.pb-home-faq-grid h3 {
  margin:0 0 10px;
  color:#0f2438;
  font-size:1rem;
  line-height:1.35;
}
.pb-home-faq-grid p {
  margin:0;
  color:#5d6b7d;
  line-height:1.65;
}
@media (max-width:700px) {
  .pb-home-faq-grid { grid-template-columns:1fr; }
  .pb-home-faq-grid article { padding:18px; }
}

/* PYT 6.4 - gestion autonome des inscriptions bénévoles */
.pb-manage-link-request {
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  margin-top:22px;
  padding:20px;
  border:1px solid var(--pb-border);
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  box-shadow:0 8px 30px rgba(15,23,42,.04);
}
.pb-manage-link-request h3 { margin:4px 0 6px; font-size:1.15rem; color:#0f2438; }
.pb-manage-link-request p { margin:0; color:#64748b; line-height:1.55; }
.pb-manage-link-form { display:grid; grid-template-columns:1fr; gap:10px; align-items:end; }
.pb-manage-link-form label { margin:0; }
.pb-manage-link-form input { width:100%; }

.pb-self-service-hero {
  margin-bottom:20px;
  padding:20px;
  border:1px solid var(--pb-border);
  border-radius:24px;
  background:linear-gradient(135deg,#f8fbff,#f4fffb);
}
.pb-self-service-hero h2 { margin:6px 0 8px; font-size:clamp(1.7rem,4vw,2.35rem); }
.pb-self-service-hero p { margin:6px 0 0; }
.pb-edit-planning-list { margin-top:12px; }
.pb-self-service-form .pb-position-card.is-selected { box-shadow:0 0 0 2px rgba(16,185,129,.18),0 8px 24px rgba(15,23,42,.05); }
.pb-self-service-danger {
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:22px;
  padding:18px;
  border:1px solid #fecaca;
  border-radius:18px;
  background:#fff7f7;
}
.pb-self-service-danger strong { color:#991b1b; }
.pb-self-service-danger p { margin:4px 0 0; color:#7f1d1d; }
.pb-self-service-back { margin:18px 0 0; }
.pb-volunteer-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:flex-end; }
.pb-volunteer-actions form { margin:0; }

@media (min-width:700px) {
  .pb-manage-link-request { grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); align-items:end; }
  .pb-manage-link-form { grid-template-columns:minmax(0,1fr) auto; }
  .pb-self-service-danger { flex-direction:row; justify-content:space-between; align-items:center; }
}


/* PYT 6.4.2 — fenêtres de confirmation intégrées au site */
body.pb-dialog-open { overflow:hidden; }
.pb-site-dialog-overlay,
.pb-site-dialog-overlay * { box-sizing:border-box; }
.pb-site-dialog-overlay[hidden] { display:none !important; }
.pb-site-dialog-overlay {
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.54);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  animation:pb-dialog-fade .16s ease-out;
}
.pb-site-dialog {
  position:relative;
  width:min(100%,480px);
  overflow:hidden;
  padding:24px;
  border:1px solid rgba(219,228,239,.96);
  border-radius:24px;
  background:#fff;
  color:#0f172a;
  box-shadow:0 28px 80px rgba(15,23,42,.26);
  animation:pb-dialog-rise .18s ease-out;
}
.pb-site-dialog-close {
  position:absolute;
  top:12px;
  right:12px;
  display:inline-flex;
  width:36px;
  height:36px;
  align-items:center;
  justify-content:center;
  padding:0;
  border:0;
  border-radius:50%;
  background:#f8fafc;
  color:#64748b;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.pb-site-dialog-close:hover { background:#eef2f7; color:#0f172a; }
.pb-site-dialog-mark {
  display:flex;
  width:46px;
  height:46px;
  align-items:center;
  justify-content:center;
  margin-bottom:16px;
  border-radius:14px;
  background:linear-gradient(135deg,#eff6ff,#ecfdf5);
  color:#2563eb;
  font-size:1.3rem;
  font-weight:900;
}
.pb-site-dialog[data-dialog-type="danger"] .pb-site-dialog-mark {
  background:#fef2f2;
  color:#dc2626;
}
.pb-site-dialog[data-dialog-type="success"] .pb-site-dialog-mark {
  background:#ecfdf5;
  color:#059669;
}
.pb-site-dialog-brand {
  display:block;
  margin-bottom:7px;
  color:#2563eb;
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.pb-site-dialog h2 {
  margin:0 42px 10px 0;
  color:#0f172a;
  font-size:1.35rem;
  line-height:1.2;
  letter-spacing:-.015em;
}
.pb-site-dialog p {
  margin:0;
  color:#64748b;
  font-size:.95rem;
  line-height:1.58;
}
.pb-site-dialog-field { margin-top:17px; }
.pb-site-dialog-field[hidden] { display:none !important; }
.pb-site-dialog-field label {
  display:block;
  margin-bottom:6px;
  color:#334155;
  font-size:.78rem;
  font-weight:800;
}
.pb-site-dialog-field input {
  width:100%;
  min-height:44px;
  padding:10px 12px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#f8fafc;
  color:#0f172a;
  font:inherit;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}
.pb-site-dialog-field input:focus { outline:3px solid rgba(37,99,235,.13); border-color:#2563eb; }
.pb-site-dialog-field small { display:block; margin-top:7px; color:#94a3b8; font-size:.76rem; line-height:1.45; }
.pb-site-dialog-actions {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:23px;
}
.pb-site-dialog-button {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  border:0;
  border-radius:10px;
  font:inherit;
  font-size:.9rem;
  font-weight:800;
  cursor:pointer;
  transition:transform .12s ease,background .12s ease,box-shadow .12s ease;
}
.pb-site-dialog-button:hover { transform:translateY(-1px); }
.pb-site-dialog-button-primary { background:#2563eb; color:#fff; box-shadow:0 7px 18px rgba(37,99,235,.18); }
.pb-site-dialog-button-primary:hover { background:#1d4ed8; }
.pb-site-dialog-button-primary.is-danger { background:#dc2626; box-shadow:0 7px 18px rgba(220,38,38,.16); }
.pb-site-dialog-button-primary.is-danger:hover { background:#b91c1c; }
.pb-site-dialog-button-secondary { background:#f1f5f9; color:#334155; }
.pb-site-dialog-button-secondary:hover { background:#e2e8f0; }
@keyframes pb-dialog-fade { from { opacity:0; } to { opacity:1; } }
@keyframes pb-dialog-rise { from { opacity:0; transform:translateY(8px) scale(.985); } to { opacity:1; transform:none; } }
@media (max-width:520px) {
  .pb-site-dialog-overlay { align-items:flex-end; padding:12px; }
  .pb-site-dialog { width:100%; padding:22px 18px 18px; border-radius:22px 22px 18px 18px; }
  .pb-site-dialog-actions { flex-direction:column-reverse; }
  .pb-site-dialog-button { width:100%; min-height:44px; }
}
@media (prefers-reduced-motion:reduce) {
  .pb-site-dialog-overlay,.pb-site-dialog { animation:none; }
}

/* =========================================================
 * Dashboard organisateur — V6.4.9 / style app moderne
 * Compact, responsive, sans modifier la vue publique.
 * ========================================================= */
.pb-dashboard {
  --pb-dashboard-radius:16px;
  --pb-dashboard-shadow:0 10px 28px rgba(15,23,42,.055);
  max-width:1240px;
  padding-top:4px;
  padding-bottom:28px;
}

.pb-dashboard > .pb-alert {
  margin:8px 0 14px;
  padding:10px 14px;
  border-radius:10px;
  font-size:.86rem;
  font-weight:750;
}

.pb-dashboard-header {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px 28px;
  align-items:center;
  margin:8px 0 20px;
  padding:16px 18px;
  border:1px solid #dbe7f4;
  border-radius:var(--pb-dashboard-radius);
  background:
    radial-gradient(circle at 95% 0%,rgba(34,197,94,.08),transparent 30%),
    linear-gradient(135deg,#fff 0%,#fbfdff 58%,#f5f9ff 100%);
  box-shadow:var(--pb-dashboard-shadow);
}
.pb-dashboard-header::before {
  content:"";
  position:absolute;
  left:18px;
  top:0;
  width:54px;
  height:3px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg,#2563eb,#10b981);
}
.pb-dashboard-header > div { min-width:0; }
.pb-dashboard-header .pb-kicker {
  margin:0 0 6px;
  font-size:.67rem;
  letter-spacing:.11em;
}
.pb-dashboard-header h2 {
  max-width:720px;
  margin:0 0 4px;
  font-size:clamp(1.55rem,2.7vw,2.15rem) !important;
  line-height:1.08 !important;
  letter-spacing:-.035em;
  font-weight:760;
  overflow-wrap:anywhere;
}
.pb-dashboard-header .pb-muted {
  margin:0;
  font-size:.78rem;
  color:#718096;
}

.pb-dashboard-nav {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
  gap:6px;
  padding:4px;
  border:1px solid #e5eaf2;
  border-radius:12px;
  background:rgba(255,255,255,.88);
  box-shadow:0 3px 12px rgba(15,23,42,.035);
}
.pb-dashboard-nav .pb-button,
.pb-dashboard-nav .pb-text-button {
  min-height:32px;
  padding:6px 10px;
  border-radius:10px;
  font-size:.76rem;
  line-height:1;
  font-weight:780;
  box-shadow:none;
  transform:none;
}
.pb-dashboard-nav .pb-button-secondary {
  background:transparent;
  color:#334155 !important;
}
.pb-dashboard-nav .pb-button-secondary:hover {
  background:#eef4ff;
  color:#1d4ed8 !important;
}
.pb-dashboard-nav form { margin:0; }
.pb-dashboard-nav .pb-text-button {
  color:#64748b;
  padding-left:8px;
  padding-right:8px;
}
.pb-dashboard-nav .pb-text-button:hover { color:#0f172a; }

.pb-dashboard .pb-section { margin:20px 0; }
.pb-dashboard .pb-section-head {
  gap:10px;
  margin-bottom:11px;
}
.pb-dashboard .pb-events-section-head {
  align-items:flex-end;
}
.pb-dashboard .pb-events-section-head .pb-kicker {
  margin-bottom:4px;
  font-size:.66rem;
}
.pb-dashboard .pb-events-section-head h2 {
  margin:0 0 3px;
  font-size:clamp(1.65rem,3vw,2.25rem) !important;
  line-height:1.05 !important;
  letter-spacing:-.04em;
  font-weight:760;
}
.pb-dashboard .pb-events-section-head .pb-muted {
  max-width:720px;
  font-size:.82rem;
  line-height:1.45;
}
.pb-dashboard .pb-events-section-head > .pb-button {
  min-height:34px;
  padding:8px 12px;
  border-radius:10px;
  font-size:.78rem;
  box-shadow:0 5px 14px rgba(37,99,235,.14);
}

.pb-dashboard .pb-event-list { gap:12px; }
.pb-dashboard .pb-event-card {
  border-radius:14px;
  border-color:#dfe7f1;
  box-shadow:0 6px 20px rgba(15,23,42,.045);
}
.pb-dashboard .pb-event-card-head {
  align-items:center;
  padding:12px 14px;
  gap:10px;
  background:#fff;
}
.pb-dashboard .pb-event-card-title { gap:10px; }
.pb-dashboard .pb-event-icon {
  flex-basis:32px;
  width:32px;
  height:32px;
  border-radius:10px;
  font-size:1rem;
}
.pb-dashboard .pb-event-card-title h3 {
  margin-bottom:2px;
  font-size:1rem;
  line-height:1.2;
}
.pb-dashboard .pb-event-card-title p { font-size:.74rem; }
.pb-dashboard .pb-event-fill-badge {
  min-height:24px;
  padding:4px 8px;
  font-size:.68rem;
}
.pb-dashboard .pb-event-card-body {
  gap:10px;
  padding:12px 14px;
}
.pb-dashboard .pb-event-progress-row {
  margin-bottom:5px;
  font-size:.73rem;
}
.pb-dashboard .pb-event-progress-row strong { font-size:.8rem; }
.pb-dashboard .pb-event-progress { height:5px; }
.pb-dashboard .pb-event-metrics {
  gap:6px 12px;
  margin-top:9px;
  font-size:.72rem;
}
.pb-dashboard .pb-event-metrics strong { font-size:.83rem; }
.pb-dashboard .pb-event-statuses { margin-top:8px; gap:6px; }
.pb-dashboard .pb-event-statuses span {
  padding:3px 8px;
  font-size:.66rem;
}
.pb-dashboard .pb-event-share-panel {
  padding:10px;
  border-radius:10px;
  background:#f8fbff;
}
.pb-dashboard .pb-event-code-label {
  margin-bottom:5px;
  font-size:.65rem;
}
.pb-dashboard .pb-event-code-row { gap:6px; }
.pb-dashboard .pb-event-code-row code {
  padding:8px 10px;
  border-radius:10px;
  font-size:.84rem;
}
.pb-dashboard .pb-event-share-panel p {
  margin:6px 0 8px;
  font-size:.68rem;
  line-height:1.35;
}
.pb-dashboard .pb-event-share-actions { gap:6px; }
.pb-dashboard .pb-event-card-actions {
  gap:6px;
  padding:8px 14px;
  background:#fbfcfe;
}
.pb-dashboard .pb-event-card-actions .pb-button,
.pb-dashboard .pb-event-share-panel .pb-button {
  min-height:30px;
  padding:6px 10px;
  border-radius:10px;
  font-size:.72rem;
}

.pb-dashboard .pb-empty-state {
  padding:24px 18px;
  border-radius:14px;
  box-shadow:0 6px 20px rgba(15,23,42,.04);
}
.pb-dashboard .pb-empty-state strong { font-size:.96rem; }
.pb-dashboard .pb-empty-state p { font-size:.8rem; }

.pb-dashboard .pb-create-card {
  margin-top:20px;
  padding:16px;
  border-top-width:3px;
  border-radius:14px;
}
.pb-dashboard .pb-create-intro { margin-bottom:14px; }
.pb-dashboard .pb-create-intro h2 {
  margin-bottom:4px;
  font-size:1.55rem !important;
  letter-spacing:-.025em;
}
.pb-dashboard .pb-create-intro .pb-muted { font-size:.8rem; }
.pb-dashboard .pb-create-step { margin-top:14px; }
.pb-dashboard .pb-create-step-head { gap:10px; }
.pb-dashboard .pb-create-step-head > span {
  flex-basis:26px;
  width:26px;
  height:26px;
  font-size:.73rem;
}
.pb-dashboard .pb-create-step-head h3 { font-size:.94rem; }
.pb-dashboard .pb-create-step-head p { font-size:.77rem; }
.pb-dashboard .pb-builder {
  margin:14px 0;
  padding:14px;
  border-radius:14px;
}

/* Interface organisateur : garder les formulaires confortables, mais moins massifs. */
.pb-dashboard .pb-form { gap:12px; }
.pb-dashboard .pb-form-grid,
.pb-dashboard .pb-account-grid,
.pb-dashboard .pb-position-manage-grid { gap:12px; }
.pb-dashboard .pb-form label,
.pb-dashboard .pb-inline-form label,
.pb-dashboard .pb-form-grid label,
.pb-dashboard .pb-day-row label,
.pb-dashboard .pb-position-row label,
.pb-dashboard .pb-capacity-form label { font-size:.81rem; }
.pb-dashboard .pb-field-help { font-size:.7rem; }
.pb-dashboard input[type=text],
.pb-dashboard input[type=email],
.pb-dashboard input[type=tel],
.pb-dashboard input[type=password],
.pb-dashboard input[type=number],
.pb-dashboard input[type=date],
.pb-dashboard input[type=time],
.pb-dashboard select,
.pb-dashboard textarea {
  min-height:40px;
  margin-top:5px;
  padding:8px 10px;
  border-radius:10px;
  font-size:.84rem;
}
.pb-dashboard textarea { min-height:78px; }

@media (min-width:640px) {
  .pb-dashboard-header { flex-direction:initial; }
  .pb-dashboard .pb-events-section-head { flex-direction:row; align-items:flex-end; }
}

@media (max-width:820px) {
  .pb-dashboard-header {
    grid-template-columns:1fr;
    gap:12px;
  }
  .pb-dashboard-nav {
    justify-content:flex-start;
    width:100%;
  }
}

@media (max-width:639px) {
  .pb-dashboard { padding-left:10px; padding-right:10px; }
  .pb-dashboard-header { padding:14px; margin-top:6px; }
  .pb-dashboard-header h2 { font-size:1.5rem !important; }
  .pb-dashboard-nav {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:4px;
  }
  .pb-dashboard-nav .pb-button { width:100%; }
  .pb-dashboard-nav form {
    grid-column:1/-1;
    text-align:center;
  }
  .pb-dashboard .pb-events-section-head { align-items:flex-start; }
  .pb-dashboard .pb-events-section-head h2 { font-size:1.7rem !important; }
  .pb-dashboard .pb-events-section-head > .pb-button { align-self:flex-start; }
  .pb-dashboard .pb-event-card-head { flex-direction:row; align-items:center; }
  .pb-dashboard .pb-event-card-body { padding:10px 12px; }
  .pb-dashboard .pb-event-card-actions { padding:8px 12px; }
}


/* Planning public — V6.5.0 : repères couleur doux et lisibles */
.pb-day-section {
  --pb-day-accent:#2563eb;
  --pb-day-soft:#eff6ff;
  --pb-day-rail:#f8fbff;
  border-top:3px solid var(--pb-day-accent);
}
.pb-day-tone-1 { --pb-day-accent:#2563eb; --pb-day-soft:#eff6ff; --pb-day-rail:#f7faff; }
.pb-day-tone-2 { --pb-day-accent:#059669; --pb-day-soft:#ecfdf5; --pb-day-rail:#f6fdfa; }
.pb-day-tone-3 { --pb-day-accent:#d97706; --pb-day-soft:#fffbeb; --pb-day-rail:#fffdf7; }
.pb-day-tone-4 { --pb-day-accent:#7c3aed; --pb-day-soft:#f5f3ff; --pb-day-rail:#faf9ff; }
.pb-day-tone-5 { --pb-day-accent:#db2777; --pb-day-soft:#fdf2f8; --pb-day-rail:#fff8fb; }
.pb-day-header {
  background:linear-gradient(90deg,var(--pb-day-soft) 0%,#fff 82%);
  border-bottom-color:color-mix(in srgb,var(--pb-day-accent) 18%,#e2e8f0);
}
.pb-day-title span { color:var(--pb-day-accent); }
.pb-day-summary {
  background:var(--pb-day-soft);
  color:var(--pb-day-accent);
  border:1px solid color-mix(in srgb,var(--pb-day-accent) 20%,transparent);
}
.pb-time-block:nth-child(even) { background:#fcfdff; }
.pb-day-section .pb-time-rail {
  background:var(--pb-day-rail);
  box-shadow:inset 3px 0 0 color-mix(in srgb,var(--pb-day-accent) 28%,transparent);
}
.pb-day-section .pb-time-rail strong { color:#172033; }

.pb-position-card {
  --pb-position-accent:#64748b;
  --pb-position-soft:#f8fafc;
  --pb-position-border:#dbe4ef;
  border-color:var(--pb-position-border);
  border-left:4px solid var(--pb-position-accent);
  background:linear-gradient(100deg,var(--pb-position-soft) 0%,#fff 34%);
}
.pb-position-tone-1 { --pb-position-accent:#2563eb; --pb-position-soft:#eff6ff; --pb-position-border:#bfdbfe; }
.pb-position-tone-2 { --pb-position-accent:#0d9488; --pb-position-soft:#f0fdfa; --pb-position-border:#99f6e4; }
.pb-position-tone-3 { --pb-position-accent:#ea580c; --pb-position-soft:#fff7ed; --pb-position-border:#fed7aa; }
.pb-position-tone-4 { --pb-position-accent:#7c3aed; --pb-position-soft:#f5f3ff; --pb-position-border:#ddd6fe; }
.pb-position-tone-5 { --pb-position-accent:#ca8a04; --pb-position-soft:#fefce8; --pb-position-border:#fde68a; }
.pb-position-tone-6 { --pb-position-accent:#db2777; --pb-position-soft:#fdf2f8; --pb-position-border:#fbcfe8; }
.pb-position-card.is-available:hover {
  border-color:var(--pb-position-accent);
  border-left-color:var(--pb-position-accent);
  box-shadow:0 8px 20px color-mix(in srgb,var(--pb-position-accent) 12%,transparent);
}
.pb-position-card .pb-position-name { position:relative; padding-left:12px; }
.pb-position-card .pb-position-name::before {
  content:"";
  position:absolute;
  left:0;
  top:.42em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--pb-position-accent);
}
.pb-position-card .pb-progress span { background:var(--pb-position-accent); }
.pb-position-card .pb-position-select {
  background:color-mix(in srgb,var(--pb-position-soft) 80%,#eef2ff);
  color:color-mix(in srgb,var(--pb-position-accent) 78%,#172554);
}
.pb-position-card.is-selected {
  border-color:#2563eb;
  border-left-color:#2563eb;
  background:linear-gradient(100deg,#dbeafe 0%,#f8fbff 38%);
  box-shadow:0 0 0 3px rgba(37,99,235,.13),0 8px 22px rgba(37,99,235,.08);
}
.pb-position-card.is-selected .pb-position-name::before { background:#2563eb; }
.pb-position-card.is-selected .pb-progress span { background:#2563eb; }
.pb-position-card.is-full {
  opacity:.88;
  background:linear-gradient(100deg,#fff1f2 0%,#fff 36%);
  border-color:#fecdd3;
  border-left-color:#ef4444;
}
.pb-position-card.is-full .pb-position-name::before { background:#ef4444; }
.pb-position-card.is-full .pb-progress span { background:#ef4444; }
.pb-position-card.is-full .pb-position-unavailable { background:#fff1f2; color:#9f1239; }

@supports not (color:color-mix(in srgb,#000 50%,#fff)) {
  .pb-day-header { border-bottom-color:#dbe4ef; }
  .pb-day-summary { border-color:#dbe4ef; }
  .pb-day-section .pb-time-rail { box-shadow:inset 3px 0 0 #dbeafe; }
  .pb-position-card.is-available:hover { box-shadow:0 8px 20px rgba(37,99,235,.08); }
  .pb-position-card .pb-position-select { background:#f1f5ff; color:#1e3a8a; }
}


/* Planning public — V6.5.1 : séparation nette entre couleur du poste et état de disponibilité */
.pb-legend-role-item { font-weight:700; color:#475569; }
.pb-legend-role {
  display:inline-block;
  width:18px;
  height:9px;
  border-radius:999px;
  background:linear-gradient(90deg,#2563eb 0 25%,#7c3aed 25% 50%,#0d9488 50% 75%,#db2777 75% 100%);
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.06);
}
.pb-legend-dot.is-open { background:#10b981; }
.pb-legend-dot.is-partial { background:#f59e0b; }
.pb-legend-dot.is-selected { background:#2563eb; }
.pb-legend-dot.is-full { background:#ef4444; }

/* Les liserés/fonds identifient le poste. Les badges, eux, sont toujours sémantiques. */
.pb-status-pill.is-open { background:#ecfdf5; color:#047857; }
.pb-status-pill.is-partial { background:#fff7ed; color:#c2410c; }
.pb-status-pill.is-selected { background:#dbeafe; color:#1d4ed8; }
.pb-status-pill.is-full { background:#fef2f2; color:#b91c1c; }

/* Un poste partiellement rempli garde sa couleur d'identité : seul le badge change. */
.pb-position-card.is-partial:not(.is-selected):not(.is-full) .pb-progress span {
  background:var(--pb-position-accent);
}
.pb-position-card.is-selected .pb-status-pill { background:#dbeafe; color:#1d4ed8; }
.pb-position-card.is-full .pb-status-pill { background:#fef2f2; color:#b91c1c; }
.pb-self-service-legend { margin-top:12px; padding-top:10px; border-top:1px solid #e8eef5; }

/* V6.5.1 — les couleurs de disponibilité ne remplacent jamais la couleur d'identité du poste. */
.pb-position-card.is-selected {
  border-left-color:var(--pb-position-accent);
  background:linear-gradient(100deg,var(--pb-position-soft) 0%,#f8fbff 42%);
}
.pb-position-card.is-selected .pb-position-name::before { background:var(--pb-position-accent); }
.pb-position-card.is-full {
  border-left-color:var(--pb-position-accent);
  background:linear-gradient(100deg,var(--pb-position-soft) 0%,#fff 42%);
}
.pb-position-card.is-full .pb-position-name::before { background:var(--pb-position-accent); }

/* La barre d'occupation devient un second repère sémantique de remplissage. */
.pb-position-card.is-open .pb-progress span { background:#10b981; }
.pb-position-card.is-partial .pb-progress span { background:#f59e0b; }
.pb-position-card.is-selected .pb-progress span { background:#2563eb; }
.pb-position-card.is-full .pb-progress span { background:#ef4444; }

/* V6.5.2 — créneaux passant minuit */
.pb-overnight-hint {
  display:inline-flex;
  align-items:center;
  gap:6px;
  align-self:center;
  padding:6px 10px;
  border-radius:999px;
  background:#eef2ff;
  color:#4338ca;
  font-size:.78rem;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
}
.pb-overnight-hint[hidden] { display:none !important; }
.pb-time-rail strong { white-space:nowrap; }


/* V6.5.3 — identité couleur par événement dans le tableau de bord */
.pb-dashboard .pb-event-card {
  --pb-event-accent:#2563eb;
  --pb-event-soft:#eff6ff;
  --pb-event-border:#bfdbfe;
  --pb-event-surface:#f8fbff;
  border-left:4px solid var(--pb-event-accent);
}
.pb-dashboard .pb-event-tone-1 { --pb-event-accent:#2563eb; --pb-event-soft:#eff6ff; --pb-event-border:#bfdbfe; --pb-event-surface:#f8fbff; }
.pb-dashboard .pb-event-tone-2 { --pb-event-accent:#0f766e; --pb-event-soft:#f0fdfa; --pb-event-border:#99f6e4; --pb-event-surface:#f7fffd; }
.pb-dashboard .pb-event-tone-3 { --pb-event-accent:#d97706; --pb-event-soft:#fffbeb; --pb-event-border:#fde68a; --pb-event-surface:#fffdf6; }
.pb-dashboard .pb-event-tone-4 { --pb-event-accent:#7c3aed; --pb-event-soft:#f5f3ff; --pb-event-border:#ddd6fe; --pb-event-surface:#fbfaff; }
.pb-dashboard .pb-event-tone-5 { --pb-event-accent:#e11d48; --pb-event-soft:#fff1f2; --pb-event-border:#fecdd3; --pb-event-surface:#fff9fa; }
.pb-dashboard .pb-event-tone-6 { --pb-event-accent:#0891b2; --pb-event-soft:#ecfeff; --pb-event-border:#a5f3fc; --pb-event-surface:#f7feff; }
.pb-dashboard .pb-event-tone-7 { --pb-event-accent:#15803d; --pb-event-soft:#f0fdf4; --pb-event-border:#bbf7d0; --pb-event-surface:#f8fff9; }
.pb-dashboard .pb-event-tone-8 { --pb-event-accent:#ea580c; --pb-event-soft:#fff7ed; --pb-event-border:#fed7aa; --pb-event-surface:#fffaf5; }
.pb-dashboard .pb-event-tone-9 { --pb-event-accent:#4338ca; --pb-event-soft:#eef2ff; --pb-event-border:#c7d2fe; --pb-event-surface:#f8f9ff; }
.pb-dashboard .pb-event-tone-10 { --pb-event-accent:#c026d3; --pb-event-soft:#fdf4ff; --pb-event-border:#f5d0fe; --pb-event-surface:#fff9ff; }

.pb-dashboard .pb-event-card-head {
  background:linear-gradient(90deg,var(--pb-event-soft) 0%,#fff 30%,#fff 100%);
}
.pb-dashboard .pb-event-icon {
  background:var(--pb-event-soft);
  color:var(--pb-event-accent);
  box-shadow:inset 0 0 0 1px var(--pb-event-border);
}
.pb-dashboard .pb-event-progress span {
  background:var(--pb-event-accent);
}
.pb-dashboard .pb-event-share-panel {
  border-color:var(--pb-event-border);
  background:var(--pb-event-surface);
}
.pb-dashboard .pb-event-code-row code {
  border-color:var(--pb-event-border);
}
.pb-dashboard .pb-event-card-actions {
  background:linear-gradient(90deg,var(--pb-event-surface) 0%,#fbfcfe 38%,#fbfcfe 100%);
}

/* Les couleurs d'état restent sémantiques et indépendantes de la couleur de l'événement. */
.pb-dashboard .pb-event-fill-badge.is-empty { background:#fff1f2; color:#be123c; }
.pb-dashboard .pb-event-fill-badge.is-progress { background:#fffbeb; color:#b45309; }
.pb-dashboard .pb-event-fill-badge.is-full { background:#ecfdf5; color:#15803d; }
.pb-dashboard .pb-event-statuses .is-empty { background:#fff1f2; color:#be123c; }
.pb-dashboard .pb-event-statuses .is-partial { background:#fffbeb; color:#b45309; }
.pb-dashboard .pb-event-statuses .is-full { background:#ecfdf5; color:#15803d; }


/* V6.5.4 — édition claire des jours et recalcul des créneaux */
#pb-event-days { scroll-margin-top:20px; }
.pb-event-days-section { margin-top:18px; }
.pb-recalc-explainer { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; margin:12px 0 16px; padding:12px 14px; border:1px solid #bfdbfe; border-radius:14px; background:#eff6ff; color:#334155; font-size:.86rem; }
.pb-recalc-explainer strong { color:#0f172a; margin-right:4px; }
.pb-recalc-explainer span { display:inline-flex; align-items:center; padding:6px 8px; border-radius:10px; background:#fff; border:1px solid #dbeafe; font-weight:700; color:#1e3a8a; }
.pb-recalc-explainer small { flex-basis:100%; color:#64748b; line-height:1.45; }
.pb-event-day-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.pb-event-day-card { padding:0; overflow:hidden; }
.pb-event-day-card-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding:16px 16px 12px; border-bottom:1px solid #e2e8f0; background:linear-gradient(135deg,#f8fbff 0%,#fff 72%); }
.pb-event-day-card-head h3 { margin:2px 0 3px; font-size:1.05rem; }
.pb-event-day-card-head p { margin:0; color:#64748b; font-size:.82rem; }
.pb-day-recalc-badge { flex:0 0 auto; display:inline-flex; align-items:center; padding:6px 8px; border-radius:999px; background:#dcfce7; color:#166534; font-size:.72rem; font-weight:800; }
.pb-event-day-form { padding:14px 16px 12px; }
.pb-event-day-fields { display:grid; grid-template-columns:1.05fr .8fr .8fr 1fr 1.35fr; gap:10px; align-items:start; }
.pb-event-day-fields label { margin:0; }
.pb-slot-recalc-preview { margin-top:12px; padding:10px 12px; border-radius:10px; background:#f8fafc; border:1px dashed #cbd5e1; }
.pb-slot-recalc-preview > span { display:block; margin-bottom:6px; color:#64748b; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.045em; }
.pb-slot-recalc-preview small { display:block; margin-top:7px; color:#64748b; line-height:1.4; }
.pb-slot-recalc-preview small.is-error { color:#b91c1c; font-weight:700; }
.pb-preview-count { display:block; margin-bottom:7px; font-size:.86rem; color:#0f172a; }
.pb-preview-slots { display:flex; flex-wrap:wrap; gap:6px; }
.pb-preview-slots span { display:inline-flex; padding:4px 8px; border:1px solid #bfdbfe; border-radius:999px; background:#fff; color:#1d4ed8; font-size:.76rem; font-weight:800; }
.pb-event-day-actions { display:flex; align-items:center; gap:10px; margin-top:12px; }
.pb-delete-day-form { padding:0 16px 14px; }
.pb-add-event-day-card { margin-top:14px; padding:16px; border-style:dashed; background:#fbfdff; }
.pb-add-event-day-card > div:first-child { margin-bottom:12px; }
.pb-add-event-day-card h3 { margin:2px 0 4px; }
@media (max-width:1050px) {
  .pb-event-day-grid { grid-template-columns:1fr; }
  .pb-event-day-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .pb-event-day-card-head { flex-direction:column; gap:8px; }
  .pb-event-day-fields { grid-template-columns:1fr; }
  .pb-recalc-explainer { align-items:stretch; }
  .pb-recalc-explainer span { width:100%; }
}


/* V6.5.7 — alignement des formulaires jours & horaires */
.pb-event-day-grid {
  grid-template-columns: 1fr;
}
.pb-event-day-card {
  width: 100%;
}
.pb-event-day-fields {
  grid-template-columns: minmax(150px,1.05fr) minmax(115px,.72fr) minmax(115px,.72fr) minmax(155px,.9fr) minmax(210px,1.18fr);
  gap: 14px;
  align-items: end;
}
.pb-event-day-fields label,
.pb-day-row label {
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-width:0;
}
.pb-event-day-fields input,
.pb-event-day-fields select,
.pb-day-row input,
.pb-day-row select {
  width:100%;
}
.pb-event-day-fields .pb-overnight-hint {
  margin-top:6px;
  align-self:flex-start;
}
.pb-slot-recalc-preview {
  margin-top:16px;
}
.pb-event-day-actions {
  margin-top:14px;
}
.pb-delete-day-form {
  padding-top:2px;
}

/* Création d'événement : même rythme visuel que l'écran de gestion. */
@media (min-width:900px) {
  .pb-day-row {
    grid-template-columns:minmax(170px,1.05fr) minmax(130px,.8fr) minmax(130px,.8fr) minmax(180px,1fr) minmax(220px,1.15fr);
    align-items:end;
    column-gap:14px;
  }
}

@media (max-width:1180px) {
  .pb-event-day-fields {
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:end;
  }
  .pb-event-day-fields label:last-child {
    grid-column:1/-1;
  }
}
@media (max-width:640px) {
  .pb-event-day-fields {
    grid-template-columns:1fr;
  }
  .pb-event-day-fields label:last-child {
    grid-column:auto;
  }
}


/* V6.5.9 — couleurs légères pour différencier les journées */
.pb-day-row,
.pb-event-day-card {
  --pb-tone-accent:#2563eb;
  --pb-tone-soft:#eff6ff;
  --pb-tone-border:#bfdbfe;
}
.pb-tone-day-1 { --pb-tone-accent:#2563eb; --pb-tone-soft:#eff6ff; --pb-tone-border:#bfdbfe; }
.pb-tone-day-2 { --pb-tone-accent:#059669; --pb-tone-soft:#ecfdf5; --pb-tone-border:#a7f3d0; }
.pb-tone-day-3 { --pb-tone-accent:#d97706; --pb-tone-soft:#fffbeb; --pb-tone-border:#fcd34d; }
.pb-tone-day-4 { --pb-tone-accent:#7c3aed; --pb-tone-soft:#f5f3ff; --pb-tone-border:#c4b5fd; }
.pb-tone-day-5 { --pb-tone-accent:#db2777; --pb-tone-soft:#fdf2f8; --pb-tone-border:#f9a8d4; }
.pb-tone-day-6 { --pb-tone-accent:#0891b2; --pb-tone-soft:#ecfeff; --pb-tone-border:#67e8f9; }

.pb-day-row {
  border-left:4px solid var(--pb-tone-accent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--pb-tone-soft) 68%,#fff) 0%,#fff 42%);
}
.pb-day-row .pb-field-help,
.pb-day-row .pb-overnight-hint {
  color:var(--pb-tone-accent);
}
.pb-day-row .pb-overnight-hint {
  background:color-mix(in srgb,var(--pb-tone-soft) 82%,#fff);
  border:1px solid color-mix(in srgb,var(--pb-tone-accent) 18%, transparent);
}
.pb-day-row::before {
  content:'Jour ' attr(data-day-index);
  position:absolute;
  top:10px;
  left:14px;
  display:inline-flex;
  align-items:center;
  padding:4px 8px;
  border-radius:999px;
  background:var(--pb-tone-soft);
  color:var(--pb-tone-accent);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.03em;
}
.pb-day-row > label,
.pb-day-row > button {
  margin-top:18px;
}

.pb-event-day-card {
  border-top:3px solid var(--pb-tone-accent);
}
.pb-event-day-card .pb-event-day-card-head {
  background:linear-gradient(135deg,var(--pb-tone-soft) 0%,#fff 72%);
  border-bottom-color:color-mix(in srgb,var(--pb-tone-accent) 18%,#e2e8f0);
}
.pb-event-day-card .pb-event-day-card-head .pb-kicker {
  color:var(--pb-tone-accent);
}
.pb-event-day-card .pb-day-recalc-badge {
  background:color-mix(in srgb,var(--pb-tone-soft) 72%,#fff);
  color:var(--pb-tone-accent);
  border:1px solid color-mix(in srgb,var(--pb-tone-accent) 16%, transparent);
}
.pb-event-day-card .pb-slot-recalc-preview {
  background:color-mix(in srgb,var(--pb-tone-soft) 48%,#fff);
  border-color:color-mix(in srgb,var(--pb-tone-accent) 18%, #cbd5e1);
}
.pb-event-day-card .pb-slot-recalc-preview > span,
.pb-event-day-card .pb-preview-slots span,
.pb-event-day-card .pb-overnight-hint {
  color:var(--pb-tone-accent);
}
.pb-event-day-card .pb-preview-slots span {
  border-color:color-mix(in srgb,var(--pb-tone-accent) 24%, #bfdbfe);
  background:#fff;
}
.pb-event-day-card .pb-overnight-hint {
  background:color-mix(in srgb,var(--pb-tone-soft) 82%,#fff);
  border:1px solid color-mix(in srgb,var(--pb-tone-accent) 18%, transparent);
}

@media (max-width:640px) {
  .pb-day-row::before {
    position:static;
    margin-bottom:2px;
  }
  .pb-day-row > label,
  .pb-day-row > button {
    margin-top:0;
  }
}


/* V6.5.10 — alignement du badge "Fin le lendemain" */
.pb-event-day-fields label,
.pb-day-row label {
  position:relative;
}

.pb-event-day-fields label,
.pb-day-row label {
  padding-bottom:34px;
}

.pb-event-day-fields .pb-overnight-hint,
.pb-day-row .pb-overnight-hint {
  position:absolute;
  left:0;
  bottom:0;
  margin-top:0;
}

@media (max-width:640px) {
  .pb-event-day-fields label,
  .pb-day-row label {
    padding-bottom:30px;
  }
}

/* V6.7.0 — liste d'attente */
.pb-waitlist-count {
  display:block;
  margin-top:6px;
  color:#92400e;
  font-size:.74rem;
  font-weight:800;
}
.pb-waitlist-select {
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:8px;
  padding:8px 10px;
  border:1px solid #fde68a;
  border-radius:10px;
  background:#fffbeb;
  color:#92400e;
  font-size:.8rem;
  line-height:1.2;
  font-weight:800;
  cursor:pointer;
}
.pb-waitlist-select input[type=checkbox] {
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.pb-position-card.is-waitlist-selected {
  border-color:#f59e0b;
  background:#fffbeb;
  box-shadow:0 0 0 3px rgba(245,158,11,.12);
}
.pb-position-card.is-waitlist-selected .pb-waitlist-select {
  border-color:#f59e0b;
  background:#fef3c7;
  color:#92400e;
}
.pb-position-card.is-waitlist-selected .pb-checkmark {
  border-color:#d97706;
  background:#d97706;
}
.pb-position-card.is-waitlist-selected .pb-checkmark::after {
  content:"";
  position:absolute;
  left:4px;
  top:0;
  width:5px;
  height:10px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.pb-waitlist-active-offer {
  margin-top:8px;
  padding:8px 10px;
  border:1px solid #bfdbfe;
  border-radius:10px;
  background:#eff6ff;
  color:#1d4ed8;
  font-size:.77rem;
  font-weight:750;
}
.pb-waitlist-offer-card {
  max-width:680px;
  margin:24px auto;
  padding:22px;
  border:1px solid var(--pb-border);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 32px rgba(15,23,42,.08);
}
.pb-waitlist-offer-slot {
  margin:18px 0;
  padding:14px 16px;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
}
.pb-waitlist-offer-slot strong { display:block; margin-bottom:4px; }
.pb-waitlist-offer-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.pb-waitlist-offer-actions form { margin:0; }
.pb-admin-waitlist {
  margin-top:14px;
  padding:12px;
  border:1px solid #fde68a;
  border-radius:12px;
  background:#fffbeb;
}
.pb-admin-waitlist-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
  color:#78350f;
}
.pb-waitlist-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:9px 0;
  border-top:1px solid #fde68a;
}
.pb-waitlist-row:first-of-type { border-top:0; }
.pb-waitlist-row small,
.pb-waitlist-row em { color:#78716c; }
.pb-overview-stat-waitlist { border-color:#fde68a; background:#fffbeb; }

@media (max-width:640px) {
  .pb-waitlist-offer-actions { display:grid; }
  .pb-waitlist-offer-actions form,
  .pb-waitlist-offer-actions button { width:100%; }
  .pb-waitlist-row { grid-template-columns:1fr; }
}

/* Échange / cession de créneau entre bénévoles */
.pb-exchange-section {
  margin-top:28px;
}
.pb-exchange-owner-list {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:14px;
}
.pb-exchange-owner-card {
  display:flex;
  flex-direction:column;
  gap:12px;
  border-color:#bfdbfe;
  background:#f8fbff;
}
.pb-exchange-owner-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.pb-exchange-owner-head strong,
.pb-exchange-owner-head span {
  display:block;
}
.pb-exchange-owner-head span {
  margin-top:4px;
  color:#64748b;
  font-size:.82rem;
}
.pb-exchange-badge {
  flex:0 0 auto;
  margin:0 !important;
  padding:5px 9px;
  border-radius:999px;
  background:#dbeafe;
  color:#1d4ed8 !important;
  font-size:.72rem !important;
  font-weight:800;
}
.pb-exchange-share-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:8px;
  align-items:center;
}
.pb-exchange-share-row input {
  width:100%;
  min-width:0;
}
.pb-exchange-waitlist-priority {
  padding:12px 14px;
  border:1px solid #fde68a;
  border-radius:12px;
  background:#fffbeb;
  color:#78350f;
}
.pb-exchange-waitlist-priority p {
  margin:5px 0 0;
  line-height:1.5;
}
.pb-exchange-claim-card {
  max-width:720px;
  margin:24px auto;
  padding:24px;
  border:1px solid #bfdbfe;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 32px rgba(15,23,42,.08);
}
.pb-exchange-slot {
  margin:18px 0;
  padding:15px 17px;
  border:1px solid #bfdbfe;
  border-radius:14px;
  background:#eff6ff;
}
.pb-exchange-slot strong,
.pb-exchange-slot span {
  display:block;
}
.pb-exchange-slot span {
  margin-top:5px;
  color:#516579;
}
.pb-exchange-note {
  margin-top:14px;
}
.pb-admin-exchange {
  margin-top:14px;
  padding:12px;
  border:1px solid #bfdbfe;
  border-radius:12px;
  background:#eff6ff;
}
.pb-admin-exchange-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
  color:#1e3a8a;
}
.pb-exchange-row {
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:9px 0;
  border-top:1px solid #bfdbfe;
}
.pb-exchange-row:first-of-type { border-top:0; }
.pb-exchange-row small,
.pb-exchange-row em { color:#64748b; }
.pb-overview-stat-exchange {
  border-color:#bfdbfe;
  background:#eff6ff;
}

@media (max-width:640px) {
  .pb-exchange-owner-list { grid-template-columns:1fr; }
  .pb-exchange-share-row { grid-template-columns:1fr; }
  .pb-exchange-share-row .pb-button { width:100%; }
}


/* PYT 7.0 — Billetterie / réservations visiteurs */
.pb-ticketing-public,.pb-ticketing-admin,.pb-ticket-order{margin-top:28px}
.pb-ticket-products{display:grid;gap:12px;margin:18px 0}
.pb-ticket-product{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px;border:1px solid rgba(100,116,139,.22);border-radius:16px;background:rgba(255,255,255,.7)}
.pb-ticket-product>div:first-child{display:flex;flex-direction:column;gap:4px}.pb-ticket-product strong{font-size:1rem}.pb-ticket-product small{opacity:.72}.pb-ticket-type{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#2563eb}.pb-ticket-stock{font-weight:700}.pb-ticket-product.is-soldout{opacity:.58}
.pb-ticket-buy{display:flex;align-items:center;gap:14px;white-space:nowrap}.pb-ticket-buy>strong{font-size:1.1rem}.pb-ticket-buy label{display:flex;align-items:center;gap:7px}.pb-ticket-buy input{width:68px!important;text-align:center}
.pb-ticket-total{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:14px;background:rgba(37,99,235,.08);margin:14px 0 18px}.pb-ticket-total strong{font-size:1.25rem}
.pb-ticket-code{display:inline-flex;flex-direction:column;padding:12px 16px;border-radius:14px;background:#0f172a;color:#fff;margin:8px 0 18px}.pb-ticket-code span{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;opacity:.7}.pb-ticket-code strong{font-size:1.05rem;letter-spacing:.05em}
.pb-ticket-order-lines{display:grid;gap:8px;margin:16px 0}.pb-ticket-order-lines>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid rgba(100,116,139,.18)}
.pb-ticket-enable{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:14px;background:rgba(16,185,129,.08);margin:14px 0 22px}.pb-ticket-enable label{font-weight:700}
.pb-ticket-admin-products{display:grid;gap:14px}.pb-ticket-admin-product{padding:16px;border:1px solid rgba(100,116,139,.2);border-radius:16px}.pb-ticket-admin-product .pb-inline-actions{display:flex;align-items:center;gap:16px;margin-top:12px}.pb-ticket-add{margin:18px 0;padding:14px;border:1px dashed rgba(100,116,139,.35);border-radius:14px}.pb-ticket-add summary{cursor:pointer;font-weight:800}.pb-ticket-add form{margin-top:16px}
.pb-ticket-orders-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:28px}.pb-ticket-orders{display:grid;gap:10px}.pb-ticket-order-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:14px;border:1px solid rgba(100,116,139,.18);border-radius:14px}.pb-ticket-order-row>div{display:flex;flex-direction:column;gap:3px}.pb-ticket-order-row span,.pb-ticket-order-row small{opacity:.72}.pb-ticket-order-row select{min-width:125px}
@media(max-width:760px){.pb-ticket-product{align-items:flex-start;flex-direction:column}.pb-ticket-buy{width:100%;justify-content:space-between}.pb-ticket-enable{align-items:flex-start;flex-direction:column}.pb-ticket-order-row{grid-template-columns:1fr}.pb-ticket-orders-head{align-items:flex-start;flex-direction:column}}


/* ==========================================================================
   PYT 7.1 - Deux espaces fonctionnels strictement séparés
   ========================================================================== */
.pb-space-gateway { margin: 28px 0 42px; }
.pb-space-gateway-head { text-align: center; max-width: 760px; margin: 0 auto 22px; }
.pb-space-gateway-head h3 { margin: 7px 0 8px; font-size: clamp(1.55rem, 2.5vw, 2.15rem); }
.pb-space-gateway-head p { margin: 0; color: var(--pb-muted, #64748b); }
.pb-space-gateway-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.pb-space-card { display: flex; flex-direction: column; gap: 16px; min-height: 285px; padding: 28px; position: relative; overflow: hidden; }
.pb-space-card > div { flex: 1; }
.pb-space-card h3 { margin: 5px 0 8px; font-size: 1.55rem; }
.pb-space-card p { margin: 0; color: var(--pb-muted, #64748b); line-height: 1.6; }
.pb-space-card .pb-button { align-self: flex-start; }
.pb-space-icon { width: 54px; height: 54px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.55rem; font-weight: 900; }
.pb-space-card-volunteers { border-top: 5px solid #2563eb; }
.pb-space-card-volunteers .pb-space-icon { background: #eff6ff; color: #1d4ed8; }
.pb-space-card-booking { border-top: 5px solid #7c3aed; }
.pb-space-card-booking .pb-space-icon { background: #f5f3ff; color: #6d28d9; }
.pb-public-space-nav { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:14px 0 24px; padding:12px 16px; border:1px solid #e2e8f0; border-radius:14px; background:#fff; }
.pb-public-space-nav a { text-decoration:none; font-weight:700; }
.pb-public-space-nav strong { color:#475569; font-size:.92rem; }
.pb-booking-hero { border-left: 5px solid #7c3aed; }
.pb-booking-share { min-width: 190px; }

.pb-space-switcher { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:16px 0 22px; }
.pb-space-switcher-item { display:flex; flex-direction:column; gap:4px; text-decoration:none !important; padding:18px 20px; border:1px solid #dbe3ee; border-radius:16px; background:#fff; color:#0f172a !important; transition:.18s ease; }
.pb-space-switcher-item:hover { transform:translateY(-1px); border-color:#94a3b8; box-shadow:0 8px 24px rgba(15,23,42,.06); }
.pb-space-switcher-item span { text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; font-weight:800; color:#64748b; }
.pb-space-switcher-item strong { font-size:1.06rem; }
.pb-space-switcher-item small { color:#64748b; line-height:1.4; }
.pb-space-switcher-item.is-active:first-child { border-color:#2563eb; box-shadow:0 0 0 2px rgba(37,99,235,.08); background:#f8fbff; }
.pb-space-switcher-item.is-active:last-child { border-color:#7c3aed; box-shadow:0 0 0 2px rgba(124,58,237,.08); background:#fbfaff; }
.pb-manage-hero-volunteers { border-left:5px solid #2563eb; }
.pb-manage-hero-booking { border-left:5px solid #7c3aed; }
.pb-booking-share-panel { border-top:3px solid #ede9fe; }
.pb-ticketing-admin { border-top:4px solid #7c3aed; }

.pb-event-space-label { display:flex; flex-direction:column; gap:2px; margin:18px 0 8px; padding-top:16px; border-top:1px solid #e2e8f0; }
.pb-event-space-label span { text-transform:uppercase; letter-spacing:.08em; font-size:.7rem; font-weight:800; color:#2563eb; }
.pb-event-space-label strong { font-size:1rem; }
.pb-event-space-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:16px 0 0; margin-top:14px; border-top:1px solid #e2e8f0; }
.pb-event-space-action { display:flex; flex-direction:column; justify-content:space-between; gap:14px; border:1px solid #e2e8f0; border-radius:14px; padding:14px; background:#fff; }
.pb-event-space-action > div:first-child { display:flex; flex-direction:column; gap:3px; }
.pb-event-space-action span { text-transform:uppercase; letter-spacing:.07em; font-size:.68rem; font-weight:800; }
.pb-event-space-action-volunteers span { color:#2563eb; }
.pb-event-space-action-booking span { color:#7c3aed; }
.pb-event-space-action small { color:#64748b; }
.pb-event-space-action-buttons { display:flex; flex-wrap:wrap; gap:8px; }

@media (max-width: 760px) {
  .pb-space-gateway-grid, .pb-space-switcher, .pb-event-space-actions { grid-template-columns:1fr; }
  .pb-public-space-nav { align-items:flex-start; flex-direction:column; }
  .pb-space-card { min-height:0; }
}
