:root{
  --bg:#0b1120;--bg2:#111827;--panel:rgba(15,23,42,.90);--panel2:#172033;
  --line:rgba(148,163,184,.12);--line2:rgba(148,163,184,.22);
  --text:#f8fafc;--muted:#94a3b8;--accent:#38bdf8;--accent2:#2563eb;
  --cyan:#22d3ee;--warn:#f59e0b;--danger:#f43f5e;--ok:#34d399;
  --shadow:0 25px 70px rgba(0,0,0,.32);--radius:24px;--radius-sm:15px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text)}
body{min-height:100vh;overflow-x:hidden}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
#ambient{position:fixed;inset:0;pointer-events:none;background:
 radial-gradient(circle at 16% 12%,rgba(37,99,235,.16),transparent 32%),
 radial-gradient(circle at 84% 16%,rgba(34,211,238,.10),transparent 28%),
 radial-gradient(circle at 58% 88%,rgba(124,58,237,.08),transparent 30%),
 linear-gradient(145deg,#090f1d 0%,#0f172a 52%,#0b1120 100%);z-index:-2}
#ambient:after{content:"";position:absolute;inset:0;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:34px 34px}
.glass{background:linear-gradient(145deg,rgba(20,30,50,.92),rgba(11,17,32,.92));border:1px solid var(--line2);box-shadow:var(--shadow);backdrop-filter:blur(24px)}
.login-view{min-height:100vh;padding:42px 6vw;display:grid;grid-template-columns:1fr minmax(360px,520px);gap:7vw;align-items:center;max-width:1500px;margin:auto}
.login-brand{position:absolute;left:6vw;top:42px;display:flex;align-items:center;gap:14px}
.brand-mark{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(145deg,#38bdf8,#2563eb);color:#eff6ff;font:800 16px Manrope;box-shadow:0 0 40px rgba(56,189,248,.24)}
.brand-mark.small{width:40px;height:40px;border-radius:13px}
.brand-name{font:800 18px Manrope}.brand-sub{font-size:10px;color:var(--muted);letter-spacing:.18em;text-transform:uppercase;margin-top:3px}
.login-view:before{content:"TRANSPORT";font:800 clamp(70px,13vw,190px) Manrope;letter-spacing:-.07em;color:rgba(255,255,255,.018);position:absolute;left:3vw;bottom:2vh;pointer-events:none}
.login-panel{grid-column:2;padding:48px;border-radius:32px}
.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--accent);font-weight:800}
.login-panel h1{font:800 clamp(34px,4.2vw,64px)/1.02 Manrope;margin:13px 0 20px;letter-spacing:-.045em}.login-panel h1 span{color:var(--accent)}
.muted{color:var(--muted);line-height:1.65}
.form-stack{display:grid;gap:16px;margin-top:34px}.form-stack label,.field{display:grid;gap:8px;color:#b7cec7;font-size:12px;font-weight:700}
input,select,textarea{width:100%;border:1px solid var(--line2);background:#0d1527;color:var(--text);border-radius:13px;padding:13px 14px;outline:none;transition:.2s}
input:focus,select:focus,textarea:focus{border-color:rgba(56,189,248,.65);box-shadow:0 0 0 3px rgba(56,189,248,.10)}
.btn{border:0;border-radius:13px;padding:11px 16px;background:#1e293b;color:var(--text);font-weight:800;transition:.2s}.btn:hover{transform:translateY(-1px);filter:brightness(1.06)}
.btn.primary{background:linear-gradient(135deg,#38bdf8,#2563eb);color:#ffffff;box-shadow:0 12px 30px rgba(37,99,235,.18)}
.btn.warn{background:rgba(245,158,11,.14);color:var(--warn);border:1px solid rgba(245,158,11,.25)}.btn.danger{background:rgba(255,107,118,.14);color:#ff98a0;border:1px solid rgba(255,107,118,.22)}
.btn.ghost{background:transparent;border:1px solid var(--line2)}.btn.xl{min-height:52px;margin-top:4px}.btn.sm{padding:8px 10px;border-radius:10px;font-size:12px}
.form-error{color:#ff8992;min-height:18px;font-size:12px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}
.sidebar{height:100vh;position:sticky;top:0;padding:24px 18px;border-right:1px solid var(--line);background:rgba(9,15,29,.88);backdrop-filter:blur(22px);display:flex;flex-direction:column;z-index:30}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 27px}.sidebar-brand strong{display:block;font:800 14px Manrope}.sidebar-brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.16em;text-transform:uppercase;margin-top:3px}
#mainNav{display:grid;gap:4px;overflow:auto;padding-right:2px}.nav-item{border:0;background:transparent;color:#88a59c;border-radius:13px;padding:11px 12px;display:grid;grid-template-columns:24px 1fr;align-items:center;gap:7px;text-align:left}
.nav-item span{font-size:17px;text-align:center}.nav-item b{font-size:12px}.nav-item:hover{background:rgba(255,255,255,.035);color:#d6ebe4}.nav-item.active{background:linear-gradient(90deg,rgba(56,189,248,.16),rgba(37,99,235,.05));color:#7dd3fc;box-shadow:inset 0 0 0 1px rgba(56,189,248,.12)}
.nav-label{font-size:8px;letter-spacing:.22em;color:#4e6a62;font-weight:800;padding:18px 12px 7px}
.sidebar-footer{margin-top:auto;padding:16px 8px 2px}.status-pill{font-size:10px;color:#91aea5;display:flex;align-items:center;gap:7px}.status-pill i{width:7px;height:7px;background:var(--ok);border-radius:50%;box-shadow:0 0 15px var(--ok)}.logout{margin-top:15px;padding:0;border:0;background:none;color:#617f76;font-size:11px}
.main{min-width:0}.topbar{height:92px;display:flex;align-items:center;padding:0 34px;border-bottom:1px solid var(--line);background:rgba(11,17,32,.72);backdrop-filter:blur(20px);position:sticky;top:0;z-index:20}
.topbar h2{font:800 22px Manrope;margin:4px 0 0;letter-spacing:-.02em}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:24px}.clock{text-align:right}.clock strong{display:block;font:800 16px Manrope}.clock span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}
.user-chip{display:flex;align-items:center;gap:10px;border-left:1px solid var(--line2);padding-left:22px}.avatar{width:38px;height:38px;border-radius:13px;background:linear-gradient(135deg,#1e3a5f,#172554);border:1px solid var(--line2);display:grid;place-items:center;color:var(--accent);font-weight:800}.user-chip strong{display:block;font-size:11px}.user-chip small{display:block;color:var(--muted);font-size:9px;margin-top:2px}
.menu-btn{display:none}.icon-btn{border:1px solid var(--line2);background:rgba(255,255,255,.03);color:var(--text);border-radius:12px;width:42px;height:42px}
.content{padding:28px 34px 50px;max-width:1800px;margin:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head h3{font:800 24px Manrope;margin:0 0 7px}.page-head p{margin:0;color:var(--muted);font-size:12px}.actions{display:flex;gap:9px;flex-wrap:wrap}
.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:13px}.kpi{position:relative;overflow:hidden;background:linear-gradient(145deg,rgba(20,29,49,.94),rgba(11,17,32,.94));border:1px solid var(--line);border-radius:19px;padding:19px}.kpi:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;background:var(--accent);filter:blur(65px);opacity:.045;right:-25px;top:-30px}.kpi small{display:block;color:#79978e;font-size:9px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.kpi strong{display:block;font:800 28px Manrope;margin-top:8px}.kpi em{font-style:normal;font-size:9px;color:#69877e}
.grid-2{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:16px;margin-top:16px}.panel{background:linear-gradient(145deg,rgba(18,27,46,.95),rgba(11,17,32,.96));border:1px solid var(--line);border-radius:21px;overflow:hidden}.panel-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.panel-head h4{margin:0;font:800 13px Manrope}.panel-body{padding:20px}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{font-size:8px;color:#68877d;text-transform:uppercase;letter-spacing:.13em;text-align:left;padding:11px 12px;border-bottom:1px solid var(--line)}.data-table td{font-size:11px;color:#c8dcd6;padding:13px 12px;border-bottom:1px solid rgba(255,255,255,.035)}.data-table tr:hover td{background:rgba(255,255,255,.018)}
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:5px 8px;font-size:9px;font-weight:800;background:rgba(255,255,255,.05);color:#a9c1ba}.badge.ok{background:rgba(52,211,153,.10);color:#6ee7b7}.badge.warn{background:rgba(255,204,102,.1);color:#ffd677}.badge.danger{background:rgba(255,107,118,.1);color:#ff929a}.badge.blue{background:rgba(110,231,249,.1);color:#8ceeff}
.empty{padding:45px 20px;text-align:center;color:#6d8b82}.empty strong{display:block;color:#9bb8af;font-size:13px;margin-bottom:5px}
.hero-ops{min-height:250px;position:relative;overflow:hidden}.hero-ops .panel-body{height:100%;display:flex;align-items:center}.orb{position:absolute;width:220px;height:220px;right:4%;top:20px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#bae6fd,#38bdf8 30%,#2563eb 60%,#172554 74%);box-shadow:0 0 80px rgba(56,189,248,.18),inset -25px -30px 55px rgba(0,0,0,.5);opacity:.72}.orb:before{content:"";position:absolute;inset:-25px;border-radius:50%;border:1px solid rgba(56,189,248,.14);box-shadow:0 0 0 25px rgba(56,189,248,.025),0 0 0 60px rgba(37,99,235,.018)}.hero-copy{max-width:58%;position:relative;z-index:1}.hero-copy .big{font:800 32px/1.05 Manrope;letter-spacing:-.04em;margin:9px 0}.hero-copy .big span{color:var(--accent)}
.health-list{display:grid;gap:10px}.health-item{border:1px solid var(--line);border-radius:14px;padding:13px;display:flex;align-items:center;gap:10px}.health-dot{width:9px;height:9px;border-radius:50%;background:#667b75}.health-dot.ok{background:var(--ok);box-shadow:0 0 15px rgba(98,230,168,.45)}.health-meta{margin-left:auto;text-align:right}.health-meta small{display:block;color:var(--muted);font-size:9px}
.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.search{max-width:350px;position:relative;flex:1}.search input{padding-left:38px}.search:before{content:"⌕";position:absolute;left:14px;top:10px;color:#6d8a81;font-size:18px;z-index:2}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:13px}.mission-card{border:1px solid var(--line);border-radius:18px;padding:17px;background:linear-gradient(145deg,rgba(14,31,27,.9),rgba(8,18,16,.92));transition:.2s}.mission-card:hover{border-color:rgba(122,247,190,.2);transform:translateY(-2px)}.mission-card .mc-top{display:flex;justify-content:space-between;gap:10px}.mission-card h4{font:800 14px Manrope;margin:8px 0 4px}.mission-card p{color:var(--muted);font-size:10px;margin:0}.mission-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:16px}.mission-meta div{background:rgba(255,255,255,.025);border-radius:10px;padding:9px}.mission-meta small{display:block;color:#617e75;font-size:8px}.mission-meta strong{display:block;margin-top:4px;font-size:10px}.mission-card .mc-actions{display:flex;gap:7px;margin-top:13px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .full{grid-column:1/-1}.setting-group{margin-bottom:20px}.setting-group h4{font:800 13px Manrope;margin:0 0 12px}.setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.status-box{border:1px solid var(--line);border-radius:14px;padding:14px;background:rgba(255,255,255,.02);display:flex;align-items:center;gap:10px}.status-box strong{font-size:11px}.status-box small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.66);backdrop-filter:blur(8px);z-index:100;display:grid;place-items:center;padding:20px}.modal{width:min(720px,100%);max-height:90vh;overflow:auto;background:#0a1715;border:1px solid var(--line2);border-radius:24px;box-shadow:var(--shadow)}.modal-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-head h3{font:800 16px Manrope;margin:0}.modal-body{padding:22px}.modal-foot{padding:16px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.close-btn{border:0;background:transparent;color:#829e95;font-size:18px}
.toast-host{position:fixed;right:20px;bottom:20px;z-index:300;display:grid;gap:8px}.toast{min-width:280px;padding:13px 15px;border-radius:13px;background:#10231f;border:1px solid var(--line2);box-shadow:var(--shadow);font-size:11px}.toast.ok{border-color:rgba(98,230,168,.28)}.toast.error{border-color:rgba(255,107,118,.28)}
.route-steps{display:grid;gap:8px}.route-step{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px;border-radius:12px;background:rgba(255,255,255,.025)}.route-step .num{width:28px;height:28px;border-radius:9px;background:rgba(122,247,190,.09);color:var(--accent);display:grid;place-items:center;font-size:9px;font-weight:800}.route-step strong{font-size:10px}.route-step small{color:var(--muted);font-size:9px}
.tech-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#9dd6c5;font-size:10px}
@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1fr}.orb{opacity:.4}}
@media(max-width:850px){.app-shell{display:block}.sidebar{position:fixed;left:-280px;width:260px;transition:.25s}.sidebar.open{left:0;box-shadow:20px 0 70px rgba(0,0,0,.5)}.menu-btn{display:block;margin-right:14px}.content{padding:22px 18px}.topbar{padding:0 18px;height:78px}.topbar-right{gap:10px}.clock{display:none}.user-chip{padding-left:10px}.login-view{display:block;padding:120px 18px 30px}.login-panel{padding:30px 24px}.login-brand{left:20px;top:28px}.form-grid,.setting-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.hero-copy{max-width:78%}}
@media(max-width:520px){.kpi-grid{grid-template-columns:1fr 1fr}.kpi{padding:15px}.kpi strong{font-size:23px}.page-head{align-items:flex-start;flex-direction:column}.login-panel h1{font-size:36px}.topbar h2{font-size:18px}.user-chip div:not(.avatar){display:none}}

/* --- Live fleet map ------------------------------------------------------ */
.tracking-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.7fr);gap:16px}
.map-panel{overflow:hidden}.live-map{height:clamp(430px,65vh,760px);width:100%;background:#07110f}
.live-map .leaflet-tile-pane{filter:saturate(.55) brightness(.58) contrast(1.15) hue-rotate(105deg)}
.live-map .leaflet-control-zoom a{background:#0d1a18;color:#dffcf0;border-color:rgba(255,255,255,.08)}
.live-map .leaflet-control-attribution{background:rgba(6,13,12,.78);color:#8ba69d}.live-map .leaflet-control-attribution a{color:#76f2ba}
.tp-map-marker{background:transparent!important;border:0!important;display:flex!important;align-items:center;justify-content:center;gap:6px;color:#eafff6;font:700 10px Inter,sans-serif}
.tp-map-marker span{width:14px;height:14px;border-radius:50%;background:#79f7bd;border:3px solid #0b1714;box-shadow:0 0 0 5px rgba(121,247,189,.17),0 0 22px rgba(121,247,189,.7)}
.tp-map-marker b{background:rgba(7,17,15,.93);border:1px solid rgba(121,247,189,.28);border-radius:8px;padding:5px 7px;white-space:nowrap;box-shadow:0 8px 22px rgba(0,0,0,.34)}
.live-fleet-list{display:grid;gap:8px;max-height:calc(65vh + 2px);overflow:auto}.live-vehicle{display:grid;grid-template-columns:16px 1fr auto;gap:11px;align-items:center;width:100%;text-align:left;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);color:inherit;border-radius:15px;padding:14px;cursor:pointer;transition:.2s ease}.live-vehicle:hover{transform:translateY(-1px);border-color:rgba(121,247,189,.28);background:rgba(121,247,189,.045)}
.vehicle-pulse{width:9px;height:9px;border-radius:50%;background:#79f7bd;box-shadow:0 0 0 5px rgba(121,247,189,.09),0 0 16px rgba(121,247,189,.7)}.live-vehicle-copy{display:flex;flex-direction:column;min-width:0}.live-vehicle-copy strong{font-size:13px}.live-vehicle-copy small,.live-vehicle-copy em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-vehicle-copy small{color:#9bb0aa;font-size:11px;margin-top:3px}.live-vehicle-copy em{font-style:normal;color:#63766f;font-size:10px;margin-top:4px}
.tp-popup{display:grid;gap:3px;min-width:150px}.tp-popup strong{font-size:14px}.tp-popup small,.tp-popup span{font-size:11px}
@media(max-width:980px){.tracking-grid{grid-template-columns:1fr}.live-map{height:52vh}.live-fleet-list{max-height:none}}

/* --- Planning import ----------------------------------------------------- */
.import-zone{display:grid;gap:12px;padding:16px;border:1px solid rgba(121,247,189,.14);background:linear-gradient(135deg,rgba(121,247,189,.055),rgba(255,255,255,.012));border-radius:18px}.import-zone h4{margin:8px 0 3px}.file-drop{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:94px;border:1px dashed rgba(121,247,189,.35);border-radius:14px;background:rgba(6,16,14,.45);cursor:pointer;transition:.2s}.file-drop:hover{border-color:#79f7bd;background:rgba(121,247,189,.05)}.file-drop input{display:none}.file-drop b{font-size:13px}.file-drop small{color:#71877f;margin-top:4px}.separator{display:flex;align-items:center;gap:12px;margin:17px 0;color:#5f746d;font-size:9px;font-weight:800;letter-spacing:.15em}.separator:before,.separator:after{content:"";height:1px;background:rgba(255,255,255,.07);flex:1}.import-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.import-stats>div{background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:10px}.import-stats small{display:block;color:#789087;font-size:8px;font-weight:800}.import-stats strong{display:block;font-size:18px;margin-top:3px}.import-stats .bad strong{color:#ff7b82}.import-errors{font-size:11px;color:#a4b8b1;background:rgba(255,87,98,.035);border:1px solid rgba(255,87,98,.12);padding:9px 11px;border-radius:10px}.import-errors summary{cursor:pointer;font-weight:700;color:#f1a2a7;margin-bottom:5px}
@media(max-width:680px){.import-stats{grid-template-columns:repeat(2,1fr)}}

/* ===== TransportPremium V1.1 ===== */
.btn.import-main{
  background:linear-gradient(90deg,#38bdf8 0%,#57c785 50%,#fb7185 100%);
  color:#031514;border:0;font-weight:900;box-shadow:0 12px 28px rgba(37,99,235,.20)
}
.import-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-radius:18px;margin-bottom:16px;background:linear-gradient(110deg,rgba(37,99,235,.18),rgba(56,189,248,.12),rgba(237,221,83,.10));border:1px solid rgba(56,189,248,.25)}
.import-hero strong{font-size:18px}.import-hero p{margin:4px 0 0;color:var(--muted);font-size:12px}.import-hero span{font:800 11px Manrope,sans-serif;letter-spacing:.15em;color:#7be0b0}
.hint-box{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.035);color:var(--muted);font-size:12px;margin:12px 0}
.import-stats.big{grid-template-columns:repeat(6,minmax(90px,1fr));gap:8px}.import-stats.big>div{padding:14px;border-radius:14px;background:rgba(255,255,255,.035)}.import-stats.big small{display:block;color:var(--muted);font-size:9px;font-weight:800}.import-stats.big strong{display:block;font-size:23px;margin-top:5px}.import-stats .good{color:#72e6ad}.import-stats .bad{color:#ff7a84}
.auto-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-top:12px}.auto-group{padding:11px 12px;border-radius:13px;background:rgba(37,99,235,.08);border:1px solid rgba(37,99,235,.16)}.auto-group b,.auto-group span{display:block}.auto-group span{color:var(--muted);font-size:11px;margin-top:3px}
.device-kpis{margin-bottom:16px}.device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}.device-card{padding:18px;border-radius:22px;background:linear-gradient(145deg,rgba(18,36,33,.96),rgba(8,20,18,.96));border:1px solid rgba(255,255,255,.07);box-shadow:0 18px 42px rgba(0,0,0,.16)}.device-card.online{border-color:rgba(56,189,248,.24)}.device-card.offline{opacity:.8}.device-head{display:flex;align-items:center;gap:12px}.device-head>div:nth-child(2){flex:1}.device-head strong,.device-head small{display:block}.device-head small{color:var(--muted);font-size:11px;margin-top:2px}.tablet-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#38bdf8,#57c785);color:#03211e;font-size:21px;font-weight:900}.device-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.device-metrics>div{padding:11px;border-radius:13px;background:rgba(255,255,255,.035)}.device-metrics small{display:block;color:var(--muted);font-size:8px;font-weight:800}.device-metrics b{display:block;margin-top:4px;font-size:13px}.device-meta{font-size:11px;margin-bottom:14px}.device-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.import-stats.big{grid-template-columns:repeat(2,1fr)}.device-grid{grid-template-columns:1fr}.device-metrics{grid-template-columns:repeat(2,1fr)}}

/* ===== TransportPremium V1.2 - Centre d'urgence ===== */
.emergency-nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:#e8273f;color:#fff;display:grid;place-items:center;font-size:9px;font-style:normal;font-weight:900;box-shadow:0 0 0 4px rgba(232,39,63,.12)}
#tpEmergencyAlarmHost{position:fixed;left:50%;top:18px;transform:translateX(-50%);z-index:1000;width:min(940px,calc(100% - 36px));pointer-events:none}.emergency-alarm{pointer-events:auto;display:flex;align-items:center;gap:16px;padding:14px 16px;border-radius:20px;background:linear-gradient(100deg,#3a0b12,#721322 55%,#a6172a);border:1px solid rgba(255,255,255,.18);box-shadow:0 20px 70px rgba(232,39,63,.42);animation:tpAlarmGlow 1.15s infinite alternate}.emergency-pulse{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#ff304d;color:#fff;font:900 30px Manrope;box-shadow:0 0 0 8px rgba(255,48,77,.16)}.emergency-copy{display:flex;flex-direction:column;min-width:0;flex:1}.emergency-copy small{font-weight:900;letter-spacing:.16em;color:#ffb5bf}.emergency-copy strong{font-size:20px;margin-top:2px}.emergency-copy span,.emergency-copy em{font-size:11px;color:#ffd6dc;margin-top:3px;font-style:normal}.emergency-actions{display:flex;gap:8px}.btn.danger{background:#ff304d;color:#fff;border-color:#ff304d;font-weight:900}.emergency-list{display:grid;gap:12px}.emergency-card{display:grid;grid-template-columns:54px 1fr auto;gap:15px;align-items:center;padding:16px;border-radius:19px;background:#101b19;border:1px solid rgba(255,255,255,.07)}.emergency-card.open{border-color:rgba(255,48,77,.55);box-shadow:inset 4px 0 #ff304d}.emergency-card.acknowledged{border-color:rgba(237,221,83,.32);box-shadow:inset 4px 0 #fb7185}.emergency-card.resolved{opacity:.72;box-shadow:inset 4px 0 #57c785}.emergency-card-icon{width:48px;height:48px;border-radius:15px;background:rgba(255,48,77,.12);color:#ff6177;display:grid;place-items:center;font-size:25px;font-weight:900}.emergency-card-copy{display:grid;gap:4px}.emergency-card-copy strong{font-size:15px}.emergency-card-copy b{font-size:12px}.emergency-card-copy small{font-size:10px;color:var(--muted)}.emergency-card-copy a{font-size:10px;color:#65dcb0}.emergency-card-actions{display:flex;gap:8px}@keyframes tpAlarmGlow{from{filter:brightness(.94)}to{filter:brightness(1.13)}}
@media(max-width:760px){.emergency-alarm{align-items:flex-start}.emergency-actions{flex-direction:column}.emergency-card{grid-template-columns:44px 1fr}.emergency-card-actions{grid-column:1/-1;justify-content:flex-end}}

/* V1.3 — messages groupés & photo de contrôle */
.device-check{display:flex;align-items:center;justify-content:center;cursor:pointer;margin-right:2px}
.device-check input{display:none}
.device-check span{width:20px;height:20px;border:1px solid rgba(255,255,255,.22);border-radius:6px;background:rgba(255,255,255,.05);display:block;position:relative}
.device-check input:checked+span{background:linear-gradient(135deg,#38bdf8,#57c785);border-color:transparent}
.device-check input:checked+span:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#041816;font-size:13px;font-weight:900}
.checkbox-field{display:flex!important;align-items:center;gap:10px;padding-top:26px}
.checkbox-field input{width:18px;height:18px}
.photo-request-grid{padding:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.photo-request-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}
.photo-request-card>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.photo-request-card strong{font-size:14px}
.photo-request-card small{color:var(--muted,#82928f);font-size:11px}
.photo-request-card em{font-style:normal;color:#ff7682;font-size:11px}
.photo-request-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.driver-photo-view{display:flex;align-items:center;justify-content:center;background:#030807;border-radius:18px;overflow:hidden;min-height:320px}
.driver-photo-view img{max-width:100%;max-height:68vh;object-fit:contain;display:block}

/* ===== TransportPremium V1.4 · Dispatch LIVE ===== */
.live-dot{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:rgba(56,189,248,.08);border:1px solid rgba(56,189,248,.18);font-size:10px;font-weight:900;color:#7dd3fc;letter-spacing:.08em}.live-dot i{width:7px;height:7px;border-radius:50%;background:#38bdf8;box-shadow:0 0 0 5px rgba(56,189,248,.10);animation:tpLivePulse 1.2s infinite alternate}.dispatch-date{height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:#111827;color:var(--text);padding:0 12px;font:600 11px Inter}.dispatch-summary{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:9px;margin-bottom:14px}.dispatch-summary>div{padding:12px 14px;border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));border:1px solid rgba(255,255,255,.07)}.dispatch-summary small{display:block;font-size:8px;letter-spacing:.08em;font-weight:900;color:var(--muted)}.dispatch-summary strong{display:block;margin-top:4px;font-size:19px}.dispatch-summary .tz-value{font-size:12px;margin-top:7px}.dispatch-board{display:flex;gap:12px;overflow:auto;padding:2px 2px 20px;min-height:65vh;scroll-snap-type:x proximity}.dispatch-lane{flex:0 0 330px;scroll-snap-align:start;padding:10px;border-radius:20px;background:rgba(15,23,42,.82);border:1px solid rgba(255,255,255,.065);transition:.18s ease}.dispatch-lane.unassigned{flex-basis:390px;border-color:rgba(255,92,109,.22);background:linear-gradient(180deg,rgba(255,67,86,.055),rgba(15,23,42,.88))}.dispatch-lane.drag-over,.dispatch-lane:hover{border-color:rgba(56,189,248,.28)}.dispatch-lane>header{display:flex;align-items:center;justify-content:space-between;padding:5px 5px 10px 7px}.dispatch-lane>header small{display:block;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.11em}.dispatch-lane>header h4{font-size:13px;margin:3px 0 0}.dispatch-lane>header>span{min-width:28px;height:28px;padding:0 8px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.055);font-size:11px;font-weight:900}.dispatch-stack{display:grid;gap:9px}.dispatch-empty{min-height:95px;border-radius:15px;border:1px dashed rgba(255,255,255,.08);display:grid;place-items:center;color:var(--muted);font-size:10px}.dispatch-mission{padding:12px;border-radius:16px;background:linear-gradient(145deg,#172033,#111827);border:1px solid rgba(255,255,255,.065);box-shadow:0 8px 24px rgba(0,0,0,.13);cursor:grab;transition:transform .16s ease,border-color .16s ease,opacity .16s ease}.dispatch-mission:hover{transform:translateY(-1px);border-color:rgba(56,189,248,.24)}.dispatch-mission.dragging{opacity:.48;transform:scale(.98)}.dispatch-mission.in{box-shadow:inset 3px 0 #38bdf8,0 8px 24px rgba(0,0,0,.13)}.dispatch-mission.out{box-shadow:inset 3px 0 #fb7185,0 8px 24px rgba(0,0,0,.13)}.dispatch-mission-top{display:flex;align-items:center;gap:7px}.dispatch-mission-top strong{margin-left:auto;font-size:16px}.dispatch-mission-top em{font-size:9px;color:var(--muted);font-style:normal}.movement-pill{padding:4px 7px;border-radius:8px;font-size:7px;font-weight:1000;letter-spacing:.08em}.movement-pill.in{color:#4fe2f2;background:rgba(37,99,235,.14)}.movement-pill.out{color:#fda4af;background:rgba(251,113,133,.12)}.dispatch-mission h4{margin:8px 0 5px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dispatch-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:9px;color:var(--muted)}.dispatch-decline{display:grid;gap:2px;margin-top:9px;padding:8px 9px;border-radius:10px;background:rgba(255,73,91,.08);border:1px solid rgba(255,73,91,.13)}.dispatch-decline b{font-size:7px;color:#ff8490;letter-spacing:.07em}.dispatch-decline span{font-size:9px;color:#ffc4ca}.candidate-row{display:flex;gap:5px;overflow:auto;margin-top:8px;padding-bottom:1px}.candidate-chip{flex:0 0 auto;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);color:var(--text);border-radius:9px;padding:6px 8px;cursor:pointer;text-align:left}.candidate-chip.best{border-color:rgba(56,189,248,.24);background:rgba(56,189,248,.07)}.candidate-chip b,.candidate-chip small{display:block;font-size:8px}.candidate-chip small{margin-top:2px;color:var(--muted)}@keyframes tpLivePulse{to{filter:brightness(1.45);transform:scale(1.12)}}
@media(max-width:1050px){.dispatch-summary{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.dispatch-summary{grid-template-columns:repeat(2,1fr)}.dispatch-lane{flex-basis:290px}.dispatch-lane.unassigned{flex-basis:330px}}

/* ===== TransportPremium V1.5 · Exploitation LIVE ===== */
.ops-page-head{align-items:center}.ops-kpis{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-bottom:12px}.ops-kpis .kpi{padding:14px 15px;border-radius:16px}.ops-kpis .kpi strong{font-size:22px}.ops-toolbar{display:grid;grid-template-columns:150px 160px minmax(180px,1fr) 160px minmax(190px,1.2fr);gap:9px;margin-bottom:12px}.ops-toolbar input,.ops-toolbar select{height:40px;padding:0 11px;border-radius:12px;font-size:10px}.ops-workspace{display:grid;grid-template-columns:minmax(310px,.82fr) minmax(420px,1.5fr) minmax(360px,1fr);gap:12px;min-height:calc(100vh - 315px)}.ops-circuits,.ops-map-card,.ops-inspector{min-width:0;border-radius:20px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(12,27,24,.94),rgba(7,17,15,.94));overflow:hidden}.ops-circuits{display:flex;flex-direction:column}.ops-section-title{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;border-bottom:1px solid var(--line)}.ops-section-title>div{display:flex;align-items:center;gap:9px}.ops-section-title small{font-size:8px;letter-spacing:.13em;color:var(--muted);font-weight:900}.ops-section-title strong{font-size:18px}.ops-section-title>span{font-size:8px;color:#6e8c83}.ops-circuit-list{padding:9px;display:grid;gap:8px;overflow:auto;max-height:calc(100vh - 370px)}.ops-circuit{padding:12px;border-radius:16px;border:1px solid rgba(255,255,255,.06);background:linear-gradient(145deg,rgba(21,40,36,.88),rgba(12,25,22,.88));cursor:pointer;transition:.16s ease;position:relative}.ops-circuit:hover{transform:translateY(-1px);border-color:rgba(56,189,248,.2)}.ops-circuit.selected{border-color:rgba(56,189,248,.48);box-shadow:inset 3px 0 #57c785,0 10px 28px rgba(0,0,0,.14)}.ops-circuit.overload{box-shadow:inset 3px 0 var(--danger)}.ops-circuit.drop-ready{border-color:#57c785;background:rgba(56,189,248,.09);transform:scale(.995)}.ops-circuit-top{display:flex;align-items:center;gap:6px}.ops-circuit-top>strong{margin-left:auto;font-size:15px}.ops-circuit-top>em{font-size:9px;font-style:normal;color:var(--muted)}.ops-circuit h4{margin:8px 0 3px;font-size:13px}.ops-circuit-code{font-size:8px;color:#68877d}.ops-circuit-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:10px 0 8px}.ops-circuit-metrics span{display:grid;gap:2px;padding:6px 5px;border-radius:9px;background:rgba(255,255,255,.027);font-size:8px;color:var(--muted)}.ops-circuit-metrics b{color:#e2e8f0;font-size:9px}.ops-circuit-footer{display:flex;justify-content:space-between;gap:8px;font-size:8px;color:#94a3b8}.warning-text{color:#ffd677!important}.danger-text{color:#ff8992!important}.ops-map-card{position:relative}.ops-map{height:100%;min-height:590px;background:#0d1423}.ops-map .leaflet-tile{filter:saturate(.7) brightness(.72) contrast(1.08)}.ops-map-legend{position:absolute;left:14px;bottom:14px;z-index:500;display:flex;gap:8px;flex-wrap:wrap;padding:9px 11px;border-radius:12px;background:rgba(5,14,12,.88);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(12px);font-size:9px;color:#cbd5e1}.ops-map-legend span{display:flex;align-items:center;gap:6px}.ops-map-legend .line{width:22px;height:4px;border-radius:99px}.ops-map-legend .line.in{background:#2563eb}.ops-map-legend .line.out{background:#ff6b76}.ops-stop-marker,.ops-dest-marker,.ops-driver-marker{display:grid!important;place-items:center;border-radius:50%;font-weight:900;color:#05201a;border:2px solid rgba(255,255,255,.8);box-shadow:0 8px 22px rgba(0,0,0,.32)}.ops-stop-marker{background:#38bdf8}.ops-dest-marker{background:#f59e0b;font-size:16px}.ops-driver-marker{background:#2563eb;color:#fff}.ops-inspector{overflow:auto;max-height:calc(100vh - 315px);padding-bottom:14px}.ops-inspector-head{padding:15px 16px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ops-inspector-head small{font-size:7px;letter-spacing:.13em;color:var(--accent);font-weight:900}.ops-inspector-head h3{margin:3px 0 2px;font-size:16px}.ops-inspector-head span{font-size:9px;color:var(--muted)}.ops-mini-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px 12px}.ops-mini-kpis>div{padding:9px;border-radius:11px;background:rgba(255,255,255,.032)}.ops-mini-kpis small{display:block;font-size:7px;color:var(--muted);font-weight:900}.ops-mini-kpis b{display:block;font-size:12px;margin-top:4px}.ops-assignment{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:4px 12px 11px}.ops-assignment label{font-size:8px;color:var(--muted);font-weight:800}.ops-assignment select{margin-top:5px;height:38px;padding:0 9px;font-size:9px}.ops-assignment .btn{font-size:9px}.ops-action-strip{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 12px;border-bottom:1px solid var(--line)}.ops-route-title{padding:12px 13px 8px;display:flex;align-items:center;justify-content:space-between}.ops-route-title>div{display:flex;gap:8px;align-items:center}.ops-route-title small{font-size:7px;color:var(--muted);font-weight:900;letter-spacing:.1em}.ops-route-title strong{font-size:11px}.ops-route-title>span{font-size:7px;color:#64748b}.ops-stop-list{padding:0 10px;display:grid;gap:6px}.ops-stop{display:grid;grid-template-columns:20px 30px 1fr 28px;gap:7px;align-items:center;padding:8px;border:1px solid rgba(255,255,255,.055);border-radius:12px;background:rgba(255,255,255,.024);transition:.15s}.ops-stop[draggable="true"]{cursor:grab}.ops-stop.dragging{opacity:.42}.ops-stop:hover{border-color:rgba(56,189,248,.2)}.ops-stop.virtual{grid-template-columns:30px 1fr;background:rgba(237,221,83,.045);border-style:dashed}.ops-stop.processed{opacity:.62}.ops-grip{font-size:14px;color:#5e7a72}.ops-stop-num{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;background:rgba(56,189,248,.1);color:#7dd3fc;font-size:9px;font-weight:900}.ops-stop-main strong,.ops-stop-main small{display:block}.ops-stop-main strong{font-size:9px}.ops-stop-main small{margin-top:3px;color:var(--muted);font-size:7px}.ops-stop-pax{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;background:rgba(37,99,235,.09);font-size:9px;font-weight:900}.ops-live-driver{margin:11px 12px 0;padding:10px;border-radius:12px;border:1px solid var(--line);display:flex;align-items:center;gap:8px}.ops-live-driver strong,.ops-live-driver small{display:block}.ops-live-driver strong{font-size:9px}.ops-live-driver small{font-size:7px;color:var(--muted);margin-top:3px}.ops-preview-head{text-align:center;padding-bottom:12px}.ops-preview-head h3{margin:10px 0 5px}.ops-preview-head p{margin:0;color:var(--muted);font-size:10px}.ops-preview-total{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 13px}.ops-preview-total>div{padding:14px;border-radius:15px;background:rgba(255,255,255,.035);border:1px solid var(--line)}.ops-preview-total small,.ops-preview-total strong,.ops-preview-total em{display:block}.ops-preview-total small{font-size:8px;color:var(--muted)}.ops-preview-total strong{margin:5px 0;font-size:14px}.ops-preview-total em{font-style:normal;font-size:11px;font-weight:900}.ops-preview-total .gain{color:#7dd3fc}.ops-preview-total .loss{color:#ff8992}.ops-preview-routes{display:grid;gap:8px}.ops-preview-route{padding:12px;border:1px solid var(--line);border-radius:13px}.ops-preview-route>strong{display:block;margin-bottom:7px}.ops-preview-route>div{display:grid;grid-template-columns:60px 1fr;gap:8px;font-size:9px;padding:3px 0}.ops-preview-route span{color:var(--muted)}.candidate-list{display:grid;gap:8px}.candidate-full{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.025);color:var(--text);border-radius:13px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;text-align:left}.candidate-full.best{border-color:rgba(56,189,248,.32);background:rgba(56,189,248,.06)}.candidate-full b,.candidate-full small{display:block}.candidate-full small{font-size:8px;color:var(--muted);margin-top:3px}.ops-history{display:grid;gap:7px;max-height:62vh;overflow:auto}.ops-history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.025)}.ops-history-row small,.ops-history-row strong,.ops-history-row span{display:block}.ops-history-row small{font-size:7px;color:var(--muted)}.ops-history-row strong{font-size:10px;margin:3px 0}.ops-history-row span{font-size:8px;color:#64748b}

/* ===== V1.5 · Direction Générale ===== */
.exec-toolbar{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:12px;margin-bottom:12px;border-radius:16px;background:rgba(255,255,255,.025);border:1px solid var(--line)}.exec-toolbar label{display:grid;gap:5px;font-size:7px;color:var(--muted);font-weight:900;letter-spacing:.06em}.exec-toolbar input,.exec-toolbar select{height:36px;min-width:135px;padding:0 10px;font-size:9px}.exec-toolbar .btn{height:36px;padding:0 12px;font-size:9px}.exec-kpi-grid{display:grid;grid-template-columns:repeat(8,minmax(120px,1fr));gap:9px}.exec-kpi{padding:14px 14px 12px;border-radius:17px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(17,35,31,.9),rgba(8,20,18,.92));position:relative;overflow:hidden}.exec-kpi small{display:block;font-size:7px;color:#78968d;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.exec-kpi strong{display:block;margin-top:7px;font:800 23px Manrope}.exec-kpi em{position:absolute;right:10px;top:12px;font-size:7px;color:#58746c;font-style:normal}.exec-delta{font-size:7px;font-weight:900;margin-top:6px}.exec-delta span{color:#617d75;font-weight:600}.exec-delta.up{color:#66e5a7}.exec-delta.down{color:#ff8390}.exec-quality{display:grid;grid-template-columns:repeat(8,1fr);gap:7px;margin:10px 0 13px}.exec-quality>div{padding:10px 11px;border-radius:13px;background:rgba(255,255,255,.024);border:1px solid rgba(255,255,255,.05)}.exec-quality small{display:block;font-size:6.5px;color:var(--muted);font-weight:900}.exec-quality strong{display:block;margin-top:3px;font-size:14px}.exec-quality .q-warn{border-color:rgba(255,204,102,.22);background:rgba(255,204,102,.045)}.exec-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.exec-grid.tables{align-items:start}.exec-chart{min-height:320px}.chart-box{height:270px;padding:12px 14px 16px}.exec-table{min-width:560px}.table-sub{display:block;color:var(--muted);font-size:7px;margin-top:3px}.fill-rate{display:inline-flex;padding:5px 7px;border-radius:8px;font-size:8px;font-weight:900;background:rgba(56,189,248,.09);color:#7dd3fc}.fill-rate.low{background:rgba(255,204,102,.09);color:#ffd677}.fill-rate.over{background:rgba(255,107,118,.1);color:#ff8992}

@media(max-width:1450px){.ops-workspace{grid-template-columns:310px minmax(400px,1.25fr) 350px}.exec-kpi-grid{grid-template-columns:repeat(4,1fr)}.exec-quality{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1180px){.ops-kpis{grid-template-columns:repeat(3,1fr)}.ops-toolbar{grid-template-columns:repeat(3,1fr)}.ops-workspace{grid-template-columns:300px 1fr}.ops-inspector{grid-column:1/-1;max-height:none}.ops-map{min-height:520px}.ops-circuit-list{max-height:520px}.exec-grid{grid-template-columns:1fr}}
@media(max-width:760px){.ops-kpis{grid-template-columns:repeat(2,1fr)}.ops-toolbar{grid-template-columns:1fr 1fr}.ops-workspace{display:block}.ops-circuits,.ops-map-card,.ops-inspector{margin-bottom:10px}.ops-circuit-list{max-height:430px}.ops-map{min-height:430px}.ops-inspector{max-height:none}.ops-assignment{grid-template-columns:1fr}.exec-kpi-grid,.exec-quality{grid-template-columns:repeat(2,1fr)}.exec-toolbar label{flex:1 1 42%}.exec-toolbar input,.exec-toolbar select{min-width:0}.chart-box{height:250px}}

/* ===== V1.6 · Midnight Blue Design System ===== */
body{background:#0b1120}
.content{max-width:1920px}
.page-head.compact-head{margin-bottom:14px}.page-head.compact-head h3{font-size:21px}.page-head.compact-head p{font-size:11px}
.panel-lite{background:rgba(15,23,42,.74);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 35px rgba(2,6,23,.14)}
.compact-panel{border-radius:14px}.compact-panel-head{padding:10px 12px}.compact-empty{padding:24px 12px}
.btn.xs{padding:6px 8px;border-radius:8px;font-size:9px}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none}

/* Affectations classiques */
.assign-toolbar{display:grid;grid-template-columns:150px 150px minmax(240px,1fr) 110px 110px;gap:8px;align-items:end;padding:10px;margin-bottom:10px}
.assign-toolbar label{display:grid;gap:5px;font-size:7px;color:var(--muted);font-weight:800;letter-spacing:.07em;text-transform:uppercase}.assign-toolbar input,.assign-toolbar select{height:34px;padding:0 9px;border-radius:9px;font-size:10px}.assign-count{height:48px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.025);display:grid;align-content:center}.assign-count small{font-size:6.5px;color:var(--muted);font-weight:900;letter-spacing:.08em}.assign-count b{font:800 15px Manrope;margin-top:2px}.assign-count.warning b{color:#fbbf24}
.compact-table th{padding:8px 9px;font-size:7px}.compact-table td{padding:8px 9px;font-size:9.5px}.assignment-table{min-width:1180px}.assignment-table tr.needs-assignment td{background:rgba(245,158,11,.025)}.row-actions{white-space:nowrap}.row-actions .btn+.btn{margin-left:4px}
.driver-assignment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:8px}.driver-assignment-card{border:1px solid var(--line);border-radius:13px;background:rgba(15,23,42,.78);overflow:hidden}.driver-assignment-card>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;border-bottom:1px solid var(--line)}.driver-assignment-card header small,.driver-assignment-card header strong{display:block}.driver-assignment-card header small{font-size:6.5px;color:var(--muted);letter-spacing:.08em}.driver-assignment-card header strong{font-size:10px;margin-top:2px}.driver-assignment-card.free{border-color:rgba(52,211,153,.18)}.driver-assignment-meta{display:flex;justify-content:space-between;padding:7px 11px;color:var(--muted);font-size:7px}.driver-mission-stack{display:grid;gap:5px;padding:7px}.assignment-mission-chip{border:1px solid var(--line);border-left:3px solid #38bdf8;border-radius:9px;background:rgba(255,255,255,.025);color:var(--text);padding:7px 8px;display:grid;grid-template-columns:45px 1fr;text-align:left;gap:2px 6px}.assignment-mission-chip.out{border-left-color:#fb7185}.assignment-mission-chip b{grid-row:1/3;align-self:center;font-size:11px}.assignment-mission-chip span{font-size:9px;font-weight:800}.assignment-mission-chip small{font-size:7px;color:var(--muted)}.assignment-chip-row{display:flex;gap:6px;flex-wrap:wrap;padding:8px}.assignment-chip-row .assignment-mission-chip{min-width:250px}.driver-free-state{padding:16px;text-align:center;color:#64748b;font-size:8px}

/* Tablettes haute densité */
.device-kpi-strip{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:7px;margin-bottom:8px}.device-mini-kpi{padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(145deg,rgba(18,27,46,.92),rgba(11,17,32,.94));min-height:62px}.device-mini-kpi small,.device-mini-kpi strong,.device-mini-kpi span{display:block}.device-mini-kpi small{font-size:6.5px;text-transform:uppercase;letter-spacing:.09em;color:#64748b;font-weight:900}.device-mini-kpi strong{font:800 17px Manrope;margin:3px 0 1px}.device-mini-kpi span{font-size:7px;color:#64748b}
.device-toolbar{display:grid;grid-template-columns:minmax(330px,1.8fr) 150px 150px 150px 115px auto;gap:6px;padding:7px;margin-bottom:8px;align-items:center}.device-toolbar select,.device-toolbar input{height:32px;padding:0 8px;border-radius:8px;font-size:9px}.device-search{display:grid;grid-template-columns:1fr auto;gap:5px}.device-table-panel{overflow:hidden}.device-table{min-width:1200px}.device-table th{position:sticky;top:0;background:#111827;z-index:1}.device-table .check-col{width:34px;text-align:center}.device-table td{vertical-align:middle}.device-row.offline{opacity:.72}.device-presence{display:inline-flex;align-items:center;gap:5px;font-size:7px;font-weight:900;white-space:nowrap}.device-presence i{width:6px;height:6px;border-radius:50%;background:#64748b}.device-presence.online{color:#6ee7b7}.device-presence.online i{background:#34d399;box-shadow:0 0 10px rgba(52,211,153,.45)}.device-presence.offline{color:#94a3b8}.device-ident b,.device-ident small,.device-ident em{display:block}.device-ident b{font-size:9.5px}.device-ident small{font-size:7px;color:#94a3b8;margin-top:1px}.device-ident em{font-style:normal;font-size:6.5px;color:#475569;margin-top:2px}.tiny-state{display:inline-flex;padding:4px 6px;border-radius:7px;font-size:7px;font-weight:900}.tiny-state.ok{background:rgba(52,211,153,.10);color:#6ee7b7}.tiny-state.off{background:rgba(148,163,184,.08);color:#64748b}.device-lastseen{font-size:8px;color:#94a3b8;white-space:nowrap}.device-pagination{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-top:1px solid var(--line);font-size:8px;color:#64748b}.device-pagination>div{display:flex;align-items:center;gap:7px}.device-pagination b{font-size:8px;color:#cbd5e1}.device-secondary{border-radius:12px}.device-secondary>summary{list-style:none;cursor:pointer;padding:10px 12px;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:space-between}.device-secondary>summary::-webkit-details-marker{display:none}.device-secondary>summary span{font-size:7px;padding:3px 6px;border-radius:99px;background:rgba(56,189,248,.09);color:#7dd3fc}.compact-photos{padding:8px}.device-action-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:10px}.device-action-summary>div{padding:9px;border-radius:10px;background:rgba(255,255,255,.025);border:1px solid var(--line)}.device-action-summary small,.device-action-summary b{display:block}.device-action-summary small{font-size:7px;color:var(--muted)}.device-action-summary b{font-size:10px;margin-top:3px}.device-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.device-action-grid .full{grid-column:1/-1}

/* Harmonisation carte / DG */
.ops-map .leaflet-tile{filter:saturate(.58) brightness(.78) contrast(1.05) hue-rotate(4deg)}.ops-stop-marker{color:#0f172a}.ops-dest-marker{color:#111827}.exec-kpi{background:linear-gradient(145deg,rgba(18,27,46,.95),rgba(11,17,32,.96))}.fill-rate{background:rgba(56,189,248,.10);color:#7dd3fc}

@media(max-width:1300px){.device-toolbar{grid-template-columns:1fr 1fr 1fr}.device-search{grid-column:1/-1}.assign-toolbar{grid-template-columns:1fr 1fr 2fr}.assign-count{min-height:46px}.device-kpi-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.device-kpi-strip{grid-template-columns:repeat(2,1fr)}.device-toolbar{grid-template-columns:1fr 1fr}.device-search{grid-column:1/-1}.assign-toolbar{grid-template-columns:1fr 1fr}.assign-search{grid-column:1/-1}.driver-assignment-grid{grid-template-columns:1fr}.device-action-summary{grid-template-columns:1fr 1fr}}
/* V1.6 final palette overrides */
.modal{background:#111827}.close-btn{color:#94a3b8}.device-check input:checked+span{background:linear-gradient(135deg,#38bdf8,#2563eb)}
.live-dot{color:#7dd3fc}.dispatch-date{background:#111827}.dispatch-lane{background:rgba(15,23,42,.86)}.dispatch-lane.unassigned{background:linear-gradient(180deg,rgba(244,63,94,.055),rgba(15,23,42,.90))}.dispatch-mission{background:linear-gradient(145deg,#172033,#111827)}.dispatch-mission.in{box-shadow:inset 3px 0 #38bdf8,0 8px 24px rgba(0,0,0,.13)}.dispatch-mission.out{box-shadow:inset 3px 0 #fb7185,0 8px 24px rgba(0,0,0,.13)}.movement-pill.out{color:#fda4af;background:rgba(251,113,133,.12)}
.ops-circuits,.ops-map-card,.ops-inspector{background:linear-gradient(145deg,rgba(18,27,46,.95),rgba(11,17,32,.96))}.ops-circuit{background:linear-gradient(145deg,rgba(24,36,58,.92),rgba(15,23,42,.94))}.ops-circuit.selected{border-color:rgba(56,189,248,.48);box-shadow:inset 3px 0 #38bdf8,0 10px 28px rgba(0,0,0,.14)}.ops-circuit.drop-ready{border-color:#38bdf8}.ops-map-legend{background:rgba(11,17,32,.90)}

/* ========================================================================
   TransportPremium V1.7 · HAKOM Light Brand System
   ======================================================================== */
:root{
  --bg:#f5f6fa;--bg2:#ffffff;--panel:#ffffff;--panel2:#fbfbfd;
  --line:#e7e8ef;--line2:#d9dbe6;--text:#1f2230;--muted:#74798c;
  --accent:#e32f94;--accent2:#3a3e98;--cyan:#3a3e98;--warn:#d89418;--danger:#d73350;--ok:#14966f;
  --shadow:0 18px 50px rgba(55,42,72,.08);--radius:20px;--radius-sm:13px;
}
html,body{background:var(--bg);color:var(--text)}
body{background:linear-gradient(180deg,#fff 0,#f7f7fb 300px,#f5f6fa 100%)}
#ambient{background:radial-gradient(circle at 12% 8%,rgba(229,47,149,.08),transparent 28%),radial-gradient(circle at 86% 11%,rgba(58,62,152,.08),transparent 26%),linear-gradient(180deg,#fff,#f7f7fb 70%)}
#ambient:after{opacity:.35;background-image:linear-gradient(rgba(58,62,152,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(58,62,152,.025) 1px,transparent 1px)}
.glass,.panel,.panel-lite,.ops-circuits,.ops-map-card,.ops-inspector,.dispatch-lane,.device-mini-kpi,.driver-assignment-card,.exec-kpi{background:#fff;border-color:var(--line);box-shadow:var(--shadow)}
.login-view{grid-template-columns:minmax(0,1fr) minmax(380px,520px)}
.login-panel{background:rgba(255,255,255,.96);border:1px solid #ece8ef;box-shadow:0 30px 90px rgba(91,50,100,.12)}
.login-panel h1,.brand-name,.topbar h2,.page-head h3,.panel-head h4{color:#272130}.login-panel h1 span,.eyebrow{color:var(--accent)}
.login-brand{align-items:center}.client-logo-plate{width:150px;height:62px;border-radius:16px;background:linear-gradient(135deg,#28285f,#3a3e98);display:grid;place-items:center;padding:10px 13px;box-shadow:0 14px 34px rgba(58,62,152,.18)}.client-logo-plate img{max-width:100%;max-height:100%;object-fit:contain}.brand-x{color:var(--accent);font-size:.72em}
.sidebar{background:linear-gradient(180deg,#242455 0%,#303277 54%,#1f214c 100%);border-right:0;box-shadow:8px 0 30px rgba(45,26,54,.08)}
.sidebar-brand{padding-bottom:18px}.sidebar-client-logo{width:70px;height:38px;padding:5px 7px;border-radius:10px;background:rgba(255,255,255,.09);display:grid;place-items:center}.sidebar-client-logo img{width:100%;height:100%;object-fit:contain}.sidebar-brand strong{color:#fff}.sidebar-brand small{color:#d8d9f3}
.nav-item{color:#d8d9f3}.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}.nav-item.active{background:linear-gradient(90deg,rgba(229,47,149,.32),rgba(255,255,255,.08));color:#fff;box-shadow:inset 3px 0 #ff5fb6}.nav-label{color:#aeb0dd}.status-pill{color:#d8d9f3}.logout{color:#c8caea}
.topbar{background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);box-shadow:0 5px 22px rgba(55,42,72,.035)}.clock strong,.user-chip strong{color:#282131}.user-chip{border-left-color:var(--line)}.avatar{background:linear-gradient(135deg,#fce8f5,#eee6f2);border-color:#eadbea;color:#8a3475}
.content{max-width:1920px}.kpi,.exec-kpi,.device-mini-kpi{background:linear-gradient(145deg,#fff,#fbf9fc);border-color:var(--line)}.kpi small,.data-table th{color:#8a8090}.kpi em{color:#9d96a5}.kpi strong,.data-table td{color:#302a35}.data-table td{border-bottom-color:#f0eef2}.data-table tr:hover td{background:#fbf8fb}
input,select,textarea{background:#fff;color:#2d2732;border-color:#dedbe5}input:focus,select:focus,textarea:focus{border-color:rgba(229,47,149,.55);box-shadow:0 0 0 3px rgba(229,47,149,.09)}.field,.form-stack label{color:#514b5a}
.btn{background:#f0edf3;color:#403647}.btn.primary{background:linear-gradient(135deg,#e32f94,#3a3e98);box-shadow:0 10px 28px rgba(229,47,149,.18)}.btn.ghost{background:#fff;border-color:#dedbe5}.btn.warn{color:#9f6b0f}.btn.danger{background:#fff0f3;color:#c92a48;border-color:#ffd4dc}
.badge{background:#f2eff4;color:#5b5361}.badge.ok{background:#e8f7f1;color:#107c5c}.badge.warn{background:#fff6e5;color:#9c6a12}.badge.danger{background:#fff0f2;color:#c72d49}.badge.blue{background:#edf1ff;color:#3157c8}
.empty{color:#8b8491}.empty strong{color:#544b58}.muted{color:var(--muted)}
.hero-ops{background:linear-gradient(130deg,#fff,#fff4fa)}.orb{background:radial-gradient(circle at 35% 30%,#ffd4eb,#e32f94 34%,#8c3a82 63%,#4a2a59 78%);box-shadow:0 0 80px rgba(229,47,149,.18)}
.health-item,.status-box,.assign-count,.device-action-summary>div{background:#fcfbfd;border-color:var(--line)}.health-dot{background:#bbb5c0}.health-dot.ok{background:#16a177}.panel-head{border-color:var(--line)}
.modal{background:#fff;color:var(--text);box-shadow:0 35px 100px rgba(56,32,64,.20)}.close-btn{color:#8b8290}.toast{background:#35293b;color:#fff}.toast.error{background:#b82342}
.dispatch-date{background:#fff}.dispatch-lane{background:#fff}.dispatch-lane.unassigned{background:linear-gradient(180deg,#fff5f7,#fff)}.dispatch-mission,.ops-circuit{background:#fff;border-color:#e7e3e9}.dispatch-mission.in{box-shadow:inset 3px 0 #3a3e98,0 8px 22px rgba(50,31,57,.05)}.dispatch-mission.out{box-shadow:inset 3px 0 #e32f94,0 8px 22px rgba(50,31,57,.05)}.movement-pill.in{background:#eee8f2;color:#3a3e98}.movement-pill.out{background:#fde9f4;color:#d52b87}
.ops-map .leaflet-tile{filter:none}.ops-circuit.selected{border-color:#e7a9cf;box-shadow:inset 3px 0 #e32f94,0 10px 28px rgba(68,39,72,.07)}.ops-map-legend{background:rgba(255,255,255,.94);color:#302a35}.driver-assignment-card>header{border-color:var(--line)}.assignment-mission-chip{background:#fbfafc;border-color:var(--line);border-left-color:#3a3e98}.assignment-mission-chip.out{border-left-color:#e32f94}
.device-table th{background:#faf9fb}.device-row.offline{opacity:.62}.device-presence.online{color:#118463}.tiny-state.ok{background:#e7f7f0;color:#107c5d}.tiny-state.off{background:#f2f1f4;color:#938c99}.device-ident small,.device-lastseen{color:#817a88}.device-ident em{color:#aaa4ae}.device-pagination{border-color:var(--line);color:#827b88}.device-pagination b{color:#4b4450}

/* Configuration centrale */
.config-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.config-wide{grid-column:1/-1}.config-card{overflow:visible}.config-tag{font-size:8px;font-weight:900;letter-spacing:.12em;padding:5px 8px;border-radius:99px;background:#fdeaf5;color:#c72c7f}.config-tag.good{background:#e8f7f1;color:#12815f}.brand-config-preview{display:flex;align-items:center;gap:14px;padding:14px;border-radius:15px;background:linear-gradient(135deg,#292a68,#3a3e98);color:#fff;margin-bottom:14px}.brand-config-preview strong,.brand-config-preview small{display:block}.brand-config-preview strong{font-size:17px}.brand-config-preview small{font-size:10px;color:#eadced;margin-top:3px}.brand-preview-logo{width:128px;height:56px;padding:6px 8px;border-radius:10px;background:rgba(255,255,255,.08);display:grid;place-items:center}.brand-preview-logo img{max-width:100%;max-height:100%;object-fit:contain}.brand-upload-row{display:flex;gap:9px;align-items:end;margin-top:12px}.brand-upload-row input{padding:8px}.setting-grid.cols-3{grid-template-columns:repeat(3,1fr)}.setting-grid.cols-4{grid-template-columns:repeat(4,1fr)}.full-2{grid-column:span 2}.mapping-title{font-size:10px;font-weight:900;color:#6b6170;margin:18px 0 9px;text-transform:uppercase;letter-spacing:.1em}.config-actions{margin-top:12px}.connector-result{display:grid;gap:4px;margin-top:10px;padding:11px 13px;border-radius:12px;border:1px solid var(--line);background:#faf9fb}.connector-result.ok{border-color:#bde8d8;background:#f2fbf7}.connector-result.warn{border-color:#f3deb7;background:#fffbf3}.connector-result.bad{border-color:#f2c5ce;background:#fff6f7}.connector-result span,.connector-result code{font-size:10px;color:#716a75}.connector-result code{white-space:pre-wrap;word-break:break-word}

/* Affectation intelligente */
.smart-date{width:150px;padding:9px 10px}.smart-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:11px}.smart-kpis>div{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}.smart-kpis small,.smart-kpis strong{display:block}.smart-kpis small{font-size:8px;color:#8b8390;text-transform:uppercase;font-weight:900;letter-spacing:.08em}.smart-kpis strong{font:800 22px Manrope;margin-top:4px}.smart-workspace{display:grid;grid-template-columns:330px minmax(500px,1fr) 410px;gap:11px}.smart-missions,.smart-candidates{max-height:calc(100vh - 235px);overflow:hidden;display:flex;flex-direction:column}.smart-mission-list,.smart-candidate-list{padding:8px;overflow:auto;display:grid;gap:7px}.smart-mission-card{padding:11px;border:1px solid var(--line);border-radius:13px;background:#fff;cursor:pointer;transition:.18s}.smart-mission-card:hover,.smart-mission-card.selected{border-color:#dda4c7;box-shadow:0 8px 22px rgba(109,61,103,.08)}.smart-mission-card.selected{box-shadow:inset 3px 0 #e32f94,0 8px 22px rgba(109,61,103,.08)}.smart-mission-card>div{display:flex;align-items:center;gap:7px}.smart-mission-card>div b{margin-left:auto}.smart-mission-card>div em{font-style:normal;font-size:8px;color:#8a8290}.smart-mission-card>strong,.smart-mission-card>small{display:block}.smart-mission-card>strong{font-size:11px;margin-top:7px}.smart-mission-card>small{font-size:8px;color:#7f7885;margin-top:3px}.smart-mission-card footer{display:flex;align-items:center;justify-content:space-between;margin-top:8px;font-size:7px;color:#8a8390}.smart-mission-card .need{color:#c78016;font-weight:900}.smart-mission-card .done{color:#16805f;font-weight:900}.smart-map-card{min-height:600px}.smart-map{height:calc(100vh - 285px);min-height:540px}.map-legend-inline{display:flex;gap:10px;font-size:8px;color:#79717e}.map-legend-inline span{display:flex;align-items:center;gap:4px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot.vehicle{background:#3a3e98}.dot.mission{background:#e32f94}.dot.driver{background:#3157c8}.smart-candidate{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:13px;background:#fff;cursor:grab}.smart-candidate:active{cursor:grabbing}.score-ring{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;align-content:center;background:conic-gradient(#e32f94 0 72%,#f1edf2 72%);border:3px solid #fff;box-shadow:0 0 0 1px #e6e1e8}.score-ring strong{font-size:13px;line-height:12px}.score-ring small{font-size:6px;color:#817987}.smart-candidate-copy b,.smart-candidate-copy span,.smart-candidate-copy small{display:block}.smart-candidate-copy b{font-size:10px}.smart-candidate-copy span{font-size:9px;color:#665e6b;margin-top:2px}.smart-candidate-copy small{font-size:7px;color:#918a96;margin-top:2px}.auto-preview-list{display:grid;gap:7px}.auto-preview-row{display:flex;justify-content:space-between;gap:15px;padding:9px 10px;border:1px solid var(--line);border-radius:10px}.auto-preview-row span{color:#716a76;font-size:10px}

/* Intercom */
.secure-context-warning{display:flex;align-items:center;gap:14px;padding:11px 14px;margin-bottom:12px;border:1px solid #f0cf94;border-radius:13px;background:#fff9ed;color:#76521a}.secure-context-warning b,.secure-context-warning span{display:block}.secure-context-warning b{font-size:10px;white-space:nowrap}.secure-context-warning span{font-size:9px;color:#8a6a35}
.intercom-layout{display:grid;grid-template-columns:minmax(500px,1fr) 420px;gap:14px}.intercom-devices{min-height:650px}.intercom-toolbar{display:flex;gap:12px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.intercom-toolbar input{flex:1}.intercom-toolbar span{font-size:10px;color:#777080;white-space:nowrap}.intercom-device-grid{padding:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:620px;overflow:auto}.intercom-device{display:grid;grid-template-columns:20px 9px 1fr;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.intercom-device:has(input:checked){border-color:#e3a7cc;background:#fff7fb}.intercom-device input{width:17px;height:17px}.presence-dot{width:8px;height:8px;border-radius:50%;background:#18a178;box-shadow:0 0 0 4px rgba(24,161,120,.09)}.intercom-device b,.intercom-device small{display:block}.intercom-device b{font-size:10px}.intercom-device small{font-size:7px;color:#88808d;margin-top:3px}.intercom-console{padding:22px;display:flex;flex-direction:column;align-items:stretch}.intercom-brand{display:flex;align-items:center;gap:13px;margin-bottom:24px}.intercom-brand img{width:120px;height:48px;object-fit:contain;padding:6px 8px;border-radius:10px;background:linear-gradient(135deg,#292a68,#3a3e98)}.intercom-brand small,.intercom-brand strong{display:block}.intercom-brand small{font-size:7px;letter-spacing:.13em;color:#8c8290}.intercom-brand strong{font-size:18px;margin-top:2px}.intercom-status{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#faf9fb;margin-bottom:12px}.intercom-status i{width:12px;height:12px;border-radius:50%;background:#aaa3ae}.intercom-status strong,.intercom-status span{display:block}.intercom-status strong{font-size:11px}.intercom-status span{font-size:8px;color:#817987;margin-top:2px}.intercom-status.live i{background:#16a177;box-shadow:0 0 0 5px rgba(22,161,119,.10)}.intercom-status.talking i{background:#e32f94;animation:pttPulse .8s infinite alternate}.intercom-status.sending i{background:#3157c8}.intercom-status.error i{background:#d73350}.ptt-button{margin:18px auto;width:250px;height:250px;border-radius:50%;border:9px solid #f4eaf1;background:radial-gradient(circle at 35% 25%,#ff72bb,#e32f94 52%,#a52b77);color:#fff;box-shadow:0 22px 52px rgba(229,47,149,.22);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;transition:.15s}.ptt-button:disabled{filter:grayscale(.7);opacity:.38}.ptt-button.talking{transform:scale(.96);box-shadow:0 0 0 14px rgba(229,47,149,.11),0 22px 52px rgba(229,47,149,.25)}.ptt-mic{font-size:33px}.ptt-button strong{font-size:12px}.ptt-button small{font-size:8px;color:#ffe8f4}.intercom-note{font-size:8px;line-height:1.5;color:#837c88;text-align:center;margin-top:10px}@keyframes pttPulse{from{box-shadow:0 0 0 3px rgba(229,47,149,.12)}to{box-shadow:0 0 0 9px rgba(229,47,149,.18)}}

/* Automatisations */
.automation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.automation-card{border:1px solid var(--line);border-radius:17px;background:#fff;overflow:hidden}.automation-card.on{box-shadow:inset 0 3px #e32f94}.automation-card>header{display:flex;align-items:center;justify-content:space-between;padding:14px;border-bottom:1px solid var(--line)}.automation-card header small,.automation-card header strong{display:block}.automation-card header small{font-size:7px;color:#9a929e;letter-spacing:.12em}.automation-card header strong{font-size:12px;margin-top:3px}.automation-body{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:13px}.automation-body label{font-size:8px;color:#77707d}.automation-body input,.automation-body select{margin-top:5px;padding:9px}.automation-info{grid-column:1/-1;padding:11px;border-radius:10px;background:#faf8fb;color:#7e7683;font-size:9px}.automation-card footer{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;border-top:1px solid var(--line)}.automation-card footer span{font-size:7px;color:#918995}.switch input{display:none}.switch span{display:block;width:38px;height:21px;border-radius:99px;background:#d9d5dc;position:relative;transition:.2s}.switch span:after{content:"";position:absolute;width:17px;height:17px;border-radius:50%;background:#fff;left:2px;top:2px;box-shadow:0 2px 6px rgba(0,0,0,.15);transition:.2s}.switch input:checked+span{background:#e32f94}.switch input:checked+span:after{left:19px}

@media(max-width:1450px){.smart-workspace{grid-template-columns:300px 1fr}.smart-candidates{grid-column:1/-1;max-height:none}.smart-candidate-list{grid-template-columns:repeat(2,1fr)}.config-layout{grid-template-columns:1fr}.config-wide{grid-column:auto}.automation-grid{grid-template-columns:1fr 1fr}}
@media(max-width:980px){.intercom-layout{grid-template-columns:1fr}.smart-workspace{display:block}.smart-missions,.smart-candidates{max-height:none;margin-bottom:10px}.smart-map-card{margin-bottom:10px}.smart-map{height:520px}.setting-grid.cols-3,.setting-grid.cols-4{grid-template-columns:1fr 1fr}.automation-grid{grid-template-columns:1fr}}
@media(max-width:700px){.intercom-device-grid{grid-template-columns:1fr}.smart-kpis{grid-template-columns:1fr 1fr}.smart-candidate-list{grid-template-columns:1fr}.setting-grid.cols-3,.setting-grid.cols-4{grid-template-columns:1fr}.full-2{grid-column:auto}.ptt-button{width:210px;height:210px}.client-logo-plate{width:116px;height:52px}}
/* V1.7.2 — Affectations classiques drag & drop */
.assignment-mission-chip[draggable="true"]{cursor:grab;user-select:none}.assignment-mission-chip.dragging{opacity:.55;cursor:grabbing;transform:scale(.99)}.classic-drop-zone{transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.classic-drop-zone.drop-ready{border-color:#3a3e98!important;box-shadow:0 0 0 2px rgba(58,62,152,.14),var(--shadow);background:#f7f7fd}.assign-unassigned.classic-drop-zone.drop-ready{border-color:#e32f94!important;box-shadow:0 0 0 2px rgba(227,47,148,.12),var(--shadow)}
/* V1.8 - Provisionnement tablettes */
.provision-readiness{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 20px;border-radius:18px;margin-bottom:14px;border:1px solid var(--line);background:linear-gradient(135deg,#eef9ff,#fff)}
.provision-readiness.ok{border-color:#b7ead5}.provision-readiness.blocked{border-color:#f4c7cf;background:#fff6f8}.provision-readiness small,.provision-readiness span{display:block}.provision-readiness strong{display:block;font-size:19px;margin:3px 0}.provision-tech{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.provision-tech code{font-size:11px}
.provision-profile-list{padding:10px}.provision-profile-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px 12px;border-bottom:1px solid var(--line)}.provision-profile-card:last-child{border-bottom:0}.provision-profile-main{display:flex;align-items:center;gap:10px;min-width:0}.provision-profile-main div{min-width:0}.provision-profile-main strong,.provision-profile-main small{display:block}.provision-profile-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.provision-profile-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#eef2ff;color:#3A3E98;font-weight:800}.provision-profile-flags,.provision-profile-actions{display:flex;gap:6px;align-items:center}
.provision-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:16px}.provision-steps>div{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfcff}.provision-steps b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#3A3E98;color:#fff;margin-bottom:10px}.provision-steps strong,.provision-steps span{display:block}.provision-steps span{font-size:12px;color:var(--muted);margin-top:4px}
.provision-qr-wrap{display:grid;grid-template-columns:340px 1fr;gap:22px;align-items:start}.provision-qr{background:#fff;border-radius:18px;padding:10px;display:grid;place-items:center;border:1px solid var(--line)}.provision-qr-info>div{margin-bottom:10px}.provision-qr-info small,.provision-qr-info strong{display:block}.provision-qr-info textarea{width:100%;height:120px;font-size:10px;margin-top:10px}.provision-warning{padding:10px 12px;border-radius:10px;background:#fff4e6;border:1px solid #f7d9ad;font-size:12px}.code-stack{display:flex;flex-direction:column;gap:8px;margin:12px 0}
@media(max-width:1000px){.provision-profile-card{grid-template-columns:1fr}.provision-profile-actions,.provision-profile-flags{justify-content:flex-start}.provision-steps{grid-template-columns:1fr 1fr}.provision-qr-wrap{grid-template-columns:1fr}.provision-tech{align-items:flex-start}.provision-readiness{align-items:flex-start;flex-direction:column}}
