/* Operations — "Is the machine running?" (public/views/ops.js) */

/* stat-card stack colours for on/warn/off (core .stack only knows hot/warm/cold) */
.stack .on{background:var(--green)}.stack .warn{background:var(--amber)}.stack .off{background:var(--red)}
.legend .on{background:var(--green)}.legend .warn{background:var(--amber)}.legend .off{background:var(--red)}

/* All / Needs a look toggle rendered as links so the filter is a URL */
.ops-seg a{display:inline-block;background:#fff;padding:6px 12px;font:600 12px var(--font-h);color:var(--slate-2);border-right:1px solid var(--mist)}
.ops-seg a:last-child{border-right:0}
.ops-seg a:hover{text-decoration:none;background:var(--ice)}
.ops-seg a.active{background:var(--blue);color:#fff}

/* detail cards opened from a stat tile */
.ops-detail{margin-top:14px;border-left:4px solid var(--blue)}

/* grouped routine list */
.rt-groups{align-items:start}
.rt-group-h{padding:14px 18px 6px}
.rt-group-h h2{margin-bottom:0}
.rt{border-top:1px solid var(--mist)}
.rt-head{list-style:none;display:grid;grid-template-columns:14px minmax(0,1.4fr) minmax(0,1fr) auto;grid-template-areas:"dot name when last" "dot needs needs needs";gap:2px 10px;align-items:center;padding:10px 18px;cursor:pointer;min-height:44px}
.rt-head::-webkit-details-marker{display:none}
.rt-head:hover{background:var(--ice)}
.rt-head .dot{grid-area:dot;width:10px;height:10px}
.rt-name{grid-area:name;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.rt-when{grid-area:when;font-size:12.5px;color:var(--slate-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rt-last{grid-area:last;font-size:12px;white-space:nowrap;text-align:right}
.rt-last.off,.rt-last.off a{color:var(--red);font-weight:600}
.rt-needs{grid-area:needs;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rt-needs:empty{display:none}
.rt[open] .rt-head{background:var(--cloud)}
.rt.h-off .rt-name strong{color:var(--red)}
.rt-body{padding:6px 18px 14px 42px;background:var(--cloud);border-top:1px dashed var(--mist)}
.rt-cols{display:grid;grid-template-columns:1fr 1.4fr;gap:14px}
.list.compact li{padding:5px 0}
.list.compact .dot{margin-top:6px;flex:none}

/* approvals checklist */
.chk-list li{align-items:center}
.chk-list .chk{flex:1;min-width:0;margin:0;align-items:flex-start}
.chk-list .chk input{margin-top:3px;flex:none}
.chk-list .btn{flex:none}

/* teams & skills as compact pill groups */
.skill-groups{display:flex;flex-direction:column;gap:8px}
.sg{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--mist)}
.sg:first-child{border-top:0;padding-top:0}
.sg-name{font:700 12px var(--font-h);color:var(--navy);min-width:150px}
.sg-pills{display:flex;gap:6px;flex-wrap:wrap}
.sg-pills .pill{font-weight:600}
.sg-pills a.pill:hover{text-decoration:none;background:var(--blue-100)}

@media(max-width:700px){
  .rt-head{grid-template-columns:14px minmax(0,1fr) auto;grid-template-areas:"dot name last" "dot when when" "dot needs needs";padding:10px 14px}
  .rt-body{padding:6px 14px 14px 14px}
  .rt-cols{grid-template-columns:1fr}
  .sg-name{min-width:100%}
  .chk-list li{flex-wrap:wrap}
}
