/* Sam-itech MCE — Ergonomie Production 2026 V4
   Additif frontend uniquement. Aucun comportement métier n'est remplacé. */
:root{
  --mce-field-bottom-h:74px;
  --mce-field-touch:48px;
  --mce-field-radius:16px;
  --mce-field-shadow:0 14px 38px rgba(7,31,55,.12);
  --mce-field-blue:#0879c9;
  --mce-field-navy:#0b2038;
  --mce-field-bg:#f4f8fb;
  --mce-field-line:#d8e3ec;
  --mce-field-muted:#61758a;
  --mce-field-green:#16865c;
  --mce-field-red:#c9343d;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:84px}
body.mce-field-ux{overscroll-behavior-y:auto}
body.mce-field-ux :where(button,a,input,select,textarea){-webkit-tap-highlight-color:transparent}
body.mce-field-ux :where(button,a,input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--mce-field-blue) 35%,transparent);outline-offset:2px}
.mce-field-bottom-nav,.mce-field-sheet-wrap,.mce-field-offline-banner{display:none}

/* Accueil terrain — s'ajoute au dashboard existant, sans le remplacer */
.mce-agent-home{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(560px,1.8fr);gap:16px;margin:0 0 18px;padding:0}
.mce-field-branding{grid-row:1 / span 2;display:grid;grid-template-columns:62px minmax(0,1fr);gap:14px;align-items:center;padding:18px;border:1px solid var(--mce-field-line);border-radius:18px;background:linear-gradient(145deg,#fff,#f2f8fc);box-shadow:0 12px 32px rgba(10,42,70,.08)}
.mce-field-logo{grid-row:1 / span 2;width:62px;height:62px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--mce-field-line);border-radius:15px;background:#fff}
.mce-field-logo img,.mce-field-logo span{grid-area:1/1}.mce-field-logo img{width:100%;height:100%;object-fit:contain;padding:6px}.mce-field-logo span{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--mce-field-blue),var(--mce-field-navy));color:#fff;font-size:12px;font-weight:900}
.mce-field-brand-copy{min-width:0}.mce-field-brand-copy small{display:block;color:var(--mce-field-muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.mce-field-brand-copy h2{margin:2px 0 5px;color:var(--mce-field-navy);font-size:24px;line-height:1.08}.mce-field-brand-copy strong{display:block;overflow:hidden;color:var(--mce-field-navy);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.mce-field-brand-copy span{display:block;margin-top:3px;color:var(--mce-field-muted);font-size:12px}
.mce-field-live{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;margin-top:3px;padding-top:12px;border-top:1px solid var(--mce-field-line);color:var(--mce-field-muted);font-size:11px}.mce-field-live strong{color:var(--mce-field-green);font-size:11px}.mce-field-online-dot{width:9px;height:9px;border-radius:50%;background:var(--mce-field-green);box-shadow:0 0 0 4px rgba(22,134,92,.1)}.mce-field-online-dot.offline{background:var(--mce-field-red);box-shadow:0 0 0 4px rgba(201,52,61,.1)}
.mce-field-section-title{display:flex;justify-content:space-between;gap:16px;align-items:end;padding:0 2px}.mce-field-section-title strong{color:var(--mce-field-navy);font-size:15px}.mce-field-section-title span{color:var(--mce-field-muted);font-size:11px}
.mce-field-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.mce-field-tools{grid-column:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mce-field-quick{min-width:0;min-height:88px;display:grid;grid-template-columns:38px minmax(0,1fr) 18px;gap:10px;align-items:center;padding:13px;text-align:left;border:1px solid var(--mce-field-line);border-radius:15px;background:#fff;color:var(--mce-field-navy);box-shadow:0 8px 20px rgba(11,32,56,.055);cursor:pointer}.mce-field-quick:hover{border-color:#a7cce6;transform:translateY(-1px)}.mce-field-quick>svg:first-child{width:34px;height:34px;padding:7px;border-radius:10px;background:#eaf5fc;stroke:var(--mce-field-blue);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mce-field-quick>svg:last-child{width:17px;height:17px;stroke:#8ca1b5;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mce-field-quick span{min-width:0}.mce-field-quick strong,.mce-field-quick small{display:block}.mce-field-quick strong{font-size:13px}.mce-field-quick small{margin-top:4px;overflow:hidden;color:var(--mce-field-muted);font-size:10px;line-height:1.3}.mce-field-quick.primary{border-color:#c9e3f4}.mce-field-quick.active-state{border-color:#9fd7bf;background:#f4fcf8}.mce-field-quick.active-state>svg:first-child{background:#e4f6ed;stroke:var(--mce-field-green)}.mce-field-quick.danger>svg:first-child{background:#fdecee;stroke:var(--mce-field-red)}.mce-field-quick.compact{min-height:68px}

/* Améliorations transversales */
body.mce-field-ux .table-wrap{position:relative;border-radius:12px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
body.mce-field-ux :where(input,select,textarea){transition:border-color .16s ease,box-shadow .16s ease}
body.mce-field-ux :where(.panel,.card,.metric-card){scroll-margin-top:86px}
body.mce-field-classic .command-bar{backdrop-filter:saturate(150%) blur(12px)}
body.mce-field-classic .content{max-width:1600px;width:100%;margin-inline:auto}
body.mce-field-classic .primary-button{font-weight:850}
body.mce-field-quality .topbar{position:sticky;top:0;z-index:65;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(18px)}
.mce-field-return-terrain{gap:7px}.mce-field-return-terrain span{font-size:10px;font-weight:800}

/* Tablette : garder de l'information tout en favorisant le tactile */
@media (min-width:721px) and (max-width:1180px){
  :root{--mce-field-touch:46px}
  .mce-agent-home{grid-template-columns:1fr;gap:12px}.mce-field-branding{grid-row:auto;grid-template-columns:58px 1fr auto}.mce-field-logo{grid-row:auto;width:58px;height:58px}.mce-field-live{grid-column:auto;display:grid;border-top:0;padding-top:0;margin:0}.mce-field-live small{white-space:nowrap}.mce-field-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mce-field-tools{grid-column:auto;grid-template-columns:repeat(3,minmax(0,1fr))}
  body.mce-field-ux :where(button,.primary-button,.ghost-button,.danger-button){min-height:var(--mce-field-touch)}
  body.mce-field-classic .content{padding:20px}
  body.mce-field-classic .panel{padding:17px}
  body.mce-field-classic .details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.mce-field-quality .main{padding-inline:18px}
}

/* Mobile : comportement de vraie application terrain */
@media (max-width:720px){
  :root{--mce-field-bottom-h:76px}
  /* One vertical scroll container: the document. Hidden overflow on body
     creates an inner scroll boundary and traps wheel/touch gestures. */
  html{max-width:100%;overflow-x:clip;overflow-y:auto;scroll-padding-top:16px;scroll-padding-bottom:calc(var(--mce-field-bottom-h) + 28px + env(safe-area-inset-bottom))}
  body.mce-field-classic:not(.mce-field-sheet-open){max-width:100%;height:auto;max-height:none;overflow:visible}
  html.mce-field-menu-open{overflow:hidden}
  body.mce-field-ux{background:var(--mce-field-bg)}
  body.mce-field-ux :where(input,select,textarea){font-size:16px!important;min-height:48px!important}
  body.mce-field-ux textarea{min-height:112px!important}
  body.mce-field-ux :where(button,.primary-button,.ghost-button,.danger-button,.alarm-button){min-height:48px}

  /* App classique */
  body.mce-field-classic .app-shell{display:block!important;min-height:100dvh}
  body.mce-field-classic .sidebar{display:none!important}
  body.mce-field-classic .workspace{min-width:0;width:100%;height:auto;max-height:none;overflow:visible}
  body.mce-field-classic .app-shell,body.mce-field-classic .content{height:auto;max-height:none;overflow:visible}
  body.mce-field-classic .content>*,body.mce-field-classic .panel,body.mce-field-classic .form{min-width:0;max-width:100%}
  body.mce-field-classic .command-bar{position:static!important;top:auto;z-index:55;min-height:64px;padding:9px 12px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:space-between!important;gap:10px;border-bottom:1px solid var(--mce-field-line);background:rgba(255,255,255,.94);box-shadow:0 6px 20px rgba(11,32,56,.065)}
  body.mce-field-classic .command-bar .screen-label{display:none!important}
  body.mce-field-classic .command-bar h1{margin:0!important;font-size:20px!important;line-height:1.1}
  body.mce-field-classic .command-actions{width:100%!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px!important}
  body.mce-field-classic .command-actions button:not(.alarm-button){display:inline-flex!important;width:100%!important;min-width:0;min-height:44px;padding:9px 8px!important;justify-content:center;white-space:normal;overflow-wrap:anywhere}
  body.mce-field-classic .command-actions .alarm-button{width:100%!important;min-width:0;min-height:44px!important;padding:9px 8px!important;font-size:13px!important;border-radius:12px!important;box-shadow:none!important;white-space:normal;justify-content:center;gap:6px}
  body.mce-field-classic .command-actions .alarm-button svg{width:20px;height:20px;flex:0 0 20px;margin:0}
  body.mce-field-classic .content{max-width:none!important;padding:12px 12px calc(var(--mce-field-bottom-h) + 28px + env(safe-area-inset-bottom))!important}
  body.mce-field-classic :where(.stack-layout,.split-layout,.detail-layout,.dashboard-layout,.dashboard-main){gap:12px!important}
  body.mce-field-classic .metrics-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  body.mce-field-classic .metric-card{min-height:116px;padding:14px!important;border-radius:15px!important}
  body.mce-field-classic .panel{padding:14px!important;border-radius:15px!important;box-shadow:0 8px 22px rgba(10,42,70,.06)!important}
  body.mce-field-classic .panel-head{display:flex!important;flex-direction:row!important;align-items:flex-start!important;justify-content:space-between!important;gap:10px!important;flex-wrap:wrap}
  body.mce-field-classic .panel-head h2,body.mce-field-classic .panel-head h3{font-size:17px!important}
  body.mce-field-classic .form{gap:14px!important}
  body.mce-field-classic label{font-size:13px!important;gap:7px!important}
  body.mce-field-classic .primary-button,body.mce-field-classic .danger-button,body.mce-field-classic form>.ghost-button{width:100%;justify-content:center;font-size:14px}
  body.mce-field-classic .actions,body.mce-field-classic .actions-row{gap:8px!important}
  body.mce-field-classic .actions>button,body.mce-field-classic .actions-row>button{flex:1 1 145px}
  body.mce-field-classic .details-grid,body.mce-field-classic .details-grid.compact{grid-template-columns:1fr!important;gap:8px!important}
  body.mce-field-classic .attachment-grid{grid-template-columns:1fr 1fr!important;gap:8px!important}
  body.mce-field-classic .map-viewport{height:min(52dvh,360px)!important;border-radius:13px}
  body.mce-field-classic .table-wrap{margin-inline:0;padding-bottom:4px;box-shadow:inset -12px 0 14px -16px rgba(11,32,56,.55)}
  body.mce-field-classic table{min-width:620px!important}
  body.mce-field-classic th,body.mce-field-classic td{padding:11px 9px!important;font-size:12px!important}
  body.mce-field-classic .pti-banner{padding:13px!important;border-radius:14px!important}

  /* Accueil agent */
  .mce-agent-home{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}
  .mce-field-branding{grid-row:auto;grid-template-columns:54px minmax(0,1fr);gap:12px;padding:14px;border-radius:16px}
  .mce-field-logo{grid-row:1 / span 2;width:54px;height:54px;border-radius:13px}.mce-field-logo span{width:39px;height:39px;font-size:11px}
  .mce-field-brand-copy small{font-size:9px}.mce-field-brand-copy h2{font-size:20px;margin:1px 0 3px}.mce-field-brand-copy strong{font-size:13px}.mce-field-brand-copy span{font-size:10px}
  .mce-field-live{grid-column:1/-1;grid-template-columns:auto auto 1fr;justify-content:start}.mce-field-live small{text-align:right}
  .mce-field-section-title{align-items:flex-start;flex-direction:column;gap:2px;margin-top:2px}.mce-field-section-title strong{font-size:14px}.mce-field-section-title span{font-size:10px}
  .mce-field-quick-grid{grid-template-columns:1fr 1fr;gap:9px}.mce-field-tools{grid-column:auto;grid-template-columns:1fr 1fr;gap:9px}
  .mce-field-quick{min-height:104px;grid-template-columns:1fr 19px;grid-template-rows:35px auto;gap:7px;padding:12px;border-radius:14px}.mce-field-quick>svg:first-child{grid-column:1;width:34px;height:34px}.mce-field-quick>svg:last-child{grid-column:2;grid-row:1;align-self:center}.mce-field-quick span{grid-column:1/-1}.mce-field-quick strong{font-size:13px}.mce-field-quick small{min-height:26px;font-size:9.5px}.mce-field-quick.compact{min-height:92px}

  /* Barre basse terrain */
  .mce-field-bottom-nav{position:fixed;left:8px;right:8px;bottom:calc(7px + env(safe-area-inset-bottom));z-index:90;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));min-height:var(--mce-field-bottom-h);padding:6px;border:1px solid rgba(191,208,221,.92);border-radius:18px;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);box-shadow:0 12px 38px rgba(7,31,55,.2)}
  .mce-field-bottom-nav button{min-width:0;min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 2px;border:0;border-radius:12px;background:transparent;color:#688095;font-size:9px;font-weight:800;line-height:1.05}
  .mce-field-bottom-nav button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}.mce-field-bottom-nav button.active{background:#eaf4fb;color:var(--mce-field-blue)}

  /* Menu bas */
  .mce-field-sheet-wrap:not([hidden]){position:fixed;inset:0;z-index:110;display:block}.mce-field-sheet-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(4,18,31,.42);backdrop-filter:blur(3px)}
  .mce-field-sheet{position:absolute;left:0;right:0;bottom:0;max-height:82vh;max-height:min(82dvh,720px);overflow:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:8px 14px calc(16px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:#fff;box-shadow:0 -20px 70px rgba(4,18,31,.24);animation:mceFieldSheet .18s ease-out}
  .mce-field-sheet-handle{width:42px;height:5px;margin:2px auto 12px;border-radius:999px;background:#cbd8e2}.mce-field-sheet header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.mce-field-sheet header small{color:var(--mce-field-muted);font-size:10px;font-weight:800;text-transform:uppercase}.mce-field-sheet header h2{margin:1px 0 0;color:var(--mce-field-navy);font-size:22px}.mce-field-sheet-close{width:44px;min-height:44px!important;display:grid;place-items:center;border:1px solid var(--mce-field-line);border-radius:12px;background:#f7fafc}.mce-field-sheet-close svg{width:19px;height:19px;fill:none;stroke:var(--mce-field-navy);stroke-width:2}
  .mce-field-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mce-field-sheet-grid button{min-height:64px;display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--mce-field-line);border-radius:13px;background:#fff;color:var(--mce-field-navy);font-size:12px;font-weight:800;text-align:left}.mce-field-sheet-grid svg{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:var(--mce-field-blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mce-field-sheet-utilities{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px;padding-top:12px;border-top:1px solid var(--mce-field-line)}.mce-field-sheet-utilities button{min-height:52px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--mce-field-line);border-radius:13px;background:#f7fafc;color:var(--mce-field-navy);font-weight:850}.mce-field-sheet-utilities button.danger{color:var(--mce-field-red);background:#fff5f5}.mce-field-sheet-utilities svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9}.mce-field-sheet-open{overflow:hidden}

  /* Interface MCE 2026 / contrôle qualité */
  body.mce-field-quality .topbar{min-height:62px;height:auto;padding:8px 10px!important}
  body.mce-field-quality .title-block h1{font-size:20px!important}.mce-field-return-terrain{width:auto!important;min-width:44px;padding:0 9px!important}.mce-field-return-terrain span{display:none}
  body.mce-field-quality .main{padding:12px 12px calc(94px + env(safe-area-inset-bottom))!important}
  body.mce-field-quality .page-head{gap:11px;margin-bottom:13px}.mce-field-quality .page-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;width:100%}.mce-field-quality .page-actions .btn{width:100%;min-height:48px;justify-content:center}
  body.mce-field-quality .card{border-radius:15px!important}body.mce-field-quality .card-body{padding:13px!important}
  body.mce-field-quality .mobile-nav{left:8px!important;right:8px!important;bottom:calc(7px + env(safe-area-inset-bottom))!important;border-radius:18px!important}
  body.mce-field-quality .control-branding-card{padding:13px!important;border-radius:15px!important}.mce-field-quality .control-branding-logos{overflow:auto}.mce-field-quality .control-brand-card{min-width:120px}
  body.mce-field-quality .vehicle-photo-card{grid-template-rows:180px auto auto!important}
}

@keyframes mceFieldSheet{from{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.mce-field-sheet{animation:none!important}.mce-field-quick{transition:none!important}}
.mce-field-offline-banner{position:fixed;left:12px;right:12px;top:12px;z-index:150;display:block;padding:11px 13px;border:1px solid #efb2b7;border-radius:12px;background:#fff1f2;color:#8f1d28;box-shadow:var(--mce-field-shadow);font-size:12px;font-weight:800;text-align:center}
@media print{.mce-agent-home,.mce-field-bottom-nav,.mce-field-sheet-wrap,.mce-field-offline-banner,.mce-field-return-terrain{display:none!important}}

/* MCE_V4_1_NAVIGATION_FLUIDE: no new theme, only interaction fixes. */
.mce-agent-home[hidden],.mce-field-bottom-nav[hidden],.mce-field-sheet-wrap[hidden],
.mce-field-logo [hidden],.mce-field-notice[hidden]{display:none!important}
.mce-field-quick,.mce-field-bottom-nav button,.mce-field-sheet button{touch-action:manipulation}
.mce-field-notice{position:fixed;z-index:160;left:16px;right:16px;bottom:100px;padding:14px;border-radius:12px;background:#0b2038;color:#fff;font:600 14px/1.4 system-ui}
body.mce-field-classic .command-bar h1:focus{outline:0}
@media(max-width:720px){
  /* Old floating shortcuts are retained on desktop and available in Menu on mobile. */
  body.mce-field-classic .mce-2026-floating-tools{display:none!important}
  body.mce-field-classic .mce-field-bottom-nav,
  body.mce-field-classic .command-bar{backdrop-filter:none;-webkit-backdrop-filter:none}
  .mce-field-sheet-backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}
}
@media print{.mce-field-notice{display:none!important}}

/* MCE v4.2: bounded timeline rendering and unobstructed mobile navigation. */
.mce-timeline-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.5fr);gap:10px;margin-bottom:16px}
.mce-timeline-pagination{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px}
.mce-timeline-pagination span{font-size:13px;color:var(--muted,#53657f);text-align:center}
.mce-timeline-pagination button{min-height:44px}
.mce-field-psg-menu-link{display:flex;align-items:center;justify-content:center;min-height:58px;padding:12px;color:inherit;border:1px solid var(--line,#dce5ee);border-radius:12px;text-decoration:none;font-weight:700;text-align:center}
@media(max-width:720px){body.mce-field-classic:has(.mce-field-bottom-nav) #psgModuleShortcut{display:none!important}.mce-timeline-controls{grid-template-columns:minmax(0,1fr)}.mce-timeline-controls input,.mce-timeline-controls select{font-size:16px}body.mce-field-classic .mce-field-bottom-nav button{touch-action:manipulation}}
@media print{.mce-timeline-controls{display:none!important}}

/* MCE v4.3.1: scrollable document and visible mobile commands. */
@media(max-width:720px){body.mce-field-classic .content :where(.actions,.actions-row,.panel-action-group){flex-wrap:wrap;min-width:0}body.mce-field-classic .content :where(button,a){scroll-margin-top:16px;scroll-margin-bottom:calc(var(--mce-field-bottom-h) + 28px)}body.mce-field-classic .content input,body.mce-field-classic .content select,body.mce-field-classic .content textarea{max-width:100%;min-width:0}}

/* Long unbroken report names must wrap inside their grid tracks. */
@media(max-width:720px){body.mce-field-classic .content{overflow-wrap:anywhere}body.mce-field-classic .content .row-main{min-width:0;grid-template-columns:minmax(0,1fr)}body.mce-field-classic .content .row-main>*{min-width:0}}
