/* Precision Manufacturing — floor plan, job board and small extras */
.env-manufacturing .pill.is-setup{color:var(--c2)}
.env-manufacturing .stat.is-setup b{color:var(--c2)}

/* Status legend (tap to highlight machines) */
.m-legend{display:flex;flex-wrap:wrap;gap:6px}
.m-leg{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 11px;border:1px solid var(--card-border);border-radius:999px;background:var(--card-bg-2);color:var(--muted);font-size:13px;font-weight:600}
.m-leg b{color:var(--text);font-variant-numeric:tabular-nums}
.m-leg:hover{border-color:var(--accent)}
.m-leg.is-on{border-color:var(--accent);color:var(--text);box-shadow:inset 0 0 0 1px var(--accent)}
.m-leg-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--faint);flex-shrink:0}
.m-leg-dot.st-run{background:var(--good)} .m-leg-dot.st-setup{background:var(--c2)}
.m-leg-dot.st-idle{background:var(--faint)} .m-leg-dot.st-down{background:var(--bad)}

/* Floor plan */
.m-plan{position:relative;width:100%}
.m-plan-svg{display:block;width:100%;height:auto;max-height:560px}
.m-plan-svg.is-portrait{max-height:none}
.m-bldg{fill:#22272c;stroke:#4a535b;stroke-width:2}
.m-aisle{fill:#1d2125}
.m-aisle-line{stroke:var(--accent);stroke-width:2.5;stroke-dasharray:14 10;opacity:.7}
.m-room{fill:#262c32;stroke:#58626b;stroke-width:1.5}
.m-decor{fill:none;stroke:#4a535b;stroke-width:1.5;stroke-dasharray:4 4}
.m-door{stroke:var(--accent-2);stroke-width:6;stroke-linecap:round}
.m-zone{fill:var(--faint);font-size:13px;font-weight:600}
.m-mach{cursor:pointer;outline:none;transition:opacity .2s ease}
.m-body{fill:var(--card-bg);stroke:var(--card-border);stroke-width:2;transition:stroke .2s ease,fill .2s ease}
.m-strip{fill:var(--faint)}
.m-ring-track{fill:none;stroke:var(--card-bg-2);stroke-width:7}
.m-ring{fill:none;stroke:var(--faint);stroke-width:7;stroke-linecap:round;transition:stroke-dasharray .6s ease}
.m-pct{fill:var(--text);font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums}
.m-name{fill:var(--text);font-size:14.5px;font-weight:700}
.m-sub{fill:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}
.m-mach[data-st="run"] .m-strip,.m-mach[data-st="run"] .m-ring{fill:var(--good);stroke:var(--good)}
.m-mach[data-st="run"] .m-ring{fill:none}
.m-mach[data-st="setup"] .m-strip{fill:var(--c2)} .m-mach[data-st="setup"] .m-ring{stroke:var(--c2)}
.m-mach[data-st="down"] .m-strip{fill:var(--bad)} .m-mach[data-st="down"] .m-ring{stroke:var(--bad)}
.m-mach[data-st="down"] .m-body{stroke:var(--bad);fill:rgba(234,95,77,.1)}
.m-mach[data-st="down"] .m-strip{animation:m-blink 1.2s ease-in-out infinite}
@keyframes m-blink{50%{opacity:.3}}
.m-mach:hover .m-body,.m-mach:focus-visible .m-body{stroke:var(--accent-2)}
.m-mach.is-selected .m-body{stroke:var(--accent);stroke-width:3;fill:var(--card-bg-2)}
.m-mach.is-dim{opacity:.28}
.m-plan-svg.is-portrait .m-name{font-size:16.5px}
.m-plan-svg.is-portrait .m-pct{font-size:15.5px}
.m-plan-svg.is-portrait .m-zone{font-size:15px}
.m-plan-svg.is-portrait .m-sub{display:none}

/* Machine detail */
.m-d-job strong{display:block;font-size:15.5px}
.m-d-job span{display:block;margin-top:2px;color:var(--muted);font-size:13.5px}
.m-d-stats{margin-top:12px}
.m-d-stats .stat b{font-size:19px}
.m-d-bar{margin-top:14px}
.m-d-bar .progress{margin-top:8px}
.m-hrs{position:relative;overflow:visible}
.m-hrs > i{background:var(--c2)}
.m-hrs > i.is-bad{background:var(--bad)}
.m-hrs em{position:absolute;top:-5px;width:2px;height:16px;margin-left:-1px;background:var(--text);opacity:.8}
.m-d-proj{margin-top:6px;color:var(--muted);font-size:13px}
.m-d-proj.is-warn{color:var(--warn)}
.m-d-alert{margin-top:14px;padding:12px;border-radius:12px;border:1px solid var(--card-border);background:var(--card-bg-2)}
.m-d-alert.st-down{border-color:rgba(234,95,77,.55)}
.m-d-alert.st-setup{border-color:rgba(127,178,217,.55)}
.m-d-alert p{font-size:13.5px;line-height:1.5}
.m-d-alert .btn-ops{width:100%;margin-top:10px}
.m-d-alert .btn-ops[hidden]{display:none}
.m-feed{max-height:320px}
.m-feed .feed-item.is-bad span{color:var(--bad)}
.m-feed .feed-item.is-good span{color:var(--good)}
.m-mlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;margin-top:10px}
.m-mlist .list-item{min-height:44px;padding:7px 6px;border-radius:0;gap:10px}
.m-mlist .list-item:nth-last-child(2){border-bottom:0}
.m-mlist .list-item strong{font-size:14px}

/* Job board (kanban) */
.m-board-stats{margin-bottom:16px}
.m-board{display:grid;grid-template-columns:repeat(6,minmax(200px,1fr));gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-bottom:6px;align-items:start}
.m-col{display:flex;flex-direction:column;min-width:0;border-radius:12px;background:var(--card-bg-2);border:1px solid var(--card-border);scroll-snap-align:start}
.m-col-head{display:flex;align-items:baseline;gap:8px;padding:10px 12px;border-bottom:1px solid var(--card-border)}
.m-col-head strong{font-size:14.5px}
.m-col-n{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--card-bg);color:var(--text);font-size:12.5px;font-weight:700}
.m-col-v{margin-left:auto;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.m-col-body{display:flex;flex-direction:column;gap:8px;padding:10px;min-height:120px}
.m-job{padding:10px 11px;border-radius:10px;background:var(--card-bg);border:1px solid var(--card-border);border-left:3px solid var(--good);transition:opacity .2s ease}
.m-job.is-risk{border-left-color:var(--warn)}
.m-job.is-late{border-left-color:var(--bad);background:rgba(234,95,77,.07)}
.m-job.is-done{border-left-color:var(--faint)}
.m-job.is-dim{opacity:.3}
.m-job-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.m-job-top strong{font-size:14.5px;font-variant-numeric:tabular-nums}
.m-job-top .pill{padding:3px 8px}
.m-job-cust{margin-top:6px;font-size:13.5px;font-weight:600}
.m-job-part{margin-top:2px;color:var(--muted);font-size:12.5px;line-height:1.4}
.m-job-meta{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:13px;color:var(--muted)}
.m-job-meta b{color:var(--text);font-variant-numeric:tabular-nums}
.m-adv{width:100%;min-height:36px;margin-top:10px;font-size:13.5px}
.m-board-hint{display:none;margin:0 0 10px}

/* Quotes */
.m-rp-name{margin-bottom:8px;color:var(--muted);font-size:13.5px}
.m-rq-stats{margin-top:16px}
.m-rq-diff{margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--card-bg-2);border:1px solid var(--card-border);font-size:13.5px;line-height:1.5}
.m-rq-diff.is-warn{border-color:rgba(240,192,75,.5);color:var(--warn)}
.m-rq-diff.is-good{border-color:rgba(91,194,127,.5);color:var(--good)}
.m-full{width:100%;margin-top:12px}

/* Machine performance */
.m-gauges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.m-g-oee .gauge-value{color:var(--accent)}
.m-toggle{margin-top:14px;border-top:1px solid var(--card-border);border-bottom:0;min-height:44px}

/* Blanket POs */
.m-po{padding:12px 10px;border-radius:0}
.m-po .progress{margin:8px 0 6px}
.m-po .m-po-flag{color:var(--warn)}
.m-po-stats{margin-top:14px}

/* Owner review */
.m-att-item{align-items:flex-start;padding:12px 0}
.m-att-item .pill{margin-top:2px;min-width:96px;justify-content:center}
.m-att-item .btn-ops{flex-shrink:0;min-height:36px;font-size:13.5px}
.m-att-item small{margin-top:3px}
.m-att-item.is-done strong{text-decoration:line-through;color:var(--muted)}
.m-att-item.is-done .pill,.m-att-item.is-done small{opacity:.55}
.m-att-item[hidden]{display:none}

@media (max-width:1023px){
  .m-gauges{grid-template-columns:repeat(2,minmax(0,1fr))}
  .m-board{grid-template-columns:repeat(6,minmax(230px,42%))}
  .m-board-hint{display:block}
}
@media (max-width:767px){
  .m-board{grid-template-columns:repeat(6,84%);margin:0 -14px;padding:0 14px 6px;scroll-padding:0 14px}
  .m-att-item{flex-wrap:wrap;gap:8px}
  .m-att-item .pill{min-width:0}
  .m-att-item .grow{flex-basis:100%}
  .m-att-item .btn-ops{width:100%}
  .m-gauges{gap:8px}
  .m-legend{width:100%}
  .m-leg{flex:1 0 auto;justify-content:center;padding:0 9px}
}
@media (prefers-reduced-motion:reduce){
  .m-mach[data-st="down"] .m-strip{animation:none}
  .m-ring{transition:none}
}
@media (max-width:600px){
  .m-mlist{grid-template-columns:1fr}
  .m-mlist .list-item:nth-last-child(2){border-bottom:1px solid var(--card-border)}
}
@media (min-width:768px) and (max-width:1180px){
  .m-detail{grid-column:span 12}
  .m-detail .card-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;align-items:start}
  .m-detail .m-d-stats{margin-top:0}
}
