body.sspq-fullscreen-page{margin:0;background:var(--sspq-bg);overflow-x:hidden}body.sspq-fullscreen-page #wpadminbar{position:fixed}.sspq-fullscreen-page .sspq-platform{width:100%;max-width:none;margin:0}.sspq-fullscreen-page .sspq-main{width:calc(100% - 260px)}@media(max-width:860px){.sspq-fullscreen-page .sspq-main{width:100%}}
:root{--sspq-navy:#0b1f3a;--sspq-gold:#c9a227;--sspq-bg:#f4f6f8;--sspq-card:#fff;--sspq-border:#d9dee7;--sspq-text:#172033;--sspq-muted:#687386;--sspq-danger:#b42318;--sspq-radius:14px;--sspq-shadow:0 10px 30px rgba(11,31,58,.08)}
body{background:var(--sspq-bg)}
.sspq-platform{display:flex;min-height:100vh;background:var(--sspq-bg);color:var(--sspq-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.sspq-sidebar{width:260px;background:var(--sspq-navy);color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh;box-sizing:border-box}.sspq-brand{font-weight:800;font-size:24px;letter-spacing:.08em;margin-bottom:28px;color:var(--sspq-gold)}
.sspq-nav{display:flex;flex-direction:column;gap:6px}.sspq-nav a{color:#fff;text-decoration:none;padding:12px 14px;border-radius:10px;font-weight:600}.sspq-nav a:hover,.sspq-nav a.is-active{background:var(--sspq-gold);color:var(--sspq-navy)}
.sspq-main{flex:1;min-width:0}.sspq-topbar{background:#fff;border-bottom:1px solid var(--sspq-border);padding:18px 28px;display:flex;justify-content:space-between;gap:16px;align-items:center}.sspq-topbar h1{margin:0;font-size:26px}.sspq-topbar p{margin:4px 0 0;color:var(--sspq-muted)}.sspq-user{font-weight:700;color:var(--sspq-navy)}
.sspq-content{padding:28px}.sspq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-bottom:22px}.sspq-card,.sspq-panel{background:var(--sspq-card);border:1px solid var(--sspq-border);border-radius:var(--sspq-radius);box-shadow:var(--sspq-shadow)}.sspq-card{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--sspq-text);padding:22px}.sspq-card strong{font-size:20px}.sspq-card span{color:var(--sspq-muted)}.sspq-card:hover{border-color:var(--sspq-gold);transform:translateY(-1px)}
.sspq-panel{padding:22px;margin-bottom:22px}.sspq-panel h2{margin:0 0 14px;font-size:21px}.sspq-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.sspq-muted{color:var(--sspq-muted)}.sspq-status{background:#f8fafc;border:1px dashed var(--sspq-border);border-radius:10px;padding:14px;color:var(--sspq-muted)}
.sspq-table{width:100%;border-collapse:collapse;background:#fff}.sspq-table th,.sspq-table td{border-bottom:1px solid var(--sspq-border);padding:10px 12px;text-align:left;vertical-align:top}.sspq-table th{color:var(--sspq-navy);font-weight:800;background:#f8fafc}.sspq-table code{background:#eef2f7;border-radius:6px;padding:3px 6px}.sspq-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:18px}.sspq-form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700}.sspq-form-grid input{border:1px solid var(--sspq-border);border-radius:10px;padding:10px 12px;min-height:42px}.sspq-btn{background:var(--sspq-navy);color:#fff;border:none;border-radius:10px;padding:11px 16px;font-weight:800;cursor:pointer}.sspq-btn:hover{background:var(--sspq-gold);color:var(--sspq-navy)}.sspq-btn:disabled{opacity:.55;cursor:not-allowed}.sspq-error{margin:22px;padding:16px;border-left:4px solid var(--sspq-danger);background:#fff;border-radius:10px}
.sspq-login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#071529,#0b1f3a)}.sspq-login-card{background:#fff;border-radius:18px;box-shadow:var(--sspq-shadow);padding:32px;max-width:430px;width:calc(100% - 32px)}.sspq-login-logo{max-width:230px;display:block;margin:0 auto 20px}.sspq-login-card h1{text-align:center;color:var(--sspq-navy)}.sspq-login-card input[type=text],.sspq-login-card input[type=password]{width:100%;box-sizing:border-box;border:1px solid var(--sspq-border);border-radius:10px;padding:10px}.sspq-login-card .button-primary{background:var(--sspq-navy);border-color:var(--sspq-navy);width:100%;min-height:42px}
.sspq-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;max-width:1200px}.sspq-admin-card{background:#fff;border:1px solid #dcdcde;border-radius:12px;padding:18px}
@media(max-width:860px){.sspq-platform{display:block}.sspq-sidebar{position:relative;width:100%;height:auto}.sspq-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.sspq-topbar{display:block;padding:18px}.sspq-content{padding:16px}.sspq-table{display:block;overflow-x:auto}.sspq-panel-head{display:block}}
.sspq-settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.sspq-tab{border:1px solid var(--sspq-border);background:#fff;color:var(--sspq-navy);border-radius:999px;padding:10px 16px;font-weight:800;cursor:pointer}.sspq-tab.is-active{background:var(--sspq-navy);color:#fff;border-color:var(--sspq-navy)}.sspq-tab-panel{display:none}.sspq-tab-panel.is-active{display:block}.sspq-badge{display:inline-flex;align-items:center;border:1px solid var(--sspq-border);background:#f8fafc;color:var(--sspq-muted);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;text-transform:uppercase}.sspq-field{display:flex;flex-direction:column;gap:7px;font-weight:800}.sspq-field input[type=text],.sspq-field input[type=number],.sspq-field input[type=email],.sspq-field input[type=color]{border:1px solid var(--sspq-border);border-radius:10px;padding:10px 12px;min-height:42px;background:#fff}.sspq-field input[type=color]{padding:4px}.sspq-inline{display:flex;align-items:center;gap:10px;min-height:42px}.sspq-inline em{font-style:normal;color:var(--sspq-muted);font-weight:700}.sspq-switch input,.sspq-check input{position:absolute;opacity:0;pointer-events:none}.sspq-switch span{display:inline-block;width:46px;height:26px;background:#cbd5e1;border-radius:999px;position:relative;vertical-align:middle;transition:.18s}.sspq-switch span:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.18s;box-shadow:0 1px 4px rgba(0,0,0,.2)}.sspq-switch input:checked+span{background:var(--sspq-navy)}.sspq-switch input:checked+span:before{transform:translateX(20px)}.sspq-switch input:disabled+span{opacity:.55}.sspq-check span{display:inline-grid;place-items:center;width:24px;height:24px;border:2px solid var(--sspq-border);border-radius:7px;background:#fff}.sspq-check input:checked+span{background:var(--sspq-navy);border-color:var(--sspq-navy)}.sspq-check input:checked+span:after{content:"✓";color:#fff;font-weight:900}.sspq-check input:disabled+span{opacity:.55}.sspq-permission-matrix th:not(:first-child),.sspq-permission-matrix td:not(:first-child){text-align:center}.sspq-save-bar{position:sticky;bottom:0;background:rgba(244,246,248,.92);border:1px solid var(--sspq-border);backdrop-filter:blur(8px);border-radius:var(--sspq-radius);padding:14px;margin-top:18px;text-align:right}.sspq-notice{padding:14px 16px;border-radius:12px;margin-bottom:18px;border:1px solid var(--sspq-border);font-weight:800}.sspq-notice-success{background:#ecfdf3;color:#05603a;border-color:#abefc6}.sspq-notice-danger{background:#fef3f2;color:#b42318;border-color:#fecdca}
.sspq-audit-toolbar{background:#f8fafc;border:1px solid var(--sspq-border);border-radius:12px;padding:14px;margin:14px 0 18px}.sspq-audit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.sspq-audit-grid label{display:flex;flex-direction:column;gap:6px;font-weight:800}.sspq-audit-grid input,.sspq-audit-grid select{border:1px solid var(--sspq-border);border-radius:10px;padding:9px 10px;background:#fff;min-height:40px}.sspq-audit-actions{margin-top:12px}.sspq-audit-actions form{display:flex;gap:8px;flex-wrap:wrap}.sspq-btn-secondary{background:#fff;color:var(--sspq-navy);border:1px solid var(--sspq-border);text-decoration:none;display:inline-flex;align-items:center}.sspq-audit-summary{margin:10px 0 12px;color:var(--sspq-navy);font-weight:700}.sspq-audit-table td code{white-space:normal;word-break:break-word}.sspq-audit-table th:nth-child(8),.sspq-audit-table td:nth-child(8){max-width:360px}

/* SSPQ 1.0.3 - audit final */
.sspq-severity{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800;letter-spacing:.04em}
.sspq-severity-info{background:#e8f1ff;color:#174ea6}
.sspq-severity-warning{background:#fff3cd;color:#7a5300}
.sspq-severity-critical{background:#fde2e2;color:#8a1c1c}
.sspq-pagination{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.sspq-audit-summary{margin:12px 0;padding:10px 12px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px}
@media print{.sspq-sidebar,.sspq-topbar,.sspq-settings-tabs,.sspq-save-bar,.sspq-audit-toolbar,.sspq-pagination{display:none!important}.sspq-main{margin:0}.sspq-content{padding:0}.sspq-panel{box-shadow:none;border:0}}

/* SSPQ 2.0.0 - module Employés */
.sspq-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.sspq-toolbar label{display:flex;flex-direction:column;gap:6px;font-weight:800}.sspq-toolbar input,.sspq-toolbar select,.sspq-field select,.sspq-field textarea{border:1px solid var(--sspq-border);border-radius:10px;padding:10px 12px;background:#fff;min-height:42px}.sspq-field-wide{grid-column:1/-1}.sspq-employee-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.sspq-employee-summary div{background:#f8fafc;border:1px solid var(--sspq-border);border-radius:12px;padding:12px}.sspq-employee-summary strong{display:block;color:var(--sspq-navy);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.sspq-employee-summary span{display:block;margin-top:4px;font-weight:700}.sspq-details{margin-top:16px;border:1px solid var(--sspq-border);border-radius:12px;background:#fff;padding:12px}.sspq-details summary{cursor:pointer;font-weight:900;color:var(--sspq-navy)}.sspq-details form{margin-top:12px}.sspq-employees .sspq-btn{white-space:nowrap}
@media(max-width:860px){.sspq-toolbar{display:block}.sspq-toolbar label,.sspq-toolbar button{margin-bottom:10px;width:100%}.sspq-toolbar input,.sspq-toolbar select{width:100%;box-sizing:border-box}.sspq-employees .sspq-btn{display:inline-flex;margin-top:6px}}

/* SSPQ 2.0.3 - gestion structurée positions / succursales / primes */
.sspq-structured-manager{background:#f8fafc;border:1px solid var(--sspq-border);border-radius:14px;padding:14px;margin-bottom:10px}
.sspq-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.sspq-manager-title{display:block;font-weight:900;color:var(--sspq-navy);font-size:16px}
.sspq-manager-head small{display:block;color:var(--sspq-muted);margin-top:3px;font-weight:600}
.sspq-manager-storage{display:none!important}
.sspq-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--sspq-border);border-radius:12px;background:#fff}
.sspq-table-wrap .sspq-table{margin:0;border:0}
.sspq-modal[hidden]{display:none!important}
.sspq-modal{position:fixed;z-index:99999;inset:0;background:rgba(11,31,58,.55);display:grid;place-items:center;padding:18px}
.sspq-modal-card{background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.28);max-width:880px;width:min(880px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:20px}
.sspq-modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;border-bottom:1px solid var(--sspq-border);padding-bottom:12px}
.sspq-modal-head h3{margin:0;color:var(--sspq-navy);font-size:22px}
.sspq-modal-close{border:0;background:#eef2f7;color:var(--sspq-navy);font-size:28px;line-height:1;width:40px;height:40px;border-radius:999px;cursor:pointer;font-weight:800}
.sspq-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--sspq-border)}
@media(max-width:860px){.sspq-manager-head{display:block}.sspq-manager-head .sspq-btn{margin-top:10px;width:100%}.sspq-modal-card{padding:16px}.sspq-modal-actions{display:block}.sspq-modal-actions .sspq-btn{width:100%;justify-content:center;margin-top:8px}}

/* SSPQ 2.0.4 - paramètres structurés avancés */
.sspq-btn{background:var(--sspq-navy);color:#fff;border:1px solid var(--sspq-navy);transition:background .18s,color .18s,border-color .18s,transform .12s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.sspq-btn:hover{background:var(--sspq-gold);border-color:var(--sspq-gold);color:var(--sspq-navy);transform:translateY(-1px)}
.sspq-btn-secondary{background:#f8fafc;color:var(--sspq-navy);border:1px solid var(--sspq-border)}
.sspq-btn-secondary:hover{background:var(--sspq-gold);border-color:var(--sspq-gold);color:var(--sspq-navy)}
.sspq-btn-danger{background:var(--sspq-danger);border-color:var(--sspq-danger);color:#fff}
.sspq-btn-danger:hover{background:#7a130d;border-color:#7a130d;color:#fff}
.sspq-row-actions{display:flex;gap:8px;flex-wrap:wrap;min-width:190px}
.sspq-manager-table td,.sspq-manager-table th{white-space:nowrap}
.sspq-modal-card{max-width:1040px;width:min(1040px,100%)}
.sspq-field textarea{border:1px solid var(--sspq-border);border-radius:10px;padding:10px 12px;background:#fff;min-height:82px;resize:vertical}
@media(max-width:860px){.sspq-row-actions{display:block}.sspq-row-actions .sspq-btn{width:100%;margin:4px 0}.sspq-manager-table td,.sspq-manager-table th{white-space:normal}}

/* SSPQ 2.0.5 - apparence, boutons officiels, Nethris lié et migration */
.sspq-platform .sspq-btn,
.sspq-admin-wrap .button,
.sspq-admin-wrap .button-primary,
.sspq-platform .button,
.sspq-platform .button-primary{
  background:var(--sspq-navy)!important;
  border-color:var(--sspq-navy)!important;
  color:#fff!important;
  border-radius:10px;
  font-weight:800;
  transition:background .18s,color .18s,border-color .18s,transform .12s;
}
.sspq-platform .sspq-btn:hover,
.sspq-admin-wrap .button:hover,
.sspq-admin-wrap .button-primary:hover,
.sspq-platform .button:hover,
.sspq-platform .button-primary:hover{
  background:var(--sspq-gold)!important;
  border-color:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
}
.sspq-platform .sspq-btn-danger{
  background:var(--sspq-danger)!important;
  border-color:var(--sspq-danger)!important;
  color:#fff!important;
}
.sspq-platform .sspq-btn-danger:hover{
  background:#7a130d!important;
  border-color:#7a130d!important;
  color:#fff!important;
}
.sspq-image-field{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sspq-image-field input{flex:1;min-width:260px}
.sspq-image-preview{display:block;max-width:260px;max-height:110px;object-fit:contain;border:1px solid var(--sspq-border);border-radius:12px;background:#fff;padding:8px;margin-top:8px}
.sspq-nethris-storage{display:none!important}
.sspq-nethris-mapper small{display:block;margin-top:8px;color:var(--sspq-muted);font-weight:700}
.sspq-nethris-mapper input,.sspq-nethris-mapper select{width:100%;border:1px solid var(--sspq-border);border-radius:10px;padding:9px 10px;background:#fff;min-height:40px}
.sspq-migration-box{background:#f8fafc;border:1px solid var(--sspq-border);border-radius:12px;padding:14px;margin-top:10px}
.sspq-migration-box p{margin:6px 0 10px;color:var(--sspq-muted);font-weight:600}
.sspq-migration-box small{display:block;margin-top:8px;color:var(--sspq-muted)}

/* SSPQ 2.0.6 - correction globale boutons / modales / admissibilité */
:root{--sspq-navy:#0b1f3a;--sspq-gold:#c9a227;}
.sspq-platform button:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-platform input[type=submit],
.sspq-platform input[type=button],
.sspq-platform .sspq-btn:not(.sspq-btn-danger),
.sspq-platform .button:not(.sspq-btn-danger),
.sspq-admin-wrap button:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-admin-wrap .button:not(.sspq-btn-danger),
.sspq-admin-wrap .button-primary:not(.sspq-btn-danger){
  background:var(--sspq-navy)!important;
  border-color:var(--sspq-navy)!important;
  color:#fff!important;
  border-radius:10px!important;
  font-weight:800!important;
  text-decoration:none!important;
}
.sspq-platform button:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-platform input[type=submit]:hover,
.sspq-platform input[type=button]:hover,
.sspq-platform .sspq-btn:not(.sspq-btn-danger):hover,
.sspq-platform .button:not(.sspq-btn-danger):hover,
.sspq-admin-wrap button:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-admin-wrap .button:not(.sspq-btn-danger):hover,
.sspq-admin-wrap .button-primary:not(.sspq-btn-danger):hover{
  background:var(--sspq-gold)!important;
  border-color:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
}
.sspq-platform .sspq-btn-danger,
.sspq-platform button.sspq-btn-danger{
  background:var(--sspq-danger)!important;
  border-color:var(--sspq-danger)!important;
  color:#fff!important;
}
.sspq-platform .sspq-btn-danger:hover,
.sspq-platform button.sspq-btn-danger:hover{
  background:#7a130d!important;
  border-color:#7a130d!important;
  color:#fff!important;
}
.sspq-modal-close{background:#eef2f7!important;color:var(--sspq-navy)!important;border:0!important}
.sspq-multi-source{border:1px solid var(--sspq-border);background:#fff;border-radius:12px;padding:10px;max-height:210px;overflow:auto}
.sspq-multi-choice{display:flex!important;gap:8px;align-items:center;padding:6px 4px;font-weight:700!important;color:var(--sspq-text)}
.sspq-multi-choice input{width:auto!important;min-height:auto!important}
.sspq-migration-result{margin-top:12px}
.sspq-migration-result .sspq-table{margin-top:8px}

/* SSPQ 2.0.8 - import contrôlé par section */
.sspq-manager-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.sspq-section-import-result{margin:14px 0;padding:14px;border:1px solid var(--sspq-border);border-radius:14px;background:#f8fafc}
.sspq-section-import-result>strong{display:block;margin-bottom:6px;color:var(--sspq-navy);font-size:15px}
.sspq-section-import-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.sspq-badge-warning{background:#fff7e6!important;color:#6f4e00!important;border:1px solid #f1c76b!important}
@media(max-width:760px){.sspq-manager-actions{justify-content:flex-start}.sspq-section-import-actions .sspq-btn{width:100%;justify-content:center}}

/* SSPQ 2.0.10 - corrections Apparence / Entreprise / Organisation / Paie */
.sspq-field-compact-textarea textarea{min-height:66px!important;max-height:96px;resize:vertical}
.sspq-sidebar-logo{display:block;max-width:190px;max-height:64px;object-fit:contain;margin:0 auto 24px}
.sspq-brand:has(.sspq-sidebar-logo){margin-bottom:12px}

/* SSPQ 2.0.12 - positions hiérarchiques et modales SSPQ */
.sspq-modal-close,
.sspq-platform .sspq-modal-close{
  background:var(--sspq-navy)!important;
  color:#fff!important;
  border:1px solid var(--sspq-navy)!important;
  border-radius:999px!important;
}
.sspq-modal-close:hover,
.sspq-platform .sspq-modal-close:hover{
  background:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
  border-color:var(--sspq-gold)!important;
}
.sspq-inline-check{display:flex!important;align-items:center;gap:8px;font-weight:800!important;white-space:nowrap}

/* SSPQ 2.0.14 - configuration des champs de rapport séparée */
.sspq-report-fields-context{background:#f8fafc;border:1px solid var(--sspq-border);border-radius:12px;padding:10px 12px;margin-bottom:14px;color:var(--sspq-navy);font-weight:800}
.sspq-modal-card-large{max-width:1100px!important;width:min(1100px,100%)!important}

/* SSPQ 2.0.15 - aperçu mobile des champs de rapport */
.sspq-report-config-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.sspq-report-config-editor{min-width:0}
.sspq-report-phone-preview{position:sticky;top:20px;background:#f8fafc;border:1px solid var(--sspq-border);border-radius:18px;padding:16px}
.sspq-phone-frame{width:280px;max-width:100%;margin:0 auto;background:#071b3a;border-radius:34px;padding:14px 10px 16px;box-shadow:0 16px 34px rgba(15,23,42,.24)}
.sspq-phone-speaker{width:74px;height:6px;background:#334155;border-radius:999px;margin:2px auto 10px}
.sspq-phone-screen{background:#fff;border-radius:24px;min-height:500px;overflow:hidden;border:1px solid rgba(255,255,255,.18)}
.sspq-phone-header{background:var(--sspq-navy);color:#fff;font-weight:900;font-size:14px;padding:14px 12px;text-align:center;line-height:1.2}
.sspq-phone-body{padding:14px;max-height:460px;overflow:auto;background:#f8fafc}
.sspq-phone-empty{font-size:13px;color:#64748b;text-align:center;margin:40px 0}
.sspq-phone-field{margin-bottom:12px}
.sspq-phone-field label{display:block!important;font-size:12px!important;font-weight:900!important;color:var(--sspq-navy)!important;margin:0 0 5px!important}
.sspq-phone-field label em{color:#b91c1c;font-style:normal;margin-left:3px}
.sspq-phone-input,.sspq-phone-textarea,.sspq-phone-action,.sspq-phone-signature{background:#fff;border:1px solid #cbd5e1;border-radius:10px;min-height:36px;padding:9px 10px;font-size:12px;color:#475569;display:flex;align-items:center}
.sspq-phone-textarea{min-height:72px;align-items:flex-start}
.sspq-phone-action{justify-content:center;background:#eef2ff;color:var(--sspq-navy);font-weight:900;border-color:#bfdbfe}
.sspq-phone-signature{height:72px;justify-content:center;border-style:dashed;background:#fff}
.sspq-phone-two-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sspq-phone-two-buttons b{display:block;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:9px 10px;text-align:center;color:var(--sspq-navy);font-size:12px}
.sspq-phone-checkline{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:9px 10px;font-size:12px;color:#475569}
.sspq-phone-checkline span{width:14px;height:14px;border:1px solid #94a3b8;border-radius:4px;background:#fff;display:inline-block}
.sspq-phone-section-title{margin:14px 0 8px;padding:8px 10px;background:#e2e8f0;color:var(--sspq-navy);border-radius:10px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.sspq-phone-note{font-size:12px;color:#64748b;margin:12px 0 0;text-align:center;line-height:1.35}
@media(max-width:980px){.sspq-report-config-layout{grid-template-columns:1fr}.sspq-report-phone-preview{position:static}.sspq-phone-frame{width:100%;max-width:320px}}

/* Feuille de route de patrouille 2.0.328 */
.sspq-route-sheet .sspq-route-task-card{margin:18px 0;padding:18px;border:1px solid #dbe4ee;border-left:5px solid var(--sspq-navy,#0b1f3a);border-radius:10px;background:#f8fbfd}.sspq-route-sheet .sspq-route-task-card h3{margin:0 0 8px}.sspq-route-sheet .sspq-action-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.sspq-patrol-report-form{align-items:flex-start}.sspq-patrol-template-field{min-width:180px;display:flex;flex-direction:column;gap:4px;font-size:12px}.sspq-patrol-template-field[hidden]{display:none!important}.sspq-reports-workspace .sspq-action-row{display:flex;gap:6px;flex-wrap:wrap}.sspq-route-sheet .sspq-patrol-detail{margin-top:18px}

/* SSPQ 2.0.16 - champs de rapports avancés */
.sspq-report-builder-controls .sspq-report-choices{grid-column:1 / -1;display:block!important;margin:8px 0 0!important}
.sspq-report-builder-controls .sspq-report-choices[hidden]{display:none!important}
.sspq-report-builder-controls .sspq-report-choices span{display:block;font-weight:900;color:var(--sspq-navy);margin-bottom:6px}
.sspq-report-builder-controls .sspq-report-choices textarea{width:100%;min-height:78px;resize:vertical}
.sspq-report-field-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sspq-report-field-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sspq-report-field-actions .sspq-btn{padding:7px 10px!important;font-size:12px!important}
.sspq-phone-help{display:block;margin-top:4px;color:#64748b;font-size:11px;font-weight:800}

.sspq-separator{border:0;border-top:1px solid rgba(11,31,58,.14);margin:24px 0;}
.sspq-panel-subhead{margin-top:4px;}

/* SSPQ 2.0.19 - champs dynamiques par catégorie d'incident */
.sspq-phone-dynamic-fields{margin-top:10px;padding:10px;border:1px dashed #cbd5e1;border-radius:12px;background:#fff}
.sspq-phone-dynamic-fields>strong{display:block;color:var(--sspq-navy);font-size:12px;margin-bottom:8px}
.sspq-phone-dynamic-fields .sspq-phone-field{margin-bottom:9px}


/* SSPQ 2.0.21 - sous-sections Nethris */
.sspq-nethris-subtabs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}
.sspq-nethris-subtab.is-active{background:var(--sspq-gold);color:var(--sspq-navy);border-color:var(--sspq-gold)}
.sspq-nethris-panel{display:none}
.sspq-nethris-panel.is-active{display:block}
.sspq-panel-subhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:10px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--sspq-border)}
.sspq-panel-subhead h3{margin:0;color:var(--sspq-navy)}

/* SSPQ 2.0.23 - Santé système et sauvegarde */
.sspq-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:10px 0 18px}
.sspq-health-item{border:1px solid #d9e0ea;border-radius:10px;padding:12px;background:#fff}
.sspq-health-item strong{display:block;color:#0b1f3a;margin-bottom:6px}
.sspq-health-item span{color:#1f2937}
.sspq-badge-ok{background:#e8f5e9;color:#166534;border:1px solid #bbf7d0}
.sspq-badge-warning{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
.sspq-backup-tools textarea.sspq-config-export{font-family:Consolas,monospace;font-size:12px;min-height:180px;background:#f8fafc}
.sspq-inline-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}

/* SSPQ 2.0.24 - accès rapide dans Paramètres */
.sspq-platform{scroll-behavior:smooth}
.sspq-quick-access{position:relative}
.sspq-quick-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.sspq-quick-link{display:inline-flex!important;align-items:center;justify-content:center;text-decoration:none!important;line-height:1.2;min-height:38px}
.sspq-settings-section{scroll-margin-top:24px}
.sspq-section-footer{display:flex;justify-content:flex-end;margin-top:16px;padding-top:12px;border-top:1px solid var(--sspq-border)}
.sspq-back-top{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--sspq-navy);border-radius:999px;background:#fff;color:var(--sspq-navy);text-decoration:none!important;font-weight:900;padding:8px 12px}
.sspq-back-top:hover{background:var(--sspq-gold);border-color:var(--sspq-gold);color:var(--sspq-navy)}
@media(max-width:720px){.sspq-quick-links{display:grid;grid-template-columns:1fr 1fr}.sspq-quick-link{width:100%;font-size:12px;padding:9px 8px}.sspq-section-footer{justify-content:center}}

/* SSPQ 2.0.25 - bouton d’accès rapide actif */
.sspq-quick-link.is-active{
  background:var(--sspq-gold)!important;
  border-color:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
}
.sspq-quick-link:focus-visible{
  outline:3px solid rgba(201,162,39,.45);
  outline-offset:2px;
}

/* SSPQ 2.0.26 - navigation active globale */
.sspq-nav a.is-active,
.sspq-tab.is-active,
.sspq-nethris-subtab.is-active,
.sspq-quick-link.is-active,
.sspq-btn.is-active,
.sspq-subtab.is-active,
.sspq-subnav a.is-active,
[data-sspq-nav].is-active{
  background:var(--sspq-gold)!important;
  border-color:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
}
.sspq-nav a.is-active:hover,
.sspq-tab.is-active:hover,
.sspq-nethris-subtab.is-active:hover,
.sspq-quick-link.is-active:hover,
.sspq-btn.is-active:hover,
.sspq-subtab.is-active:hover,
.sspq-subnav a.is-active:hover,
[data-sspq-nav].is-active:hover{
  background:var(--sspq-gold)!important;
  border-color:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
}


/* SSPQ 2.0.27 - onglets principaux actifs persistants */
.sspq-settings-tabs .sspq-tab.is-active,
.sspq-settings-tabs .sspq-tab.sspq-active-tab,
.sspq-settings-tabs button.sspq-tab[aria-selected="true"]{
  background:var(--sspq-gold)!important;
  border-color:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
  box-shadow:0 0 0 2px rgba(201,162,39,.22)!important;
}
.sspq-settings-tabs .sspq-tab.is-active:hover,
.sspq-settings-tabs .sspq-tab.sspq-active-tab:hover,
.sspq-settings-tabs button.sspq-tab[aria-selected="true"]:hover{
  background:var(--sspq-gold)!important;
  border-color:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
}

/* SSPQ 2.0.28 - navigation active hiérarchique */
.sspq-settings-tabs .sspq-tab.is-active,
.sspq-settings-tabs .sspq-tab.sspq-hnav-active,
.sspq-settings-tabs .sspq-tab[aria-selected="true"],
.sspq-nethris-subtabs .sspq-nethris-subtab.is-active,
.sspq-nethris-subtabs .sspq-nethris-subtab.sspq-hnav-active,
.sspq-nethris-subtabs .sspq-nethris-subtab[aria-selected="true"],
.sspq-quick-links .sspq-quick-link.is-active,
.sspq-quick-links .sspq-quick-link.sspq-hnav-active,
.sspq-nav a.is-active,
.sspq-nav a.sspq-hnav-active,
[data-sspq-nav].is-active,
[data-sspq-nav].sspq-hnav-active{
  background:var(--sspq-gold)!important;
  border-color:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
  box-shadow:0 0 0 2px rgba(201,162,39,.24)!important;
}
.sspq-settings-tabs .sspq-tab.is-active:hover,
.sspq-settings-tabs .sspq-tab.sspq-hnav-active:hover,
.sspq-nethris-subtabs .sspq-nethris-subtab.is-active:hover,
.sspq-nethris-subtabs .sspq-nethris-subtab.sspq-hnav-active:hover,
.sspq-quick-links .sspq-quick-link.is-active:hover,
.sspq-quick-links .sspq-quick-link.sspq-hnav-active:hover,
.sspq-nav a.is-active:hover,
.sspq-nav a.sspq-hnav-active:hover,
[data-sspq-nav].is-active:hover,
[data-sspq-nav].sspq-hnav-active:hover{
  background:var(--sspq-gold)!important;
  border-color:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
}

/* SSPQ 2.0.33 — Clarification Nethris */
.sspq-nethris-export-overview h4{margin:18px 0 10px;color:var(--sspq-navy);font-size:16px}
.sspq-nethris-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 18px}
.sspq-summary-card{border:1px solid var(--sspq-border);border-radius:12px;background:#fff;padding:14px;box-shadow:0 2px 10px rgba(11,31,58,.04)}
.sspq-summary-card strong{display:block;color:var(--sspq-navy);font-size:13px;margin-bottom:6px}
.sspq-summary-card em{font-style:normal;color:var(--sspq-text);font-weight:800}
.sspq-table-compact th,.sspq-table-compact td{padding:8px 10px;font-size:13px;vertical-align:top}
.sspq-nethris-model-preview{margin-top:14px;overflow:auto;border:1px solid var(--sspq-border);border-radius:12px;background:#fff;padding:10px}
@media (max-width: 900px){.sspq-nethris-summary-grid{grid-template-columns:1fr}}
.sspq-badge-danger{background:#fef3f2;color:#b42318;border:1px solid #fecdca}
.sspq-field input[type=date],.sspq-field input[type=time],.sspq-field select,.sspq-field textarea{border:1px solid var(--sspq-border);border-radius:10px;padding:10px 12px;min-height:42px;background:#fff}

/* SSPQ 2.0.46 - Sites : structure professionnelle basée sur Paramètres + Employés */
.sspq-sites-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px;align-items:start}.sspq-sites-list{position:sticky;top:18px;max-height:calc(100vh - 140px);overflow:auto}.sspq-sites-filters{display:grid;gap:10px;margin-bottom:14px}.sspq-sites-filters input,.sspq-sites-filters select,.sspq-site-form input,.sspq-site-form select,.sspq-site-form textarea{width:100%;box-sizing:border-box}.sspq-site-row{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:8px 10px;align-items:center;text-decoration:none;border:1px solid rgba(15,23,42,.10);border-radius:14px;padding:12px;margin-bottom:10px;background:#fff;color:inherit}.sspq-site-row strong{grid-column:2/3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sspq-site-row small{grid-column:2/4;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sspq-site-row em{font-style:normal;font-size:12px;background:#eef2ff;border-radius:999px;padding:4px 8px}.sspq-site-row.is-active{border-color:#0b1f3a;box-shadow:0 0 0 2px rgba(11,31,58,.08)}.sspq-site-dot{width:12px;height:12px;border-radius:50%;display:inline-block}.sspq-site-profile-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.sspq-sites-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.sspq-sites-stats div{background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:14px;padding:14px}.sspq-sites-stats strong{display:block;font-size:20px}.sspq-sites-stats span{color:#64748b;font-size:13px}.sspq-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sspq-kv div{background:#f8fafc;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:12px}.sspq-kv span{display:block;color:#64748b;font-size:12px;margin-bottom:4px}.sspq-kv strong{display:block;white-space:pre-wrap;word-break:break-word}.sspq-note-block{background:#f8fafc;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:14px;white-space:pre-wrap}.sspq-codebox{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:14px;overflow:auto;min-height:48px}.sspq-site-form .sspq-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.sspq-site-form label span{display:block;font-weight:600;margin-bottom:6px}.sspq-site-form label.wide{grid-column:1/-1}.sspq-checkline{display:flex;gap:8px;align-items:center}.sspq-checkline input{width:auto}.sspq-btn-secondary{background:#e2e8f0;color:#0f172a}@media(max-width:900px){.sspq-sites-layout{grid-template-columns:1fr}.sspq-sites-list{position:relative;top:auto;max-height:none}.sspq-sites-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.sspq-kv,.sspq-site-form .sspq-form-grid{grid-template-columns:1fr}.sspq-site-profile-head{display:block}}

/* SSPQ 2.0.49 - Sites opérationnels */
.sspq-sites-layout{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:18px;align-items:start}.sspq-sites-list{position:sticky;top:16px;max-height:calc(100vh - 140px);overflow:auto}.sspq-sites-filters{display:grid;gap:10px;margin-bottom:14px}.sspq-sites-filters label{display:block}.sspq-sites-filters label span{display:none}.sspq-site-row{display:grid;grid-template-columns:16px 1fr auto;gap:8px;align-items:center;padding:12px;border:1px solid rgba(15,23,42,.10);border-radius:14px;text-decoration:none;color:inherit;margin-bottom:8px;background:#fff}.sspq-site-row:hover,.sspq-site-row.is-active{border-color:#0b1f3a;box-shadow:0 8px 22px rgba(15,23,42,.10)}.sspq-site-row strong{grid-column:2/3}.sspq-site-row small{grid-column:2/4;color:#64748b}.sspq-site-row em{grid-column:3/4;grid-row:1/2;font-style:normal;font-size:12px;color:#475569}.sspq-site-dot{width:12px;height:12px;border-radius:50%;display:inline-block}.sspq-site-profile-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.sspq-sites-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px;margin:14px 0}.sspq-sites-stats>div{background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:14px;padding:14px}.sspq-sites-stats strong{display:block;font-size:22px}.sspq-sites-stats span{color:#64748b;font-size:13px}.sspq-map-shell{border:1px solid rgba(15,23,42,.12);border-radius:16px;overflow:hidden;background:#f8fafc;margin-bottom:14px}.sspq-map-placeholder{min-height:260px;display:flex;align-items:center;justify-content:center;text-align:center;color:#475569;background:linear-gradient(135deg,#f8fafc,#e2e8f0);font-weight:700}.sspq-codebox{max-height:260px;overflow:auto;background:#0f172a;color:#e2e8f0;border-radius:12px;padding:12px;white-space:pre-wrap}.sspq-table-wrap{overflow:auto}.sspq-table{width:100%;border-collapse:collapse}.sspq-table th,.sspq-table td{padding:10px;border-bottom:1px solid rgba(15,23,42,.10);text-align:left;vertical-align:top}.sspq-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#475569}.sspq-note-block{background:#f8fafc;border:1px solid rgba(15,23,42,.10);border-radius:14px;padding:14px;line-height:1.5}.sspq-site-form .sspq-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.sspq-site-form .wide{grid-column:1/-1}.sspq-checkline{display:flex!important;gap:10px;align-items:center}.sspq-checkline input{width:auto!important}@media(max-width:900px){.sspq-sites-layout{grid-template-columns:1fr}.sspq-sites-list{position:relative;top:auto;max-height:none}.sspq-site-profile-head{display:block}.sspq-map-placeholder{min-height:200px}}


/* SSPQ 2.0.50 - formulaires opérationnels Sites */
.sspq-inline-form{border:1px solid #d8e0ea;border-radius:14px;padding:16px;margin:0 0 18px;background:#f8fafc;}
.sspq-inline-form h3{margin:0 0 12px;font-size:16px;color:#0b1f3a;}
.sspq-inline-form .sspq-form-grid{margin-bottom:12px;}
.sspq-osm-map{width:100%;height:360px;border:0;border-radius:14px;background:#eef2f7;}
.sspq-map-shell{margin-bottom:16px;}
.sspq-checkline{display:flex;gap:8px;align-items:center;font-weight:600;}
.sspq-checkline input{width:auto;}

/* SSPQ 2.0.51 - Sites: géorepérage, modales et tournées */
.sspq-geofence-tools{display:flex;flex-direction:column;gap:12px}
.sspq-map-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.sspq-map-search{min-width:260px;flex:1;border:1px solid #d9e1ec;border-radius:10px;padding:10px 12px;background:#fff}
.sspq-leaflet-map{width:100%;height:460px;border:1px solid #d9e1ec;border-radius:16px;overflow:hidden;background:#eef2f7}
.sspq-action-row{display:flex;gap:10px;align-items:center;margin:0 0 14px}
.sspq-modal{position:fixed;inset:0;background:rgba(2,8,23,.55);z-index:99999;display:none;align-items:center;justify-content:center;padding:22px}
.sspq-modal.is-open{display:flex}
.sspq-modal-card{position:relative;width:min(920px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 80px rgba(2,8,23,.35);padding:24px}
.sspq-modal-close{position:absolute;top:12px;right:14px;border:0;background:#eef2f7;border-radius:999px;width:34px;height:34px;font-size:22px;line-height:1;cursor:pointer}
.sspq-checkpoint-list{display:grid;gap:8px;margin:12px 0}
.sspq-route-modal-row>td{padding:0!important;border:0!important}
@media(max-width:760px){.sspq-leaflet-map{height:360px}.sspq-modal-card{padding:18px}.sspq-map-search{min-width:100%}}

.sspq-nfc-status{font-weight:700}.sspq-program-nfc-tag[disabled]{opacity:.65;cursor:wait}

/* SSPQ 2.0.53 - répartition mobile calendrier / récurrence */
.sspq-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}
.sspq-section-head h3{margin:0;color:var(--sspq-navy)}
.sspq-dispatch-calendar{border:1px solid var(--sspq-border);border-radius:16px;background:#fff;margin-bottom:18px;overflow:hidden}
.sspq-calendar-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;background:#f8fafc;border-bottom:1px solid var(--sspq-border)}
.sspq-calendar-head strong{color:var(--sspq-navy);font-size:18px}.sspq-calendar-head span{color:var(--sspq-muted);font-weight:700}
.sspq-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:0;overflow:auto;max-height:560px}
.sspq-calendar-day{min-height:112px;border-right:1px solid var(--sspq-border);border-bottom:1px solid var(--sspq-border);padding:10px;background:#fff}
.sspq-calendar-date{font-weight:900;color:var(--sspq-navy);font-size:12px;text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}
.sspq-calendar-item{background:#eef2f7;border-left:4px solid var(--sspq-gold);border-radius:10px;padding:7px 8px;margin-bottom:6px;font-size:12px;color:var(--sspq-text)}
.sspq-calendar-item strong{color:var(--sspq-navy)}
.sspq-weekday-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;background:#f8fafc;border:1px solid var(--sspq-border);border-radius:12px;padding:10px}
.sspq-weekday-grid label{font-weight:700;display:flex;gap:8px;align-items:center}
.sspq-inline-delete{display:inline-flex;margin:0}.sspq-inline-delete .sspq-btn{white-space:nowrap}
@media(max-width:900px){.sspq-section-head{display:block}.sspq-section-head .sspq-btn{width:100%;margin-top:10px}.sspq-calendar-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}}

/* 2.0.54 - Correctifs Sites: géorepérage, points, calendrier */
.sspq-map-warning{margin-top:10px;padding:10px 12px;border:1px solid #f0c36d;background:#fff7e6;border-radius:10px;color:#7a4b00;font-size:13px}
.sspq-row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sspq-calendar-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr))}
.sspq-calendar-day{min-height:96px}
.sspq-calendar-item{cursor:pointer}

/* SSPQ 2.0.55 - géorepérage fiable */
.sspq-leaflet-map .leaflet-control-container{font-size:13px}
.sspq-map-error{height:100%;min-height:300px;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:#991b1b;background:#fee2e2;font-weight:700}
.sspq-map-toolbar [data-map-action="draw-polygon"]{font-weight:700}
.sspq-map-toolbar [data-map-action="finish-polygon"]{border-color:#0f766e;color:#0f766e;background:#ecfdf5}
.sspq-map-toolbar [data-map-action="clear-polygon"]{border-color:#b91c1c;background:#fee2e2;color:#991b1b}

.sspq-leaflet-map .sspq-map-loading{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-weight:700}
.sspq-leaflet-map .leaflet-container,.sspq-leaflet-map.leaflet-container{width:100%;height:100%}
.sspq-map-error{position:absolute;left:12px;right:12px;bottom:12px;z-index:900;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:10px;padding:10px;font-weight:700}
.sspq-geofence-fields textarea[name="geofence_polygon"]{min-height:110px;font-family:monospace;font-size:12px}

/* 2.0.57 - Carte géorepérage robuste même si le thème/cache surcharge Leaflet */
.sspq-geofence-tools .sspq-leaflet-map{display:block!important;width:100%!important;height:500px!important;min-height:500px!important;position:relative!important;z-index:1!important;box-sizing:border-box!important}
.sspq-geofence-tools .sspq-leaflet-map.leaflet-container{height:500px!important;min-height:500px!important}
.sspq-map-error{position:absolute;left:12px;right:12px;bottom:12px;background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:10px;padding:10px 12px;font-weight:700;z-index:1000}
@media(max-width:760px){.sspq-geofence-tools .sspq-leaflet-map{height:380px!important;min-height:380px!important}}

/* SSPQ 2.0.59 - Liste des barrières de géorepérage */
.sspq-barrier-list{margin:12px 0 16px;padding:12px;border:1px solid #d9e1ec;border-radius:14px;background:#f8fafc}
.sspq-barrier-list-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;color:#0b1f3a}
.sspq-barrier-list-title span{font-size:12px;color:#64748b;font-weight:700}
.sspq-barrier-items{display:flex;flex-direction:column;gap:8px}
.sspq-barrier-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;border:1px solid #d9e1ec;border-radius:12px;background:#fff}
.sspq-barrier-item.is-selected{border-color:#d4af20;box-shadow:0 0 0 2px rgba(212,175,32,.18)}
.sspq-barrier-item small{display:block;color:#64748b;margin-top:2px}
.sspq-barrier-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:900px){.sspq-barrier-item{align-items:flex-start;flex-direction:column}.sspq-barrier-actions{justify-content:flex-start}}

/* SSPQ 2.0.61 - Horaire relié aux données opérationnelles */
.sspq-horaire-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;align-items:start;margin-bottom:18px}
.sspq-horaire-editor .wide{grid-column:1 / -1}
.sspq-flow-list{display:grid;gap:10px}
.sspq-flow-list div{border:1px solid var(--sspq-border);background:#f8fafc;border-radius:12px;padding:12px}
.sspq-flow-list strong{display:block;color:var(--sspq-navy);font-size:14px;margin-bottom:4px}
.sspq-flow-list span{display:block;color:var(--sspq-muted);font-weight:700;font-size:13px;line-height:1.35}
.sspq-horaire-filters{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;align-items:end}
.sspq-horaire-filters label,.sspq-horaire-editor label{font-weight:900;color:var(--sspq-navy)}
.sspq-horaire-filters input,.sspq-horaire-filters select,.sspq-horaire-editor input,.sspq-horaire-editor select,.sspq-horaire-editor textarea{width:100%;border:1px solid var(--sspq-border);border-radius:10px;padding:9px 10px;background:#fff;min-height:40px;margin-top:5px}
.sspq-site-color{display:inline-block;width:12px;height:12px;border-radius:999px;margin-right:8px;vertical-align:middle;border:1px solid rgba(0,0,0,.12)}
.sspq-row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.sspq-inline-form{display:inline;margin:0}
.sspq-bsp-verify-form{display:inline-block!important;border:0!important;background:transparent!important;padding:0!important;margin:0!important}
.sspq-bsp-verify-form .sspq-btn{white-space:nowrap}
.sspq-row-actions .sspq-btn{padding:7px 10px!important;font-size:12px!important}
@media(max-width:1100px){.sspq-horaire-layout{grid-template-columns:1fr}.sspq-horaire-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.sspq-horaire-filters{grid-template-columns:1fr}.sspq-horaire-table th:nth-child(5),.sspq-horaire-table td:nth-child(5){display:none}}

/* SSPQ 2.0.63 - Horaire calendrier */
.sspq-schedule-calendar-panel{margin-top:18px}
.sspq-schedule-calendar{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:12px;align-items:stretch}
.sspq-schedule-day{border:1px solid var(--sspq-border,#d8dee9);border-radius:16px;background:#fff;min-height:180px;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.sspq-schedule-day.is-today{outline:2px solid var(--sspq-gold,#c9a227)}
.sspq-schedule-day-head{display:flex;justify-content:space-between;gap:8px;align-items:center;background:#f8fafc;border-bottom:1px solid var(--sspq-border,#d8dee9);padding:10px 12px;color:var(--sspq-navy,#0b2447)}
.sspq-schedule-day-head strong{text-transform:capitalize;font-size:13px}.sspq-schedule-day-head span{font-size:12px;font-weight:800;color:var(--sspq-muted,#64748b)}
.sspq-schedule-empty{padding:16px 12px;color:var(--sspq-muted,#64748b);font-size:13px;font-weight:700}
.sspq-schedule-card{margin:10px;border-left:5px solid var(--sspq-navy,#0b2447);background:#f8fafc;border-radius:12px;padding:9px 10px;color:var(--sspq-text,#1f2937)}
.sspq-schedule-time{font-weight:900;color:var(--sspq-navy,#0b2447);font-size:13px;margin-bottom:4px}
.sspq-schedule-site{font-weight:800;font-size:12px;line-height:1.25;margin-bottom:4px}
.sspq-schedule-employee{font-size:12px;color:var(--sspq-text,#1f2937);margin-bottom:6px}
.sspq-schedule-meta{display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--sspq-muted,#64748b);font-weight:800}
@media(max-width:1200px){.sspq-schedule-calendar{grid-template-columns:repeat(3,minmax(180px,1fr))}}
@media(max-width:760px){.sspq-schedule-calendar{grid-template-columns:1fr}.sspq-schedule-day{min-height:auto}.sspq-schedule-card{margin:8px}}

/* SSPQ 2.0.65 - Sélecteur Jour / Semaine / Mois pour le calendrier des quarts */
.sspq-schedule-view-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.sspq-schedule-view-tab{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 14px;border:1px solid var(--sspq-border,#d8dee9);border-radius:999px;background:#fff;color:var(--sspq-navy,#0b2447);font-weight:900;text-decoration:none}
.sspq-schedule-view-tab.is-active{background:var(--sspq-navy,#0b2447);color:#fff;border-color:var(--sspq-navy,#0b2447)}
.sspq-schedule-calendar-day{grid-template-columns:1fr}
.sspq-schedule-calendar-day .sspq-schedule-day{min-height:420px}
.sspq-schedule-calendar-week{grid-template-columns:repeat(7,minmax(180px,1fr))}
.sspq-schedule-calendar-month{grid-template-columns:repeat(7,minmax(140px,1fr))}
.sspq-schedule-calendar-month .sspq-schedule-day{min-height:150px}
.sspq-schedule-calendar-month .sspq-schedule-card{margin:7px;padding:7px 8px}
.sspq-schedule-calendar-month .sspq-schedule-site,.sspq-schedule-calendar-month .sspq-schedule-employee{font-size:11px}
@media(max-width:1100px){.sspq-schedule-calendar-month,.sspq-schedule-calendar-week{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.sspq-schedule-view-tabs{position:sticky;top:0;z-index:5;background:#fff;padding:8px 0}.sspq-schedule-calendar-month,.sspq-schedule-calendar-week{grid-template-columns:1fr}.sspq-schedule-calendar-day .sspq-schedule-day{min-height:260px}}

/* SSPQ 2.0.67 - Horaire : cartes de quart modifiables */
.sspq-schedule-card-editable{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}
.sspq-schedule-card-editable:hover,.sspq-schedule-card-editable:focus{background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.12);transform:translateY(-1px);outline:2px solid rgba(11,36,71,.18);outline-offset:2px}
.sspq-schedule-edit-hint{margin-top:6px;font-size:10px;font-weight:900;color:var(--sspq-muted,#64748b);text-transform:uppercase;letter-spacing:.03em}

/* SSPQ 2.0.68 - Horaire : vue mois avec limite de cartes et bouton + autres */
.sspq-schedule-more{display:flex;align-items:center;justify-content:center;width:calc(100% - 14px);margin:0 7px 9px;padding:7px 8px;border:1px dashed var(--sspq-border,#d8dee9);border-radius:10px;background:#fff;color:var(--sspq-navy,#0b2447);font-size:12px;font-weight:900;cursor:pointer}
.sspq-schedule-more:hover,.sspq-schedule-more:focus{background:#f8fafc;outline:2px solid rgba(11,36,71,.16);outline-offset:2px}
.sspq-schedule-more-close{display:none}.sspq-schedule-more.is-expanded .sspq-schedule-more-open{display:none}.sspq-schedule-more.is-expanded .sspq-schedule-more-close{display:inline}
.sspq-schedule-calendar-month .sspq-schedule-month-extra[hidden]{display:none!important}

/* SSPQ 2.0.69 - Paramètres Horaire */
.sspq-schedule-rules{margin-bottom:16px}.sspq-rule-chips{display:flex;flex-wrap:wrap;gap:8px}.sspq-rule-chips .sspq-badge{display:inline-flex;gap:4px;align-items:center}

/* SSPQ 2.0.71 - Présences liées aux quarts */
.sspq-presences-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.sspq-presences-actions .sspq-btn.is-active{background:var(--sspq-navy,#0b2447);color:#fff;border-color:var(--sspq-navy,#0b2447)}
.sspq-presence-panel{display:none}.sspq-presence-panel.is-active{display:block}
.sspq-presence-period{margin-bottom:16px}.sspq-presence-period-form{align-items:end}
.sspq-employee-timesheet{border:1px solid var(--sspq-border,#d8dee9);border-radius:14px;margin:10px 0;background:#fff;overflow:hidden}
.sspq-employee-timesheet summary{display:flex;justify-content:space-between;gap:12px;align-items:center;cursor:pointer;padding:14px 16px;background:#f8fafc;color:var(--sspq-navy,#0b2447);font-weight:900}
.sspq-employee-timesheet summary span{color:var(--sspq-muted,#64748b);font-weight:800}
.sspq-clock-editor summary{cursor:pointer;font-weight:900;color:var(--sspq-navy,#0b2447)}
.sspq-clock-form{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:8px;margin-top:8px;min-width:360px}
.sspq-clock-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:800;color:var(--sspq-muted,#64748b)}
.sspq-clock-form textarea{grid-column:1/-1}.sspq-clock-form button{grid-column:1/-1;justify-self:start}
.sspq-presence-table td{vertical-align:top}
@media(max-width:760px){.sspq-clock-form{grid-template-columns:1fr;min-width:0}.sspq-employee-timesheet summary{flex-direction:column;align-items:flex-start}.sspq-presences-actions .sspq-btn{width:100%}}

/* SSPQ 2.0.72 - Présences : registre pointages réels et modale de correction */
#sspq-attendance-clock-modal{overflow:hidden}
#sspq-attendance-clock-modal .sspq-modal-dialog{position:relative;width:min(720px,96vw);height:min(92vh,920px);max-height:92vh;overflow:hidden;background:#fff;border-radius:18px;box-shadow:0 24px 80px rgba(2,8,23,.35);padding:0;display:flex;flex-direction:column}
#sspq-attendance-clock-modal .sspq-modal-backdrop{position:absolute;inset:0}
#sspq-attendance-clock-modal .sspq-modal-head{position:relative;padding:18px 22px;margin:0;border-bottom:1px solid var(--sspq-border,#d8dee9);flex:0 0 auto}
#sspq-attendance-clock-modal .sspq-modal-body{position:relative;padding:22px;margin:0;display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;min-width:0;overflow-y:auto;overflow-x:hidden;flex:1 1 auto}
#sspq-attendance-clock-modal .sspq-modal-body .sspq-muted,#sspq-attendance-clock-modal .sspq-modal-body label[for],#sspq-attendance-clock-modal textarea,#sspq-attendance-clock-modal .sspq-modal-actions{grid-column:1/-1}
#sspq-attendance-clock-modal .sspq-modal-body label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;color:var(--sspq-muted,#64748b)}
#sspq-attendance-clock-modal .sspq-attendance-date-edit,#sspq-attendance-clock-modal .sspq-attendance-rate-edit{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;align-items:end}
#sspq-attendance-clock-modal .sspq-attendance-date-edit>strong{grid-column:1/-1}

#sspq-attendance-clock-modal .sspq-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px;padding-top:14px;border-top:1px solid var(--sspq-border,#d8dee9)}
.sspq-btn-small{padding:7px 10px;font-size:12px;border-radius:10px}
@media(max-width:760px){#sspq-attendance-clock-modal .sspq-modal-body{grid-template-columns:1fr;padding:16px}#sspq-attendance-clock-modal .sspq-modal-actions{display:grid}.sspq-btn-small{width:100%}}

/* 2.0.79 - Horaire employé : confirmation, pointage, quarts à combler */
.sspq-shift-employee-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}
.sspq-shift-action-form{display:inline-flex;margin:0}
.sspq-shift-details{flex-basis:100%;margin-top:6px;padding:8px;border:1px solid var(--sspq-border,#d8dee9);border-radius:10px;background:#f8fafc}
.sspq-shift-details summary{cursor:pointer;font-weight:900;color:var(--sspq-navy,#0b2447)}
.sspq-shift-details p{margin:8px 0 0;color:var(--sspq-text,#1f2937)}
.sspq-shift-attachment{display:inline-flex;align-items:center;font-weight:900;text-decoration:none;color:var(--sspq-navy,#0b2447);padding:6px 8px;border-radius:9px;background:#eef2ff}
.sspq-confirm-row{border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;padding:12px;margin:10px 0;background:#fff;display:grid;gap:6px}
.sspq-confirm-actions{display:flex;flex-wrap:wrap;gap:8px}
.sspq-confirm-modal:not([hidden]),#sspq-refuse-modal:not([hidden]){display:flex;position:fixed;inset:0;align-items:center;justify-content:center;background:rgba(2,8,23,.45);z-index:99999;padding:16px}
.sspq-confirm-modal .sspq-modal-card,#sspq-refuse-modal .sspq-modal-card{width:min(720px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 80px rgba(2,8,23,.35);padding:20px;position:relative}
@media(max-width:760px){.sspq-shift-employee-actions .sspq-btn,.sspq-shift-action-form{width:100%}.sspq-shift-action-form .sspq-btn{width:100%}}

/* SSPQ 2.0.96 - Horaire / Présences : détails, totaux et contrôles temps réel */
.sspq-schedule-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.sspq-schedule-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.sspq-schedule-nav-arrow{width:42px;min-width:42px;padding-left:0!important;padding-right:0!important;font-size:24px;line-height:1}
.sspq-horaire-filters[data-sspq-autosubmit]{align-items:end}
.sspq-schedule-employee-day-head em,.sspq-schedule-day-head em{font-style:normal;font-weight:900;color:var(--sspq-navy,#0b2447);font-size:12px;margin-left:auto}
.sspq-schedule-employee-name{display:flex;flex-direction:column;gap:4px}
.sspq-schedule-employee-name strong{font-size:13px;line-height:1.25}
.sspq-schedule-employee-name span{font-size:12px;color:var(--sspq-muted,#64748b);font-weight:900}
.sspq-open-shifts-panel[hidden]{display:none!important}
.sspq-shift-detail-actions{align-items:center;flex-wrap:wrap}
.sspq-shift-detail-actions>.sspq-btn,.sspq-shift-detail-actions>form,.sspq-shift-detail-employee-actions .sspq-btn,.sspq-shift-detail-employee-actions form{min-height:38px}
.sspq-shift-detail-actions form{display:inline-flex;margin:0}
.sspq-shift-detail-actions form .sspq-btn{height:100%}
.sspq-attendance-shift-details{min-width:220px}
.sspq-attendance-shift-details summary{cursor:pointer;font-weight:900;color:var(--sspq-navy,#0b2447)}
.sspq-attendance-detail-body{margin-top:10px;display:grid;gap:12px;min-width:min(620px,80vw)}
.sspq-attendance-detail-body h4{margin:4px 0 0;color:var(--sspq-navy,#0b2447);font-size:14px}
.sspq-attendance-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px}
.sspq-attendance-detail-grid>div{border:1px solid var(--sspq-border,#d8dee9);border-radius:8px;background:#f8fafc;padding:10px}
.sspq-attendance-detail-grid .wide{grid-column:1/-1}
.sspq-attendance-detail-grid strong,.sspq-attendance-event strong{display:block;color:var(--sspq-muted,#64748b);font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.sspq-attendance-detail-grid span,.sspq-attendance-detail-grid small,.sspq-attendance-event span,.sspq-attendance-event small{display:block;color:var(--sspq-navy,#0b2447);font-weight:800}
.sspq-attendance-events{display:grid;gap:10px}
.sspq-attendance-event{display:grid;grid-template-columns:minmax(190px,1fr) minmax(180px,260px);gap:10px;align-items:start;border:1px solid var(--sspq-border,#d8dee9);border-radius:8px;padding:10px;background:#fff}
.sspq-attendance-map iframe{width:100%;height:130px;border:0;border-radius:8px;background:#eef2f7}
.sspq-attendance-map a{display:inline-flex;margin-top:5px;font-size:12px;font-weight:900;color:var(--sspq-navy,#0b2447)}
.sspq-attendance-map-placeholder{border:1px dashed var(--sspq-border,#d8dee9);border-radius:8px;padding:12px;color:var(--sspq-muted,#64748b);font-weight:800;text-align:center;background:#f8fafc}
.sspq-attendance-premiums{margin:0;padding-left:18px;color:var(--sspq-navy,#0b2447);font-weight:800}
.sspq-attendance-delete-form{margin-top:8px}
@media(max-width:760px){.sspq-schedule-toolbar,.sspq-schedule-actions{display:grid;grid-template-columns:1fr 1fr}.sspq-schedule-toolbar .sspq-schedule-view-tabs{grid-column:1/-1}.sspq-attendance-detail-grid,.sspq-attendance-event{grid-template-columns:1fr}.sspq-attendance-detail-body{min-width:0}.sspq-attendance-map iframe{height:180px}}

/* SSPQ 2.0.80 - Détail du quart */
.sspq-shift-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;margin-top:8px}
.sspq-shift-detail-grid>div{border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;padding:12px;background:#f8fafc}
.sspq-shift-detail-grid .wide{grid-column:1/-1}
.sspq-shift-detail-grid strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--sspq-muted,#64748b);margin-bottom:5px}
.sspq-shift-detail-grid span,.sspq-shift-detail-grid p{margin:0;color:var(--sspq-navy,#0b1f3a);font-weight:700}
@media(max-width:760px){.sspq-shift-detail-grid{grid-template-columns:1fr}.sspq-modal-actions{flex-wrap:wrap}.sspq-modal-actions form,.sspq-modal-actions .sspq-btn{width:100%}}

.sspq-user{display:flex;gap:10px;align-items:center;justify-content:flex-end}.sspq-shift-detail-employee-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.sspq-hidden-action-template{display:none!important}.sspq-schedule-hours-summary{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 14px}.sspq-schedule-hours-summary .sspq-badge{font-size:13px}.sspq-schedule-employee-groups{display:grid;gap:16px}.sspq-schedule-employee-group{border:1px solid #e5e7eb;border-radius:14px;padding:12px;background:#fff}.sspq-schedule-employee-group h3{margin:0 0 10px;font-size:16px}

.sspq-schedule-employee-separator{margin:10px 0 6px;padding:6px 8px;border-radius:8px;background:#f3f4f6;font-weight:700;color:#111827;font-size:13px}


/* SSPQ 2.0.88 - Corrections réelles horaire/sites */
.sspq-nav .sspq-nav-logout{margin-top:18px;border-top:1px solid rgba(255,255,255,.18);padding-top:14px;color:#fff;background:rgba(255,255,255,.08)}
.sspq-nav .sspq-nav-logout:hover{background:var(--sspq-gold);color:var(--sspq-navy)}
.sspq-schedule-employee-calendar{border:1px solid var(--sspq-border);border-radius:var(--sspq-radius);overflow:auto;background:#fff}
.sspq-schedule-employee-header,.sspq-schedule-employee-row{display:grid;grid-template-columns:230px minmax(720px,1fr);border-bottom:1px solid var(--sspq-border)}
.sspq-schedule-employee-header{position:sticky;top:0;z-index:3;background:#f8fafc;font-weight:800;color:var(--sspq-navy)}
.sspq-schedule-employee-name-head,.sspq-schedule-employee-name{padding:12px;border-right:1px solid var(--sspq-border);background:#f8fafc}
.sspq-schedule-employee-name{font-weight:800;position:sticky;left:0;z-index:2;color:var(--sspq-navy)}
.sspq-schedule-employee-days{display:grid;grid-template-columns:repeat(var(--sspq-days),minmax(150px,1fr));min-width:720px}
.sspq-schedule-employee-day-head{padding:10px;border-right:1px solid var(--sspq-border);display:flex;flex-direction:column;gap:3px}
.sspq-schedule-employee-cell{min-height:92px;padding:8px;border-right:1px solid var(--sspq-border);background:#fff}
.sspq-schedule-employee-cell .sspq-schedule-card{margin-bottom:8px}
.sspq-schedule-more .sspq-schedule-more-close{display:none}
.sspq-schedule-more.is-expanded .sspq-schedule-more-open{display:none}
.sspq-schedule-more.is-expanded .sspq-schedule-more-close{display:inline}
@media(max-width:860px){
  .sspq-schedule-employee-header,.sspq-schedule-employee-row{grid-template-columns:160px minmax(600px,1fr)}
  .sspq-schedule-employee-name-head,.sspq-schedule-employee-name{font-size:13px}
}

/* SSPQ 2.0.95 - Positions secondaires employé */
.sspq-secondary-positions-grid{display:grid;gap:10px;margin-top:8px}
.sspq-secondary-position-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(140px,.8fr) minmax(140px,.8fr);gap:10px;align-items:center;padding:10px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.sspq-secondary-position-row input[type=number]{width:100%}
@media (max-width: 760px){.sspq-secondary-position-row{grid-template-columns:1fr}}

/* SSPQ 2.0.97 - Accueil, demandes, messages, horaire et présences */
.sspq-dashboard-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.sspq-platform .sspq-dashboard-kpi{appearance:none;-webkit-appearance:none;box-sizing:border-box;display:grid;align-content:start;gap:8px;width:100%;min-height:135px;padding:18px;border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;background:#ffffff;background-image:none;color:var(--sspq-text,#172033);text-align:left;font:inherit;line-height:1.25;box-shadow:0 10px 26px rgba(15,23,42,.05);cursor:pointer;transform:none;filter:none}
.sspq-platform .sspq-dashboard-kpi:hover{border-color:var(--sspq-gold,#c9a227);background:#ffffff;background-image:none}
.sspq-platform .sspq-dashboard-kpi span{display:block;font-size:13px;font-weight:900;color:var(--sspq-muted,#64748b);text-transform:uppercase;line-height:1.25}
.sspq-platform .sspq-dashboard-kpi strong{display:block;font-size:38px;line-height:1;color:var(--sspq-navy,#0b2447);margin:0}
.sspq-platform .sspq-dashboard-kpi em{display:block;font-style:normal;color:var(--sspq-muted,#64748b);font-weight:700;line-height:1.25}
.sspq-platform .sspq-dashboard-kpi small{display:inline-flex;width:max-content;max-width:100%;align-items:center;justify-content:center;margin-top:4px;min-height:24px;padding:4px 9px;border-radius:999px;background:#eef2f7;color:var(--sspq-navy,#0b2447);font-size:12px;font-weight:900;line-height:1;white-space:nowrap}
.sspq-platform .sspq-dashboard-kpi.is-risk{border-color:#fecdca}
.sspq-platform .sspq-dashboard-kpi.is-risk strong{color:#b42318}
.sspq-platform .sspq-dashboard-kpi.is-absent{border-color:#fed7aa}
.sspq-platform .sspq-dashboard-kpi.is-absent strong{color:#9a3412}
.sspq-platform .sspq-dashboard-kpi.is-service{border-color:#bbf7d0}
.sspq-platform .sspq-dashboard-kpi.is-service strong{color:#166534}
.sspq-badge-soft-warning{background:#fef9c3!important;color:#854d0e!important;border-color:#fde68a!important}
.sspq-requests-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sspq-request-panel{min-width:0}
.sspq-messenger-layout{display:grid;grid-template-columns:280px minmax(0,1fr) 320px;gap:16px;align-items:start}
.sspq-messenger-list,.sspq-messenger-chat,.sspq-bulletin-board{border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;background:#fff;padding:14px;min-width:0}
.sspq-message-thread{display:grid;gap:4px;padding:10px;border-radius:8px;text-decoration:none;color:var(--sspq-navy,#0b2447);border:1px solid transparent}
.sspq-message-thread:hover,.sspq-message-thread.is-active{background:#eef2f7;border-color:#d8dee9}
.sspq-message-thread span{color:var(--sspq-muted,#64748b);font-size:12px}
.sspq-message-new,.sspq-bulletin-form{display:grid;gap:10px;margin-top:14px;border-top:1px solid var(--sspq-border,#d8dee9);padding-top:14px}
.sspq-message-feed{min-height:420px;max-height:62vh;overflow:auto;display:grid;align-content:start;gap:10px;padding:8px;background:#f8fafc;border-radius:10px}
.sspq-message-bubble{max-width:min(560px,88%);padding:10px 12px;border-radius:14px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 4px 16px rgba(15,23,42,.04)}
.sspq-message-bubble.is-me{justify-self:end;background:#0b2447;color:#fff;border-color:#0b2447}
.sspq-message-bubble small{display:block;margin-bottom:5px;color:inherit;opacity:.75;font-weight:800}
.sspq-message-bubble p,.sspq-bulletin p{margin:0}
.sspq-message-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:12px}
.sspq-bulletin{border:1px solid #e5e7eb;border-radius:10px;padding:10px;margin-top:10px;background:#f8fafc}
.sspq-bulletin small{display:block;margin-top:8px;color:var(--sspq-muted,#64748b);font-weight:800}
.sspq-clock-edit-form{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;grid-column:1/-1}
.sspq-clock-edit-form .sspq-muted,.sspq-clock-edit-form label:nth-last-of-type(-n+3),.sspq-clock-edit-form .sspq-modal-actions{grid-column:1/-1}
.sspq-attendance-modal-details{grid-column:1/-1;max-height:none;overflow:visible}
.sspq-schedule-card{position:relative}
.sspq-schedule-select{position:absolute;left:8px;top:8px;z-index:2;background:#fff;border:1px solid #cbd5e1;border-radius:6px;width:22px;height:22px;display:grid;place-items:center}
.sspq-schedule-select input{margin:0}
.sspq-shift-status-icon{position:absolute;right:8px;top:8px;width:24px;height:24px;border-radius:50%;display:inline-grid;place-items:center;font-weight:900;background:#fff;border:1px solid #cbd5e1;color:#0b2447}
.sspq-shift-status-icon.is-confirmed{background:#dcfce7;color:#166534;border-color:#86efac}
.sspq-shift-status-icon.is-unseen{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
.sspq-shift-status-icon.is-seen{background:#e0f2fe;color:#075985;border-color:#7dd3fc}
.sspq-shift-status-icon.is-draft{background:#f8fafc;color:#475569}
.sspq-schedule-card .sspq-schedule-time{padding-left:24px;padding-right:28px}
.sspq-schedule-employee-cell.is-drop-target{outline:2px solid var(--sspq-gold,#c9a227);outline-offset:-2px;background:#fffbeb}
.sspq-open-shift-applicants{margin-top:10px;padding-top:10px;border-top:1px solid var(--sspq-border,#d8dee9);display:grid;gap:8px}
.sspq-open-shift-applicants form{justify-content:space-between}
.sspq-recurrence-box{border:1px dashed var(--sspq-border,#d8dee9);border-radius:10px;padding:12px;background:#f8fafc}
.sspq-recurrence-days{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.sspq-google-map-preview{display:grid;gap:8px;margin-bottom:12px}
.sspq-google-map-preview iframe{width:100%;height:280px;border:0;border-radius:12px;background:#eef2f7}
.sspq-google-map-preview a{font-weight:900;color:var(--sspq-navy,#0b2447)}
@media(max-width:1100px){.sspq-messenger-layout{grid-template-columns:1fr}.sspq-requests-grid{grid-template-columns:1fr}.sspq-message-feed{max-height:none}.sspq-message-compose{grid-template-columns:1fr}.sspq-clock-edit-form{grid-template-columns:1fr}}

/* SSPQ 2.0.98 - Correctifs interactifs et responsive */
/* SSPQ 2.0.144: anciennes règles <details>/<summary> retirées pour garder les cartes Accueil blanches et intactes. */
.sspq-dashboard-detail{border-top:1px solid var(--sspq-border,#d8dee9);padding:10px 12px 14px;background:#f8fafc}
.sspq-dashboard-detail .sspq-table{font-size:13px;background:#fff}
.sspq-shift-employee-actions .sspq-btn,.sspq-shift-detail-employee-actions .sspq-btn,.sspq-shift-action-form .sspq-btn{min-height:34px;min-width:132px;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.1;text-align:center}
.sspq-shift-action-form{display:inline-flex;margin:0}
.sspq-schedule-day-head,.sspq-schedule-employee-day-head{position:relative;padding-right:74px}
.sspq-schedule-employee-day-head em,.sspq-schedule-day-head em{position:absolute;top:10px;right:10px;margin-left:0;white-space:nowrap}
.sspq-message-mode-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.sspq-message-mode-tabs .sspq-btn{min-width:150px;justify-content:center}

/* SSPQ 2.0.99 - Connexion, actions simples et quarts ouverts */
.sspq-login-form{display:grid;gap:14px}
.sspq-login-form label{display:grid;gap:6px;font-weight:800;color:var(--sspq-navy,#0b2447)}
.sspq-login-form label span{font-size:13px;color:var(--sspq-muted,#64748b)}
.sspq-login-form .sspq-btn{width:100%;justify-content:center;min-height:42px}
.sspq-login-card .sspq-password-input-wrap{position:relative;display:block}
.sspq-login-card .sspq-password-input-wrap input{padding-right:54px!important;width:100%}
.sspq-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:38px;height:34px;border:0;border-radius:9px;background:#eef2f7;color:var(--sspq-navy,#0b2447);display:inline-grid;place-items:center;cursor:pointer;font-size:16px;font-weight:900}
.sspq-password-toggle:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}
.sspq-password-toggle[aria-pressed="true"]{background:#dbeafe;color:#1d4ed8}
.sspq-login-remember{grid-template-columns:auto 1fr!important;align-items:center;font-weight:700!important}
.sspq-login-remember input{margin:0}
.sspq-page-actions{justify-content:flex-end}
.sspq-schedule-open-row .sspq-schedule-employee-name,
.sspq-schedule-open-row .sspq-schedule-employee-cell{background:#f8fafc}
.sspq-schedule-open-row .sspq-schedule-employee-name{color:#7c2d12}
.sspq-schedule-open-cell{min-height:72px}
.sspq-message-mode-tabs .is-active{box-shadow:0 0 0 2px rgba(11,36,71,.16)}
.sspq-google-map-preview{display:none!important}
@media(max-width:1024px){
  .sspq-platform{min-width:0}
  .sspq-content{padding:18px}
  .sspq-dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sspq-schedule-employee-calendar{border-radius:10px}
  .sspq-schedule-employee-header,.sspq-schedule-employee-row{grid-template-columns:180px minmax(620px,1fr)}
}
@media(max-width:720px){
  .sspq-content{padding:12px}
  .sspq-dashboard-kpis{grid-template-columns:1fr}
  .sspq-message-mode-tabs{display:grid;grid-template-columns:1fr 1fr}
  .sspq-message-mode-tabs .sspq-btn{width:100%;min-width:0}
  .sspq-messenger-list,.sspq-messenger-chat,.sspq-bulletin-board{padding:12px;border-radius:8px}
  .sspq-message-bubble{max-width:100%}
  .sspq-schedule-toolbar,.sspq-schedule-actions{grid-template-columns:1fr}
  .sspq-schedule-employee-header,.sspq-schedule-employee-row{grid-template-columns:140px minmax(520px,1fr)}
  .sspq-schedule-employee-days{min-width:520px;grid-template-columns:repeat(var(--sspq-days),minmax(125px,1fr))}
  .sspq-shift-employee-actions .sspq-btn,.sspq-shift-detail-employee-actions .sspq-btn,.sspq-shift-action-form,.sspq-shift-action-form .sspq-btn{width:100%;min-width:0}
  .sspq-table-wrap{max-width:100%;overflow-x:auto}
}

/* SSPQ 2.0.100 - demandes, messages, presences, horaire mobile */
.sspq-dashboard-detail{max-height:360px;overflow:auto}
.sspq-dashboard-detail .sspq-table{table-layout:fixed;font-size:12px}
.sspq-dashboard-detail .sspq-table td{padding:8px 10px;vertical-align:top}
.sspq-dashboard-detail strong{font-size:13px;line-height:1.25}
.sspq-dashboard-detail .sspq-muted{font-size:12px;line-height:1.3}
.sspq-dashboard-detail .sspq-btn{min-height:32px;padding:6px 10px;font-size:12px}
.sspq-employees-table th:nth-child(4),
.sspq-employees-table td:nth-child(4),
.sspq-employees-table th:nth-child(8),
.sspq-employees-table td:nth-child(8),
.sspq-employees-table th:nth-child(9),
.sspq-employees-table td:nth-child(9){display:none}
.sspq-employee-request-forms{display:grid;gap:16px;margin-bottom:18px}
.sspq-requests-self-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sspq-self-request-form h2{margin:0 0 8px;font-size:20px}
.sspq-weekday-checks{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:8px}
.sspq-weekday-checks label{border:1px solid var(--sspq-border,#d8dee9);border-radius:10px;background:#fff;display:grid;place-items:center;gap:5px;min-height:54px;font-weight:900}
.sspq-weekday-checks input{margin:0}
.sspq-form-actions{text-align:right}
.sspq-attendance-export-form{border-top:1px solid var(--sspq-border,#d8dee9);margin-top:14px;padding-top:14px}
.sspq-schedule-actions{align-items:stretch}
.sspq-schedule-actions>.sspq-btn,
.sspq-schedule-actions>.sspq-inline-form,
.sspq-schedule-actions>.sspq-inline-form .sspq-btn{min-width:176px;min-height:44px;box-shadow:none!important}
.sspq-schedule-actions .sspq-btn:hover{transform:none}
.sspq-shift-status-icon{box-shadow:0 2px 8px rgba(15,23,42,.12)}

.sspq-open-shift-card{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(260px,360px);gap:12px;align-items:start}
.sspq-open-shift-applicants{grid-column:3;grid-row:1 / span 2;margin-top:0;padding-top:0;padding-left:12px;border-top:0;border-left:1px solid var(--sspq-border,#d8dee9)}
.sspq-open-shift-card>.sspq-shift-details{grid-column:1/-1}
.sspq-schedule-mobile-cards{display:none}
@media(max-width:900px){
  .sspq-requests-self-grid{grid-template-columns:1fr}
  .sspq-weekday-checks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sspq-open-shift-card{grid-template-columns:1fr}
  .sspq-open-shift-applicants{grid-column:auto;grid-row:auto;border-left:0;border-top:1px solid var(--sspq-border,#d8dee9);padding-left:0;padding-top:10px}
}
@media(max-width:760px){
  .sspq-platform{display:block;background:#06172d}
  .sspq-sidebar{display:none}
  .sspq-main{min-height:100vh;background:#06172d;color:#fff}
  .sspq-topbar{background:#06172d;color:#fff;border-bottom:1px solid rgba(201,162,39,.55);padding:22px 18px}
  .sspq-topbar p,.sspq-topbar .sspq-user{color:#f3d982}
  .sspq-content{background:#f4f6f8;color:var(--sspq-text,#1f2937);border-radius:18px 18px 0 0;padding:16px}
  .sspq-schedule-mobile-cards{display:grid;gap:12px}
  .sspq-schedule-employee-calendar,.sspq-schedule-calendar{display:none!important}
  .sspq-schedule-mobile-cards .sspq-schedule-card{margin:0;min-height:112px}
  .sspq-schedule-toolbar,.sspq-schedule-actions{display:grid;grid-template-columns:1fr}
  .sspq-schedule-actions>.sspq-btn,.sspq-schedule-actions>.sspq-inline-form,.sspq-schedule-actions>.sspq-inline-form .sspq-btn{width:100%;min-width:0}
}

/* SSPQ 2.0.101 - correctifs suite demandes, horaire et mobile */
.sspq-dashboard-kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.sspq-platform .sspq-dashboard-kpi{min-height:auto}
.sspq-platform .sspq-dashboard-kpi span{font-size:12px}
.sspq-platform .sspq-dashboard-kpi strong{font-size:28px}
.sspq-platform .sspq-dashboard-kpi em{font-size:12px}
.sspq-schedule-actions{display:flex;gap:10px;flex-wrap:wrap}
.sspq-schedule-actions>.sspq-btn,
.sspq-schedule-actions>.sspq-inline-form,
.sspq-schedule-actions>.sspq-inline-form .sspq-btn{width:190px;min-width:190px;max-width:190px;min-height:44px;box-shadow:none!important;text-shadow:none!important;filter:none!important}
.sspq-schedule-actions>.sspq-inline-form{display:flex;margin:0}
.sspq-horaire-editor input[type=checkbox],
.sspq-recurrence-box input[type=checkbox],
.sspq-inline-check input[type=checkbox]{width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;padding:0!important}
.sspq-recurrence-days label{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:6px;min-height:28px;font-size:13px}
.sspq-schedule-request-card{border-left:4px solid #22c55e;border-radius:8px;background:#fff;padding:8px 10px;margin:5px 0;display:grid;gap:3px;box-shadow:0 4px 12px rgba(15,23,42,.05)}
.sspq-schedule-request-card strong{font-size:13px;color:#0b2447}
.sspq-schedule-request-card span,.sspq-schedule-request-card em,.sspq-schedule-request-card small{font-size:12px;color:#64748b;font-style:normal;line-height:1.25}
.sspq-schedule-request-card.is-unavailable{background:#fff1f2}
.sspq-schedule-request-card.is-available{background:#f0fdf4}
.sspq-schedule-request-card.is-vacation{background:#fefce8}
.sspq-schedule-request-card.is-leave{background:#fff7ed}
.sspq-open-shift-applicants{grid-column:3;grid-row:1}
.sspq-open-shift-viewers{grid-column:3;grid-row:2;margin-top:8px;padding-left:12px;border-left:1px solid var(--sspq-border,#d8dee9);display:grid;gap:6px;font-size:12px}
.sspq-open-shift-viewers strong{font-size:13px;color:var(--sspq-navy,#0b2447)}
.sspq-open-shift-viewers span{display:block;color:var(--sspq-muted,#64748b)}
.sspq-message-delete-form{justify-self:end;margin:-4px 6px 0 0}
.sspq-message-delete-form button{border:0;background:transparent!important;color:#64748b!important;font-size:11px;font-weight:800;text-decoration:underline;padding:0;min-height:0;border-radius:0!important}
.sspq-mobile-schedule-date{position:sticky;top:0;z-index:1;margin:4px 0 0;padding:9px 10px;border-radius:8px;background:#0b2447;color:#fff;font-size:15px}
@media(max-width:900px){
  .sspq-open-shift-applicants,.sspq-open-shift-viewers{grid-column:auto;grid-row:auto;border-left:0;border-top:1px solid var(--sspq-border,#d8dee9);padding-left:0;padding-top:10px}
}
@media(max-width:760px){
  .sspq-dashboard-kpis{grid-template-columns:1fr 1fr;gap:10px}
  .sspq-dashboard-kpi strong{font-size:24px}
}
@media(max-width:460px){
  .sspq-dashboard-kpis{grid-template-columns:1fr}
}

/* ============================================================
   SSPQ 2.0.101 — Correctifs complets + Responsive laptop/mobile
   ============================================================ */

/* --- Lien mot de passe oublié --- */
.sspq-login-forgot {
  text-align: center;
  margin-top: -4px;
}
.sspq-login-forgot a {
  color: var(--sspq-muted);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}
.sspq-login-forgot a:hover {
  color: var(--sspq-gold);
  text-decoration: underline;
}

/* --- Badge messages non lus --- */
.sspq-msg-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #b42318;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  min-width: 18px;
  height: 18px;
  border-radius: 999px;
  padding: 0 4px;
  margin-left: 6px;
  vertical-align: middle;
  line-height: 1;
}

/* ============================================================
   HAMBURGER MOBILE SIDEBAR
   ============================================================ */
.sspq-hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  flex-direction: column;
  gap: 5px;
  z-index: 200;
}
.sspq-hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: all .22s ease;
}
.sspq-hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.sspq-hamburger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.sspq-hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.sspq-sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 150;
}
.sspq-sidebar-overlay.is-open { display: block; }

/* ============================================================
   LAPTOP (1024px–1280px) — Sidebar rétractée
   ============================================================ */
@media (max-width: 1280px) {
  .sspq-sidebar { width: 220px; }
  .sspq-fullscreen-page .sspq-main { width: calc(100% - 220px); }
  .sspq-topbar h1 { font-size: 22px; }
  .sspq-content { padding: 20px; }
}

@media (max-width: 1100px) {
  .sspq-sidebar { width: 200px; padding: 18px 12px; }
  .sspq-fullscreen-page .sspq-main { width: calc(100% - 200px); }
  .sspq-nav a { padding: 10px 10px; font-size: 14px; }
  .sspq-brand { font-size: 20px; }
  .sspq-dashboard-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sspq-horaire-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ============================================================
   TABLET (768px–1023px) — Sidebar slide-in
   ============================================================ */
@media (max-width: 1023px) {
  .sspq-platform { display: block; }

  /* Sidebar devient un drawer */
  .sspq-sidebar {
    position: fixed;
    left: -280px;
    top: 0;
    height: 100vh;
    width: 260px;
    z-index: 160;
    transition: left .26s ease;
    overflow-y: auto;
    box-shadow: 4px 0 24px rgba(0,0,0,.35);
  }
  .sspq-sidebar.is-open { left: 0; }

  .sspq-fullscreen-page .sspq-main { width: 100%; }
  .sspq-main { min-height: 100vh; }

  /* Topbar avec hamburger */
  .sspq-topbar {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0,0,0,.08);
  }
  .sspq-hamburger {
    display: flex;
    background: var(--sspq-navy);
    border-radius: 8px;
    padding: 8px;
    flex-shrink: 0;
  }
  .sspq-topbar h1 { font-size: 20px; margin: 0; }
  .sspq-topbar p { display: none; }

  .sspq-content { padding: 16px; }
  .sspq-dashboard-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sspq-requests-grid { grid-template-columns: 1fr; }
  .sspq-messenger-layout { grid-template-columns: 1fr; }
  .sspq-horaire-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sspq-sites-layout { grid-template-columns: 1fr; }
  .sspq-horaire-layout { grid-template-columns: 1fr; }
  .sspq-schedule-calendar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sspq-schedule-calendar-week { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sspq-schedule-calendar-month { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sspq-nethris-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============================================================
   MOBILE (< 768px) — App-style full-screen
   ============================================================ */
@media (max-width: 767px) {
  /* Topbar mobile */
  .sspq-topbar {
    background: var(--sspq-navy);
    color: #fff;
    padding: 14px 16px;
    border-bottom: 1px solid rgba(201,162,39,.4);
  }
  .sspq-topbar h1 { color: #fff; font-size: 18px; }
  .sspq-topbar .sspq-user { color: var(--sspq-gold); font-size: 13px; }

  /* Sidebar drawer au-dessus du contenu */
  .sspq-sidebar {
    top: 0;
    width: 280px;
    padding: 22px 16px;
  }

  /* Contenu */
  .sspq-content {
    padding: 12px;
    background: #f4f6f8;
    min-height: calc(100vh - 56px);
  }

  /* Dashboard KPIs: 2 colonnes sur mobile */
  .sspq-dashboard-kpis { grid-template-columns: 1fr 1fr; gap: 10px; }
  .sspq-dashboard-kpi strong { font-size: 24px; }

  /* Tableaux défilants horizontalement */
  .sspq-table-wrap, .sspq-panel > .sspq-table { overflow-x: auto; display: block; max-width: 100%; }
  .sspq-table { min-width: 600px; }
  .sspq-table th, .sspq-table td { white-space: nowrap; }

  /* Formulaires empilés */
  .sspq-form-grid { grid-template-columns: 1fr !important; }
  .sspq-horaire-filters { grid-template-columns: 1fr !important; }
  .sspq-toolbar { flex-direction: column; }
  .sspq-toolbar label, .sspq-toolbar button,
  .sspq-toolbar input, .sspq-toolbar select { width: 100%; box-sizing: border-box; }

  /* Panel heads empilés */
  .sspq-panel-head { flex-direction: column; align-items: flex-start; gap: 8px; }

  /* Sites */
  .sspq-sites-layout { grid-template-columns: 1fr; }
  .sspq-sites-list { position: relative; max-height: none; }
  .sspq-sites-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sspq-kv { grid-template-columns: 1fr; }

  /* Horaire */
  .sspq-schedule-calendar,
  .sspq-schedule-calendar-week,
  .sspq-schedule-calendar-month { grid-template-columns: 1fr; }
  .sspq-schedule-employee-calendar { overflow-x: auto; }
  .sspq-schedule-employee-header,
  .sspq-schedule-employee-row { grid-template-columns: 130px minmax(480px, 1fr); }
  .sspq-schedule-employee-days { min-width: 480px; grid-template-columns: repeat(var(--sspq-days), minmax(110px, 1fr)); }
  .sspq-schedule-view-tabs { position: sticky; top: 56px; z-index: 5; background: #fff; padding: 8px 0; border-bottom: 1px solid var(--sspq-border); }

  /* Présences */
  .sspq-presences-actions { flex-direction: column; }
  .sspq-presences-actions .sspq-btn { width: 100%; }
  .sspq-clock-form { grid-template-columns: 1fr; min-width: 0; }
  .sspq-attendance-export-form { grid-template-columns: 1fr !important; }

  /* Demandes */
  .sspq-requests-grid { grid-template-columns: 1fr; }
  .sspq-requests-self-grid { grid-template-columns: 1fr; }
  .sspq-weekday-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Messages */
  .sspq-messenger-layout { grid-template-columns: 1fr; }
  .sspq-message-mode-tabs { grid-template-columns: 1fr 1fr; }
  .sspq-message-mode-tabs .sspq-btn { width: 100%; min-width: 0; justify-content: center; }
  .sspq-message-feed { max-height: none; min-height: 280px; }
  .sspq-message-compose { grid-template-columns: 1fr; }
  .sspq-message-bubble { max-width: 100%; }

  /* Paramètres */
  .sspq-settings-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
  .sspq-tab { font-size: 12px; padding: 8px 10px; text-align: center; }
  .sspq-nethris-summary-grid { grid-template-columns: 1fr; }
  .sspq-report-config-layout { grid-template-columns: 1fr; }
  .sspq-phone-frame { width: 100%; max-width: 280px; margin: 0 auto; }
  .sspq-save-bar { position: static; border-radius: 0; }
  .sspq-save-bar .sspq-btn { width: 100%; }

  /* Employés */
  .sspq-employee-summary { grid-template-columns: 1fr 1fr; }
  .sspq-secondary-position-row { grid-template-columns: 1fr; }

  /* Modales */
  .sspq-modal { padding: 10px; align-items: flex-end; }
  .sspq-modal-card {
    border-radius: 18px 18px 0 0;
    max-height: 92vh;
    width: 100% !important;
    max-width: 100% !important;
    padding: 16px;
  }
  .sspq-modal-actions { flex-direction: column; }
  .sspq-modal-actions .sspq-btn,
  .sspq-modal-actions form,
  .sspq-modal-actions form .sspq-btn { width: 100%; justify-content: center; }

  /* Boutons d'action inline → pleine largeur */
  .sspq-row-actions { flex-direction: column; }
  .sspq-row-actions .sspq-btn { width: 100%; }

  /* Masquer colonnes non essentielles dans les tableaux */
  .sspq-employees-table th:nth-child(n+5):not(:last-child),
  .sspq-employees-table td:nth-child(n+5):not(:last-child) { display: none; }

  /* Open shifts */
  .sspq-open-shift-card { grid-template-columns: 1fr; }
  .sspq-open-shift-applicants,
  .sspq-open-shift-viewers { grid-column: auto; grid-row: auto; border-left: 0; border-top: 1px solid var(--sspq-border); padding-left: 0; padding-top: 10px; }

  /* Boutons schedule actions pleine largeur */
  .sspq-schedule-actions { flex-direction: column; gap: 8px; }
  .sspq-schedule-actions > .sspq-btn,
  .sspq-schedule-actions > .sspq-inline-form,
  .sspq-schedule-actions > .sspq-inline-form .sspq-btn { width: 100% !important; min-width: 0 !important; max-width: none !important; }

  /* Accès rapide paramètres */
  .sspq-quick-links { grid-template-columns: 1fr 1fr; gap: 8px; }
  .sspq-quick-link { width: 100%; font-size: 12px; justify-content: center; }
}

/* ============================================================
   TRÈS PETIT (< 480px)
   ============================================================ */
@media (max-width: 479px) {
  .sspq-dashboard-kpis { grid-template-columns: 1fr; }
  .sspq-settings-tabs { grid-template-columns: 1fr; }
  .sspq-sites-stats { grid-template-columns: 1fr 1fr; }
  .sspq-employee-summary { grid-template-columns: 1fr; }
  .sspq-topbar h1 { font-size: 16px; }
  .sspq-content { padding: 10px; }
  .sspq-panel { padding: 14px; }
}

/* ============================================================
   PRINT — masquer la navigation, garder le contenu
   ============================================================ */
@media print {
  .sspq-sidebar, .sspq-topbar, .sspq-hamburger,
  .sspq-settings-tabs, .sspq-save-bar, .sspq-audit-toolbar,
  .sspq-pagination, .sspq-sidebar-overlay { display: none !important; }
  .sspq-main { margin: 0; }
  .sspq-content { padding: 0; }
  .sspq-panel { box-shadow: none; border: 1px solid #ccc; }
  .sspq-fullscreen-page .sspq-main { width: 100%; }
}


/* ============================================================
   SSPQ 2.0.103 — Responsive global sans débordement horizontal
   Objectif: laptop compact, mobile en cartes, navigation avec icônes
   ============================================================ */
html,body{max-width:100%;overflow-x:hidden}
.sspq-platform,.sspq-main,.sspq-content,.sspq-panel,.sspq-card,.sspq-table-wrap{max-width:100%;min-width:0;box-sizing:border-box}
.sspq-platform *,.sspq-platform *:before,.sspq-platform *:after{box-sizing:border-box}
.sspq-content img,.sspq-content iframe,.sspq-content canvas,.sspq-content video{max-width:100%}
.sspq-content input,.sspq-content select,.sspq-content textarea{max-width:100%;min-width:0}
.sspq-panel{overflow:hidden}
.sspq-panel-head,.sspq-toolbar,.sspq-settings-tabs,.sspq-nethris-subtabs,.sspq-schedule-actions,.sspq-schedule-toolbar,.sspq-page-actions,.sspq-inline-actions{min-width:0}
.sspq-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sspq-nav a{display:flex;align-items:center;gap:10px;min-width:0}
.sspq-nav-icon{width:24px;height:24px;min-width:24px;display:inline-grid;place-items:center;color:currentColor}
.sspq-nav-icon svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sspq-nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sspq-nav-logout{margin-top:10px;border-top:1px solid rgba(255,255,255,.16)}

/* Laptop: menu compact pour éviter de tasser le contenu */
@media (min-width:1024px) and (max-width:1280px){
  .sspq-sidebar{width:88px!important;padding:16px 10px!important}
  .sspq-sidebar-logo{max-width:58px!important;max-height:46px!important;object-fit:contain;margin-bottom:16px!important}
  .sspq-brand{font-size:0!important;letter-spacing:0!important;margin-bottom:14px!important;text-align:center}
  .sspq-nav{gap:8px}
  .sspq-nav a{justify-content:center;padding:12px 10px!important;border-radius:14px;position:relative}
  .sspq-nav-label{position:absolute;left:76px;top:50%;transform:translateY(-50%);background:#fff;color:var(--sspq-navy);border:1px solid var(--sspq-border);box-shadow:0 10px 28px rgba(15,23,42,.18);border-radius:10px;padding:8px 10px;white-space:nowrap;opacity:0;pointer-events:none;z-index:30;font-size:13px;font-weight:900}
  .sspq-nav a:hover .sspq-nav-label,.sspq-nav a:focus .sspq-nav-label{opacity:1}
  .sspq-fullscreen-page .sspq-main{width:calc(100% - 88px)!important}
  .sspq-main{width:calc(100% - 88px)}
  .sspq-content{padding:18px!important}
  .sspq-topbar{padding:14px 18px!important}
  .sspq-topbar h1{font-size:21px!important}
}

/* Tablette: drawer; pas de largeur forcée */
@media (max-width:1023px){
  .sspq-platform{display:block!important;min-width:0!important}
  .sspq-main,.sspq-fullscreen-page .sspq-main{width:100%!important;max-width:100%!important}
  .sspq-sidebar{width:280px!important;max-width:88vw!important}
  .sspq-nav a{justify-content:flex-start}
  .sspq-nav-label{display:inline}
}

/* Mobile: priorité aux cartes; aucune barre horizontale globale */
@media (max-width:767px){
  body.sspq-fullscreen-page{overflow-x:hidden!important}
  .sspq-platform,.sspq-main,.sspq-content{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
  .sspq-topbar{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important}
  .sspq-topbar>div:first-of-type{min-width:0;flex:1}
  .sspq-topbar h1{white-space:normal;line-height:1.18}
  .sspq-user{min-width:0;max-width:42%;font-size:12px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sspq-content{padding:12px!important;border-radius:18px 18px 0 0!important}
  .sspq-grid,.sspq-dashboard-kpis,.sspq-admin-grid,.sspq-health-grid,.sspq-employee-summary,.sspq-sites-stats,.sspq-requests-self-grid,.sspq-requests-grid,.sspq-form-grid,.sspq-audit-grid{grid-template-columns:1fr!important}
  .sspq-card,.sspq-panel{border-radius:14px!important;padding:14px!important;box-shadow:0 8px 22px rgba(15,23,42,.07)}
  .sspq-panel-head,.sspq-panel-subhead{display:grid!important;grid-template-columns:1fr!important;align-items:start!important}
  .sspq-toolbar,.sspq-schedule-toolbar,.sspq-schedule-actions,.sspq-page-actions,.sspq-inline-actions,.sspq-manager-actions,.sspq-section-import-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;align-items:stretch!important}
  .sspq-toolbar label,.sspq-toolbar input,.sspq-toolbar select,.sspq-toolbar button,.sspq-btn,.sspq-inline-form,.sspq-inline-form .sspq-btn{width:100%!important;max-width:100%!important;min-width:0!important;justify-content:center}
  .sspq-settings-tabs,.sspq-nethris-subtabs,.sspq-message-mode-tabs,.sspq-quick-links{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .sspq-tab,.sspq-nethris-subtab,.sspq-quick-link{width:100%!important;justify-content:center;text-align:center}
  .sspq-weekday-checks{grid-template-columns:1fr 1fr!important;min-width:0!important}

  /* Conversion générique des tableaux en cartes mobiles */
  .sspq-table-wrap{overflow:visible!important;border:0!important;background:transparent!important}
  .sspq-table,.sspq-panel>.sspq-table{display:block!important;width:100%!important;min-width:0!important;background:transparent!important;border-collapse:separate!important}
  .sspq-table thead{display:none!important}
  .sspq-table tbody,.sspq-table tr,.sspq-table td{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;white-space:normal!important}
  .sspq-table tr{background:#fff;border:1px solid var(--sspq-border);border-radius:14px;margin:0 0 12px;padding:10px;box-shadow:0 6px 18px rgba(15,23,42,.05)}
  .sspq-table td{border:0!important;border-bottom:1px solid rgba(15,23,42,.08)!important;padding:8px 0!important;word-break:break-word;overflow-wrap:anywhere}
  .sspq-table td:last-child{border-bottom:0!important}
  .sspq-table td:before{content:attr(data-label);display:block;margin-bottom:3px;color:var(--sspq-muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.035em}
  .sspq-table td[data-label=""],.sspq-table td:not([data-label]){padding-top:6px!important}
  .sspq-table td[data-label=""]:before,.sspq-table td:not([data-label]):before{display:none}
  .sspq-row-actions{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
  .sspq-row-actions .sspq-btn{margin:0!important}

  /* Calendrier employés: en cartes au lieu d'une grille large */
  .sspq-schedule-employee-calendar{overflow:visible!important;border:0!important;background:transparent!important}
  .sspq-schedule-employee-header{display:none!important}
  .sspq-schedule-employee-row{display:block!important;border:1px solid var(--sspq-border)!important;border-radius:14px!important;background:#fff!important;margin-bottom:12px!important;overflow:hidden!important}
  .sspq-schedule-employee-name{position:static!important;border-right:0!important;border-bottom:1px solid var(--sspq-border)!important;background:#f8fafc!important;padding:12px!important}
  .sspq-schedule-employee-days{display:grid!important;grid-template-columns:1fr!important;min-width:0!important;width:100%!important}
  .sspq-schedule-employee-cell{min-height:0!important;border-right:0!important;border-bottom:1px solid rgba(15,23,42,.08)!important;padding:10px!important}
  .sspq-schedule-employee-cell:before{content:attr(data-day-label);display:block;margin-bottom:7px;color:var(--sspq-navy);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
  .sspq-schedule-employee-cell:last-child{border-bottom:0!important}
  .sspq-schedule-card{width:100%!important;margin:0 0 8px!important;overflow-wrap:anywhere}
  .sspq-schedule-calendar,.sspq-schedule-calendar-week,.sspq-schedule-calendar-month{grid-template-columns:1fr!important;min-width:0!important;width:100%!important}
  .sspq-schedule-day{min-width:0!important}

  .sspq-sites-layout,.sspq-kv,.sspq-site-form .sspq-form-grid,.sspq-report-config-layout,.sspq-messenger-layout,.sspq-clock-edit-form{grid-template-columns:1fr!important}
  .sspq-sites-list{position:relative!important;top:auto!important;max-height:none!important;overflow:visible!important}
  .sspq-modal-card{max-width:100%!important;width:100%!important}
}

@media (max-width:420px){
  .sspq-weekday-checks{grid-template-columns:1fr!important}
  .sspq-user{display:none!important}
}


/* ============================================================
   SSPQ 2.0.104 — Horaire laptop pleine largeur + menu icônes
   Objectif: le calendrier horaire ne pousse plus la page horizontalement.
   ============================================================ */
@media (min-width:1024px) and (max-width:1440px){
  /* Menu latéral compact sur laptop: seulement les icônes visibles. */
  .sspq-sidebar{width:76px!important;padding:14px 8px!important;flex:0 0 76px!important;overflow:visible!important}
  .sspq-sidebar-logo{max-width:52px!important;max-height:42px!important;object-fit:contain;margin:0 auto 14px!important;display:block!important}
  .sspq-brand{font-size:0!important;line-height:0!important;letter-spacing:0!important;margin:0 0 12px!important;text-align:center!important}
  .sspq-nav{gap:7px!important}
  .sspq-nav a{justify-content:center!important;padding:11px 8px!important;border-radius:14px!important;position:relative!important;min-height:46px!important}
  .sspq-nav-icon{width:25px!important;height:25px!important;min-width:25px!important}
  .sspq-nav-icon svg{width:23px!important;height:23px!important}
  .sspq-nav-label{position:absolute!important;left:68px!important;top:50%!important;transform:translateY(-50%)!important;background:#fff!important;color:var(--sspq-navy)!important;border:1px solid var(--sspq-border)!important;box-shadow:0 10px 28px rgba(15,23,42,.2)!important;border-radius:10px!important;padding:8px 10px!important;white-space:nowrap!important;opacity:0!important;pointer-events:none!important;z-index:999!important;font-size:13px!important;font-weight:900!important;display:block!important;max-width:none!important;overflow:visible!important;text-overflow:clip!important}
  .sspq-nav a:hover .sspq-nav-label,.sspq-nav a:focus .sspq-nav-label{opacity:1!important}
  .sspq-main,.sspq-fullscreen-page .sspq-main{width:calc(100% - 76px)!important;max-width:calc(100% - 76px)!important;min-width:0!important;flex:1 1 auto!important}
  .sspq-content{padding:16px!important;min-width:0!important;max-width:100%!important;overflow-x:hidden!important}
}

@media (min-width:1024px){
  /* La page horaire doit utiliser l'espace restant sans créer une barre horizontale. */
  .sspq-horaire-layout{grid-template-columns:minmax(0,1fr)!important;gap:14px!important;max-width:100%!important;overflow-x:hidden!important}
  .sspq-horaire-layout > *{min-width:0!important;max-width:100%!important}
  .sspq-schedule-calendar-panel,.sspq-schedule-employee-groups,.sspq-schedule-employee-group{min-width:0!important;max-width:100%!important;overflow:hidden!important}

  /* Calendrier par employés: aucune largeur minimale qui tasse la page. */
  .sspq-schedule-employee-calendar{width:100%!important;max-width:100%!important;overflow:hidden!important;border-radius:var(--sspq-radius)!important}
  .sspq-schedule-employee-header,
  .sspq-schedule-employee-row{grid-template-columns:minmax(150px,190px) minmax(0,1fr)!important;width:100%!important;min-width:0!important;max-width:100%!important}
  .sspq-schedule-employee-days{grid-template-columns:repeat(var(--sspq-days),minmax(0,1fr))!important;min-width:0!important;width:100%!important;max-width:100%!important}
  .sspq-schedule-employee-day-head,
  .sspq-schedule-employee-cell{min-width:0!important;overflow:hidden!important}
  .sspq-schedule-employee-name-head,
  .sspq-schedule-employee-name{min-width:0!important;overflow:hidden!important}
  .sspq-schedule-employee-name strong,
  .sspq-schedule-employee-name span{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  .sspq-schedule-card{max-width:100%!important;min-width:0!important;overflow:hidden!important;word-break:break-word!important;overflow-wrap:anywhere!important}

  /* Vues jour/semaine/mois: 7 colonnes adaptatives au lieu de réduire à 2 colonnes sur laptop. */
  .sspq-schedule-calendar-week,
  .sspq-schedule-calendar-month,
  .sspq-schedule-calendar{grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:8px!important;min-width:0!important;width:100%!important;max-width:100%!important}
  .sspq-schedule-calendar-day{grid-template-columns:1fr!important}
  .sspq-schedule-day{min-width:0!important;overflow:hidden!important;padding:8px!important}
  .sspq-schedule-day-head{padding-right:54px!important;min-width:0!important}
  .sspq-schedule-day-head strong,
  .sspq-schedule-day-head span{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  .sspq-schedule-day-head em{right:8px!important;font-size:11px!important}
}

@media (min-width:1024px) and (max-width:1180px){
  /* Laptop étroit: on garde le calendrier visible en réduisant les cellules, pas en tassant la page. */
  .sspq-schedule-employee-header,
  .sspq-schedule-employee-row{grid-template-columns:minmax(120px,150px) minmax(0,1fr)!important}
  .sspq-schedule-employee-name-head,
  .sspq-schedule-employee-name{padding:9px!important;font-size:12px!important}
  .sspq-schedule-employee-day-head{padding:8px 5px!important;font-size:11px!important}
  .sspq-schedule-employee-day-head em{position:static!important;margin-top:3px!important;font-size:10px!important;white-space:normal!important}
  .sspq-schedule-employee-cell{padding:6px!important}
  .sspq-schedule-card{padding:6px 7px!important;font-size:11px!important;margin-bottom:6px!important}
  .sspq-schedule-site,.sspq-schedule-employee{font-size:10px!important}
}


/* ============================================================
   SSPQ 2.0.105 — Contenu adaptatif laptop
   Objectif: textes, boutons, filtres, formulaires, cartes et tableaux
   se redimensionnent dans l'espace restant quand le menu est compact.
   ============================================================ */
@media (min-width:1024px) and (max-width:1440px){
  html,body{max-width:100%!important;overflow-x:hidden!important}
  .sspq-platform,.sspq-main,.sspq-content,.sspq-panel,.sspq-card,.sspq-section,.sspq-dashboard,.sspq-page,.sspq-module{min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
  .sspq-content{container-type:inline-size;font-size:clamp(13px,0.92vw,15px)!important;line-height:1.45!important}
  .sspq-topbar{padding:12px 16px!important;gap:12px!important;min-width:0!important}
  .sspq-topbar h1{font-size:clamp(18px,1.55vw,23px)!important;line-height:1.15!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important}
  .sspq-topbar p,.sspq-topbar .sspq-user{font-size:clamp(12px,0.9vw,14px)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important}

  /* Titres, textes longs et badges: jamais de poussée horizontale. */
  .sspq-content h1,.sspq-content h2,.sspq-content h3,.sspq-content h4,
  .sspq-panel-title,.sspq-section-title,.sspq-card-title,
  .sspq-content p,.sspq-content li,.sspq-content small,.sspq-content span,
  .sspq-badge,.sspq-status,.sspq-chip,.sspq-kpi,.sspq-dashboard-kpi,
  .sspq-note-block,.sspq-codebox{min-width:0!important;max-width:100%!important;overflow-wrap:anywhere!important;word-break:normal!important}
  .sspq-content h1{font-size:clamp(22px,1.9vw,30px)!important}
  .sspq-content h2{font-size:clamp(19px,1.55vw,24px)!important}
  .sspq-content h3{font-size:clamp(16px,1.25vw,20px)!important}

  /* Boutons et barres d'action: ils passent à la ligne au lieu de dépasser. */
  .sspq-toolbar,.sspq-schedule-toolbar,.sspq-schedule-actions,.sspq-page-actions,
  .sspq-inline-actions,.sspq-manager-actions,.sspq-section-import-actions,
  .sspq-presences-actions,.sspq-modal-actions,.sspq-row-actions,
  .sspq-panel-head,.sspq-panel-subhead,.sspq-section-head,.sspq-manager-head,
  .sspq-site-profile-head{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important;min-width:0!important;max-width:100%!important}
  .sspq-panel-head,.sspq-panel-subhead,.sspq-section-head,.sspq-manager-head{justify-content:space-between!important}
  .sspq-toolbar label,.sspq-toolbar form,.sspq-toolbar .sspq-inline-form,
  .sspq-schedule-toolbar label,.sspq-schedule-toolbar form,.sspq-schedule-toolbar .sspq-inline-form,
  .sspq-page-actions form,.sspq-inline-actions form{min-width:160px!important;max-width:100%!important;flex:1 1 180px!important}
  .sspq-btn,button.sspq-btn,a.sspq-btn,input[type="submit"].sspq-btn{min-width:0!important;max-width:100%!important;white-space:normal!important;text-align:center!important;justify-content:center!important;padding:9px 12px!important;font-size:clamp(12px,0.9vw,14px)!important;line-height:1.2!important;flex:0 1 auto!important}
  .sspq-btn-small,.sspq-row-actions .sspq-btn{padding:7px 9px!important;font-size:12px!important}

  /* Champs: largeur fluide et aucun élément qui force le layout. */
  .sspq-content input,.sspq-content select,.sspq-content textarea{max-width:100%!important;min-width:0!important;box-sizing:border-box!important;font-size:clamp(12px,0.9vw,14px)!important}
  .sspq-form-grid,.sspq-site-form .sspq-form-grid,.sspq-attendance-export-form,
  .sspq-clock-edit-form,.sspq-report-config-layout{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))!important;gap:12px!important;min-width:0!important;max-width:100%!important}

  /* Grilles générales: cartes plus compactes et automatiques sur laptop. */
  .sspq-dashboard-kpis,.sspq-sites-stats,.sspq-employee-summary,.sspq-nethris-summary-grid,
  .sspq-requests-grid,.sspq-requests-self-grid,.sspq-quick-links,
  .sspq-calendar-grid{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))!important;gap:12px!important;min-width:0!important;max-width:100%!important}
  .sspq-panel,.sspq-dashboard-kpi,.sspq-sites-stats>div,.sspq-card,.sspq-quick-link,
  .sspq-open-shift-card,.sspq-request-card{padding:clamp(12px,1.1vw,18px)!important;border-radius:14px!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}

  /* Tableaux laptop: visibles, mais sans pousser toute la page. */
  .sspq-table-wrap{max-width:100%!important;overflow-x:auto!important;overscroll-behavior-inline:contain!important;border-radius:14px!important}
  .sspq-table{width:100%!important;min-width:0!important;table-layout:auto!important}
  .sspq-table th,.sspq-table td{font-size:clamp(12px,0.86vw,14px)!important;padding:8px 9px!important;max-width:280px!important;white-space:normal!important;overflow-wrap:anywhere!important;vertical-align:top!important}
  .sspq-table th{font-size:11px!important;line-height:1.2!important}

  /* Modales et aperçus: largeur contrôlée sur laptop. */
  .sspq-modal-card{width:min(920px,calc(100vw - 110px))!important;max-width:calc(100vw - 110px)!important;min-width:0!important;box-sizing:border-box!important;max-height:92vh!important;overflow:auto!important}
  .sspq-phone-frame{max-width:min(320px,100%)!important}
}

@media (min-width:1024px) and (max-width:1180px){
  .sspq-content{padding:12px!important;font-size:13px!important}
  .sspq-panel,.sspq-dashboard-kpi,.sspq-card{padding:12px!important}
  .sspq-toolbar label,.sspq-toolbar form,.sspq-toolbar .sspq-inline-form,
  .sspq-schedule-toolbar label,.sspq-schedule-toolbar form,.sspq-schedule-toolbar .sspq-inline-form{flex:1 1 150px!important;min-width:140px!important}
  .sspq-dashboard-kpis,.sspq-sites-stats,.sspq-employee-summary,.sspq-nethris-summary-grid,
  .sspq-requests-grid,.sspq-requests-self-grid,.sspq-quick-links{grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr))!important;gap:10px!important}
  .sspq-table th,.sspq-table td{padding:7px!important;font-size:12px!important;max-width:220px!important}
  .sspq-btn{padding:8px 10px!important;font-size:12px!important}
}


/* ============================================================
   SSPQ 2.0.106 — Cartes de quarts adaptatives en mode laptop
   Objectif: les cartes dans le calendrier horaire ne déforment plus
   les colonnes et restent lisibles dans un écran laptop.
   ============================================================ */
@media (min-width:1024px) and (max-width:1440px){
  /* Empêche une carte de quart de forcer la largeur d'une journée. */
  .sspq-schedule-card,
  .sspq-schedule-request-card{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:auto!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    margin:6px!important;
    padding:8px 9px!important;
    border-radius:10px!important;
  }

  /* Les textes internes se coupent proprement au lieu de pousser la colonne. */
  .sspq-schedule-card .sspq-schedule-time,
  .sspq-schedule-card .sspq-schedule-site,
  .sspq-schedule-card .sspq-schedule-employee,
  .sspq-schedule-card .sspq-schedule-meta,
  .sspq-schedule-card .sspq-schedule-meta span,
  .sspq-schedule-card .sspq-schedule-edit-hint,
  .sspq-schedule-request-card strong,
  .sspq-schedule-request-card span,
  .sspq-schedule-request-card em,
  .sspq-schedule-request-card small{
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  .sspq-schedule-card .sspq-schedule-time{
    font-size:clamp(10px,0.85vw,12px)!important;
    line-height:1.15!important;
    padding-left:22px!important;
    padding-right:24px!important;
    margin-bottom:3px!important;
  }
  .sspq-schedule-card .sspq-schedule-site{
    font-size:clamp(10px,0.82vw,12px)!important;
    line-height:1.2!important;
    font-weight:900!important;
  }
  .sspq-schedule-card .sspq-schedule-employee,
  .sspq-schedule-card .sspq-schedule-meta{
    font-size:clamp(10px,0.78vw,11px)!important;
    line-height:1.2!important;
  }
  .sspq-schedule-card .sspq-schedule-edit-hint{
    font-size:9px!important;
    margin-top:4px!important;
  }

  /* Icônes de statut et case de sélection réduites pour ne pas manger l'espace. */
  .sspq-schedule-select{
    left:6px!important;
    top:6px!important;
    width:18px!important;
    height:18px!important;
    border-radius:5px!important;
  }
  .sspq-shift-status-icon{
    right:6px!important;
    top:6px!important;
    width:20px!important;
    height:20px!important;
    font-size:11px!important;
  }

  /* Grille employé: les cellules ne doivent jamais élargir la page. */
  .sspq-schedule-employee-cell,
  .sspq-schedule-day{
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  .sspq-schedule-employee-cell .sspq-schedule-card{
    margin:0 0 6px 0!important;
  }

  /* Vue mois: cartes encore plus compactes pour garder 7 colonnes. */
  .sspq-schedule-calendar-month .sspq-schedule-card,
  .sspq-schedule-calendar-month .sspq-schedule-request-card{
    margin:4px!important;
    padding:6px 7px!important;
    border-left-width:4px!important;
  }
  .sspq-schedule-calendar-month .sspq-schedule-time,
  .sspq-schedule-calendar-month .sspq-schedule-site,
  .sspq-schedule-calendar-month .sspq-schedule-employee,
  .sspq-schedule-calendar-month .sspq-schedule-meta{
    font-size:10px!important;
  }
}

@media (min-width:1024px) and (max-width:1180px){
  /* Laptop étroit: priorité à la lisibilité minimale sans barre horizontale. */
  .sspq-schedule-calendar-week,
  .sspq-schedule-calendar-month,
  .sspq-schedule-calendar{
    gap:6px!important;
  }
  .sspq-schedule-card,
  .sspq-schedule-request-card{
    margin:4px!important;
    padding:6px 6px!important;
    border-left-width:4px!important;
  }
  .sspq-schedule-card .sspq-schedule-time{
    font-size:10px!important;
    padding-left:19px!important;
    padding-right:21px!important;
  }
  .sspq-schedule-card .sspq-schedule-site,
  .sspq-schedule-card .sspq-schedule-employee,
  .sspq-schedule-card .sspq-schedule-meta,
  .sspq-schedule-card .sspq-schedule-edit-hint{
    font-size:9.5px!important;
  }
  .sspq-schedule-select{width:16px!important;height:16px!important;left:5px!important;top:5px!important}
  .sspq-shift-status-icon{width:18px!important;height:18px!important;right:5px!important;top:5px!important;font-size:10px!important}
}

/* ============================================================
   SSPQ 2.0.107 — Horaire: cartes Jour/Semaine laptop
   Objectif: enlever le nom d'employé dans les cartes des vues
   Jour/Semaine et afficher les heures au complet sur laptop.
   ============================================================ */
@media (min-width:1024px){
  /* Dans les vues Jour/Semaine, le nom est déjà porté par la ligne employé.
     On le retire seulement des cartes du calendrier employé. */
  .sspq-schedule-employee-calendar .sspq-schedule-card .sspq-schedule-employee{
    display:none!important;
  }

  /* Les heures sont prioritaires: elles ne doivent jamais être coupées. */
  .sspq-schedule-employee-calendar .sspq-schedule-card .sspq-schedule-time{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    line-height:1.2!important;
    padding-left:0!important;
    padding-right:0!important;
    padding-top:20px!important;
    font-size:clamp(11px,0.9vw,13px)!important;
    font-weight:900!important;
  }

  .sspq-schedule-employee-calendar .sspq-schedule-card .sspq-schedule-site,
  .sspq-schedule-employee-calendar .sspq-schedule-card .sspq-schedule-meta{
    line-height:1.18!important;
  }
}

@media (min-width:1024px) and (max-width:1180px){
  .sspq-schedule-employee-calendar .sspq-schedule-card .sspq-schedule-time{
    font-size:11px!important;
    padding-top:19px!important;
  }
  .sspq-schedule-employee-calendar .sspq-schedule-card{
    padding:6px 7px!important;
  }
}

/* ============================================================
   SSPQ 2.0.108 — Correction réelle cartes Jour/Semaine laptop
   - Le nom d'employé est retiré au rendu PHP pour les vues jour/semaine.
   - Les heures restent sur une seule ligne et ne sont plus masquées par les icônes.
   ============================================================ */
@media (min-width:1024px){
  .sspq-schedule-calendar-panel.sspq-schedule-view-day .sspq-schedule-card .sspq-schedule-employee,
  .sspq-schedule-calendar-panel.sspq-schedule-view-week .sspq-schedule-card .sspq-schedule-employee{
    display:none!important;
  }

  .sspq-schedule-calendar-panel.sspq-schedule-view-day .sspq-schedule-employee-calendar .sspq-schedule-card,
  .sspq-schedule-calendar-panel.sspq-schedule-view-week .sspq-schedule-employee-calendar .sspq-schedule-card{
    display:block!important;
    padding:7px 6px!important;
    padding-top:26px!important;
    min-height:72px!important;
  }

  .sspq-schedule-calendar-panel.sspq-schedule-view-day .sspq-schedule-employee-calendar .sspq-schedule-time,
  .sspq-schedule-calendar-panel.sspq-schedule-view-week .sspq-schedule-employee-calendar .sspq-schedule-time{
    display:block!important;
    position:relative!important;
    clear:both!important;
    width:100%!important;
    max-width:none!important;
    min-width:max-content!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    padding:0!important;
    margin:0 0 4px 0!important;
    font-size:12px!important;
    line-height:1.15!important;
    font-weight:900!important;
    letter-spacing:-.02em!important;
  }

  .sspq-schedule-calendar-panel.sspq-schedule-view-day .sspq-schedule-employee-calendar .sspq-schedule-site,
  .sspq-schedule-calendar-panel.sspq-schedule-view-week .sspq-schedule-employee-calendar .sspq-schedule-site,
  .sspq-schedule-calendar-panel.sspq-schedule-view-day .sspq-schedule-employee-calendar .sspq-schedule-meta,
  .sspq-schedule-calendar-panel.sspq-schedule-view-week .sspq-schedule-employee-calendar .sspq-schedule-meta{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .sspq-schedule-calendar-panel.sspq-schedule-view-day .sspq-schedule-select,
  .sspq-schedule-calendar-panel.sspq-schedule-view-week .sspq-schedule-select{
    left:6px!important;
    top:5px!important;
  }
  .sspq-schedule-calendar-panel.sspq-schedule-view-day .sspq-shift-status-icon,
  .sspq-schedule-calendar-panel.sspq-schedule-view-week .sspq-shift-status-icon{
    right:6px!important;
    top:5px!important;
  }
}

@media (min-width:1024px) and (max-width:1180px){
  .sspq-schedule-calendar-panel.sspq-schedule-view-day .sspq-schedule-employee-calendar .sspq-schedule-time,
  .sspq-schedule-calendar-panel.sspq-schedule-view-week .sspq-schedule-employee-calendar .sspq-schedule-time{
    font-size:11px!important;
    letter-spacing:-.04em!important;
  }
}

/* ============================================================
   SSPQ 2.0.110 — Mobile: menu déroulant seulement
   ============================================================ */
.sspq-mobile-dropdown-menu{display:none}
@media (max-width:767px){
  /* Le menu latéral fixe/drawer n'est plus utilisé sur cellulaire. */
  .sspq-sidebar,
  .sspq-sidebar.is-open,
  .sspq-sidebar-overlay,
  .sspq-sidebar-overlay.is-open{
    display:none!important;
    position:static!important;
    inset:auto!important;
    width:auto!important;
    height:auto!important;
    max-width:none!important;
    box-shadow:none!important;
    transform:none!important;
    left:auto!important;
  }

  .sspq-hamburger{display:flex!important}
  .sspq-mobile-dropdown-menu{
    display:none;
    width:100%;
    background:#06172d;
    border-bottom:1px solid rgba(201,162,39,.45);
    padding:10px 12px 14px;
    box-shadow:0 12px 24px rgba(0,0,0,.22);
    z-index:95;
  }
  .sspq-mobile-dropdown-menu.is-open{display:grid!important;grid-template-columns:1fr;gap:8px}
  .sspq-mobile-dropdown-menu a{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:46px;
    padding:11px 12px;
    border:1px solid rgba(201,162,39,.28);
    border-radius:12px;
    background:#0b2447;
    color:#fff;
    text-decoration:none;
    font-weight:900;
  }
  .sspq-mobile-dropdown-menu a.is-active{
    background:var(--sspq-gold);
    color:var(--sspq-navy);
    border-color:var(--sspq-gold);
  }
  .sspq-mobile-dropdown-menu .sspq-nav-icon{width:24px;height:24px;min-width:24px;color:currentColor}
  .sspq-mobile-dropdown-menu .sspq-nav-icon svg{width:22px;height:22px}
  .sspq-mobile-dropdown-menu .sspq-nav-label{
    display:block!important;
    position:static!important;
    opacity:1!important;
    transform:none!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    color:inherit!important;
    max-width:100%!important;
  }
  .sspq-mobile-dropdown-menu .sspq-nav-logout{margin-top:2px;border-color:rgba(201,162,39,.45)}

  /* L'accueil garde ses grosses cartes de modules, mais ce n'est plus le menu principal. */
}


/* SSPQ 2.0.116 - Icônes menu premium SVG internes */
.sspq-sidebar .sspq-nav-icon,
.sspq-mobile-dropdown-menu .sspq-nav-icon{
  border-radius:14px;
  background:rgba(255,255,255,.08);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10), 0 8px 18px rgba(0,0,0,.12);
  transition:background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.sspq-sidebar a:hover .sspq-nav-icon,
.sspq-mobile-dropdown-menu a:hover .sspq-nav-icon,
.sspq-sidebar a.is-active .sspq-nav-icon,
.sspq-mobile-dropdown-menu a.is-active .sspq-nav-icon{
  background:rgba(255,255,255,.16);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18), 0 10px 22px rgba(0,0,0,.16);
  transform:translateY(-1px);
}
.sspq-nav-icon svg{
  stroke-width:1.85!important;
  vector-effect:non-scaling-stroke;
}
.sspq-nav-logout .sspq-nav-icon{
  background:rgba(255,255,255,.06);
}
@media (max-width:767px){
  .sspq-mobile-dropdown-menu .sspq-nav-icon{
    border-radius:12px;
    background:rgba(15,23,42,.06);
    box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);
  }
  .sspq-mobile-dropdown-menu a:hover .sspq-nav-icon,
  .sspq-mobile-dropdown-menu a.is-active .sspq-nav-icon{
    background:rgba(15,23,42,.10);
    box-shadow:inset 0 0 0 1px rgba(15,23,42,.12);
  }
}


/* SSPQ 2.0.119 - Horaire : uniformisation des boutons d'action */
.sspq-schedule-actions{align-items:stretch!important}
.sspq-schedule-actions>.sspq-btn,
.sspq-schedule-actions>.sspq-inline-form,
.sspq-schedule-actions>.sspq-inline-form>.sspq-btn,
.sspq-schedule-actions .sspq-schedule-main-action{
  width:190px!important;
  min-width:190px!important;
  max-width:190px!important;
  height:44px!important;
  min-height:44px!important;
  padding:0 14px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  line-height:1.15!important;
  font-size:14px!important;
  font-weight:800!important;
  text-align:center!important;
  white-space:normal!important;
}
.sspq-schedule-actions>.sspq-inline-form{
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  display:inline-flex!important;
}
.sspq-schedule-actions .sspq-schedule-publish-form,
.sspq-schedule-actions .sspq-schedule-publish-form:hover,
.sspq-schedule-actions .sspq-schedule-publish-form:focus-within{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  outline:0!important;
}
.sspq-schedule-actions .sspq-schedule-publish-btn{
  box-shadow:none!important;
  text-shadow:none!important;
  filter:none!important;
}
@media(max-width:760px){
  .sspq-schedule-actions>.sspq-btn,
  .sspq-schedule-actions>.sspq-inline-form,
  .sspq-schedule-actions>.sspq-inline-form>.sspq-btn,
  .sspq-schedule-actions .sspq-schedule-main-action{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}

/* SSPQ 2.0.122 - Dépôt robuste des quarts vers Quarts à combler */
.sspq-open-shifts-panel[data-sspq-open-drop]{
    transition:background .15s ease, outline-color .15s ease, box-shadow .15s ease;
}
.sspq-open-shifts-panel[data-sspq-open-drop].is-drop-target{
    outline:2px dashed var(--sspq-gold,#c9a227);
    outline-offset:-6px;
    background:#fffbeb;
    box-shadow:0 0 0 4px rgba(201,162,39,.12);
}
.sspq-open-shifts-panel[data-sspq-open-drop].is-drop-target .sspq-panel-head h2::after{
    content:' — déposer ici';
    color:var(--sspq-gold,#c9a227);
    font-size:.85em;
    font-weight:800;
}


/* SSPQ 2.0.122 - bouton Quarts à combler aussi zone de dépôt */
#sspq-toggle-open-shifts[data-sspq-open-drop]{
  position:relative;
}
#sspq-toggle-open-shifts[data-sspq-open-drop].is-drop-target{
  outline:2px dashed var(--sspq-gold,#c9a227)!important;
  outline-offset:3px;
  box-shadow:0 0 0 4px rgba(201,162,39,.16)!important;
}
.sspq-open-shifts-panel.is-drag-visible{
  display:block!important;
}

/* SSPQ 2.0.124 - Présences : heures planifiées, pointées et écart */
.sspq-timesheet-summary{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;color:var(--sspq-muted,#64748b);font-weight:800}
.sspq-timesheet-summary b{display:inline-flex;align-items:center;white-space:nowrap;background:#fff;border:1px solid var(--sspq-border,#d8dee9);border-radius:999px;padding:5px 9px;color:var(--sspq-navy,#0b2447);font-size:12px}
.sspq-attendance-variance{display:inline-flex;align-items:center;justify-content:center;min-width:64px;border-radius:999px;padding:5px 8px;font-weight:900;font-size:12px;border:1px solid var(--sspq-border,#d8dee9);background:#f8fafc;color:var(--sspq-navy,#0b2447)}
.sspq-attendance-variance.is-positive{background:#ecfdf3;border-color:#abefc6;color:#05603a}
.sspq-attendance-variance.is-negative{background:#fef3f2;border-color:#fecdca;color:#b42318}
.sspq-attendance-variance.is-zero{background:#f8fafc;color:#475467}
@media(max-width:760px){.sspq-timesheet-summary{justify-content:flex-start}.sspq-timesheet-summary b{width:100%;justify-content:space-between}}

/* SSPQ 2.0.125 - Présences : feuille de temps employé en page dédiée */
.sspq-timesheet-employee-list{
    display:grid;
    gap:12px;
}
.sspq-employee-timesheet-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    width:100%;
    padding:14px 16px;
    border:1px solid rgba(148,163,184,.35);
    border-radius:14px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    box-shadow:0 8px 20px rgba(15,23,42,.06);
}
.sspq-employee-timesheet-link:hover{
    border-color:rgba(30,64,175,.45);
    transform:translateY(-1px);
}
.sspq-timesheet-detail-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:16px;
}
.sspq-timesheet-detail-head h3{
    margin:0 0 4px;
}
.sspq-timesheet-kpis{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin:0 0 16px;
}
.sspq-timesheet-kpi{
    border:1px solid rgba(148,163,184,.35);
    border-radius:14px;
    background:#fff;
    padding:14px 16px;
}
.sspq-timesheet-kpi span{
    display:block;
    font-size:12px;
    color:#64748b;
    margin-bottom:6px;
}
.sspq-timesheet-kpi strong{
    font-size:20px;
}
@media (max-width:767px){
    .sspq-employee-timesheet-link,
    .sspq-timesheet-detail-head{
        align-items:stretch;
        flex-direction:column;
    }
    .sspq-timesheet-summary{
        display:grid;
        gap:6px;
    }
    .sspq-timesheet-kpis{
        grid-template-columns:1fr;
    }
}

/* SSPQ 2.0.126 - Navigation fiche employé feuille de temps */
.sspq-timesheet-profile-nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:12px 0 16px;
    padding:12px;
    border:1px solid rgba(148,163,184,.22);
    border-radius:16px;
    background:rgba(15,23,42,.04);
}
.sspq-timesheet-profile-nav strong{
    text-align:center;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.sspq-timesheet-profile-nav .is-disabled{
    opacity:.45;
    pointer-events:none;
}
@media (max-width:767px){
    .sspq-timesheet-profile-nav{
        display:grid;
        grid-template-columns:1fr 1fr;
    }
    .sspq-timesheet-profile-nav strong{
        grid-column:1 / -1;
        grid-row:1;
    }
}

/* SSPQ 2.0.128 - Page Sites: liste seulement, fiche dédiée au clic */
.sspq-sites-index{display:block;width:100%;}
.sspq-sites-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:14px;}
.sspq-site-card{position:relative;display:flex;align-items:center;gap:12px;min-height:74px;padding:14px 16px;border:1px solid rgba(15,23,42,.10);border-radius:16px;background:#fff;text-decoration:none;color:inherit;box-shadow:0 8px 22px rgba(15,23,42,.06);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;}
.sspq-site-card:hover{transform:translateY(-1px);border-color:rgba(11,31,58,.25);box-shadow:0 12px 28px rgba(15,23,42,.10);}
.sspq-site-card-color{width:12px;height:44px;border-radius:999px;flex:0 0 12px;}
.sspq-site-card-main{display:flex;flex-direction:column;min-width:0;gap:3px;}
.sspq-site-card-main strong{font-size:15px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sspq-site-card-main small{font-size:12px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sspq-site-card em{margin-left:auto;font-size:12px;font-style:normal;font-weight:700;color:#0b1f3a;background:#eef2f7;border-radius:999px;padding:5px 9px;white-space:nowrap;}
@media (max-width:767px){.sspq-sites-card-grid{grid-template-columns:1fr}.sspq-site-card{min-height:68px;padding:12px}.sspq-site-card-main strong{font-size:14px}.sspq-site-card em{font-size:11px;padding:4px 8px}}


/* SSPQ 2.0.129 - Cartes Sites agrandies pour noms longs */
.sspq-sites-card-grid{
    grid-template-columns:repeat(auto-fit,minmax(340px,1fr)) !important;
    gap:18px !important;
}
.sspq-site-card{
    min-height:158px !important;
    padding:20px 22px !important;
    align-items:flex-start !important;
    gap:16px !important;
}
.sspq-site-card-color{
    height:88px !important;
    flex:0 0 14px !important;
}
.sspq-site-card-main{
    flex:1 1 auto !important;
    gap:8px !important;
    padding-right:8px !important;
}
.sspq-site-card-main strong{
    font-size:18px !important;
    line-height:1.32 !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    word-break:break-word !important;
}
.sspq-site-card-main small{
    font-size:13px !important;
    line-height:1.35 !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
}
.sspq-site-card em{
    align-self:flex-start !important;
    margin-left:0 !important;
    flex:0 0 auto !important;
    font-size:12px !important;
}
@media (min-width:901px) and (max-width:1280px){
    .sspq-sites-card-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr)) !important;}
    .sspq-site-card{min-height:150px !important;padding:18px !important;}
}
@media (max-width:767px){
    .sspq-sites-card-grid{grid-template-columns:1fr !important;gap:12px !important;}
    .sspq-site-card{min-height:132px !important;padding:16px !important;}
    .sspq-site-card-color{height:72px !important;}
    .sspq-site-card-main strong{font-size:16px !important;}
}

/* SSPQ 2.0.131 - Primes pointage affichées dans la modale */
.sspq-attendance-auto-premiums{grid-column:1/-1;border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;background:#f8fafc;padding:12px;color:var(--sspq-navy,#0b2447)}
.sspq-attendance-auto-premiums strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--sspq-muted,#64748b);margin-bottom:6px}
.sspq-attendance-auto-premiums ul{margin:0;padding-left:18px;font-weight:800}
/* SSPQ 2.0.130 - Cartes Sites: titres fluides laptop/mobile sans chevauchement */
.sspq-sites-card-grid{
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr)) !important;
    gap:16px !important;
}
.sspq-site-card{
    min-height:136px !important;
    padding:17px 18px !important;
    align-items:flex-start !important;
    gap:14px !important;
    overflow:hidden !important;
}
.sspq-site-card-main{
    flex:1 1 auto !important;
    min-width:0 !important;
    gap:7px !important;
    padding-right:6px !important;
}
.sspq-site-card-main strong{
    font-size:clamp(14px,1.05vw,15.5px) !important;
    line-height:1.25 !important;
    font-weight:700 !important;
    min-height:0 !important;
    max-height:calc(1.25em * 2) !important;
    white-space:normal !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    overflow-wrap:anywhere !important;
}
.sspq-site-card-main small{
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    overflow:hidden !important;
    white-space:normal !important;
    text-overflow:ellipsis !important;
    font-size:12.5px !important;
    line-height:1.35 !important;
    color:#64748b !important;
    overflow-wrap:anywhere !important;
}
.sspq-site-card-color{
    height:72px !important;
    flex:0 0 12px !important;
}
.sspq-site-card em{
    align-self:flex-start !important;
    margin-left:0 !important;
    flex:0 0 auto !important;
    font-size:11.5px !important;
    line-height:1 !important;
    padding:6px 8px !important;
}
@media (min-width:901px) and (max-width:1280px){
    .sspq-sites-card-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr)) !important;gap:14px !important;}
    .sspq-site-card{min-height:128px !important;padding:15px 16px !important;gap:12px !important;}
    .sspq-site-card-main strong{font-size:14px !important;line-height:1.22 !important;max-height:calc(1.22em * 2) !important;}
    .sspq-site-card-main small{font-size:12px !important;line-height:1.3 !important;}
    .sspq-site-card-color{height:64px !important;flex-basis:10px !important;}
}
@media (max-width:767px){
    .sspq-sites-card-grid{grid-template-columns:1fr !important;gap:12px !important;}
    .sspq-site-card{min-height:112px !important;padding:14px !important;gap:11px !important;}
    .sspq-site-card-main{gap:6px !important;padding-right:0 !important;}
    .sspq-site-card-main strong{font-size:14px !important;line-height:1.22 !important;max-height:calc(1.22em * 2) !important;}
    .sspq-site-card-main small{font-size:12px !important;line-height:1.3 !important;-webkit-line-clamp:2 !important;line-clamp:2 !important;}
    .sspq-site-card-color{height:58px !important;flex-basis:10px !important;}
    .sspq-site-card em{font-size:11px !important;padding:5px 7px !important;}
}

/* SSPQ 2.0.140 — Topbar mobile : logo gauche, employé centre, hamburger droite */
.sspq-mobile-topbar-logo{display:none}
@media (max-width:767px){
  .sspq-topbar{
    display:grid!important;
    grid-template-columns:minmax(120px,38vw) minmax(0,1fr) 52px!important;
    align-items:center!important;
    gap:8px!important;
    min-height:60px!important;
    padding:8px 12px!important;
    background:#06172d!important;
    border-bottom:1px solid rgba(201,162,39,.45)!important;
    box-shadow:0 6px 18px rgba(0,0,0,.22)!important;
  }
  .sspq-mobile-topbar-logo{
    display:flex!important;
    grid-column:1!important;
    grid-row:1!important;
    align-items:center!important;
    justify-content:flex-start!important;
    min-width:0!important;
    text-decoration:none!important;
  }
  .sspq-mobile-topbar-logo img{
    display:block!important;
    max-width:46px!important;
    max-height:42px!important;
    width:auto!important;
    height:auto!important;
    object-fit:contain!important;
  }
  .sspq-mobile-topbar-logo span{
    color:#f3d982!important;
    font-weight:900!important;
    font-size:15px!important;
    letter-spacing:.04em!important;
  }
  .sspq-topbar-title{display:none!important}
  .sspq-topbar .sspq-user{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    justify-self:center!important;
    max-width:100%!important;
    margin:0!important;
    color:#fff!important;
    text-align:center!important;
  }
  .sspq-topbar .sspq-user span{
    display:block!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    color:#fff!important;
    font-size:15px!important;
    font-weight:800!important;
    line-height:1.2!important;
  }
  .sspq-topbar .sspq-hamburger{
    grid-column:3!important;
    grid-row:1!important;
    justify-self:end!important;
    margin:0!important;
    width:44px!important;
    height:44px!important;
    padding:10px!important;
    border:1px solid rgba(201,162,39,.55)!important;
    background:#0b2447!important;
    border-radius:12px!important;
  }
  .sspq-hamburger span{
    width:22px!important;
    height:2px!important;
    background:#f3d982!important;
  }
  .sspq-mobile-dropdown-menu{
    position:sticky!important;
    top:60px!important;
  }
}



/* SSPQ 2.0.146 — Accueil : CSS KPI unifié, sans !important, spécificité .sspq-platform */
.sspq-dashboard-panels{margin-top:18px;display:block}
.sspq-dashboard-panel{border:1px solid var(--sspq-border,#d8dee9);border-radius:16px;background:#fff;padding:18px;box-shadow:0 14px 34px rgba(15,23,42,.08)}
.sspq-dashboard-panel[hidden]{display:none}
.sspq-dashboard-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid #e5e7eb;margin-bottom:12px}
.sspq-dashboard-panel-head h2{margin:0;font-size:20px;color:var(--sspq-navy,#071b3a)}
.sspq-dashboard-panel-head p{margin:6px 0 0;color:var(--sspq-muted,#64748b);font-weight:600}
@media (max-width:900px){
  .sspq-dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sspq-platform .sspq-dashboard-kpi{min-height:112px;padding:14px}
  .sspq-platform .sspq-dashboard-kpi strong{font-size:30px}
}
@media (max-width:767px){
  .sspq-dashboard-kpis{grid-template-columns:1fr}
  .sspq-platform .sspq-dashboard-kpi{min-height:104px;padding:12px}
  .sspq-platform .sspq-dashboard-kpi strong{font-size:26px}
  .sspq-dashboard-panel-head{align-items:stretch;flex-direction:column}
  .sspq-dashboard-panel-head .sspq-btn{width:100%}
}

/* SSPQ 2.0.147 — Accueil : cartes forcées blanches
   Cause corrigée: certains styles de bouton/cartes globaux pouvaient reprendre le fond marin.
   Scope volontairement limité aux KPI de la page Accueil. */
.sspq-platform .sspq-dashboard-kpis button.sspq-dashboard-kpi,
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi,
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi:hover,
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi:focus,
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi:active,
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi.is-active{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    color:var(--sspq-text,#172033) !important;
    border-color:var(--sspq-border,#d8dee9) !important;
    box-shadow:0 10px 26px rgba(15,23,42,.05) !important;
}
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi:hover,
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi:focus,
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi.is-active{
    border-color:var(--sspq-gold,#c9a227) !important;
}
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi span,
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi em{
    color:var(--sspq-muted,#64748b) !important;
}
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi strong,
.sspq-platform .sspq-dashboard-kpis .sspq-dashboard-kpi small{
    color:var(--sspq-navy,#0b2447) !important;
}

/* SSPQ 2.0.148 - Présences : date du quart verrouillée et primes calculées visibles */
.sspq-attendance-fixed-date{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 16px;
    border:1px solid var(--sspq-border);
    border-radius:10px;
    background:#fff;
    margin:12px 0;
}
.sspq-attendance-fixed-date span{font-weight:700;color:var(--sspq-primary);}
.sspq-attendance-time-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.sspq-attendance-auto-premiums{
    padding:12px 16px;
    border:1px solid var(--sspq-border);
    border-radius:10px;
    background:#fff;
    margin:12px 0;
}
.sspq-attendance-auto-premiums ul{margin:8px 0 0 18px;padding:0;}
@media (max-width:700px){.sspq-attendance-time-grid{grid-template-columns:1fr;}}

/* SSPQ 2.0.152 - Primes visibles dans la fenêtre de pointage */
.sspq-attendance-premium-summary{border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;background:#f8fafc;padding:12px;margin:8px 0 14px;color:var(--sspq-navy,#0b2447)}
.sspq-attendance-premium-summary ul{margin:0;padding-left:18px;font-weight:800}
.sspq-attendance-premium-summary p{margin:0}


/* SSPQ 2.0.165 - Présences : séparation semaine 1 / semaine 2 */
.sspq-presence-week-separator td{
    background:#f3f6fb !important;
    color:#0b2341 !important;
    border-top:2px solid #d7e0eb !important;
    border-bottom:2px solid #d7e0eb !important;
    font-size:14px;
    letter-spacing:.02em;
    text-transform:uppercase;
}


/* SSPQ 2.0.165 - Total heures pointées par semaine dans Présences */
.sspq-presence-week-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    width:100%;
}
.sspq-presence-week-title span{
    font-weight:600;
    color:var(--sspq-text);
}
@media (max-width: 720px){
    .sspq-presence-week-title{
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }
}

/* SSPQ 2.0.165 - Présences semaines: total en bas de section */
.sspq-week-total-row td{
    text-align:right;
    font-weight:700;
    background:#f8fafc;
    border-top:1px solid #d9e2ef;
}

/* SSPQ 2.0.165 - Bouton Exporter la paie à côté d'Afficher */
.sspq-presence-filter-actions{
    display:flex;
    gap:8px;
    align-items:end;
    flex-wrap:wrap;
}
.sspq-payroll-export-btn{
    text-decoration:none;
}


/* SSPQ 2.0.166 - Primes : cases de sélection alignées dans les listes multi-sélection */
.sspq-multi-source{display:grid!important;gap:6px!important}
.sspq-multi-choice{display:grid!important;grid-template-columns:18px minmax(0,1fr)!important;align-items:center!important;column-gap:10px!important;line-height:1.3!important}
.sspq-multi-choice input[type=checkbox]{width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;margin:0!important;padding:0!important;justify-self:center!important}
.sspq-multi-choice span{display:block!important;min-width:0!important}

/* SSPQ 2.0.187 - Présences : primes manuelles structurées */
.sspq-manual-premium-controls{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end;margin-top:8px}
.sspq-manual-premium-list{display:grid;gap:8px;margin-top:10px}
.sspq-manual-premium-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--sspq-border,#d8dee9);border-radius:8px;background:#fff}
@media(max-width:720px){.sspq-manual-premium-controls,.sspq-manual-premium-row{grid-template-columns:1fr}.sspq-manual-premium-row .sspq-btn{width:100%}}

/* SSPQ 2.0.200 - Demandes: formulaires en fenêtres modales */
.sspq-request-launch-card{display:flex;flex-direction:column;justify-content:space-between;gap:14px;min-height:160px}
.sspq-request-launch-card h2{margin:0 0 8px;font-size:20px;color:var(--sspq-navy,#0b1f3a)}
.sspq-request-launch-card .sspq-btn{align-self:flex-start}
.sspq-request-modal .sspq-self-request-form{box-shadow:none;border:0;padding:0;margin:0}
.sspq-request-modal .sspq-form-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center}
@media(max-width:760px){.sspq-request-launch-card .sspq-btn{width:100%;justify-content:center}.sspq-request-modal .sspq-form-actions{flex-direction:column}.sspq-request-modal .sspq-form-actions .sspq-btn{width:100%;justify-content:center}}

/* SSPQ 2.0.203 - Présences : date et heure alignées dans le modal de pointage */
#sspq-attendance-clock-modal .sspq-attendance-datetime-edit{grid-template-columns:repeat(2,minmax(180px,1fr));}
#sspq-attendance-clock-modal .sspq-attendance-datetime-col{display:flex;flex-direction:column;gap:12px;min-width:0;}
#sspq-attendance-clock-modal .sspq-attendance-datetime-edit>input[type=hidden]{display:none;}
@media(max-width:760px){#sspq-attendance-clock-modal .sspq-attendance-datetime-edit{grid-template-columns:1fr;}}

/* SSPQ 2.0.208 - Module Opérations / Répartition */
.sspq-operations{display:grid;gap:18px}
.sspq-ops-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border:1px solid var(--sspq-border,#d8dee9);border-radius:18px;background:linear-gradient(135deg,#0b1f3a,#12345c);color:#fff;box-shadow:0 10px 30px rgba(11,31,58,.16)}
.sspq-ops-hero h2{margin:0 0 6px;color:#fff;font-size:24px}.sspq-ops-hero p{margin:0;opacity:.92}.sspq-ops-hero-badge{padding:8px 12px;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-weight:800;white-space:nowrap}
.sspq-ops-911-warning{border-left:5px solid #b42318;background:#fff7ed;color:#58220b}
.sspq-ops-tabs{display:flex;gap:8px;flex-wrap:wrap}.sspq-ops-tabs .sspq-tab{border:1px solid var(--sspq-border,#d8dee9);border-radius:999px;padding:9px 14px;text-decoration:none;background:#fff;font-weight:700;color:var(--sspq-navy,#0b1f3a)}.sspq-ops-tabs .sspq-tab.is-active{background:var(--sspq-navy,#0b1f3a);color:#fff}
.sspq-ops-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sspq-ops-kpi{padding:16px;border:1px solid var(--sspq-border,#d8dee9);border-radius:16px;background:#fff}.sspq-ops-kpi strong{display:block;font-size:30px;color:var(--sspq-navy,#0b1f3a)}.sspq-ops-kpi span{font-weight:700;color:#475569}
.sspq-operations-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.3fr);gap:18px;align-items:start}.sspq-incident-form .sspq-checkline,.sspq-small-check{display:flex;align-items:center;gap:8px;font-weight:700;color:#334155}.sspq-form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sspq-incident-list{display:grid;gap:12px}.sspq-incident-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,auto);gap:12px;padding:14px;border:1px solid var(--sspq-border,#d8dee9);border-left:6px solid #64748b;border-radius:16px;background:#fff}.sspq-incident-card.sspq-priority-p1{border-left-color:#b42318;background:#fffafa}.sspq-incident-card.sspq-priority-p2{border-left-color:#f59e0b;background:#fffbeb}.sspq-incident-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sspq-incident-title strong{font-size:16px}.sspq-incident-title span,.sspq-incident-title em,.sspq-status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;background:#eef2f7;color:#0f172a;font-size:12px;font-style:normal;font-weight:800}.sspq-incident-main p{margin:8px 0}.sspq-incident-actions{display:grid;gap:8px;align-content:start}.sspq-inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sspq-inline-form select,.sspq-inline-form textarea{min-width:160px}.sspq-close-details summary{cursor:pointer;font-weight:800;color:var(--sspq-navy,#0b1f3a)}.sspq-close-form textarea{width:100%;min-width:240px}
.sspq-ops-primary-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.sspq-ops-inline-editor{margin:0 0 14px}.sspq-ops-inline-editor[hidden]{display:none!important}.sspq-ops-map-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 12px}.sspq-ops-map-toolbar label{display:inline-flex;align-items:center;gap:6px;font-weight:700}.sspq-ops-map-toolbar [data-sspq-ops-map-updated]{margin-left:auto}.sspq-ops-map-icon-wrap{background:transparent;border:0}.sspq-ops-map-icon{display:block;width:22px;height:22px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px rgba(15,23,42,.35)}.sspq-ops-map-icon.is-sites{background:#2563eb}.sspq-ops-map-icon.is-units{background:#16a34a;transform:rotate(45deg);border-radius:5px}.sspq-ops-map-icon.is-incidents{background:#dc2626}.sspq-ops-map-icon.is-stale{background:#94a3b8;opacity:.78}.sspq-ops-map-icon.is-cluster{width:34px;height:34px;display:flex;align-items:center;justify-content:center;transform:none!important;border-radius:50%;font-size:12px;font-weight:900;color:#fff}.sspq-ops-map-icon.is-cluster b{line-height:1}.sspq-ops-map .leaflet-popup-content{line-height:1.35}.sspq-ops-map .sspq-map-error{height:100%;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-weight:800;color:#991b1b}
.sspq-ops-unit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.sspq-unit-card{display:grid;gap:10px;padding:14px;border:1px solid var(--sspq-border,#d8dee9);border-radius:16px;background:#fff}.sspq-unit-card strong,.sspq-unit-card span{display:block}.sspq-unit-card small{color:#64748b}.sspq-protocol-list{display:grid;gap:10px}.sspq-protocol-list div{padding:12px;border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;background:#fff}.sspq-protocol-list strong,.sspq-protocol-list span{display:block}.sspq-protocol-list span{color:#64748b;margin-top:3px}.sspq-ops-map{display:block;width:100%;height:620px;min-height:420px;border:1px solid var(--sspq-border,#d8dee9);border-radius:18px;overflow:hidden;background:#eef2f7}.sspq-ops-map .sspq-map-loading{height:100%;display:flex;align-items:center;justify-content:center;font-weight:800;color:#64748b}
@media(max-width:980px){.sspq-operations-layout{grid-template-columns:1fr}.sspq-incident-card{grid-template-columns:1fr}.sspq-ops-kpis{grid-template-columns:1fr}.sspq-ops-map-toolbar [data-sspq-ops-map-updated]{width:100%;margin-left:0}.sspq-ops-hero{align-items:flex-start;flex-direction:column}.sspq-inline-form,.sspq-inline-form select,.sspq-inline-form textarea,.sspq-inline-form .sspq-btn{width:100%;min-width:0}.sspq-ops-map{height:460px}}

/* SSPQ 2.0.209 - Accueil mobile : bouton Autorisations téléphone */
.sspq-mobile-phone-permissions{display:none;}
.sspq-phone-permissions-list{display:grid;gap:12px;margin-top:14px;}
.sspq-phone-permission-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border:1px solid var(--sspq-border,#d8dee9);border-radius:14px;background:#fff;padding:14px;}
.sspq-phone-permission-row strong{display:block;color:var(--sspq-navy,#0b2447);font-size:15px;}
.sspq-phone-permission-row span{display:block;margin-top:4px;color:var(--sspq-muted,#64748b);font-size:12px;font-weight:700;line-height:1.35;}
.sspq-phone-permission-row small{display:inline-flex;width:max-content;max-width:100%;margin-top:8px;border-radius:999px;background:#eef2f7;color:var(--sspq-navy,#0b2447);padding:5px 9px;font-size:11px;font-weight:900;line-height:1.1;}
.sspq-phone-permission-row small[data-state="granted"]{background:#dcfce7;color:#166534;}
.sspq-phone-permission-row small[data-state="denied"]{background:#fee2e2;color:#991b1b;}
.sspq-phone-permission-row small[data-state="prompt"]{background:#fef3c7;color:#92400e;}
@media(max-width:760px){
  .sspq-platform[data-sspq-page="accueil"] .sspq-mobile-phone-permissions{display:block;position:sticky;bottom:12px;z-index:30;margin:18px 0 0;padding:10px 0 calc(env(safe-area-inset-bottom,0px) + 4px);background:linear-gradient(180deg,rgba(244,246,248,0),rgba(244,246,248,.96) 24%,rgba(244,246,248,.96));}
  .sspq-platform[data-sspq-page="accueil"] .sspq-phone-permissions-open{width:100%;min-height:52px;justify-content:center;border-radius:16px;box-shadow:0 12px 28px rgba(2,8,23,.18);}
  .sspq-phone-permissions-modal .sspq-modal-card{width:min(680px,100%);max-height:88vh;}
  .sspq-phone-permission-row{grid-template-columns:1fr;}
  .sspq-phone-permission-row .sspq-btn{width:100%;justify-content:center;}
}

/* ============================================================
   SSPQ 2.0.210 — Horaire mobile
   - Les cartes de quart affichent le nom de l'employé.
   - Les flèches de navigation restent à gauche/droite d'Aujourd'hui.
   ============================================================ */
.sspq-schedule-date-nav{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
@media (max-width:767px){
  .sspq-schedule-toolbar{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important}
  .sspq-schedule-date-nav{display:grid!important;grid-template-columns:44px minmax(0,1fr) 44px!important;width:100%!important;gap:8px!important;align-items:stretch!important}
  .sspq-schedule-date-nav .sspq-btn{width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;padding:10px 8px!important}
  .sspq-schedule-date-nav .sspq-schedule-nav-arrow{font-size:22px!important;line-height:1!important;font-weight:900!important;padding-left:0!important;padding-right:0!important}
  .sspq-schedule-date-nav .sspq-schedule-today-btn{font-size:14px!important;font-weight:900!important}
  .sspq-schedule-mobile-cards .sspq-schedule-card .sspq-schedule-employee{display:block!important;font-size:12px!important;font-weight:900!important;color:var(--sspq-navy,#0b2447)!important;margin:4px 0 5px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
}

/* ============================================================
   SSPQ 2.0.211 — Accueil : cartes KPI adaptées
   - Grille plus lisible sur ordinateur : évite les cartes trop étroites.
   - Cartes uniformes, texte respirant, bouton aligné.
   - Mobile/tablette conservés sans impact sur les autres pages.
   ============================================================ */
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpis{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important;
  gap:16px!important;
  align-items:stretch!important;
  width:100%!important;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpi{
  min-width:0!important;
  min-height:152px!important;
  padding:18px!important;
  border-radius:16px!important;
  display:grid!important;
  grid-template-rows:auto auto 1fr auto!important;
  gap:8px!important;
  align-content:stretch!important;
  overflow:hidden!important;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpi span{
  min-width:0!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  letter-spacing:.01em!important;
  line-height:1.25!important;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpi strong{
  font-size:34px!important;
  line-height:1!important;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpi em{
  min-width:0!important;
  font-size:13px!important;
  line-height:1.35!important;
  overflow-wrap:anywhere!important;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpi small{
  align-self:end!important;
  justify-self:start!important;
  max-width:100%!important;
  white-space:normal!important;
}
@media (max-width:1180px){
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpis{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))!important;
  }
}
@media (max-width:760px){
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpis{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpi{
    min-height:120px!important;
    padding:14px!important;
    border-radius:14px!important;
  }
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpi strong{
    font-size:30px!important;
  }
}



/* SSPQ 2.0.214 - Présences mobile : les exports ne sont pas nécessaires sur téléphone */
@media (max-width: 760px){
    .sspq-presence-period .sspq-payroll-export-btn,
    .sspq-presence-period .sspq-attendance-export-form{
        display:none!important;
    }
}

/* SSPQ 2.0.609 - Employés mobile : cartes strictement réduites */
@media (max-width: 760px){
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table tr{
    display:grid!important;
    grid-template-columns:40px 1fr!important;
    gap:6px 10px!important;
    padding:14px!important;
    align-items:center!important;
  }
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td{
    display:none!important;
  }
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td:nth-child(1),
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td:nth-child(2),
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td:nth-child(3),
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td:nth-child(4),
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td:nth-child(11){
    display:block!important;
    width:100%!important;
    padding:3px 0!important;
    border:0!important;
    min-width:0!important;
  }
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td:nth-child(1){order:1;grid-row:1/span 4;grid-column:1;align-self:start;}
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td:nth-child(11){order:2;grid-column:2;font-size:12px;font-weight:900;text-transform:uppercase;color:var(--sspq-muted,#64748b);}
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td:nth-child(2){order:3;grid-column:2;font-size:13px;font-weight:900;color:var(--sspq-navy,#0b2447);}
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td:nth-child(3){order:4;grid-column:2;font-size:16px;font-weight:900;color:#0f172a;}
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td:nth-child(4){order:5;grid-column:2;font-size:14px;font-weight:800;}
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table .sspq-employee-email-mobile-hidden{display:none!important;}
}


/* SSPQ 2.0.216 - Messages : suppression des conversations */
.sspq-message-thread-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;border-radius:8px}
.sspq-message-thread-row.is-active{background:#eef2f7}
.sspq-message-thread-row .sspq-message-thread{min-width:0}
.sspq-thread-delete-form{margin:0;padding:0}
.sspq-thread-delete-form button{border:0;background:transparent;color:#991b1b;font-size:11px;font-weight:800;text-decoration:underline;padding:4px 6px;min-height:0;border-radius:6px;cursor:pointer}
.sspq-thread-delete-form button:hover{background:#fee2e2;color:#7f1d1d}
@media(max-width:700px){.sspq-message-thread-row{grid-template-columns:1fr}.sspq-thread-delete-form{justify-self:end;margin-top:-4px}}

/* ============================================================
   SSPQ 2.0.221 — Menu mobile : logo complet, centré, 60 % hauteur menu
   Cause corrigée : la colonne gauche était trop étroite et coupait une partie du logo.
   ============================================================ */
@media (max-width:767px){
  .sspq-topbar{
    --sspq-mobile-topbar-height:60px;
  }
  .sspq-mobile-topbar-logo{
    height:var(--sspq-mobile-topbar-height)!important;
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .sspq-mobile-topbar-logo img{
    height:calc(var(--sspq-mobile-topbar-height) * .6)!important;
    max-height:calc(var(--sspq-mobile-topbar-height) * .6)!important;
    width:auto!important;
    max-width:100%!important;
    object-fit:contain!important;
    object-position:center left!important;
    display:block!important;
    margin:0 auto!important;
  }
}

/* SSPQ 2.0.222 - Accueil : attribution des quarts a combler aux postulants */
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-applicants{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(15,23,42,.08);
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-applicants > strong{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#475569;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-applicant{
  justify-content:space-between;
  align-items:center;
  gap:10px;
  width:100%;
  padding:8px 10px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:12px;
  background:#fff;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-applicant span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* SSPQ 2.0.236 - Accueil employe : detail cliquable des quarts a combler */
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  text-align:left;
  color:inherit;
  font:inherit;
  cursor:pointer;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn small{
  display:inline-block;
  margin-top:5px;
  color:#0b2447;
  font-weight:800;
  font-size:12px;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn:hover strong,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn:focus strong{
  text-decoration:underline;
}
.sspq-dashboard-open-shift-modal .sspq-modal-card{
  max-width:760px;
}
.sspq-dashboard-open-shift-detail-grid p{
  margin:6px 0 0;
  white-space:pre-wrap;
}

/* SSPQ 2.0.237 - Accueil mobile : quarts a combler adaptes */
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-detail-open-shifts{
  padding:12px;
  max-height:none;
  overflow:visible;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shifts-list{
  display:grid;
  gap:12px;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card{
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,.06);
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-top,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-meta{
  display:block;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-top{
  display:grid;
  gap:6px;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-top strong{
  display:block;
  color:var(--sspq-navy,#0b2447);
  font-size:18px;
  line-height:1.25;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-time{
  display:block;
  color:#475569;
  font-size:13px;
  font-weight:800;
  line-height:1.35;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-meta{
  color:#64748b;
  font-size:14px;
  font-weight:700;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn{
  display:grid;
  gap:8px;
  padding:0;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn small{
  width:max-content;
  max-width:100%;
}
@media(max-width:760px){
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-panel-head{
    display:grid;
    gap:12px;
  }
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-panel-head .sspq-btn{
    width:100%;
    justify-content:center;
  }
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card{
    padding:12px;
    border-radius:14px;
  }
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-top strong{
    font-size:17px;
  }
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-time,
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-meta{
    font-size:13px;
  }
  .sspq-dashboard-open-shift-modal .sspq-modal-card{
    width:min(100%, 560px);
    max-width:calc(100vw - 24px);
    padding:16px;
  }
  .sspq-dashboard-open-shift-modal .sspq-modal-actions{
    display:grid;
    gap:10px;
  }
  .sspq-dashboard-open-shift-modal .sspq-modal-actions .sspq-inline-form,
  .sspq-dashboard-open-shift-modal .sspq-modal-actions .sspq-btn{
    width:100%;
  }
}

/* SSPQ 2.0.238 - Accueil mobile : aucun defilement horizontal */
.sspq-platform[data-sspq-page="accueil"],
.sspq-platform[data-sspq-page="accueil"] .sspq-main,
.sspq-platform[data-sspq-page="accueil"] .sspq-content,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpis,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpi,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-panels,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-panel,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-detail,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shifts-list,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-top,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-time,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-meta{
  box-sizing:border-box!important;
  min-width:0!important;
  max-width:100%!important;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-content,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-panels,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-panel,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-detail-open-shifts{
  overflow-x:hidden!important;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn{
  width:100%!important;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn *,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-panel-head *,
.sspq-dashboard-open-shift-modal *{
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere!important;
  word-break:normal;
}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn small{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  white-space:normal!important;
  text-align:center;
}
@media(max-width:760px){
  body.sspq-fullscreen-page:has(.sspq-platform[data-sspq-page="accueil"]){
    overflow-x:hidden!important;
  }
  .sspq-platform[data-sspq-page="accueil"]{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  .sspq-platform[data-sspq-page="accueil"] .sspq-content{
    width:100%!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-panel{
    width:100%!important;
    padding:14px!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-detail-open-shifts{
    padding:10px 0 0!important;
  }
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card{
    margin-left:0!important;
    margin-right:0!important;
  }
  .sspq-dashboard-open-shift-modal{
    padding-left:12px!important;
    padding-right:12px!important;
    overflow-x:hidden!important;
  }
  .sspq-dashboard-open-shift-modal .sspq-modal-card{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
    overflow-x:hidden!important;
  }
}

/* SSPQ 2.0.240 - Presences : bouton pour utiliser les heures prevues du quart */
#sspq-attendance-clock-modal .sspq-use-planned-clock{
  grid-column:1/-1;
  justify-self:start;
  width:auto;
}
@media(max-width:760px){
  #sspq-attendance-clock-modal .sspq-use-planned-clock{
    width:100%;
    justify-content:center;
  }
}

/* SSPQ 2.0.242 - Sites : georeperage rayon/barrieres fiables */
.sspq-geofence-tools .leaflet-tile-pane{z-index:200!important}
.sspq-geofence-tools .leaflet-overlay-pane{z-index:400!important}
.sspq-geofence-tools .leaflet-shadow-pane{z-index:500!important}
.sspq-geofence-tools .leaflet-marker-pane{z-index:600!important}
.sspq-geofence-tools .leaflet-tooltip-pane{z-index:650!important}
.sspq-geofence-tools .leaflet-popup-pane{z-index:700!important}
.sspq-geofence-tools .leaflet-control-container{position:relative!important;z-index:900!important}
.sspq-geofence-tools .sspq-leaflet-map.is-drawing-barrier{cursor:crosshair!important;box-shadow:0 0 0 3px rgba(201,162,39,.32)!important}
.sspq-geofence-tools .sspq-leaflet-map.is-drawing-barrier:after{content:"Mode dessin actif : cliquez sur la carte pour ajouter les points";position:absolute;left:12px;right:12px;top:12px;z-index:850;background:rgba(11,36,71,.92);color:#fff;border-radius:12px;padding:10px 12px;font-weight:900;text-align:center;pointer-events:none}
.sspq-geofence-tools .leaflet-interactive{outline:none!important}
.sspq-geofence-tools .sspq-map-toolbar [data-map-action="draw-polygon"]:focus,
.sspq-geofence-tools .sspq-map-toolbar [data-map-action="finish-polygon"]:focus{outline:3px solid rgba(201,162,39,.42);outline-offset:2px}
@media(max-width:760px){.sspq-geofence-tools .sspq-map-toolbar{display:grid;grid-template-columns:1fr 1fr}.sspq-geofence-tools .sspq-map-toolbar .sspq-map-search,.sspq-geofence-tools .sspq-map-toolbar .sspq-map-search-btn{grid-column:1/-1}.sspq-geofence-tools .sspq-map-toolbar .sspq-btn{width:100%;min-width:0}}


/* SSPQ 2.0.243 - Géorepérage : couches visibles et dessin manuel robuste */
.sspq-geofence-tools .sspq-leaflet-map,
.sspq-geofence-tools .sspq-leaflet-map.leaflet-container{
  display:block!important;
  width:100%!important;
  height:500px!important;
  min-height:500px!important;
  overflow:hidden!important;
  background:#eef2f7!important;
  touch-action:manipulation;
}
.sspq-geofence-tools .leaflet-map-pane{z-index:100!important}
.sspq-geofence-tools .leaflet-tile-pane{z-index:200!important}
.sspq-geofence-tools .leaflet-overlay-pane{z-index:400!important}
.sspq-geofence-tools .leaflet-pane.leaflet-sspqGeofencePane-pane,
.sspq-geofence-tools .leaflet-sspqGeofencePane-pane{z-index:650!important;pointer-events:auto!important}
.sspq-geofence-tools .leaflet-shadow-pane{z-index:500!important}
.sspq-geofence-tools .leaflet-marker-pane{z-index:700!important}
.sspq-geofence-tools .leaflet-tooltip-pane{z-index:750!important}
.sspq-geofence-tools .leaflet-popup-pane{z-index:800!important}
.sspq-geofence-tools .leaflet-control-container{position:relative!important;z-index:950!important}
.sspq-geofence-tools .leaflet-interactive{stroke-opacity:1!important;visibility:visible!important}
.sspq-geofence-tools .sspq-geofence-draw-status{
  margin:10px 0 0;
  padding:10px 12px;
  border:1px solid #facc15;
  border-radius:12px;
  background:#fffbeb;
  color:#713f12;
  font-weight:900;
}
.sspq-geofence-tools .sspq-leaflet-map.is-drawing-barrier{cursor:crosshair!important;touch-action:none!important;box-shadow:0 0 0 3px rgba(201,162,39,.42)!important}
.sspq-geofence-tools .sspq-leaflet-map.is-drawing-barrier:after{z-index:980!important}
@media(max-width:760px){
  .sspq-geofence-tools .sspq-leaflet-map,
  .sspq-geofence-tools .sspq-leaflet-map.leaflet-container{height:420px!important;min-height:420px!important}
}

/* ============================================================
   SSPQ 2.0.263 — Horaire: quarts à combler multiples visibles
   Cause: quand plusieurs postes ouverts existent au même site et à la même heure,
   la cellule ne doit pas couper visuellement les cartes supplémentaires.
   ============================================================ */
.sspq-schedule-open-row .sspq-schedule-employee-days,
.sspq-schedule-open-row .sspq-schedule-employee-cell{
  align-items:stretch!important;
  overflow:visible!important;
}
.sspq-schedule-open-row .sspq-schedule-employee-cell{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  min-height:92px!important;
}
.sspq-schedule-open-row .sspq-schedule-card{
  flex:0 0 auto!important;
}
@media (min-width:1024px){
  .sspq-schedule-open-row .sspq-schedule-employee-cell{
    overflow:visible!important;
  }
}

/* SSPQ 2.0.300 - Fenêtre créer quart : les champs conditionnels doivent rester cachés malgré la grille. */
.sspq-horaire-editor [hidden],
.sspq-horaire-editor [data-sspq-sub-position-wrap][hidden],
.sspq-horaire-editor [data-sspq-recurrence-details][hidden],
.sspq-horaire-editor [data-sspq-recurrence-field][hidden]{display:none!important;}

/* SSPQ 2.0.325 - aide autorisations téléphone */
.sspq-phone-permission-help{display:block;margin-top:4px;color:#7f1d1d;font-weight:600;}
.sspq-badge-muted{background:#eef2f7;color:#475569;border:1px solid #cbd5e1;}

/* SSPQ 2.0.326 - véhicules et rondes GPS/NFC */
.sspq-vehicle-map,.sspq-patrol-map{min-height:390px;height:52vh;max-height:620px;border:1px solid #cbd5e1;border-radius:14px;overflow:hidden;background:#eef2f7;margin:14px 0;}
.sspq-patrol-run-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;}
.sspq-patrol-run-card{display:flex;flex-direction:column;gap:7px;padding:16px;border:1px solid #d8e1eb;border-radius:14px;color:inherit;text-decoration:none;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.05);}
.sspq-patrol-run-card:hover{border-color:#0b5cab;box-shadow:0 6px 16px rgba(15,23,42,.12);}
.sspq-patrol-run-card strong{font-size:1.02rem;}.sspq-patrol-run-card small{color:#64748b;}
.sspq-patrol-kpis{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px;margin:14px 0;}
.sspq-patrol-kpis>div{display:flex;flex-direction:column;gap:3px;padding:12px;border-radius:11px;background:#f1f5f9;}.sspq-patrol-kpis strong{font-size:1rem;}.sspq-patrol-kpis span{font-size:.78rem;color:#64748b;}
.sspq-patrol-gps-status{margin:12px 0;padding:10px 12px;border-radius:9px;background:#eff6ff;color:#1d4ed8;font-weight:600;}
.sspq-patrol-detail .sspq-inline-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:2px 0;}.sspq-patrol-detail .sspq-inline-form input,.sspq-patrol-detail .sspq-inline-form select{max-width:170px;min-height:32px;}
.sspq-patrol-export-actions,.sspq-patrol-complete-form{margin-top:16px;}.sspq-patrol-export-actions form{display:flex;flex-wrap:wrap;gap:8px;}
@media(max-width:700px){.sspq-vehicle-map,.sspq-patrol-map{height:48vh;min-height:310px;}.sspq-patrol-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}.sspq-patrol-detail .sspq-inline-form{align-items:stretch;}.sspq-patrol-detail .sspq-inline-form input,.sspq-patrol-detail .sspq-inline-form select{max-width:none;flex:1 1 130px;}}

/* SSPQ 2.0.331 - Noms de points et trajet Google Maps complet */
.sspq-trip-tools{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.sspq-trip-tools .sspq-map-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sspq-trip-map{height:520px!important;min-height:520px!important;position:relative!important;z-index:1!important;background:#eef2f7}
.sspq-trip-point-marker{display:flex!important;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:#0b2447;color:#fff;border:3px solid #c9a227;box-shadow:0 8px 18px rgba(15,23,42,.24);font-weight:900;font-size:14px}
.sspq-trip-point-marker span{line-height:1}
.sspq-trip-points-list{border:1px solid #d9e1ec;border-radius:14px;background:#fff;padding:12px}
.sspq-trip-points-items{display:flex;flex-direction:column;gap:8px}
.sspq-trip-point-item{display:grid;grid-template-columns:minmax(70px,.45fr) minmax(78px,.45fr) minmax(180px,1.25fr) minmax(150px,1fr) minmax(120px,.7fr) minmax(220px,auto);gap:8px;align-items:center;border:1px solid #e2e8f0;border-radius:12px;padding:10px;background:#f8fafc}
.sspq-trip-point-item strong{color:#0b2447}
.sspq-trip-point-item span{color:#475569;font-size:13px}
.sspq-trip-point-item label{display:flex;align-items:center;gap:6px;color:#475569;font-size:13px;margin:0}.sspq-trip-point-item .sspq-trip-name-field,.sspq-trip-point-item .sspq-trip-order-field{align-items:flex-start;flex-direction:column;gap:4px}.sspq-trip-point-item .sspq-trip-name-field input{max-width:100%;width:100%}.sspq-trip-point-item .sspq-trip-order-field input{max-width:76px;width:76px}
.sspq-trip-point-item input{max-width:78px}
.sspq-trip-point-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.sspq-trip-point-actions .sspq-btn{padding:7px 10px;font-size:12px}
@media(max-width:760px){.sspq-trip-map{height:380px!important;min-height:380px!important}.sspq-trip-point-item{grid-template-columns:1fr}.sspq-trip-tools .sspq-map-toolbar .sspq-btn{width:100%}}

/* SSPQ 2.0.333 - Flux mobile patrouille : rapport centralisé et navigation départ */
.sspq-patrol-new-report{margin:18px 0 12px;border:1px solid rgba(11,31,58,.14);border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(11,31,58,.06);overflow:hidden}
.sspq-patrol-new-report>summary{display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;list-style:none;background:#0b1f3a;color:#fff;font-weight:800;padding:12px 16px;border-radius:0}
.sspq-patrol-new-report>summary::-webkit-details-marker{display:none}
.sspq-patrol-new-report>summary:before{content:'+';font-size:18px;line-height:1}
.sspq-patrol-new-report[open]>summary:before{content:'−'}
.sspq-patrol-new-report-body{padding:16px}
.sspq-patrol-new-report .sspq-patrol-report-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:end}
.sspq-patrol-new-report .sspq-patrol-report-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#0b1f3a}
.sspq-patrol-new-report .sspq-patrol-report-form .wide{grid-column:1/-1}
.sspq-patrol-new-report .sspq-patrol-report-form input,
.sspq-patrol-new-report .sspq-patrol-report-form select,
.sspq-patrol-new-report .sspq-patrol-report-form textarea{width:100%}
@media (max-width: 640px){.sspq-patrol-new-report-body{padding:12px}.sspq-patrol-new-report .sspq-patrol-report-form{grid-template-columns:1fr}.sspq-route-sheet .sspq-action-row,.sspq-patrol-detail .sspq-action-row{display:grid;grid-template-columns:1fr;gap:10px}.sspq-route-sheet .sspq-action-row .sspq-btn,.sspq-patrol-detail .sspq-action-row .sspq-btn{width:100%;justify-content:center}}

/* SSPQ 2.0.334 - Vue mobile des trajets : points numérotés et trajet complet. */
.sspq-patrol-point-label{background:transparent;border:0;}
.sspq-patrol-point-label span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:#475569;color:#fff;border:3px solid #fff;box-shadow:0 4px 12px rgba(15,23,42,.28);font-weight:900;font-size:13px;line-height:1;}
.sspq-patrol-point-label.type-bouncie span{background:#2563eb;}
.sspq-patrol-point-label.type-mobile span{background:#7c3aed;}
.sspq-patrol-point-label.type-nfc span{background:#0891b2;}
.sspq-patrol-point-label.type-standard span{background:#475569;}
.sspq-patrol-point-label.is-next span,.sspq-patrol-point-label.type-next span{background:#f59e0b;color:#111827;box-shadow:0 0 0 4px rgba(245,158,11,.22),0 4px 12px rgba(15,23,42,.28);}
.sspq-patrol-point-label.is-done span,.sspq-patrol-point-label.type-completed span{background:#15803d;}
.sspq-patrol-point-label.is-problem span,.sspq-patrol-point-label.type-problem span{background:#dc2626;}
.sspq-patrol-map-legend{background:transparent;border:0;}
.sspq-patrol-map-legend-card{display:flex;flex-direction:column;gap:8px;min-width:170px;padding:10px 12px;border:1px solid rgba(203,213,225,.95);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 6px 18px rgba(15,23,42,.18);color:#0b1f3a;font-size:12px;line-height:1.25;}
.sspq-patrol-map-legend-card strong{font-size:12px;font-weight:900;color:#0b1f3a;}
.sspq-patrol-map-legend-items{display:grid;grid-template-columns:1fr;gap:6px;}
.sspq-patrol-map-legend-items span{display:flex;align-items:center;gap:8px;font-weight:700;color:#334155;white-space:nowrap;}
.sspq-patrol-map-legend-items i{display:inline-flex;flex:0 0 auto;width:12px;height:12px;border-radius:999px;border:2px solid #fff;box-shadow:0 1px 4px rgba(15,23,42,.18);background:#475569;}
.sspq-patrol-map-legend-items i.is-bouncie{background:#2563eb;}
.sspq-patrol-map-legend-items i.is-mobile{background:#7c3aed;}
.sspq-patrol-map-legend-items i.is-nfc{background:#0891b2;}
.sspq-patrol-map-legend-items i.is-next{background:#f59e0b;}
.sspq-patrol-map-legend-items i.is-done{background:#15803d;}
@media(max-width:760px){.sspq-patrol-map-legend-card{min-width:152px;padding:8px 10px;font-size:11px;gap:6px;}.sspq-patrol-map-legend-card strong{font-size:11px;}.sspq-patrol-map-legend-items{gap:5px;}.sspq-patrol-map-legend-items span{gap:7px;font-size:11px;}.sspq-patrol-map-legend-items i{width:11px;height:11px;}}
.sspq-patrol-map .leaflet-popup-content strong{color:#0b2447;}

/* SSPQ 2.0.335 - Rapports mobiles : champs dynamiques réels */
.sspq-patrol-new-report .sspq-report-check-options{display:flex;flex-direction:column;gap:8px;border:1px solid #d7e1ee;border-radius:10px;padding:10px;background:#f8fafc}
.sspq-patrol-new-report .sspq-report-check-options label{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-weight:600!important;margin:0;color:#0b1f3a}
.sspq-patrol-new-report .sspq-report-category-fields{grid-column:1/-1;border:1px dashed #b8c7da;border-radius:12px;padding:12px;background:#f8fbff;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.sspq-patrol-new-report .sspq-report-category-fields>strong{grid-column:1/-1;color:#0b1f3a}
.sspq-patrol-new-report .sspq-report-section{grid-column:1/-1;background:#eef4ff;border-left:4px solid #0b4fd8;border-radius:10px;padding:10px 12px;color:#0b1f3a}
@media(max-width:640px){.sspq-patrol-new-report .sspq-report-category-fields{grid-template-columns:1fr;padding:10px}.sspq-patrol-new-report .sspq-report-check-options{padding:8px}}

/* SSPQ 2.0.336 - Rapports mobiles : sélection du modèle dans une fenêtre, formulaire dans une deuxième fenêtre. */
.sspq-patrol-report-flow{margin:18px 0;}
.sspq-patrol-report-flow>.sspq-btn{width:100%;justify-content:center;}
html.sspq-modal-open{overflow:hidden;}
.sspq-report-modal[hidden]{display:none!important;}
.sspq-report-modal{position:fixed;inset:0;z-index:99999;background:rgba(3,11,24,.68);display:flex;align-items:center;justify-content:center;padding:18px;}
.sspq-report-modal-card{width:min(560px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:18px;border:1px solid #d7e1ee;box-shadow:0 24px 70px rgba(0,0,0,.32);}
.sspq-report-modal-card-large{width:min(860px,100%);}
.sspq-report-modal-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0b1f3a;color:#fff;padding:14px 18px;}
.sspq-report-modal-head h3{margin:0;font-size:20px;line-height:1.25;color:#fff;}
.sspq-report-modal-close{border:0;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;width:38px;height:38px;font-size:28px;line-height:1;cursor:pointer;}
.sspq-report-modal-body{padding:18px;}
.sspq-report-modal-body label{display:flex;flex-direction:column;gap:8px;font-weight:800;color:#0b1f3a;margin:0 0 14px;}
.sspq-report-modal-body input,.sspq-report-modal-body select,.sspq-report-modal-body textarea{width:100%;min-height:46px;border:1px solid #c9d5e4;border-radius:10px;padding:10px 12px;font-size:16px;background:#fff;}
.sspq-report-modal-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;padding:14px 18px;border-top:1px solid #e5edf6;background:#f8fafc;}
.sspq-report-modal-actions.wide{grid-column:1/-1;margin-top:8px;padding:14px 0 0;border-top:1px solid #e5edf6;background:transparent;}
.sspq-patrol-report-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;align-items:start;}
.sspq-patrol-report-form>.wide{grid-column:1/-1;}
.sspq-patrol-report-form .sspq-patrol-template-field{min-width:0;}
.sspq-patrol-report-form .sspq-report-template-text{grid-column:1/-1;}
.sspq-report-template-text-box{border:1px solid #d7e1ee;background:#f8fafc;border-radius:10px;padding:14px 16px;color:#102033;font-size:15px;line-height:1.55;white-space:normal;}
.sspq-report-template-text .sspq-muted{display:block;margin-top:6px;}
@media(max-width:640px){.sspq-report-modal{align-items:flex-end;padding:0;}.sspq-report-modal-card{width:100%;max-height:92vh;border-radius:18px 18px 0 0;}.sspq-report-modal-card-large{width:100%;}.sspq-report-modal-head{padding:14px 16px;}.sspq-report-modal-body{padding:16px;}.sspq-report-modal-actions{display:grid;grid-template-columns:1fr;}.sspq-report-modal-actions .sspq-btn{width:100%;justify-content:center;}.sspq-patrol-report-form{grid-template-columns:1fr;gap:12px;}.sspq-report-modal-body input,.sspq-report-modal-body select,.sspq-report-modal-body textarea{font-size:16px;}}

/* SSPQ 2.0.346 - Feuille de route terrain : interface mobile dédiée. */
.sspq-route-mobile{--route-line:#dbe4ee;--route-soft:#f5f8fc;position:relative;max-width:1100px;margin:0 auto;padding:0 0 calc(92px + env(safe-area-inset-bottom));color:#0b1f3a}
.sspq-route-mobile-header{padding:20px;background:var(--sspq-navy,#0b1f3a);color:#fff;border-radius:18px 18px 0 0;box-shadow:0 10px 24px rgba(11,31,58,.18)}
.sspq-route-mobile-header h2{color:#fff;margin:2px 0 0;font-size:clamp(22px,4vw,30px)}.sspq-route-mobile-header strong{color:#fff}.sspq-route-mobile-header span{color:rgba(255,255,255,.74)}
.sspq-route-mobile-header-top{display:flex;align-items:flex-start;gap:12px}.sspq-route-back{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.35);border-radius:999px;color:#fff;text-decoration:none;font-size:23px;font-weight:800}.sspq-route-eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800;opacity:.78}
.sspq-route-header-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px}.sspq-route-header-grid>div{display:flex;flex-direction:column;gap:3px}.sspq-route-header-grid span{font-size:12px}.sspq-route-header-grid strong{font-size:14px;overflow-wrap:anywhere}
.sspq-route-progress{margin-top:20px}.sspq-route-progress>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.sspq-route-progress-track{display:block;height:8px;margin-top:8px;border-radius:99px;background:rgba(255,255,255,.2);overflow:hidden}.sspq-route-progress-track i{display:block;height:100%;border-radius:inherit;background:var(--sspq-gold,#d8aa32);transition:width .2s ease}
.sspq-route-current-status{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px 0;padding:15px 18px;border:1px solid var(--route-line);border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(11,31,58,.05)}.sspq-route-current-status>div{display:flex;flex-direction:column;gap:2px}.sspq-route-current-status small{color:#526477}
.sspq-route-search{margin:16px 0}.sspq-route-search input{box-sizing:border-box;width:100%;min-height:48px;border:1px solid #bccbdd;border-radius:12px;background:#fff;padding:10px 14px;font-size:16px;box-shadow:0 2px 8px rgba(11,31,58,.04)}
.sspq-route-tabs{display:flex;gap:8px;overflow:auto;border-bottom:1px solid var(--route-line);padding-bottom:10px}.sspq-route-tab{border:1px solid #c5d2e2;border-radius:999px;background:#fff;color:#25415f;padding:9px 14px;font-weight:800;white-space:nowrap;cursor:pointer}.sspq-route-tab.is-active{border-color:var(--sspq-navy,#0b1f3a);background:var(--sspq-navy,#0b1f3a);color:#fff}
.sspq-route-task-list{display:flex;flex-direction:column;gap:12px;margin:16px 0}.sspq-route-group-label{margin:12px 0 0;font-size:15px;color:var(--sspq-navy,#0b1f3a)}
.sspq-route-task-card{border:1px solid var(--route-line);border-left:5px solid #93a4b8;border-radius:14px;background:#fff;padding:16px;box-shadow:0 5px 16px rgba(11,31,58,.05)}.sspq-route-task-card.is-en-route{border-left-color:var(--sspq-gold,#d8aa32)}.sspq-route-task-card.is-arrived{border-left-color:#1d7a9b}.sspq-route-task-card.is-progress{border-left-color:var(--sspq-navy,#0b1f3a)}.sspq-route-task-card.is-completed{border-left-color:#22734d}.sspq-route-task-card.is-impossible{border-left-color:#b42318}.sspq-route-task-card.is-late{box-shadow:0 0 0 1px rgba(180,83,9,.22),0 5px 16px rgba(11,31,58,.05)}
.sspq-route-task-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:start}.sspq-route-task-head h3{margin:0;color:var(--sspq-navy,#0b1f3a);font-size:18px}.sspq-route-task-number{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:#e9eef5;color:var(--sspq-navy,#0b1f3a);font-weight:900}.sspq-route-task-meta{margin:4px 0 0;color:#5b6c7e;font-size:13px}.sspq-route-task-flags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}.sspq-route-flag{border-radius:999px;background:#edf3fa;color:#294865;padding:4px 8px;font-size:11px;font-weight:800}.sspq-route-flag.is-required{background:#fff4d7;color:#7a5200}.sspq-route-task-details{margin-top:12px;color:#314a62}.sspq-route-task-details summary{cursor:pointer;font-weight:800;color:var(--sspq-navy,#0b1f3a)}.sspq-route-task-details p{margin:8px 0 0}.sspq-route-task-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.sspq-route-task-actions .sspq-patrol-report-flow{margin:0}.sspq-route-task-actions .sspq-patrol-report-flow>.sspq-btn{width:auto}.sspq-route-task-actions .sspq-btn{min-height:40px}
.sspq-route-justification-modal,.sspq-route-complete-sheet{border:1px solid #e0b3ad;border-radius:10px;background:#fff8f7}.sspq-route-justification-modal>summary,.sspq-route-complete-sheet>summary{list-style:none;cursor:pointer}.sspq-route-justification-modal>summary::-webkit-details-marker,.sspq-route-complete-sheet>summary::-webkit-details-marker{display:none}.sspq-route-justification-modal form,.sspq-route-complete-sheet form{display:flex;flex-direction:column;gap:9px;padding:12px}.sspq-route-justification-modal label,.sspq-route-complete-sheet label{display:flex;flex-direction:column;gap:5px;font-weight:800}.sspq-route-justification-modal textarea,.sspq-route-complete-sheet textarea{width:100%;box-sizing:border-box;border:1px solid #c5d2e2;border-radius:8px;padding:8px;font:inherit}
.sspq-route-empty{margin:18px 0;padding:24px;border:1px dashed #b7c5d6;border-radius:14px;background:var(--route-soft);text-align:center;color:#40576d}.sspq-route-empty p{margin:5px 0 0}.sspq-route-mobile-footer{position:sticky;bottom:0;z-index:20;display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:18px;padding:12px calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));border:1px solid var(--route-line);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 -8px 22px rgba(11,31,58,.12);backdrop-filter:blur(10px)}.sspq-route-mobile-footer .sspq-route-complete-sheet{margin:0}.sspq-route-mobile-footer .sspq-route-complete-sheet>summary{display:block}
@media(max-width:760px){.sspq-route-mobile{margin:0 -8px}.sspq-route-mobile-header{border-radius:0;padding:16px}.sspq-route-header-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sspq-route-current-status{margin:12px 8px}.sspq-route-search,.sspq-route-tabs,.sspq-route-task-list{margin-left:8px;margin-right:8px}.sspq-route-task-card{padding:14px}.sspq-route-task-head{grid-template-columns:auto minmax(0,1fr)}.sspq-route-task-head>.sspq-status-pill{grid-column:2;justify-self:start}.sspq-route-task-actions{display:grid;grid-template-columns:1fr}.sspq-route-task-actions .sspq-btn,.sspq-route-task-actions .sspq-patrol-report-flow>.sspq-btn{width:100%;justify-content:center}.sspq-route-justification-modal{width:100%}.sspq-route-mobile-footer{border-radius:0;justify-content:stretch}.sspq-route-mobile-footer>.sspq-btn,.sspq-route-mobile-footer>.sspq-inline-form,.sspq-route-mobile-footer .sspq-route-complete-sheet{flex:1}.sspq-route-mobile-footer .sspq-btn{width:100%;justify-content:center;padding-left:8px;padding-right:8px;font-size:12px}.sspq-route-mobile-footer .sspq-route-complete-sheet{display:flex}.sspq-route-mobile-footer .sspq-route-complete-sheet>summary{width:100%}}

/* SSPQ 2.0.347 — langage visuel terrain, inspiré des références fournies. */
.sspq-route-mobile{max-width:760px;background:#465362;color:#d6dce4;min-height:100vh;padding-bottom:86px}.sspq-route-mobile-header{border-radius:0;background:#000;padding:0;box-shadow:none}.sspq-route-mobile-header-top{align-items:center;justify-content:space-between;min-height:66px;padding:0 22px;background:#4b5766}.sspq-route-mobile-header-top:after{content:'Interrompre';font-size:15px;font-weight:800;color:#fff}.sspq-route-back{display:none}.sspq-route-eyebrow{display:none}.sspq-route-mobile-header h2{font-size:27px;font-weight:500;color:#e9edf2}.sspq-route-header-grid{grid-template-columns:1fr;gap:2px;padding:28px 28px 18px;margin:0}.sspq-route-header-grid>div{display:block}.sspq-route-header-grid>div:not(:nth-child(2)):not(:nth-child(3)){display:none}.sspq-route-header-grid span{display:none}.sspq-route-header-grid strong{font-size:19px;font-weight:400;line-height:1.4;color:#d7dce3}.sspq-route-header-grid>div:nth-child(2) strong:before{content:'Feuille de route actuelle\A';white-space:pre;font-size:27px;color:#e9edf2}.sspq-route-header-grid>div:nth-child(3) strong{font-size:0}.sspq-route-header-grid>div:nth-child(3) strong:after{content:'Quart assigné';font-size:19px;color:#d7dce3}.sspq-route-progress{position:absolute;top:103px;left:28px;width:104px;height:104px;margin:0;border:7px solid var(--sspq-gold,#d8aa32);border-radius:50%;display:flex;align-items:center;justify-content:center}.sspq-route-progress>div{display:block;text-align:center;line-height:1.15}.sspq-route-progress>div span{display:none}.sspq-route-progress>div strong{display:block;max-width:72px;color:#fff;font-size:14px}.sspq-route-progress-track{display:none}.sspq-route-header-grid{padding-left:160px;min-height:132px;box-sizing:border-box}
.sspq-route-current-status{margin:0;border:0;border-radius:0;box-shadow:none;background:#183b5d;color:#e1e7ed;padding:20px 28px}.sspq-route-current-status .sspq-route-eyebrow{display:none}.sspq-route-current-status strong{font-size:26px;color:#fff}.sspq-route-current-status small{font-size:17px;color:#d6e1ec;line-height:1.35}.sspq-route-current-status .sspq-status-pill{display:none}
.sspq-route-search{margin:0;padding:0;background:#465362}.sspq-route-search input{min-height:62px;border:1px solid #94a0af;border-radius:0;background:#7a8695;color:#fff;box-shadow:none;padding:13px 20px;font-size:18px}.sspq-route-search input::placeholder{color:#d6dbe1}.sspq-route-tabs{gap:0;overflow:visible;border:0;padding:0;background:#364656}.sspq-route-tab{flex:1;border:0;border-radius:0;background:#465362;color:#f4f6f8;padding:18px 6px;font-size:17px;font-weight:500}.sspq-route-tab.is-active{background:#344555;color:#fff}
.sspq-route-task-list{gap:0;margin:0;background:#465362}.sspq-route-group-label{margin:0;padding:14px 18px;background:#344555;color:#fff}.sspq-route-task-card{border:0;border-bottom:1px solid #293744;border-left:0;border-radius:0;background:#465362;color:#d8dee5;padding:22px 20px;box-shadow:none}.sspq-route-task-card.is-late{box-shadow:none}.sspq-route-task-head{grid-template-columns:minmax(0,1fr) auto;gap:8px}.sspq-route-task-number{display:none}.sspq-route-task-head h3{font-size:22px;line-height:1.25;color:#f0f2f5;font-weight:700}.sspq-route-task-meta{margin-top:13px;color:#d0d6de;font-size:17px;line-height:1.45}.sspq-route-task-head>.sspq-status-pill{min-width:40px;background:transparent!important;color:#fff;font-size:0;padding:0}.sspq-route-task-head>.sspq-status-pill:after{content:'⚠';font-size:31px;color:#edc252}.sspq-route-task-card.is-completed .sspq-route-task-head>.sspq-status-pill:after{content:'✓';color:#79b797}.sspq-route-task-card.is-en-route .sspq-route-task-head>.sspq-status-pill:after{content:'➜';color:var(--sspq-gold,#d8aa32)}.sspq-route-task-card.is-arrived .sspq-route-task-head>.sspq-status-pill:after,.sspq-route-task-card.is-progress .sspq-route-task-head>.sspq-status-pill:after{content:'●';color:#72a7d0}.sspq-route-task-flags{margin-top:10px}.sspq-route-flag{background:#536375;color:#eff3f7}.sspq-route-flag.is-required{background:#735c26;color:#fff0bf}.sspq-route-task-details{margin:15px 0 0;text-align:right}.sspq-route-task-details summary{color:#56aaf0;font-size:17px;font-weight:800}.sspq-route-task-details p{text-align:left;color:#d7dce3}.sspq-route-task-options{margin-top:12px;text-align:right}.sspq-route-task-options>summary{display:inline-block;color:#56aaf0;font-size:17px;font-weight:800;cursor:pointer;list-style:none}.sspq-route-task-options>summary::-webkit-details-marker{display:none}
.sspq-route-task-options[open]:before{content:'';position:fixed;inset:0;z-index:9996;background:rgba(0,0,0,.72)}.sspq-route-task-options[open]>summary{position:fixed;z-index:9998;top:calc(50% - 260px);left:calc(50% - min(42vw,330px));width:min(84vw,660px);box-sizing:border-box;background:#fff;color:#111;text-align:left;padding:22px 26px;font-size:28px}.sspq-route-task-options[open]>summary:after{content:'Options';font-size:28px}.sspq-route-task-options[open]>summary{font-size:0}.sspq-route-task-options[open]>.sspq-route-task-actions{position:fixed;z-index:9998;top:calc(50% - 198px);left:calc(50% - min(42vw,330px));width:min(84vw,660px);max-height:390px;overflow:auto;box-sizing:border-box;display:grid;grid-template-columns:1fr;gap:0;margin:0;background:#fff;text-align:left}.sspq-route-task-options[open]>.sspq-route-task-actions>.sspq-inline-form,.sspq-route-task-options[open]>.sspq-route-task-actions>a,.sspq-route-task-options[open]>.sspq-route-task-actions>.sspq-patrol-report-flow{margin:0;border-bottom:1px solid #d9dce0}.sspq-route-task-options[open]>.sspq-route-task-actions .sspq-btn,.sspq-route-task-options[open]>.sspq-route-task-actions .sspq-patrol-report-flow>.sspq-btn{width:100%;min-height:67px;border:0;border-radius:0;background:#fff!important;color:#111!important;justify-content:flex-start;padding:18px 26px;font-size:21px;font-weight:500;box-shadow:none}.sspq-route-task-options[open] .sspq-route-justification-modal{margin:0;border:0;border-radius:0;background:#fff}.sspq-route-task-options[open] .sspq-route-justification-modal>summary{min-height:67px;color:#b42318;background:#fff;padding:18px 26px;font-size:21px;text-align:left}.sspq-route-task-options[open] .sspq-route-justification-modal form{background:#fff;color:#111;text-align:left}
.sspq-route-mobile-footer{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);box-sizing:border-box;z-index:50;margin:0;border:0;border-radius:0;background:#303b46;box-shadow:0 -4px 12px rgba(0,0,0,.36);padding:12px 20px calc(12px + env(safe-area-inset-bottom));backdrop-filter:none}.sspq-route-mobile-footer .sspq-btn{min-height:58px;border-radius:4px;border:1px solid #465362;background:#222b32;color:#fff;font-size:17px}.sspq-route-mobile-footer .sspq-route-complete-sheet{border:0;background:transparent}.sspq-route-mobile-footer .sspq-route-complete-sheet>summary{min-height:58px;box-sizing:border-box;border:1px solid #465362;border-radius:4px;background:#222b32;color:#fff;padding:18px 10px;text-align:center;font-size:17px}.sspq-route-mobile-footer .sspq-route-complete-sheet[open] form{position:fixed;z-index:100;bottom:82px;right:12px;left:12px;background:#fff;color:#111;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.45)}
@media(max-width:640px){.sspq-route-mobile{margin:0 -8px}.sspq-route-mobile-header-top{padding:0 20px}.sspq-route-mobile-header h2{font-size:23px}.sspq-route-header-grid{padding-left:142px;padding-right:18px}.sspq-route-progress{left:22px;width:90px;height:90px;border-width:6px}.sspq-route-current-status{padding:18px 20px}.sspq-route-task-card{padding:20px 14px}.sspq-route-task-head h3{font-size:19px}.sspq-route-task-meta{font-size:16px}.sspq-route-task-options[open]>summary,.sspq-route-task-options[open]>.sspq-route-task-actions{left:8vw;width:84vw}.sspq-route-task-options[open]>summary{top:18vh}.sspq-route-task-options[open]>.sspq-route-task-actions{top:calc(18vh + 68px);max-height:68vh}.sspq-route-mobile-footer{padding-left:10px;padding-right:10px}.sspq-route-mobile-footer .sspq-btn,.sspq-route-mobile-footer .sspq-route-complete-sheet>summary{font-size:15px}}

/* SSPQ 2.0.349 - Correctifs demandés : accueil, modales, positions, répartition mobile. */
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpis .sspq-dashboard-kpi.is-service-count-alert strong{color:#067647!important;}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpis .sspq-dashboard-kpi.is-absent-count-alert strong{color:#b42318!important;}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpis .sspq-dashboard-kpi.is-warning-count-alert strong{color:#ca8a04!important;}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-kpis .sspq-dashboard-kpi.is-bsp-count-alert strong{color:#c2410c!important;}
.sspq-dashboard-phone-link{display:inline-flex;margin-top:4px;font-weight:800;color:var(--sspq-navy,#0b2447)!important;text-decoration:none;}
.sspq-dashboard-phone-link:hover{text-decoration:underline;}

.sspq-platform[data-sspq-page="accueil"] button.sspq-dashboard-open-shift-detail-btn{background:transparent!important;border:0!important;color:var(--sspq-navy,#0b2447)!important;box-shadow:none!important;padding:0!important;margin:0!important;text-align:left!important;width:100%!important;display:grid!important;gap:8px!important;cursor:pointer!important;}
.sspq-platform[data-sspq-page="accueil"] button.sspq-dashboard-open-shift-detail-btn *{color:inherit!important;}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card{background:#fff!important;border:1px solid #dbe3ef!important;border-radius:14px!important;padding:14px!important;box-shadow:0 4px 12px rgba(15,23,42,.06)!important;}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-top strong{color:var(--sspq-navy,#0b2447)!important;}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-time{color:#475569!important;font-weight:800;}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-meta{color:#64748b!important;}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn small{color:#475569!important;}

.sspq-shift-detail-actions .sspq-inline-form,
.sspq-shift-detail-employee-actions .sspq-inline-form{border:0!important;background:transparent!important;padding:0!important;margin:0!important;box-shadow:none!important;display:inline-flex!important;gap:0!important;width:auto!important;}
.sspq-shift-detail-actions .sspq-btn,
.sspq-shift-detail-actions .sspq-inline-form .sspq-btn,
.sspq-shift-detail-employee-actions .sspq-btn,
.sspq-shift-detail-employee-actions .sspq-inline-form .sspq-btn{min-width:132px;min-height:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;line-height:1.1;white-space:nowrap;}

.sspq-secondary-positions-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))!important;gap:8px!important;margin-top:8px!important;}
.sspq-secondary-position-row{display:grid!important;grid-template-columns:minmax(150px,1fr) auto minmax(120px,150px)!important;gap:8px!important;align-items:center!important;padding:8px 10px!important;border:1px solid #e5e7eb!important;border-radius:8px!important;background:#fff!important;}
.sspq-secondary-position-row input[type="number"]{width:100%!important;min-height:34px!important;padding:6px 8px!important;}
@media(max-width:760px){.sspq-secondary-positions-grid{grid-template-columns:1fr!important;}.sspq-secondary-position-row{grid-template-columns:1fr!important;}}

.sspq-zone-section-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px;}
.sspq-zone-section{margin-top:16px;}
.sspq-zone-section h3{margin-top:0;}
.sspq-dispatch-month-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:12px 0;}
.sspq-dispatch-month-nav h3{margin:0;}
.sspq-dispatch-month-actions{display:flex;flex-wrap:wrap;gap:8px;}
.sspq-dispatch-month-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:0;overflow:auto;}
.sspq-dispatch-month-grid .sspq-calendar-day.is-empty{background:#f8fafc;border-style:dashed;min-height:78px;}
@media(max-width:900px){.sspq-dispatch-month-grid{grid-template-columns:repeat(7,minmax(110px,1fr));}.sspq-dispatch-month-nav{align-items:flex-start;}}

/* SSPQ 2.0.350 - marqueurs véhicules et menu laptop */
.sspq-vehicle-car-marker{background:transparent;border:0;}
.sspq-vehicle-car-marker .sspq-car-shape{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;background:#fff;box-shadow:0 6px 18px rgba(11,36,71,.28);border:2px solid #c9a227}
.sspq-vehicle-car-marker svg{width:30px;height:30px;display:block;fill:#0b2447}
.sspq-vehicle-car-marker .sspq-car-window{fill:#dbeafe}
.sspq-vehicle-car-marker .sspq-car-wheel{fill:#111827}
@media (min-width:769px){.sspq-platform-sidebar,.sspq-sidebar,.sspq-shell-sidebar{height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;position:sticky!important;top:0!important;align-self:flex-start!important;overflow-y:auto!important;overflow-x:visible!important;z-index:1000!important;background:var(--sspq-navy,#0b1f3a)!important;scrollbar-width:none!important}.sspq-platform-sidebar::-webkit-scrollbar,.sspq-sidebar::-webkit-scrollbar,.sspq-shell-sidebar::-webkit-scrollbar{display:none!important}.sspq-platform-main,.sspq-main{min-height:100vh!important}.sspq-sidebar .sspq-nav{padding-bottom:18px!important}}

/* SSPQ 2.0.352 - Sélection de rondes par cases/cartes */
.sspq-patrol-route-picker{border:1px solid #d9e1ec;border-radius:14px;padding:12px;background:#f8fafc;overflow:hidden;}
.sspq-field-label{font-weight:800;color:#0b1f3a;margin-bottom:8px;}
.sspq-patrol-route-options{display:flex;flex-direction:column;gap:10px;max-height:360px;overflow-y:auto;overflow-x:hidden;padding:2px;overscroll-behavior:contain;}
.sspq-patrol-route-card{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:start;gap:10px;border:1px solid #cbd5e1;background:#fff;border-radius:12px;padding:12px;font-weight:700;cursor:pointer;min-height:auto;position:relative;width:100%;max-width:100%;box-sizing:border-box;}
.sspq-patrol-route-card:hover{border-color:#0b1f3a;box-shadow:0 8px 18px rgba(15,23,42,.08);}
.sspq-patrol-route-card input[type="checkbox"]{grid-column:1;width:18px!important;height:18px!important;min-height:auto!important;margin-top:2px;accent-color:#d6ad22;}
.sspq-patrol-route-card:has(input:checked){border-color:#d6ad22;background:#fffaf0;}
.sspq-patrol-route-card > span:first-of-type{grid-column:2;min-width:0;line-height:1.18;overflow-wrap:anywhere;word-break:normal;}
.sspq-patrol-route-none{grid-template-columns:26px minmax(0,1fr);align-items:center;background:#eef3f8;}
.sspq-patrol-route-none > span:first-of-type{grid-column:2;}
.sspq-route-repeat{grid-column:3;display:flex;align-items:center;gap:8px;justify-self:end;white-space:nowrap;font-size:.88rem;color:#0f172a;background:#f8fafc;border:1px solid #dbe4ef;border-radius:10px;padding:6px 8px;max-width:100%;box-sizing:border-box;}
.sspq-route-repeat input[type="number"]{width:78px!important;min-width:78px!important;height:36px!important;min-height:36px!important;text-align:center;padding:4px 8px!important;border:1px solid #94a3b8;border-radius:8px;background:#fff;}
.sspq-route-times{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:2px;padding:10px;border:1px dashed #cbd5e1;border-radius:10px;background:#fff;width:100%;max-width:100%;box-sizing:border-box;}
.sspq-route-times-title{grid-column:1/-1;font-size:.82rem;font-weight:800;color:#475569;}
.sspq-route-time-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.82rem;color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;padding:6px 8px;min-width:0;}
.sspq-route-time-row input[type="time"]{width:110px!important;min-width:110px!important;height:34px!important;min-height:34px!important;padding:3px 6px!important;border:1px solid #94a3b8;border-radius:8px;background:#fff;}
@media(max-width:980px){.sspq-patrol-route-card{grid-template-columns:26px minmax(0,1fr);}.sspq-route-repeat{grid-column:1/-1;justify-self:stretch;justify-content:space-between;white-space:normal;}.sspq-route-times{grid-template-columns:1fr;}}
.sspq-patrol-run-card.is-active{border-color:#d6ad22;background:#fffaf0;}
.sspq-patrol-run-meta{display:flex;flex-wrap:wrap;gap:6px;color:#475569;font-size:.86rem;}
.sspq-patrol-run-meta span{background:#f1f5f9;border-radius:999px;padding:3px 8px;}

.sspq-patrol-route-none{background:#eef2f7;}
.sspq-patrol-route-picker.is-empty .sspq-patrol-route-options:after{content:'Aucune ronde active ne correspond à la sélection.';display:block;color:#64748b;font-weight:700;padding:10px;}
.sspq-patrol-route-picker small{display:block;margin-top:8px;color:#475569;}

/* SSPQ 2.0.352 - Modale points de contrôle restructurée */
.sspq-checkpoint-modal .sspq-checkpoint-modal-card{display:flex;flex-direction:column;padding:0;overflow:hidden;}
.sspq-checkpoint-modal .sspq-inline-form{display:flex;flex-direction:column;min-height:0;}
.sspq-checkpoint-modal-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid #e5edf6;background:#fff;}
.sspq-checkpoint-modal-head h3{margin:0;}
.sspq-checkpoint-modal-body{padding:18px 22px;overflow:auto;max-height:calc(92vh - 150px);}
.sspq-checkpoint-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.sspq-checkpoint-section{border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;padding:14px;margin-bottom:14px;}
.sspq-checkpoint-section h4{margin:0 0 12px;color:#0b1f3a;}
.sspq-checkpoint-section label{display:flex;flex-direction:column;gap:6px;font-weight:700;margin-bottom:10px;}
.sspq-checkpoint-section input,.sspq-checkpoint-section select,.sspq-checkpoint-section textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;min-height:42px;background:#fff;}
.sspq-checkpoint-section textarea{min-height:86px;resize:vertical;}
.sspq-checkpoint-gps-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end;}
.sspq-checkpoint-map-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;grid-column:1/-1;}
.sspq-checkpoint-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin-bottom:12px;}
.sspq-checkpoint-checks .sspq-checkline{flex-direction:row!important;align-items:center!important;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px;margin:0;}
.sspq-checkpoint-checks input{width:auto!important;min-height:auto!important;}
.sspq-checkpoint-modal-actions{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid #e5edf6;background:#fff;}
@media(max-width:760px){.sspq-patrol-route-options{max-height:420px;}.sspq-checkpoint-modal-head{padding:16px;}.sspq-checkpoint-modal-body{padding:16px;max-height:calc(92vh - 144px);}.sspq-checkpoint-modal-grid,.sspq-checkpoint-gps-grid{grid-template-columns:1fr;}.sspq-checkpoint-modal-actions{display:grid;grid-template-columns:1fr;padding:14px 16px;}.sspq-checkpoint-map-actions{display:grid;grid-template-columns:1fr;}.sspq-checkpoint-map-actions .sspq-btn{width:100%;}}

/* SSPQ 2.0.356 - Correctifs mobiles horaire, véhicules et rondes directes. */
@media (max-width: 760px){
  .sspq-tabs{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;-webkit-overflow-scrolling:touch;padding:0 0 8px;margin-bottom:12px;max-width:100%;}
  .sspq-tabs .sspq-tab{flex:0 0 auto;white-space:nowrap;min-width:max-content;}

  .sspq-schedule-mobile-cards{display:grid;gap:12px;}
  .sspq-mobile-schedule-day{display:block;}
  .sspq-mobile-schedule-date{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-radius:10px;background:var(--sspq-navy,#0b1f3a);color:#fff;padding:14px 16px;font-size:19px;font-weight:900;text-align:left;}
  .sspq-mobile-schedule-date-arrow{font-size:20px;line-height:1;}
  .sspq-mobile-schedule-day-body{display:grid;gap:14px;padding-top:14px;}
  .sspq-mobile-schedule-day-body[hidden]{display:none!important;}

  .sspq-schedule-detail-modal .sspq-modal-actions,
  .sspq-schedule-detail-modal .sspq-shift-detail-employee-actions,
  .sspq-schedule-detail-modal .sspq-shift-employee-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important;width:100%;}
  .sspq-schedule-detail-modal .sspq-shift-action-form,
  .sspq-schedule-detail-modal .sspq-inline-form,
  .sspq-schedule-detail-modal .sspq-btn,
  .sspq-schedule-detail-modal .sspq-shift-employee-actions>a,
  .sspq-schedule-detail-modal .sspq-shift-employee-actions>button{width:100%!important;max-width:none!important;justify-content:center!important;min-height:58px;}
  .sspq-schedule-detail-modal .sspq-btn-small{padding:14px 18px;font-size:18px;border-radius:12px;}

  .sspq-direct-round-sheet .sspq-action-row{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .sspq-direct-round-sheet .sspq-action-row .sspq-btn,
  .sspq-direct-round-sheet .sspq-action-row .sspq-inline-form{width:100%!important;justify-content:center!important;}
}

/* SSPQ 2.0.357 - Rapports, points de contrôle, rondes compactes et véhicules temps réel. */
.sspq-report-main-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 16px;}
.sspq-report-main-tabs .sspq-tab{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px;border:1px solid #d9e1ec;border-radius:999px;background:#fff;color:#0b1f3a;font-weight:800;text-decoration:none;}
.sspq-report-main-tabs .sspq-tab.active{background:#d6ad22;border-color:#d6ad22;color:#0b1f3a;}
.sspq-report-export-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.sspq-control-points-table .sspq-report-export-form .sspq-btn{white-space:nowrap;}
.sspq-report-field-row{position:relative;display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #d9e1ec;border-radius:12px;background:#fff;padding:10px 12px;margin:8px 0;}
.sspq-report-field-row.is-dragging{opacity:.76;box-shadow:0 12px 26px rgba(11,36,71,.18);z-index:5;}
.sspq-report-field-handle{width:38px;height:38px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;color:#0b1f3a;font-size:20px;font-weight:900;cursor:grab;touch-action:none;}
.sspq-report-field-handle:active{cursor:grabbing;}
.sspq-report-field-main{display:flex;flex-direction:column;gap:2px;min-width:0;}
.sspq-report-field-main strong{font-size:15px;color:#0b1f3a;line-height:1.2;}
.sspq-report-field-main small{color:#64748b;font-weight:700;line-height:1.25;}
.sspq-report-field-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;}
html.sspq-dragging-report-field,html.sspq-dragging-report-field body{overscroll-behavior:none;touch-action:none;}
.sspq-vehicle-map-status{display:block;margin:8px 0 10px;color:#64748b;font-weight:700;}
.sspq-vehicle-popup strong{display:block;margin-bottom:4px;}
.sspq-patrol-mobile-points{display:none;}
.sspq-patrol-mobile-point{border:1px solid #d9e1ec;border-radius:0;background:#48535f;color:#dbe3ee;margin:0;overflow:hidden;}
.sspq-patrol-mobile-point+ .sspq-patrol-mobile-point{border-top:0;}
.sspq-patrol-mobile-point summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name icon" "more icon";gap:6px 12px;align-items:center;min-height:74px;padding:14px 16px;cursor:pointer;}
.sspq-patrol-mobile-point summary::-webkit-details-marker{display:none;}
.sspq-patrol-mobile-point-name{grid-area:name;font-size:19px;font-weight:700;color:#e5eaf1;line-height:1.25;}
.sspq-patrol-mobile-point-more{grid-area:more;color:#38a5ff;font-weight:900;font-size:16px;}
.sspq-patrol-mobile-point-icon{grid-area:icon;font-size:30px;line-height:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));}
.sspq-patrol-mobile-point-details{background:#fff;color:#0b1f3a;padding:12px 14px;border-top:1px solid rgba(255,255,255,.18);}
.sspq-patrol-mobile-point-details dl{display:grid;gap:8px;margin:0;}
.sspq-patrol-mobile-point-details dl>div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #eef2f7;padding-bottom:6px;}
.sspq-patrol-mobile-point-details dt{font-weight:900;color:#64748b;text-transform:uppercase;font-size:12px;}
.sspq-patrol-mobile-point-details dd{margin:0;text-align:right;font-weight:700;}
.sspq-patrol-mobile-point-actions{display:grid;gap:8px;margin-top:12px;}
.sspq-patrol-mobile-point-actions .sspq-inline-form{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;align-items:stretch!important;}
.sspq-patrol-mobile-point-actions .sspq-inline-form input,.sspq-patrol-mobile-point-actions .sspq-inline-form select,.sspq-patrol-mobile-point-actions .sspq-btn,.sspq-patrol-mobile-point-actions .sspq-badge{width:100%!important;max-width:none!important;justify-content:center!important;box-sizing:border-box;}
@media(max-width:760px){
  .sspq-report-main-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .sspq-report-main-tabs .sspq-tab{width:100%;min-height:50px;}
  .sspq-report-field-row{grid-template-columns:auto minmax(0,1fr);}
  .sspq-report-field-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;width:100%;}
  .sspq-report-field-actions .sspq-btn{width:100%;}
  .sspq-report-field-main strong{font-size:16px;}
  .sspq-report-field-main small{font-size:13px;}
  .sspq-patrol-mobile-points{display:block;margin:14px 0;border-radius:12px;overflow:hidden;border:1px solid #354150;}
  .sspq-patrol-points-table{display:none!important;}
  .sspq-report-export-form{display:grid;grid-template-columns:1fr;}
  .sspq-report-export-form .sspq-btn{width:100%;}
}

/* SSPQ 2.0.358 - Feuilles de route admin + sélection zones site */
.sspq-zone-checkbox-field{border:1px solid #cbd5e1;border-radius:14px;padding:14px;background:#f8fafc;margin:0;box-sizing:border-box;}
.sspq-zone-checkbox-field legend{font-weight:800;color:#0b1f3a;padding:0 6px;}
.sspq-zone-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:8px 0 10px;}
.sspq-zone-checkbox-card{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;border:1px solid #d7e1ee;border-radius:12px;background:#fff;padding:11px 12px;cursor:pointer;font-weight:800;color:#0f172a;}
.sspq-zone-checkbox-card input{width:18px!important;height:18px!important;min-height:auto!important;accent-color:#d6ad22;flex:0 0 auto;}
.sspq-zone-checkbox-card:has(input:checked){border-color:#d6ad22;background:#fff8df;box-shadow:0 0 0 2px rgba(214,173,34,.16);}
.sspq-route-admin{display:grid;gap:14px;}
.sspq-route-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:4px;}
.sspq-route-admin-head h3{margin:0;color:#0b1f3a;}
.sspq-route-admin-card{border:1px solid #d7e1ee;border-radius:16px;background:#fff;padding:16px;box-shadow:0 10px 26px rgba(15,23,42,.06);display:grid;gap:12px;}
.sspq-route-admin-card.is-valid{border-left:6px solid #17803d;}
.sspq-route-admin-card.is-overloaded{border-left:6px solid #b42318;}
.sspq-route-admin-card.is-incomplete{border-left:6px solid #b7791f;}
.sspq-route-admin-card.is-unknown{border-left:6px solid #475569;}
.sspq-route-admin-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.sspq-route-admin-card-head h4{margin:0;font-size:20px;color:#0b1f3a;}
.sspq-route-admin-card-head p{margin:4px 0 0;color:#475569;font-weight:700;}
.sspq-route-admin-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;background:#e8eef7;color:#0b1f3a;font-weight:900;white-space:nowrap;}
.sspq-route-admin-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;}
.sspq-route-admin-meta span{border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;padding:10px;min-height:48px;}
.sspq-route-admin-meta b{display:block;color:#0b1f3a;font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;}
.sspq-route-admin-diagnostic{border-radius:14px;padding:14px;border:1px solid #d7e1ee;background:#f8fafc;color:#0f172a;display:grid;gap:12px;}
.sspq-route-admin-diagnostic strong{display:block;color:#0b1f3a;font-size:16px;}
.sspq-route-admin-diagnostic p{margin:5px 0 0;color:#334155;font-weight:700;}
.sspq-route-admin-diagnostic.is-valid{background:#effaf3;border-color:#b9e4c7;}
.sspq-route-admin-diagnostic.is-overloaded{background:#fff1f0;border-color:#f0b8b2;}
.sspq-route-admin-diagnostic.is-incomplete{background:#fff8e7;border-color:#efd79d;}
.sspq-route-admin-diagnostic.is-unknown{background:#eef2f7;border-color:#cbd5e1;}
.sspq-route-admin-diag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;}
.sspq-route-admin-diag-grid span{background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:10px;padding:9px 10px;}
.sspq-route-admin-diag-grid b{display:block;font-size:18px;color:#0b1f3a;}
.sspq-route-admin-diag-grid small{display:block;color:#475569;font-weight:800;}
.sspq-route-admin-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.sspq-route-admin-actions .sspq-inline-form,.sspq-route-visit-actions .sspq-inline-form{display:inline-flex;margin:0;}
.sspq-route-admin-instructions{margin:0;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px;}
.sspq-route-sheet-form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.sspq-route-checkline{flex-direction:row!important;align-items:center!important;justify-content:flex-start;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px;min-height:46px;}
.sspq-route-checkline input{width:18px!important;height:18px!important;min-height:auto!important;accent-color:#d6ad22;}
.sspq-route-days{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.sspq-route-days label{display:flex!important;flex-direction:row!important;align-items:center;gap:6px;border:1px solid #d7e1ee;border-radius:999px;background:#fff;padding:8px 10px;}
.sspq-route-days input{width:auto!important;min-height:auto!important;accent-color:#d6ad22;}
.sspq-route-manage-body{display:grid;gap:14px;}
.sspq-route-manage-body .sspq-form-grid{margin-bottom:0;}
.sspq-route-visit-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;}
.sspq-route-visit-actions>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;padding:10px;}
.sspq-route-visit-actions strong{color:#0b1f3a;}
.sspq-route-visit-actions span{color:#475569;font-weight:700;margin-right:auto;}
.sspq-route-diagnostic-note{margin-top:12px;color:#334155;font-weight:700;}
@media(max-width:760px){.sspq-route-admin-head,.sspq-route-admin-card-head{display:block}.sspq-route-admin-head .sspq-btn{width:100%;margin-top:10px}.sspq-route-admin-actions{display:grid;grid-template-columns:1fr}.sspq-route-admin-actions .sspq-btn,.sspq-route-admin-actions form,.sspq-route-admin-actions form .sspq-btn{width:100%;justify-content:center}.sspq-route-visit-actions>div{display:grid;grid-template-columns:1fr}.sspq-zone-checkbox-grid{grid-template-columns:1fr}.sspq-route-admin-meta{grid-template-columns:1fr}.sspq-route-admin-diag-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* SSPQ 2.0.361 - Feuilles de route : tableau opérationnel + mobile compact */
.sspq-route-table-wrap{width:100%;overflow-x:auto;border:1px solid #d7e1ee;border-radius:16px;background:#fff;box-shadow:0 10px 26px rgba(15,23,42,.05);}
.sspq-route-admin-table{min-width:1180px;margin:0;border-collapse:separate;border-spacing:0;}
.sspq-route-admin-table thead th{position:sticky;top:0;background:#f8fafc;color:#64748b;font-size:12px;text-transform:none;white-space:nowrap;border-bottom:1px solid #e2e8f0;z-index:1;}
.sspq-route-admin-table td{vertical-align:middle;border-bottom:1px solid #edf2f7;}
.sspq-route-admin-table tr:last-child td{border-bottom:0;}
.sspq-route-admin-row.is-valid td:first-child{border-left:5px solid #17803d;}
.sspq-route-admin-row.is-overloaded td:first-child{border-left:5px solid #b42318;}
.sspq-route-admin-row.is-incomplete td:first-child{border-left:5px solid #b7791f;}
.sspq-route-admin-row.is-unknown td:first-child{border-left:5px solid #475569;}
.sspq-route-admin-row td:first-child{font-weight:900;color:#0b1f3a;}
.sspq-route-admin-row td small{display:block;margin-top:3px;color:#64748b;font-weight:700;line-height:1.25;}
.sspq-route-pill,.sspq-route-efficiency{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;min-width:70px;min-height:28px;padding:5px 10px;font-weight:900;line-height:1;background:#e8eef7;color:#0b1f3a;white-space:nowrap;}
.sspq-route-pill.is-duration{background:#3f8c46;color:#fff;}
.sspq-route-pill.is-count{background:#2d82a9;color:#fff;}
.sspq-route-pill.is-empty{background:#e5e7eb;color:#475569;}
.sspq-route-pill.is-work{background:#3f8c46;color:#fff;}
.sspq-route-efficiency.is-good{background:#17803d;color:#fff;}
.sspq-route-efficiency.is-warning{background:#d6ad22;color:#0b1f3a;}
.sspq-route-efficiency.is-danger{background:#b00000;color:#fff;}
.sspq-route-efficiency.is-incomplete{background:#b00000;color:#fff;}
.sspq-route-efficiency.is-unknown{background:#64748b;color:#fff;}
.sspq-route-row-actions{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(86px,.75fr) minmax(56px,.55fr) minmax(104px,.85fr) 42px;gap:8px;align-items:center;min-width:520px;}
.sspq-route-row-actions .sspq-btn{width:100%;min-height:30px;justify-content:center;padding:7px 10px;line-height:1.1;}
.sspq-route-row-actions .sspq-form-grid,.sspq-route-row-actions .sspq-inline-form{display:block!important;margin:0!important;width:100%!important;min-width:0!important;}
.sspq-route-row-actions .sspq-route-delete-form .sspq-btn{font-size:18px;font-weight:900;padding:5px 8px;}
.sspq-route-mobile-list{display:none;}
.sspq-route-mobile-card{border:1px solid #d7e1ee;border-left:5px solid #475569;border-radius:14px;background:#fff;padding:12px;box-shadow:0 8px 18px rgba(15,23,42,.05);display:grid;gap:10px;}
.sspq-route-mobile-card.is-valid{border-left-color:#17803d;}
.sspq-route-mobile-card.is-overloaded{border-left-color:#b42318;}
.sspq-route-mobile-card.is-incomplete{border-left-color:#b7791f;}
.sspq-route-mobile-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.sspq-route-mobile-head strong{display:block;color:#0b1f3a;font-size:16px;line-height:1.2;}
.sspq-route-mobile-head small{display:block;color:#64748b;font-weight:800;margin-top:3px;}
.sspq-route-mobile-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.sspq-route-mobile-meta span{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:8px;color:#0f172a;font-weight:800;}
.sspq-route-mobile-meta b{display:block;color:#64748b;text-transform:uppercase;font-size:11px;letter-spacing:.04em;margin-bottom:2px;}
.sspq-route-mobile-reason{margin:0;border:1px solid #efd79d;border-radius:10px;background:#fff8e7;color:#6b4b00;font-weight:800;padding:8px;}
.sspq-route-print-source{display:none!important;}
@media(max-width:900px){
  .sspq-route-table-wrap{display:none;}
  .sspq-route-mobile-list{display:grid;gap:10px;}
  .sspq-route-row-actions{grid-template-columns:1fr 1fr;min-width:0;gap:7px;}
  .sspq-route-row-actions .sspq-route-delete-form{grid-column:auto;}
  .sspq-route-mobile-card .sspq-route-row-actions .sspq-btn{min-height:38px;}
}
@media(max-width:480px){
  .sspq-route-mobile-head{display:grid;grid-template-columns:1fr;}
  .sspq-route-mobile-head .sspq-route-efficiency{width:100%;}
  .sspq-route-mobile-meta{grid-template-columns:1fr;}
  .sspq-route-row-actions{grid-template-columns:1fr;}
}

/* SSPQ 2.0.362 - Correctifs trajets, répartition mobile et import incidents */
.sspq-trip-existing-panel{border:1px solid #d7e1ee;border-radius:14px;background:#f8fafc;padding:12px;display:grid;gap:10px;}
.sspq-trip-existing-panel strong{color:#0b1f3a;font-weight:900;}
.sspq-trip-existing-list{display:grid;gap:8px;max-height:240px;overflow:auto;}
.sspq-trip-existing-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;padding:9px 10px;}
.sspq-trip-existing-item span{display:block;font-weight:900;color:#0f172a;line-height:1.25;}
.sspq-trip-existing-item small{display:block;color:#64748b;font-weight:700;margin-top:2px;}
.sspq-trip-existing-empty{border:1px dashed #cbd5e1;border-radius:12px;background:#fff;color:#64748b;font-weight:800;padding:10px;text-align:center;}
.sspq-incident-import-box{border:1px solid #d7e1ee;border-radius:16px;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.04);padding:14px;margin:14px 0;display:grid;gap:10px;}
.sspq-incident-import-box h3{margin:0;color:#0b1f3a;font-size:16px;}
.sspq-incident-import-box p{margin:0;color:#475569;font-weight:700;}
.sspq-incident-import-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.sspq-incident-import-row input[type=file]{max-width:100%;}
@media(max-width:640px){.sspq-trip-existing-item{display:grid;grid-template-columns:1fr}.sspq-trip-existing-item .sspq-btn{width:100%;justify-content:center}.sspq-incident-import-row{display:grid;grid-template-columns:1fr}.sspq-incident-import-row .sspq-btn{width:100%;justify-content:center}}

/* SSPQ 2.0.364 - Signature tactile et détails de rapports */
.sspq-signature-pad{display:grid;gap:8px;border:1px solid #d7e1ee;border-radius:12px;background:#f8fafc;padding:10px;}
.sspq-signature-pad canvas{display:block;width:100%;height:160px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;touch-action:none;cursor:crosshair;}
.sspq-report-detail-box{border:1px solid #d7e1ee;border-radius:12px;background:#f8fafc;padding:12px;margin-top:8px;}
.sspq-report-detail-box dl{display:grid;grid-template-columns:minmax(140px,.35fr) 1fr;gap:8px 12px;margin:0;}
.sspq-report-detail-box dt{font-weight:900;color:#0b1f3a;}
.sspq-report-detail-box dd{margin:0;color:#0f172a;overflow-wrap:anywhere;}
.sspq-selectable-list .sspq-recurrence-days{align-items:flex-start;}
.sspq-selectable-list .sspq-recurrence-days label{background:#fff;border:1px solid #d7e1ee;border-radius:10px;padding:8px 10px;}
@media(max-width:640px){.sspq-report-detail-box dl{grid-template-columns:1fr}.sspq-signature-pad canvas{height:190px}}

/* SSPQ 2.0.366 — Formation et quarts à combler */
.sspq-schedule-date{font-size:12px;font-weight:800;color:#0f172a;margin-bottom:2px;line-height:1.2;}
.sspq-schedule-time-inline{font-weight:700;color:#0b1f3a;}
.sspq-training-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:16px;}
.sspq-training-card{overflow:hidden;padding:0;}
.sspq-training-image{width:100%;max-height:240px;object-fit:cover;display:block;background:#e2e8f0;}
.sspq-training-body{padding:16px;display:grid;gap:12px;}
.sspq-training-video-shell{position:relative;width:100%;background:#000;border-radius:12px;overflow:hidden;}
.sspq-training-video{width:100%;max-height:360px;border-radius:12px;background:#000;display:block;}
.sspq-training-fullscreen-btn{position:absolute;right:12px;top:12px;z-index:2;border:1px solid rgba(255,255,255,.65);border-radius:999px;background:rgba(7,21,41,.88);color:#fff;font-weight:800;padding:8px 12px;cursor:pointer;}
.sspq-training-video-shell:fullscreen,.sspq-training-video-shell:-webkit-full-screen,.sspq-training-video-shell.is-fullscreen-fallback{width:100vw;height:100vh;border-radius:0;background:#000;display:flex;align-items:center;justify-content:center;}
.sspq-training-video-shell:fullscreen .sspq-training-video,.sspq-training-video-shell:-webkit-full-screen .sspq-training-video,.sspq-training-video-shell.is-fullscreen-fallback .sspq-training-video{width:100%;height:100%;max-height:none;object-fit:contain;border-radius:0;}
.sspq-training-video-shell.is-fullscreen-fallback{position:fixed;inset:0;z-index:2147483647;}
body.sspq-training-fullscreen-open{overflow:hidden!important;}
.sspq-training-description{color:#1f2937;line-height:1.55;}
.sspq-training-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#64748b;}
.sspq-training-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:8px;padding:10px;border:1px solid #d7e1ee;border-radius:12px;background:#f8fafc;max-height:220px;overflow:auto;}
.sspq-training-check-grid label{display:flex;gap:8px;align-items:center;font-size:13px;}
@media(max-width:640px){.sspq-training-grid{grid-template-columns:1fr}.sspq-training-body{padding:12px}.sspq-training-video{max-height:260px}}

/* SSPQ 2.0.367 - Feuille de route active : structure desktop professionnelle et mobile compacte. */
@media (min-width: 900px) {
  .sspq-route-mobile[data-sspq-route-mobile]{
    width:min(1180px, calc(100vw - 320px));
    max-width:1180px!important;
    margin:24px auto!important;
    min-height:auto!important;
    padding:0 0 24px!important;
    background:#f8fafc!important;
    color:#0b1f3a!important;
    border:1px solid #dbe3ef!important;
    border-radius:20px!important;
    box-shadow:0 18px 45px rgba(15,23,42,.10)!important;
    overflow:hidden!important;
  }
  .sspq-route-mobile-header{background:#fff!important;border-radius:0!important;border-bottom:1px solid #dbe3ef!important;box-shadow:none!important;padding:0!important;position:relative!important;}
  .sspq-route-mobile-header-top{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;min-height:auto!important;padding:22px 26px 12px!important;background:#fff!important;color:#0b1f3a!important;}
  .sspq-route-mobile-header-top:after{content:'Interrompre';display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 16px;border-radius:10px;background:#fee2e2;color:#991b1b;font-size:14px;font-weight:900;}
  .sspq-route-back{display:inline-flex!important;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:#eef2f7;color:#0b1f3a;text-decoration:none;font-weight:900;}
  .sspq-route-eyebrow{display:block!important;margin:0 0 4px!important;color:#64748b!important;font-size:12px!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.06em!important;}
  .sspq-route-mobile-header h2{margin:0!important;color:#0b1f3a!important;font-size:28px!important;font-weight:900!important;}
  .sspq-route-header-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;min-height:0!important;margin:0!important;padding:0 26px 22px!important;box-sizing:border-box!important;}
  .sspq-route-header-grid>div{display:block!important;background:#f8fafc!important;border:1px solid #dbe3ef!important;border-radius:14px!important;padding:12px 14px!important;}
  .sspq-route-header-grid>div:not(:nth-child(2)):not(:nth-child(3)){display:block!important;}
  .sspq-route-header-grid span{display:block!important;color:#64748b!important;font-size:12px!important;font-weight:800!important;text-transform:uppercase!important;letter-spacing:.04em!important;}
  .sspq-route-header-grid strong{display:block!important;margin-top:3px!important;color:#0b1f3a!important;font-size:15px!important;font-weight:900!important;line-height:1.3!important;}
  .sspq-route-header-grid>div:nth-child(2) strong:before,.sspq-route-header-grid>div:nth-child(3) strong:after{content:none!important;}
  .sspq-route-header-grid>div:nth-child(3) strong{font-size:15px!important;}
  .sspq-route-progress{position:static!important;width:auto!important;height:auto!important;border:0!important;border-radius:0!important;display:block!important;margin:0 26px 24px!important;padding:14px 16px!important;background:#f8fafc!important;border-top:1px solid #dbe3ef!important;}
  .sspq-route-progress>div{display:flex!important;align-items:center!important;justify-content:space-between!important;text-align:left!important;line-height:1.2!important;margin-bottom:8px!important;}
  .sspq-route-progress>div span{display:block!important;color:#64748b!important;font-size:12px!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.05em!important;}
  .sspq-route-progress>div strong{display:block!important;max-width:none!important;color:#0b1f3a!important;font-size:15px!important;font-weight:900!important;}
  .sspq-route-progress-track{display:block!important;height:10px!important;border-radius:999px!important;background:#e2e8f0!important;overflow:hidden!important;}
  .sspq-route-progress-track i{display:block!important;height:100%!important;background:#c9a227!important;border-radius:999px!important;}
  .sspq-route-current-status{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;margin:18px 26px!important;padding:18px 20px!important;background:#0b1f3a!important;border-radius:16px!important;color:#fff!important;}
  .sspq-route-current-status strong{display:block!important;color:#fff!important;font-size:22px!important;font-weight:900!important;}
  .sspq-route-current-status small{display:block!important;color:#dbeafe!important;font-size:14px!important;margin-top:4px!important;}
  .sspq-route-current-status .sspq-status-pill{background:#fff!important;color:#0b1f3a!important;}
  .sspq-route-search{margin:0 26px 12px!important;background:transparent!important;padding:0!important;}
  .sspq-route-search input{width:100%!important;border:1px solid #cbd5e1!important;border-radius:12px!important;background:#fff!important;color:#0b1f3a!important;min-height:46px!important;padding:0 14px!important;}
  .sspq-route-tabs{display:flex!important;gap:8px!important;margin:0 26px 18px!important;background:transparent!important;}
  .sspq-route-tab{flex:0 0 auto!important;min-width:140px!important;border-radius:999px!important;background:#eaf0f7!important;color:#0b1f3a!important;border:1px solid #dbe3ef!important;font-weight:900!important;}
  .sspq-route-tab.is-active{background:#0b1f3a!important;color:#fff!important;}
  .sspq-route-task-list{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(340px,1fr))!important;gap:14px!important;margin:0 26px!important;padding:0!important;}
  .sspq-route-task-card{background:#fff!important;color:#0b1f3a!important;border:1px solid #dbe3ef!important;border-radius:16px!important;padding:16px!important;box-shadow:0 8px 22px rgba(15,23,42,.06)!important;}
  .sspq-route-task-head{display:grid!important;grid-template-columns:auto 1fr auto!important;align-items:start!important;gap:12px!important;}
  .sspq-route-task-number{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:34px!important;height:34px!important;border-radius:999px!important;background:#0b1f3a!important;color:#fff!important;font-weight:900!important;}
  .sspq-route-task-head h3{margin:0!important;color:#0b1f3a!important;font-size:20px!important;font-weight:900!important;}
  .sspq-route-task-meta{margin:4px 0 0!important;color:#475569!important;font-size:14px!important;font-weight:700!important;}
  .sspq-route-task-flags{display:flex!important;flex-wrap:wrap!important;gap:6px!important;margin:12px 0!important;}
  .sspq-route-flag{background:#eef2ff!important;color:#1e3a8a!important;border-radius:999px!important;padding:5px 9px!important;font-size:12px!important;font-weight:900!important;}
  .sspq-route-task-details,.sspq-route-task-options{margin-top:8px!important;}
  .sspq-route-task-details>summary,.sspq-route-task-options>summary{display:inline-flex!important;color:#0b61a4!important;font-weight:900!important;cursor:pointer!important;}
  .sspq-route-task-actions{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:10px!important;}
  .sspq-route-task-actions .sspq-btn{min-height:38px!important;border-radius:10px!important;}
  .sspq-route-mobile-footer{position:static!important;left:auto!important;bottom:auto!important;transform:none!important;width:auto!important;display:flex!important;justify-content:flex-end!important;gap:10px!important;margin:22px 26px 0!important;padding:14px!important;border:1px solid #dbe3ef!important;border-radius:16px!important;background:#fff!important;box-shadow:none!important;}
  .sspq-route-mobile-footer .sspq-btn,.sspq-route-mobile-footer .sspq-route-complete-sheet>summary{min-height:42px!important;border-radius:10px!important;font-size:15px!important;}
}

@media (max-width: 899px) {
  .sspq-route-mobile[data-sspq-route-mobile]{width:100%!important;max-width:none!important;margin:0!important;border-radius:0!important;}
  .sspq-route-task-card{padding:16px 14px!important;}
  .sspq-route-task-head{display:grid!important;grid-template-columns:1fr auto!important;gap:8px!important;}
  .sspq-route-task-number{display:none!important;}
  .sspq-route-task-meta{font-size:14px!important;line-height:1.35!important;}
  .sspq-route-task-options>summary,.sspq-route-task-details>summary{padding:8px 0!important;}
}

/* SSPQ 2.0.367 - Notifications client et contacts. */
.sspq-notification-rule-form .sspq-selectable-list{border:1px solid #dbe3ef;border-radius:14px;background:#f8fafc;padding:12px;}
.sspq-notification-rule-form .sspq-recurrence-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-top:8px;}
.sspq-action-row .sspq-inline-delete{display:inline-flex;margin:0;}
.sspq-action-row .sspq-inline-delete .sspq-btn{min-height:34px;}

/* SSPQ 2.0.369 — sélecteurs de sites avec recherche intégrée */
.sspq-native-select-hidden{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;left:-9999px!important;}
.sspq-searchable-select{position:relative;width:100%;box-sizing:border-box;}
.sspq-searchable-toggle{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0b1f3a;font:inherit;text-align:left;cursor:pointer;}
.sspq-searchable-toggle:focus{outline:2px solid rgba(37,99,235,.25);border-color:#2563eb;}
.sspq-searchable-arrow{font-size:18px;line-height:1;color:#334155;}
.sspq-searchable-menu{display:none;position:absolute;z-index:99999;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #94a3b8;border-radius:10px;box-shadow:0 18px 35px rgba(15,23,42,.18);overflow:hidden;}
.sspq-searchable-select.is-open .sspq-searchable-menu{display:block;}
.sspq-searchable-input{width:calc(100% - 16px);box-sizing:border-box;margin:8px;padding:9px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0b1f3a;font:inherit;}
.sspq-searchable-input:focus{outline:2px solid rgba(37,99,235,.25);border-color:#2563eb;}
.sspq-searchable-list{max-height:280px;overflow:auto;padding:0 0 6px;}
.sspq-searchable-option{display:block;width:100%;padding:9px 12px;border:0;background:#fff;color:#0b1f3a;text-align:left;font:inherit;cursor:pointer;}
.sspq-searchable-option:hover,.sspq-searchable-option:focus,.sspq-searchable-option.is-selected{background:#1d4ed8;color:#fff;outline:none;}
.sspq-searchable-empty{padding:10px 12px;color:#64748b;font-size:14px;}
@media(max-width:640px){.sspq-searchable-menu{position:fixed;left:16px;right:16px;top:15vh;max-height:70vh}.sspq-searchable-list{max-height:55vh}}


/* SSPQ 2.0.378 - Trajets et modale points de contrôle */
.sspq-trip-existing-item.is-used{opacity:.78;}
.sspq-trip-existing-item .sspq-btn[disabled]{cursor:not-allowed;opacity:.72;transform:none!important;}
.sspq-trip-tools .sspq-map-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.sspq-checkpoint-modal .sspq-checkpoint-modal-card{width:min(980px,calc(100vw - 48px))!important;max-width:min(980px,calc(100vw - 48px))!important;max-height:calc(100vh - 56px)!important;padding:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;box-sizing:border-box!important;}
.sspq-checkpoint-modal .sspq-inline-form{display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;align-items:stretch!important;gap:0!important;width:100%!important;max-width:none!important;height:100%!important;min-height:0!important;border:0!important;background:#fff!important;padding:0!important;margin:0!important;box-sizing:border-box!important;}
.sspq-checkpoint-modal .sspq-inline-form>input[type=hidden]{display:none!important;}
.sspq-checkpoint-modal-head,.sspq-checkpoint-modal-body,.sspq-checkpoint-modal-actions{width:100%!important;max-width:100%!important;box-sizing:border-box!important;}
.sspq-checkpoint-modal-body{min-width:0!important;overflow:auto!important;}
.sspq-checkpoint-modal-actions{position:sticky!important;bottom:0!important;left:0!important;right:0!important;align-self:stretch!important;}
.sspq-checkpoint-modal .sspq-modal-close{position:absolute!important;top:12px!important;right:12px!important;z-index:5!important;}
.sspq-checkpoint-modal .sspq-checkpoint-modal-head{padding-right:70px!important;}
@media(max-width:760px){
  .sspq-checkpoint-modal .sspq-checkpoint-modal-card{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important;}
  .sspq-trip-point-item{grid-template-columns:1fr!important;}
  .sspq-trip-point-item .sspq-trip-order-field input{width:100%;max-width:none;}
}

/* SSPQ 2.0.379 - Correctifs trajets, horaire et rapports */
.sspq-panel.sspq-searchable-panel-open{overflow:visible!important;position:relative;z-index:50;}
.sspq-horaire-filters .sspq-searchable-select,.sspq-schedule-toolbar .sspq-searchable-select{z-index:60;}

.sspq-report-time-spinner{display:inline-flex;align-items:center;gap:10px;max-width:100%;}
.sspq-report-time-column{width:104px;display:grid;grid-template-rows:42px 72px 42px;border:1px solid #94a3b8;border-radius:10px;background:linear-gradient(#f8fafc,#e2e8f0);overflow:hidden;box-shadow:0 3px 8px rgba(15,23,42,.16);}
.sspq-report-time-column button{border:0;background:linear-gradient(#f8fafc,#cbd5e1);color:#475569;font-size:34px;font-weight:900;line-height:1;cursor:pointer;}
.sspq-report-time-column button:disabled{opacity:.45;cursor:not-allowed;}
.sspq-report-time-column output{display:flex;align-items:center;justify-content:center;background:#fff;color:#000;font-size:42px;font-weight:500;line-height:1;border-top:1px solid #94a3b8;border-bottom:1px solid #94a3b8;font-variant-numeric:tabular-nums;}
.sspq-report-time-separator{font-size:34px;font-weight:900;color:#64748b;margin:0 -2px;}
.sspq-report-searchable-select,.sspq-report-multiselect{position:relative;width:100%;box-sizing:border-box;}
.sspq-report-searchable-toggle,.sspq-report-multiselect-toggle{width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0b1f3a;font:inherit;text-align:left;cursor:pointer;}
.sspq-report-searchable-toggle:disabled,.sspq-report-multiselect-toggle:disabled{opacity:.65;cursor:not-allowed;}
.sspq-report-searchable-menu,.sspq-report-multiselect-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:100000;background:#fff;border:1px solid #64748b;border-radius:8px;box-shadow:0 22px 40px rgba(15,23,42,.24);overflow:hidden;}
.sspq-report-searchable-select.is-open .sspq-report-searchable-menu,.sspq-report-multiselect.is-open .sspq-report-multiselect-menu{display:block;}
.sspq-report-searchable-input,.sspq-report-multiselect-search{width:calc(100% - 16px);box-sizing:border-box;margin:8px;padding:11px 12px;border:2px solid #475569;border-radius:0;background:#fff;color:#0b1f3a;font:inherit;font-size:16px;}
.sspq-report-searchable-input::placeholder,.sspq-report-multiselect-search::placeholder{color:#8b8f98;opacity:1;}
.sspq-report-searchable-list,.sspq-report-multiselect-options{max-height:310px;overflow:auto;padding:0;background:#fff;}
.sspq-report-searchable-option,.sspq-report-multiselect-options label{display:flex;width:100%;min-height:54px;align-items:center;gap:10px;box-sizing:border-box;padding:12px 16px;border:0;border-top:1px solid #d1d5db;background:#fff;color:#000;text-align:left;font:inherit;font-size:18px;cursor:pointer;}
.sspq-report-searchable-option:hover,.sspq-report-searchable-option:focus,.sspq-report-searchable-option.is-selected{background:#eef4ff;color:#0b1f3a;outline:none;}
.sspq-report-multiselect-options label:hover{background:#eef4ff;}
.sspq-report-multiselect-options input[type="checkbox"]{width:20px;height:20px;flex:0 0 auto;}
.sspq-report-searchable-empty{padding:12px 16px;color:#64748b;border-top:1px solid #d1d5db;}
@media(max-width:640px){
  .sspq-report-time-spinner{justify-content:center;width:100%;}
  .sspq-report-time-column{width:min(42vw,132px);grid-template-rows:48px 84px 48px;}
  .sspq-report-time-column output{font-size:46px;}
  .sspq-report-searchable-menu,.sspq-report-multiselect-menu{position:fixed;left:12px;right:12px;top:12vh;max-height:76vh;border-radius:10px;}
  .sspq-report-searchable-list,.sspq-report-multiselect-options{max-height:60vh;}
  .sspq-report-searchable-option,.sspq-report-multiselect-options label{font-size:20px;min-height:62px;}
}

/* SSPQ 2.0.380 - Guidage SSPQ temps réel des trajets */
.sspq-patrol-guidance-actions{align-items:center;gap:10px;}
.sspq-guidance-open{overflow:hidden!important;}
.sspq-guidance-overlay[hidden]{display:none!important;}
.sspq-guidance-overlay{position:fixed;inset:0;z-index:1000000;background:#0f172a;color:#0b1f3a;display:flex;flex-direction:column;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.sspq-guidance-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#0b1f3a;color:#fff;box-shadow:0 8px 20px rgba(15,23,42,.28);z-index:2;}
.sspq-guidance-head strong{display:block;color:#fff;font-size:18px;font-weight:900;line-height:1.2;}
.sspq-guidance-head small{display:block;color:#cbd5e1;font-size:12px;font-weight:700;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:78vw;}
.sspq-guidance-close{width:42px;height:42px;border:0;border-radius:12px;background:#fff;color:#0b1f3a;font-size:28px;line-height:1;font-weight:900;cursor:pointer;}
.sspq-guidance-map{flex:1 1 auto;min-height:0;background:#e2e8f0;}
.sspq-guidance-panel{flex:0 0 auto;background:#fff;border-radius:22px 22px 0 0;margin-top:-22px;padding:16px 16px 18px;box-shadow:0 -14px 32px rgba(15,23,42,.24);z-index:2;}
.sspq-guidance-status{border-radius:14px;padding:12px 14px;background:#eff6ff;color:#1d4ed8;font-weight:900;margin-bottom:12px;}
.sspq-guidance-status.is-on-route{background:#dcfce7;color:#166534;}
.sspq-guidance-status.is-off-route{background:#fee2e2;color:#991b1b;}
.sspq-guidance-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin-bottom:12px;}
.sspq-guidance-grid>div{border:1px solid #dbe3ef;border-radius:14px;background:#f8fafc;padding:10px 12px;min-width:0;}
.sspq-guidance-grid span{display:block;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:900;margin-bottom:4px;}
.sspq-guidance-grid strong{display:block;color:#0b1f3a;font-size:15px;font-weight:900;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sspq-guidance-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.sspq-guidance-controls .sspq-btn{flex:1 1 auto;text-align:center;justify-content:center;min-height:42px;}
.sspq-guidance-overlay .leaflet-control-container .leaflet-routing-container{display:none!important;}
.sspq-guidance-overlay .leaflet-control-zoom a{width:40px;height:40px;line-height:40px;font-size:22px;font-weight:900;}
.sspq-guidance-overlay .sspq-patrol-point-label span{border-color:#fff;box-shadow:0 5px 14px rgba(15,23,42,.34);}
@media(max-width:700px){
  .sspq-patrol-guidance-actions .sspq-btn{width:100%;}
  .sspq-guidance-head{padding:10px 12px;}
  .sspq-guidance-head strong{font-size:16px;}
  .sspq-guidance-panel{padding:14px 12px 16px;}
  .sspq-guidance-grid{grid-template-columns:1fr 1fr;}
  .sspq-guidance-grid>div:first-child{grid-column:1/-1;}
  .sspq-guidance-grid strong{font-size:16px;}
  .sspq-guidance-controls .sspq-btn{flex-basis:100%;}
}

/* SSPQ 2.0.381 - Test administratif des parcours SSPQ. */
.sspq-route-test-overlay .sspq-route-test-note{margin:10px 0 0;font-size:12px;font-weight:700;color:#64748b;line-height:1.35;}
.sspq-route-test-overlay .sspq-route-test-controls .sspq-btn{min-width:135px;}
.sspq-route-test-overlay .sspq-guidance-status{transition:background-color .18s ease,color .18s ease;}
@media(max-width:700px){.sspq-route-test-overlay .sspq-route-test-controls .sspq-btn{width:100%;min-width:0;}}

/* SSPQ 2.0.382 - Trajet SSPQ manuel : tracer la route exacte séparément des points de contrôle */
.sspq-trip-tools .sspq-map-toolbar [data-trip-mode].is-active{
  background:#c9a227!important;
  color:#0b1f3a!important;
  border-color:#c9a227!important;
  box-shadow:0 8px 18px rgba(201,162,39,.28);
}
.sspq-trip-mode-note{
  border:1px solid #d9e1ec;
  border-radius:12px;
  background:#eff6ff;
  color:#1e3a8a;
  font-weight:800;
  padding:10px 12px;
  line-height:1.35;
}
.sspq-trip-trace-marker{
  display:flex!important;
  align-items:center;
  justify-content:center;
  width:14px;
  height:14px;
  border-radius:999px;
  background:#2563eb;
  color:transparent;
  border:2px solid #fff;
  box-shadow:0 4px 12px rgba(15,23,42,.22);
  font-weight:900;
  font-size:0;
  cursor:grab;
}
.sspq-trip-trace-marker:active{cursor:grabbing;}
.sspq-trip-trace-marker span{display:block;width:4px;height:4px;border-radius:999px;background:#fff;line-height:1;}
.sspq-trip-trace-handle{opacity:.78;}
@media(max-width:760px){
  .sspq-trip-mode-note{font-size:13px;}
}

/* SSPQ 2.0.415 - Tracé libre du parcours par bouton droit. */
.sspq-trip-tools.is-freehand-drawing .sspq-trip-mode-note{
  background:#fef3c7;
  color:#78350f;
  border-color:#c9a227;
}
.sspq-trip-tools.is-freehand-drawing .sspq-trip-map,
.sspq-trip-tools.is-freehand-drawing .leaflet-container{
  cursor:crosshair!important;
  user-select:none;
}
.sspq-trip-tools.is-freehand-drawing .leaflet-marker-icon,
.sspq-trip-tools.is-freehand-drawing .leaflet-interactive{
  cursor:crosshair!important;
}


/* SSPQ 2.0.383 - Sélecteur de position GPS pour les points de contrôle. */
.sspq-checkpoint-picker-open{overflow:hidden!important;}
.sspq-checkpoint-map-picker-overlay{position:fixed;inset:0;z-index:1000002;background:rgba(15,23,42,.72);display:flex;align-items:center;justify-content:center;padding:18px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.sspq-checkpoint-map-picker-card{width:min(1120px,100%);height:min(860px,94vh);background:#fff;border-radius:18px;box-shadow:0 28px 80px rgba(15,23,42,.42);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(226,232,240,.9);}
.sspq-checkpoint-map-picker-head{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#0b1f3a;color:#fff;padding:14px 18px;}
.sspq-checkpoint-map-picker-head strong{display:block;color:#fff;font-size:18px;font-weight:900;line-height:1.2;}
.sspq-checkpoint-map-picker-head small{display:block;color:#cbd5e1;font-size:12px;font-weight:700;margin-top:3px;}
.sspq-checkpoint-map-picker-close{width:42px;height:42px;border:1px solid rgba(255,255,255,.24);border-radius:12px;background:#08182d;color:#fff;font-size:28px;line-height:1;font-weight:900;cursor:pointer;}
.sspq-checkpoint-map-picker-toolbar{display:flex;gap:8px;flex-wrap:wrap;padding:12px 14px;background:#f8fafc;border-bottom:1px solid #dbe3ef;}
.sspq-checkpoint-map-picker-toolbar .sspq-btn{min-height:40px;}
.sspq-checkpoint-map-picker-map{flex:1 1 auto;min-height:420px;background:#e2e8f0;}
.sspq-checkpoint-map-picker-status{padding:10px 14px;border-top:1px solid #dbe3ef;background:#f8fafc;color:#334155;font-size:13px;font-weight:800;}
.sspq-checkpoint-map-picker-actions{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px;background:#fff;border-top:1px solid #dbe3ef;}
.sspq-checkpoint-map-picker-actions .sspq-btn{min-width:160px;justify-content:center;text-align:center;}
.sspq-checkpoint-map-picker-overlay .leaflet-container{font:inherit;}
.sspq-checkpoint-map-picker-overlay .leaflet-control-zoom a{width:40px;height:40px;line-height:40px;font-size:22px;font-weight:900;}
@media(max-width:760px){
  .sspq-checkpoint-map-picker-overlay{padding:0;align-items:stretch;}
  .sspq-checkpoint-map-picker-card{width:100%;height:100vh;max-height:none;border-radius:0;}
  .sspq-checkpoint-map-picker-head{padding:12px 14px;}
  .sspq-checkpoint-map-picker-head strong{font-size:16px;}
  .sspq-checkpoint-map-picker-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .sspq-checkpoint-map-picker-toolbar .sspq-btn{width:100%;}
  .sspq-checkpoint-map-picker-toolbar [data-picker-current]{grid-column:1/-1;}
  .sspq-checkpoint-map-picker-map{min-height:0;}
  .sspq-checkpoint-map-picker-actions{display:grid;grid-template-columns:1fr;}
  .sspq-checkpoint-map-picker-actions .sspq-btn{width:100%;min-width:0;}
}

/* SSPQ 2.0.384 - Inspection véhicule : alignement mobile et cases carrées. */
.sspq-vehicle-inspection-panel{overflow:visible;}
.sspq-vehicle-inspection-form{align-items:start;}
.sspq-vehicle-inspection-form input,
.sspq-vehicle-inspection-form select,
.sspq-vehicle-inspection-form textarea{font-size:16px;}
.sspq-inspection-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:4px 0 10px;}
.sspq-inspection-section-title strong{font-size:18px;color:#0f172a;}
.sspq-inspection-section-title span{font-size:12px;color:#64748b;font-weight:800;line-height:1.3;text-align:right;}
.sspq-vehicle-inspection-checklist{display:grid;gap:8px;}
.sspq-vehicle-inspection-row{display:grid;grid-template-columns:minmax(190px,1.1fr) minmax(380px,2fr);gap:12px;align-items:center;padding:12px;border:1px solid #dbe3ef;border-radius:14px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.035);}
.sspq-vehicle-inspection-label{font-weight:900;color:#0f172a;line-height:1.25;}
.sspq-vehicle-inspection-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch;}
.sspq-vehicle-inspection-choice{position:relative;display:flex!important;align-items:center;gap:8px;min-height:42px;margin:0!important;padding:8px 10px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;color:#0f172a;font-weight:850;line-height:1.1;cursor:pointer;user-select:none;}
.sspq-vehicle-inspection-choice input[type="radio"]{position:absolute;opacity:0;pointer-events:none;}
.sspq-check-square{width:20px;height:20px;min-width:20px;border:2px solid #64748b;border-radius:4px;background:#fff;box-shadow:inset 0 0 0 2px #fff;}
.sspq-vehicle-inspection-choice input[type="radio"]:focus-visible + .sspq-check-square{outline:3px solid rgba(59,130,246,.35);outline-offset:2px;}
.sspq-vehicle-inspection-choice input[type="radio"]:checked + .sspq-check-square{background:#0b1f3a;border-color:#0b1f3a;box-shadow:inset 0 0 0 3px #fff;}
.sspq-vehicle-inspection-choice:has(input[type="radio"]:checked){border-color:#0b1f3a;background:#edf4ff;box-shadow:0 0 0 2px rgba(11,31,58,.08);}
.sspq-vehicle-inspection-choice input[value="issue"]:checked + .sspq-check-square{background:#991b1b;border-color:#991b1b;}
.sspq-vehicle-inspection-choice:has(input[value="issue"]:checked){border-color:#991b1b;background:#fef2f2;}
.sspq-vehicle-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px;}
.sspq-vehicle-photo-grid .sspq-inspection-section-title{grid-column:1/-1;margin-top:0;}
.sspq-vehicle-photo-grid label{margin:0;}
.sspq-vehicle-photo-grid input[type="file"]{width:100%;max-width:100%;}
@supports not selector(:has(*)){
  .sspq-vehicle-inspection-choice input[type="radio"]:checked + .sspq-check-square + span{font-weight:950;}
}
@media(max-width:820px){
  .sspq-vehicle-inspection-row{grid-template-columns:1fr;gap:10px;padding:12px 10px;}
  .sspq-vehicle-inspection-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
  .sspq-vehicle-inspection-choice{justify-content:flex-start;align-items:center;min-height:46px;padding:8px 7px;font-size:13px;gap:6px;}
  .sspq-check-square{width:18px;height:18px;min-width:18px;}
  .sspq-vehicle-photo-grid{grid-template-columns:1fr;}
  .sspq-inspection-section-title{display:block;}
  .sspq-inspection-section-title span{display:block;text-align:left;margin-top:4px;}
}
@media(max-width:430px){
  .sspq-vehicle-inspection-panel{padding-left:12px!important;padding-right:12px!important;}
  .sspq-vehicle-inspection-choices{grid-template-columns:1fr;}
  .sspq-vehicle-inspection-choice{font-size:15px;padding:10px;}
}

/* SSPQ 2.0.385 - Inspection véhicule : notes par problème + sélecteur site mobile propre. */
.sspq-vehicle-inspection-note{display:none;grid-column:1/-1;margin:2px 0 0!important;padding:10px 12px;border:1px solid #fecaca;border-radius:12px;background:#fff7f7;color:#7f1d1d;font-weight:900;}
.sspq-vehicle-inspection-note.is-visible{display:block!important;}
.sspq-vehicle-inspection-note textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px;border:1px solid #fca5a5;border-radius:10px;background:#fff;color:#0f172a;font-weight:600;resize:vertical;}
.sspq-vehicle-inspection-note textarea:focus{outline:3px solid rgba(220,38,38,.18);border-color:#dc2626;}
.sspq-searchable-menu-head{display:none;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e2e8f0;background:#fff;color:#0b1f3a;}
.sspq-searchable-menu-head strong{font-size:16px;line-height:1.2;}
.sspq-searchable-close{width:34px;height:34px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0b1f3a;font-size:22px;line-height:1;cursor:pointer;}
.sspq-searchable-close:hover,.sspq-searchable-close:focus{background:#f8fafc;outline:2px solid rgba(37,99,235,.18);}
@media(max-width:640px){
  .sspq-searchable-select.is-open:before{content:"";position:fixed;inset:0;background:rgba(15,23,42,.35);z-index:99998;}
  .sspq-searchable-menu{position:fixed!important;left:14px!important;right:14px!important;top:8vh!important;bottom:auto;max-height:78vh!important;z-index:99999!important;border-radius:18px!important;background:#fff!important;box-shadow:0 24px 70px rgba(15,23,42,.34)!important;overflow:hidden!important;border:1px solid #dbe3ef!important;}
  .sspq-searchable-menu-head{display:flex;}
  .sspq-searchable-input{width:calc(100% - 24px)!important;margin:12px!important;min-height:44px!important;padding:10px 12px!important;border-radius:12px!important;background:#f8fafc!important;font-size:16px!important;font-weight:750!important;}
  .sspq-searchable-list{max-height:calc(78vh - 122px)!important;overflow:auto!important;padding:0 0 8px!important;background:#fff!important;}
  .sspq-searchable-option{display:flex!important;align-items:center!important;width:100%!important;min-height:42px!important;padding:10px 14px!important;border:0!important;border-bottom:1px solid #e2e8f0!important;border-radius:0!important;background:#fff!important;color:#0b1f3a!important;font-size:15px!important;font-weight:800!important;line-height:1.25!important;text-align:left!important;box-shadow:none!important;}
  .sspq-searchable-option:hover,.sspq-searchable-option:focus{background:#f8fafc!important;color:#0b1f3a!important;outline:none!important;}
  .sspq-searchable-option.is-selected{background:#eef6ff!important;color:#0b1f3a!important;}
  .sspq-searchable-option.is-selected:before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:20px;margin-right:8px;color:#0b1f3a;font-weight:950;}
  .sspq-searchable-empty{padding:14px;color:#64748b;font-size:14px;background:#fff;}
}
@media(max-width:430px){
  .sspq-vehicle-inspection-checklist{gap:10px;}
  .sspq-vehicle-inspection-row{padding:12px!important;border-radius:14px!important;}
  .sspq-vehicle-inspection-label{font-size:16px;line-height:1.25;margin-bottom:2px;}
  .sspq-vehicle-inspection-choices{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;}
  .sspq-vehicle-inspection-choice{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;min-height:58px!important;padding:7px 4px!important;text-align:center!important;font-size:12px!important;font-weight:900!important;line-height:1.1!important;border-radius:10px!important;}
  .sspq-check-square{width:18px!important;height:18px!important;min-width:18px!important;margin-bottom:4px;}
  .sspq-vehicle-inspection-note{padding:9px 10px;font-size:14px;}
}

/* SSPQ 2.0.386 - Inspection véhicule mobile : alignement stable + note affichée seulement en cas de problème. */
.sspq-vehicle-inspection-form,
.sspq-vehicle-inspection-form *{box-sizing:border-box;}
.sspq-vehicle-inspection-form > label,
.sspq-vehicle-inspection-items,
.sspq-vehicle-inspection-checklist,
.sspq-vehicle-inspection-row{min-width:0;max-width:100%;}
.sspq-vehicle-inspection-form input,
.sspq-vehicle-inspection-form select,
.sspq-vehicle-inspection-form textarea{width:100%;max-width:100%;}
.sspq-vehicle-inspection-note[hidden],
[data-sspq-inspection-note-wrap][hidden]{display:none!important;}
.sspq-vehicle-inspection-note:not(.is-visible){display:none!important;}
.sspq-vehicle-inspection-note.is-visible{display:block!important;}
@media(max-width:640px){
  .sspq-vehicle-inspection-panel{overflow:hidden!important;}
  .sspq-vehicle-inspection-form{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;max-width:100%!important;overflow:hidden!important;}
  .sspq-vehicle-inspection-form .wide{grid-column:1/-1!important;width:100%!important;max-width:100%!important;}
  .sspq-vehicle-inspection-row{display:block!important;width:100%!important;max-width:100%!important;padding:12px!important;margin:0!important;overflow:hidden!important;border-radius:14px!important;}
  .sspq-vehicle-inspection-label{display:block!important;margin:0 0 10px!important;font-size:16px!important;line-height:1.25!important;}
  .sspq-vehicle-inspection-choices{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;width:100%!important;max-width:100%!important;}
  .sspq-vehicle-inspection-choice{display:flex!important;flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;width:100%!important;min-height:42px!important;padding:9px 11px!important;margin:0!important;text-align:left!important;font-size:15px!important;line-height:1.15!important;border-radius:10px!important;white-space:normal!important;}
  .sspq-vehicle-inspection-choice span:last-child{display:block!important;min-width:0!important;overflow:visible!important;text-overflow:clip!important;}
  .sspq-check-square{width:18px!important;height:18px!important;min-width:18px!important;margin:0 8px 0 0!important;}
  .sspq-vehicle-inspection-note.is-visible{margin-top:10px!important;padding:10px!important;width:100%!important;}
  .sspq-vehicle-inspection-note textarea{min-height:88px!important;}
  .sspq-inspection-section-title{margin-bottom:12px!important;}
  .sspq-inspection-section-title strong{display:block!important;font-size:20px!important;line-height:1.2!important;}
  .sspq-inspection-section-title span{display:block!important;margin-top:4px!important;font-size:12px!important;text-align:left!important;}
}


/* SSPQ 2.0.387 - Lecture NFC mobile pendant les rondes */
.sspq-patrol-nfc-scan-form {
  display: block;
  width: 100%;
  max-width: 100%;
}
.sspq-patrol-nfc-scan-card {
  display: grid;
  gap: .55rem;
  width: 100%;
  max-width: 100%;
  padding: .75rem;
  border: 1px solid rgba(11,31,58,.12);
  border-radius: 14px;
  background: #fff;
}
.sspq-patrol-nfc-scan-btn {
  width: 100%;
  justify-content: center;
}

.sspq-patrol-nfc-auto-label {
  font-weight: 700;
  color: #0f2a45;
  margin-bottom: 6px;
}

.sspq-patrol-nfc-scan-btn[hidden] {
  display: none !important;
}

.sspq-patrol-nfc-status {
  font-size: .86rem;
  line-height: 1.35;
  color: #64748b;
  padding: .5rem .65rem;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid rgba(148,163,184,.28);
}
.sspq-patrol-nfc-status.is-pending {
  color: #92400e;
  background: #fffbeb;
  border-color: rgba(245,158,11,.35);
}
.sspq-patrol-nfc-status.is-success {
  color: #166534;
  background: #f0fdf4;
  border-color: rgba(34,197,94,.35);
}
.sspq-patrol-nfc-status.is-error {
  color: #991b1b;
  background: #fef2f2;
  border-color: rgba(239,68,68,.35);
}
.sspq-patrol-nfc-manual {
  width: 100%;
  border-top: 1px solid rgba(148,163,184,.22);
  padding-top: .45rem;
}
.sspq-patrol-nfc-manual summary {
  cursor: pointer;
  font-weight: 700;
  color: #334155;
  font-size: .86rem;
}
.sspq-patrol-nfc-manual input {
  width: 100%;
  margin-top: .45rem;
}
.sspq-patrol-nfc-manual .sspq-btn {
  width: 100%;
  margin-top: .45rem;
}
@media (max-width: 760px) {
  .sspq-patrol-nfc-scan-card {
    padding: .7rem;
    border-radius: 12px;
  }
  .sspq-patrol-nfc-scan-btn,
  .sspq-patrol-nfc-manual .sspq-btn {
    min-height: 44px;
  }
}

/* 2.0.389 - Validation NFC sans rechargement */
[data-sspq-run-point-id].is-completed .sspq-status-pill,
[data-sspq-run-point-id].is-completed [data-sspq-point-status-label]{background:#dcfce7!important;color:#166534!important;border-color:#86efac!important;}
.sspq-patrol-mobile-point.is-completed{border-color:#86efac;background:#166534;}
.sspq-patrol-mobile-point.is-next{box-shadow:0 0 0 2px rgba(37,99,235,.25);}
.sspq-patrol-nfc-form[data-sspq-nfc-completed="1"] .sspq-patrol-nfc-scan-card{border-color:#86efac;background:#f0fdf4;}
.sspq-patrol-nfc-status.is-pending{color:#1d4ed8;}
.sspq-patrol-nfc-status.is-success{color:#166534;font-weight:800;}
.sspq-patrol-nfc-status.is-error{color:#b91c1c;font-weight:800;}

/* SSPQ 2.0.399 - structure uniforme des listes deroulantes. */
.sspq-platform select:not(.sspq-native-select-hidden):not([multiple]),
.sspq-platform button.sspq-searchable-toggle,
.sspq-platform .sspq-report-searchable-toggle,
.sspq-platform .sspq-report-multiselect-toggle {
  box-sizing: border-box !important;
  min-height: 46px !important;
  max-width: 100% !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 10px !important;
  background-color: #fff !important;
  color: #0b1f3a !important;
  box-shadow: none !important;
  text-shadow: none !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
}

.sspq-platform select:not(.sspq-native-select-hidden):not([multiple]) {
  appearance: none !important;
  -webkit-appearance: none !important;
  padding: 10px 42px 10px 12px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23334155' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-position: right 12px center !important;
  background-repeat: no-repeat !important;
  background-size: 16px 16px !important;
}

.sspq-platform button.sspq-searchable-toggle,
.sspq-platform .sspq-report-searchable-toggle,
.sspq-platform .sspq-report-multiselect-toggle {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  padding: 10px 12px !important;
  background-image: none !important;
  text-align: left !important;
}

.sspq-platform .sspq-searchable-toggle [data-sspq-searchable-display],
.sspq-platform .sspq-report-searchable-toggle [data-sspq-report-search-display] {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sspq-platform .sspq-searchable-arrow,
.sspq-platform .sspq-report-searchable-toggle span[aria-hidden="true"] {
  flex: 0 0 auto !important;
  color: #334155 !important;
  font-size: 16px !important;
  line-height: 1 !important;
}

/* SSPQ 2.0.400 - le menu Site de l'horaire doit matcher les select natifs. */
body.sspq-fullscreen-horaire .sspq-platform .sspq-horaire-filters .sspq-searchable-select > button.sspq-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger),
body.sspq-fullscreen-horaire .sspq-platform .sspq-schedule-toolbar .sspq-searchable-select > button.sspq-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger),
body.sspq-fullscreen-horaire .sspq-horaire-filters .sspq-searchable-select > button.sspq-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger),
body.sspq-fullscreen-horaire .sspq-schedule-toolbar .sspq-searchable-select > button.sspq-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger) {
  min-height: 43px !important;
  padding: 9px 10px !important;
  border: 1px solid #d9dee7 !important;
  border-color: #d9dee7 !important;
  border-radius: 10px !important;
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  color: #000 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
}

body.sspq-fullscreen-horaire .sspq-platform .sspq-horaire-filters .sspq-searchable-toggle [data-sspq-searchable-display],
body.sspq-fullscreen-horaire .sspq-platform .sspq-schedule-toolbar .sspq-searchable-toggle [data-sspq-searchable-display],
body.sspq-fullscreen-horaire .sspq-horaire-filters .sspq-searchable-toggle [data-sspq-searchable-display],
body.sspq-fullscreen-horaire .sspq-schedule-toolbar .sspq-searchable-toggle [data-sspq-searchable-display] {
  color: #000 !important;
  font-weight: 400 !important;
}

body.sspq-fullscreen-horaire .sspq-platform .sspq-horaire-filters .sspq-searchable-arrow,
body.sspq-fullscreen-horaire .sspq-platform .sspq-schedule-toolbar .sspq-searchable-arrow,
body.sspq-fullscreen-horaire .sspq-horaire-filters .sspq-searchable-arrow,
body.sspq-fullscreen-horaire .sspq-schedule-toolbar .sspq-searchable-arrow {
  color: #334155 !important;
}

/* SSPQ 2.0.401 - options ouvertes du menu Site comme une liste native. */
body.sspq-fullscreen-horaire .sspq-platform .sspq-horaire-filters .sspq-searchable-menu,
body.sspq-fullscreen-horaire .sspq-platform .sspq-schedule-toolbar .sspq-searchable-menu,
body.sspq-fullscreen-horaire .sspq-horaire-filters .sspq-searchable-menu,
body.sspq-fullscreen-horaire .sspq-schedule-toolbar .sspq-searchable-menu {
  border: 1px solid #777 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
}

body.sspq-fullscreen-horaire .sspq-platform .sspq-horaire-filters .sspq-searchable-input,
body.sspq-fullscreen-horaire .sspq-platform .sspq-schedule-toolbar .sspq-searchable-input,
body.sspq-fullscreen-horaire .sspq-horaire-filters .sspq-searchable-input,
body.sspq-fullscreen-horaire .sspq-schedule-toolbar .sspq-searchable-input {
  margin: 0 !important;
  min-height: 43px !important;
  width: 100% !important;
  border: 0 !important;
  border-bottom: 1px solid #d9dee7 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #000 !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  box-shadow: none !important;
}

body.sspq-fullscreen-horaire .sspq-platform .sspq-horaire-filters .sspq-searchable-menu button.sspq-searchable-option,
body.sspq-fullscreen-horaire .sspq-platform .sspq-schedule-toolbar .sspq-searchable-menu button.sspq-searchable-option,
body.sspq-fullscreen-horaire .sspq-horaire-filters .sspq-searchable-menu button.sspq-searchable-option,
body.sspq-fullscreen-horaire .sspq-schedule-toolbar .sspq-searchable-menu button.sspq-searchable-option {
  min-height: 28px !important;
  padding: 5px 12px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  background-color: #fff !important;
  color: #000 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  text-align: left !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
}

body.sspq-fullscreen-horaire .sspq-platform .sspq-horaire-filters .sspq-searchable-menu button.sspq-searchable-option:hover,
body.sspq-fullscreen-horaire .sspq-platform .sspq-horaire-filters .sspq-searchable-menu button.sspq-searchable-option:focus,
body.sspq-fullscreen-horaire .sspq-platform .sspq-horaire-filters .sspq-searchable-menu button.sspq-searchable-option.is-selected,
body.sspq-fullscreen-horaire .sspq-platform .sspq-schedule-toolbar .sspq-searchable-menu button.sspq-searchable-option:hover,
body.sspq-fullscreen-horaire .sspq-platform .sspq-schedule-toolbar .sspq-searchable-menu button.sspq-searchable-option:focus,
body.sspq-fullscreen-horaire .sspq-platform .sspq-schedule-toolbar .sspq-searchable-menu button.sspq-searchable-option.is-selected,
body.sspq-fullscreen-horaire .sspq-horaire-filters .sspq-searchable-menu button.sspq-searchable-option:hover,
body.sspq-fullscreen-horaire .sspq-horaire-filters .sspq-searchable-menu button.sspq-searchable-option:focus,
body.sspq-fullscreen-horaire .sspq-horaire-filters .sspq-searchable-menu button.sspq-searchable-option.is-selected,
body.sspq-fullscreen-horaire .sspq-schedule-toolbar .sspq-searchable-menu button.sspq-searchable-option:hover,
body.sspq-fullscreen-horaire .sspq-schedule-toolbar .sspq-searchable-menu button.sspq-searchable-option:focus,
body.sspq-fullscreen-horaire .sspq-schedule-toolbar .sspq-searchable-menu button.sspq-searchable-option.is-selected {
  background: #1f6fd5 !important;
  background-color: #1f6fd5 !important;
  color: #fff !important;
  outline: none !important;
}

/* SSPQ 2.0.402 - les listes custom doivent rester des champs, pas des boutons fonces. */
.sspq-platform button.sspq-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-platform button.sspq-report-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-platform button.sspq-report-multiselect-toggle:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-admin-wrap button.sspq-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-admin-wrap button.sspq-report-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-admin-wrap button.sspq-report-multiselect-toggle:not(.sspq-modal-close):not(.sspq-btn-danger) {
  width: 100% !important;
  min-height: 46px !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  padding: 10px 12px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 10px !important;
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  color: #0b1f3a !important;
  box-shadow: none !important;
  text-shadow: none !important;
  text-align: left !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
}

.sspq-platform button.sspq-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-platform button.sspq-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):focus,
.sspq-platform button.sspq-report-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-platform button.sspq-report-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):focus,
.sspq-platform button.sspq-report-multiselect-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-platform button.sspq-report-multiselect-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):focus,
.sspq-admin-wrap button.sspq-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-admin-wrap button.sspq-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):focus,
.sspq-admin-wrap button.sspq-report-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-admin-wrap button.sspq-report-searchable-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):focus,
.sspq-admin-wrap button.sspq-report-multiselect-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-admin-wrap button.sspq-report-multiselect-toggle:not(.sspq-modal-close):not(.sspq-btn-danger):focus {
  border-color: #94a3b8 !important;
  background: #fff !important;
  background-color: #fff !important;
  color: #0b1f3a !important;
  transform: none !important;
  outline: 2px solid rgba(37,99,235,.18) !important;
  outline-offset: 0 !important;
}

.sspq-platform .sspq-searchable-toggle [data-sspq-searchable-display],
.sspq-platform .sspq-report-searchable-toggle [data-sspq-report-search-display],
.sspq-platform .sspq-report-multiselect-toggle [data-sspq-report-multiselect-display] {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  color: #0b1f3a !important;
}

.sspq-platform .sspq-searchable-arrow,
.sspq-platform .sspq-report-searchable-toggle span[aria-hidden="true"],
.sspq-platform .sspq-report-multiselect-toggle span[aria-hidden="true"] {
  flex: 0 0 auto !important;
  color: #334155 !important;
  font-size: 16px !important;
  line-height: 1 !important;
}

.sspq-platform .sspq-searchable-menu,
.sspq-platform .sspq-report-searchable-menu,
.sspq-platform .sspq-report-multiselect-menu {
  background: #fff !important;
  background-color: #fff !important;
  border: 1px solid #94a3b8 !important;
  border-radius: 8px !important;
  box-shadow: 0 18px 35px rgba(15,23,42,.18) !important;
  overflow: hidden !important;
}

.sspq-platform .sspq-searchable-input,
.sspq-platform .sspq-report-searchable-input,
.sspq-platform .sspq-report-multiselect-search {
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  min-height: 43px !important;
  padding: 9px 12px !important;
  border: 0 !important;
  border-bottom: 1px solid #d9dee7 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #000 !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
}

.sspq-platform .sspq-searchable-list,
.sspq-platform .sspq-report-searchable-list,
.sspq-platform .sspq-report-multiselect-options {
  background: #fff !important;
}

.sspq-platform .sspq-searchable-menu button.sspq-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-platform .sspq-report-searchable-menu button.sspq-report-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-admin-wrap .sspq-searchable-menu button.sspq-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-admin-wrap .sspq-report-searchable-menu button.sspq-report-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-platform .sspq-report-multiselect-options label {
  width: 100% !important;
  min-height: 32px !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 7px 12px !important;
  border: 0 !important;
  border-bottom: 1px solid #e5e7eb !important;
  border-radius: 0 !important;
  background: #fff !important;
  background-color: #fff !important;
  color: #000 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  text-align: left !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  cursor: pointer !important;
  transform: none !important;
}

.sspq-platform .sspq-searchable-menu button.sspq-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-platform .sspq-searchable-menu button.sspq-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger):focus,
.sspq-platform .sspq-searchable-menu button.sspq-searchable-option.is-selected:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-platform .sspq-report-searchable-menu button.sspq-report-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-platform .sspq-report-searchable-menu button.sspq-report-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger):focus,
.sspq-platform .sspq-report-searchable-menu button.sspq-report-searchable-option.is-selected:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-admin-wrap .sspq-searchable-menu button.sspq-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-admin-wrap .sspq-searchable-menu button.sspq-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger):focus,
.sspq-admin-wrap .sspq-searchable-menu button.sspq-searchable-option.is-selected:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-admin-wrap .sspq-report-searchable-menu button.sspq-report-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger):hover,
.sspq-admin-wrap .sspq-report-searchable-menu button.sspq-report-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger):focus,
.sspq-admin-wrap .sspq-report-searchable-menu button.sspq-report-searchable-option.is-selected:not(.sspq-modal-close):not(.sspq-btn-danger),
.sspq-platform .sspq-report-multiselect-options label:hover,
.sspq-platform .sspq-report-multiselect-options label:focus-within {
  background: #1f6fd5 !important;
  background-color: #1f6fd5 !important;
  color: #fff !important;
  outline: none !important;
}

/* 2.0.409 - NFC serial editing and testing */
.sspq-field-hint{margin:-4px 0 10px;font-size:12px;line-height:1.35;color:#64748b;}
.sspq-test-nfc-tag[disabled]{opacity:.65;cursor:wait;}

/* 2.0.413 - Recherche rapide des points de contrôle */
.sspq-checkpoint-searchbar{display:flex;gap:12px;align-items:center;margin:12px 0 14px;}
.sspq-checkpoint-searchbar input{width:100%;max-width:520px;}
.sspq-checkpoint-searchbar select{width:220px;max-width:100%;min-height:42px;}

.sspq-patrol-recalc-bouncie{margin:10px 0 14px;}


/* SSPQ 2.0.414 - Tests de trajet sans quart */
.sspq-patrol-test-panel{border-left:4px solid #d5ae22;}
.sspq-patrol-test-run .sspq-panel-head{border-bottom-color:#d5ae22;}
.sspq-patrol-test-start-form .wide .sspq-btn{min-width:220px;}
@media(max-width:700px){.sspq-patrol-test-start-form .wide .sspq-btn{width:100%;min-width:0;}}


/* 2.0.418 - Recherche points de contrôle: masquage fiable desktop/mobile. */
.sspq-checkpoints-table-wrap .sspq-checkpoint-row.is-search-hidden,
.sspq-checkpoints-table-wrap .sspq-checkpoint-row[hidden]{display:none!important;}

/* SSPQ 2.0.419 - Sélecteurs de rapports mobiles stables et compacts. */
.sspq-report-picker-body{display:grid!important;gap:14px!important;}
.sspq-report-picker-field{display:grid!important;gap:8px!important;position:relative!important;margin:0!important;}
.sspq-report-picker-label{font-weight:900!important;color:#0b1f3a!important;line-height:1.25!important;}
.sspq-report-modal .sspq-report-searchable-select{position:relative!important;width:100%!important;z-index:1!important;}
.sspq-report-modal .sspq-report-searchable-select.is-open{z-index:80!important;}
.sspq-report-modal .sspq-report-searchable-menu{z-index:120000!important;background:#fff!important;border:1px solid #cbd5e1!important;border-radius:14px!important;box-shadow:0 18px 36px rgba(15,23,42,.20)!important;overflow:hidden!important;}
.sspq-report-modal .sspq-report-searchable-list{max-height:min(42vh,360px)!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;touch-action:pan-y!important;}
.sspq-report-modal .sspq-report-searchable-input{min-height:48px!important;font-size:16px!important;border-bottom:1px solid #dbe4ee!important;}
.sspq-report-modal .sspq-report-searchable-menu button.sspq-report-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger){min-height:46px!important;padding:11px 14px!important;font-size:16px!important;font-weight:700!important;line-height:1.22!important;}
.sspq-report-modal .sspq-report-searchable-toggle:disabled{opacity:.55!important;background:#f1f5f9!important;cursor:not-allowed!important;}
@media(max-width:760px){
  .sspq-report-modal .sspq-report-searchable-select.is-open .sspq-report-searchable-menu{position:static!important;left:auto!important;right:auto!important;top:auto!important;width:100%!important;max-width:100%!important;max-height:none!important;margin-top:8px!important;}
  .sspq-report-modal .sspq-report-searchable-list{max-height:38vh!important;}
  .sspq-report-picker-body{gap:16px!important;}
  .sspq-report-modal .sspq-report-searchable-menu button.sspq-report-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger){min-height:48px!important;}
}


/* 2.0.420 - Point de contrôle scanné hors ligne, en attente de synchronisation */
.sspq-patrol-mobile-point.is-offline-pending summary {
  border-left: 6px solid #d4a91f;
}
.sspq-patrol-mobile-point.is-offline-pending .sspq-status-pill,
.sspq-patrol-nfc-status.is-pending {
  color: #7c5d00;
}


/* SSPQ 2.0.421 - Modale Rapport mobile : sélecteurs stables site/rapport. */
.sspq-report-searchable-menu-head{
  display:none;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-bottom:1px solid #e2e8f0;
  background:#fff;
  color:#0b1f3a;
}
.sspq-report-searchable-menu-head strong{font-size:16px;line-height:1.2;font-weight:950;}
.sspq-report-searchable-close{
  width:38px;
  height:38px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#0b1f3a;
  color:#fff;
  font-size:24px;
  line-height:1;
  font-weight:900;
  cursor:pointer;
}
.sspq-report-searchable-close:hover,
.sspq-report-searchable-close:focus{outline:3px solid rgba(37,99,235,.20);}
.sspq-report-modal .sspq-report-searchable-select{isolation:isolate;}
@media(max-width:760px){
  .sspq-report-modal{align-items:flex-end!important;padding:0!important;}
  .sspq-report-modal .sspq-report-modal-card{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    max-height:calc(100dvh - 8px)!important;
    overflow:hidden!important;
    border-radius:18px 18px 0 0!important;
  }
  .sspq-report-modal .sspq-report-modal-head,
  .sspq-report-modal .sspq-report-modal-actions{flex:0 0 auto!important;}
  .sspq-report-modal .sspq-report-modal-body{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }
  .sspq-report-modal .sspq-report-modal-actions{
    position:sticky!important;
    bottom:0!important;
    z-index:4!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    background:#f8fafc!important;
  }
  .sspq-report-modal .sspq-report-searchable-select.is-open::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:100000;
    background:rgba(15,23,42,.46);
  }
  .sspq-report-modal .sspq-report-picker-field .sspq-report-searchable-select.is-open .sspq-report-searchable-menu,
  .sspq-report-modal .sspq-report-searchable-select.is-open .sspq-report-searchable-menu{
    position:fixed!important;
    left:14px!important;
    right:14px!important;
    top:calc(env(safe-area-inset-top, 0px) + 92px)!important;
    bottom:calc(env(safe-area-inset-bottom, 0px) + 16px)!important;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
    z-index:100001!important;
    border-radius:18px!important;
    overflow:hidden!important;
    background:#fff!important;
    box-shadow:0 24px 70px rgba(15,23,42,.38)!important;
  }
  .sspq-report-modal .sspq-report-searchable-menu-head{display:flex!important;flex:0 0 auto!important;}
  .sspq-report-modal .sspq-report-searchable-input{
    flex:0 0 auto!important;
    width:calc(100% - 24px)!important;
    margin:12px!important;
    min-height:46px!important;
    border-radius:12px!important;
    font-size:16px!important;
  }
  .sspq-report-modal .sspq-report-searchable-list{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
    padding-bottom:10px!important;
  }
  .sspq-report-modal .sspq-report-searchable-menu button.sspq-report-searchable-option:not(.sspq-modal-close):not(.sspq-btn-danger){
    min-height:50px!important;
    padding:12px 14px!important;
    font-size:16px!important;
    font-weight:800!important;
    line-height:1.25!important;
  }
}

/* SSPQ 2.0.422 - Photos et consignes visibles pour les points de contrôle. */
.sspq-checkpoint-reference-photo-input input[type="file"]{padding:10px;border:1px solid var(--sspq-border);border-radius:10px;background:#fff;width:100%;}
.sspq-checkpoint-reference-photo-current{display:flex;flex-direction:column;gap:8px;}
.sspq-checkpoint-reference-photo-current img,.sspq-patrol-point-reference-photo img{display:block;max-width:260px;max-height:180px;border-radius:12px;border:1px solid var(--sspq-border);object-fit:cover;background:#fff;}
.sspq-checkpoint-map-actions-add{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;margin-top:-4px;margin-bottom:4px;}
.sspq-point-instruction-block{margin:10px 0;padding:10px 12px;border:1px solid var(--sspq-border);border-radius:12px;background:#fff;}
.sspq-point-instruction-block strong,.sspq-patrol-point-reference-photo strong{display:block;font-size:.86rem;color:var(--sspq-muted);margin-bottom:4px;}
.sspq-point-instruction-block span{display:block;color:var(--sspq-text);line-height:1.45;}
.sspq-patrol-point-reference-photo{margin-top:10px;}
@media (max-width:700px){.sspq-checkpoint-map-actions-add .sspq-btn{width:100%;}.sspq-checkpoint-reference-photo-current img,.sspq-patrol-point-reference-photo img{max-width:100%;height:auto;}}


/* SSPQ 2.0.424 - Trajet : ligne du parcours visible au-dessus du fond de carte. */
.leaflet-pane.leaflet-sspqTripRoutePane-pane{
  z-index:560!important;
  pointer-events:none!important;
}
.sspq-trip-route-casing{
  stroke:#ffffff!important;
  stroke-width:16px!important;
  stroke-opacity:1!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  pointer-events:none!important;
}
.sspq-trip-route-line{
  stroke:#0057ff!important;
  stroke-width:10px!important;
  stroke-opacity:1!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  pointer-events:none!important;
  filter:none!important;
}
.sspq-trip-route-line-fallback{
  stroke:#0b2447!important;
  stroke-width:7px!important;
  stroke-opacity:.9!important;
}
.sspq-trip-trace-marker{
  width:10px!important;
  height:10px!important;
  border-width:2px!important;
  opacity:.58!important;
}
.sspq-trip-trace-marker span{width:3px!important;height:3px!important;}


/* SSPQ 2.0.425 - Trajet : rendu SVG forcé pour rendre la ligne visible malgré preferCanvas. */
.leaflet-pane.leaflet-sspqTripRoutePane-pane svg{
  overflow:visible!important;
  z-index:560!important;
}
.leaflet-pane.leaflet-sspqTripRoutePane-pane path.sspq-trip-route-casing,
.leaflet-pane.leaflet-sspqTripRoutePane-pane path.sspq-trip-route-line{
  visibility:visible!important;
  display:block!important;
}

/* SSPQ 2.0.427 - Correctifs mobile rapports et sélecteur Site des quarts. */
.sspq-report-field-title{font-weight:800;color:#0b1f3a;margin:0 0 8px;}
.sspq-report-address-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;}
.sspq-report-address-grid label{display:flex;flex-direction:column;gap:4px;font-weight:800;color:#0b1f3a;}
.sspq-report-address-grid input{width:100%;min-height:44px;}
.sspq-report-address-grid label:nth-child(2){grid-column:span 1;}
.sspq-report-address-grid label:nth-child(3){grid-column:span 1;}
@media (max-width:640px){.sspq-report-address-grid{grid-template-columns:1fr;}}
.sspq-report-validation-warning{grid-column:1/-1;padding:12px 14px;border:1px solid #f59e0b;border-radius:12px;background:#fffbeb;color:#78350f;font-weight:800;line-height:1.35;}
.sspq-patrol-template-field.is-invalid{outline:3px solid rgba(220,38,38,.28);outline-offset:3px;border-radius:12px;}
.sspq-report-modal-body .sspq-report-multiselect-options label{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;align-items:center!important;gap:10px!important;flex-direction:row!important;width:100%!important;min-height:46px!important;margin:0!important;padding:10px 14px!important;text-align:left!important;}
.sspq-report-modal-body .sspq-report-multiselect-options label input[type="checkbox"]{grid-column:1!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;margin:0!important;justify-self:start!important;align-self:center!important;}
.sspq-report-modal-body .sspq-report-multiselect-options label span{grid-column:2!important;display:block!important;min-width:0!important;overflow-wrap:anywhere!important;}
.sspq-report-multiselect-actions{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid #dbe3ef;background:#f8fafc;}
.sspq-report-multiselect-actions .sspq-btn{min-width:92px;}
.sspq-report-file-control{display:flex;flex-direction:column;gap:7px;align-items:flex-start;}
.sspq-report-file-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:48px!important;min-width:160px!important;padding:11px 16px!important;border:0!important;border-radius:12px!important;background:#0b1f3a!important;color:#fff!important;font-weight:900!important;cursor:pointer!important;box-shadow:0 8px 18px rgba(11,31,58,.18)!important;}
.sspq-report-file-button input[type="file"]{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;pointer-events:none!important;}
.sspq-report-file-name{display:block;color:#64748b;font-weight:700;line-height:1.3;overflow-wrap:anywhere;}
.sspq-signature-pad-buttonized{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
.sspq-signature-status{font-weight:800;color:#64748b;}
.sspq-signature-status.is-signed{color:#166534;}
.sspq-signature-dialog[hidden]{display:none!important;}
.sspq-signature-dialog{position:fixed;inset:0;z-index:100004;background:rgba(2,8,23,.76);display:flex;align-items:center;justify-content:center;padding:10px;}
.sspq-signature-dialog-card{width:min(960px,calc(100vw - 20px));height:min(520px,calc(100dvh - 20px));display:flex;flex-direction:column;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.42);overflow:hidden;}
.sspq-signature-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#0b1f3a;color:#fff;}
.sspq-signature-dialog-head strong{color:#fff;font-size:18px;}
.sspq-signature-dialog-close{border:0;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;width:38px;height:38px;font-size:26px;line-height:1;cursor:pointer;}
.sspq-signature-dialog canvas{flex:1 1 auto;width:100%;min-height:0;background:#fff;touch-action:none;display:block;border:0;}
.sspq-signature-dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px;background:#f8fafc;border-top:1px solid #dbe3ef;}
html.sspq-signature-open-active{overflow:hidden!important;}
.sspq-report-modal .sspq-patrol-report-form>.sspq-report-modal-actions.wide{position:static!important;bottom:auto!important;z-index:auto!important;order:999!important;margin-top:14px!important;background:#fff!important;}
@media(max-width:760px){
  .sspq-report-modal .sspq-patrol-report-form>.sspq-report-modal-actions.wide{position:static!important;display:grid!important;grid-template-columns:1fr!important;padding:14px 0 calc(8px + env(safe-area-inset-bottom))!important;border-top:1px solid #e5edf6!important;}
  .sspq-report-modal-body .sspq-report-multiselect-menu{position:fixed!important;left:14px!important;right:14px!important;top:calc(env(safe-area-inset-top,0px) + 78px)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 16px)!important;display:none;flex-direction:column!important;max-height:none!important;z-index:100002!important;border-radius:18px!important;overflow:hidden!important;}
  .sspq-report-multiselect.is-open .sspq-report-multiselect-menu{display:flex!important;}
  .sspq-report-multiselect-options{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;touch-action:pan-y!important;}
  .sspq-report-multiselect-actions{flex:0 0 auto!important;}
  .sspq-signature-dialog{padding:6px;align-items:center;}
  .sspq-signature-dialog-card{width:calc(100vw - 12px);height:min(58vh,520px);min-height:320px;border-radius:16px;}
  .sspq-signature-dialog-actions{display:grid;grid-template-columns:1fr 1fr;}
  .sspq-signature-dialog-actions .sspq-btn{width:100%;justify-content:center;}
  .sspq-schedule-shift-modal .sspq-schedule-site-searchable.is-open::before,
  .sspq-schedule-shift-modal .sspq-schedule-employee-searchable.is-open::before,
  .sspq-schedule-shift-modal .sspq-schedule-client-searchable.is-open::before{content:none!important;display:none!important;}
  .sspq-schedule-shift-modal .sspq-schedule-site-searchable.is-open .sspq-searchable-menu,
  .sspq-schedule-shift-modal .sspq-schedule-employee-searchable.is-open .sspq-searchable-menu,
  .sspq-schedule-shift-modal .sspq-schedule-client-searchable.is-open .sspq-searchable-menu{position:fixed!important;left:14px!important;right:14px!important;top:calc(env(safe-area-inset-top,0px) + 84px)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 16px)!important;width:auto!important;max-width:none!important;max-height:none!important;margin:0!important;display:flex!important;flex-direction:column!important;z-index:100003!important;border-radius:18px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 24px 70px rgba(15,23,42,.38)!important;}
  .sspq-schedule-shift-modal .sspq-schedule-site-searchable .sspq-searchable-menu-head,
  .sspq-schedule-shift-modal .sspq-schedule-employee-searchable .sspq-searchable-menu-head,
  .sspq-schedule-shift-modal .sspq-schedule-client-searchable .sspq-searchable-menu-head{display:flex!important;flex:0 0 auto!important;}
  .sspq-schedule-shift-modal .sspq-schedule-site-searchable .sspq-searchable-input,
  .sspq-schedule-shift-modal .sspq-schedule-employee-searchable .sspq-searchable-input,
  .sspq-schedule-shift-modal .sspq-schedule-client-searchable .sspq-searchable-input{flex:0 0 auto!important;width:calc(100% - 24px)!important;margin:12px!important;min-height:46px!important;border-radius:12px!important;border:1px solid #cbd5e1!important;font-size:16px!important;}
  .sspq-schedule-shift-modal .sspq-schedule-site-searchable .sspq-searchable-list,
  .sspq-schedule-shift-modal .sspq-schedule-employee-searchable .sspq-searchable-list,
  .sspq-schedule-shift-modal .sspq-schedule-client-searchable .sspq-searchable-list{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;touch-action:pan-y!important;}
  .sspq-schedule-shift-modal .sspq-schedule-site-searchable .sspq-searchable-option,
  .sspq-schedule-shift-modal .sspq-schedule-employee-searchable .sspq-searchable-option,
  .sspq-schedule-shift-modal .sspq-schedule-client-searchable .sspq-searchable-option{min-height:48px!important;padding:12px 14px!important;font-size:16px!important;}
  .sspq-schedule-shift-modal .sspq-schedule-employee-searchable .sspq-searchable-option,
  .sspq-schedule-shift-modal .sspq-schedule-client-searchable .sspq-searchable-option{white-space:normal!important;}
}

/* SSPQ 2.0.430 - Véhicules : ouverture détaillée des rapports d'inspection */
.sspq-inspection-report-modal .sspq-modal-card{width:min(980px,calc(100vw - 32px));max-height:92vh;overflow:auto;}
.sspq-inspection-report-body{padding:18px;display:grid;gap:16px;color:#0f172a;}
.sspq-inspection-report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.sspq-inspection-report-summary>div{min-width:0;border:1px solid #dbe3ef;border-radius:14px;background:#f8fafc;padding:12px;}
.sspq-inspection-report-summary strong{display:block;margin-bottom:5px;color:#334155;font-size:12px;text-transform:uppercase;letter-spacing:.04em;}
.sspq-inspection-report-summary span{display:block;font-weight:850;color:#0b1f3a;overflow-wrap:anywhere;}
.sspq-inspection-report-section{border:1px solid #dbe3ef;border-radius:16px;background:#fff;padding:14px;}
.sspq-inspection-report-section h4{margin:0 0 12px;color:#0b1f3a;font-size:16px;}
.sspq-inspection-report-section p{margin:0;line-height:1.45;}
.sspq-inspection-response-list{display:grid;gap:10px;}
.sspq-inspection-response-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.6fr);gap:10px;align-items:start;border:1px solid #e2e8f0;border-radius:12px;background:#fbfdff;padding:10px;}
.sspq-inspection-response-label{font-weight:900;color:#0f172a;line-height:1.25;}
.sspq-inspection-response-value{min-width:0;}
.sspq-inspection-value{display:inline-flex;align-items:center;min-height:30px;border-radius:999px;background:#eef4ff;color:#0b1f3a;padding:5px 10px;font-weight:850;}
.sspq-inspection-response-note{grid-column:1/-1;border-left:4px solid #d9a928;background:#fffbeb;border-radius:8px;padding:8px 10px;color:#713f12;line-height:1.35;}
.sspq-inspection-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;}
.sspq-inspection-photo-card{display:grid;gap:7px;text-decoration:none;color:#0b1f3a;font-weight:850;border:1px solid #dbe3ef;border-radius:14px;background:#f8fafc;padding:8px;}
.sspq-inspection-photo-card img{display:block;width:100%;height:130px;object-fit:cover;border-radius:10px;background:#e2e8f0;}
.sspq-inspection-photo-card span{overflow-wrap:anywhere;}
.sspq-inspection-json{white-space:pre-wrap;max-height:220px;overflow:auto;border:1px solid #dbe3ef;border-radius:10px;background:#f8fafc;padding:10px;font-size:12px;}
@media(max-width:760px){.sspq-inspection-report-modal{align-items:flex-end!important;padding:0!important;}.sspq-inspection-report-modal .sspq-modal-card{width:100%!important;max-width:100%!important;max-height:92vh!important;border-radius:18px 18px 0 0!important;}.sspq-inspection-report-body{padding:14px;}.sspq-inspection-report-summary{grid-template-columns:1fr;}.sspq-inspection-response-row{grid-template-columns:1fr;}.sspq-inspection-photo-grid{grid-template-columns:1fr;}.sspq-inspection-photo-card img{height:180px;}.sspq-inspection-report-body .sspq-modal-actions{display:grid;}.sspq-inspection-report-body .sspq-modal-actions .sspq-btn{width:100%;justify-content:center;}}

/* SSPQ 2.0.432 - Exports PDF points de controle rapides et compatibles mobile */
.sspq-export-links{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.sspq-export-links .sspq-btn{text-align:center;}
@media(max-width:760px){
  .sspq-control-points-table .sspq-export-links{display:grid;grid-template-columns:1fr;gap:8px;width:100%;}
  .sspq-control-points-table .sspq-export-links .sspq-btn{width:100%;min-height:42px;display:flex;align-items:center;justify-content:center;}
}

/* SSPQ 2.0.463 - Carte de ronde : contrôle plein écran intégré à Leaflet, à côté du zoom +/-. */
.sspq-guidance-map .leaflet-top.leaflet-left{
  display:flex!important;
  align-items:flex-start;
  gap:8px;
}
.sspq-guidance-map .leaflet-top.leaflet-left .leaflet-control{
  margin-top:10px;
  margin-left:10px;
}
.sspq-guidance-map .leaflet-top.leaflet-left .sspq-guidance-map-control{
  margin-left:0;
}
.sspq-guidance-map-control{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.sspq-guidance-map-toggle{
  position:static!important;
  display:inline;
  justify-content:center;
  gap:6px;
  min-height:34px;
  height:34px;
  max-width:150px;
  padding:0 10px;
  border:1px solid rgba(11,31,58,.28);
  border-radius:6px;
  background:#fff;
  color:#0b1f3a;
  font-weight:900;
  font-size:12px;
  line-height:1;
  box-shadow:0 2px 8px rgba(15,23,42,.22);
  cursor:pointer;
  white-space:nowrap;
}
.sspq-guidance-map-toggle span[aria-hidden="true"]{
  font-size:17px;
  line-height:1;
}
.sspq-guidance-overlay.is-map-fullscreen .sspq-guidance-head,
.sspq-guidance-overlay.is-map-fullscreen .sspq-guidance-panel{display:none!important;}
.sspq-guidance-overlay.is-map-fullscreen .sspq-guidance-map{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:100%;
  flex:none;
}
.sspq-guidance-overlay.is-map-fullscreen .sspq-guidance-map .leaflet-top.leaflet-left{
  top:calc(env(safe-area-inset-top,0px) + 8px);
}
.sspq-guidance-overlay.is-map-fullscreen .sspq-guidance-map-toggle{
  background:#0b1f3a;
  color:#fff;
  border-color:#c9a227;
}
@media(max-width:700px){
  .sspq-guidance-map-toggle{
    min-width:38px;
    max-width:118px;
    padding:0 8px;
    font-size:11px;
  }
  .sspq-guidance-map-toggle .sspq-guidance-map-toggle-text{
    display:none;
  }
  .sspq-guidance-map-toggle span[aria-hidden="true"]{
    font-size:19px;
  }
}

/* SSPQ 2.0.453 - Champ photo de point de contrôle stable sur mobile. */
.sspq-checkpoint-reference-photo-input input[type="file"]{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  font-size:.95rem;
  overflow:hidden;
}
.sspq-checkpoint-reference-photo-input [data-sspq-checkpoint-photo-status]{
  display:block;
  margin-top:6px;
  line-height:1.35;
}

/* SSPQ 2.0.454 - Pièce jointe cliquable clairement en mobile. */
.sspq-shift-detail-grid [data-sspq-detail-attachment],
.sspq-dashboard-open-shift-detail-grid [data-sspq-dashboard-open-shift-attachment],
.sspq-document-open-link{
  display:inline;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:10px 14px;
  border:1px solid rgba(11,36,71,.18);
  border-radius:12px;
  background:#fff;
  color:#2f2a5f!important;
  font-weight:800;
  text-decoration:none!important;
  cursor:pointer;
  max-width:100%;
  overflow-wrap:anywhere;
}
.sspq-shift-detail-grid [data-sspq-detail-attachment]:after,
.sspq-dashboard-open-shift-detail-grid [data-sspq-dashboard-open-shift-attachment]:after,
.sspq-document-open-link:after{content:'↗';font-weight:900;color:inherit;}
.sspq-shift-detail-grid [data-sspq-detail-attachment][aria-busy="true"],
.sspq-dashboard-open-shift-detail-grid [data-sspq-dashboard-open-shift-attachment][aria-busy="true"],
.sspq-document-open-link[aria-busy="true"]{opacity:.65;pointer-events:none;}
@media (max-width:700px){
  .sspq-shift-detail-grid [data-sspq-detail-attachment],
  .sspq-dashboard-open-shift-detail-grid [data-sspq-dashboard-open-shift-attachment],
  .sspq-document-open-link{width:100%;justify-content:flex-start;font-size:17px;}
}

/* ============================================================
   SSPQ 2.0.456 — Messages privés : interface type application mobile
   ============================================================ */
.sspq-messenger-modern{grid-template-columns:360px minmax(0,1fr);gap:0;border:1px solid #18243a;border-radius:18px;overflow:hidden;background:#05070d;min-height:680px;box-shadow:0 20px 50px rgba(2,8,23,.18)}
.sspq-messenger-modern .sspq-messenger-list,.sspq-messenger-modern .sspq-messenger-chat,.sspq-messenger-modern .sspq-bulletin-board{border:0;border-radius:0;background:#05070d;color:#f8fafc;padding:0;min-width:0}
.sspq-messenger-modern .sspq-bulletin-board{background:#fff;color:var(--sspq-text,#172033);padding:16px;border-left:1px solid var(--sspq-border,#d8dee9)}
.sspq-message-list-title{display:flex;align-items:center;justify-content:space-between;padding:24px 22px 16px;background:#05070d;color:#fff}
.sspq-message-list-title h2{margin:0;font-size:26px;line-height:1;font-weight:800;color:#fff}
.sspq-message-list-title span{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;background:#161b2a;color:#cbd5e1;font-weight:900;font-size:12px}
.sspq-message-thread-list{display:grid;gap:2px;padding:0 8px 90px}
.sspq-message-thread-row{position:relative;display:block;border-radius:16px}
.sspq-message-thread-row.is-active{background:#121827}
.sspq-message-thread-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:76px;padding:10px 12px;border-radius:16px;text-decoration:none;color:#fff;border:1px solid transparent}
.sspq-message-thread-card:hover,.sspq-message-thread-card.is-active{background:#121827;border-color:#1d2940}
.sspq-message-thread-copy{display:grid;gap:5px;min-width:0}
.sspq-message-thread-copy strong{font-size:17px;line-height:1.1;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sspq-message-thread-copy span{font-size:14px;line-height:1.25;color:#9aa4b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sspq-message-thread-card time{align-self:start;padding-top:4px;color:#7c8595;font-weight:800;font-size:13px;white-space:nowrap}
.sspq-message-avatar{width:46px;height:46px;border-radius:999px;display:inline-grid;place-items:center;flex:0 0 auto;background:#23324f;background-size:cover;background-position:center;color:#fff;font-weight:900;border:2px solid rgba(255,255,255,.12);box-shadow:0 4px 14px rgba(0,0,0,.24)}
.sspq-message-avatar span{display:inline-block;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.sspq-message-avatar[style*="background-image"] span{opacity:0}
.sspq-message-avatar.is-large{width:48px;height:48px}
.sspq-thread-delete-form{position:absolute;right:4px;bottom:4px;margin:0;opacity:0;transition:opacity .18s ease}
.sspq-message-thread-row:hover .sspq-thread-delete-form{opacity:1}
.sspq-thread-delete-form button{width:28px;height:28px;border-radius:999px;border:0;background:#2a1020;color:#ff7aa8;font-size:18px;font-weight:900;line-height:1;padding:0;text-decoration:none}
.sspq-message-new-panel{position:absolute;left:0;bottom:0;z-index:6}
.sspq-messenger-list{position:relative}
.sspq-message-compose-fab{position:absolute;left:286px;bottom:24px;width:62px;height:62px;border-radius:999px;background:#7d83ff;color:#06070b;display:grid;place-items:center;font-size:32px;font-weight:900;box-shadow:0 16px 32px rgba(0,0,0,.34);cursor:pointer;list-style:none;border:0}
.sspq-message-compose-fab::-webkit-details-marker{display:none}
.sspq-message-new-panel[open] .sspq-message-compose-fab{background:#0b2447;color:#fff}
.sspq-message-new{position:absolute;left:14px;bottom:96px;width:330px;display:grid;gap:10px;margin:0;padding:16px;border:1px solid #24324d;border-radius:18px;background:#101827;color:#fff;box-shadow:0 20px 50px rgba(0,0,0,.42)}
.sspq-message-new h3{margin:0;color:#fff}
.sspq-message-new label{color:#dbe4f0;font-weight:900}
.sspq-message-new input,.sspq-message-new select,.sspq-message-new textarea{background:#fff;color:#0f172a;border-color:#334155}
.sspq-messenger-modern .sspq-messenger-chat{display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#090b12;border-left:1px solid #172033;min-height:680px}
.sspq-chat-header{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#16171b;color:#fff;border-bottom:1px solid #242631;min-width:0}
.sspq-chat-back{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;color:#fff;text-decoration:none;font-size:30px;line-height:1}
.sspq-chat-back:hover{background:#242631;color:#fff}
.sspq-chat-title{display:grid;gap:2px;min-width:0;flex:1}
.sspq-chat-title strong{font-size:22px;line-height:1.1;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sspq-chat-title em{font-size:14px;font-style:normal;color:#9aa4b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sspq-chat-actions{display:flex;align-items:center;gap:14px;color:#fff;font-size:26px;opacity:.96}
.sspq-message-empty-chat{display:grid;place-items:center;align-content:center;gap:8px;color:#cbd5e1;min-height:480px;text-align:center}
.sspq-message-empty-chat strong{font-size:22px;color:#fff}
.sspq-message-empty-chat span{color:#94a3b8}
.sspq-messenger-modern .sspq-message-feed{min-height:0;max-height:none;height:100%;display:flex;flex-direction:column;gap:8px;overflow:auto;padding:22px 26px;background:#050506;border-radius:0;scroll-behavior:smooth}
.sspq-message-date-separator{display:flex;align-items:center;justify-content:center;margin:12px 0;color:#8a8f9a;font-weight:800;font-size:14px}
.sspq-message-date-separator span{padding:4px 10px;border-radius:999px;background:#101114;color:#8a8f9a}
.sspq-message-row{display:flex;align-items:flex-end;gap:8px;position:relative;max-width:86%}
.sspq-message-row.is-me{align-self:flex-end;justify-content:flex-end}
.sspq-message-row.is-other{align-self:flex-start}
.sspq-messenger-modern .sspq-message-bubble{border:0;border-radius:22px;background:#24262d;color:#f8fafc;max-width:min(620px,100%);padding:10px 14px;box-shadow:none;overflow:hidden}
.sspq-messenger-modern .sspq-message-bubble.is-me{background:#7b7ff6;color:#fff;border:0;border-bottom-right-radius:8px}
.sspq-message-row.is-other .sspq-message-bubble{border-bottom-left-radius:8px}
.sspq-message-bubble small{font-size:12px;margin-bottom:4px;color:#cbd5e1;opacity:1}
.sspq-message-bubble p{font-size:17px;line-height:1.35;margin:0;white-space:pre-wrap;word-break:break-word}
.sspq-message-bubble time{display:block;margin-top:6px;text-align:right;color:rgba(255,255,255,.68);font-size:11px;font-weight:800}
.sspq-message-delete-form{align-self:center;margin:0;opacity:0;transition:opacity .18s ease}
.sspq-message-row:hover .sspq-message-delete-form{opacity:1}
.sspq-message-delete-form button{width:24px;height:24px;border:0;border-radius:999px;background:#2a1020;color:#ff7aa8;font-weight:900;padding:0;line-height:1}
.sspq-message-attachments{display:grid;gap:8px;margin-top:8px}
.sspq-message-image-link{display:block;overflow:hidden;border-radius:14px;background:#111827;border:1px solid rgba(255,255,255,.14)}
.sspq-message-image-link img{display:block;max-width:100%;width:auto;max-height:420px;object-fit:contain}
.sspq-message-file-card{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;background:#2f313b;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.12)}
.sspq-message-file-card span{font-size:24px;line-height:1}.sspq-message-file-card strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sspq-messenger-modern .sspq-message-compose{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:10px;margin:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:#16171b;border-top:1px solid #242631}
.sspq-message-attach-btn{width:44px;height:44px;border-radius:999px;display:grid!important;place-items:center;background:#7b7ff6;color:#070811;font-size:30px;font-weight:400;cursor:pointer;margin:0!important;line-height:1}
.sspq-message-attach-btn input{display:none!important}
.sspq-messenger-modern .sspq-message-compose textarea{min-height:44px;max-height:120px;resize:none;border:0;border-radius:20px;background:#24262d;color:#fff;padding:12px 14px;font-size:17px;line-height:1.2;box-shadow:none;overflow:auto}
.sspq-messenger-modern .sspq-message-compose textarea::placeholder{color:#9aa4b2}
.sspq-messenger-modern .sspq-message-compose button{width:44px;height:44px;border-radius:999px;border:0;background:#151923;color:#9aa4ff;font-size:20px;font-weight:900;padding:0}

@media(max-width:900px){
  .sspq-platform[data-sspq-page="messages"] .sspq-content{padding:0;background:#050506;min-height:calc(100vh - 70px)}
  .sspq-platform[data-sspq-page="messages"] .sspq-topbar-title h1{font-size:18px}
  .sspq-platform[data-sspq-page="messages"] .sspq-message-mode-tabs{display:none}
  .sspq-messenger-modern{display:block;border:0;border-radius:0;box-shadow:none;min-height:calc(100vh - 70px);background:#050506}
  .sspq-messenger-modern .sspq-messenger-list,.sspq-messenger-modern .sspq-messenger-chat{min-height:calc(100vh - 70px)}
  .sspq-messenger-modern.is-list-open .sspq-messenger-chat{display:none!important}
  .sspq-messenger-modern.is-thread-open .sspq-messenger-list{display:none!important}
  .sspq-message-list-title{padding:26px 20px 18px}.sspq-message-list-title h2{font-size:30px}
  .sspq-message-thread-list{padding:0 14px 110px}.sspq-message-thread-card{grid-template-columns:58px minmax(0,1fr) auto;min-height:82px;padding:10px 4px}.sspq-message-avatar{width:52px;height:52px}.sspq-message-thread-copy strong{font-size:22px}.sspq-message-thread-copy span{font-size:17px}.sspq-message-thread-card time{font-size:16px}
  .sspq-message-compose-fab{position:fixed;right:24px;left:auto;bottom:calc(24px + env(safe-area-inset-bottom,0px));width:72px;height:72px;font-size:38px;z-index:40}
  .sspq-message-new{position:fixed;left:16px;right:16px;bottom:calc(108px + env(safe-area-inset-bottom,0px));width:auto;max-height:72vh;overflow:auto;z-index:39}
  .sspq-messenger-modern .sspq-messenger-chat{grid-template-rows:auto minmax(0,1fr) auto;min-height:calc(100vh - 70px);height:calc(100vh - 70px);border-left:0;background:#050506}.sspq-chat-header{position:sticky;top:0;z-index:2}.sspq-chat-title strong{font-size:23px}.sspq-chat-actions{font-size:30px;gap:18px}.sspq-messenger-modern .sspq-message-feed{padding:16px 14px}.sspq-message-row{max-width:92%}.sspq-message-row.is-other .sspq-message-avatar{width:34px;height:34px}.sspq-message-bubble p{font-size:18px}.sspq-message-image-link img{max-height:360px}.sspq-messenger-modern .sspq-message-compose{position:sticky;bottom:0;z-index:3;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))}.sspq-message-delete-form,.sspq-thread-delete-form{display:none}
}

/* SSPQ 2.0.457 — Messages privés : typographie mobile et création employé/groupe */
.sspq-message-new{gap:12px}
.sspq-message-new-form{display:grid;gap:10px;margin:0}
.sspq-message-new-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sspq-message-new-choices button{border:1px solid #334155;border-radius:14px;background:#111827;color:#dbeafe;padding:10px 12px;font-weight:900;font-size:13px;cursor:pointer}
.sspq-message-new-choices button.is-active{background:#d4af37;color:#071225;border-color:#d4af37}
.sspq-message-member-picker{display:grid;gap:8px}
.sspq-message-member-picker>strong{font-size:13px;color:#dbe4f0;text-transform:uppercase;letter-spacing:.04em}
.sspq-message-member-list{display:grid;gap:6px;max-height:190px;overflow:auto;padding:8px;border:1px solid #334155;border-radius:14px;background:#0b1220}
.sspq-message-member-list label{display:flex!important;align-items:center;gap:8px;margin:0!important;padding:8px;border-radius:10px;background:#111827;color:#fff;font-size:13px;font-weight:800}
.sspq-message-member-list input{width:auto!important;margin:0!important;accent-color:#d4af37}
.sspq-message-member-list span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:900px){
  .sspq-platform[data-sspq-page="messages"] .sspq-message-mode-tabs,
  .sspq-message-mode-tabs{gap:7px;margin:0 0 10px!important}
  .sspq-platform[data-sspq-page="messages"] .sspq-message-mode-tabs .sspq-btn,
  .sspq-message-mode-tabs .sspq-btn{font-size:14px!important;min-height:42px!important;padding:10px 12px!important;border-radius:12px!important}
  .sspq-message-list-title{padding:20px 20px 12px!important}
  .sspq-message-list-title h2{font-size:24px!important;line-height:1.05!important}
  .sspq-message-list-title span{min-width:22px;height:22px;font-size:11px}
  .sspq-message-thread-list{padding:0 14px 100px!important;gap:0!important}
  .sspq-message-thread-card{grid-template-columns:48px minmax(0,1fr) auto!important;gap:10px!important;min-height:68px!important;padding:8px 2px!important}
  .sspq-message-avatar{width:44px!important;height:44px!important;font-size:14px!important}
  .sspq-message-avatar.is-large{width:42px!important;height:42px!important}
  .sspq-message-thread-copy strong{font-size:18px!important;line-height:1.1!important}
  .sspq-message-thread-copy span{font-size:14px!important;line-height:1.2!important}
  .sspq-message-thread-card time{font-size:13px!important;padding-top:2px!important}
  .sspq-message-compose-fab{width:60px!important;height:60px!important;font-size:30px!important;right:22px!important}
  .sspq-message-new{bottom:calc(96px + env(safe-area-inset-bottom,0px))!important;padding:14px!important;border-radius:16px!important}
  .sspq-message-new h3{font-size:18px!important}
  .sspq-message-new label{font-size:13px!important}
  .sspq-message-new input,.sspq-message-new select,.sspq-message-new textarea{font-size:14px!important;min-height:40px!important}
  .sspq-chat-title strong{font-size:18px!important}
  .sspq-chat-title em{font-size:12px!important}
  .sspq-chat-actions{font-size:23px!important;gap:12px!important}
  .sspq-message-bubble p{font-size:15px!important;line-height:1.35!important}
  .sspq-messenger-modern .sspq-message-compose textarea{font-size:15px!important}
}

/* SSPQ 2.0.467 - Éditeur de trajet : carte plein écran et retrait des points déjà ajoutés. */
.sspq-trip-map .leaflet-top.leaflet-left{
  display:flex!important;
  align-items:flex-start;
  gap:8px;
}
.sspq-trip-map .leaflet-top.leaflet-left .leaflet-control{
  margin-top:10px;
  margin-left:10px;
}
.sspq-trip-map .leaflet-top.leaflet-left .sspq-trip-map-fullscreen-control{
  margin-left:0;
}
.sspq-trip-map-fullscreen-control{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.sspq-trip-map-fullscreen-toggle{
  display:inline;
  justify-content:center;
  gap:6px;
  min-height:34px;
  height:34px;
  max-width:150px;
  padding:0 10px;
  border:1px solid rgba(11,31,58,.28);
  border-radius:6px;
  background:#fff;
  color:#0b1f3a;
  font-weight:900;
  font-size:12px;
  line-height:1;
  box-shadow:0 2px 8px rgba(15,23,42,.22);
  cursor:pointer;
  white-space:nowrap;
}
.sspq-trip-map-fullscreen-toggle span[aria-hidden="true"]{
  font-size:17px;
  line-height:1;
}
body.sspq-trip-map-fullscreen-open{
  overflow:hidden!important;
}
.sspq-trip-tools.is-trip-map-fullscreen{
  position:fixed!important;
  inset:0!important;
  z-index:1000015!important;
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  width:100vw!important;
  height:100dvh!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:10px!important;
  border-radius:0!important;
  background:#fff!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.sspq-trip-tools.is-trip-map-fullscreen .sspq-map-toolbar{
  flex:0 0 auto;
  max-height:24vh;
  overflow:auto;
  padding-bottom:2px;
}
.sspq-trip-tools.is-trip-map-fullscreen .sspq-trip-mode-note{
  flex:0 0 auto;
  margin:0;
}
.sspq-trip-tools.is-trip-map-fullscreen .sspq-trip-map{
  flex:1 1 auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  border-radius:0!important;
}
.sspq-trip-tools.is-trip-map-fullscreen .sspq-trip-existing-panel,
.sspq-trip-tools.is-trip-map-fullscreen .sspq-trip-points-list{
  display:none!important;
}
.sspq-trip-tools.is-trip-map-fullscreen .sspq-trip-map-fullscreen-toggle{
  background:#0b1f3a;
  color:#fff;
  border-color:#c9a227;
}
.sspq-trip-existing-item.is-used{
  opacity:1;
  border-color:#f1c7c7;
  background:#fffafa;
}
.sspq-trip-existing-item.is-used .sspq-btn-danger{
  min-width:138px;
}
@media(max-width:760px){
  .sspq-trip-map-fullscreen-toggle{
    min-width:38px;
    max-width:118px;
    padding:0 8px;
    font-size:11px;
  }
  .sspq-trip-map-fullscreen-toggle .sspq-trip-map-fullscreen-text{
    display:none;
  }
  .sspq-trip-map-fullscreen-toggle span[aria-hidden="true"]{
    font-size:19px;
  }
  .sspq-trip-tools.is-trip-map-fullscreen{
    padding:8px!important;
    height:100vh!important;
    height:100dvh!important;
  }
  .sspq-trip-tools.is-trip-map-fullscreen .sspq-map-toolbar{
    max-height:30vh;
  }
}

/* SSPQ 2.0.468 - Éditeur de trajet : flèches grises directionnelles sur le parcours. */
.leaflet-pane.leaflet-sspqTripRouteArrowPane-pane{
  z-index:575!important;
  pointer-events:none!important;
}
.sspq-trip-route-arrow-marker{
  width:28px!important;
  height:28px!important;
  margin-left:-14px!important;
  margin-top:-14px!important;
  pointer-events:none!important;
  background:transparent!important;
  border:0!important;
}
.sspq-trip-route-arrow-marker span{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:28px!important;
  height:28px!important;
  color:#6b7280!important;
  font-size:21px!important;
  line-height:1!important;
  font-weight:900!important;
  text-shadow:
    0 1px 0 #fff,
    1px 0 0 #fff,
    0 -1px 0 #fff,
    -1px 0 0 #fff,
    0 2px 6px rgba(15,23,42,.45)!important;
  opacity:.94!important;
  transform-origin:50% 50%!important;
}
.sspq-trip-tools.is-trip-map-fullscreen .sspq-trip-route-arrow-marker span{
  font-size:23px!important;
}
@media(max-width:760px){
  .sspq-trip-route-arrow-marker span{font-size:19px!important;}
}


/* SSPQ 2.0.470 - Flèches grises aussi visibles dans les cartes de ronde mobile et les tests de parcours. */
.leaflet-pane.leaflet-sspqGuidanceRouteArrowPane-pane,
.leaflet-pane.leaflet-sspqPatrolRouteArrowPane-pane,
.leaflet-pane.leaflet-sspqRouteTestArrowPane-pane,
.leaflet-pane.leaflet-sspqRouteArrowPane-pane{
  z-index:575!important;
  pointer-events:none!important;
}
.sspq-guidance-route-arrow-marker span{
  color:#6b7280!important;
  opacity:.92!important;
}
.sspq-guidance-overlay .sspq-guidance-route-arrow-marker span{
  font-size:20px!important;
  text-shadow:
    0 1px 0 #fff,
    1px 0 0 #fff,
    0 -1px 0 #fff,
    -1px 0 0 #fff,
    0 2px 6px rgba(15,23,42,.42)!important;
}
@media(max-width:760px){
  .sspq-guidance-overlay .sspq-guidance-route-arrow-marker span{font-size:18px!important;}
}

/* SSPQ 2.0.481 — Avis d'infraction */
.sspq-infractions .sspq-panel-head { gap: 16px; }
.sspq-infraction-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin: 16px 0; }
.sspq-infraction-grid > div { border: 1px solid rgba(15, 23, 42, .12); border-radius: 12px; padding: 12px; background: rgba(248, 250, 252, .75); }
.sspq-infraction-grid strong { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: #64748b; margin-bottom: 4px; }
.sspq-infraction-grid span { color: #0f172a; font-weight: 700; }
.sspq-infraction-document h3 { margin-top: 18px; margin-bottom: 8px; }
.sspq-infraction-text { border-left: 4px solid #0f2a4a; padding: 10px 12px; background: #f8fafc; border-radius: 8px; }
.sspq-infraction-signature canvas { display: block; width: 100%; min-height: 180px; border: 1px dashed rgba(15, 23, 42, .35); border-radius: 12px; background: #fff; touch-action: none; }
.sspq-infraction-signature .sspq-signature-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.sspq-infraction-signature [data-sspq-signature-status].is-signed { color: #166534; font-weight: 700; }
.sspq-inline-form input[name="cancel_reason"] { min-width: 240px; }
@media (max-width: 760px) {
  .sspq-infractions .sspq-panel-head { align-items: stretch; }
  .sspq-infractions .sspq-inline-actions { width: 100%; }
  .sspq-infractions .sspq-inline-actions .sspq-btn,
  .sspq-infractions .sspq-inline-actions form { width: 100%; }
  .sspq-infraction-grid { grid-template-columns: 1fr; }
  .sspq-infraction-signature canvas { min-height: 220px; }
}

.sspq-infraction-file-list { margin-top: 8px; display: grid; gap: 6px; }
.sspq-infraction-file-list > div { border: 1px solid rgba(15, 23, 42, .12); border-radius: 10px; padding: 8px 10px; background: #f8fafc; color: #0f172a; font-size: .9rem; }
#sspq-infraction-shift-hint { display: block; margin-top: 6px; }

/* SSPQ 2.0.488 — Révision des rondes terminées avec exceptions */
.sspq-patrol-review-panel{
  margin:16px 0;
  padding:16px;
  border:1px solid rgba(217,119,6,.28);
  border-radius:16px;
  background:#fff7ed;
  display:grid;
  gap:12px;
}
.sspq-patrol-review-panel h3{margin:0;color:#7c2d12;}
.sspq-patrol-review-summary{display:flex;gap:10px;flex-wrap:wrap;}
.sspq-patrol-review-summary span{display:inline-flex;gap:6px;align-items:center;padding:8px 10px;border-radius:999px;background:#fff;border:1px solid rgba(217,119,6,.25);color:#0f172a;font-weight:700;}
.sspq-review-actions{align-items:flex-start;}
.sspq-run-review-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.sspq-run-review-form input[name="review_note"]{min-width:300px;}
@media(max-width:760px){
  .sspq-run-review-form,
  .sspq-run-review-form input[name="review_note"],
  .sspq-run-review-form .sspq-btn{width:100%;}
}

/* SSPQ 2.0.489 - Documents multiples du site dans les détails de quart */
.sspq-shift-attachment-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.sspq-shift-attachment-list .sspq-btn{white-space:normal;text-align:left;max-width:100%}
@media (max-width: 720px){.sspq-shift-attachment-list{display:grid;grid-template-columns:1fr}.sspq-shift-attachment-list .sspq-btn{width:100%;justify-content:center}}

/* SSPQ 2.0.493 - Présence : type de quart visible */
.sspq-badge-neutral{background:#eef2f7;color:#0f172a;border:1px solid rgba(15,23,42,.12)}

/* 2.0.498 — rapports : agent accompagnateur et signature du second agent */
.sspq-report-companion-start{grid-column:1/-1;border:1px solid #dbe4ee;border-left:5px solid var(--sspq-gold,#d4af37);border-radius:14px;background:#fffdf5;padding:14px 16px;margin:0 0 6px;}
.sspq-report-companion-check{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;align-items:center!important;gap:10px!important;margin:0!important;font-size:15px!important;}
.sspq-report-companion-check input{width:20px!important;min-width:20px!important;height:20px!important;min-height:20px!important;margin:0!important;padding:0!important;}
.sspq-report-companion-details{grid-column:1/-1;border:1px solid #d7e1ee;border-radius:14px;background:#f8fafc;padding:14px 16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:8px;}
.sspq-report-companion-details[hidden]{display:none!important;}
.sspq-report-companion-title{grid-column:1/-1;display:flex;flex-direction:column;gap:4px;color:#0b1f3a;}
.sspq-report-companion-title strong{font-size:17px;}
.sspq-report-companion-title span{font-size:13px;color:#64748b;}
.sspq-report-companion-signature{grid-column:1/-1;}
@media(max-width:640px){.sspq-report-companion-details{grid-template-columns:1fr;padding:12px;}.sspq-report-companion-start{padding:12px;}.sspq-report-companion-check{font-size:16px!important;}}

/* SSPQ 2.0.507 - retour visuel NFC fiable après scan */
.sspq-nfc-toast{
  position:fixed;
  z-index:2147483000;
  left:50%;
  top:calc(env(safe-area-inset-top,0px) + 18px);
  transform:translate(-50%,-20px) scale(.98);
  min-width:min(92vw,320px);
  max-width:min(92vw,520px);
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 22px;
  border-radius:999px;
  background:#f5eddc;
  color:#171717;
  box-shadow:0 14px 34px rgba(15,23,42,.24),0 2px 8px rgba(15,23,42,.12);
  border:1px solid rgba(148,116,55,.18);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;
}
.sspq-nfc-toast.is-visible{opacity:1;transform:translate(-50%,0) scale(1);}
.sspq-nfc-toast-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:999px;
  display:inline;
  justify-content:center;
  background:#071b36;
  color:#d4af37;
  font-weight:900;
  font-size:22px;
  box-shadow:inset 0 0 0 2px rgba(212,175,55,.35);
}
.sspq-nfc-toast-copy{display:flex;flex-direction:column;gap:2px;min-width:0;}
.sspq-nfc-toast-copy strong{
  display:block;
  font-size:18px;
  line-height:1.18;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.sspq-nfc-toast-copy small{
  display:block;
  font-size:13px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.01em;
}
.sspq-nfc-toast.is-success .sspq-nfc-toast-copy small{color:#166534;}
.sspq-nfc-toast.is-warning .sspq-nfc-toast-copy small{color:#92400e;}
.sspq-nfc-toast.is-error .sspq-nfc-toast-copy small{color:#991b1b;}
.sspq-nfc-toast.is-error{background:#fff1f2;border-color:rgba(153,27,27,.18);}
.sspq-nfc-toast.is-warning{background:#fffbeb;border-color:rgba(146,64,14,.18);}
@media (max-width:640px){
  .sspq-nfc-toast{top:calc(env(safe-area-inset-top,0px) + 10px);min-width:calc(100vw - 36px);padding:12px 18px;gap:12px;}
  .sspq-nfc-toast-icon{width:38px;height:38px;flex-basis:38px;font-size:20px;}
  .sspq-nfc-toast-copy strong{font-size:17px;}
}

/* SSPQ 2.0.508 - File hors ligne rondes/rapports */
.sspq-offline-toast{
  position:fixed;
  left:50%;
  bottom:calc(env(safe-area-inset-bottom,0px) + 18px);
  transform:translate(-50%,18px);
  z-index:2147483500;
  width:min(92vw,520px);
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:13px 18px;
  border-radius:18px;
  background:#0f172a;
  color:#fff;
  box-shadow:0 18px 44px rgba(15,23,42,.32);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.sspq-offline-toast.is-visible{opacity:1;transform:translate(-50%,0);}
.sspq-offline-toast strong{font-size:15px;line-height:1.2;font-weight:850;}
.sspq-offline-toast span{font-size:13px;line-height:1.3;color:rgba(255,255,255,.86);}
.sspq-offline-toast.is-success{background:#14532d;}
.sspq-offline-toast.is-warning{background:#92400e;}
.sspq-offline-toast.is-error{background:#7f1d1d;}
.sspq-report-validation-warning strong{font-weight:850;}
.sspq-patrol-mobile-point.is-offline-pending{border-color:#fbbf24;background:#fffbeb;}
@media(max-width:640px){.sspq-offline-toast{bottom:calc(env(safe-area-inset-bottom,0px) + 12px);width:calc(100vw - 28px);border-radius:16px;}}


/* SSPQ 2.0.509 - NFC hors ligne : le point devient conforme localement, comme TrackTik, puis se synchronise. */
.sspq-patrol-mobile-point.is-offline-completed summary {
  border-left: 6px solid #16a34a;
  background: linear-gradient(90deg, rgba(22,163,74,.12), rgba(255,255,255,.98));
}
.sspq-patrol-mobile-point.is-offline-completed .sspq-status-pill,
.sspq-patrol-mobile-point.is-offline-completed [data-sspq-point-status-label],
.sspq-status-pill.is-offline {
  color: #166534 !important;
  background: #dcfce7 !important;
  border-color: #86efac !important;
}
.sspq-patrol-mobile-point.is-offline-completed .sspq-patrol-mobile-point-more {
  color: #166534 !important;
  font-weight: 800;
}
.sspq-patrol-nfc-status.is-success {
  color: #166534;
  font-weight: 800;
}


/* SSPQ 2.0.511 - fenêtre NFC toujours au-dessus de l'application */
.sspq-nfc-toast {
  position: fixed !important;
  z-index: 2147483600 !important;
  left: 50% !important;
  top: calc(env(safe-area-inset-top, 0px) + 14px) !important;
  transform: translate(-50%, -18px) scale(.98) !important;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  min-width: min(92vw, 340px) !important;
  max-width: min(92vw, 560px) !important;
  padding: 14px 22px !important;
  border-radius: 999px !important;
  background: #f5eddc !important;
  color: #171717 !important;
  box-shadow: 0 14px 34px rgba(15,23,42,.24), 0 2px 8px rgba(15,23,42,.12) !important;
  border: 1px solid rgba(148,116,55,.18) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .18s ease, transform .18s ease !important;
}
.sspq-nfc-toast.is-visible {
  opacity: 1 !important;
  transform: translate(-50%,0) scale(1) !important;
}
.sspq-nfc-toast-icon {
  width: 42px !important;
  height: 42px !important;
  flex: 0 0 42px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #071b36 !important;
  color: #d4af37 !important;
  font-weight: 900 !important;
  font-size: 22px !important;
}
.sspq-nfc-toast-copy {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  min-width: 0 !important;
}
.sspq-nfc-toast-copy strong {
  display: block !important;
  font-size: 18px !important;
  line-height: 1.18 !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.sspq-nfc-toast-copy small {
  display: block !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
}


/* SSPQ 2.0.512 - actions règles notifications client */
.sspq-table td .sspq-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.sspq-table td .sspq-inline-delete {
  display: inline-flex;
  margin: 0;
}
.sspq-notification-rule-form .sspq-checkline {
  align-items: center;
}


/* SSPQ 2.0.513 - ligne Quarts à combler persistante pendant la recherche horaire */
.sspq-schedule-calendar-panel.sspq-schedule-live-searching .sspq-schedule-open-row {
  display: grid !important;
}
.sspq-schedule-calendar-panel.sspq-schedule-live-searching .sspq-schedule-open-row[hidden] {
  display: grid !important;
}


/* SSPQ 2.0.517 - modification groupée horaire */
.sspq-schedule-bulk-edit-modal .sspq-modal-card {
  max-width: min(96vw, 980px);
}
.sspq-bulk-edit-form .sspq-note-block {
  margin-bottom: 4px;
}
.sspq-bulk-edit-form [data-sspq-bulk-edit-selected] {
  display: none;
}
.sspq-schedule-select {
  cursor: pointer;
  z-index: 4;
}
#sspq-bulk-edit-open {
  white-space: nowrap;
}


/* SSPQ 2.0.518 - fenêtre Modifier la sélection réellement adaptée */
.sspq-schedule-bulk-edit-modal {
  align-items: flex-start !important;
  padding: 32px 16px !important;
  overflow-y: auto !important;
}

.sspq-schedule-bulk-edit-modal .sspq-modal-card {
  width: min(96vw, 1080px) !important;
  max-width: min(96vw, 1080px) !important;
  max-height: calc(100vh - 64px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
  margin: 0 auto !important;
  padding: 24px !important;
}

.sspq-schedule-bulk-edit-modal .sspq-modal-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 16px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid rgba(15, 35, 65, .12) !important;
}

.sspq-schedule-bulk-edit-modal .sspq-modal-close {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  z-index: 2 !important;
}

.sspq-bulk-edit-form {
  display: grid !important;
  grid-template-columns: minmax(220px, 1.2fr) minmax(160px, .9fr) minmax(190px, 1fr) minmax(190px, 1fr) !important;
  gap: 16px 18px !important;
  align-items: end !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.sspq-bulk-edit-form > * {
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.sspq-bulk-edit-form .wide,
.sspq-bulk-edit-form [data-sspq-bulk-edit-selected] {
  grid-column: 1 / -1 !important;
}

.sspq-bulk-edit-form .sspq-note-block {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
  border: 1px solid #dbe3ef !important;
  color: #334155 !important;
}

.sspq-bulk-edit-form .sspq-checkline,
.sspq-bulk-edit-form .sspq-bulk-edit-toggle {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-height: 44px !important;
  padding: 10px 12px !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 10px !important;
  background: #fff !important;
  font-weight: 800 !important;
}

.sspq-bulk-edit-form label:not(.sspq-checkline) {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  font-weight: 800 !important;
  color: #0f2341 !important;
}

.sspq-bulk-edit-form input[type="time"],
.sspq-bulk-edit-form select {
  width: 100% !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
}

.sspq-bulk-edit-form [data-sspq-bulk-employee-wrap] {
  grid-column: 1 / -1 !important;
}

.sspq-bulk-edit-form [data-sspq-bulk-employee-wrap] select {
  max-width: 520px !important;
}

.sspq-bulk-edit-actions {
  position: sticky !important;
  bottom: -24px !important;
  z-index: 3 !important;
  display: flex !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  padding: 16px 0 0 !important;
  margin-top: 4px !important;
  background: linear-gradient(to top, #fff 78%, rgba(255,255,255,.86)) !important;
  border-top: 1px solid rgba(15, 35, 65, .10) !important;
}

.sspq-bulk-edit-actions .sspq-btn {
  min-width: 160px !important;
}

@media (max-width: 980px) {
  .sspq-bulk-edit-form {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (max-width: 640px) {
  .sspq-schedule-bulk-edit-modal {
    padding: 10px !important;
  }

  .sspq-schedule-bulk-edit-modal .sspq-modal-card {
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100vh - 20px) !important;
    padding: 18px 14px !important;
    border-radius: 18px !important;
  }

  .sspq-schedule-bulk-edit-modal .sspq-modal-head {
    align-items: flex-start !important;
    padding-right: 46px !important;
  }

  .sspq-bulk-edit-form {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .sspq-bulk-edit-form .sspq-note-block {
    padding: 12px !important;
  }

  .sspq-bulk-edit-actions {
    bottom: -18px !important;
    flex-direction: column !important;
  }

  .sspq-bulk-edit-actions .sspq-btn {
    width: 100% !important;
  }
}


/* SSPQ 2.0.519 - demandes approuvées visibles dans l'horaire */
.sspq-schedule-employee-cell.sspq-request-cell-vacation {
  background: #fef3c7 !important;
  box-shadow: inset 0 0 0 2px rgba(202,138,4,.22) !important;
}

.sspq-schedule-employee-cell.sspq-request-cell-leave {
  background: #ffedd5 !important;
  box-shadow: inset 0 0 0 2px rgba(234,88,12,.22) !important;
}

.sspq-schedule-employee-cell.sspq-request-cell-available {
  background: #dcfce7 !important;
  box-shadow: inset 0 0 0 2px rgba(22,163,74,.20) !important;
}

.sspq-schedule-employee-cell.sspq-request-cell-unavailable {
  background: #fee2e2 !important;
  box-shadow: inset 0 0 0 2px rgba(220,38,38,.20) !important;
}

.sspq-schedule-request-card {
  border: 1px solid rgba(15,35,65,.10) !important;
  font-weight: 800 !important;
}

.sspq-schedule-request-card.is-vacation {
  background: #facc15 !important;
  color: #1f2937 !important;
  border-left-color: #ca8a04 !important;
}

.sspq-schedule-request-card.is-leave {
  background: #fb923c !important;
  color: #1f2937 !important;
  border-left-color: #ea580c !important;
}

.sspq-schedule-request-card.is-available {
  background: #22c55e !important;
  color: #052e16 !important;
  border-left-color: #15803d !important;
}

.sspq-schedule-request-card.is-unavailable {
  background: #ef4444 !important;
  color: #fff !important;
  border-left-color: #b91c1c !important;
}

.sspq-schedule-request-card strong,
.sspq-schedule-request-card span,
.sspq-schedule-request-card em,
.sspq-schedule-request-card small {
  color: inherit !important;
}


/* SSPQ 2.0.520 - demandes en fond de case, non en carte cliquable */
.sspq-schedule-request-card {
  display: none !important;
}

.sspq-schedule-request-indicator {
  display: block !important;
  width: 100% !important;
  margin: 2px 0 4px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #0f172a !important;
  pointer-events: none !important;
  cursor: default !important;
  line-height: 1.25 !important;
}

.sspq-schedule-request-indicator span {
  display: block !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  text-transform: none !important;
}

.sspq-schedule-request-indicator small,
.sspq-schedule-request-indicator em {
  display: block !important;
  font-size: 11px !important;
  font-style: normal !important;
  font-weight: 700 !important;
  opacity: .9 !important;
  color: inherit !important;
}

.sspq-schedule-employee-cell.sspq-request-cell-vacation .sspq-schedule-request-indicator {
  color: #713f12 !important;
}

.sspq-schedule-employee-cell.sspq-request-cell-leave .sspq-schedule-request-indicator {
  color: #7c2d12 !important;
}

.sspq-schedule-employee-cell.sspq-request-cell-available .sspq-schedule-request-indicator {
  color: #14532d !important;
}

.sspq-schedule-employee-cell.sspq-request-cell-unavailable .sspq-schedule-request-indicator {
  color: #7f1d1d !important;
}

.sspq-schedule-request-indicator + .sspq-schedule-card {
  margin-top: 6px !important;
}


/* SSPQ 2.0.521 - modification groupée employés */
.sspq-employee-select-col {
  width: 46px !important;
  text-align: center !important;
  white-space: nowrap !important;
}

.sspq-checkbox-only {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 34px !important;
  min-height: 34px !important;
  cursor: pointer !important;
}

.sspq-checkbox-only input {
  width: 18px !important;
  height: 18px !important;
  cursor: pointer !important;
}

.sspq-employee-bulk-modal {
  align-items: flex-start !important;
  padding: 32px 16px !important;
  overflow-y: auto !important;
}

.sspq-employee-bulk-modal .sspq-modal-card {
  width: min(96vw, 920px) !important;
  max-width: min(96vw, 920px) !important;
  max-height: calc(100vh - 64px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
  margin: 0 auto !important;
  padding: 24px !important;
}

.sspq-employee-bulk-form {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px 18px !important;
  align-items: end !important;
}

.sspq-employee-bulk-form .wide,
.sspq-employee-bulk-form [data-sspq-employee-bulk-selected] {
  grid-column: 1 / -1 !important;
}

.sspq-employee-bulk-form [data-sspq-employee-bulk-selected] {
  display: none !important;
}

.sspq-employee-bulk-form .sspq-note-block {
  margin: 0 !important;
  padding: 14px 16px !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
  border: 1px solid #dbe3ef !important;
  color: #334155 !important;
}

.sspq-employee-bulk-form label:not(.sspq-checkline) {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  font-weight: 800 !important;
  color: #0f2341 !important;
}

.sspq-employee-bulk-form input,
.sspq-employee-bulk-form select {
  min-height: 44px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.sspq-employee-bulk-form .sspq-checkline {
  min-height: 44px !important;
  padding: 10px 12px !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 10px !important;
  background: #fff !important;
  font-weight: 800 !important;
}

.sspq-employee-bulk-actions {
  position: sticky !important;
  bottom: -24px !important;
  z-index: 3 !important;
  display: flex !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  padding: 16px 0 0 !important;
  background: linear-gradient(to top, #fff 78%, rgba(255,255,255,.86)) !important;
  border-top: 1px solid rgba(15,35,65,.10) !important;
}

@media (max-width: 720px) {
  .sspq-employee-bulk-modal {
    padding: 10px !important;
  }
  .sspq-employee-bulk-modal .sspq-modal-card {
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100vh - 20px) !important;
    padding: 18px 14px !important;
    border-radius: 18px !important;
  }
  .sspq-employee-bulk-form {
    grid-template-columns: 1fr !important;
  }
  .sspq-employee-bulk-actions {
    flex-direction: column !important;
    bottom: -18px !important;
  }
  .sspq-employee-bulk-actions .sspq-btn {
    width: 100% !important;
  }
}


/* SSPQ 2.0.526 - bouton test notifications client */
.sspq-table td .sspq-inline-test {
  display: inline-flex;
  margin: 0;
}
.sspq-action-row .sspq-inline-test .sspq-btn {
  min-width: 64px;
}


/* SSPQ 2.0.529 - rapport obligatoire avant pointage de sortie */
.sspq-required-report-chip {
  margin-top: 5px !important;
  display: inline-flex !important;
  align-items: center !important;
  max-width: 100% !important;
  padding: 3px 7px !important;
  border-radius: 999px !important;
  background: #fef3c7 !important;
  color: #713f12 !important;
  border: 1px solid #facc15 !important;
  font-size: 10.5px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}
.sspq-badge-warning,
.sspq-btn-warning {
  background: #f59e0b !important;
  color: #111827 !important;
  border-color: #d97706 !important;
  font-weight: 900 !important;
}
.sspq-btn-warning:hover {
  filter: brightness(.96);
}

/* SSPQ 2.0.557 - Tri visuel des rondes actives */
.sspq-patrol-run-sort-form{display:flex;align-items:end;gap:8px;margin:0;}
.sspq-patrol-run-sort-form label{display:flex;flex-direction:column;gap:4px;font-weight:800;color:#0b1f3a;}
.sspq-patrol-run-sort-form label span{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;}
.sspq-patrol-run-sort-form select{min-width:180px;min-height:38px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:7px 10px;font-weight:700;color:#0f172a;}
.sspq-patrol-run-group-title{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin:4px 0 0;padding:9px 12px;border:1px solid #d8e1eb;border-radius:12px;background:#f8fafc;color:#0b1f3a;}
.sspq-patrol-run-group-title span{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:900;}
.sspq-patrol-run-group-title strong{font-size:.95rem;}
@media(max-width:860px){.sspq-patrol-run-sort-form{width:100%;}.sspq-patrol-run-sort-form label,.sspq-patrol-run-sort-form select{width:100%;}}

/* SSPQ 2.0.575 - Journal NFC global */
.sspq-nfc-log-panel .sspq-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 16px}
.sspq-nfc-log-table code{white-space:nowrap;font-size:12px}
.sspq-nfc-log-raw{max-width:520px;white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:10px;font-size:12px;line-height:1.35}
@media(max-width:760px){.sspq-nfc-log-table th,.sspq-nfc-log-table td{font-size:12px}.sspq-nfc-log-panel .sspq-actions{align-items:flex-start;flex-direction:column}}

/* SSPQ 2.0.602 — Points de contrôle: nom cliquable sans apparence de bouton. */
.sspq-checkpoint-name-link{
  display:inline;
  padding:0;
  border:0;
  background:transparent;
  color:#0b1f3a;
  font:inherit;
  font-weight:800;
  text-align:left;
  line-height:1.25;
  cursor:pointer;
  text-decoration:none;
  border-radius:0;
}
.sspq-checkpoint-name-link:hover,
.sspq-checkpoint-name-link:focus{
  color:#1f6fd5;
  text-decoration:underline;
  outline:none;
}
.sspq-site-report-section{margin:0 0 24px;}
.sspq-site-report-section h3{margin:0 0 6px;font-size:18px;}
.sspq-site-report-section + .sspq-site-report-section{padding-top:18px;border-top:1px solid #e2e8f0;}

/* SSPQ 2.0.605 — Clients et zones: affichage par cartes, aligné sur Sites. */
.sspq-entity-card-grid{
  width:100%;
}
.sspq-entity-card{
  cursor:pointer;
}
.sspq-entity-card-color{
  background:#0b1f3a;
}
.sspq-client-card:nth-child(4n+1) .sspq-entity-card-color{background:#0b1f3a;}
.sspq-client-card:nth-child(4n+2) .sspq-entity-card-color{background:#0ea5b7;}
.sspq-client-card:nth-child(4n+3) .sspq-entity-card-color{background:#be123c;}
.sspq-client-card:nth-child(4n+4) .sspq-entity-card-color{background:#ca8a04;}
.sspq-zone-card:nth-child(4n+1) .sspq-entity-card-color{background:#0b1f3a;}
.sspq-zone-card:nth-child(4n+2) .sspq-entity-card-color{background:#2563eb;}
.sspq-zone-card:nth-child(4n+3) .sspq-entity-card-color{background:#16a34a;}
.sspq-zone-card:nth-child(4n+4) .sspq-entity-card-color{background:#7c3aed;}
.sspq-entity-card .sspq-site-card-main small{
  white-space:normal;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
}

/* SSPQ 2.0.610 - consignes opérationnelles dans les quarts */
.sspq-shift-operational-list{display:grid;gap:.65rem;margin-top:.5rem}
.sspq-shift-operational-item{display:grid;gap:.25rem;padding:.75rem;border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;background:#f8fafc}
.sspq-shift-operational-item strong{color:var(--sspq-navy,#0b2447);font-weight:900}
.sspq-shift-operational-item p{margin:.25rem 0 0;white-space:pre-wrap;color:var(--sspq-text,#1f2937)}
.sspq-schedule-detail-modal [data-sspq-detail-operational-wrap]{background:#fff;border:1px solid var(--sspq-border,#d8dee9);border-radius:14px;padding:.75rem}
@media (max-width:720px){.sspq-shift-operational-item{padding:1rem}.sspq-schedule-detail-modal [data-sspq-detail-operational-wrap]{padding:1rem}}

/* SSPQ 2.0.611 - Import Excel Sites / Clients */
.sspq-import-panel .sspq-panel-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.sspq-import-columns{background:#f8fafc;border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;padding:12px 14px;margin:12px 0 18px}
.sspq-import-columns ul{margin:8px 0 0 18px;padding:0}
.sspq-import-preview{margin:0 0 18px;border-left:4px solid var(--sspq-gold,#d4aa1e)}
.sspq-import-preview .sspq-table-wrap{margin-top:12px}
.sspq-import-confirm-form{margin-top:14px}
.sspq-import-errors ul{margin:0 0 0 18px;padding:0}
@media(max-width:720px){.sspq-import-panel .sspq-panel-head{display:block}.sspq-import-upload-form input[type=file]{width:100%}}


/* SSPQ 2.0.615 - Horaire mobile : liste Employé recherchable réellement défilable. */
@media (max-width: 900px) {
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-employee-searchable.is-open .sspq-searchable-menu,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-site-searchable.is-open .sspq-searchable-menu,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-client-searchable.is-open .sspq-searchable-menu {
    position: fixed !important;
    left: 14px !important;
    right: 14px !important;
    top: calc(env(safe-area-inset-top, 0px) + 78px) !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 18px) !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    z-index: 100500 !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }

  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-employee-searchable.is-open .sspq-searchable-menu-head,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-site-searchable.is-open .sspq-searchable-menu-head,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-client-searchable.is-open .sspq-searchable-menu-head,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-employee-searchable.is-open .sspq-searchable-input,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-site-searchable.is-open .sspq-searchable-input,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-client-searchable.is-open .sspq-searchable-input {
    flex: 0 0 auto !important;
  }

  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-employee-searchable.is-open .sspq-searchable-list,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-site-searchable.is-open .sspq-searchable-list,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-client-searchable.is-open .sspq-searchable-list {
    flex: 1 1 auto !important;
    min-height: 120px !important;
    height: auto !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    touch-action: pan-y !important;
    contain: size layout paint !important;
    padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-employee-searchable.is-open .sspq-searchable-option,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-site-searchable.is-open .sspq-searchable-option,
  .sspq-platform .sspq-schedule-shift-modal .sspq-schedule-client-searchable.is-open .sspq-searchable-option {
    touch-action: pan-y !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }
}
.sspq-open-shift-call-panel{margin-top:10px}
.sspq-open-shift-call-list{display:grid;gap:8px;margin-top:10px}
.sspq-open-shift-call-row{display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(180px,1.1fr) minmax(130px,180px) minmax(180px,1fr) auto;gap:8px;align-items:end;padding:8px;border:1px solid var(--sspq-border,#d9dee7);border-radius:10px;background:#fff}
.sspq-open-shift-call-row-called{background:#f8fafc;border-color:#cbd5e1}
.sspq-open-shift-call-agent{font-weight:800;color:var(--sspq-navy,#0b1f3a)}
.sspq-open-shift-call-phone{white-space:nowrap}
.sspq-open-shift-call-last{display:grid;gap:2px;padding:7px 9px;border-radius:9px;background:#eef2f7;color:var(--sspq-muted,#687386);font-weight:700;line-height:1.25}
.sspq-open-shift-call-last strong{color:var(--sspq-navy,#0b1f3a);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}
.sspq-open-shift-call-last span{font-size:.9rem}
.sspq-open-shift-call-last em{font-style:normal;font-size:.85rem;color:var(--sspq-muted,#687386)}
.sspq-open-shift-call-status-accepted .sspq-open-shift-call-last{background:#dcfce7;color:#166534}
.sspq-open-shift-call-status-no_answer .sspq-open-shift-call-last,.sspq-open-shift-call-status-left_message .sspq-open-shift-call-last,.sspq-open-shift-call-status-callback .sspq-open-shift-call-last{background:#fef9c3;color:#854d0e}
.sspq-open-shift-call-status-not_available .sspq-open-shift-call-last,.sspq-open-shift-call-status-refused .sspq-open-shift-call-last{background:#fee2e2;color:#991b1b}
.sspq-open-shift-call-field{display:flex;flex-direction:column;gap:4px;font-weight:800}
.sspq-open-shift-call-field select,.sspq-open-shift-call-field input{min-height:38px;border:1px solid var(--sspq-border,#d9dee7);border-radius:8px;padding:7px 9px;background:#fff}
.sspq-open-shift-call-history{display:grid;gap:4px;padding:8px;border:1px dashed var(--sspq-border,#d9dee7);border-radius:10px;background:#f8fafc}
.sspq-open-shift-call-history span{display:block}
.sspq-open-shift-call-history em{display:block;color:var(--sspq-muted,#687386);font-style:normal}
@media(max-width:780px){.sspq-open-shift-call-row{grid-template-columns:1fr}.sspq-open-shift-call-phone{white-space:normal}.sspq-open-shift-call-last{order:3}.sspq-open-shift-call-field{order:4}.sspq-open-shift-call-row .sspq-btn{order:6}}

/* SSPQ 2.0.683 - loader global uniforme et dimensions fixes */
.sspq-page-loading-overlay,.sspq-loading-overlay{position:fixed!important;inset:0!important;z-index:2147483000!important;display:none;align-items:center!important;justify-content:center!important;padding:24px!important;background:rgba(248,250,252,.72)!important;backdrop-filter:blur(3px)!important;-webkit-backdrop-filter:blur(3px)!important;box-sizing:border-box!important;}
.sspq-page-loading-overlay.is-active,.sspq-loading-overlay.is-active{display:flex!important;}
.sspq-page-loading-card,.sspq-loading-box{width:132px!important;height:112px!important;min-width:132px!important;max-width:132px!important;min-height:112px!important;max-height:112px!important;padding:0!important;border:1px solid rgba(203,213,225,.9)!important;border-radius:14px!important;background:#fff!important;box-shadow:0 14px 35px rgba(15,23,42,.18)!important;color:#0b2545!important;text-align:center!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:10px!important;box-sizing:border-box!important;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;font-size:12px!important;font-weight:800!important;line-height:1.2!important;letter-spacing:0!important;white-space:nowrap!important;overflow:hidden!important;}
.sspq-page-loading-card strong,.sspq-loading-box strong{display:block!important;margin:0!important;padding:0!important;color:#0b2545!important;font:inherit!important;font-size:12px!important;font-weight:800!important;line-height:1.2!important;letter-spacing:0!important;white-space:nowrap!important;}
.sspq-page-loading-card small,.sspq-loading-box small{display:none!important;}
.sspq-page-loading-spinner,.sspq-loading-spinner{width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;border:3px solid #d9e2ef!important;border-top-color:#0b2545!important;border-radius:999px!important;animation:sspq-page-loading-spin .8s linear infinite!important;box-sizing:border-box!important;display:block!important;flex:0 0 auto!important;}
@keyframes sspq-page-loading-spin{to{transform:rotate(360deg)}}
html.sspq-page-is-loading body{cursor:progress;}

/* SSPQ 2.0.622 - listes recherchables Horaire en superposition mobile/tablette */
@media(max-width:900px){
  html.sspq-searchable-select-open,body.sspq-searchable-select-open{overflow:hidden!important;overscroll-behavior:none!important;}
  .sspq-horaire-filters .sspq-searchable-select.is-open::before{content:"";position:fixed!important;inset:0!important;z-index:100002!important;background:rgba(15,23,42,.38)!important;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);}
  .sspq-horaire-filters .sspq-searchable-select.is-open .sspq-searchable-menu{position:fixed!important;left:14px!important;right:14px!important;top:calc(env(safe-area-inset-top,0px) + 72px)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 16px)!important;width:auto!important;max-width:none!important;max-height:none!important;margin:0!important;display:flex!important;flex-direction:column!important;z-index:100003!important;border-radius:18px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 24px 70px rgba(15,23,42,.38)!important;}
  .sspq-horaire-filters .sspq-searchable-select.is-open .sspq-searchable-menu-head{display:flex!important;flex:0 0 auto!important;}
  .sspq-horaire-filters .sspq-searchable-select.is-open .sspq-searchable-input{flex:0 0 auto!important;width:calc(100% - 24px)!important;margin:12px!important;min-height:46px!important;border-radius:12px!important;border:1px solid #cbd5e1!important;font-size:16px!important;}
  .sspq-horaire-filters .sspq-searchable-select.is-open .sspq-searchable-list{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;touch-action:pan-y!important;}
  .sspq-horaire-filters .sspq-searchable-select.is-open .sspq-searchable-option{min-height:48px!important;padding:12px 14px!important;font-size:16px!important;white-space:normal!important;}
}

/* SSPQ 2.0.628 - Sites mobile : onglets Sites/Clients/Zones toujours visibles. */
@media (max-width: 767px) {
  .sspq-platform[data-sspq-page="sites"] {
    --sspq-sites-mobile-sticky-top: var(--sspq-mobile-topbar-height, 60px);
  }

  .sspq-platform[data-sspq-page="sites"] .sspq-sites > .sspq-tabs {
    position: sticky !important;
    top: var(--sspq-sites-mobile-sticky-top) !important;
    z-index: 95 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    width: auto !important;
    max-width: none !important;
    margin: -12px -12px 12px !important;
    padding: 10px 12px 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain !important;
    background: rgba(244, 246, 248, .96) !important;
    border-bottom: 1px solid rgba(15, 31, 58, .12) !important;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .08) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
  }

  .sspq-platform[data-sspq-page="sites"] .sspq-sites > .sspq-tabs .sspq-tab {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content !important;
    white-space: nowrap !important;
  }
}

/* SSPQ 2.0.629 - Opérations/Rondes mobile : onglets principaux toujours visibles. */
@media (max-width: 767px) {
  .sspq-platform[data-sspq-page="operations"],
  .sspq-platform[data-sspq-page="rondes"] {
    --sspq-operations-mobile-sticky-top: var(--sspq-mobile-topbar-height, 60px);
  }

  .sspq-platform[data-sspq-page="operations"] .sspq-operations > .sspq-tabs,
  .sspq-platform[data-sspq-page="rondes"] .sspq-patrols > .sspq-tabs {
    position: sticky !important;
    top: var(--sspq-operations-mobile-sticky-top) !important;
    z-index: 95 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    width: auto !important;
    max-width: none !important;
    margin: -12px -12px 12px !important;
    padding: 10px 12px 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain !important;
    background: rgba(244, 246, 248, .96) !important;
    border-bottom: 1px solid rgba(15, 31, 58, .12) !important;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .08) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
  }

  .sspq-platform[data-sspq-page="operations"] .sspq-operations > .sspq-tabs .sspq-tab,
  .sspq-platform[data-sspq-page="rondes"] .sspq-patrols > .sspq-tabs .sspq-tab {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content !important;
    white-space: nowrap !important;
  }
}

/* SSPQ 2.0.633 - Horaire : séparation visuelle des quarts à combler. */
.sspq-open-shifts-panel .sspq-open-shifts-list{
  display:grid!important;
  gap:18px!important;
}
.sspq-open-shifts-panel .sspq-open-shift-card{
  position:relative!important;
  display:grid!important;
  padding:16px!important;
  border:1px solid #d9e2ef!important;
  border-top:6px solid var(--sspq-gold,#d4a91f)!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(15,23,42,.08)!important;
  overflow:hidden!important;
}
.sspq-open-shifts-panel .sspq-open-shift-card + .sspq-open-shift-card{
  margin-top:2px!important;
}
.sspq-open-shifts-panel .sspq-open-shift-card > .sspq-schedule-card{
  margin:0!important;
  box-shadow:none!important;
}
.sspq-open-shifts-panel .sspq-open-shift-actions{
  padding:12px!important;
  border:1px solid #e2e8f0!important;
  border-radius:14px!important;
  background:#f8fafc!important;
}
.sspq-open-shifts-panel .sspq-open-shift-call-panel,
.sspq-open-shifts-panel .sspq-open-shift-applicants,
.sspq-open-shifts-panel .sspq-open-shift-viewers,
.sspq-open-shifts-panel .sspq-shift-details{
  background:#fff!important;
}
@media(max-width:760px){
  .sspq-open-shifts-panel .sspq-open-shifts-list{
    gap:22px!important;
  }
  .sspq-open-shifts-panel .sspq-open-shift-card{
    padding:14px!important;
    border-width:1px!important;
    border-top-width:7px!important;
    border-radius:20px!important;
    box-shadow:0 10px 26px rgba(15,23,42,.12)!important;
  }
  .sspq-open-shifts-panel .sspq-open-shift-card::after{
    content:'Fin du quart à combler';
    display:block;
    margin-top:12px;
    padding-top:10px;
    border-top:1px dashed #cbd5e1;
    color:#64748b;
    font-size:11px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
  }
}

/* SSPQ 2.0.645 - Onglets mobile strictement verticaux sans débordement horizontal. */
@media (max-width: 767px) {
  .sspq-platform[data-sspq-page="sites"] .sspq-sites > .sspq-tabs,
  .sspq-platform[data-sspq-page="operations"] .sspq-operations > .sspq-tabs,
  .sspq-platform[data-sspq-page="rondes"] .sspq-patrols > .sspq-tabs {
    position: sticky !important;
    top: var(--sspq-mobile-topbar-height, 60px) !important;
    z-index: 96 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 12px 0 !important;
    padding: 10px 0 12px 0 !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    white-space: normal !important;
    box-sizing: border-box !important;
    background: rgba(244, 246, 248, .97) !important;
    border-bottom: 1px solid rgba(15, 31, 58, .12) !important;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .08) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
  }

  .sspq-platform[data-sspq-page="sites"] .sspq-sites > .sspq-tabs .sspq-tab,
  .sspq-platform[data-sspq-page="operations"] .sspq-operations > .sspq-tabs .sspq-tab,
  .sspq-platform[data-sspq-page="rondes"] .sspq-patrols > .sspq-tabs .sspq-tab {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    text-align: center !important;
    border-radius: 16px !important;
  }
}

/* SSPQ 2.0.649 - correctifs mobile avis d'infraction, ronde et connexion */
.sspq-login-card .sspq-btn.sspq-login-submit{
  width:100%!important;
  min-height:52px!important;
  background:var(--sspq-navy)!important;
  border:1px solid var(--sspq-navy)!important;
  color:#fff!important;
  border-radius:12px!important;
  font-size:18px!important;
  font-weight:800!important;
  box-shadow:none!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
.sspq-login-card .sspq-btn.sspq-login-submit:hover,
.sspq-login-card .sspq-btn.sspq-login-submit:focus{
  background:var(--sspq-gold)!important;
  border-color:var(--sspq-gold)!important;
  color:var(--sspq-navy)!important;
  box-shadow:none!important;
}
.sspq-login-card input[type=text],
.sspq-login-card input[type=password]{
  min-height:58px!important;
  padding:12px 14px!important;
  border:1px solid var(--sspq-border)!important;
  border-radius:14px!important;
  background:#fff!important;
  color:var(--sspq-text)!important;
  box-shadow:none!important;
  outline:none!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
.sspq-login-card input[type=text]:focus,
.sspq-login-card input[type=password]:focus,
.sspq-login-card input[type=text]:invalid,
.sspq-login-card input[type=password]:invalid{
  border-color:var(--sspq-gold)!important;
  box-shadow:0 0 0 3px rgba(201,162,39,.18)!important;
  outline:none!important;
}
.sspq-login-card input[type=text]:required,
.sspq-login-card input[type=password]:required{
  background-image:none!important;
}
.sspq-login-card .sspq-password-input-wrap{position:relative;display:block}
.sspq-login-card .sspq-password-input-wrap input{padding-right:64px!important}
.sspq-login-card .sspq-password-toggle{
  position:absolute!important;
  right:10px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:44px!important;
  height:40px!important;
  border:1px solid var(--sspq-border)!important;
  border-radius:11px!important;
  background:#f8fafc!important;
  color:var(--sspq-navy)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:none!important;
  padding:0!important;
  line-height:1!important;
  cursor:pointer!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  overflow:hidden!important;
}
.sspq-login-card .sspq-password-toggle:hover,
.sspq-login-card .sspq-password-toggle:focus{
  border-color:var(--sspq-gold)!important;
  background:#fff8e6!important;
  color:var(--sspq-navy)!important;
}
.sspq-login-card .sspq-password-toggle .sspq-password-toggle-glyph{
  display:inline-block!important;
  font-size:18px!important;
  line-height:1!important;
}
.sspq-login-card .sspq-password-toggle[aria-pressed="false"]::after{
  content:'';
  position:absolute;
  width:26px;
  height:2px;
  background:currentColor;
  border-radius:999px;
  transform:rotate(-40deg);
}
.sspq-login-card .sspq-login-remember{
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  align-items:center!important;
  gap:10px!important;
}
.sspq-login-card .sspq-login-forgot{
  text-align:center!important;
}
.sspq-login-card .sspq-login-forgot a{
  color:var(--sspq-muted)!important;
  font-weight:800!important;
  text-decoration:none!important;
}
.sspq-login-card .sspq-login-forgot a:hover{color:var(--sspq-navy)!important;text-decoration:underline!important}

@media (max-width: 767px){
  .sspq-platform[data-sspq-page="infractions"] .sspq-infractions .sspq-panel-head,
  .sspq-infractions .sspq-panel-head{
    gap:18px!important;
    align-items:stretch!important;
  }
  .sspq-platform[data-sspq-page="infractions"] .sspq-infractions .sspq-inline-actions,
  .sspq-infractions .sspq-inline-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    width:100%!important;
  }
  .sspq-platform[data-sspq-page="infractions"] .sspq-infractions .sspq-inline-actions .sspq-btn,
  .sspq-infractions .sspq-inline-actions .sspq-btn{
    width:100%!important;
    margin:0!important;
  }
  .sspq-platform[data-sspq-page="infractions"] .sspq-infractions .sspq-filter-row,
  .sspq-infractions .sspq-filter-row{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    padding:12px!important;
    margin:14px 0 18px 0!important;
    border-radius:18px!important;
    box-sizing:border-box!important;
  }
  .sspq-platform[data-sspq-page="infractions"] .sspq-infractions .sspq-filter-row .sspq-btn,
  .sspq-infractions .sspq-filter-row .sspq-btn{
    width:100%!important;
    margin:0!important;
    min-height:54px!important;
    border-radius:14px!important;
  }

  .sspq-patrol-detail .sspq-patrol-map{
    display:none!important;
  }
}

.sspq-hiring{
  display:grid;
  gap:16px;
}
.sspq-hiring .sspq-grid-form{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:end;
}
.sspq-hiring .sspq-field,
.sspq-hiring .sspq-inline-form label{
  display:grid;
  gap:6px;
  font-weight:700;
}
.sspq-hiring .sspq-field-wide{
  grid-column:1 / -1;
}
.sspq-hiring input,
.sspq-hiring select,
.sspq-hiring textarea{
  width:100%;
  min-height:42px;
  box-sizing:border-box;
  border:1px solid rgba(15,45,68,.18);
  border-radius:8px;
  padding:10px 12px;
  font:inherit;
}
.sspq-hiring textarea{
  resize:vertical;
}
.sspq-hiring .sspq-check{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  font-weight:700;
}
.sspq-hiring .sspq-check input{
  width:auto;
  min-height:0;
}
.sspq-hiring-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}
.sspq-hiring-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.sspq-hiring-summary div{
  border:1px solid rgba(15,45,68,.12);
  border-radius:8px;
  padding:10px;
  min-width:0;
}
.sspq-hiring-summary span{
  display:block;
  color:var(--sspq-muted,#64748b);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
}
.sspq-hiring-summary strong,
.sspq-hiring code{
  overflow-wrap:anywhere;
}
.sspq-hiring-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.sspq-hiring-signatures{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}
.sspq-hiring .sspq-inline-form{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:end;
}
.sspq-hiring .sspq-inline-form label{
  min-width:260px;
  flex:1;
}
.sspq-muted{
  color:var(--sspq-muted,#64748b);
}
@media (max-width: 900px){
  .sspq-hiring .sspq-grid-form,
  .sspq-hiring-summary,
  .sspq-hiring-signatures{
    grid-template-columns:1fr;
  }
  .sspq-hiring-head{
    display:grid;
  }
  .sspq-hiring .sspq-inline-form{
    display:grid;
  }
  .sspq-hiring .sspq-inline-form label{
    min-width:0;
  }
}

/* SSPQ 2.0.681 - Horaire : regroupement clair des actions du haut */
.sspq-schedule-actions.sspq-schedule-actions-v2{
  display:grid!important;
  grid-template-columns:minmax(280px,1.4fr) minmax(280px,1fr) minmax(220px,.8fr)!important;
  gap:12px!important;
  align-items:stretch!important;
  margin-bottom:14px!important;
}
.sspq-schedule-actions-v2 .sspq-schedule-action-group{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  align-items:flex-end!important;
  align-content:flex-start!important;
  padding:10px!important;
  border:1px solid #d8e0ea!important;
  border-radius:14px!important;
  background:#fff!important;
  min-width:0!important;
}
.sspq-schedule-actions-v2 .sspq-schedule-action-title{
  flex:0 0 100%!important;
  display:block!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  color:#64748b!important;
  margin:0 0 2px!important;
}
.sspq-schedule-actions-v2>.sspq-btn,
.sspq-schedule-actions-v2>.sspq-inline-form,
.sspq-schedule-actions-v2>.sspq-inline-form>.sspq-btn,
.sspq-schedule-actions-v2 .sspq-schedule-main-action,
.sspq-schedule-actions-v2 .sspq-inline-form .sspq-btn{
  width:auto!important;
  min-width:154px!important;
  max-width:none!important;
  height:40px!important;
  min-height:40px!important;
  padding:0 14px!important;
  white-space:nowrap!important;
}
.sspq-schedule-actions-v2 .sspq-inline-form{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
}
.sspq-schedule-actions-v2 .sspq-schedule-export-form select{
  height:40px!important;
  min-width:118px!important;
  border:1px solid #cfd8e3!important;
  border-radius:10px!important;
  padding:0 10px!important;
  background:#fff!important;
}
.sspq-locked-fieldset{
  grid-column:1/-1;
  display:contents;
}
.sspq-locked-fieldset input,
.sspq-locked-fieldset select,
.sspq-locked-fieldset textarea{
  background:#f1f5f9!important;
  color:#475569!important;
  cursor:not-allowed!important;
}
@media(max-width:1180px){
  .sspq-schedule-actions.sspq-schedule-actions-v2{grid-template-columns:1fr 1fr!important;}
  .sspq-schedule-actions-v2 .sspq-schedule-action-group-export{grid-column:1/-1!important;}
}
@media(max-width:760px){
  .sspq-schedule-actions.sspq-schedule-actions-v2{grid-template-columns:1fr!important;}
  .sspq-schedule-actions-v2 .sspq-schedule-action-group{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .sspq-schedule-actions-v2 .sspq-schedule-main-action,
  .sspq-schedule-actions-v2 .sspq-inline-form,
  .sspq-schedule-actions-v2 .sspq-inline-form .sspq-btn,
  .sspq-schedule-actions-v2 .sspq-schedule-export-form select{width:100%!important;min-width:0!important;max-width:none!important;}
  .sspq-schedule-actions-v2 .sspq-schedule-export-form{display:grid!important;grid-template-columns:1fr!important;}
}


/* SSPQ 2.0.687 - Cartes vides et boutons avis d'infraction. */
.sspq-vehicle-map.is-empty,
.sspq-patrol-map.is-empty{
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  border:0!important;
  background:transparent!important;
  margin:10px 0!important;
  overflow:visible!important;
}
.sspq-map-empty-note{
  display:block;
  margin:10px 0;
  padding:12px 14px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#f8fafc;
  color:#475569;
  font-weight:800;
  line-height:1.35;
}
.sspq-vehicle-position-fallback{
  margin-top:14px;
}
.sspq-platform[data-sspq-page="infractions"] .sspq-infractions .sspq-filter-row,
.sspq-infractions .sspq-filter-row{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  align-items:center!important;
  margin:0 0 16px 0!important;
}
.sspq-platform[data-sspq-page="infractions"] .sspq-infractions .sspq-filter-row .sspq-btn,
.sspq-infractions .sspq-filter-row .sspq-btn{
  margin:0!important;
  min-height:42px!important;
  padding:10px 16px!important;
  border-radius:10px!important;
  white-space:nowrap!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
@media(max-width:700px){
  .sspq-platform[data-sspq-page="infractions"] .sspq-infractions .sspq-filter-row,
  .sspq-infractions .sspq-filter-row{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  .sspq-platform[data-sspq-page="infractions"] .sspq-infractions .sspq-filter-row .sspq-btn,
  .sspq-infractions .sspq-filter-row .sspq-btn{
    width:100%!important;
    min-height:46px!important;
  }
}

/* SSPQ 2.0.688 — module Uniformes */
.sspq-uniform-module .sspq-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px}
.sspq-uniform-module .sspq-kpi{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--sspq-border);border-radius:16px;padding:16px;box-shadow:0 10px 26px rgba(15,23,42,.05)}
.sspq-uniform-module .sspq-kpi span{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--sspq-muted);font-weight:800}
.sspq-uniform-module .sspq-kpi strong{font-size:24px;color:var(--sspq-navy)}
.sspq-uniform-module .sspq-grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.sspq-uniform-module .sspq-panel{padding:18px;margin-bottom:18px}
.sspq-uniform-module .sspq-form{display:grid;gap:14px}
.sspq-uniform-module .sspq-table input,.sspq-uniform-module .sspq-table select{width:100%;min-width:110px;border:1px solid var(--sspq-border);border-radius:9px;padding:8px;background:#fff}
.sspq-uniform-module .sspq-table input[type=number]{min-width:80px}
.sspq-uniform-tabs a{text-decoration:none}
.sspq-uniform-module .sspq-checkline{display:flex!important;align-items:center;gap:10px;font-weight:800;color:var(--sspq-navy)}
.sspq-uniform-module .sspq-checkline input{position:static!important;opacity:1!important;pointer-events:auto!important;width:auto!important}
@media(max-width:760px){.sspq-uniform-module .sspq-panel{padding:14px}.sspq-uniform-module .sspq-table input,.sspq-uniform-module .sspq-table select{min-width:140px}}

/* SSPQ 2.0.689 - Permissions détaillées page -> section -> action */
.sspq-permissions-advanced{overflow:hidden;}
.sspq-permission-page-index{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px;}
.sspq-permission-page-card{border:1px solid var(--sspq-border);border-radius:18px;background:#fff;margin:18px 0;padding:16px;box-shadow:0 10px 26px rgba(15,23,42,.04);}
.sspq-permission-page-card .sspq-panel-subhead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;}
.sspq-permission-page-card .sspq-panel-subhead h3{margin:0 0 4px;}
.sspq-permission-page-card .sspq-panel-subhead p{margin:0;}
.sspq-permission-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:12px 0 16px;}
.sspq-permission-preset-role{border:1px solid var(--sspq-border);border-radius:14px;background:#f8fafc;padding:10px;}
.sspq-permission-preset-role strong{display:block;margin-bottom:8px;color:var(--sspq-navy);}
.sspq-permission-preset-buttons{display:flex;gap:6px;flex-wrap:wrap;}
.sspq-permission-preset-buttons .sspq-btn{padding:6px 9px;min-height:30px;font-size:11px;}
.sspq-table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.sspq-permission-matrix-detailed code,.sspq-permissions-legacy code{font-size:11px;word-break:break-all;white-space:normal;}
.sspq-permission-sensitive td{background:#fffbeb;}
.sspq-permissions-legacy{margin-top:18px;border:1px solid var(--sspq-border);border-radius:16px;background:#fff;padding:12px;}
.sspq-permissions-legacy summary{cursor:pointer;font-weight:900;color:var(--sspq-navy);padding:8px;}
@media (max-width: 780px){
  .sspq-permission-page-card{padding:12px;border-radius:14px;}
  .sspq-permission-page-card .sspq-panel-subhead{display:block;}
  .sspq-permission-presets{grid-template-columns:1fr;}
  .sspq-permission-matrix-detailed th,.sspq-permission-matrix-detailed td{min-width:120px;}
  .sspq-permission-matrix-detailed th:first-child,.sspq-permission-matrix-detailed td:first-child{min-width:150px;}
  .sspq-permission-matrix-detailed th:nth-child(3),.sspq-permission-matrix-detailed td:nth-child(3){min-width:230px;text-align:left;}
}


/* SSPQ 2.0.696 — icônes de statut autonomes, sans dépendance au cache CSS. */
.sspq-shift-status-icon svg{width:15px;height:15px;display:block;fill:none!important;stroke:currentColor!important;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.sspq-shift-status-icon svg path,.sspq-shift-status-icon svg circle{fill:none!important;stroke:currentColor!important}
.sspq-shift-status-icon.is-confirmed svg{stroke-width:2.6}
.sspq-shift-status-icon.is-archive{background:#f1f5f9;color:#334155;border-color:#cbd5e1}
@media(max-width:1180px){.sspq-shift-status-icon svg{width:12px;height:12px}}

/* SSPQ 2.0.696 — recherche instantanée des sites. */
.sspq-site-search-field{display:block}
.sspq-sites-result-count{font-size:13px;font-weight:800;color:#475569;min-height:20px}
.sspq-site-card[hidden]{display:none!important}


/* SSPQ 2.0.698 - Répartition mobile: cartes cliquables, sélection et modification de masse */
.sspq-dispatch-bulk-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px 14px;margin:0 0 12px;border:1px solid var(--sspq-border);border-radius:14px;background:#fff}
.sspq-dispatch-bulk-toolbar>div:first-child{display:grid;gap:3px}.sspq-dispatch-bulk-toolbar small{color:var(--sspq-muted)}
.sspq-dispatch-bulk-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.sspq-dispatch-bulk-actions form{margin:0;padding:0;border:0;background:transparent}
.sspq-dispatch-card{position:relative;display:flex;align-items:flex-start;gap:7px;min-width:0;outline:none}
.sspq-dispatch-card:hover,.sspq-dispatch-card:focus-visible{box-shadow:0 0 0 2px rgba(11,31,58,.18);transform:translateY(-1px)}
.sspq-dispatch-card.is-selected{background:#fff8dc;box-shadow:0 0 0 2px rgba(202,157,0,.35)}
.sspq-dispatch-select{display:flex!important;align-items:center;justify-content:center;flex:0 0 auto;margin:0!important;padding:1px;cursor:pointer}
.sspq-dispatch-select input{width:17px!important;height:17px!important;margin:0!important}
.sspq-dispatch-card-main{display:grid;min-width:0;gap:1px}.sspq-dispatch-card-main strong{white-space:nowrap}.sspq-dispatch-card-main small{display:block;color:var(--sspq-muted);line-height:1.25}
.sspq-dispatch-bulk-fields{align-items:start}.sspq-dispatch-bulk-field{border:1px solid var(--sspq-border);border-radius:12px;padding:12px;background:#f8fafc}.sspq-dispatch-bulk-field>input,.sspq-dispatch-bulk-field>label:not(.sspq-checkline),.sspq-dispatch-bulk-field select{width:100%;box-sizing:border-box}.sspq-dispatch-bulk-field .sspq-checkline{margin-bottom:8px}
.sspq-dispatch-delete-zone{margin-top:18px;padding-top:16px;border-top:1px solid var(--sspq-border)}.sspq-dispatch-delete-zone h4{margin:0 0 10px}.sspq-dispatch-delete-zone form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:0;padding:0;border:0;background:transparent}.sspq-dispatch-delete-zone label{min-width:260px}
@media(max-width:900px){.sspq-dispatch-bulk-toolbar{display:block}.sspq-dispatch-bulk-actions{justify-content:flex-start;margin-top:10px}.sspq-dispatch-bulk-actions .sspq-btn,.sspq-dispatch-bulk-actions form{width:100%}.sspq-dispatch-bulk-actions form .sspq-btn{width:100%}.sspq-dispatch-delete-zone form,.sspq-dispatch-delete-zone label,.sspq-dispatch-delete-zone .sspq-btn{width:100%}}


/* SSPQ 2.0.704 — restauration des cartes d’horaire adaptatives et icônes compactes */
.sspq-schedule-select input.sspq-shift-bulk-check{
  appearance:none;
  -webkit-appearance:none;
  width:14px;
  height:14px;
  margin:0;
  border:2px solid #64748b;
  border-radius:4px;
  background:#fff;
  display:grid;
  place-content:center;
  cursor:pointer;
}
.sspq-schedule-select input.sspq-shift-bulk-check:checked{background:var(--sspq-navy,#0b2447);border-color:var(--sspq-navy,#0b2447)}
.sspq-schedule-select input.sspq-shift-bulk-check:checked::after{content:"";width:4px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg) translate(-1px,-1px)}
.sspq-schedule-card:has(.sspq-shift-bulk-check:checked){outline:2px solid rgba(11,36,71,.42)!important;outline-offset:1px;background:#eff6ff!important}
.sspq-pagination{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px;align-items:center}
.sspq-pagination .is-active{pointer-events:none;box-shadow:0 0 0 3px rgba(11,36,71,.18)}
.sspq-route-task-actions .sspq-patrol-report-flow{width:100%}
.sspq-route-task-actions .sspq-patrol-report-flow>.sspq-btn{width:100%}
@media (min-width:1024px) and (max-width:1440px){
  .sspq-schedule-select input.sspq-shift-bulk-check{width:12px;height:12px;border-width:1.5px;border-radius:3px}
  .sspq-schedule-select input.sspq-shift-bulk-check:checked::after{width:3px;height:6px;border-width:0 1.5px 1.5px 0}
}
@media (pointer:coarse){
  .sspq-schedule-select::before,.sspq-shift-status-icon::before{content:"";position:absolute;inset:-7px;border-radius:10px}
}


/* SSPQ 2.0.709 - gestion administrative des candidatures */
.sspq-hiring .sspq-checkbox-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:6px}.sspq-hiring .sspq-checkbox-grid label{display:flex;align-items:center;gap:7px;font-weight:700}.sspq-hiring .sspq-checkbox-grid input,.sspq-hiring .sspq-check input{width:auto;min-height:0;flex:0 0 auto}.sspq-hiring-delete-document{display:flex!important;gap:8px!important;align-items:center!important;margin-top:8px!important}.sspq-hiring-delete-document input[type=text]{min-width:190px;max-width:280px}.sspq-hiring-delete-document .sspq-button{white-space:nowrap}@media(max-width:900px){.sspq-hiring .sspq-checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sspq-hiring-delete-document{display:grid!important}.sspq-hiring-delete-document input[type=text],.sspq-hiring-delete-document .sspq-button{width:100%;max-width:none}}

/* SSPQ 2.0.710 - démarrage direct de ronde */
.sspq-patrol-direct-start-form{width:100%;margin:0}.sspq-patrol-direct-start-form .sspq-btn{width:100%;justify-content:center;min-height:48px}

/* SSPQ 2.0.711 — champ média multiple pour les rapports. */
.sspq-report-file-list{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:4px;}
.sspq-report-file-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:9px 10px;border:1px solid #d7dee8;border-radius:10px;background:#f8fafc;}
.sspq-report-file-item span{min-width:0;overflow-wrap:anywhere;font-weight:700;color:#334155;}

/* SSPQ 2.0.713 — suivi des consultations de formation */
.sspq-training-followup{margin-top:16px}
.sspq-training-followup-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.sspq-training-followup-stats>div{border:1px solid #d7e1ee;border-radius:14px;background:#f8fafc;padding:14px;display:grid;gap:4px}
.sspq-training-followup-stats strong{font-size:24px;color:#0b2447}
.sspq-training-followup-stats span{color:#64748b;font-size:13px}
@media(max-width:640px){.sspq-training-followup-stats{grid-template-columns:1fr}.sspq-training-followup .sspq-toolbar{display:grid;grid-template-columns:1fr}}

/* SSPQ 2.0.715 — heures de passage mobiles sans débordement et listes recherchables non bloquantes. */
.sspq-route-time-control{display:inline-flex;align-items:center;justify-content:flex-end;width:min(116px,100%);max-width:100%;min-width:0;box-sizing:border-box;}
.sspq-route-time-mobile-button{display:none;width:100%;max-width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid #94a3b8;border-radius:10px;background:#fff;color:#0b1f3a;font:800 16px/1.1 inherit;font-variant-numeric:tabular-nums;text-align:center;cursor:pointer;box-sizing:border-box;}
.sspq-route-time-mobile-button.has-value{border-color:#64748b;background:#fff;}
.sspq-route-time-mobile-button:disabled{opacity:.55;cursor:not-allowed;}
.sspq-route-time-picker[hidden]{display:none!important;}
.sspq-route-time-picker{position:fixed;inset:0;z-index:2147482500;display:flex;align-items:flex-end;justify-content:center;padding:14px;background:rgba(15,23,42,.54);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);box-sizing:border-box;}
.sspq-route-time-picker-card{width:min(520px,100%);max-height:calc(100dvh - 28px);overflow:auto;padding:18px;border:1px solid #d7e0eb;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.38);box-sizing:border-box;}
.sspq-route-time-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e2e8f0;color:#0b1f3a;}
.sspq-route-time-picker-head strong{font-size:20px;line-height:1.2;}
.sspq-route-time-picker-close{width:42px;height:42px;min-width:42px;padding:0;border:0;border-radius:999px;background:#0b2545;color:#fff;font-size:26px;font-weight:900;line-height:1;cursor:pointer;}
.sspq-route-time-picker-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.sspq-route-time-picker-fields label{display:grid;gap:7px;color:#0b1f3a;font-weight:900;}
.sspq-route-time-picker-fields select{width:100%;min-height:58px;padding:10px 42px 10px 14px;border:1px solid #94a3b8;border-radius:12px;background-color:#fff;color:#0b1f3a;font-size:20px;font-weight:800;}
.sspq-route-time-picker-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid #e2e8f0;}
.sspq-route-time-picker-actions .sspq-btn{width:100%;min-height:52px;justify-content:center;}
html.sspq-route-time-picker-open,body.sspq-route-time-picker-open{overflow:hidden!important;overscroll-behavior:none!important;}

@media(max-width:900px){
  .sspq-route-time-row [data-sspq-route-time-input]{position:absolute!important;width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;max-width:1px!important;opacity:0!important;pointer-events:none!important;left:-9999px!important;padding:0!important;margin:0!important;border:0!important;}
  .sspq-route-time-mobile-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:100%!important;max-width:100%!important;min-width:0!important;}
  .sspq-route-time-row{display:grid!important;grid-template-columns:minmax(68px,1fr) minmax(108px,132px)!important;align-items:center!important;justify-content:stretch!important;gap:10px!important;min-height:58px!important;padding:8px 10px!important;font-size:15px!important;overflow:hidden!important;box-sizing:border-box!important;}
  .sspq-route-time-row>span:first-child{min-width:0!important;overflow-wrap:anywhere!important;}
  .sspq-route-time-control{width:100%!important;max-width:132px!important;min-width:0!important;justify-self:end!important;}

  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open::before{content:"";position:fixed!important;inset:0!important;z-index:2147482200!important;background:rgba(15,23,42,.48)!important;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);}
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-menu{position:fixed!important;left:12px!important;right:12px!important;top:calc(env(safe-area-inset-top,0px) + 66px)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 12px)!important;width:auto!important;max-width:none!important;max-height:none!important;margin:0!important;display:flex!important;flex-direction:column!important;z-index:2147482201!important;border:1px solid #94a3b8!important;border-radius:18px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 24px 70px rgba(15,23,42,.42)!important;}
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-menu-head{display:flex!important;flex:0 0 auto!important;min-height:58px!important;padding:10px 12px!important;}
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-close{display:inline-grid!important;place-items:center!important;width:42px!important;height:42px!important;min-width:42px!important;padding:0!important;border:0!important;border-radius:12px!important;background:#0b2545!important;color:#fff!important;font-size:24px!important;font-weight:900!important;}
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-input{flex:0 0 auto!important;width:calc(100% - 24px)!important;min-height:48px!important;margin:10px 12px!important;padding:10px 12px!important;border:1px solid #94a3b8!important;border-radius:12px!important;background:#fff!important;font-size:16px!important;}
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-list{flex:1 1 auto!important;min-height:0!important;height:auto!important;max-height:none!important;padding:0 0 calc(12px + env(safe-area-inset-bottom,0px))!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-y:contain!important;touch-action:pan-y!important;}
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-option{min-height:52px!important;padding:13px 15px!important;font-size:16px!important;line-height:1.25!important;white-space:normal!important;touch-action:pan-y!important;}
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-empty{flex:0 0 auto!important;padding:14px 15px!important;}
  .sspq-searchable-limit-hint{border-top:1px solid #e2e8f0!important;background:#f8fafc!important;}
}

@media(max-width:420px){
  .sspq-route-time-row{grid-template-columns:minmax(62px,1fr) minmax(104px,124px)!important;gap:8px!important;padding:8px!important;}
  .sspq-route-time-control{max-width:124px!important;}
  .sspq-route-time-picker{padding:8px;}
  .sspq-route-time-picker-card{padding:15px;border-radius:18px;}
  .sspq-route-time-picker-fields{grid-template-columns:1fr 1fr;gap:8px;}
  .sspq-route-time-picker-fields select{min-height:54px;font-size:18px;}
  .sspq-route-time-picker-actions{grid-template-columns:1fr;}
}


/* SSPQ 2.0.719 — améliorations interface mobile, cartes et contrôles */
@media (max-width:767px){
  .sspq-mobile-dropdown-menu.is-open{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;}
  .sspq-mobile-dropdown-menu a{min-width:0!important;min-height:72px!important;padding:10px!important;flex-direction:column!important;justify-content:center!important;text-align:center!important;gap:7px!important;}
  .sspq-mobile-dropdown-menu .sspq-nav-label{min-width:0!important;width:100%!important;font-size:13px!important;line-height:1.15!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:center!important;}
  .sspq-mobile-dropdown-menu .sspq-nav-icon{width:28px!important;height:28px!important;min-width:28px!important;display:flex!important;align-items:center!important;justify-content:center!important;}
}

/* Accueil : les noms longs restent à l'intérieur des cartes de quarts à combler. */
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-detail-btn,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-top,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-meta{min-width:0!important;max-width:100%!important;box-sizing:border-box!important;}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-meta,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-meta *,
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-card-top strong{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;word-break:break-word!important;max-width:100%!important;}

/* Icônes vectorielles nettes et zones tactiles cohérentes. */
.sspq-nav-icon svg,.sspq-btn svg,.sspq-shift-status-icon svg,.sspq-action-icon svg{shape-rendering:geometricPrecision!important;stroke-linecap:round!important;stroke-linejoin:round!important;vector-effect:non-scaling-stroke!important;}
.sspq-nav-icon svg,.sspq-btn svg,.sspq-action-icon svg{display:block!important;max-width:100%!important;max-height:100%!important;}
.sspq-shift-status-icon{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
.sspq-shift-status-icon svg{width:23px!important;height:23px!important;display:block!important;stroke-width:2.15!important;vector-effect:non-scaling-stroke!important;shape-rendering:geometricPrecision!important;}
@media(max-width:767px){.sspq-shift-status-icon{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}.sspq-shift-status-icon svg{width:22px!important;height:22px!important}}

/* Rondes : numéro de parcours visible avant le nom, Départ compris. */
.sspq-patrol-mobile-point-number{font-variant-numeric:tabular-nums;font-weight:950;color:inherit;}

/* Véhicules : onglets fixes, cases compactes et carte plein écran. */
@media(max-width:767px){
  .sspq-platform[data-sspq-page="vehicules"]{--sspq-vehicles-mobile-sticky-top:var(--sspq-mobile-topbar-height,60px);}
  .sspq-platform[data-sspq-page="vehicules"] .sspq-vehicles>.sspq-tabs{position:sticky!important;top:var(--sspq-vehicles-mobile-sticky-top)!important;z-index:96!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;width:100%!important;margin:0 0 12px!important;padding:10px 0 12px!important;background:rgba(244,246,248,.97)!important;border-bottom:1px solid rgba(15,31,58,.12)!important;box-shadow:0 10px 22px rgba(15,23,42,.08)!important;backdrop-filter:blur(8px)!important;}
  .sspq-platform[data-sspq-page="vehicules"] .sspq-vehicles>.sspq-tabs .sspq-tab{width:100%!important;min-width:0!important;min-height:50px!important;display:flex!important;align-items:center!important;justify-content:center!important;white-space:normal!important;text-align:center!important;}
}
.sspq-platform[data-sspq-page="vehicules"] .sspq-checkbox-grid label{display:flex!important;align-items:center!important;gap:10px!important;min-height:40px!important;}
.sspq-platform[data-sspq-page="vehicules"] .sspq-checkbox-grid input[type="checkbox"]{appearance:auto!important;-webkit-appearance:checkbox!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;max-width:20px!important;max-height:20px!important;margin:0!important;padding:0!important;transform:none!important;flex:0 0 20px!important;}
.sspq-vehicle-map-shell{min-width:0;}
.sspq-vehicle-map-shell:fullscreen,.sspq-vehicle-map-shell.is-fullscreen-fallback{position:fixed!important;inset:0!important;z-index:100000!important;width:100vw!important;height:100vh!important;background:#fff!important;padding:12px!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;}
.sspq-vehicle-map-shell:fullscreen .sspq-vehicle-map,.sspq-vehicle-map-shell.is-fullscreen-fallback .sspq-vehicle-map{height:auto!important;min-height:0!important;max-height:none!important;flex:1 1 auto!important;}
.sspq-vehicle-map-controls{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin:0 0 10px;flex-wrap:wrap;flex:0 0 auto;}
.sspq-vehicle-map-controls .sspq-btn{min-height:40px;}
.sspq-vehicle-car-marker{background:transparent!important;border:0!important;}
.sspq-vehicle-car-marker .sspq-car-shape{display:block!important;width:38px!important;height:38px!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;filter:drop-shadow(0 2px 2px rgba(255,255,255,.95)) drop-shadow(0 3px 4px rgba(15,23,42,.45));}
.sspq-vehicle-car-marker .sspq-car-shape svg{width:100%!important;height:100%!important;display:block!important;fill:#0b2447!important;}

/* Formation : cartes compactes dépliables et chargement vidéo à l'ouverture. */
.sspq-training-accordion{padding:0!important;overflow:hidden!important;}
.sspq-training-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;cursor:pointer;background:#fff;}
.sspq-training-summary::-webkit-details-marker{display:none;}
.sspq-training-summary-text{min-width:0;display:grid;gap:5px;}
.sspq-training-summary-text strong{font-size:20px;color:var(--sspq-navy);overflow-wrap:anywhere;}
.sspq-training-summary-text small{color:var(--sspq-muted);font-weight:700;}
.sspq-training-chevron{font-size:26px;line-height:1;transition:transform .18s ease;}
.sspq-training-accordion[open] .sspq-training-chevron{transform:rotate(180deg);}
.sspq-training-expandable{border-top:1px solid var(--sspq-border);}

/* Paramètres > Rapports : actions distinctes et tactiles. */
.sspq-structured-manager[data-sspq-manager="report_template_simple_manager"] .sspq-row-actions{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important;min-width:210px!important;}
.sspq-structured-manager[data-sspq-manager="report_template_simple_manager"] .sspq-row-actions .sspq-btn{width:100%!important;margin:0!important;}
.sspq-report-template-composer{display:grid;gap:14px;min-width:0;}
.sspq-report-template-textarea{width:100%;min-height:260px;resize:vertical;line-height:1.5;}
.sspq-report-template-toolbox{display:grid;gap:12px;padding:14px;border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc;min-width:0;}
.sspq-report-template-toolbox-head{display:grid;gap:3px;color:#0b2447;}
.sspq-report-template-toolbox-head strong{font-size:17px;}
.sspq-report-template-toolbox-head span{color:#64748b;font-weight:700;}
.sspq-report-template-controls{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(220px,1.4fr) auto auto;gap:10px;align-items:center;min-width:0;}
.sspq-report-template-controls>*{min-width:0;}
.sspq-report-template-controls .sspq-report-choices{grid-column:1/-1;display:block;margin:0!important;}
.sspq-report-template-controls .sspq-report-choices[hidden]{display:none!important;}
.sspq-report-template-palette{display:grid;gap:10px;}
.sspq-report-template-token-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;}
.sspq-report-template-token-group>span{font-weight:900;color:#0b2447;margin-right:2px;}
.sspq-report-template-token-group em{color:#64748b;font-style:normal;font-weight:700;}
.sspq-report-token-insert{min-height:34px;border:1px solid #cbd6e2;border-radius:999px;background:#fff;color:#0b2447;font-weight:850;padding:6px 11px;cursor:pointer;}
.sspq-report-token-insert:hover,.sspq-report-token-insert:focus{border-color:#c9a227;box-shadow:0 0 0 3px rgba(201,162,39,.18);outline:0;}
.sspq-report-template-hidden-builder{display:grid;gap:10px;}
.sspq-report-template-hidden-builder .sspq-report-builder-storage{display:none;}
.sspq-report-template-hidden-builder .sspq-report-preview{margin-top:0;}
@media(max-width:767px){
  .sspq-report-template-controls{grid-template-columns:1fr;}
  .sspq-report-template-controls .sspq-btn{width:100%;}
  .sspq-report-template-textarea{min-height:220px;}
}

/* Rapports : formulaire de modification dans une vraie fenêtre. */
.sspq-report-edit-modal .sspq-modal-card{width:min(900px,96vw)!important;max-height:92vh!important;overflow:auto!important;}
.sspq-report-current-file{display:block;padding:8px 10px;border:1px solid #dbe3ef;border-radius:10px;background:#f8fafc;overflow-wrap:anywhere;}
.sspq-report-full-edit-form{align-items:start;}
.sspq-report-edit-context{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 14px;border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc;color:#334155;}
.sspq-report-edit-context strong{width:100%;color:#0b2447;font-size:18px;}
.sspq-report-edit-fields{display:grid;gap:14px;}
.sspq-report-edit-fields h4{margin:4px 0 0;color:#0b2447;}
.sspq-report-edit-field{display:grid;gap:8px;padding:14px;border:1px solid #dbe3ef;border-radius:14px;background:#fff;min-width:0;}
.sspq-report-edit-field label{display:grid;gap:7px;min-width:0;font-weight:800;color:#0b2447;}
.sspq-report-edit-field input,.sspq-report-edit-field textarea{width:100%;max-width:100%;box-sizing:border-box;}
.sspq-report-edit-modal .sspq-row-actions{display:flex;gap:10px;}
.sspq-open-shift-call-inline-notice{grid-column:1/-1;min-width:0;}
.sspq-open-shift-call-inline-notice:empty{display:none;}
.sspq-open-shift-call-inline-notice .sspq-notice{margin:6px 0!important;}
@media(max-width:767px){
  .sspq-report-edit-modal .sspq-modal-card{width:100%!important;max-width:100%!important;max-height:calc(100dvh - 16px)!important;border-radius:18px 18px 0 0!important;padding:16px!important;}
  .sspq-report-full-edit-form{grid-template-columns:1fr!important;}
  .sspq-report-full-edit-form>*{grid-column:1/-1!important;}
}


/* SSPQ 2.0.724 - Feuille de route terrain reconstruite, sans l'ancienne interface cassée. */
.sspq-field-route{--fr-navy:#0b2447;--fr-gold:#d4af37;--fr-text:#0f172a;--fr-muted:#64748b;--fr-border:#d8e1ec;--fr-soft:#f6f8fb;max-width:820px;margin:0 auto;padding:0 0 28px;color:var(--fr-text);box-sizing:border-box}
.sspq-field-route *{box-sizing:border-box}
.sspq-field-route-header{background:#fff;border:1px solid var(--fr-border);border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(15,23,42,.07)}
.sspq-field-route-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.sspq-field-route-back,.sspq-field-route-refresh{display:inline-flex;align-items:center;min-height:42px;padding:8px 12px;border:1px solid var(--fr-border);border-radius:10px;color:var(--fr-navy)!important;background:#fff;text-decoration:none;font-weight:850}
.sspq-field-route-kicker{margin:0 0 4px;color:var(--fr-muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.sspq-field-route-header h2{margin:0;color:var(--fr-navy);font-size:clamp(24px,5vw,34px);line-height:1.12;overflow-wrap:anywhere}
.sspq-field-route-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.sspq-field-route-meta span{display:grid;gap:2px;padding:11px 12px;border:1px solid #e5ebf3;border-radius:11px;background:var(--fr-soft);font-weight:750;min-width:0;overflow-wrap:anywhere}
.sspq-field-route-meta b{color:var(--fr-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.sspq-field-route-progress{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;margin-top:16px}
.sspq-field-route-progress>div{display:flex;align-items:baseline;gap:7px;white-space:nowrap}
.sspq-field-route-progress strong{font-size:20px;color:var(--fr-navy)}
.sspq-field-route-progress span{color:var(--fr-muted);font-weight:750}
.sspq-field-route-progress>i{display:block;height:10px;overflow:hidden;border-radius:999px;background:#e7edf4}
.sspq-field-route-progress>i>span{display:block;height:100%;border-radius:inherit;background:var(--fr-gold)}
.sspq-field-route-lock,.sspq-field-route-empty{margin-top:16px;padding:18px;border:1px solid #efd28e;border-radius:14px;background:#fff8e6;color:#684b00}
.sspq-field-route-lock p,.sspq-field-route-empty p{margin:6px 0 0}
.sspq-field-route-current{margin-top:16px;padding:20px;border:1px solid var(--fr-border);border-left:6px solid #94a3b8;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.08)}
.sspq-field-route-current.status-en_route{border-left-color:#2563eb}.sspq-field-route-current.status-arrived,.sspq-field-route-current.status-in_progress{border-left-color:#d4af37}
.sspq-field-route-current-top{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:start}
.sspq-field-route-step{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:var(--fr-navy);color:#fff;font-size:21px;font-weight:900}
.sspq-field-route-current-top p{margin:0 0 3px;color:var(--fr-muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.sspq-field-route-current-top h3{margin:0;color:var(--fr-navy);font-size:24px;line-height:1.18;overflow-wrap:anywhere}
.sspq-field-route-status{display:inline-flex;align-items:center;min-height:34px;padding:6px 10px;border-radius:999px;background:#eef3f8;color:#334155;font-size:12px;font-weight:900;text-align:center}
.sspq-field-route-time{margin:16px 0 0;color:#334155;font-weight:800}
.sspq-field-route-address{display:grid;gap:3px;margin:12px 0 0;padding:12px;border-radius:11px;background:var(--fr-soft);color:#334155;overflow-wrap:anywhere}
.sspq-field-route-address strong{color:var(--fr-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.sspq-field-route-requirements{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.sspq-field-route-requirements span{display:inline-flex;padding:7px 10px;border-radius:999px;background:#fff4cf;color:#6b4b00;font-size:12px;font-weight:900}
.sspq-field-route-requirements span.is-done{background:#dcfce7;color:#166534}
.sspq-field-route-instructions{margin-top:14px;border:1px solid var(--fr-border);border-radius:12px;background:#fff}
.sspq-field-route-instructions>summary{cursor:pointer;padding:12px 14px;color:var(--fr-navy);font-weight:900;list-style:none}
.sspq-field-route-instructions>summary::-webkit-details-marker{display:none}
.sspq-field-route-instructions>summary:after{content:'+';float:right}.sspq-field-route-instructions[open]>summary:after{content:'−'}
.sspq-field-route-instructions p{margin:0;padding:0 14px 14px;line-height:1.55;color:#334155}
.sspq-field-route-primary{margin-top:16px}
.sspq-field-route-primary>.sspq-inline-form,.sspq-field-route-primary>.sspq-patrol-report-flow{width:100%;margin:0!important;padding:0!important;border:0!important;background:transparent!important}
.sspq-field-route-primary .sspq-btn,.sspq-field-route-primary .sspq-patrol-report-flow>.sspq-btn,.sspq-field-route-primary-btn{width:100%!important;min-height:56px!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:12px!important;background:var(--fr-navy)!important;color:#fff!important;font-size:17px!important;font-weight:900!important;text-align:center!important;text-decoration:none!important}
.sspq-field-route-navigation{display:flex;align-items:center;justify-content:center;min-height:50px;margin-top:10px;border:1px solid var(--fr-navy);border-radius:12px;background:#fff;color:var(--fr-navy)!important;text-decoration:none;font-weight:900}
.sspq-field-route .sspq-route-justification-modal{width:100%;margin-top:10px;border:0;background:transparent}
.sspq-field-route .sspq-route-justification-modal>summary{display:flex;align-items:center;justify-content:center;min-height:46px;width:100%;border:1px solid #fecaca!important;border-radius:11px!important;background:#fff!important;color:#b42318!important;font-size:14px!important;font-weight:900!important;cursor:pointer;list-style:none}
.sspq-field-route .sspq-route-justification-modal>summary::-webkit-details-marker{display:none}
.sspq-field-route .sspq-route-justification-modal form{display:grid;gap:10px;margin-top:8px;padding:14px;border:1px solid #fecaca;border-radius:12px;background:#fff7f7}
.sspq-field-route .sspq-route-justification-modal textarea{width:100%;min-height:90px}
.sspq-field-route-list{margin-top:18px;padding:18px;border:1px solid var(--fr-border);border-radius:18px;background:#fff}
.sspq-field-route-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.sspq-field-route-list-head h3{margin:0;color:var(--fr-navy);font-size:21px}.sspq-field-route-list-head span{color:var(--fr-muted);font-weight:800}
.sspq-field-route-list ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.sspq-field-route-list li{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border:1px solid #e4eaf1;border-radius:12px;background:#fff}
.sspq-field-route-list li.is-current{border-color:#d4af37;background:#fffaf0}
.sspq-field-route-list li.status-completed{background:#f0fdf4}.sspq-field-route-list li.status-impossible{background:#fff7f7}
.sspq-field-route-list-number{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:#e9eef5;color:var(--fr-navy);font-weight:900}
.sspq-field-route-list li.is-current .sspq-field-route-list-number{background:var(--fr-gold)}
.sspq-field-route-list li>div{min-width:0}.sspq-field-route-list strong{display:block;color:var(--fr-text);overflow-wrap:anywhere}.sspq-field-route-list small{display:block;margin-top:3px;color:var(--fr-muted);font-weight:750;overflow-wrap:anywhere}
.sspq-field-route-list-status{font-size:11px;font-weight:900;color:#475569;text-align:right}
.sspq-field-route-complete{display:flex;align-items:center;gap:14px;margin-top:16px;padding:20px;border:1px solid #bbebca;border-radius:16px;background:#f0fdf4}
.sspq-field-route-complete-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:999px;background:#16803d;color:#fff;font-size:25px;font-weight:900}.sspq-field-route-complete h3{margin:0;color:#14532d}.sspq-field-route-complete p{margin:5px 0 0;color:#166534}
.sspq-field-route-finish{display:grid;gap:12px;margin-top:12px;padding:16px;border:1px solid var(--fr-border);border-radius:14px;background:#fff}
.sspq-field-route-finish label{display:grid;gap:7px;font-weight:850;color:var(--fr-navy)}.sspq-field-route-finish textarea{width:100%;min-height:90px}
.sspq-field-route-finish .sspq-btn{min-height:52px;border-radius:12px}
@media(max-width:640px){
 .sspq-field-route{width:100%;margin:0;padding:0 0 calc(18px + env(safe-area-inset-bottom))}
 .sspq-field-route-header,.sspq-field-route-current,.sspq-field-route-list{border-radius:14px;padding:15px}
 .sspq-field-route-meta{grid-template-columns:1fr}
 .sspq-field-route-progress{grid-template-columns:1fr;gap:8px}
 .sspq-field-route-current-top{grid-template-columns:42px minmax(0,1fr)}
 .sspq-field-route-step{width:42px;height:42px;border-radius:11px;font-size:18px}
 .sspq-field-route-current-top h3{font-size:21px}
 .sspq-field-route-status{grid-column:2;justify-self:start;margin-top:4px}
 .sspq-field-route-list li{grid-template-columns:34px minmax(0,1fr)}
 .sspq-field-route-list-number{width:34px;height:34px}
 .sspq-field-route-list-status{grid-column:2;text-align:left}
 .sspq-field-route-back,.sspq-field-route-refresh{font-size:13px;padding:7px 9px}
}

/* SSPQ 2.0.725 - Parcours mobile cliquable et actions contextuelles. */
.sspq-field-route-list li{display:block!important;padding:0!important;overflow:visible!important}
.sspq-field-route-list-trigger{display:grid;width:100%;grid-template-columns:38px minmax(0,1fr) auto 22px;gap:10px;align-items:center;padding:12px;border:0;border-radius:12px;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}
.sspq-field-route-list-trigger:focus-visible{outline:3px solid rgba(37,99,235,.32);outline-offset:2px}
.sspq-field-route-list-copy{display:block;min-width:0}
.sspq-field-route-list-copy strong{display:block;color:var(--fr-text);overflow-wrap:anywhere}
.sspq-field-route-list-copy small{display:block;margin-top:3px;color:var(--fr-muted);font-weight:750;overflow-wrap:anywhere}
.sspq-field-route-list-chevron{display:flex;align-items:center;justify-content:center;color:var(--fr-navy);font-size:28px;font-weight:700;line-height:1}
.sspq-field-route-action-sheet[hidden],.sspq-field-route-action-info[hidden],.sspq-field-route-action-options[hidden]{display:none!important}
.sspq-field-route-action-sheet{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:flex-end;justify-content:center;padding:16px;box-sizing:border-box}
.sspq-field-route-action-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(15,23,42,.62);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);cursor:pointer}
.sspq-field-route-action-card{position:relative;z-index:1;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:18px;border:1px solid #d7e0eb;border-radius:22px;background:#fff;box-shadow:0 26px 80px rgba(15,23,42,.4);overscroll-behavior:contain}
.sspq-field-route-action-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid #e2e8f0}
.sspq-field-route-action-head span{display:block;margin-bottom:3px;color:#64748b;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.sspq-field-route-action-head h3{margin:0;color:#0b2447;font-size:22px;line-height:1.2;overflow-wrap:anywhere}
.sspq-field-route-action-close{display:flex;align-items:center;justify-content:center;width:42px;height:42px;min-width:42px;padding:0;border:0;border-radius:999px;background:#0b2447;color:#fff;font-size:27px;font-weight:700;line-height:1;cursor:pointer}
.sspq-field-route-action-options{display:grid;gap:10px;padding-top:16px}
.sspq-field-route-action-options>p{margin:0 0 2px;color:#475569;font-weight:750}
.sspq-field-route-action-options .sspq-inline-form{width:100%;margin:0!important}
.sspq-field-route-option-btn{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:54px!important;margin:0!important;border-radius:12px!important;background:#0b2447!important;color:#fff!important;font-size:16px!important;font-weight:900!important;text-align:center!important}
.sspq-field-route-option-navigation{background:#133d70!important}
.sspq-field-route-option-arrived{background:#b88f16!important;color:#111827!important}
.sspq-field-route-option-info{border:1px solid #0b2447!important;background:#fff!important;color:#0b2447!important}
.sspq-field-route-option-btn:disabled{border-color:#d6dee8!important;background:#eef2f6!important;color:#94a3b8!important;box-shadow:none!important;cursor:not-allowed!important;opacity:1!important}
.sspq-field-route-action-info{padding-top:14px}
.sspq-field-route-info-back{display:inline-flex;align-items:center;min-height:40px;margin:0 0 12px;padding:7px 10px;border:1px solid #d7e0eb;border-radius:10px;background:#fff;color:#0b2447;font-weight:850;cursor:pointer}
.sspq-field-route-info-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:12px;background:#f1f5f9}
.sspq-field-route-info-status span{color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.sspq-field-route-info-status strong{color:#0b2447}
.sspq-field-route-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 0}
.sspq-field-route-info-grid>div{padding:11px;border:1px solid #e2e8f0;border-radius:11px;background:#fff}
.sspq-field-route-info-grid dt{margin:0 0 4px;color:#64748b;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.sspq-field-route-info-grid dd{margin:0;color:#0f172a;font-weight:850;overflow-wrap:anywhere}
.sspq-field-route-info-block{margin-top:12px;padding:12px;border:1px solid #e2e8f0;border-radius:11px;background:#fff}
.sspq-field-route-info-block>span{display:block;margin-bottom:5px;color:#64748b;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.sspq-field-route-info-block p{margin:0;color:#334155;line-height:1.5;overflow-wrap:anywhere}
.sspq-field-route-info-block ul{margin:0;padding-left:20px;color:#334155}
.sspq-field-route-action-info .sspq-route-justification-modal{margin-top:12px!important}
html.sspq-route-action-open,body.sspq-route-action-open{overflow:hidden!important;overscroll-behavior:none!important}
@media(max-width:640px){
 .sspq-field-route-list-trigger{grid-template-columns:34px minmax(0,1fr) 20px;padding:11px}
 .sspq-field-route-list-trigger .sspq-field-route-list-status{grid-column:2;text-align:left}
 .sspq-field-route-list-chevron{grid-column:3;grid-row:1/3}
 .sspq-field-route-action-sheet{padding:8px;align-items:flex-end}
 .sspq-field-route-action-card{width:100%;max-height:calc(100dvh - 8px);padding:16px;border-radius:20px 20px 12px 12px}
 .sspq-field-route-action-head h3{font-size:20px}
 .sspq-field-route-info-grid{grid-template-columns:1fr 1fr}
}


/* SSPQ 2.0.726 - cartes Parcours pleine largeur et actions selon le statut. */
.sspq-platform .sspq-field-route .sspq-field-route-list ol{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:12px!important;
  width:100%!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list li{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #d4af37!important;
  border-radius:14px!important;
  background:#fffaf0!important;
  box-shadow:none!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-completed{
  border-color:#86d39e!important;
  background:#f0fdf4!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-impossible{
  border-color:#f2b8b5!important;
  background:#fff7f7!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list-trigger{
  -webkit-appearance:none!important;
  appearance:none!important;
  position:relative!important;
  inset:auto!important;
  display:grid!important;
  grid-template-columns:56px minmax(0,1fr) 24px!important;
  grid-template-areas:
    "number copy chevron"
    "number status chevron"!important;
  column-gap:16px!important;
  row-gap:8px!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:128px!important;
  height:auto!important;
  margin:0!important;
  padding:18px!important;
  border:0!important;
  border-radius:13px!important;
  background:transparent!important;
  background-image:none!important;
  color:#0f172a!important;
  box-shadow:none!important;
  transform:none!important;
  opacity:1!important;
  text-align:left!important;
  text-decoration:none!important;
  box-sizing:border-box!important;
  cursor:pointer!important;
  overflow:visible!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list-trigger:hover,
.sspq-platform .sspq-field-route .sspq-field-route-list-trigger:active,
.sspq-platform .sspq-field-route .sspq-field-route-list-trigger:focus{
  border:0!important;
  background:rgba(212,175,55,.08)!important;
  color:#0f172a!important;
  box-shadow:none!important;
  transform:none!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list-number{
  grid-area:number!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  align-self:start!important;
  width:56px!important;
  height:56px!important;
  min-width:56px!important;
  margin:0!important;
  border-radius:12px!important;
  background:#d4af37!important;
  color:#0b2447!important;
  font-size:22px!important;
  font-weight:900!important;
  line-height:1!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list-copy{
  grid-area:copy!important;
  display:block!important;
  min-width:0!important;
  color:#0f172a!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list-copy strong{
  display:block!important;
  margin:0!important;
  color:#0f172a!important;
  font-size:20px!important;
  font-weight:900!important;
  line-height:1.25!important;
  overflow-wrap:anywhere!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list-copy small{
  display:block!important;
  margin-top:6px!important;
  color:#64748b!important;
  font-size:15px!important;
  font-weight:800!important;
  line-height:1.3!important;
  overflow-wrap:anywhere!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list-status{
  grid-area:status!important;
  display:block!important;
  justify-self:start!important;
  margin:0!important;
  color:#475569!important;
  font-size:14px!important;
  font-weight:900!important;
  line-height:1.3!important;
  text-align:left!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list-chevron{
  grid-area:chevron!important;
  align-self:center!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:24px!important;
  color:#0b2447!important;
  font-size:30px!important;
  font-weight:800!important;
  line-height:1!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-action-backdrop{
  background:rgba(8,29,58,.82)!important;
  border:0!important;
  border-radius:0!important;
  color:transparent!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-option-navigation{
  text-decoration:none!important;
}
@media(max-width:640px){
  .sspq-platform .sspq-field-route .sspq-field-route-list-trigger{
    grid-template-columns:52px minmax(0,1fr) 20px!important;
    column-gap:14px!important;
    min-height:122px!important;
    padding:16px!important;
  }
  .sspq-platform .sspq-field-route .sspq-field-route-list-number{
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    font-size:21px!important;
  }
  .sspq-platform .sspq-field-route .sspq-field-route-list-copy strong{font-size:19px!important}
  .sspq-platform .sspq-field-route .sspq-field-route-list-copy small{font-size:14px!important}
  .sspq-platform .sspq-field-route .sspq-field-route-list-status{font-size:13px!important}
}


/* SSPQ 2.0.731 - toutes les cartes Parcours restent en or clair, quel que soit le statut. */
.sspq-platform .sspq-field-route .sspq-field-route-list li,
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-to_do,
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-deferred,
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-en_route,
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-arrived,
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-in_progress,
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-completed,
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-impossible,
.sspq-platform .sspq-field-route .sspq-field-route-list li.is-current{
  border-color:#e7d9a1!important;
  background:#f4e9bc!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list li > .sspq-field-route-list-trigger,
.sspq-platform .sspq-field-route .sspq-field-route-list li > .sspq-field-route-list-trigger:hover,
.sspq-platform .sspq-field-route .sspq-field-route-list li > .sspq-field-route-list-trigger:active,
.sspq-platform .sspq-field-route .sspq-field-route-list li > .sspq-field-route-list-trigger:focus{
  background:#f4e9bc!important;
  color:var(--sspq-navy,#0b1f3a)!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list li .sspq-field-route-list-number{
  background:var(--sspq-navy,#0b1f3a)!important;
  color:var(--sspq-gold,#c9a227)!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list li .sspq-field-route-list-copy,
.sspq-platform .sspq-field-route .sspq-field-route-list li .sspq-field-route-list-copy strong,
.sspq-platform .sspq-field-route .sspq-field-route-list li .sspq-field-route-list-status,
.sspq-platform .sspq-field-route .sspq-field-route-list li .sspq-field-route-list-chevron{
  color:var(--sspq-navy,#0b1f3a)!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list li .sspq-field-route-list-copy small{
  color:rgba(11,31,58,.78)!important;
}


/* SSPQ 2.0.733 - gestion des passages : tableau unique pleine largeur et actions intégrées. */
.sspq-route-manage-modal-card{
  width:min(1420px,calc(100vw - 36px))!important;
  max-width:min(1420px,calc(100vw - 36px))!important;
}
.sspq-route-manage-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  width:100%;
}
.sspq-route-manage-toolbar .sspq-form-grid{
  display:inline-flex!important;
  width:auto!important;
  margin:0!important;
  gap:0!important;
}
.sspq-route-order-detached-form,
.sspq-route-delete-detached-form{
  display:none!important;
}
.sspq-route-manage-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  border:1px solid #d7e1ee;
  border-radius:14px;
  background:#fff;
}
.sspq-route-manage-table{
  width:100%;
  min-width:1080px;
  table-layout:auto;
  margin:0;
}
.sspq-route-manage-table th,
.sspq-route-manage-table td{
  vertical-align:middle;
  white-space:nowrap;
}
.sspq-route-manage-table th:nth-child(2),
.sspq-route-manage-table td:nth-child(2){
  min-width:250px;
  white-space:normal;
}
.sspq-route-manage-table th:nth-child(3),
.sspq-route-manage-table td:nth-child(3){
  min-width:140px;
  white-space:normal;
}
.sspq-route-manage-table th:last-child,
.sspq-route-manage-table td:last-child{
  min-width:190px;
}
.sspq-route-order-input{
  width:72px!important;
  max-width:72px!important;
  min-height:40px!important;
  box-sizing:border-box!important;
}
.sspq-route-manage-row-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
}
.sspq-route-manage-row-actions .sspq-btn{
  min-width:82px;
  justify-content:center;
}
@media(max-width:760px){
  .sspq-route-manage-modal-card{
    width:calc(100vw - 12px)!important;
    max-width:calc(100vw - 12px)!important;
  }
  .sspq-route-manage-toolbar{
    display:grid;
    grid-template-columns:1fr;
  }
  .sspq-route-manage-toolbar .sspq-form-grid,
  .sspq-route-manage-toolbar .sspq-btn{
    width:100%!important;
  }
}

/* SSPQ 2.0.734 — associations multiples, modification par période et bureau de zone. */
.sspq-client-site-bulk-form{
  margin-top:20px;
  padding:18px;
  border:1px solid #d7e1ee;
  border-radius:16px;
  background:#f8fafc;
}
.sspq-client-site-bulk-toolbar{
  display:grid;
  grid-template-columns:minmax(280px,1fr) auto;
  gap:12px;
  align-items:end;
  margin-bottom:14px;
}
.sspq-client-site-bulk-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  max-height:430px;
  overflow:auto;
  padding:4px;
}
.sspq-client-site-option{
  display:flex!important;
  align-items:flex-start;
  gap:12px;
  min-width:0;
  padding:13px;
  border:1px solid #d7e1ee;
  border-radius:12px;
  background:#fff;
  cursor:pointer;
}
.sspq-client-site-option[hidden]{display:none!important}
.sspq-client-site-option input{
  width:20px!important;
  height:20px!important;
  flex:0 0 20px;
  margin-top:2px;
}
.sspq-client-site-option span{min-width:0}
.sspq-client-site-option strong,
.sspq-client-site-option small{display:block}
.sspq-client-site-option small{
  margin-top:4px;
  color:#64748b;
  overflow-wrap:anywhere;
}
.sspq-client-site-bulk-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:14px;
}
.sspq-dispatch-period-zone{
  margin-top:22px;
  padding-top:20px;
  border-top:2px solid #d7e1ee;
}
.sspq-dispatch-period-zone h4{margin:0 0 6px}
.sspq-zone-office-geocode{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  grid-column:1/-1;
  padding:12px;
  border:1px solid #d7e1ee;
  border-radius:12px;
  background:#f8fafc;
}
@media(max-width:760px){
  .sspq-client-site-bulk-toolbar,
  .sspq-client-site-bulk-list{grid-template-columns:1fr}
  .sspq-client-site-bulk-footer{align-items:stretch;flex-direction:column}
  .sspq-client-site-bulk-footer .sspq-btn{width:100%}
}


/* SSPQ 2.0.735 — embauches simplifiées et modification des passages par période. */
.sspq-platform .sspq-hiring-document-delete-inline{
  display:flex;
  gap:8px;
  align-items:center;
  margin-top:8px;
  flex-wrap:wrap;
}
.sspq-platform .sspq-hiring-document-delete-inline input{
  min-width:210px;
  flex:1 1 210px;
}
.sspq-platform .sspq-dispatch-period-zone[data-sspq-dispatch-period-panel]{
  margin:0 0 18px;
  padding:16px;
  border:1px solid #d7dee8;
  border-radius:14px;
  background:#f7f9fc;
}
.sspq-platform .sspq-dispatch-period-zone[data-sspq-dispatch-period-panel] h4{
  margin:0 0 8px;
}
.sspq-platform .sspq-dispatch-period-zone[data-sspq-dispatch-period-panel] p{
  margin:0 0 12px;
}
@media (max-width: 720px){
  .sspq-platform .sspq-hiring-document-delete-inline{
    align-items:stretch;
  }
  .sspq-platform .sspq-hiring-document-delete-inline input,
  .sspq-platform .sspq-hiring-document-delete-inline button{
    width:100%;
  }
}


/* SSPQ 2.0.736 - ordre propre aux points de chaque itinéraire. */
.sspq-route-points-order-wrap{overflow-x:auto;margin:14px 0 18px}
.sspq-route-points-order-table{width:100%;min-width:620px}
.sspq-route-points-order-table th:first-child,
.sspq-route-points-order-table td:first-child{width:90px;text-align:center}
.sspq-route-points-order-table th:nth-child(2),
.sspq-route-points-order-table td:nth-child(2){width:110px}
.sspq-route-points-order-table input[type=checkbox]{width:22px;height:22px}
.sspq-route-point-order{width:86px;min-width:86px;padding:9px 10px;text-align:center}
.sspq-route-point-order:disabled{opacity:.45;background:#eef2f6}
@media (max-width:700px){
  .sspq-route-points-order-table{min-width:540px}
}

/* SSPQ 2.0.737 — historique personnel des demandes */
.sspq-request-history{margin-top:22px;}
.sspq-request-history-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;}
.sspq-request-history-card{border:1px solid var(--sspq-border,#d7dee8);border-radius:14px;padding:14px;background:#fff;}
.sspq-request-history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.sspq-request-history-card p{margin:5px 0;overflow-wrap:anywhere;}
.sspq-request-history-card small{display:block;margin-top:10px;color:#64748b;}

/* SSPQ 2.0.737 — formulaire mobile de création de quart */
#sspq-shift-form .sspq-patrol-route-picker{min-width:0;width:100%;overflow:visible;}
#sspq-shift-form .sspq-patrol-route-options{min-height:96px;max-height:420px;overflow-y:auto;overflow-x:hidden;}
#sspq-shift-form .sspq-vehicle-inspection-request{display:grid!important;grid-template-columns:26px minmax(0,1fr);align-items:start;gap:10px;width:100%;min-width:0;white-space:normal;}
#sspq-shift-form .sspq-vehicle-inspection-request>input{grid-column:1;margin-top:4px;}
#sspq-shift-form .sspq-checkline-copy{grid-column:2;display:flex;flex-direction:column;gap:6px;min-width:0;width:100%;line-height:1.28;overflow-wrap:normal;word-break:normal;}
#sspq-shift-form .sspq-checkline-copy strong,#sspq-shift-form .sspq-checkline-copy small{display:block;min-width:0;width:100%;white-space:normal;overflow-wrap:break-word;word-break:normal;}
@media(max-width:760px){
  #sspq-shift-form{padding-bottom:calc(190px + env(safe-area-inset-bottom,0px))!important;}
  #sspq-shift-form .sspq-patrol-route-options{min-height:140px;max-height:46vh;}
  #sspq-shift-form .sspq-shift-modal-actions{position:sticky;bottom:0;z-index:20;background:#fff;padding:12px 0 calc(8px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 24px rgba(15,23,42,.08);}
}

/* SSPQ 2.0.737 — invitation candidat dans une fenêtre */
.sspq-hiring-create-launch{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;}
.sspq-hiring-create-launch h3,.sspq-hiring-create-launch p{margin:0;}
.sspq-hiring-create-launch p{margin-top:6px;color:#64748b;}
.sspq-hiring-invitation-modal .sspq-modal-card{max-height:92vh;overflow:auto;}
.sspq-hiring-invitation-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;padding-top:14px;border-top:1px solid var(--sspq-border,#d7dee8);}
@media(max-width:760px){.sspq-hiring-create-launch{align-items:stretch;flex-direction:column}.sspq-hiring-create-launch .sspq-button{width:100%;justify-content:center}.sspq-hiring-invitation-actions{position:sticky;bottom:0;background:#fff;display:grid;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}.sspq-hiring-invitation-actions .sspq-button{width:100%;justify-content:center}}

/* SSPQ 2.0.737 — séquences à effectuer et complétées */
.sspq-field-route-list+.sspq-field-route-list{margin-top:16px;}
.sspq-field-route-list-completed{background:#f7fbf8;}
.sspq-field-route-list-completed .sspq-field-route-list-head{border-bottom-color:#bde5c9;}
.sspq-field-route-list-completed li{opacity:.9;}
.sspq-field-route-list-empty{margin:0;padding:18px;color:#64748b;text-align:center;font-weight:700;}

/* SSPQ 2.0.737 — relève sans remise à zéro */
.sspq-field-route-handoff{margin-top:16px;border:1px solid #d7dee8;border-radius:16px;background:#fff;overflow:hidden;}
.sspq-route-segment-list{display:grid;gap:8px;padding:14px;}
.sspq-route-segment-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dbe4ef;border-radius:12px;padding:12px;background:#f8fafc;}
.sspq-route-segment-card>div{display:flex;flex-direction:column;gap:4px;min-width:0}.sspq-route-segment-card small{color:#64748b;overflow-wrap:anywhere}.sspq-route-segment-card.status-active{border-color:#d6ad22;background:#fffaf0}.sspq-route-segment-card.status-completed{background:#f0fdf4;border-color:#bbf7d0}.sspq-route-handoff-form{padding:0 14px 14px}.sspq-route-handoff-form>summary{list-style:none;cursor:pointer}.sspq-route-handoff-form>form{margin-top:12px}.sspq-field-route-handoff>.sspq-muted{padding:0 14px 14px;margin:0;}

/* SSPQ 2.0.737 — courriels de masse aux employés */
.sspq-mass-email-panel{grid-column:1/-1;min-width:0;border:1px solid #d7dee8;border-radius:18px;background:#fff;padding:20px;}
.sspq-mass-email-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px;align-items:start;}
.sspq-mass-email-form{display:grid;gap:14px;min-width:0;}
.sspq-mass-email-form>label{display:grid;gap:7px;font-weight:800;color:#0b2545;min-width:0;}
.sspq-mass-email-form input[type=text],.sspq-mass-email-form input[type=search],.sspq-mass-email-form input[type=file],.sspq-mass-email-form textarea{width:100%;min-width:0;box-sizing:border-box;}
.sspq-mass-email-form label>small{font-weight:500;color:#64748b;}
.sspq-mass-email-recipients{border:1px solid #d7dee8;border-radius:14px;background:#f8fafc;padding:14px;min-width:0;}
.sspq-mass-email-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
.sspq-mass-email-picker-head>div{display:grid;gap:3px;min-width:0;}.sspq-mass-email-picker-head small{color:#64748b;}
.sspq-mass-email-search{margin-bottom:10px;}
.sspq-mass-email-employee-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:430px;overflow:auto;padding:2px;}
.sspq-mass-email-employee{display:grid!important;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:10px;padding:10px;border:1px solid #dbe4ef;border-radius:10px;background:#fff;cursor:pointer;min-width:0;}
.sspq-mass-email-employee[hidden]{display:none!important;}
.sspq-mass-email-employee input{width:20px!important;height:20px!important;min-width:20px!important;margin:2px 0 0!important;}
.sspq-mass-email-employee span{display:grid;gap:2px;min-width:0;}.sspq-mass-email-employee strong,.sspq-mass-email-employee small{overflow-wrap:anywhere;}.sspq-mass-email-employee small{color:#64748b;font-weight:500;}
.sspq-mass-email-submit{display:flex;justify-content:flex-end;}
.sspq-mass-email-history{display:grid;gap:10px;max-height:760px;overflow:auto;min-width:0;}.sspq-mass-email-history h3{margin:0;}
.sspq-mass-email-history-card{border:1px solid #d7dee8;border-radius:14px;padding:13px;background:#f8fafc;min-width:0;}
.sspq-mass-email-history-card.status-completed{border-color:#bbf7d0;background:#f0fdf4;}.sspq-mass-email-history-card.status-failed{border-color:#fecaca;background:#fff7f7;}
.sspq-mass-email-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}.sspq-mass-email-history-head strong{min-width:0;overflow-wrap:anywhere;}
.sspq-mass-email-history-card p{margin:9px 0;color:#475569;overflow-wrap:anywhere;}.sspq-mass-email-history-card>small{display:block;margin-top:9px;color:#64748b;}
.sspq-mass-email-history-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0;}.sspq-mass-email-history-card dl div{border:1px solid #dbe4ef;border-radius:8px;padding:7px;background:#fff;}.sspq-mass-email-history-card dt{font-size:11px;color:#64748b;}.sspq-mass-email-history-card dd{margin:2px 0 0;font-weight:900;color:#0b2545;}
@media(max-width:900px){.sspq-mass-email-layout{grid-template-columns:1fr}.sspq-mass-email-history{max-height:none}}
@media(max-width:640px){.sspq-mass-email-panel{padding:14px}.sspq-mass-email-picker-head{align-items:stretch;flex-direction:column}.sspq-mass-email-picker-head .sspq-btn{width:100%;justify-content:center}.sspq-mass-email-employee-list{grid-template-columns:1fr;max-height:52vh}.sspq-mass-email-submit .sspq-btn{width:100%;justify-content:center}}

/* ======================================================================
   SSPQ 2.0.738 — neuf améliorations opérationnelles
   ====================================================================== */

/* 1. Actions des feuilles de route : aucune action coupée, retour adaptatif. */
.sspq-route-admin-table th:last-child,
.sspq-route-admin-table td:last-child{min-width:360px;width:auto;overflow:visible!important}
.sspq-route-row-actions{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important;min-width:0!important;max-width:100%!important;overflow:visible!important}
.sspq-route-row-actions>form,.sspq-route-row-actions>a,.sspq-route-row-actions>button{flex:0 1 auto!important;max-width:100%!important;margin:0!important}
.sspq-route-row-actions .sspq-btn{white-space:nowrap!important;min-height:36px!important}
.sspq-route-delete-form .sspq-btn{min-width:38px!important;padding-inline:12px!important;font-size:20px!important;line-height:1!important}
.sspq-route-table-wrap{overflow-x:auto!important;overflow-y:visible!important;padding-bottom:8px}
@media(max-width:1180px){
  .sspq-route-admin-table th:last-child,.sspq-route-admin-table td:last-child{min-width:260px}
  .sspq-route-row-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .sspq-route-row-actions>.sspq-btn,.sspq-route-row-actions>form,.sspq-route-row-actions>form .sspq-btn{width:100%!important}
}
@media(max-width:767px){
  .sspq-route-row-actions{grid-template-columns:1fr!important}
  .sspq-route-row-actions>.sspq-btn,.sspq-route-row-actions>form,.sspq-route-row-actions>form .sspq-btn{width:100%!important;justify-content:center!important}
}

/* 2. Vérification d’adresse et carte de confirmation. */
.sspq-address-verifier{border:1px solid #cbd5e1;border-radius:14px;padding:16px;background:#f8fafc;display:grid;gap:12px}
.sspq-address-verifier-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sspq-address-verifier-result{display:none;border-radius:10px;padding:12px 14px;border:1px solid transparent}
.sspq-address-verifier-result:not(:empty){display:block}
.sspq-address-verifier-result p{margin:5px 0}.sspq-address-verifier-result small{display:block;margin:6px 0}
.sspq-address-verifier-result.is-success{background:#ecfdf5;border-color:#86efac;color:#14532d}
.sspq-address-verifier-result.is-warning{background:#fffbeb;border-color:#fcd34d;color:#78350f}
.sspq-address-verifier-result.is-error{background:#fef2f2;border-color:#fca5a5;color:#7f1d1d}
.sspq-address-verifier-result.is-loading{background:#eff6ff;border-color:#93c5fd;color:#1e3a8a}
.sspq-address-verifier-map{height:260px;min-height:260px;border-radius:12px;overflow:hidden;border:1px solid #cbd5e1;background:#e2e8f0}

/* 3. Passages réellement effectués : vert, verrouillés, consultables. */
.sspq-dispatch-card.is-completed{background:#dcfce7!important;border-color:#22c55e!important;border-left:5px solid #16a34a!important;color:#14532d!important;cursor:pointer!important}
.sspq-dispatch-card.is-completed .sspq-dispatch-card-main small{color:#166534!important;font-weight:700}
.sspq-dispatch-card.is-locked{box-shadow:inset 0 0 0 1px rgba(15,23,42,.05)}
.sspq-dispatch-card.is-locked::after{content:"🔒";position:absolute;right:8px;top:8px;font-size:14px;line-height:1}
.sspq-dispatch-card.is-locked .sspq-dispatch-select{display:none!important}

/* 4. Icônes d’état de l’horaire : SVG net, sans cercle ni pastille. */
.sspq-shift-status-icon,
.sspq-shift-status-icon.is-confirmed,
.sspq-shift-status-icon.is-unseen,
.sspq-shift-status-icon.is-seen,
.sspq-shift-status-icon.is-draft,
.sspq-shift-status-icon.is-archive{
  width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;
  padding:2px!important;border:0!important;border-radius:0!important;background:transparent!important;
  box-shadow:none!important;outline:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
}
.sspq-shift-status-icon::before{display:none!important;content:none!important}
.sspq-shift-status-icon svg{width:27px!important;height:27px!important;max-width:none!important;max-height:none!important;display:block!important;overflow:visible!important;fill:none!important;stroke:currentColor!important;stroke-width:2.15!important;shape-rendering:geometricPrecision!important;vector-effect:non-scaling-stroke!important}
.sspq-shift-status-icon.is-confirmed svg{stroke-width:2.55!important}
@media(max-width:767px){.sspq-shift-status-icon{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important}.sspq-shift-status-icon svg{width:25px!important;height:25px!important}}

/* 5. Vidéos de formation : plein écran natif ou repli fiable. */
body.sspq-training-fullscreen-open{overflow:hidden!important;overscroll-behavior:none}
.sspq-training-video-shell.is-fullscreen-fallback{position:fixed!important;inset:0!important;z-index:2147483000!important;width:100vw!important;height:100dvh!important;background:#000!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)!important}
.sspq-training-video-shell.is-fullscreen-fallback video{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;background:#000!important}
.sspq-training-video-shell.is-fullscreen-fallback [data-sspq-training-fullscreen]{position:fixed!important;top:max(14px,env(safe-area-inset-top))!important;right:max(14px,env(safe-area-inset-right))!important;z-index:2147483001!important;width:auto!important}

/* 6-7. Lecture seule réelle et simulation administrative isolée. */
.sspq-route-test-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#7c2d12;color:#fff;border-radius:12px;padding:14px 16px;margin-bottom:16px;letter-spacing:.02em}
.sspq-route-test-card{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid #cbd5e1;border-left:5px solid #64748b;border-radius:12px;padding:14px;margin:10px 0;background:#fff}
.sspq-route-test-card>div:first-child{display:flex;align-items:center;gap:12px;min-width:0}.sspq-route-test-card strong{display:block}.sspq-route-test-card small{display:block;color:#64748b}
.sspq-route-test-card.status-completed{border-left-color:#16a34a;background:#f0fdf4}.sspq-route-test-card.status-in_progress{border-left-color:#2563eb;background:#eff6ff}.sspq-route-test-card.status-arrived{border-left-color:#d4af37;background:#fffbeb}
@media(max-width:700px){.sspq-route-test-banner,.sspq-route-test-card{align-items:stretch;flex-direction:column}.sspq-route-test-card .sspq-route-row-actions{width:100%}}

/* 9. Registre d’accès et inspections obligatoires. */
.sspq-access-assets{display:grid;gap:18px}.sspq-access-asset-form{box-shadow:none!important;background:#f8fafc!important}
.sspq-access-assets-table input,.sspq-access-assets-table select,.sspq-access-assets-table textarea{min-width:110px;width:100%}
.sspq-access-inspection{border:2px solid #d4af37;border-radius:16px;background:#fffdf5;padding:16px;margin:16px 0}.sspq-access-inspection.is-complete{border-color:#22c55e;background:#f0fdf4}
.sspq-access-inspection-list{display:grid;gap:12px;margin:14px 0}.sspq-access-inspection-list fieldset{border:1px solid #cbd5e1;border-radius:12px;padding:12px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr);gap:10px;background:#fff}.sspq-access-inspection-list legend{font-weight:800;padding:0 6px}.sspq-access-inspection-list fieldset>small{grid-column:1/-1;color:#64748b}.sspq-access-inspection-list label{display:grid;gap:5px}
@media(max-width:700px){.sspq-access-inspection-list fieldset{grid-template-columns:1fr}.sspq-access-assets-table{min-width:980px}}
.sspq-access-inspection-history .state-missing td{background:#fff1f2;color:#881337;font-weight:700}
.sspq-access-inspection-history .state-damaged td{background:#fffbeb;color:#78350f;font-weight:700}
.sspq-access-inspection-history .state-present td:first-child{border-left:4px solid #22c55e}
@media(max-width:700px){.sspq-route-test>.sspq-panel-head{align-items:stretch;flex-direction:column}.sspq-route-test>.sspq-panel-head>.sspq-btn{width:100%;justify-content:center}}


/* SSPQ 2.0.739 — point de destination du site : plein écran, plan/satellite et repère déplaçable. */
.sspq-address-map-shell{position:relative;border:1px solid #cbd5e1;border-radius:14px;overflow:hidden;background:#fff;isolation:isolate}
.sspq-address-map-shell[hidden]{display:none!important}
.sspq-address-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px;background:#f8fafc;border-bottom:1px solid #cbd5e1;position:relative;z-index:1001}
.sspq-address-map-layers{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sspq-address-map-toolbar .sspq-btn.is-active{background:#0b1f3a!important;color:#fff!important;border-color:#0b1f3a!important}
.sspq-address-verifier-map{height:420px;min-height:320px;border:0!important;border-radius:0!important;overflow:hidden;background:#e2e8f0}
.sspq-address-map-help{padding:10px 12px;background:#fffbeb;border-top:1px solid #fcd34d;color:#713f12;font-size:.92rem;font-weight:650}
.sspq-address-map-shell .leaflet-marker-icon{cursor:grab}
.sspq-address-map-shell .leaflet-marker-icon:active{cursor:grabbing}
body.sspq-address-map-fullscreen-open{overflow:hidden!important;overscroll-behavior:none}
.sspq-address-map-shell:fullscreen,.sspq-address-map-shell:-webkit-full-screen,.sspq-address-map-shell.is-fullscreen-fallback{background:#fff!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;border:0!important;border-radius:0!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important}
.sspq-address-map-shell.is-fullscreen-fallback{position:fixed!important;inset:0!important;z-index:2147483000!important;padding-top:env(safe-area-inset-top)!important;padding-right:env(safe-area-inset-right)!important;padding-bottom:env(safe-area-inset-bottom)!important;padding-left:env(safe-area-inset-left)!important}
.sspq-address-map-shell:fullscreen .sspq-address-verifier-map,.sspq-address-map-shell:-webkit-full-screen .sspq-address-verifier-map,.sspq-address-map-shell.is-fullscreen-fallback .sspq-address-verifier-map{width:100%!important;height:100%!important;min-height:0!important}
.sspq-address-map-shell:fullscreen .sspq-address-map-toolbar,.sspq-address-map-shell:-webkit-full-screen .sspq-address-map-toolbar,.sspq-address-map-shell.is-fullscreen-fallback .sspq-address-map-toolbar{padding:12px max(12px,env(safe-area-inset-right)) 12px max(12px,env(safe-area-inset-left))}
@media(max-width:767px){
  .sspq-address-verifier-map{height:340px;min-height:280px}
  .sspq-address-map-toolbar{align-items:stretch;flex-direction:column}
  .sspq-address-map-layers{display:grid;grid-template-columns:1fr 1fr}
  .sspq-address-map-toolbar .sspq-btn{width:100%;justify-content:center}
  .sspq-address-map-shell:fullscreen .sspq-address-map-toolbar,.sspq-address-map-shell:-webkit-full-screen .sspq-address-map-toolbar,.sspq-address-map-shell.is-fullscreen-fallback .sspq-address-map-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .sspq-address-map-shell:fullscreen .sspq-address-map-layers,.sspq-address-map-shell:-webkit-full-screen .sspq-address-map-layers,.sspq-address-map-shell.is-fullscreen-fallback .sspq-address-map-layers{display:flex;flex-wrap:nowrap}
  .sspq-address-map-shell:fullscreen [data-sspq-address-fullscreen],.sspq-address-map-shell:-webkit-full-screen [data-sspq-address-fullscreen],.sspq-address-map-shell.is-fullscreen-fallback [data-sspq-address-fullscreen]{width:auto}
}

/* SSPQ 2.0.740 — suppression ciblée d'une série de passages sur une période. */
.sspq-platform .sspq-dispatch-period-delete-zone{
  margin-top:20px;
  padding-top:18px;
  border-top:2px solid #e2e8f0;
}
.sspq-platform .sspq-dispatch-period-delete-zone>h4{
  margin:0 0 6px;
}
.sspq-platform .sspq-dispatch-period-delete-zone>p{
  margin:0 0 12px;
}
.sspq-platform .sspq-dispatch-period-delete-zone form{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
.sspq-platform .sspq-dispatch-period-delete-panel{
  padding:16px;
  border:1px solid #fecaca;
  border-radius:14px;
  background:#fff7f7;
}
.sspq-platform .sspq-dispatch-period-delete-panel>p{
  margin:0 0 12px;
  font-weight:700;
  color:#7f1d1d;
}
.sspq-platform .sspq-dispatch-period-delete-actions{
  display:flex;
  justify-content:flex-end;
  margin:12px 0 8px;
}
@media (max-width:720px){
  .sspq-platform .sspq-dispatch-period-delete-actions,
  .sspq-platform .sspq-dispatch-period-delete-actions .sspq-btn{
    width:100%;
  }
}


/* SSPQ 2.0.741 — détail du calcul des feuilles de route. */
.sspq-route-diagnostic-breakdown{display:block;margin-top:4px;color:#64748b;line-height:1.35;white-space:normal}
.sspq-route-diagnostic-detail{background:#f8fafc;color:#334155;line-height:1.55}
.sspq-route-diagnostic-detail a{display:inline-block;margin-left:10px;font-weight:700}
.sspq-route-diagnostic-detail .sspq-btn{margin-left:8px}

/* SSPQ 2.0.742 - détail chronologique des feuilles de route */
.sspq-route-diagnostic-actions{display:flex;flex-direction:column;gap:8px;min-width:250px}
.sspq-route-diagnostic-actions .sspq-btn,.sspq-route-diagnostic-actions form{width:100%;margin:0}
.sspq-route-diagnostic-actions form .sspq-btn{justify-content:center}
.sspq-route-timeline-modal .sspq-modal-card{width:min(1180px,calc(100vw - 48px))!important;max-width:1180px!important}
.sspq-route-timeline-source{margin:12px 0 18px;padding:12px 14px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e3a5f;line-height:1.45}
.sspq-route-timeline-heading{margin:20px 0 10px;color:var(--sspq-navy);font-size:18px}
.sspq-route-timeline-summary{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.sspq-route-timeline-summary span{display:inline-flex;align-items:center;gap:4px;padding:7px 10px;border:1px solid #dbe4ee;border-radius:999px;background:#f8fafc;color:#334155;font-size:13px}
.sspq-route-timeline-list{position:relative;display:grid;gap:8px;margin:0 0 18px}
.sspq-route-timeline-list:before{content:"";position:absolute;left:39px;top:18px;bottom:18px;width:2px;background:#dbe4ee}
.sspq-route-timeline-row{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) 190px 150px;gap:14px;align-items:center;min-height:72px;padding:12px 14px;border:1px solid #dbe4ee;border-radius:14px;background:#fff}
.sspq-route-timeline-badge{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:52px;min-height:34px;padding:5px 7px;border:3px solid #fff;border-radius:999px;background:var(--sspq-navy);color:#fff;font-size:10px;font-weight:900;line-height:1;text-align:center;box-shadow:0 0 0 1px #dbe4ee}
.sspq-route-timeline-row.is-site .sspq-route-timeline-badge{background:var(--sspq-gold);color:var(--sspq-navy);font-size:15px}
.sspq-route-timeline-row.is-travel{background:#f8fafc}
.sspq-route-timeline-row.is-waiting{background:#fff9e8;border-color:#ead58e}
.sspq-route-timeline-row.is-return{background:#eef6ff;border-color:#bfdbfe}
.sspq-route-timeline-row.is-buffer{background:#f4f6f8}
.sspq-route-timeline-row.state-late{border-color:#dc2626;background:#fff1f2}
.sspq-route-timeline-row.state-warning:not(.is-waiting){border-color:#d6a514;background:#fffbeb}
.sspq-route-timeline-main{min-width:0}
.sspq-route-timeline-main strong{display:block;color:var(--sspq-navy);font-size:14px;line-height:1.3}
.sspq-route-timeline-main small{display:block;margin-top:4px;color:#64748b;line-height:1.4;white-space:normal}
.sspq-route-timeline-time{text-align:right;color:var(--sspq-navy)}
.sspq-route-timeline-time strong,.sspq-route-timeline-time small{display:block}
.sspq-route-timeline-time small{margin-top:4px;color:#64748b;font-weight:700}
.sspq-route-timeline-status{justify-self:end;max-width:150px;padding:6px 9px;border-radius:999px;background:#e8f7ee;color:#17633a;font-size:11px;font-weight:900;text-align:center;line-height:1.25}
.sspq-route-timeline-row.state-warning .sspq-route-timeline-status{background:#fff1bf;color:#765600}
.sspq-route-timeline-row.state-late .sspq-route-timeline-status{background:#fee2e2;color:#991b1b}
.sspq-route-timeline-proposal{margin-top:18px;border:1px solid #dbe4ee;border-radius:14px;background:#f8fafc;overflow:hidden}
.sspq-route-timeline-proposal>summary{cursor:pointer;padding:14px 16px;color:var(--sspq-navy);font-weight:900;list-style-position:inside}
.sspq-route-timeline-proposal[open]>summary{border-bottom:1px solid #dbe4ee;background:#fff}
.sspq-route-timeline-proposal>.sspq-route-timeline-heading,.sspq-route-timeline-proposal>.sspq-route-timeline-summary,.sspq-route-timeline-proposal>.sspq-route-timeline-list,.sspq-route-timeline-proposal>.sspq-note-block{margin-left:16px;margin-right:16px}
.sspq-route-timeline-footer{margin-top:18px;padding-top:14px;border-top:1px solid #dbe4ee}
.sspq-route-timeline-footer>p{color:#475569;line-height:1.45}
.sspq-route-timeline-footer .sspq-modal-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center}
.sspq-route-timeline-footer .sspq-modal-actions form{margin:0}
@media(max-width:900px){
  .sspq-route-timeline-row{grid-template-columns:56px minmax(0,1fr) 160px}
  .sspq-route-timeline-status{grid-column:2 / -1;justify-self:start;max-width:none}
  .sspq-route-timeline-list:before{left:35px}
}
@media(max-width:640px){
  .sspq-route-timeline-modal{align-items:flex-end!important;padding:0!important}
  .sspq-route-timeline-modal .sspq-modal-card{width:100%!important;max-width:100%!important;max-height:94vh!important;border-radius:18px 18px 0 0!important;padding:16px!important}
  .sspq-route-timeline-row{grid-template-columns:50px minmax(0,1fr);gap:10px;padding:11px}
  .sspq-route-timeline-badge{width:44px;min-height:32px;font-size:9px}
  .sspq-route-timeline-list:before{left:32px}
  .sspq-route-timeline-time{grid-column:2;text-align:left;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
  .sspq-route-timeline-time strong,.sspq-route-timeline-time small{display:inline;margin:0}
  .sspq-route-timeline-status{grid-column:2}
  .sspq-route-timeline-footer .sspq-modal-actions{display:grid;grid-template-columns:1fr}
  .sspq-route-timeline-footer .sspq-modal-actions .sspq-btn,.sspq-route-timeline-footer .sspq-modal-actions form{width:100%}
  .sspq-route-timeline-footer .sspq-modal-actions form .sspq-btn{justify-content:center}
}

/* SSPQ 2.0.744 - tracé routier visible et marqueurs superposés */
.sspq-route-map-card{width:min(1480px,96vw);max-height:94vh;overflow:auto}
.sspq-route-map-shell{display:grid;gap:12px;min-height:0}
.sspq-route-map-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid #d7e1ee;border-radius:14px;background:#f8fafc}
.sspq-route-map-view-switch,.sspq-route-map-layer-switch{display:flex;flex-wrap:wrap;gap:8px}
.sspq-route-map-status{padding:10px 12px;border-radius:12px;border:1px solid #cbd5e1;background:#f8fafc;color:#334155;font-weight:700}
.sspq-route-map-status.is-loading{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}
.sspq-route-map-status.is-success{background:#effaf3;border-color:#b9e4c7;color:#166534}
.sspq-route-map-status.is-warning{background:#fff8e7;border-color:#efd79d;color:#854d0e}
.sspq-route-map-status.is-error{background:#fff1f0;border-color:#f0b8b2;color:#991b1b}
.sspq-route-map-summary{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:8px}
.sspq-route-map-summary span{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid #d7e1ee;border-radius:12px;background:#fff}
.sspq-route-map-summary small{color:#64748b;font-weight:700}
.sspq-route-map-summary strong{color:#0b1f3a;font-size:15px}
.sspq-route-map-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,.9fr);gap:12px;min-height:560px}
.sspq-route-map-canvas{min-height:560px;border:1px solid #cbd5e1;border-radius:14px;overflow:hidden;background:#e5e7eb}
.sspq-route-map-stops{display:flex;flex-direction:column;gap:8px;max-height:560px;overflow:auto;padding-right:4px}
.sspq-route-map-stop{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;text-align:left;border:1px solid #d7e1ee;border-radius:12px;background:#fff;padding:10px;cursor:pointer;color:#0f172a}
.sspq-route-map-stop:hover,.sspq-route-map-stop:focus{border-color:#0b2748;box-shadow:0 0 0 2px rgba(11,39,72,.12);outline:none}
.sspq-route-map-stop.is-warning{border-color:#d6a91c;background:#fffdf5}
.sspq-route-map-stop.is-late{border-color:#b91c1c;background:#fff5f5}
.sspq-route-map-stop-order{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#0b2748;color:#fff;font-weight:900}
.sspq-route-map-stop-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.sspq-route-map-stop-main small{color:#64748b;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.sspq-route-map-stop-main strong{color:#0b1f3a;white-space:normal}
.sspq-route-map-stop-main em{font-style:normal;color:#475569;font-size:13px}
.sspq-route-map-stop-main span{color:#334155;font-size:13px;line-height:1.4}
.sspq-route-map-legend{display:flex;flex-wrap:wrap;gap:14px;color:#475569;font-weight:700;font-size:13px}
.sspq-route-map-legend span{display:inline-flex;align-items:center;gap:6px}
.sspq-route-map-legend i{display:inline-block;width:16px;height:16px;border-radius:50%;background:#0b2748}
.sspq-route-map-legend i.is-stop{background:#d6a91c}
.sspq-route-map-legend i.is-route{width:28px;height:5px;border-radius:999px;background:#2563eb}
.sspq-route-map-marker-wrap{background:transparent!important;border:0!important;overflow:visible!important}
.sspq-route-map-marker{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px rgba(15,23,42,.45);background:#d6a91c;color:#071529;font-weight:900;font-size:14px}
.sspq-route-map-marker.is-office{background:#0b2748;color:#fff}
.sspq-route-map-marker.is-warning{background:#f59e0b;color:#111827}
.sspq-route-map-marker.is-late{background:#b91c1c;color:#fff}
.sspq-route-map-popup{display:flex;flex-direction:column;gap:4px;min-width:220px;line-height:1.35}
.sspq-route-map-popup strong{color:#0b1f3a;font-size:14px}
.sspq-route-map-popup span{color:#334155}
.sspq-route-map-popup-status{font-weight:800}
.leaflet-pane.leaflet-sspqRouteMapCasing-pane,.leaflet-pane.leaflet-sspqRouteMapLine-pane{pointer-events:none!important}
.sspq-route-map-road-casing{stroke:#fff!important;stroke-width:13!important;stroke-opacity:.96!important}
.sspq-route-map-road-line{stroke:#0b5fff!important;stroke-width:8!important;stroke-opacity:1!important;filter:drop-shadow(0 2px 2px rgba(15,23,42,.38))}
.sspq-route-map-direct-line{stroke:#b45309!important;stroke-width:4!important;stroke-opacity:.9!important}
.sspq-route-map-marker.is-overlap{box-shadow:0 3px 10px rgba(15,23,42,.58),0 0 0 2px rgba(255,255,255,.9)}
body.sspq-route-map-fullscreen-open{overflow:hidden!important}
.sspq-route-map-shell:fullscreen,.sspq-route-map-shell:-webkit-full-screen,.sspq-route-map-shell.is-fullscreen-fallback{background:#fff;padding:12px;overflow:hidden;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto}
.sspq-route-map-shell.is-fullscreen-fallback{position:fixed;inset:0;z-index:2147483647}
.sspq-route-map-shell:fullscreen .sspq-route-map-layout,.sspq-route-map-shell:-webkit-full-screen .sspq-route-map-layout,.sspq-route-map-shell.is-fullscreen-fallback .sspq-route-map-layout{min-height:0;height:100%}
.sspq-route-map-shell:fullscreen .sspq-route-map-canvas,.sspq-route-map-shell:-webkit-full-screen .sspq-route-map-canvas,.sspq-route-map-shell.is-fullscreen-fallback .sspq-route-map-canvas{min-height:0;height:100%}
.sspq-route-map-shell:fullscreen .sspq-route-map-stops,.sspq-route-map-shell:-webkit-full-screen .sspq-route-map-stops,.sspq-route-map-shell.is-fullscreen-fallback .sspq-route-map-stops{max-height:none;height:100%}
@media (max-width:1000px){
  .sspq-route-map-summary{grid-template-columns:repeat(2,minmax(130px,1fr))}
  .sspq-route-map-layout{grid-template-columns:1fr;min-height:0}
  .sspq-route-map-canvas{min-height:480px}
  .sspq-route-map-stops{max-height:360px}
  .sspq-route-map-shell:fullscreen,.sspq-route-map-shell:-webkit-full-screen,.sspq-route-map-shell.is-fullscreen-fallback{overflow:auto;display:block}
  .sspq-route-map-shell:fullscreen .sspq-route-map-layout,.sspq-route-map-shell:-webkit-full-screen .sspq-route-map-layout,.sspq-route-map-shell.is-fullscreen-fallback .sspq-route-map-layout{height:auto}
  .sspq-route-map-shell:fullscreen .sspq-route-map-canvas,.sspq-route-map-shell:-webkit-full-screen .sspq-route-map-canvas,.sspq-route-map-shell.is-fullscreen-fallback .sspq-route-map-canvas{height:62vh;min-height:360px}
  .sspq-route-map-shell:fullscreen .sspq-route-map-stops,.sspq-route-map-shell:-webkit-full-screen .sspq-route-map-stops,.sspq-route-map-shell.is-fullscreen-fallback .sspq-route-map-stops{height:auto;max-height:none;margin-top:12px}
}
@media (max-width:640px){
  .sspq-route-map-card{width:100%;max-height:100vh;border-radius:0}
  .sspq-route-map-toolbar{align-items:stretch}
  .sspq-route-map-view-switch,.sspq-route-map-layer-switch{width:100%}
  .sspq-route-map-view-switch .sspq-btn,.sspq-route-map-layer-switch .sspq-btn{flex:1}
  .sspq-route-map-summary{grid-template-columns:1fr 1fr}
  .sspq-route-map-layout{gap:8px}
  .sspq-route-map-canvas{min-height:420px}
}

/* SSPQ 2.0.745 — édition des sites directement dans chaque section */
.sspq-sites .sspq-tab-panel>.sspq-panel>.sspq-inline-form{
  display:block;
  width:100%;
  box-sizing:border-box;
  margin:0;
}
.sspq-sites .sspq-tab-panel>.sspq-panel>.sspq-inline-form .sspq-form-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;
}
.sspq-sites .sspq-tab-panel>.sspq-panel>.sspq-inline-form .sspq-form-grid>.wide{
  grid-column:1/-1;
}
.sspq-sites .sspq-tab-panel>.sspq-panel>.sspq-inline-form input:not([type="checkbox"]):not([type="radio"]),
.sspq-sites .sspq-tab-panel>.sspq-panel>.sspq-inline-form select,
.sspq-sites .sspq-tab-panel>.sspq-panel>.sspq-inline-form textarea{
  width:100%;
  box-sizing:border-box;
}
.sspq-sites .sspq-tab-panel>.sspq-panel>.sspq-inline-form>button[type="submit"]{
  margin-top:12px;
}
@media(max-width:760px){
  .sspq-sites .sspq-tab-panel>.sspq-panel>.sspq-inline-form .sspq-form-grid{grid-template-columns:1fr}
}

/* SSPQ 2.0.746 — sélecteur unifié des tests d’opérations. */
.sspq-test-type-choice{margin-bottom:18px;max-width:560px}.sspq-test-mode-panel{border-top:1px solid #dbe3ee;padding-top:18px}.sspq-test-mode-panel[hidden]{display:none!important}


/* SSPQ 2.0.747 — pagination configurable des listes Employés et Sites. */
.sspq-per-page-field{min-width:132px}
.sspq-sites-filters .sspq-per-page-field span{display:block!important;margin-bottom:6px;font-weight:800;color:var(--sspq-navy)}
@media(max-width:860px){.sspq-per-page-field{width:100%;min-width:0}.sspq-per-page-field select{width:100%;box-sizing:border-box}}

/* SSPQ 2.0.747 — plein écran des cartes de géorepérage */
.sspq-geofence-tools.is-geofence-map-fullscreen{
  position:fixed!important;
  inset:0!important;
  z-index:100000!important;
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  padding:12px!important;
  background:#f7f9fc!important;
  overflow:auto!important;
}
.sspq-geofence-tools.is-geofence-map-fullscreen .sspq-map-toolbar{flex:0 0 auto;position:relative;z-index:2}
.sspq-geofence-tools.is-geofence-map-fullscreen .sspq-leaflet-map{flex:1 1 auto!important;height:calc(100vh - 110px)!important;min-height:480px!important;border-radius:10px!important}
body.sspq-geofence-map-fullscreen-open{overflow:hidden!important}
@media (max-width:760px){
  .sspq-geofence-tools.is-geofence-map-fullscreen{padding:6px!important}
  .sspq-geofence-tools.is-geofence-map-fullscreen .sspq-leaflet-map{height:calc(100vh - 170px)!important;min-height:360px!important}
}

/* SSPQ 2.0.747 — inventaire multisite des moyens d’accès clients */
.sspq-client-access-card{margin-top:18px;padding:18px;border:1px solid #dbe3ee;border-radius:16px;background:#fff}
.sspq-client-access-card>.sspq-section-head{align-items:flex-start;margin-bottom:12px}
.sspq-client-access-card .sspq-access-asset-form{margin:0;background:#f8fafc}
@media (max-width:760px){.sspq-client-access-card{padding:12px}.sspq-client-access-card>.sspq-section-head{display:grid;gap:10px}}

/* SSPQ 2.0.750 — feuille de route test alignée sur l'exécution terrain. */
.sspq-field-route-test>.sspq-route-test-banner{position:sticky;top:0;z-index:18;margin:0 0 14px;border-radius:14px}
.sspq-field-route-test .sspq-route-test-inspection{margin:16px 0}
.sspq-field-route-test .sspq-route-test-reset-form{margin-top:18px}
.sspq-field-route-test .sspq-route-test-action-form button{min-height:48px}
@media(max-width:700px){
  .sspq-field-route-test>.sspq-route-test-banner{position:relative;top:auto}
  .sspq-field-route-test .sspq-route-test-reset-form,.sspq-field-route-test .sspq-route-test-reset-form .sspq-btn{width:100%}
}

/* 2.0.762 — The completion reason is shown only while at least one patrol point is not conforming. */
.sspq-patrol-complete-form [data-sspq-patrol-completion-justification][hidden],
.sspq-patrol-complete-form [data-sspq-patrol-completion-all-done][hidden]{display:none!important;}

/* SSPQ 2.0.765 — sélecteur NFC mobile professionnel, lisible et sans débordement. */
body.sspq-nfc-program-choice-open{overflow:hidden!important}
.sspq-nfc-program-choice-modal{
  --sspq-nfc-navy:#071f43;
  --sspq-nfc-navy-2:#0c2d5a;
  --sspq-nfc-gold:#d5aa20;
  --sspq-nfc-gold-soft:#fff8e7;
  --sspq-nfc-text:#10213d;
  --sspq-nfc-muted:#5f6c80;
  --sspq-nfc-border:#d8e0eb;
  position:fixed!important;
  inset:0!important;
  z-index:100500!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
  background:rgba(4,15,33,.68)!important;
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
  box-sizing:border-box!important;
}
.sspq-nfc-program-choice-modal.is-open{display:flex!important}
.sspq-nfc-program-choice-card{
  width:min(680px,100%)!important;
  max-width:680px!important;
  max-height:calc(100vh - 48px)!important;
  max-height:calc(100dvh - 48px)!important;
  margin:0!important;
  padding:24px!important;
  border:1px solid rgba(216,224,235,.95)!important;
  border-radius:26px!important;
  background:#fff!important;
  color:var(--sspq-nfc-text)!important;
  box-shadow:0 28px 80px rgba(3,15,34,.34)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  box-sizing:border-box!important;
}
.sspq-nfc-program-choice-head{
  display:grid!important;
  grid-template-columns:58px minmax(0,1fr) 48px!important;
  align-items:center!important;
  gap:16px!important;
  margin:0!important;
  padding:0!important;
}
.sspq-nfc-program-header-icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(145deg,var(--sspq-nfc-navy-2),var(--sspq-nfc-navy));
  box-shadow:0 10px 24px rgba(7,31,67,.22);
}
.sspq-nfc-program-header-icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sspq-nfc-program-title-group{min-width:0}
.sspq-nfc-program-title-group h3{
  margin:0!important;
  color:var(--sspq-nfc-navy)!important;
  font-size:clamp(24px,4.2vw,32px)!important;
  font-weight:900!important;
  line-height:1.12!important;
  letter-spacing:-.02em!important;
  overflow-wrap:break-word;
}
.sspq-nfc-program-title-group p{margin:7px 0 0!important;color:var(--sspq-nfc-muted)!important;font-size:16px!important;font-weight:750!important;line-height:1.25!important}
.sspq-nfc-program-title-group p strong{color:var(--sspq-nfc-navy)!important;font-weight:900!important}
.sspq-nfc-program-close{
  position:static!important;
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  display:grid!important;
  place-items:center!important;
  margin:0!important;
  padding:0 0 3px!important;
  border:1px solid var(--sspq-nfc-border)!important;
  border-radius:50%!important;
  background:#fff!important;
  color:var(--sspq-nfc-navy)!important;
  font-size:31px!important;
  font-weight:500!important;
  line-height:1!important;
  box-shadow:0 5px 16px rgba(7,31,67,.08)!important;
}
.sspq-nfc-program-close:hover,.sspq-nfc-program-close:focus-visible{background:#f4f7fb!important;border-color:#aebbd0!important;outline:3px solid rgba(12,45,90,.13)!important;outline-offset:2px!important}
.sspq-nfc-program-divider{height:1px;margin:20px 0 18px;background:var(--sspq-nfc-border)}
.sspq-nfc-program-intro{
  margin:0 0 20px!important;
  color:var(--sspq-nfc-muted)!important;
  font-size:17px!important;
  font-weight:650!important;
  line-height:1.5!important;
}
.sspq-nfc-program-options{display:grid!important;grid-template-columns:1fr!important;gap:16px!important}
.sspq-nfc-program-option{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:18px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:16px!important;
  border:1px solid var(--sspq-nfc-border)!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%)!important;
  color:var(--sspq-nfc-text)!important;
  box-shadow:0 7px 22px rgba(7,31,67,.08)!important;
  text-align:left!important;
  white-space:normal!important;
  overflow:visible!important;
  cursor:pointer!important;
  touch-action:manipulation;
  font:inherit!important;
  box-sizing:border-box!important;
  transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease!important;
}
.sspq-nfc-program-option.is-recommended{border-color:#ead7a2!important;background:linear-gradient(180deg,#fffdfa 0%,var(--sspq-nfc-gold-soft) 100%)!important}
.sspq-nfc-program-option:hover,.sspq-nfc-program-option:focus-visible{transform:translateY(-1px)!important;border-color:#93a5bf!important;box-shadow:0 12px 30px rgba(7,31,67,.14)!important;outline:none!important}
.sspq-nfc-program-option.is-recommended:hover,.sspq-nfc-program-option.is-recommended:focus-visible{border-color:#c99d18!important}
.sspq-nfc-program-option-top{display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;align-items:start!important;gap:16px!important;min-width:0!important}
.sspq-nfc-program-option-icon{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:50%;
  box-sizing:border-box;
}
.sspq-nfc-program-option-icon svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.sspq-nfc-program-option-icon.is-write{color:#a87700;background:#fff4d8;border:1px solid #efdba7}
.sspq-nfc-program-option-icon.is-serial{color:var(--sspq-nfc-navy);background:#f2f5f9;border:1px solid #d5deea}
.sspq-nfc-program-option-content{display:flex!important;flex-direction:column!important;gap:12px!important;min-width:0!important}
.sspq-nfc-program-option-heading{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;min-width:0!important;color:var(--sspq-nfc-navy)!important;font-size:21px!important;line-height:1.24!important}
.sspq-nfc-program-option-heading strong{display:block!important;min-width:0!important;font-weight:900!important;letter-spacing:-.01em!important;overflow-wrap:break-word!important}
.sspq-nfc-program-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;margin-top:1px!important;padding:6px 10px!important;border-radius:999px!important;background:var(--sspq-nfc-gold)!important;color:var(--sspq-nfc-navy)!important;font-size:11px!important;font-weight:950!important;line-height:1!important;text-transform:uppercase!important;letter-spacing:.035em!important;box-shadow:0 3px 8px rgba(213,170,32,.22)!important}
.sspq-nfc-program-option-lines{display:flex!important;flex-direction:column!important;gap:8px!important;color:var(--sspq-nfc-muted)!important;font-size:15px!important;font-weight:650!important;line-height:1.4!important}
.sspq-nfc-program-option-lines>span{display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;align-items:start!important;gap:7px!important;min-width:0!important;overflow-wrap:break-word!important}
.sspq-nfc-program-mini-icon{display:inline-grid!important;place-items:center!important;width:22px!important;height:22px!important;color:#a87700!important;font-size:17px!important;font-weight:900!important;line-height:1!important}
.sspq-nfc-program-option:not(.is-recommended) .sspq-nfc-program-mini-icon{color:var(--sspq-nfc-navy)!important}
.sspq-nfc-program-option-action{
  width:100%!important;
  min-height:50px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  margin-top:0!important;
  padding:12px 18px!important;
  border:1px solid var(--sspq-nfc-navy)!important;
  border-radius:12px!important;
  background:linear-gradient(135deg,var(--sspq-nfc-navy-2),var(--sspq-nfc-navy))!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:900!important;
  line-height:1.2!important;
  text-align:center!important;
  box-sizing:border-box!important;
}
.sspq-nfc-program-option-action>span{font-size:29px!important;font-weight:400!important;line-height:.75!important;transform:translateY(-1px)}
.sspq-nfc-program-option-action.is-secondary{background:#fff!important;color:var(--sspq-nfc-navy)!important}
.sspq-nfc-program-choice-footer{display:block!important;margin-top:18px!important;padding-top:18px!important;border-top:1px solid var(--sspq-nfc-border)!important}
.sspq-nfc-program-cancel-button{
  width:100%!important;
  min-height:50px!important;
  margin:0!important;
  border:1px solid #aebbd0!important;
  border-radius:12px!important;
  background:#fff!important;
  color:var(--sspq-nfc-navy)!important;
  font-size:16px!important;
  font-weight:850!important;
  box-shadow:none!important;
}
.sspq-nfc-program-cancel-button:hover,.sspq-nfc-program-cancel-button:focus-visible{background:#f4f7fb!important;border-color:var(--sspq-nfc-navy)!important;outline:none!important}
@media(max-width:700px){
  .sspq-nfc-program-choice-modal{align-items:flex-end!important;padding:0!important;background:rgba(4,15,33,.62)!important}
  .sspq-nfc-program-choice-card{
    width:100%!important;
    max-width:none!important;
    max-height:calc(100vh - 12px)!important;
    max-height:calc(100dvh - 12px)!important;
    padding:20px 16px max(18px,env(safe-area-inset-bottom))!important;
    border-width:1px 0 0!important;
    border-radius:26px 26px 0 0!important;
    box-shadow:0 -18px 55px rgba(3,15,34,.3)!important;
  }
  .sspq-nfc-program-choice-head{grid-template-columns:48px minmax(0,1fr) 44px!important;gap:12px!important}
  .sspq-nfc-program-header-icon{width:48px;height:48px}
  .sspq-nfc-program-header-icon svg{width:26px;height:26px}
  .sspq-nfc-program-title-group h3{font-size:clamp(22px,6.3vw,28px)!important}
  .sspq-nfc-program-title-group p{font-size:15px!important;margin-top:5px!important}
  .sspq-nfc-program-close{width:44px!important;height:44px!important;min-width:44px!important;font-size:28px!important}
  .sspq-nfc-program-divider{margin:17px 0 15px}
  .sspq-nfc-program-intro{margin-bottom:16px!important;font-size:15px!important;line-height:1.45!important}
  .sspq-nfc-program-options{gap:12px!important}
  .sspq-nfc-program-option{padding:15px!important;gap:14px!important;border-radius:16px!important}
  .sspq-nfc-program-option-top{grid-template-columns:52px minmax(0,1fr)!important;gap:12px!important}
  .sspq-nfc-program-option-icon{width:52px;height:52px}
  .sspq-nfc-program-option-icon svg{width:27px;height:27px}
  .sspq-nfc-program-option-heading{font-size:18px!important;gap:8px!important}
  .sspq-nfc-program-badge{padding:5px 8px!important;font-size:9px!important}
  .sspq-nfc-program-option-lines{font-size:14px!important;gap:7px!important}
  .sspq-nfc-program-option-action{min-height:48px!important;padding:11px 13px!important;font-size:15px!important}
  .sspq-nfc-program-choice-footer{margin-top:14px!important;padding-top:14px!important}
}
@media(max-width:430px){
  .sspq-nfc-program-choice-card{padding-left:14px!important;padding-right:14px!important}
  .sspq-nfc-program-choice-head{grid-template-columns:44px minmax(0,1fr) 40px!important;gap:10px!important}
  .sspq-nfc-program-header-icon{width:44px;height:44px}
  .sspq-nfc-program-header-icon svg{width:24px;height:24px}
  .sspq-nfc-program-close{width:40px!important;height:40px!important;min-width:40px!important;font-size:26px!important}
  .sspq-nfc-program-title-group h3{font-size:21px!important}
  .sspq-nfc-program-option{padding:13px!important}
  .sspq-nfc-program-option-top{grid-template-columns:46px minmax(0,1fr)!important;gap:10px!important}
  .sspq-nfc-program-option-icon{width:46px;height:46px}
  .sspq-nfc-program-option-icon svg{width:24px;height:24px}
  .sspq-nfc-program-option-heading{display:block!important;font-size:17px!important}
  .sspq-nfc-program-badge{margin-top:7px!important}
}

/* SSPQ 2.0.769 — Améliorations 1 à 12 */
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-applicant .sspq-dashboard-open-shift-applicant-main{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;flex:1 1 auto;overflow:visible;text-overflow:clip;white-space:normal}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-applicant .sspq-dashboard-open-shift-applicant-name{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;white-space:nowrap}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-applicant .sspq-dashboard-open-shift-applicant-hours{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:visible;text-overflow:clip;padding:6px 9px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#334155;font-size:12px;font-weight:900;line-height:1.2;white-space:nowrap}
.sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-applicant .sspq-dashboard-open-shift-applicant-hours.is-overtime{border-color:#f0b6ac;background:#fff0ed;color:#9b2417}

.sspq-delete-scope-modal .sspq-modal-card{width:min(560px,calc(100vw - 28px));max-width:560px}
.sspq-delete-scope-modal [data-sspq-delete-scope-choice],
.sspq-delete-scope-modal [data-sspq-delete-recurrence-confirm]{padding-top:4px}
.sspq-delete-scope-options{display:grid;grid-template-columns:1fr;gap:12px;margin-top:18px}
.sspq-delete-scope-options .sspq-btn{width:100%;min-height:52px;justify-content:center;white-space:normal}

.sspq-availability-bulk-form{margin:0 0 16px}
.sspq-availability-bulk-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border:1px solid #d8e0ea;border-radius:14px;background:#f8fafc}
.sspq-availability-bulk-toolbar>[data-sspq-availability-selected-count]{margin-right:auto;color:#526175;font-weight:800}
.sspq-availability-bulk-form .sspq-checkbox-only{width:92px;text-align:center!important}

.sspq-pagination{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:center!important;gap:6px!important;width:100%;max-width:100%;overflow:hidden}
.sspq-pagination .sspq-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 1 auto!important;min-width:42px!important;max-width:112px!important;width:auto!important;min-height:42px!important;padding:8px 10px!important;white-space:nowrap!important}
.sspq-pagination .sspq-btn.is-active{background:var(--sspq-navy,#0b1f3a)!important;color:#fff!important;border-color:var(--sspq-navy,#0b1f3a)!important}

.sspq-hiring-status-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 18px}
.sspq-hiring-status-tab{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:13px 15px;border:1px solid #d5dde8;border-radius:14px;background:#fff;color:#0b1f3a;text-decoration:none;font-weight:900}
.sspq-hiring-status-tab span{min-width:0;overflow-wrap:anywhere}
.sspq-hiring-status-tab strong{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:#eef2f7;color:#0b1f3a;font-size:13px}
.sspq-hiring-status-tab.is-active{border-color:var(--sspq-gold,#c9a227);background:var(--sspq-gold,#c9a227);color:#0b1f3a}
.sspq-hiring-status-tab.is-active strong{background:#0b1f3a;color:#fff}

@media(max-width:767px){
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-applicant .sspq-dashboard-open-shift-applicant-main{align-items:center;flex-direction:row;flex-wrap:wrap;gap:7px}
  .sspq-platform[data-sspq-page="accueil"] .sspq-dashboard-open-shift-applicant .sspq-dashboard-open-shift-applicant-hours{margin-left:auto;white-space:normal;text-align:center}
  .sspq-availability-bulk-toolbar{display:grid;grid-template-columns:1fr;align-items:stretch}
  .sspq-availability-bulk-toolbar>[data-sspq-availability-selected-count]{margin:0}
  .sspq-availability-bulk-toolbar .sspq-btn{width:100%}
  .sspq-pagination{gap:4px!important}
  .sspq-pagination .sspq-btn{min-width:36px!important;min-height:40px!important;padding:7px 8px!important;font-size:12px!important}
  .sspq-hiring-status-tabs{grid-template-columns:1fr;gap:8px}
}
@media(max-width:390px){
  .sspq-pagination .sspq-btn{min-width:32px!important;padding:7px 6px!important;font-size:11px!important}
}

/* SSPQ 2.0.771 — Correctifs ciblés mobile : onglets et cartes employés. */
@media (max-width: 767px) {
  /* Les onglets restent dans le flux normal : aucun recouvrement du contenu ou des actions. */
  .sspq-platform[data-sspq-page="sites"] .sspq-content,
  .sspq-platform[data-sspq-page="operations"] .sspq-content,
  .sspq-platform[data-sspq-page="rondes"] .sspq-content {
    padding-top: 4px !important;
  }

  .sspq-platform[data-sspq-page="sites"] .sspq-sites > .sspq-tabs,
  .sspq-platform[data-sspq-page="operations"] .sspq-operations > .sspq-tabs,
  .sspq-platform[data-sspq-page="rondes"] .sspq-patrols > .sspq-tabs {
    position: relative !important;
    top: auto !important;
    z-index: 1 !important;
    margin: 0 0 12px !important;
    padding: 6px 0 10px !important;
  }

  /* Cartes employés : case, numéro, statut, nom et téléphone sans chevauchement. */
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table tr {
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto auto !important;
    gap: 9px 10px !important;
    align-items: start !important;
    padding: 14px !important;
  }

  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td {
    display: none !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td.sspq-employee-select-col,
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Numéro employé"],
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Nom"],
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Téléphone"],
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Statut"] {
    display: block !important;
  }

  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td.sspq-employee-select-col {
    grid-column: 1 !important;
    grid-row: 1 / span 3 !important;
    align-self: start !important;
    justify-self: start !important;
    width: 34px !important;
  }

  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td.sspq-employee-select-col .sspq-checkbox-only {
    display: inline-flex !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Numéro employé"] {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: center !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    color: var(--sspq-navy, #0b2447) !important;
  }

  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Statut"] {
    grid-column: 3 !important;
    grid-row: 1 !important;
    align-self: start !important;
    justify-self: end !important;
    width: auto !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
    background: #eef2f7 !important;
    color: var(--sspq-navy, #0b2447) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    text-transform: none !important;
    white-space: nowrap !important;
  }

  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Statut"]::before {
    display: none !important;
    content: none !important;
  }

  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Nom"] {
    grid-column: 2 / 4 !important;
    grid-row: 2 !important;
    font-size: 16px !important;
    font-weight: 900 !important;
  }

  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Téléphone"] {
    grid-column: 2 / 4 !important;
    grid-row: 3 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
  }

  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Numéro employé"]::before,
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Nom"]::before,
  .sspq-platform[data-sspq-page="employes"] .sspq-employees-table td[data-label="Téléphone"]::before {
    margin: 0 0 3px !important;
  }
}


/* SSPQ 2.0.772 — Facturation avancée */
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 18px;
  padding: 8px;
  border: 1px solid #dce3ec;
  border-radius: 14px;
  background: #f7f9fc;
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: var(--sspq-navy, #0b2447);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-tab:hover,
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-tab:focus-visible {
  border-color: #b8c6d8;
  background: #fff;
  outline: none;
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-tab.is-active {
  border-color: var(--sspq-navy, #0b2447);
  background: var(--sspq-navy, #0b2447);
  color: #fff;
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-layout {
  display: grid;
  grid-template-columns: minmax(320px, .9fr) minmax(0, 1.65fr);
  gap: 20px;
  align-items: start;
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-layout > * {
  min-width: 0;
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr));
  gap: 10px;
  margin: 14px 0 18px;
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-stat {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 92px;
  padding: 14px;
  border: 1px solid #dce3ec;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(11, 36, 71, .05);
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-stat strong {
  color: var(--sspq-navy, #0b2447);
  font-size: 24px;
  font-weight: 900;
  line-height: 1;
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-stat span {
  margin-top: 8px;
  color: #516174;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.3;
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-layout .sspq-card,
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-layout form {
  max-width: 100%;
}

.sspq-platform[data-sspq-page="facturation"] .sspq-billing-layout table {
  width: 100%;
}

@media (max-width: 1180px) {
  .sspq-platform[data-sspq-page="facturation"] .sspq-billing-summary {
    grid-template-columns: repeat(3, minmax(140px, 1fr));
  }
}

@media (max-width: 900px) {
  .sspq-platform[data-sspq-page="facturation"] .sspq-billing-layout {
    grid-template-columns: 1fr;
  }

  .sspq-platform[data-sspq-page="facturation"] .sspq-billing-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  .sspq-platform[data-sspq-page="facturation"] .sspq-billing-tab {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

@media (max-width: 600px) {
  .sspq-platform[data-sspq-page="facturation"] .sspq-billing-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sspq-platform[data-sspq-page="facturation"] .sspq-billing-stat {
    min-height: 82px;
    padding: 12px;
  }

  .sspq-platform[data-sspq-page="facturation"] .sspq-billing-stat strong {
    font-size: 21px;
  }
}

/* SSPQ 2.0.773 — gardes, boîtes d’accès et export employés */
.sspq-on-call-card {
  display: grid;
  gap: 10px;
  margin: 12px 0;
  padding: 14px;
  border: 1px solid #d7e0eb;
  border-radius: 12px;
  background: #f8fafc;
}

.sspq-on-call-card.is-compact {
  margin: 10px 0 0;
  padding: 11px 12px;
}

.sspq-on-call-card.is-empty {
  border-style: dashed;
  background: #fff8e8;
}

.sspq-on-call-card.is-empty span {
  color: #5f6875;
  font-size: 13px;
}

.sspq-on-call-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.sspq-on-call-card-head > div {
  display: grid;
  gap: 2px;
}

.sspq-on-call-kicker {
  color: #5a6676;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.sspq-on-call-card-head strong {
  color: var(--sspq-navy, #0b2447);
  font-size: 17px;
}

.sspq-on-call-card-head small {
  color: #536174;
}

.sspq-on-call-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.sspq-on-call-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid #cdd8e5;
  border-radius: 9px;
  background: #fff;
  color: var(--sspq-navy, #0b2447);
  font-weight: 750;
  text-decoration: none;
}

.sspq-on-call-actions a:hover,
.sspq-on-call-actions a:focus-visible {
  border-color: var(--sspq-gold, #c9a227);
  outline: none;
}

.sspq-access-inspection-contents {
  margin: 10px 0;
  padding: 10px 12px;
  border: 1px solid #dbe3ec;
  border-radius: 9px;
  background: #fff;
}

.sspq-access-inspection-contents ul {
  margin: 7px 0 0 18px;
  padding: 0;
}

.sspq-access-anomaly-details {
  margin: 10px 0;
  padding: 9px 11px;
  border: 1px dashed #cbd6e2;
  border-radius: 9px;
  background: #fbfcfe;
}

.sspq-access-anomaly-details summary {
  cursor: pointer;
  color: var(--sspq-navy, #0b2447);
  font-weight: 750;
}

.sspq-employee-export-form {
  margin: 0 0 14px;
}

@media (max-width: 620px) {
  .sspq-on-call-card-head {
    align-items: stretch;
    flex-direction: column;
  }

  .sspq-on-call-card-head .sspq-status-pill {
    align-self: flex-start;
  }

  .sspq-on-call-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .sspq-on-call-actions a {
    justify-content: center;
    overflow-wrap: anywhere;
  }
}

/* SSPQ 2.0.774 — couverture opérationnelle des employés clients */
.sspq-client-workforce{display:grid;gap:18px}
.sspq-client-coverage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
.sspq-client-coverage-card{display:flex;flex-direction:column;gap:8px;min-height:150px;padding:18px;border:1px solid var(--sspq-border,#dbe2ea);border-radius:16px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.sspq-client-coverage-card:hover{border-color:#a98628;box-shadow:0 12px 28px rgba(15,23,42,.09)}
.sspq-client-coverage-card>strong{font-size:1.05rem;line-height:1.3}
.sspq-client-coverage-card>small,.sspq-client-coverage-card>span{line-height:1.4}
.sspq-client-coverage-card form{margin-top:auto}
.sspq-client-route-list{display:grid;gap:14px;margin-top:18px}
.sspq-client-route-card{padding:18px;border:1px solid var(--sspq-border,#dbe2ea);border-radius:16px;background:#fff}
.sspq-client-route-number{display:inline-grid;place-items:center;width:32px;height:32px;margin-right:10px;border-radius:10px;background:#0b1f3a;color:#fff;font-weight:800}
.sspq-client-route-card .sspq-panel-head>div:first-child{display:grid;grid-template-columns:auto 1fr;align-items:center}
.sspq-client-route-card .sspq-panel-head p{grid-column:2;margin:2px 0 0}
.sspq-client-complete-claim{margin-top:20px;padding-top:16px;border-top:1px solid var(--sspq-border,#dbe2ea)}
.sspq-client-workforce details{margin-top:14px;padding:12px;border:1px solid var(--sspq-border,#dbe2ea);border-radius:12px;background:#f8fafc}
.sspq-client-workforce details summary{cursor:pointer;font-weight:750}
@media(max-width:767px){
  .sspq-client-coverage-grid{grid-template-columns:1fr}
  .sspq-client-coverage-card,.sspq-client-route-card{padding:15px;border-radius:14px}
  .sspq-client-route-card .sspq-action-row{display:grid;grid-template-columns:1fr;gap:10px}
  .sspq-client-route-card .sspq-action-row>*{width:100%}
  .sspq-client-route-card .sspq-action-row .sspq-btn{width:100%;justify-content:center}
}

.sspq-client-coverage-claims{display:grid;gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid var(--sspq-border,#dbe2ea)}
.sspq-client-coverage-claims a{display:block;padding:8px 10px;border-radius:9px;background:#f8fafc;color:inherit;text-decoration:none}
.sspq-client-coverage-claims a:hover,.sspq-client-coverage-claims a:focus-visible{background:#eef2f7;outline:2px solid rgba(169,134,40,.28);outline-offset:1px}
.sspq-client-release-claim{margin-top:12px!important;border-color:#e5b9b9!important;background:#fff8f8!important}
.sspq-client-release-claim summary{color:#8a2424}


/* SSPQ 2.0.776 — bouton et fenêtre d'historique des quarts. */
.sspq-shift-history-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;padding:6px 10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#0b2447;font-size:12px;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.08)}
.sspq-shift-history-button:hover,.sspq-shift-history-button:focus-visible{border-color:#d4af37;background:#fffdf5;outline:none;box-shadow:0 0 0 3px rgba(212,175,55,.18)}
.sspq-shift-history-button span{font-size:15px;line-height:1}
.sspq-shift-history-modal .sspq-modal-card{max-height:min(90vh,940px);overflow:auto}
.sspq-shift-history-loading{padding:24px;text-align:center;font-weight:800;color:#475569}
.sspq-shift-history-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 20px}
.sspq-shift-history-summary>div{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #dbe3ec;border-radius:12px;background:#f8fafc;min-width:0}
.sspq-shift-history-summary strong{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
.sspq-shift-history-summary span{font-weight:800;color:#0f172a;overflow-wrap:anywhere}
.sspq-shift-history-timeline{position:relative;margin:8px 0 18px;padding-left:24px}
.sspq-shift-history-timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:#dbe3ec}
.sspq-shift-history-event{position:relative;display:grid;grid-template-columns:1fr;margin:0 0 14px;padding:14px 16px;border:1px solid #dbe3ec;border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.05)}
.sspq-shift-history-dot{position:absolute;left:-22px;top:19px;width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:#0b2447;box-shadow:0 0 0 2px #d4af37}
.sspq-shift-history-event-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.sspq-shift-history-event-head strong{color:#0b2447;font-size:14px}
.sspq-shift-history-event-head time{flex:0 0 auto;color:#64748b;font-size:12px;font-weight:700}
.sspq-shift-history-by{margin-top:3px;color:#64748b;font-size:12px}
.sspq-shift-history-event ul{margin:9px 0 0;padding-left:18px;color:#334155;font-size:13px}
.sspq-shift-history-event li+li{margin-top:4px}
.sspq-shift-history-event-shift_refused .sspq-shift-history-dot,.sspq-shift-history-event-shift_deleted .sspq-shift-history-dot{background:#b91c1c}
.sspq-shift-history-event-shift_confirmed .sspq-shift-history-dot,.sspq-shift-history-event-application_accepted .sspq-shift-history-dot{background:#15803d}
.sspq-shift-history-event-shift_opened .sspq-shift-history-dot,.sspq-shift-history-event-application_submitted .sspq-shift-history-dot{background:#b45309}
@media(max-width:760px){.sspq-shift-history-summary{grid-template-columns:1fr 1fr}.sspq-shift-history-event-head{display:block}.sspq-shift-history-event-head time{display:block;margin-top:4px}.sspq-shift-history-button{width:100%;min-height:34px}.sspq-shift-history-modal .sspq-modal-card{max-height:96vh}}
@media(max-width:480px){.sspq-shift-history-summary{grid-template-columns:1fr}.sspq-shift-history-timeline{padding-left:19px}.sspq-shift-history-dot{left:-18px}}

/* SSPQ 2.0.778 — détail lisible des modifications d'un quart */
.sspq-shift-history-changes{display:grid;gap:10px;margin-top:12px}
.sspq-shift-history-change{padding:11px 12px;border:1px solid #dbe3ec;border-radius:11px;background:#f8fafc}
.sspq-shift-history-change>strong{display:block;margin-bottom:8px;color:#0b2447;font-size:13px}
.sspq-shift-history-change>div{display:grid;grid-template-columns:minmax(105px,.45fr) minmax(0,1fr);gap:10px;align-items:start;padding:5px 0;border-top:1px solid #e5e7eb}
.sspq-shift-history-change>div:first-of-type{border-top:0}
.sspq-shift-history-change span{color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.sspq-shift-history-change b{color:#0f172a;font-size:13px;overflow-wrap:anywhere;white-space:pre-wrap}
@media(max-width:560px){.sspq-shift-history-change>div{grid-template-columns:1fr;gap:3px}}


/* SSPQ 2.0.780 — repère directionnel de déplacement dans le guidage de ronde. */
.sspq-guidance-direction-marker-wrap{background:transparent!important;border:0!important;overflow:visible!important}
.sspq-guidance-direction-marker{display:block;width:40px;height:48px;transform:rotate(var(--sspq-heading,0deg));transform-origin:50% 70%;filter:drop-shadow(0 2px 4px rgba(15,23,42,.45));transition:transform .25s linear}
.sspq-guidance-direction-marker svg{display:block;width:40px;height:48px;overflow:visible}
.sspq-guidance-direction-marker path{fill:var(--sspq-marker-fill,#7c3aed);stroke:var(--sspq-marker-outline,#fff);stroke-width:3;stroke-linejoin:round}

/* SSPQ 2.0.780 — un seul contrôle d'heure sur ordinateur. */
@media (min-width:901px){
  .sspq-route-time-control>.sspq-route-time-mobile-button{display:none!important}
  .sspq-route-time-row [data-sspq-route-time-input]{position:static!important;display:block!important;opacity:1!important;pointer-events:auto!important;left:auto!important;width:110px!important;height:34px!important;min-width:110px!important;min-height:34px!important;margin:0!important}
}

/* SSPQ 2.0.788 — verrouillage opérationnel, consignes illustrées et remplacements. */
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-completed,
.sspq-platform .sspq-field-route .sspq-field-route-summary.status-completed{
  border-color:#86c99a!important;
  background:#dcfce7!important;
  box-shadow:0 5px 14px rgba(22,101,52,.10)!important;
}
.sspq-platform .sspq-field-route .sspq-field-route-list li.status-completed .sspq-field-route-list-trigger,
.sspq-platform .sspq-field-route .sspq-field-route-summary.status-completed>div{
  background:#dcfce7!important;
}
.sspq-platform .sspq-field-route .status-completed .sspq-field-route-list-number,
.sspq-platform .sspq-field-route .sspq-field-route-summary.status-completed .sspq-field-route-step{
  background:#166534!important;
  color:#fff!important;
}
.sspq-platform .sspq-field-route .status-completed .sspq-field-route-list-copy strong,
.sspq-platform .sspq-field-route .status-completed .sspq-field-route-list-copy small,
.sspq-platform .sspq-field-route .status-completed .sspq-field-route-list-status,
.sspq-platform .sspq-field-route .sspq-field-route-summary.status-completed strong,
.sspq-platform .sspq-field-route .sspq-field-route-summary.status-completed small{
  color:#14532d!important;
}
.sspq-field-route-defer-btn,.sspq-field-route-option-defer{
  border:1px solid #b7791f!important;
  background:#fff7db!important;
  color:#6b4608!important;
}
.sspq-field-route-defer-btn:hover,.sspq-field-route-option-defer:hover,
.sspq-field-route-defer-btn:focus-visible,.sspq-field-route-option-defer:focus-visible{
  background:#ffedb1!important;
  color:#4b3105!important;
}
.sspq-route-defer-form{margin-top:10px}
.sspq-route-defer-form .sspq-btn{width:100%;justify-content:center}
.sspq-route-early-block,.sspq-route-early-warning{width:100%}
.sspq-route-early-block .sspq-field-route-option-btn{width:100%}

.sspq-site-instruction-content>p{white-space:normal;overflow-wrap:anywhere}
.sspq-site-instruction-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-top:14px}
.sspq-site-instruction-gallery figure{margin:0;min-width:0}
.sspq-site-instruction-gallery a{display:block;border:1px solid #d8e0e8;border-radius:12px;overflow:hidden;background:#f8fafc}
.sspq-site-instruction-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.sspq-site-instruction-gallery figcaption{margin-top:6px;color:#475569;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.sspq-site-instruction-photos-admin{grid-column:1/-1;margin-top:16px;padding:16px;border:1px solid #dbe3ec;border-radius:14px;background:#f8fafc}
.sspq-site-instruction-photo-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:12px 0}
.sspq-site-instruction-photo-admin-card{display:grid;gap:10px;padding:12px;border:1px solid #dbe3ec;border-radius:12px;background:#fff}
.sspq-site-instruction-photo-admin-card>a{display:block;border-radius:10px;overflow:hidden;background:#eef2f7}
.sspq-site-instruction-photo-admin-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.sspq-site-instruction-photo-admin-card label{display:grid;gap:5px}
.sspq-site-instruction-photo-admin-card label>span,.sspq-site-instruction-photo-upload label>span{font-weight:750;color:#334155}
.sspq-site-instruction-photo-upload{display:grid;gap:12px;margin-top:14px}
.sspq-site-instruction-photo-upload small{display:block;margin-top:5px;color:#64748b}

.sspq-dashboard-replacement-list{display:grid;gap:12px}
.sspq-dashboard-replacement-card{display:grid;gap:5px;padding:13px 14px;border:1px solid #dbe3ec;border-radius:12px;background:#fff}
.sspq-dashboard-replacement-card strong{color:#0b2447}
.sspq-dashboard-replacement-card span{color:#334155;font-weight:700}
.sspq-dashboard-replacement-card small{color:#64748b}
.sspq-dashboard-replacement-card em{color:#9a6700;font-size:12px;font-style:normal;font-weight:800}
.sspq-dashboard-replacement-list>.sspq-btn{justify-self:start}
@media(max-width:620px){
  .sspq-site-instruction-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sspq-site-instruction-photo-admin-grid{grid-template-columns:1fr}
  .sspq-dashboard-replacement-list>.sspq-btn{width:100%;justify-content:center}
}

/* Facturation 2.0.793 — catalogues QuickBooks exacts et configuration Client / Site */
.sspq-qb-import-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:16px 0 24px}
.sspq-qb-import-card{display:flex;flex-direction:column;gap:12px;margin:0}
.sspq-qb-import-card label{display:flex;flex-direction:column;gap:6px}
.sspq-qb-catalog-settings>.sspq-card,.sspq-entity-billing>.sspq-card{margin-top:16px}
.sspq-qb-exact-name{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.88rem}
.sspq-entity-billing{display:grid;gap:16px}
.sspq-entity-billing .sspq-section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.sspq-billing-profile-summary{margin:0}
.sspq-billing-profile-editor>summary,.sspq-rate-scheduler>summary{cursor:pointer;font-weight:700;font-size:1rem;padding:4px 0}
.sspq-billing-profile-editor[open]>summary,.sspq-rate-scheduler[open]>summary{margin-bottom:16px}
.sspq-billing-live-summary{padding:14px 16px;border:1px solid var(--sspq-border,#d6dbe3);border-radius:10px;background:var(--sspq-surface-soft,#f7f8fa);font-weight:600}
.sspq-billing-live-summary.is-credit{border-color:#c33}
.sspq-entity-billing code,.sspq-billing-config code{white-space:pre-wrap;overflow-wrap:anywhere}
.sspq-action-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sspq-inline-form input[type="text"]{min-width:160px}
.sspq-qb-catalog-list .sspq-table td:first-child{max-width:520px}
.sspq-billing-config .sspq-field small,.sspq-entity-billing .sspq-field small{display:block;margin-top:5px;color:var(--sspq-muted,#667085);font-size:.78rem}
@media(max-width:780px){
  .sspq-qb-import-grid{grid-template-columns:1fr}
  .sspq-entity-billing .sspq-section-head{display:block}
  .sspq-billing-config .sspq-action-row,.sspq-entity-billing .sspq-action-row{align-items:stretch}
  .sspq-billing-config .sspq-action-row form,.sspq-entity-billing .sspq-action-row form{width:100%}
  .sspq-billing-config .sspq-action-row .sspq-btn,.sspq-entity-billing .sspq-action-row .sspq-btn{width:100%}
}

/* Facturation 2.0.794 — association client/site, site autonome et taux effectifs */
.sspq-site-client-selector>summary,.sspq-rate-advanced>summary{cursor:pointer;font-weight:800;color:#0b2447}
.sspq-site-client-selector[open]>summary,.sspq-rate-advanced[open]>summary{margin-bottom:14px}
.sspq-effective-site-rates .sspq-panel-head,.sspq-billing-rate-table .sspq-panel-head{align-items:flex-start}
.sspq-effective-site-rates code,.sspq-billing-rate-table code{font-size:.82rem}
.sspq-rate-advanced{grid-column:1/-1;padding:14px;border:1px solid #dbe3ec;border-radius:12px;background:#f8fafc}
.sspq-rate-advanced>.sspq-form-grid{margin-top:14px}
.sspq-entity-billing .sspq-status-pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#eef2f7;color:#334155;font-size:.76rem;font-weight:800}
.sspq-entity-billing .sspq-notice a{font-weight:800;text-decoration:underline}
.sspq-site-client-selector select{min-height:46px}
@media(max-width:780px){
  .sspq-effective-site-rates .sspq-table-wrap,.sspq-billing-rate-table .sspq-table-wrap{overflow-x:auto}
  .sspq-effective-site-rates table,.sspq-billing-rate-table table{min-width:780px}
  .sspq-site-client-selector .sspq-save-bar .sspq-btn{width:100%}
}

/* Facturation 2.0.795 — destination QuickBooks propre au site, taxes et descriptions guidées */
.sspq-rate-section-head{margin-top:8px;padding-top:8px;border-top:1px solid #e2e8f0}
.sspq-description-builder{grid-column:1/-1;margin:0;padding:16px;border:1px solid #dbe3ec;border-radius:14px;background:#f8fafc}
.sspq-description-builder legend{padding:0 8px;font-weight:850;color:#0b2447}
.sspq-description-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px 14px;margin:12px 0}
.sspq-description-builder>.sspq-billing-live-summary{margin-top:12px;white-space:normal}
.sspq-qb-catalog-list .sspq-action-row{min-width:240px}
.sspq-qb-catalog-list .sspq-muted[title]{font-size:.78rem}
.sspq-billing-profile-editor [data-sspq-site-own-fields]{grid-column:1/-1}
.sspq-billing-profile-editor [data-sspq-site-own-fields][hidden]{display:none!important}
@media(max-width:780px){
  .sspq-description-choice-grid{grid-template-columns:1fr}
  .sspq-qb-catalog-list .sspq-action-row{min-width:180px;align-items:stretch}
  .sspq-qb-catalog-list .sspq-action-row form,.sspq-qb-catalog-list .sspq-action-row button{width:100%}
}

/* Facturation 2.0.796 — onglets Règles et tarifs, ordre des descriptions et corbeille QuickBooks */
.sspq-description-builder-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin:14px 0}
.sspq-description-builder-columns h4{margin:0 0 10px;color:#0b2447}
.sspq-description-order-list{display:flex;flex-direction:column;gap:8px;min-height:64px;padding:10px;border:1px dashed #aebdce;border-radius:12px;background:#fff}
.sspq-description-order-list:empty::before{content:'Aucune information sélectionnée.';display:block;padding:10px;color:#64748b}
.sspq-description-order-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid #dbe3ec;border-radius:10px;background:#f8fafc}
.sspq-description-order-item.is-dragging{opacity:.55}
.sspq-description-drag-handle{cursor:grab;font-size:1.1rem;font-weight:900;color:#64748b;user-select:none}
.sspq-description-order-label{font-weight:750;color:#0b2447}
.sspq-description-order-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.sspq-description-order-actions .sspq-btn{min-width:40px}
.sspq-qb-counts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.sspq-badge-muted{background:#eef2f7;color:#475569}
.sspq-qb-view-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 16px}
.sspq-qb-view-tabs .is-active{box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}
.sspq-entity-billing[data-sspq-billing-section="rates"]>.sspq-section-head:first-child{margin-top:0}
@media(max-width:900px){
  .sspq-description-builder-columns{grid-template-columns:1fr}
}
@media(max-width:780px){
  .sspq-description-order-item{grid-template-columns:auto minmax(0,1fr)}
  .sspq-description-order-actions{grid-column:1/-1;justify-content:stretch}
  .sspq-description-order-actions .sspq-btn{flex:1}
  .sspq-qb-counts{justify-content:flex-start}
  .sspq-qb-view-tabs .sspq-btn{flex:1}
}


/* Facturation 2.0.797 — diagnostics de prévisualisation exploitables */
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-stat.is-actionable {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  border-color: #d39b12;
  background: #fffaf0;
}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-stat.is-actionable:hover,
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-stat.is-actionable:focus-visible {
  border-color: var(--sspq-gold, #d4af37);
  box-shadow: 0 0 0 3px rgba(212, 175, 55, .18);
  outline: none;
}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-errors {
  margin: 18px 0;
  padding: 16px;
  border: 1px solid #e4b4ae;
  border-radius: 14px;
  background: #fff8f7;
  scroll-margin-top: 120px;
}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-errors .sspq-panel-head {
  margin-bottom: 8px;
}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-errors td {
  vertical-align: top;
}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-errors td:nth-child(4),
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-errors td:nth-child(5) {
  min-width: 260px;
  white-space: normal;
}
@media (max-width: 900px) {
  .sspq-platform[data-sspq-page="facturation"] .sspq-billing-errors {
    padding: 12px;
  }
}


/* SSPQ 2.0.798 — adresse complète et confirmation mobile de remise à plus tard */
.sspq-field-route-address .sspq-route-address-value,
.sspq-field-route-info-block .sspq-route-address-value {
  display: block;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.45;
}
.sspq-route-defer-modal[hidden] { display: none !important; }
.sspq-route-defer-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(4, 15, 32, .68);
}
.sspq-route-defer-modal .sspq-modal-card {
  width: min(100%, 440px);
  max-height: calc(100dvh - 40px);
  overflow: auto;
  padding: 24px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .32);
}
.sspq-route-defer-modal .sspq-modal-head h3 { margin: 0 38px 14px 0; }
.sspq-route-defer-modal .sspq-modal-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 22px;
}
@media (max-width: 520px) {
  .sspq-route-defer-modal { padding: 14px; }
  .sspq-route-defer-modal .sspq-modal-card { padding: 20px; border-radius: 16px; }
  .sspq-route-defer-modal .sspq-modal-actions { grid-template-columns: 1fr; }
}

/* SSPQ 2.0.799 — portée et diagnostics de facturation */
.sspq-billing-diagnostics { margin-top: 20px; }
.sspq-billing-diagnostics.is-info { border-color: var(--sspq-border, #d7dee8); }
.sspq-billing-diagnostics details { margin-top: 16px; }
.sspq-billing-diagnostics small { white-space: normal; }
[data-sspq-billing-scope] { width: 100%; }

/* SSPQ 2.0.800 — rapprochement des heures facturables */
.sspq-billing-reconciliation{margin:18px 0;padding:16px;border:1px solid var(--sspq-border,#d8dee8);border-radius:14px;background:var(--sspq-surface,#fff)}
.sspq-billing-reconciliation.has-gap{border-color:#d6a916}
.sspq-billing-reconciliation .sspq-panel-head{margin-bottom:10px}
.sspq-billing-reconciliation .sspq-table td,.sspq-billing-reconciliation .sspq-table th{white-space:normal}
@media (max-width:760px){.sspq-billing-reconciliation{padding:12px}.sspq-billing-reconciliation .sspq-table-wrap{overflow-x:auto}}

/* SSPQ 2.0.831 — corrections ciblées mobile, horaire et géorepérage. */
.sspq-zone-section,
.sspq-zone-geofence-form,
.sspq-zone-geofence-form > .wide,
.sspq-zone-geofence-form .sspq-geofence-tools {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  grid-column: 1 / -1 !important;
}
.sspq-zone-geofence-form {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
}
.sspq-zone-geofence-form .sspq-geofence-tools {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 18px !important;
}
.sspq-zone-geofence-form .sspq-map-toolbar {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100% !important;
}
.sspq-zone-geofence-form .sspq-leaflet-map,
.sspq-zone-geofence-form [data-sspq-geofence-map] {
  width: 100% !important;
  max-width: none !important;
  height: min(70vh, 760px) !important;
  min-height: 560px !important;
}
.sspq-zone-geofence-form .sspq-geofence-barriers,
.sspq-zone-geofence-form [data-sspq-geofence-barriers] {
  width: 100% !important;
  min-width: 0 !important;
}
.sspq-network-status {
  position: fixed;
  left: 50%;
  bottom: max(18px, env(safe-area-inset-bottom));
  z-index: 100000;
  transform: translateX(-50%);
  max-width: min(92vw, 680px);
  padding: 10px 16px;
  border-radius: 999px;
  background: #0b1f3a;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.sspq-network-status.is-error { background: #a32020; }
.sspq-network-status.is-ok { background: #116b43; }
@media (max-width: 900px) {
  .sspq-zone-geofence-form { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .sspq-zone-geofence-form .sspq-leaflet-map,
  .sspq-zone-geofence-form [data-sspq-geofence-map] { min-height: 500px !important; }
}
@media (max-width: 767px) {
  .sspq-schedule-mobile-cards .sspq-schedule-card.has-bulk-selector {
    padding-left: 58px !important;
  }
  .sspq-schedule-mobile-cards .sspq-schedule-card.has-bulk-selector .sspq-schedule-select {
    position: absolute !important;
    left: 14px !important;
    top: 16px !important;
    right: auto !important;
    bottom: auto !important;
    width: 32px !important;
    height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    background: transparent !important;
    border: 0 !important;
    z-index: 3 !important;
  }
  .sspq-schedule-mobile-cards .sspq-schedule-card.has-bulk-selector .sspq-schedule-select input {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    margin: 0 !important;
  }
  .sspq-zone-geofence-form { grid-template-columns: 1fr !important; }
  .sspq-zone-geofence-form .sspq-map-toolbar > * { width: 100% !important; }
  .sspq-zone-geofence-form .sspq-leaflet-map,
  .sspq-zone-geofence-form [data-sspq-geofence-map] {
    height: 65vh !important;
    min-height: 420px !important;
  }
}

/* Facturation 2.0.839 — configuration centrale des produits QuickBooks */
.sspq-qb-product-billing-config {
  margin: 16px 0;
  border: 1px solid #d7dee8;
  background: #f8fafc;
}
.sspq-qb-product-billing-config h4 { margin: 0 0 6px; }
.sspq-qb-product-billing-config [data-product-config-field][hidden],
.sspq-rate-scheduler [data-sspq-rate-group][hidden] { display: none !important; }
.sspq-rate-scheduler [data-sspq-product-config-message] { align-self: stretch; }
.sspq-text-danger { color: #b42318; font-weight: 700; }
.sspq-qb-catalog-list code.sspq-qb-exact-name { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 780px) {
  .sspq-qb-product-billing-config,
  .sspq-rate-scheduler .sspq-form-grid { grid-template-columns: 1fr; }
  .sspq-qb-product-billing-config .wide,
  .sspq-rate-scheduler .wide { grid-column: 1 / -1; }
}

/* SSPQ 2.0.843 — conservation et synchronisation hors ligne des rapports. */
.sspq-report-draft-status,
.sspq-report-persistence-status{
  grid-column:1/-1;
  display:block;
  padding:11px 13px;
  border-radius:12px;
  border:1px solid #cbd5e1;
  background:#f8fafc;
  color:#334155;
  font-weight:700;
  line-height:1.35;
}
.sspq-report-persistence-status.is-pending{border-color:#f59e0b;background:#fffbeb;color:#92400e;}
.sspq-report-persistence-status.is-success{border-color:#22c55e;background:#f0fdf4;color:#166534;}
.sspq-report-persistence-status.is-error{border-color:#ef4444;background:#fef2f2;color:#991b1b;}

/* SSPQ 2.0.847 — filtres automatiques, listes tactiles et cartes Horaire. */
.sspq-auto-filter-status{
  min-height:20px;
  align-self:center;
  color:var(--sspq-muted,#64748b);
  font-size:13px;
  font-weight:800;
}
.sspq-auto-filter-status.is-error{color:#b42318;}
[data-sspq-auto-filter-root].is-loading [data-sspq-auto-filter-results]{
  opacity:.58;
  pointer-events:none;
  transition:opacity .15s ease;
}
[data-sspq-auto-filter-root].is-loading .sspq-auto-filter-status::before{
  content:"";
  display:inline-block;
  width:12px;
  height:12px;
  margin-right:7px;
  vertical-align:-1px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:sspq-page-loading-spin .7s linear infinite;
}

@media(max-width:900px){
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open{
    position:relative!important;
    z-index:2147482202!important;
  }
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-menu{
    max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 78px)!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
  }
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-menu-head,
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-input{
    position:relative!important;
    z-index:2!important;
  }
  .sspq-searchable-select.sspq-searchable-mobile-overlay.is-open .sspq-searchable-list{
    position:relative!important;
    z-index:1!important;
    contain:layout paint!important;
    overflow-y:scroll!important;
    scrollbar-gutter:stable!important;
    touch-action:pan-y!important;
  }
}

@media(max-width:767px){
  .sspq-schedule-mobile-cards .sspq-schedule-card.has-bulk-selector{
    padding-left:52px!important;
  }
  .sspq-schedule-mobile-cards .sspq-schedule-card.has-bulk-selector .sspq-schedule-select{
    left:12px!important;
    top:14px!important;
    width:28px!important;
    height:34px!important;
  }
  .sspq-schedule-mobile-cards .sspq-schedule-card.has-bulk-selector .sspq-schedule-select input{
    width:26px!important;
    height:26px!important;
    min-width:26px!important;
  }
  .sspq-schedule-mobile-cards .sspq-schedule-card .sspq-schedule-time{
    padding-left:0!important;
    padding-right:34px!important;
    margin-left:0!important;
    text-align:left!important;
  }
  .sspq-schedule-mobile-cards .sspq-schedule-card .sspq-schedule-site,
  .sspq-schedule-mobile-cards .sspq-schedule-card .sspq-schedule-employee,
  .sspq-schedule-mobile-cards .sspq-schedule-card .sspq-schedule-meta,
  .sspq-schedule-mobile-cards .sspq-schedule-card .sspq-schedule-edit-hint{
    margin-left:0!important;
    padding-left:0!important;
    text-align:left!important;
  }
}

/* SSPQ 2.0.849 - ciblage d'une présence depuis la facturation */
.sspq-presence-table tr.sspq-presence-log-target > td {
    background: rgba(212, 169, 31, .18);
    box-shadow: inset 0 2px 0 #d4a91f, inset 0 -2px 0 #d4a91f;
}
.sspq-presence-table tr.sspq-presence-log-target > td:first-child {
    box-shadow: inset 4px 0 0 #d4a91f, inset 0 2px 0 #d4a91f, inset 0 -2px 0 #d4a91f;
}


/* SSPQ 2.0.850 - résolution des présences non rattachées */
.sspq-orphan-presence-panel { border: 2px solid rgba(212,169,31,.45); }
.sspq-orphan-presence-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0; }
.sspq-orphan-presence-summary > div { display:flex; flex-direction:column; gap:4px; padding:12px; border:1px solid var(--sspq-border,#d9dee8); border-radius:12px; background:#fff; }
.sspq-orphan-presence-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.sspq-orphan-presence-form { padding:16px; border:1px solid var(--sspq-border,#d9dee8); border-radius:14px; background:#fff; }
.sspq-orphan-presence-form h3 { margin-top:0; }
.sspq-orphan-presence-cancel { grid-column:1/-1; border-color:rgba(194,43,32,.35); }
@media (max-width: 820px) {
  .sspq-orphan-presence-summary,
  .sspq-orphan-presence-actions { grid-template-columns:1fr; }
  .sspq-orphan-presence-cancel { grid-column:auto; }
}


/* SSPQ 2.0.852 — index de facturation pleine largeur sur ordinateur et portable */
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-config{width:100%;max-width:none}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-index-layout{grid-template-columns:minmax(0,1fr)!important;width:100%;max-width:none}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-index-layout>.sspq-billing-list{grid-column:1/-1;width:100%;max-width:none;min-width:0}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-index-layout .sspq-table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-index-layout .sspq-table{width:100%;min-width:980px;table-layout:auto}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-index-layout .sspq-table th,
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-index-layout .sspq-table td{word-break:normal;overflow-wrap:normal;white-space:normal}
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-index-layout .sspq-table td:last-child,
.sspq-platform[data-sspq-page="facturation"] .sspq-billing-index-layout .sspq-table th:last-child{width:1%;white-space:nowrap}
@media(max-width:780px){.sspq-platform[data-sspq-page="facturation"] .sspq-billing-index-layout .sspq-table{min-width:860px}}


/* SSPQ 2.0.855 — description de facturation par version tarifaire */
.sspq-billing-rule-description{display:grid;gap:10px;padding:14px;border:1px solid var(--sspq-border,#d7dee8);border-radius:14px;background:var(--sspq-surface,#fff)}
.sspq-billing-rule-description textarea{width:100%;min-height:96px;resize:vertical}
.sspq-billing-rule-description .sspq-billing-live-summary{margin:0;white-space:pre-wrap}
.sspq-billing-description-text{white-space:pre-wrap;overflow-wrap:anywhere}


/* SSPQ 2.0.858 — constructeur versionné des descriptions de règles tarifaires */
.sspq-rate-description-builder{margin-top:4px}
.sspq-rate-description-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:14px}
.sspq-rate-description-controls>.wide{grid-column:1/-1}
.sspq-rate-description-builder [data-sspq-rate-description-types][hidden]{display:none!important}
.sspq-rate-description-builder textarea{min-height:92px}
@media(max-width:780px){
  .sspq-rate-description-controls{grid-template-columns:1fr}
  .sspq-rate-description-controls>.wide{grid-column:auto}
}


/* SSPQ 2.0.859 — transport organisé vers le lieu de travail */
.sspq-work-transport-box{border:1px solid var(--sspq-border,#d8dee8);border-radius:14px;padding:14px;background:var(--sspq-surface-soft,#f8fafc)}
.sspq-work-transport-box>[data-sspq-work-transport-fields]{margin-top:12px}
[data-sspq-detail-work-transport]{margin:.45rem 0;white-space:pre-line}

/* Facturation 2.0.863 — éditeurs en fenêtre et exemptions par incident */
.sspq-billing-editor-launch{display:flex;justify-content:flex-start;align-items:center;margin:0}
.sspq-billing-editor-modal .sspq-modal-card{width:min(1180px,calc(100vw - 36px))!important;max-width:1180px!important;max-height:calc(100vh - 36px);overflow:auto}
.sspq-billing-editor-modal .sspq-modal-head{padding-right:46px}
.sspq-billing-editor-modal .sspq-modal-head>div{min-width:0}
.sspq-billing-editor-modal .sspq-modal-head p{margin:5px 0 0}
.sspq-billing-editor-modal form.sspq-form-grid{margin-top:4px}
.sspq-billing-option-fieldset{margin:0;padding:16px;border:1px solid var(--sspq-border,#d6dbe3);border-radius:14px;background:var(--sspq-surface-soft,#f8fafc)}
.sspq-billing-option-fieldset legend{padding:0 8px;font-weight:850;color:var(--sspq-navy,#0b2447)}
.sspq-billing-option-fieldset>.sspq-muted{margin:0 0 12px}
.sspq-billing-option-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px 14px;max-height:260px;overflow:auto;padding:4px}
.sspq-billing-option-list .sspq-checkline{align-items:flex-start;padding:9px 10px;border:1px solid var(--sspq-border,#d6dbe3);border-radius:10px;background:#fff}
.sspq-billing-option-list .sspq-checkline input{flex:0 0 auto;margin-top:2px}
html.sspq-billing-modal-open,body.sspq-billing-modal-open{overflow:hidden}
#sspq-billing-excluded{scroll-margin-top:90px}
@media(max-width:780px){
  .sspq-billing-editor-launch .sspq-btn{width:100%;justify-content:center}
  .sspq-billing-editor-modal{padding:0!important;align-items:flex-end!important}
  .sspq-billing-editor-modal .sspq-modal-card{width:100%!important;max-width:none!important;max-height:96vh;border-radius:18px 18px 0 0!important;padding:18px!important}
  .sspq-billing-option-list{grid-template-columns:1fr;max-height:none}
  .sspq-billing-editor-modal .sspq-modal-actions{position:sticky;bottom:-18px;margin-left:-18px;margin-right:-18px;padding:12px 18px;background:#fff;z-index:3}
  .sspq-billing-editor-modal .sspq-modal-actions .sspq-btn{flex:1;justify-content:center}
}

/* SSPQ 2.0.864 — interventions modulaires Répartition / Patrouilleur */
.sspq-operation-intervention-modal .sspq-modal-card{width:min(1180px,96vw)}
.sspq-operation-workflow-form .sspq-operation-step{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;background:#f8fafc}
.sspq-operation-workflow-form .sspq-operation-step strong{font-size:17px;color:var(--sspq-navy,#0b1f3a)}
.sspq-operation-workflow-form .sspq-operation-step span{color:var(--sspq-muted,#64748b);font-size:13px}
.sspq-operation-template-fields fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border:1px solid var(--sspq-border,#d8dee9);border-radius:14px;padding:16px;margin:0}
.sspq-operation-template-fields fieldset[hidden]{display:none!important}
.sspq-operation-template-fields legend{font-weight:800;color:var(--sspq-navy,#0b1f3a);padding:0 8px}
.sspq-operation-field-section{padding:10px 0;border-bottom:1px solid var(--sspq-border,#d8dee9)}
.sspq-operation-dispatch-summary{margin-top:10px;border:1px solid var(--sspq-border,#d8dee9);border-radius:10px;padding:10px 12px;background:#f8fafc}
.sspq-operation-dispatch-summary summary{cursor:pointer;font-weight:800;color:var(--sspq-navy,#0b1f3a)}
.sspq-operation-dispatch-summary dl{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:8px 14px;margin:12px 0 0}
.sspq-operation-dispatch-summary dt{font-weight:800}.sspq-operation-dispatch-summary dd{margin:0;overflow-wrap:anywhere}
.sspq-operation-report-part-title{grid-column:1/-1;padding:12px 14px;border-radius:10px;background:#eef3f8;border-left:4px solid var(--sspq-gold,#d4aa23)}
.sspq-operation-readonly-field{border:1px solid var(--sspq-border,#d8dee9);border-radius:10px;padding:12px;background:#f8fafc}
.sspq-operation-readonly-value{margin-top:6px;white-space:normal;overflow-wrap:anywhere}
@media(max-width:760px){.sspq-operation-template-fields fieldset{grid-template-columns:1fr}.sspq-operation-dispatch-summary dl{grid-template-columns:1fr}.sspq-operation-intervention-modal .sspq-modal-card{width:100%}}

/* SSPQ 2.0.865 — rotations de garde et importation de points NFC */
.sspq-on-call-form {
  margin-top: 18px;
}
.sspq-on-call-rules-table .sspq-action-row {
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.sspq-on-call-periods-modal {
  max-height: min(88vh, 900px);
  overflow: auto;
}
.sspq-checkpoint-import-preview {
  margin-bottom: 18px;
}
.sspq-checkpoint-import-preview input[type="checkbox"] {
  width: 18px;
  height: 18px;
}
@media (max-width: 760px) {
  .sspq-on-call-rules-table .sspq-action-row,
  .sspq-checkpoint-import-preview .sspq-save-bar {
    align-items: stretch;
    flex-direction: column;
  }
  .sspq-on-call-rules-table .sspq-btn,
  .sspq-checkpoint-import-preview .sspq-btn {
    width: 100%;
  }
}

/* SSPQ 2.0.866 — double vérification ciblée, aucun changement visuel additionnel */

/* SSPQ 2.0.868 — choix de la zone par point dans la prévisualisation NFC */
.sspq-checkpoint-import-bulk{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:14px 0 16px;padding:14px;border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;background:#f8fafc}
.sspq-checkpoint-import-bulk label{display:flex;flex-direction:column;gap:6px;min-width:min(320px,100%);font-weight:700}
.sspq-checkpoint-import-bulk select,.sspq-checkpoint-import-zone-select{min-width:150px}
.sspq-checkpoint-import-preview tr.is-unselected{opacity:.6}
.sspq-checkpoint-import-preview tr.has-zone-error{outline:2px solid #b42318;outline-offset:-2px;background:#fff1f0}
@media(max-width:760px){.sspq-checkpoint-import-bulk{align-items:stretch;flex-direction:column}.sspq-checkpoint-import-bulk label,.sspq-checkpoint-import-bulk select,.sspq-checkpoint-import-bulk .sspq-btn,.sspq-checkpoint-import-zone-select{width:100%;min-width:0}}

/* SSPQ 2.0.870 — formulaire d'alarme simplifié et ordre automatique des points */
.sspq-operation-workflow-form{align-items:start}
.sspq-operation-workflow-form>.wide{grid-column:1/-1}
.sspq-operation-workflow-form .sspq-operation-description-field textarea{min-height:132px;resize:vertical}
.sspq-operation-workflow-form .sspq-operation-emergency-enroute{
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr)!important;
  align-items:start!important;
  gap:12px!important;
  padding:14px 16px;
  border:1px solid #f0c36a;
  border-radius:12px;
  background:#fff8e6;
  color:#5f3b00;
}
.sspq-operation-workflow-form .sspq-operation-emergency-enroute>input{
  width:22px!important;
  min-width:22px!important;
  height:22px!important;
  min-height:22px!important;
  margin:1px 0 0!important;
  padding:0!important;
}
.sspq-operation-workflow-form .sspq-operation-emergency-enroute>span{display:grid;gap:3px}
.sspq-operation-workflow-form .sspq-operation-emergency-enroute strong{font-size:16px;color:#5f3b00}
.sspq-operation-workflow-form .sspq-operation-emergency-enroute small{font-weight:500;color:#7a5207}
.sspq-operation-template-fields fieldset>.wide{grid-column:1/-1}
.sspq-operation-template-fields fieldset label>span{font-weight:800;color:#24364b}
.sspq-operation-template-fields fieldset input,
.sspq-operation-template-fields fieldset select,
.sspq-operation-template-fields fieldset textarea{width:100%;box-sizing:border-box}
.sspq-operation-workflow-form .sspq-form-actions{justify-content:flex-end;gap:10px;flex-wrap:wrap}
.sspq-route-points-order-table [data-sspq-route-point-row]{transition:background-color .15s ease}
.sspq-route-points-order-table [data-sspq-route-point-order]{max-width:90px;text-align:center;font-weight:800}
@media(max-width:760px){
  .sspq-operation-workflow-form>.wide{grid-column:1}
  .sspq-operation-workflow-form .sspq-form-actions{display:grid;grid-template-columns:1fr}
  .sspq-operation-workflow-form .sspq-form-actions .sspq-btn{width:100%;justify-content:center}
}

/* SSPQ 2.0.880 — Répartition : affectations, accès formés et actions d’unité */
.sspq-time-now-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sspq-time-now-control input{flex:1 1 150px;min-width:0}
.sspq-operations-trained-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px 14px}
.sspq-operations-trained-list .sspq-checkline{margin:0;padding:10px 12px;border:1px solid var(--sspq-border,#d8dee9);border-radius:10px;background:#fff}
.sspq-ops-assignment-summary{margin:.45rem 0}
.sspq-unit-delete-form{margin-top:.35rem}
.sspq-map-error{display:grid;place-items:center;align-content:center;gap:8px;min-height:320px;padding:24px;text-align:center;background:#fff7f6;border:1px solid #e8b4af;border-radius:12px;color:#7a271a}
@media(max-width:700px){
  .sspq-time-now-control{align-items:stretch}
  .sspq-time-now-control .sspq-btn{width:100%;justify-content:center}
  .sspq-operations-trained-list{grid-template-columns:1fr}
}

/* SSPQ 2.0.884 — Opération : périodes, actions de ronde et recherche des employés testeurs */
.sspq-patrol-list-tools{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;flex-wrap:wrap;min-width:0}
.sspq-patrol-period-form{display:flex;align-items:flex-end;gap:8px;margin:0}
.sspq-patrol-period-form label{display:flex;flex-direction:column;gap:4px;font-weight:800;color:#0b1f3a}
.sspq-patrol-period-form label span{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
.sspq-patrol-period-form select{min-width:150px;min-height:38px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:7px 10px;font-weight:700;color:#0f172a}
.sspq-patrol-run-card-wrap{display:flex;flex-direction:column;gap:8px;min-width:0}
.sspq-patrol-run-card-wrap>.sspq-patrol-run-card{flex:1 1 auto;min-width:0}
.sspq-patrol-card-action{display:flex;margin:0}
.sspq-patrol-card-action .sspq-btn{width:100%;justify-content:center}
.sspq-patrol-test-panel [data-sspq-test-employee-search]{width:100%}
@media(max-width:860px){
  .sspq-patrol-list-tools,.sspq-patrol-period-form,.sspq-patrol-run-sort-form{width:100%}
  .sspq-patrol-period-form label,.sspq-patrol-period-form select,.sspq-patrol-period-form .sspq-btn{width:100%}
  .sspq-patrol-list-tools{align-items:stretch;flex-direction:column}
}

/* SSPQ 2.0.887 — navigation vers le profil employé et rassemblement visible. */
.sspq-schedule-employee-profile-link{
  color:inherit;
  font:inherit;
  font-weight:inherit;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}
.sspq-schedule-employee-profile-link:hover,
.sspq-schedule-employee-profile-link:focus-visible{
  text-decoration-thickness:2px;
}
.sspq-work-transport-chip{
  white-space:normal;
  overflow-wrap:anywhere;
}
.sspq-bulk-edit-form textarea[name="bulk_notes"]{
  min-height:92px;
  resize:vertical;
}

/* SSPQ 2.0.891 — flux séquentiel des interventions et navigation. */
.sspq-incident-actions>.sspq-ops-navigation-btn,.sspq-incident-actions>.sspq-ops-report-close-btn{width:100%;justify-content:center;box-sizing:border-box}
.sspq-ops-workflow-form{width:100%;margin:0!important;padding:0!important;border:0!important;background:transparent!important}
.sspq-ops-workflow-form .sspq-ops-workflow-btn{width:100%;justify-content:center;min-height:44px}
.sspq-ops-report-close-btn{min-height:46px;background:var(--sspq-navy,#0b1f3a)!important;color:#fff!important;text-align:center}
@media(max-width:980px){.sspq-incident-actions>.sspq-ops-navigation-btn,.sspq-incident-actions>.sspq-ops-report-close-btn{width:100%!important}}

/* SSPQ 2.0.893 — rapport patrouilleur et séparation PDF Répartition / Patrouilleur. */
.sspq-ops-timeline{display:grid;gap:9px;margin:12px 0;padding:12px 14px;border:1px solid var(--sspq-border,#d8dee9);border-radius:12px;background:#f8fafc}
.sspq-ops-timeline-title{font-size:.9rem;color:var(--sspq-navy,#0b1f3a)}
.sspq-ops-timeline-employee{font-weight:800;color:#24364b;padding-top:3px}
.sspq-ops-timeline-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:7px}
.sspq-ops-timeline-step{display:grid;gap:2px;padding:8px 10px;border:1px solid #dbe3ec;border-radius:9px;background:#fff}
.sspq-ops-timeline-step span{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em;color:#64748b}
.sspq-ops-timeline-step time{font-weight:800;color:#0f172a}
.sspq-delete-incident-details{width:100%;border:1px solid #fecaca;border-radius:10px;background:#fff7f7}
.sspq-delete-incident-details>summary{cursor:pointer;padding:10px 12px;font-weight:800;color:#991b1b}
.sspq-delete-incident-form{display:grid!important;gap:8px!important;padding:0 12px 12px!important;margin:0!important;border:0!important;background:transparent!important}
.sspq-delete-incident-form textarea{width:100%;box-sizing:border-box;resize:vertical}
.sspq-ops-history-timeline>summary{cursor:pointer;font-weight:800;color:var(--sspq-navy,#0b1f3a)}
.sspq-ops-history-timeline .sspq-ops-timeline{min-width:min(640px,75vw);margin-top:8px}
@media(max-width:700px){
  .sspq-ops-timeline-steps{grid-template-columns:1fr}
  .sspq-ops-history-timeline .sspq-ops-timeline{min-width:0;width:min(78vw,420px)}
}

/* SSPQ 2.0.895 — recherche de site par numéro/code sans affichage du code. */

/* SSPQ 2.0.901 — sélection de dates dans un remplacement de garde. */
.sspq-on-call-replacement-scope{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px 20px}
.sspq-on-call-replacement-scope legend,.sspq-on-call-date-picker .sspq-field-label{display:block;width:100%;font-weight:700;margin-bottom:8px}
.sspq-on-call-replacement-scope label{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.sspq-on-call-date-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}
.sspq-on-call-date-group{display:contents}
.sspq-on-call-date-option{display:flex;align-items:center;gap:9px;min-height:44px;padding:10px 12px;border:1px solid var(--sspq-border,#d7dee8);border-radius:10px;background:var(--sspq-surface,#fff)}
.sspq-on-call-date-option.is-unavailable{opacity:.62}
.sspq-on-call-period-person{display:flex;flex-direction:column;gap:2px;padding:5px 0}
.sspq-on-call-period-person+.sspq-on-call-period-person{border-top:1px solid var(--sspq-border,#d7dee8)}
.sspq-on-call-period-person small{display:block}
.sspq-on-call-period-actions{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
@media (max-width:700px){.sspq-on-call-date-grid{grid-template-columns:1fr}.sspq-on-call-replacement-scope{flex-direction:column;gap:10px}}

/* SSPQ 2.0.902 — checklist obligatoire de fin de quart */
.sspq-checkout-admin-list{display:grid;gap:12px;margin:12px 0}.sspq-checkout-admin-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:12px;align-items:end;padding:12px;border:1px solid var(--sspq-border,#d9e0e8);border-radius:10px}.sspq-checkout-admin-row label{margin:0}.sspq-checkout-item{padding:14px 0;border-bottom:1px solid var(--sspq-border,#d9e0e8)}.sspq-checkout-item:last-child{border-bottom:0}.sspq-checkout-item [data-anomaly-fields]{display:grid;grid-template-columns:180px 1fr;gap:12px;margin-top:10px}.sspq-checkout-item textarea{width:100%}@media(max-width:760px){.sspq-checkout-admin-row,.sspq-checkout-item [data-anomaly-fields]{grid-template-columns:1fr}.sspq-checkout-admin-row{align-items:stretch}}

/* SSPQ 2.0.903 - vérification de fin de quart : modale mobile isolée */
body.sspq-checkout-modal-open{overflow:hidden!important}
#sspq-checkout-modal{z-index:100500!important;background:transparent!important;align-items:center!important;justify-content:center!important;padding:clamp(10px,3vw,22px)!important;overflow:hidden!important}
#sspq-checkout-modal .sspq-modal-backdrop{position:absolute;inset:0;background:rgba(2,8,23,.66)}
#sspq-checkout-modal .sspq-checkout-modal-card{position:relative;z-index:1;width:min(640px,100%);max-width:640px;max-height:92vh;max-height:calc(100dvh - 24px);padding:0!important;overflow:hidden!important;display:flex;flex-direction:column;background:#fff;color:var(--sspq-text,#172033);border-radius:18px;box-shadow:0 24px 80px rgba(2,8,23,.42)}
#sspq-checkout-modal .sspq-modal-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;margin:0;padding:18px 20px;border-bottom:1px solid var(--sspq-border,#d9dee7);background:#fff}
#sspq-checkout-modal .sspq-modal-head h2{margin:0;padding-right:44px;color:var(--sspq-navy,#0b1f3a);font-size:clamp(20px,4vw,28px);line-height:1.2;font-weight:900}
#sspq-checkout-modal .sspq-modal-close{position:absolute;top:12px;right:14px;width:40px;height:40px;min-width:40px;padding:0!important;display:grid;place-items:center;font-size:26px;line-height:1}
#sspq-checkout-modal .sspq-modal-body{position:relative;min-height:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:18px 20px 20px;background:#fff}
#sspq-checkout-modal .sspq-modal-body>p{margin:0 0 16px;color:var(--sspq-muted,#687386);font-size:15px;line-height:1.45}
#sspq-checkout-modal .sspq-checkout-item{margin:0 0 12px;padding:14px;border:1px solid var(--sspq-border,#d9dee7);border-radius:14px;background:#f8fafc}
#sspq-checkout-modal .sspq-checkline{display:flex!important;align-items:flex-start!important;gap:10px!important;margin:0;color:var(--sspq-text,#172033);font-size:16px;line-height:1.35}
#sspq-checkout-modal .sspq-checkline input[type=checkbox]{width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;margin:0!important;flex:0 0 22px}
#sspq-checkout-modal .sspq-checkout-item .sspq-muted{margin:6px 0 0 32px;font-size:14px;line-height:1.4}
#sspq-checkout-modal [data-anomaly-fields]{display:grid;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--sspq-border,#d9dee7)}
#sspq-checkout-modal [data-anomaly-fields][hidden]{display:none!important}
#sspq-checkout-modal [data-anomaly-fields] label{display:flex;flex-direction:column;gap:6px;color:var(--sspq-text,#172033);font-weight:800;font-size:14px}
#sspq-checkout-modal select,#sspq-checkout-modal textarea{display:block;width:100%!important;max-width:100%;box-sizing:border-box;border:1px solid var(--sspq-border,#d9dee7);border-radius:10px;background:#fff;color:var(--sspq-text,#172033);font:inherit;padding:11px 12px}
#sspq-checkout-modal select{min-height:46px}
#sspq-checkout-modal textarea{min-height:96px;resize:vertical}
#sspq-checkout-modal .sspq-modal-actions{position:sticky;bottom:-20px;z-index:2;display:flex;justify-content:flex-end;gap:10px;margin:18px -20px -20px;padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--sspq-border,#d9dee7);background:#fff;box-shadow:0 -8px 18px rgba(15,23,42,.06)}
#sspq-checkout-modal .sspq-modal-actions .sspq-btn{min-height:46px;margin:0!important}
@media(max-width:600px){#sspq-checkout-modal{padding:8px!important;align-items:flex-end!important}#sspq-checkout-modal .sspq-checkout-modal-card{width:100%;max-width:none;max-height:96vh;max-height:calc(100dvh - 8px);border-radius:16px 16px 10px 10px}#sspq-checkout-modal .sspq-modal-head{padding:16px}#sspq-checkout-modal .sspq-modal-head h2{font-size:22px}#sspq-checkout-modal .sspq-modal-body{padding:14px 14px 16px}#sspq-checkout-modal .sspq-checkout-item{padding:12px}#sspq-checkout-modal .sspq-modal-actions{display:grid;grid-template-columns:1fr;margin:16px -14px -16px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));bottom:-16px}#sspq-checkout-modal .sspq-modal-actions .sspq-btn{width:100%!important;justify-content:center}#sspq-checkout-modal select,#sspq-checkout-modal textarea{font-size:16px}}


/* SSPQ 2.0.905 — confirmation volontaire de chaque équipement */
#sspq-checkout-modal .sspq-checkout-anomaly-toggle{display:inline-flex;align-items:center;justify-content:center;margin:10px 0 0 32px;padding:0;border:0;background:transparent;color:var(--sspq-link,#235aa6);font:inherit;font-size:14px;font-weight:800;text-decoration:underline;cursor:pointer}
#sspq-checkout-modal .sspq-checkout-anomaly-toggle:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:4px}
#sspq-checkout-modal .sspq-checkout-item.is-invalid{border-color:var(--sspq-danger,#c3365d);box-shadow:0 0 0 2px rgba(195,54,93,.12)}
#sspq-checkout-modal .sspq-checkout-item-error{margin:10px 0 0;color:var(--sspq-danger,#b4234d);font-size:14px;line-height:1.4;font-weight:800}
@media(max-width:600px){#sspq-checkout-modal .sspq-checkout-anomaly-toggle{margin-left:32px;min-height:38px}}
