/* FaberDrive UI v9 */
:root{--bg:#f2f5fa;--card:#fff;--text:#172033;--muted:#6d788b;--line:#e2e8f1;--primary:#1769e0;--primary2:#3152b9;--shadow:0 8px 28px rgba(27,45,78,.08);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.4}main{width:min(100%,720px);min-height:100vh;margin:0 auto;padding:calc(env(safe-area-inset-top) + 18px) 14px calc(92px + env(safe-area-inset-bottom))}
header{display:flex;align-items:center;justify-content:space-between;margin:0 2px 18px}h1{font-size:26px;line-height:1.1;margin:0;letter-spacing:-.6px}h2{font-size:19px;margin:8px 0 14px;letter-spacing:-.25px}p{margin:8px 0}a{color:var(--primary);text-decoration:none;font-weight:600}
button,.btn{appearance:none;border:1px solid var(--line);border-radius:12px;padding:10px 13px;background:var(--card);color:var(--text);font:inherit;font-size:14px;font-weight:650;line-height:1.15;cursor:pointer;box-shadow:none}button:active{transform:scale(.98)}button:disabled{opacity:.45}.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));border-color:transparent;color:#fff;box-shadow:0 7px 18px rgba(23,105,224,.22)}.block{display:block;width:100%;margin:0 0 12px}
.card,.clickable{display:block;background:var(--card);border:1px solid var(--line);border-radius:17px;padding:15px;margin:10px 0;box-shadow:var(--shadow)}.clickable{cursor:pointer}.list.clickable{border-bottom:1px solid var(--line)}.list{padding:11px 0;border-bottom:1px solid var(--line)}.list:last-child{border-bottom:0}.list strong,.card strong{display:block;font-size:16px;margin-bottom:3px}.list small{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.muted,small{color:var(--muted)}
.row{display:flex;align-items:center;gap:9px}.between{justify-content:space-between}
label{display:grid;gap:6px;margin:11px 0;color:var(--muted);font-size:12px;font-weight:650}input,select,textarea{appearance:none;width:100%;min-height:44px;padding:11px 12px;border:1px solid #ccd6e4;border-radius:11px;background:#fff;color:var(--text);font:inherit;font-size:16px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(23,105,224,.12)}textarea{min-height:82px;resize:vertical}.check{display:flex;align-items:center;gap:9px;margin:2px 0;padding:7px 0;color:var(--text);font-size:14px}.check input{appearance:auto;width:20px;height:20px;min-height:0;accent-color:var(--primary)}fieldset{margin:12px 0;border:1px solid var(--line);border-radius:14px;padding:10px 13px}legend{padding:0 6px;color:var(--muted);font-size:12px;font-weight:700}
.nav{position:fixed;z-index:8;left:50%;bottom:0;transform:translateX(-50%);display:grid;grid-template-columns:repeat(5,1fr);width:min(100%,720px);padding:6px 3px calc(7px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid var(--line);box-shadow:0 -7px 24px rgba(30,46,75,.07)}.nav button{min-width:0;padding:4px 1px;border:0;background:transparent;color:#7b8799;font-size:10px;border-radius:8px}.nav b{display:block;margin-bottom:1px;font-size:19px}.nav .active{color:var(--primary)}
.sheet{position:fixed;z-index:20;inset:0;padding:calc(env(safe-area-inset-top) + 15px) 12px calc(env(safe-area-inset-bottom) + 15px);overflow:auto;background:rgba(7,16,29,.68);backdrop-filter:blur(4px)}.sheet.hidden{display:none}.panel{width:min(100%,600px);margin:0 auto;background:var(--card);border-radius:22px;padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.28)}#login{display:grid;gap:4px}.loading{height:100vh;display:grid;place-content:center;background:linear-gradient(145deg,var(--primary),var(--primary2));color:#fff;font-size:25px;font-weight:800}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.cal>i{min-height:1px}.cal>button{min-width:0;height:76px;padding:7px 5px;overflow:hidden;text-align:left;border-radius:12px;background:var(--card);font-weight:500}.cal>button>b{display:block;font-size:13px;margin-bottom:4px}.cal span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--primary);font-size:9px;line-height:1.35}.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.photos img{display:block;width:100%;height:105px;object-fit:cover;border-radius:10px}
#toast{display:none;position:fixed;z-index:30;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translateX(-50%);max-width:90%;padding:10px 16px;border-radius:99px;background:#172033;color:#fff;font-size:13px;white-space:nowrap;box-shadow:0 8px 25px rgba(0,0,0,.24)}
@media(max-width:430px){main{padding-left:10px;padding-right:10px}.cal{gap:3px}.cal>button{height:66px;padding:5px 3px}.cal span{font-size:8px}.panel{padding:15px;border-radius:19px}header{margin-bottom:14px}}
@media(prefers-color-scheme:dark){:root{--bg:#0d1421;--card:#151f2f;--text:#edf3fd;--muted:#9cabc0;--line:#2c3b50;--shadow:0 8px 25px rgba(0,0,0,.17)}html,body{background:var(--bg)}input,select,textarea{background:#111b2a;color:var(--text);border-color:#34445b}.nav{background:rgba(21,31,47,.96)}}
.phone-fields{display:grid;grid-template-columns:155px 1fr;gap:9px}.card:has(>button[data-em]){position:relative;padding-right:110px}.card>button[data-em]{position:absolute;right:15px;top:50%;transform:translateY(-50%)}@media(max-width:430px){.phone-fields{grid-template-columns:1fr}}
.vehicle-card{display:grid;grid-template-columns:126px minmax(0,1fr) auto;align-items:center;gap:14px}.vehicle-visual{width:126px;height:88px;border-radius:13px;overflow:hidden;background:linear-gradient(145deg,#edf2f8,#dce5f0);display:grid;place-items:center}.vehicle-visual img{width:100%;height:100%;object-fit:cover}.vehicle-placeholder{font-size:38px}.vehicle-body{min-width:0}.vehicle-body p{margin:4px 0}.ct-date{color:var(--muted);font-size:13px}.vehicle-preview{display:block;width:100%;max-height:240px;object-fit:cover;border-radius:15px;margin-bottom:12px}.vehicle-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}@media(max-width:520px){.vehicle-card{grid-template-columns:92px 1fr}.vehicle-visual{width:92px;height:72px}.vehicle-card>button{grid-column:2;justify-self:end}.vehicle-fields{grid-template-columns:1fr}}
.name-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.form-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.form-actions button{width:100%}@media(max-width:430px){.name-fields{grid-template-columns:1fr}}
.mission-dates{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:9px}.mission-address{margin-top:3px;color:var(--text);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mission-team{margin-top:5px;color:var(--muted);font-size:12px}@media(max-width:520px){.mission-dates{grid-template-columns:1fr 1fr}.mission-dates label:first-child{grid-column:1/-1}}
.mission-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 14px}.mission-summary>div{display:grid;gap:2px;padding:10px;border-radius:11px;background:var(--bg)}.mission-summary b{font-size:11px;color:var(--muted);text-transform:uppercase}.mission-summary span,.mission-summary a{font-size:13px}.mission-summary .wide{grid-column:1/-1;white-space:pre-wrap}@media(max-width:430px){.mission-summary{grid-template-columns:1fr}.mission-summary .wide{grid-column:auto}}
.mission-card{display:flex;align-items:center;gap:14px;padding-left:20px}.mission-card-content{min-width:0;flex:1}.edit-mission{margin-left:auto;flex:none}.ecotec-check{margin-top:-5px;padding:4px 2px 10px}.ecotec-badge{display:inline-block;margin-top:5px;padding:3px 7px;border-radius:99px;background:#e7f7ed;color:#147a40;font-size:11px;font-weight:700}
.mission-card{padding-right:26px}.edit-mission{margin-right:5px}
[data-non-bank][hidden]{display:none!important}
.brand-logo{display:block;width:150px;max-height:52px;object-fit:contain;object-position:left center}.userbar{display:flex;align-items:center;gap:7px}.theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.birthday-card{border-left:4px solid #e64c8c}.holiday-card{border-left:4px solid var(--primary);font-weight:650}.cal span.holiday{color:#875d13}:root[data-theme=dark]{--bg:#0d1421;--card:#151f2f;--text:#edf3fd;--muted:#9cabc0;--line:#2c3b50}:root[data-theme=light]{--bg:#f2f5fa;--card:#fff;--text:#172033;--muted:#6d788b;--line:#e2e8f1}@media(max-width:520px){header{align-items:flex-start}.brand-logo{width:125px}.userbar{flex-direction:column;align-items:stretch}.userbar button{padding:7px 9px;font-size:11px}}
.manage-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:14px}.pin-admin{display:inline-block;margin:8px 0;padding:5px 9px;border-radius:8px;background:var(--bg);font-size:13px}
.manage-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.manage-row>button,.control-actions{margin-left:auto;flex:none}.vehicle-manage-card{display:grid;grid-template-columns:110px minmax(0,1fr) auto}.manage-vehicle-image{width:110px;height:76px;border-radius:11px;overflow:hidden;background:var(--bg);display:grid;place-items:center}.manage-vehicle-image img{width:100%;height:100%;object-fit:cover}.manage-vehicle-image.empty{font-size:30px}.manage-main{min-width:0}.manage-main p{margin:3px 0}.registration-badge{display:inline-block;margin-top:4px;padding:4px 8px;border-radius:7px;background:var(--text);color:var(--card);font-size:12px;font-weight:750}.control-actions{display:flex;gap:7px}
.manage-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.manage-row>button,.control-actions{margin-left:auto;flex:none}.vehicle-manage-card{display:grid;grid-template-columns:110px minmax(0,1fr) auto}.manage-vehicle-image{width:110px;height:76px;border-radius:11px;overflow:hidden;background:var(--bg);display:grid;place-items:center}.manage-vehicle-image img{width:100%;height:100%;object-fit:cover}.manage-main{min-width:0}.registration-badge{display:inline-block;padding:4px 8px;border-radius:7px;background:var(--text);color:var(--card);font-size:12px;font-weight:750}.control-actions{display:flex;gap:7px}
.login-preview{margin:8px 0;padding:8px 10px;border-radius:9px;background:var(--bg);font-size:13px}.login-preview b{font-family:ui-monospace,monospace}

/* V3 missions et équipes */
.mission-team-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mission-flags{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.member-group{padding:10px 0;border-bottom:1px solid var(--line,#d9dee7)}
.member-group>b{display:block;margin-bottom:6px;color:var(--accent,#2668d8)}
.mission-card{position:relative;border-left:8px solid transparent!important;overflow:hidden}
.mission-card.band-team-1{border-left-color:#7c3aed!important}
.mission-card.band-team-2{border-left-color:#2563eb!important}
.mission-card.band-team-3{border-left-color:#16a34a!important}
.mission-card.band-team-4{border-left-color:#14b8a6!important}
.mission-card.band-bank{border-left-color:#eab308!important}
.mission-card.band-brown{border-left-color:#92400e!important}
.mission-card.band-exceptional{border-left-color:#dc2626!important}
.mission-status{position:absolute;top:10px;right:72px;padding:4px 8px;border-radius:999px;color:#fff;font-size:.72rem;font-weight:800}
.status-done{background:#16a34a}.status-progress{background:#7c3aed}.status-prebooking{background:#ea580c}
@media(max-width:560px){.mission-team-fields{grid-template-columns:1fr}.mission-status{position:static;display:inline-block;margin:0 0 8px 8px}}

/* V3 calendrier et aujourd'hui */
.calendar-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.calendar-heading{margin-bottom:8px}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:4px;text-align:center;color:var(--muted);font-size:11px}
.cal>button>small{display:block;color:var(--muted);font-size:9px;text-transform:capitalize}.cal>button.is-today{outline:2px solid var(--primary);outline-offset:-2px}.cal .mission-count{display:inline-block;width:auto;padding:2px 5px;border-radius:99px;background:var(--primary);color:#fff;font-size:9px;font-weight:800}
.calendar-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.calendar-toolbar h2{text-align:center;text-transform:capitalize}.empty-day{text-align:center;color:var(--muted);padding:35px 15px}
.today-widget{display:grid;grid-template-columns:1fr 1.35fr;gap:12px;align-items:center;margin:16px 0 2px;padding:15px;border-radius:17px;background:linear-gradient(135deg,#80542e,#b47a45);color:#fff;box-shadow:var(--shadow)}.today-widget>div{display:grid;gap:3px}.today-widget small{color:#f7e8d7}.today-widget span{font-size:12px;opacity:.92}
.today-page{display:grid;gap:12px}.today-date{text-align:center;color:var(--muted);font-weight:750;text-transform:capitalize}.today-mission{position:relative;padding:22px;border-radius:22px;background:var(--card);border:1px solid var(--line);border-top:8px solid var(--primary);box-shadow:var(--shadow)}.today-mission.band-team-1{border-top-color:#7c3aed}.today-mission.band-team-2{border-top-color:#2563eb}.today-mission.band-team-3{border-top-color:#16a34a}.today-mission.band-team-4{border-top-color:#14b8a6}.today-mission.band-bank{border-top-color:#eab308}.today-mission.band-brown{border-top-color:#92400e}.today-mission.band-exceptional{border-top-color:#dc2626}.today-kicker{display:block;color:var(--muted);font-size:12px;font-weight:750;text-transform:uppercase}.today-mission h2{font-size:22px;margin:5px 0 16px}.today-mission p{padding:9px 0;border-bottom:1px solid var(--line)}.today-start{width:100%;min-height:58px;margin-top:12px;font-size:18px}.today-empty{text-align:center;padding:35px 18px}
@media(max-width:430px){.today-widget{grid-template-columns:1fr}.weekdays{gap:3px}.cal .mission-count{font-size:8px;padding:2px 3px}}
.today-passenger{width:100%;margin-top:8px;background:transparent}
/* V3 fin de journée */
.level-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.level-warning{padding:10px;border-radius:10px;background:#fff3cd;color:#7a4d00;font-weight:700}.end-day .primary{width:100%;margin-top:10px}.end-complete{border-left:5px solid #16a34a}.end-complete button{width:100%}
@media(max-width:430px){.level-fields{grid-template-columns:1fr}}

/* V3 gestion complète */
.manage-tabs{grid-template-columns:repeat(4,1fr)}.manage-group{margin:18px 0}.manage-group>h3{margin:0 4px 8px;color:var(--muted);font-size:13px;text-transform:uppercase}.member-sick{opacity:.72;border-left:5px solid #dc2626}.sick-badge{display:inline-block;padding:4px 8px;border-radius:99px;background:#fee2e2;color:#991b1b;font-size:11px;font-weight:800}.vehicle-history{display:grid;gap:2px;margin-top:8px;color:var(--muted);font-size:12px}.vacation-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px}.vacation-card{border-left:5px solid #0ea5e9}.cal span.vacation{color:#0284c7}
@media(max-width:520px){.manage-tabs{grid-template-columns:1fr 1fr}.vacation-dates{grid-template-columns:1fr}}

.vehicle-check-row{padding:7px 0;border-bottom:1px solid var(--line)}.vehicle-check-row:last-child{border-bottom:0}.vehicle-check-row label{grid-template-columns:1fr 145px;align-items:center;color:var(--text);font-size:14px}.vehicle-check-row select{min-height:40px;font-size:14px}.previous-issue{padding:8px 10px;border-radius:9px;background:#fff3cd;color:#7a4d00;font-size:12px}.last-driver{color:var(--muted);font-size:13px}
@media(max-width:430px){.vehicle-check-row label{grid-template-columns:1fr}}

/* V3 récapitulatifs et réglages */
.summary-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}.hours-card{grid-row:span 2}.hours-pie{width:180px;height:180px;margin:18px auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#dc2626 0 var(--overtime),var(--primary) var(--overtime) 360deg);position:relative}.hours-pie:before{content:"";position:absolute;inset:25px;border-radius:50%;background:var(--card)}.hours-pie span{z-index:1;display:grid;text-align:center}.hours-pie b{font-size:24px}.hours-pie small{font-size:11px}.hours-legend{display:grid;gap:6px;color:var(--muted);font-size:12px}.tip-card strong,.summary-kpis strong{display:block;font-size:28px;margin:7px 0;color:var(--primary)}.mission-stats>div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line)}.summary-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.contact-moderator{display:grid;gap:5px;padding:9px 0;border-bottom:1px solid var(--line)}.work-summary{display:grid;gap:6px}.work-summary>div{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--line)}.work-summary ul{margin:7px 0;padding-left:20px}.cal>button.has-overtime{background:#fee2e2!important;border-color:#ef4444}.mission-date-group>h3{margin:20px 4px 8px;color:var(--muted);font-size:13px;text-transform:capitalize}
@media(max-width:560px){.summary-grid{grid-template-columns:1fr}.hours-card{grid-row:auto}.summary-kpis{grid-template-columns:1fr 1fr 1fr}.hours-pie{width:150px;height:150px}}

/* V3 renforts et chantiers exceptionnels */
.poll-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.danger{background:#dc2626;color:#fff;border-color:#dc2626}.poll-list{margin:10px 0}.poll-yes{color:#166534}.poll-no{color:#991b1b}.reinforcement-request{display:grid;gap:7px;padding:12px 0;border-bottom:1px solid var(--line)}.reinforcement-request>span{color:var(--muted);font-size:12px}.reinforcement-request>div,.reinforcement-times{display:flex;flex-wrap:wrap;gap:7px}.reinforcement-times button{flex:1}.exceptional-poll,.reinforcement-panel{border-left:5px solid #dc2626}.reinforcement-panel{border-left-color:#14b8a6}

/* V38 ajustements feuille de route */
.vehicle-already-checked{border-left:5px solid #16a34a;color:#166534}.category-ok{padding:8px 10px;margin:4px 0 10px;border-radius:10px;background:var(--bg)}.manual-time{width:205px;min-height:40px;font-size:13px}.secondary-mission-note{border-left:5px solid #8b5e34;color:var(--muted)}.start-km-form{border-left:5px solid var(--primary)}.start-km-form .primary{width:100%}
@media(max-width:520px){.time-row{align-items:stretch;flex-direction:column}.manual-time{width:100%}}
.manage-tabs{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.road-history-day>h3{margin:20px 4px 8px;text-transform:capitalize;color:var(--muted);font-size:13px}.time-actions{display:flex;align-items:center;gap:7px}.time-actions .manual-time{width:205px}@media(max-width:520px){.time-actions{width:100%;flex-direction:column}.time-actions>*{width:100%!important}}.import-result{display:grid;gap:5px;padding:12px;border-radius:12px;background:#dcfce7;color:#166534}.import-result b{font-size:17px}.import-result span,.import-result small{display:block}.error{padding:10px;border-radius:10px;background:#fee2e2;color:#991b1b}.delivery-supplies-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 12px}.delivery-summary>span{display:grid!important;grid-template-columns:repeat(2,1fr);gap:6px}.delivery-summary i{display:flex;justify-content:space-between;padding:7px 9px;border-radius:9px;background:var(--card);font-style:normal}@media(max-width:430px){.delivery-supplies-grid,.delivery-summary>span{grid-template-columns:1fr}}.work-original{white-space:pre-wrap;line-height:1.55}.packing-badge{display:inline-block;margin:5px 5px 0 0;padding:3px 7px;border-radius:99px;background:#f3e8ff;color:#6b21a8;font-size:11px;font-weight:700}
/* V46 présentation */
.mission-card:has(.mission-status) .mission-card-content{padding-top:27px}.mission-status{left:20px!important;right:auto!important;top:10px!important}.cal>button{position:relative;padding-top:38px!important}.cal>button>small{position:absolute;top:6px;right:7px}.cal>button>b{position:absolute;top:19px;right:8px}.userbar [data-out]{color:#dc2626;border-color:#fecaca}.vehicle-driver-row{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:10px;border-bottom:1px solid var(--line);padding:7px 0}.location-flags{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.today-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px}.today-tools textarea{min-height:150px}@media(max-width:560px){.vehicle-driver-row,.today-tools{grid-template-columns:1fr}}

/* V46 fonctions administratives */
.planning-admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.copy-mission{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px;margin-top:14px;padding:12px;border-radius:12px;background:var(--bg)}.mission-sort{margin-bottom:14px}.fixation-badge,.packing-badge{margin-right:5px}@media(max-width:520px){.planning-admin-actions,.copy-mission{grid-template-columns:1fr}}

/* V47 badges mission */
.mission-card .mission-status{left:auto!important;right:20px!important;top:10px!important}.mission-card:has(.mission-status) .mission-card-content{padding-top:0;padding-right:118px}.mission-card:has(.mission-status) .edit-mission{margin-top:34px}
@media(max-width:520px){.mission-card .mission-status{position:absolute!important;display:block!important;margin:0!important;right:14px!important}.mission-card:has(.mission-status) .mission-card-content{padding-right:105px}.mission-card:has(.mission-status) .edit-mission{margin-top:36px}}

/* V48 badges mission sur mobile */
@media(max-width:520px){.mission-card:has(.mission-status){padding-top:48px}.mission-card .mission-status{top:10px!important}.mission-card:has(.mission-status) .mission-card-content{padding-right:0}.mission-card:has(.mission-status) .edit-mission{margin-top:0}}

/* V49 formulaire et récapitulatif des missions */
.mission-dates{grid-template-columns:repeat(2,minmax(0,1fr))}.client-phone-row{grid-template-columns:155px minmax(0,1fr) auto;align-items:end;margin-bottom:9px}.client-phone-row .remove-phone{min-width:44px}.add-phone{display:block;margin:0 0 14px auto}.mission-summary+h3,.card>h4{margin:14px 0 5px;color:var(--muted);font-size:12px;text-transform:uppercase}
@media(max-width:430px){.mission-dates{grid-template-columns:repeat(2,minmax(0,1fr))}.mission-dates label:first-child{grid-column:auto}.client-phone-row{grid-template-columns:1fr}.client-phone-row .remove-phone{width:100%}}

/* V50 affectations du jour */
[data-driver-for][hidden]{display:none!important}

/* V52 calendrier, récapitulatif et feuilles de route */
.cal>button,.cal>button.has-overtime{background:var(--card)!important}.cal>button.is-today{outline:3px solid #16a34a!important;outline-offset:-3px}.mission-card.day-card:has(.mission-status){padding-top:48px}.mission-card.day-card .mission-status{left:20px!important;right:auto!important;top:10px!important}.mission-card.day-card:has(.mission-status) .mission-card-content{padding-right:0}.mission-card.day-card:has(.mission-status) .edit-mission{margin-top:0}.tip-card{width:100%;text-align:left}.tip-card p{color:var(--muted);font-weight:500}.tip-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tip-period strong{display:block;margin-top:6px;color:var(--primary);font-size:30px}.tip-line{display:flex;justify-content:space-between;gap:12px}.road-history-actions{display:flex;align-items:center;gap:7px}.road-delete-one{min-width:42px;color:#dc2626;border-color:#fecaca;font-size:22px}.road-history-tools>.danger{width:100%}
@media(max-width:520px){.tip-filters{grid-template-columns:1fr}.road-history-card{align-items:flex-start}.road-history-actions{flex-direction:column;align-items:stretch}}

/* V53 statuts manuels et calendrier uniforme */
button.mission-status{border:0;min-height:0;box-shadow:none;cursor:pointer}.cal>button.has-overtime{border-color:var(--line)!important}

/* V56 navigation selon les droits */
.nav:has(>button:nth-child(4):last-child){grid-template-columns:repeat(4,1fr)}

/* V57 feuilles de route par conducteur */
.road-waiting,.no-road-sheet{margin-top:12px;padding:12px;border-radius:12px;background:var(--bg);color:var(--muted);font-weight:650}.road-waiting{border-left:4px solid #eab308}.no-road-sheet{border-left:4px solid var(--line)}.consolidated-driver{border-left:5px solid var(--primary)}.consolidated-driver>p{padding:5px 0;border-bottom:1px solid var(--line)}
.calendar-day-note textarea{min-height:92px;resize:vertical}.calendar-day-note small,.start-km-form small,.end-day small,.ecotec-weight small{display:block;margin-top:7px;color:var(--muted)}
.today-address{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;align-items:center;margin:12px 0}.today-address .address-value{grid-column:2}.gps-actions{grid-column:2;display:flex;flex-wrap:wrap;gap:8px}.gps-actions a{display:inline-flex;padding:7px 11px;border-radius:10px;background:var(--primary);color:#fff;text-decoration:none;font-weight:700}
.control-category{margin:10px 0;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.control-category summary{cursor:pointer;padding:13px 15px;font-weight:800;list-style-position:inside}.control-category[open] summary{border-bottom:1px solid var(--border)}.control-category>.check,.control-category>.vehicle-check-row{margin-left:14px;margin-right:14px}.save-vehicle-controls{margin-top:15px}.ecotec-weight input{max-width:220px}
@media(max-width:600px){.today-address{grid-template-columns:1fr}.today-address .address-value,.gps-actions{grid-column:1}.gps-actions a{flex:1;justify-content:center}.control-category>.check,.control-category>.vehicle-check-row{margin-left:9px;margin-right:9px}}
.controls-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.controls-heading h3{margin:0}.controls-validated{flex:0 0 auto;background:#168347;color:#fff;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:800}.mileage-panel input{font-size:1.1rem;font-weight:700}
@media(max-width:480px){.controls-heading{align-items:center}.controls-validated{font-size:.7rem;padding:5px 8px;max-width:125px;text-align:center}}
.day-date-strip{display:grid;grid-template-columns:repeat(7,minmax(54px,1fr));gap:8px;margin:10px 0 18px;overflow-x:auto;padding:3px}.day-strip-item{min-width:54px;min-height:72px;padding:9px 5px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;box-shadow:none}.day-strip-item small{font-size:.72rem;font-weight:800;color:var(--muted)}.day-strip-item b{font-size:1.15rem}.day-strip-item.selected{background:#15151a;color:#fff;border-color:#15151a}.day-strip-item.selected small{color:#fff}
@media(max-width:600px){.day-date-strip{grid-template-columns:repeat(7,58px);margin-left:-4px;margin-right:-4px}.day-strip-item{min-width:58px}}
.day-scope-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 14px}.day-scope-switch button{min-height:44px}.day-date-strip{--day-border:#9ca8b8}.day-strip-item{border:2px solid var(--day-border)}:root[data-theme=dark] .day-date-strip{--day-border:rgba(255,255,255,.78)}:root[data-theme=light] .day-date-strip{--day-border:#8d99aa}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .day-date-strip{--day-border:rgba(255,255,255,.78)}}
@media(max-width:480px){.day-scope-switch{gap:6px}.day-scope-switch button{padding-left:7px;padding-right:7px;font-size:13px}}
.day-strip-item.selected{background:linear-gradient(135deg,var(--primary),var(--primary2));border-color:transparent;color:#fff;box-shadow:0 7px 18px rgba(23,105,224,.22)}.vehicle-category-group>h3{margin:20px 3px 9px;padding-bottom:7px;border-bottom:2px solid var(--line)}
.day-date-strip{overflow-x:hidden}.day-strip-item{min-width:0}
@media(max-width:600px){.day-date-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-left:0;margin-right:0;padding:2px}.day-strip-item{min-width:0;min-height:66px;padding:7px 2px;border-radius:10px}.day-strip-item small{font-size:.62rem}.day-strip-item b{font-size:1rem}}
:root[data-theme=light] input,:root[data-theme=light] select,:root[data-theme=light] textarea{background:#fff;color:#172033;border:1.5px solid #1769e0}:root[data-theme=light] input::placeholder,:root[data-theme=light] textarea::placeholder{color:#738198}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) input,:root:not([data-theme=dark]) select,:root:not([data-theme=dark]) textarea{background:#fff;color:#172033;border:1.5px solid #1769e0}}
.medical-visit{margin:7px 0;color:var(--muted);font-size:.86rem}.medical-visit b{color:var(--text)}html[dir=rtl] body{text-align:right}html[dir=rtl] .userbar,html[dir=rtl] .row,html[dir=rtl] .controls-heading{flex-direction:row-reverse}html[dir=rtl] input,html[dir=rtl] textarea{text-align:right}
.vacation-card::before{content:"🏖️";display:inline-block;margin-right:7px}.theme-dialog-backdrop{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(4,10,20,.58);backdrop-filter:blur(4px)}.theme-dialog{width:min(100%,390px);padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--text);box-shadow:0 22px 65px rgba(0,0,0,.32);text-align:center}.theme-dialog-icon{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 12px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;font-size:23px;font-weight:900}.theme-dialog p{margin:0 0 20px;font-size:16px;line-height:1.5}.theme-dialog-actions{display:flex;justify-content:center;gap:10px}.theme-dialog-actions button{min-width:115px}:root[data-theme=light] .theme-dialog{background:#fff;border-color:#1769e0}:root[data-theme=dark] .theme-dialog{background:#151f2f;border-color:rgba(255,255,255,.35)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-dialog{background:#151f2f;border-color:rgba(255,255,255,.35)}}
.mission-scope-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 13px}.poll-recorded{margin-top:14px;padding:10px;border-radius:10px;background:rgba(22,131,71,.12);color:#168347;font-weight:800}
:root[data-theme=light] .cal>button,:root[data-theme=light] [data-profile],:root[data-theme=light] .calendar-modes button:not(.primary),:root[data-theme=light] .day-scope-switch button:not(.primary),:root[data-theme=light] .manage-tabs button:not(.primary),:root[data-theme=light] .mission-scope-switch button:not(.primary){border:1.5px solid #1769e0;background:#fff;color:#172033}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .cal>button,:root:not([data-theme=dark]) [data-profile],:root:not([data-theme=dark]) .calendar-modes button:not(.primary),:root:not([data-theme=dark]) .day-scope-switch button:not(.primary),:root:not([data-theme=dark]) .manage-tabs button:not(.primary),:root:not([data-theme=dark]) .mission-scope-switch button:not(.primary){border:1.5px solid #1769e0;background:#fff;color:#172033}}
.mission-type-filter{margin-top:8px}.mission-type-filter select{font-weight:750}.empty-missions{text-align:center;color:var(--muted);padding:22px}
.mission-past-filter{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}:root[data-theme=light] .mission-past-filter{border-color:#1769e0}
.import-review-backdrop{position:fixed;z-index:10020;inset:0;padding:18px;display:grid;place-items:center;background:rgba(4,10,20,.65);backdrop-filter:blur(4px)}.import-review-modal{width:min(100%,720px);max-height:90vh;overflow:auto;padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--text);box-shadow:0 24px 70px rgba(0,0,0,.38)}.import-review-modal h2{margin-bottom:3px}.import-review-tools,.import-review-actions{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}.import-review-actions{justify-content:flex-end;position:sticky;bottom:-20px;padding:14px 0 2px;background:var(--card)}.import-review-list{display:grid;gap:10px}.import-proposal{display:grid;grid-template-columns:auto 1fr;gap:12px;margin:0;padding:14px;border:2px solid var(--line);border-radius:14px;background:var(--bg);color:var(--text);font-size:14px}.import-proposal>input{width:22px;min-height:22px;margin-top:3px;accent-color:var(--primary)}.import-proposal span{display:grid;gap:4px}.import-proposal b{width:max-content;padding:4px 8px;border-radius:999px;color:#fff;font-size:11px}.import-proposal strong{font-size:16px}.import-proposal em{font-style:normal;font-weight:750}.import-proposal small{padding-top:6px;color:var(--muted);line-height:1.5}.import-new b{background:#1769e0}.import-moved b{background:#8b5cf6}.import-changed b{background:#b7791f}:root[data-theme=light] .import-review-modal{background:#fff;border-color:#1769e0}:root[data-theme=light] .import-proposal{border-color:#1769e0;background:#f7faff}
@media(max-width:600px){.import-review-backdrop{padding:8px}.import-review-modal{max-height:96vh;padding:14px;border-radius:16px}.import-review-actions button{flex:1}}
.panel .card>a.list{display:flex;width:100%;margin:7px 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.import-origin-badge{display:table;width:max-content;max-width:100%;margin:0 0 7px;padding:4px 8px;border-radius:999px;color:#fff;font-size:11px;font-weight:850}.import-origin-new{background:#1769e0}.import-origin-changed{background:#8b5cf6}.import-day-badge{color:#8b5cf6!important;font-weight:900!important}
.import-field-slot{margin:7px 0 2px;padding:11px;border:2px solid #8b5cf6;border-radius:12px;background:rgba(139,92,246,.09);color:var(--text)}.import-field-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;color:#7c3aed;font-size:11px;font-weight:850}.import-field-label b{padding:3px 6px;border-radius:999px;background:#8b5cf6;color:#fff;font-size:9px}.import-field-value{padding:10px;border:1px dashed #8b5cf6;border-radius:9px;background:var(--card);color:var(--text);font-size:14px;line-height:1.45;white-space:normal}.import-field-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:8px}.import-field-actions button{min-height:36px;padding:7px 11px}.import-reject{color:#dc2626;border-color:#dc2626;font-size:20px}:root[data-theme=light] .import-field-value{background:#fff}
.import-proposal>input[type=checkbox]{appearance:auto!important;-webkit-appearance:checkbox!important;width:22px!important;height:22px!important;min-width:22px;min-height:22px!important;margin:3px 0 0;padding:0;cursor:pointer;accent-color:var(--primary)}.import-proposal{cursor:pointer;transition:opacity .16s,border-color .16s,background .16s}.import-proposal:has(>input:not(:checked)){opacity:.52;border-style:dashed}.import-proposal:has(>input:checked){border-color:var(--primary)}
.mission-photo-fieldset{display:grid;gap:8px}.mission-photo-fieldset p,.mission-photo-fieldset small{margin:0;color:var(--muted)}.mission-carousel{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;border-radius:14px}.mission-photo-slide{position:relative;display:block;min-width:100%;scroll-snap-align:center}.mission-photo-slide img{display:block;width:100%;height:min(52vh,430px);object-fit:contain;background:#111;border-radius:14px}.mission-photo-slide span{position:absolute;right:10px;bottom:10px;padding:5px 9px;border-radius:999px;background:rgba(0,0,0,.68);color:#fff;font-size:12px}.mission-photo-card{overflow:hidden}
.mission-photo-edit-list{display:grid;gap:10px}.mission-photo-editor{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:start;padding:9px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.mission-photo-editor img{width:90px;height:90px;object-fit:cover;border-radius:9px}.mission-photo-editor textarea{min-height:90px}.mission-photo-slide p{position:absolute;left:10px;right:10px;bottom:10px;margin:0;padding:9px 56px 9px 10px;border-radius:10px;background:rgba(0,0,0,.72);color:#fff;line-height:1.35}.mission-photo-slide:has(p) span{bottom:14px;z-index:1}@media(max-width:520px){.mission-photo-editor{grid-template-columns:72px 1fr}.mission-photo-editor img{width:72px;height:72px}.mission-photo-slide img{height:44vh}}
.today-mission-done{opacity:.7}.today-mission-done .today-kicker{color:#16a34a}.day-return-panel{display:grid;gap:12px;margin:14px 0}.day-return-panel>strong{display:block;padding:12px;border-radius:12px;background:rgba(22,163,74,.14);color:#16a34a;font-size:24px;text-align:center}.complete-mission{margin-top:14px}
.driver-return-panel{display:grid;gap:12px;margin:14px 0}.driver-return-panel fieldset{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px}.driver-return-panel fieldset p{grid-column:1/-1;margin:0}.driver-day-complete,.day-return-complete{margin:14px 0;border:2px solid #16a34a!important;background:rgba(22,163,74,.14)!important;color:#15803d}.driver-day-complete h2,.day-return-complete h2{color:#15803d}.daily-road-button{margin:14px 0;background:#1769e0!important;color:#fff!important}.road-waiting{margin:14px 0;text-align:center;color:var(--muted)}@media(max-width:600px){.driver-return-panel fieldset{grid-template-columns:1fr}.driver-return-panel fieldset p{grid-column:auto}}
