/* Les vues d'exploitation partagent le langage visuel de la coque. Les motifs
   représentent des repères métiers ; aucun effet ne masque une donnée de suivi. */
.op-panel-body{padding:24px}.op-panel-body>.table-wrap:only-child{margin:-24px}.op-panel-body>.toolbar:first-child{margin:-24px -24px 0}.op-panel-body>.toolbar+.table-wrap{margin:0 -24px -24px}.op-panel-body .grid-3{margin-bottom:0}.grid-3:has(>.op-stat){margin-bottom:24px}.op-stat .stat-value{overflow-wrap:anywhere}.op-panel td small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.op-panel td strong{color:var(--cmi-ocean);font-size:11px}.op-panel td .btn{min-height:32px;padding:6px 10px;font-size:10px}.op-panel .timeline{margin-left:4px;margin-top:8px}.op-panel .timeline-item>strong{display:block;font-size:12px;margin:7px 0}.op-panel .timeline-item>.muted{font-size:10px}.op-panel-body>.actions{margin-top:18px}.op-panel .panel-head{flex-wrap:wrap}.op-panel h2{font-size:16px}.op-panel h3{font-size:14px}.op-panel-body p{font-size:12px;line-height:1.8}.detail-grid:has(.op-panel),.detail-grid:has(.op-scanner){grid-template-columns:minmax(0,2fr) minmax(240px,1fr);padding:0}.detail-grid:has(.op-panel)>*,.detail-grid:has(.op-scanner)>*{min-width:0}.op-action-stack{display:grid;gap:9px}.op-action-stack .btn{justify-content:flex-start;white-space:normal}.op-definition{display:grid;grid-template-columns:1fr 1fr;gap:15px 20px;margin:0}.op-definition dt,.op-definition dd{margin:0!important;font-size:12px!important}.op-definition dd{text-align:right}.op-actors h3{font-size:13px;line-height:1.6;margin:10px 0 7px}.op-actors p{margin:0;color:var(--muted);font-size:10px}.op-alerts{background:#fbf3df;border:1px solid #eadebc;border-radius:10px;padding:13px 17px;margin:0 0 20px;color:#8d712c;font-size:11px;line-height:1.7}.op-alerts p{margin:4px 0!important;font-size:11px!important}.op-alerts small{display:block;color:#9b8550;font-size:10px;margin-top:7px}.op-journey{display:grid;gap:12px}.op-leg{padding:18px 20px;border:1px solid var(--border-strong);border-radius:10px;background:linear-gradient(110deg,var(--surface-tint),#fff);position:relative}.op-leg h3{font-size:18px;margin:9px 0 6px;font-weight:600;letter-spacing:-.3px}.op-leg h3 span{color:var(--text-muted);padding:0 7px}.op-leg p{font-size:11px;margin:5px 0}.op-leg .badge{margin-left:8px}.op-transfer{font-size:10px;color:var(--text-muted);border-top:1px dashed var(--border-strong);margin-top:14px;padding-top:13px}.op-voyage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:22px}.op-voyage-card{padding:24px;text-align:left;color:var(--ink);font:inherit;cursor:pointer;transition:border-color .2s,transform .2s;margin-bottom:0;min-width:0}.op-voyage-card:hover{border-color:var(--text-muted);transform:translateY(-2px)}.op-voyage-card.selected{border-color:var(--cmi-turquoise);background:linear-gradient(135deg,var(--surface-accent),#fff);box-shadow:inset 0 3px 0 var(--cmi-turquoise)}.op-voyage-card h2{font-size:25px;letter-spacing:1px;margin:12px 0 15px;font-weight:550}.op-voyage-card>p{font-size:12px;margin:0 0 20px}.op-voyage-card>small{font-size:10px;color:var(--text-muted)}.op-voyage-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;color:var(--text-muted)}.op-capacity{height:5px;background:var(--border-soft);border-radius:8px;overflow:hidden;margin:14px 0 9px}.op-capacity i{display:block;height:100%;background:var(--cmi-turquoise);border-radius:8px}.op-stop-line{display:flex;overflow-x:auto;padding:12px 0 26px;gap:0;margin:15px 0 0}.op-stop-line>div{display:flex;flex-direction:column;gap:8px;min-width:155px;flex:1;position:relative}.op-stop-line>div:before{content:'';height:1px;background:var(--border-strong);position:absolute;top:15px;left:0;right:0}.op-stop-line>div:last-child:before{right:calc(100% - 15px)}.op-stop-dot{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--text-on-ocean-muted);border-radius:50%;background:var(--surface-accent);font-size:11px;color:var(--cmi-ocean);position:relative;z-index:1;margin-bottom:7px;border-color:var(--border-strong)}.op-stop-line strong{font-size:12px}.op-stop-line small{font-size:9px;color:var(--muted)}.op-stop-line .btn{font-size:9px;width:fit-content;padding:6px 8px;min-height:28px;margin-top:8px}.op-container-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px}.op-container-card{padding:0 24px 24px;margin-bottom:0}.op-container-card>.panel-head{margin:0 -24px 20px;padding:22px 24px}.op-container-card>.panel-head h2{font-size:20px;letter-spacing:.3px;margin-top:7px}.op-container-card .grid-3{gap:8px;margin-bottom:15px}.op-container-card .op-stat{padding:12px;border:0;background:var(--surface-tint);border-radius:7px}.op-container-card .op-stat .stat-top{font-size:9px}.op-container-card .op-stat .stat-value{font-size:17px;margin:8px 0 0}.op-container-card .op-stat .stat-bottom:empty{display:none}.op-container-card>p{font-size:10px;line-height:1.8}.op-container-card .actions{margin-top:20px}.op-container-card .btn{font-size:10px;padding:8px 11px}.op-container-art{height:125px;background:linear-gradient(130deg,#08748c,var(--cmi-ocean-deep));border-radius:5px;display:flex;justify-content:space-around;padding:10px 25px;position:relative;margin:0 0 20px;border:2px solid var(--cmi-ocean);box-shadow:inset 0 1px 3px #b9e3ed48,0 7px 12px #064d6a0e;overflow:hidden}.op-container-art:before,.op-container-art:after{content:'';position:absolute;left:0;right:0;height:6px;border-top:1px solid #4693a8;border-bottom:1px solid var(--cmi-ocean-deep);background:var(--cmi-ocean)}.op-container-art:before{top:0}.op-container-art:after{bottom:0}.op-container-art i{height:100%;width:8px;background:linear-gradient(90deg,var(--cmi-ocean-deep),#1596ac 50%,#076783);border-radius:2px;opacity:.65}.op-container-art span{position:absolute;z-index:2;left:22px;top:23px;font-size:13px;font-weight:700;letter-spacing:2px;color:#e8f7fb;background:#034358b0;padding:5px 8px}.op-scanner{padding:28px}.op-scanner h2{font-size:22px;margin:12px 0 24px;letter-spacing:-.5px}.op-scanner>.toolbar{padding:0}.op-scanner #op-scan-form .toolbar{padding:0;border:0;align-items:flex-end}.op-scanner #op-scan-form .toolbar .btn{margin-bottom:14px}.op-scanner>.actions{margin-top:6px}.op-scanner>p{font-size:10px;line-height:1.8}.op-scan-target{height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,var(--surface-accent),var(--surface-subtle));border:1px solid var(--border-strong);border-radius:13px;margin:10px 0 22px;position:relative;overflow:hidden;color:var(--cmi-turquoise-strong)}.op-scan-target:before,.op-scan-target:after{content:'';width:140px;height:40px;border-left:2px solid var(--cmi-turquoise);border-right:2px solid var(--cmi-turquoise);position:absolute;left:calc(50% - 70px)}.op-scan-target:before{top:25px;border-top:2px solid var(--cmi-turquoise)}.op-scan-target:after{top:94px;border-bottom:2px solid var(--cmi-turquoise)}.op-scan-target svg{margin-top:6px}.op-scan-target p{font-size:13px;font-weight:600;margin:26px 0 6px}.op-scan-target small{color:var(--text-muted);font-size:10px}.op-scan-list{max-height:350px;overflow-y:auto;margin:14px 0}.op-scan-item{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--border-soft)}.op-scan-item strong{display:block;font-size:10px;overflow-wrap:anywhere}.op-scan-item small{display:block;font-size:9px;color:var(--muted);margin-top:7px}.op-scan-item .btn{min-height:28px;padding:4px 8px}.op-official{padding:30px 0;font-size:12px;color:var(--cmi-ocean)}.op-official h1{font-family:Georgia,serif;font-size:25px;letter-spacing:-.5px}.op-official .grid-3{gap:20px}.op-official p{line-height:1.8}.op-official hr{border:0;border-top:1px solid var(--border-strong);margin:22px 0}.op-document-brand{display:flex;align-items:center;gap:15px}.op-document-brand strong{font-size:30px;letter-spacing:3px}.op-document-brand span{font-size:10px;letter-spacing:1.5px}.op-label-sheet{display:grid;justify-content:center;gap:20px;padding-top:22px;overflow-x:auto}.op-label{box-sizing:border-box;width:100mm;border:1px solid var(--border-strong);border-radius:5px;padding:4mm;color:var(--cmi-ocean-deep);background:white;break-inside:avoid;overflow:hidden;font-family:Arial,sans-serif}.op-label .op-label-top{display:flex;justify-content:space-between;font-size:9pt;margin-bottom:2mm}.op-label h2{font-size:19pt;line-height:1.05;margin:0 0 2mm}.op-label p{font-size:8pt;line-height:1.3;margin:1mm 0}.op-label .op-label-code{height:15mm;width:100%;display:block;margin-top:2mm}.op-label svg{height:15mm;width:100%}.op-label .op-label-id{text-align:center;letter-spacing:.8px;font-size:8pt}.op-label-tall{padding:7mm 5mm}.op-label-tall h2{font-size:28pt;margin:7mm 0}.op-label-tall p{font-size:11pt;line-height:1.6;margin:3mm 0}.op-label-tall .op-label-code,.op-label-tall svg{height:25mm;margin-top:8mm}.op-label-tall .op-label-id{font-size:10pt}.op-label-small-note{font-size:8pt!important;color:var(--text-secondary)}.op-sr-only,.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#toast.danger{background:#9f4e3e}#toast.warning{background:#896a2d}
.op-stock-filter{padding:24px}.op-stock-filter .form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:15px}.op-container-grid+.op-panel{margin-top:24px}.op-calendar-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.op-calendar h3{text-transform:capitalize;font-size:15px;margin:0 0 18px}.op-calendar-week,.op-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.op-calendar-week{margin-bottom:8px;font-size:9px;color:var(--text-muted);text-align:center}.op-calendar-day{min-height:55px;border:1px solid var(--border-soft);border-radius:5px;padding:6px 4px;background:var(--surface-subtle);min-width:0}.op-calendar-day>span{font-size:10px;color:var(--text-muted);padding:0 4px}.op-calendar-day.today{border-color:var(--cmi-turquoise);background:var(--surface-accent)}.op-calendar-day.today>span{color:var(--cmi-ocean);font-weight:700}.op-calendar-day button{width:100%;font:inherit;font-size:8px;border:0;border-radius:3px;background:#d6eff5;color:var(--cmi-ocean);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding:4px 3px;margin-top:4px;text-align:left}.op-calendar-day button:hover{background:#bce3ed}.op-calendar-day:empty{background:transparent;border:0}
@media(max-width:1000px){.op-calendar-grid{grid-template-columns:1fr;gap:25px}.op-calendar-day{min-height:52px}.op-calendar-day button{font-size:9px}}
.op-routing{border:1px solid var(--border-strong);border-radius:10px;padding:18px;margin:14px 0 18px}.op-routing legend{font-size:12px;font-weight:600;color:var(--text-secondary);padding:0 7px}.op-route-options{max-height:240px;overflow-y:auto;border:1px solid var(--border-soft);border-radius:7px}.op-route-option{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border-soft);cursor:pointer}.op-route-option:last-child{border-bottom:0}.op-route-option strong{font-size:11px;display:block}.op-route-option small{font-size:10px;display:block;color:var(--muted);margin-top:4px}
/* Le terminal doit rester maniable sur le CT37. On privilégie une colonne et
   des cibles larges, sans cacher les alertes ni les contrôles de validation. */
@media(max-width:1000px){.detail-grid:has(.op-panel),.detail-grid:has(.op-scanner){grid-template-columns:1fr}.op-actors{grid-template-columns:repeat(3,1fr)}.op-voyage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.op-container-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.op-container-card{padding:0 18px 18px}.op-container-card>.panel-head{margin:0 -18px 18px;padding:18px}.op-container-card .grid-3{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.op-panel-body{padding:18px}.op-panel-body>.table-wrap:only-child{margin:-18px}.op-panel-body>.toolbar:first-child{margin:-18px -18px 0}.op-panel-body>.toolbar+.table-wrap{margin:0 -18px -18px}.op-voyage-grid,.op-container-grid{grid-template-columns:1fr}.op-actors{grid-template-columns:1fr;gap:22px}.op-panel .panel-head .actions{width:100%}.op-panel .panel-head .btn{flex:1;font-size:10px}.op-scanner{padding:20px}.op-scanner .actions .btn{min-height:44px}.op-stop-line>div{min-width:145px}.op-stop-line .btn{min-height:38px}.op-scan-item .btn{min-height:40px;min-width:40px}.op-leg{padding:16px}.op-label-sheet{justify-content:start}.op-label{transform-origin:top left}.op-official{padding:15px 0}.op-official .grid-3{grid-template-columns:1fr}.op-panel .panel-head h2{font-size:15px}.op-alerts{font-size:10px}.op-journey .badge{margin:6px 0 0}.op-stop-line small{font-size:10px}}
