/* Admin-only CNC machine report. Scoped so the cutting board and other boards stay unchanged. */
#cncBoardRoot .cnc-btn-machine-stats,#p3dBoardRoot .cnc-btn-machine-stats{
  border-color:#bac9ff;
  background:#eff2ff;
  color:#2847af;
}
#cncBoardRoot .cnc-btn-machine-stats:hover,#p3dBoardRoot .cnc-btn-machine-stats:hover{
  border-color:#6883ef;
  background:#e3eaff;
}
.cnc-ms-overlay{z-index:1005;align-items:center;padding:12px}
.cnc-modal-card.cnc-ms-card{
  width:min(1160px,100%);
  max-width:calc(100vw - 24px);
  max-height:calc(100dvh - 24px);
  overflow:hidden;
}
.cnc-ms-card .cnc-modal-head{padding:18px 22px}
.cnc-ms-card .cnc-modal-title{font-size:20px}
.cnc-ms-subtitle{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.4}
.cnc-ms-body{display:block;min-height:0;overflow-y:auto;padding:18px 22px 24px}
.cnc-ms-presets{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.cnc-ms-presets .cnc-mbtn{font-size:12px;padding:7px 15px}
.cnc-ms-fields{display:flex;align-items:end;flex-wrap:wrap;gap:9px 11px}
.cnc-ms-fields label{
  display:flex;flex-direction:column;gap:5px;min-width:0;
  color:#536780;font-size:11px;font-weight:800;
}
.cnc-ms-fields input{
  box-sizing:border-box;min-width:0;width:150px;height:37px;
  padding:6px 9px;border:1px solid #b9cbe0;border-radius:8px;
  background:var(--card);color:var(--text);font:600 12px var(--font);
}
.cnc-ms-fields input[type=time]{width:105px}
.cnc-ms-fields input:focus-visible,.cnc-ms-refresh:focus-visible{
  outline:2px solid var(--blue);outline-offset:2px;
}
.cnc-ms-refresh{
  height:37px;padding:0 14px;border:1px solid #b9cbe0;border-radius:8px;
  background:#f4f8ff;color:#265a98;font:800 12px var(--font);
  cursor:pointer;white-space:nowrap;
}
.cnc-ms-refresh:hover{background:#e9f1ff}
.cnc-ms-help{
  margin:11px 0 0;color:#697b8f;font-size:11px;line-height:1.5;
}
.cnc-ms-status{min-height:16px;margin:12px 1px 7px;color:#58708a;font-size:11px;font-weight:700}
.cnc-ms-status.is-error{color:#b42318}
.cnc-ms-loading{
  padding:32px 16px;text-align:center;border:1px dashed #c8d6e5;
  border-radius:12px;background:#f7faff;color:#62788f;font-size:13px;
}
.cnc-ms-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:11px}
.cnc-ms-kpis>div{
  min-width:0;padding:14px 16px;border-radius:12px;border:1px solid #dbe5f1;
  background:#f7faff;
}
.cnc-ms-kpis>div:first-child{background:#fff8ef;border-color:#f1d7af}
.cnc-ms-kpis>div:nth-child(2){background:#eefaf3;border-color:#bce4cc}
.cnc-ms-kpis span{display:block;color:#596c81;font-size:11px;font-weight:700}
.cnc-ms-kpis strong{display:block;margin-top:4px;color:#14263e;font-size:22px;line-height:1.15;overflow-wrap:anywhere}
.cnc-ms-coverage{
  margin:0 0 14px;padding:10px 12px;border:1px solid #f2ddbb;border-radius:9px;
  background:#fffaf1;color:#80602a;font-size:11px;line-height:1.45;
}
.cnc-ms-machine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cnc-ms-machine{
  min-width:0;padding:13px;border:1px solid #d8e4ee;border-radius:12px;
  background:var(--card);box-shadow:0 2px 6px rgba(18,45,77,.04);
}
.cnc-ms-machine-top{display:flex;align-items:center;gap:7px;min-width:0;margin-bottom:12px}
.cnc-ms-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#486fdc}
.cnc-ms-machine:nth-child(2) .cnc-ms-dot{background:#d5635b}
.cnc-ms-machine:nth-child(3) .cnc-ms-dot{background:#248595}
.cnc-ms-machine:nth-child(4) .cnc-ms-dot{background:#8a68a7}
.cnc-ms-machine:nth-child(5) .cnc-ms-dot{background:#4a86b8}
.cnc-ms-machine:nth-child(6) .cnc-ms-dot{background:#4d9a7a}
.cnc-ms-machine h3{flex:1;min-width:0;margin:0;color:#172b46;font-size:13px;overflow-wrap:anywhere}
.cnc-ms-count{
  flex:none;padding:3px 7px;border-radius:999px;background:#edf2f8;
  color:#47617d;font-size:10px;font-weight:800;white-space:nowrap;
}
.cnc-ms-bar{display:flex;width:100%;height:10px;overflow:hidden;border-radius:999px;background:#e9eff5}
.cnc-ms-bar span{display:block;height:100%;min-width:0}
.cnc-ms-bar-work{background:#20aa74}
.cnc-ms-bar-idle{background:#f4aa42}
.cnc-ms-machine-metrics{display:flex;flex-wrap:wrap;gap:6px 15px;margin-top:10px;color:#61748a;font-size:11px}
.cnc-ms-machine-metrics b{display:block;margin-top:2px;color:#1c324f;font-size:14px}
.cnc-ms-since{margin-top:10px;padding-top:8px;border-top:1px solid #edf1f5;color:#8593a3;font-size:10px;line-height:1.4}
.cnc-ms-section-title{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin:22px 0 10px;color:#152840;font-size:16px}
.cnc-ms-section-title span{color:#718398;font-size:11px;font-weight:500}
.cnc-ms-day{margin:0 0 9px;overflow:hidden;border:1px solid #dbe5f0;border-radius:12px;background:var(--card)}
.cnc-ms-day>summary{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:12px 14px;background:#f5f8fc;color:#1c3652;
  font-size:12px;font-weight:800;cursor:pointer;list-style:none;
}
.cnc-ms-day>summary::-webkit-details-marker{display:none}
.cnc-ms-day>summary::before{content:'▸';margin-right:2px;color:#647b97}
.cnc-ms-day[open]>summary::before{content:'▾'}
.cnc-ms-day>summary span{flex:1;min-width:0;overflow-wrap:anywhere}
.cnc-ms-day>summary b{flex:none;color:#a36213;font-size:11px}
.cnc-ms-day-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:10px}
.cnc-ms-day-machine{min-width:0;padding:11px 12px;border:1px solid #e2e9f2;border-radius:9px}
.cnc-ms-day-machine-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:11px}
.cnc-ms-day-machine-head b{min-width:0;color:#1c324d;overflow-wrap:anywhere}
.cnc-ms-day-machine-head span{flex:none;color:#a56b24;font-weight:800}
.cnc-ms-day-totals{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:6px;color:#62768a;font-size:10px}
.cnc-ms-jobs{display:flex;flex-direction:column;gap:0;margin:9px 0 0;padding:0;list-style:none;border-top:1px solid #edf1f5}
.cnc-ms-jobs li{display:flex;justify-content:space-between;gap:10px;min-width:0;padding:8px 0;border-bottom:1px solid #edf1f5}
.cnc-ms-jobs li:last-child{border:0;padding-bottom:0}
.cnc-ms-job-copy{flex:1;min-width:0;color:#29405b;font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.cnc-ms-job-copy b{display:block}
.cnc-ms-job-copy small{display:block;margin-top:2px;color:#74859a;font-size:10px}
.cnc-ms-jobs strong{flex:none;color:#167752;font-size:11px;white-space:nowrap}
.cnc-ms-empty{margin:8px 0 0;color:#8997a7;font-size:10px;line-height:1.45}
.cnc-ms-more{
  display:block;width:100%;margin:12px 0 0;padding:11px 14px;
  border:1px solid #bed0e6;border-radius:9px;background:#f3f8ff;
  color:#285a96;font:800 12px var(--font);cursor:pointer;
}
.cnc-ms-more:hover{background:#e8f2ff}
@media(max-width:900px){
  .cnc-ms-machine-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .cnc-ms-overlay{padding:4px}
  .cnc-modal-card.cnc-ms-card{max-width:calc(100vw - 8px);max-height:calc(100dvh - 8px)}
  .cnc-ms-card .cnc-modal-head{padding:13px 15px}
  .cnc-ms-card .cnc-modal-title{font-size:17px}
  .cnc-ms-body{padding:13px 14px 18px}
  .cnc-ms-fields label{flex:1 1 135px}
  .cnc-ms-fields label:nth-of-type(n+3){flex-basis:100px}
  .cnc-ms-fields input,.cnc-ms-fields input[type=time]{width:100%}
  .cnc-ms-refresh{flex:1 1 100%}
  .cnc-ms-kpis{grid-template-columns:1fr}
  .cnc-ms-kpis strong{font-size:20px}
  .cnc-ms-machine-grid,.cnc-ms-day-grid{grid-template-columns:1fr}
}

.cnc-ms-bar-repair{background:repeating-linear-gradient(115deg,#f7c933 0 9px,#2b3035 9px 17px)}
.cnc-ms-kpis>div:nth-child(2){background:#fff7d8;border-color:#edd383}
.cnc-ms-kpis>div:nth-child(3){background:#eefaf3;border-color:#bce4cc}
@media(max-width:900px){.cnc-ms-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.cnc-ms-kpis{grid-template-columns:1fr}}

/* Chronological machine line. Grey means the selected hour has not been observed. */
.cnc-ms-time-window{margin:0 0 5px;color:#536b84;font-size:10px;font-weight:800;line-height:1.35}
.cnc-ms-timeline{
  position:relative;width:100%;height:16px;overflow:hidden;border-radius:5px;
  background:#e9eff5;box-shadow:inset 0 0 0 1px #dbe5f0;
}
.cnc-ms-time-part{position:absolute;z-index:1;top:0;bottom:0;min-width:0}
.cnc-ms-time-busy{background:#20aa74}
.cnc-ms-time-idle{background:#f4aa42}
.cnc-ms-time-repair{background:repeating-linear-gradient(115deg,#f7c933 0 9px,#2b3035 9px 17px)}
.cnc-ms-time-tick{position:absolute;z-index:2;top:0;bottom:0;border-left:1px solid rgba(255,255,255,.65);pointer-events:none}
.cnc-ms-time-labels{position:relative;height:17px;margin:4px 0 1px;color:#657992;font-size:9px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.cnc-ms-time-labels span{position:absolute;top:0}
.cnc-ms-time-labels .is-first{left:0}
.cnc-ms-time-labels .is-middle{transform:translateX(-50%)}
.cnc-ms-time-labels .is-last{right:0}
.cnc-ms-range-note{margin:6px 0 0;color:#70829a;font-size:10px;line-height:1.35}
