/* Site operations — Site reports, Concrete & materials, Machinery & diesel (ui-ops.js).
   Builds on ui-site.css (.site, .site-kpis, .site-check, .site-chip, .site-drop) and ui-budget.css (.fin-subnav, .fin-kpis, .fin-dash-g). */
.ops{--ops-1:var(--m-blue,#155DFC);--ops-2:#0E8F96;--ops-3:#A1A1AA;--ops-4:#5B8DEF;--ops-warn:var(--m-amber,#E17100)}
.ops-top{margin:2px 0 -2px}
.ops-mon{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ops-mon select{min-width:120px}
.ops-mon .tag svg{vertical-align:-1px}
.ops-subnav{margin-bottom:2px}

/* site cards */
.ops-sites{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ops-site{border:1px solid var(--m-border,#E4E4E7);border-radius:var(--m-radius,10px);background:var(--m-panel,#fff);padding:14px 16px;display:flex;flex-direction:column;gap:10px;border-top:3px solid var(--ops-1)}
.ops-site:nth-child(2){border-top-color:var(--ops-2)}
.ops-site.other{border-top-color:var(--ops-3)}
.ops-site-h{display:flex;flex-direction:column;gap:1px}
.ops-site-h b{font-size:14px}
.ops-site-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.ops-site-g>div{display:flex;flex-direction:column;gap:1px;min-width:0}
.ops-site-g .l{font-size:11.5px;color:var(--m-muted,#71717A)}
.ops-site-g b{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}
@media(max-width:1000px){.ops-sites{grid-template-columns:minmax(0,1fr)}}

/* charts */
.ops-chart svg{width:100%;height:auto;display:block}
.ops-chart text{font-size:11px;fill:var(--m-muted,#71717A);font-variant-numeric:tabular-nums}
.ops-chart text.m{font-size:10px}
.ops-chart line.grid{stroke:var(--m-border-soft,#F0F0F0)}
.ops-chart .ops-s1,.sw.ops-s1,.ops-chart .ops-c1,.sw.ops-c1{fill:var(--ops-1);background:var(--ops-1)}
.ops-chart .ops-s2,.sw.ops-s2,.ops-chart .ops-c2,.sw.ops-c2{fill:var(--ops-2);background:var(--ops-2)}
.ops-chart .ops-s3,.sw.ops-s3,.ops-chart .ops-c4,.sw.ops-c4{fill:var(--ops-3);background:var(--ops-3)}
.ops-chart .ops-c3,.sw.ops-c3{fill:var(--ops-4);background:var(--ops-4)}
.ops-chart .ops-prod,.sw.ops-prod{fill:var(--ops-3);background:var(--ops-3)}
.ops-chart .ops-book,.sw.ops-book{fill:var(--ops-1);background:var(--ops-1)}
.ops-chart .ops-line{fill:none;stroke:var(--m-text,#09090B);stroke-width:1.5}
.sw.ops-ln{height:2px!important;vertical-align:3px;background:var(--m-text,#09090B)}
.ops-chart rect:hover{opacity:.8}

/* daily entry — one column on phones, rows of fields on wider screens */
.ops-entry .ops-head{display:flex;gap:12px;flex-wrap:wrap;margin:4px 0 8px}
.ops-entry label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--m-muted,#52525B);font-weight:500;min-width:0}
.ops-entry input,.ops-entry select,.ops-mon select{border:1px solid var(--m-border,#E4E4E7);border-radius:8px;padding:6px 10px;background:var(--m-panel,#fff);color:var(--m-text,#09090B);box-sizing:border-box}
.ops-entry input,.ops-entry select{min-height:38px;font-size:14px;width:100%}
.ops-entry input:focus-visible,.ops-entry select:focus-visible,.ops-mon select:focus-visible{outline:2px solid var(--m-blue,#155DFC);outline-offset:1px;border-color:var(--m-blue,#155DFC)}
.ops-entry input:disabled,.ops-entry select:disabled{background:var(--m-hover,#F4F4F5);color:var(--m-muted,#71717A)}
.ops-mon select{padding:5px 8px;font-size:13px}
.ops-entry .ops-head label{min-width:170px}
.ops-fs{border:1px solid var(--m-border,#E4E4E7);border-radius:var(--m-radius-sm,8px);padding:10px 12px 12px;margin:10px 0;display:flex;flex-direction:column;gap:8px}
.ops-fs legend{font-weight:600;font-size:13px;padding:0 4px;color:var(--m-text,#09090B)}
.ops-fs legend .help{font-weight:400}
.ops-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.ops-row .grow{flex:2 1 220px}
.ops-row .sm{flex:1 1 110px}
.ops-row .xs{flex:0 1 90px}
.ops-row .ops-del{flex:none;min-height:36px}
.ops-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:4px}
.ops-pair.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.ops-fs .btn.small{align-self:flex-start}
.ops-save{position:sticky;bottom:0;background:var(--m-panel,#fff);padding:10px 0 4px;z-index:2;border-top:1px solid var(--m-border-soft,#F0F0F0)}
@media(max-width:900px){.ops-pair.five{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.ops-row{border-bottom:1px dashed var(--m-border,#E4E4E7);padding-bottom:8px}.ops-row .grow,.ops-row .sm{flex:1 1 100%}.ops-row .xs{flex:1 1 40%}
  .ops-pair,.ops-pair.five{grid-template-columns:minmax(0,1fr)}.ops-entry .ops-head label{min-width:0;flex:1 1 100%}.ops-save .btn{flex:1 1 100%}}

/* day-by-day grid */
.ops-grid{font-size:12px}
.ops-grid th.d{min-width:34px;text-align:right}
.ops-grid td{white-space:nowrap}
.ops-grid td.z{color:transparent}
.ops-grid td.fut{background:var(--m-hover,#FAFAFA)}
.ops-grid td.b{font-weight:600}
.ops-grid .stick{position:sticky;left:0;background:var(--m-panel,#fff);z-index:1;min-width:190px;max-width:260px;white-space:normal}
.ops-grid tr.grp td{font-weight:600;background:var(--m-hover,#F4F4F5)}
.ops-grid tr.grp td.stick{background:var(--m-hover,#F4F4F5)}
.ops-grid tr.tot td.stick{background:inherit}
.ops-grid tr.gap td{color:var(--m-red,#E7000B)}
.site-chips+.scroll{margin-top:10px}

/* fleet */
.ops-fleet tr.grp td{font-weight:600;background:var(--m-hover,#F4F4F5)}
.ops-fleet tr.flag-noread td:first-child,.ops-fleet tr.flag-off td:first-child{box-shadow:inset 3px 0 0 var(--m-red,#E7000B)}
.ops-fleet tr.flag-idle td:first-child{box-shadow:inset 3px 0 0 var(--m-border,#D4D4D8)}
.ops-book td:first-child{width:70%}
.ops-book tr.gap td{color:var(--m-red,#E7000B)}
.ops-set{grid-template-columns:repeat(2,minmax(0,1fr))}
.ops-set input{border:1px solid var(--m-border,#E4E4E7);border-radius:8px;padding:6px 9px}
.ops-set .help{font-weight:400}
@media(max-width:640px){.ops .hm{display:none}.ops-set{grid-template-columns:minmax(0,1fr)}}

/* dashboard card */
.ops-dash h3{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
@media(max-width:760px){.ops-dash .fin-dash-g{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media print{.ops-subnav,.ops-entry,.ops-mon select{display:none!important}.ops-grid .stick{position:static}}
@media(prefers-reduced-motion:reduce){.ops-chart rect{transition:none}}
