.opsDialog{width:min(1280px,97vw);height:min(900px,95vh);max-width:97vw;max-height:95vh;padding:0;border:1px solid #303a45;border-radius:12px;background:#0f1418;color:#e5eaf0;display:none;flex-direction:column;overflow:hidden}
.opsDialog[open]{display:flex}.opsDialog::backdrop{background:rgba(0,0,0,.55)}
.opsHead{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #263039}.opsHead .opsClose{margin-left:auto}.opsSub{color:#9aa7ac;font-size:12px}
.opsBody{flex:1;overflow:auto;padding:12px 14px;-webkit-overflow-scrolling:touch}
.opsGrid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:12px}@media (max-width:900px){.opsGrid{grid-template-columns:1fr}}
.opsCard{border:1px solid #263039;border-radius:10px;padding:10px 12px;margin-bottom:12px;background:#131a1f}
.opsRow{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0}.opsRow input:not([type=checkbox]){flex:1;min-width:200px}
.opsDialog input,.opsDialog select{background:#151b22;color:#e5eaf0;border:1px solid #303a45;border-radius:6px;padding:5px 8px;font:inherit;font-size:13px}
.opsDialog button{min-height:32px}.opsSwitch{font-weight:700;white-space:nowrap}.opsSwitch input{transform:scale(1.3);margin-right:6px}
.opsMuted{color:#9aa7ac;font-size:12px}.opsBad{color:#ff6b6b}.opsWarn{margin:6px 0;padding:6px 8px;border-radius:6px;background:#3a2c0b;color:#ffd27a;font-size:12px}.opsOn{color:#37d744}
.opsKpis{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.opsKpis div{flex:1;min-width:90px;padding:6px;border-radius:8px;background:#0f1418;text-align:center}.opsKpis b{display:block;font-size:18px}.opsKpis span{font-size:11px;color:#9aa7ac}.opsSc{color:#ff5a5a}.opsSh{color:#ff8a3d}
.opsList{max-height:420px;overflow:auto}.opsF{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid #1f282f;font-size:13px}.opsF img,.opsF i{width:64px;height:48px;object-fit:cover;border-radius:4px;flex:none;background:#222}
.opsSev{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:700;color:#fff}
.opsSev.opsSc{background:#b20812}.opsSev.opsSh{background:#dd1e1e}.opsSev.opsSm{background:#c77c00}.opsSev.opsSl{background:#149346}.opsSev.opsSn{background:#5f6b70}
.opsTable{width:100%;border-collapse:collapse;font-size:12px}.opsTable th,.opsTable td{padding:4px 6px;border-bottom:1px solid #1f282f;text-align:left;vertical-align:middle}.opsTable th{color:#9aa7ac;font-weight:600;position:sticky;top:0;background:#131a1f}
.opsMap input{width:100%;min-width:140px}.opsMail{font-size:12px;padding:3px 0;border-top:1px solid #1f282f}
.opsTabs{display:flex;gap:6px;margin:6px 0}.opsTabs button.on{background:#17c857;color:#04150a}
.opsDialog input[type=checkbox]{width:auto!important;min-width:0!important;flex:none!important;margin:0 6px 0 0}.opsSwitch{display:inline-flex!important;align-items:center;gap:4px;width:auto!important;text-align:left}.opsDialog label{display:inline-flex;align-items:center;gap:6px;width:auto}
/* yard review */
.opsYardBlock{margin:8px 0;border:1px solid rgba(127,127,127,.25);border-radius:8px;padding:4px 8px}
.opsYardBlock summary{cursor:pointer;padding:4px 0}
.opsFind{display:flex;gap:8px;align-items:flex-start;margin:4px 0}
.opsFind img{width:84px;height:64px;object-fit:cover;border-radius:4px;background:rgba(127,127,127,.2);flex:none}
.opsSev.ok{background:#2e7d32;color:#fff}
#opsYardMid{max-width:100%}
