/* web/assets/css/one-ov.css (Owner RPV, D-INT-110, spec 8.5 D-6; COORDINATOR item 72 (3) "port, do not redraw"):
 * the CSS of the one Results Overview, ported from the 4875 prototype proto/app/ui/r6/ov.css. Loads after ui.css.
 * RPV H163: section 2 Delivery windows (r6/ov.css lines 311 to 352, byte equal) for web/views/one/matrix.js, and the
 * --mc-mid text token of the mid green ramp (r6/ov.css lines 394 to 397, byte equal). The card is section.card.xf (XM.ui.card). */
/* ---- 2. Delivery windows (mockup table.mx, .mc, .cg, .rpill; any K rows) ---- */
.xf .mx-scale { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); white-space: nowrap; }
.xf .mx-scale i { width: 96px; height: 7px; border-radius: 4px; }
.xf .rrow { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -4px 0 12px; }
.xf .rpill { display: inline-flex; align-items: stretch; border: 1px solid var(--hair); border-radius: 16px; background: var(--card); overflow: hidden; }
.xf .rpill.on { border-color: var(--acc-l); background: var(--acc-t); }
.xf .rpill > button, .xf .rpill > .rv { border: 0; background: transparent; display: inline-flex; align-items: center; gap: 8px; padding: 3px 11px 3px 5px; font: inherit; font-size: 12.5px; font-weight: 600; color: var(--ink); min-height: 28px; cursor: pointer; }
.xf .rpill > .rv { padding: 3px 8px; border-left: 1px solid var(--hair); color: var(--muted); font-variant-numeric: tabular-nums; }
.xf .rpill > .rvv { cursor: default; padding: 3px 6px; }
.xf .rpill.on > .rv { color: var(--acc-d); border-left-color: var(--acc-l); }
.xf .rpill > button:hover:not([disabled]) { background: rgba(18,54,39,.05); }
.xf .rpill > button[disabled] { opacity: .4; cursor: default; }
.xf .rpill .sw { width: 26px; height: 16px; border-radius: 8px; background: var(--ctl); position: relative; flex: none; transition: background-color .12s; }
.xf .rpill .sw::after { content: ''; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 6px; background: #fff; transition: left .12s; }
.xf .rpill.on .sw { background: var(--acc); } .xf .rpill.on .sw::after { left: 12px; }
.xf .mxw { position: relative; padding-top: 4px; overflow-x: auto; }
.xf table.mx { width: 100%; border-collapse: separate; border-spacing: 3px; table-layout: fixed; min-width: 640px; }
.xf table.mx th { font-size: 12px; font-weight: 600; color: var(--muted); padding: 0 0 3px; text-align: center; }
.xf table.mx th.rh { width: 52px; text-align: right; padding: 0 8px 0 0; font-weight: 500; white-space: nowrap; font-variant-numeric: tabular-nums; }
.xf table.mx td { padding: 0; }
.xf .mc { position: relative; height: 52px; border-radius: 6px; display: flex; flex-direction: row; align-items: flex-end; justify-content: center; padding-bottom: 9px; font-size: 15px; font-weight: 600; line-height: 1; cursor: pointer; background: var(--track); color: var(--ink); user-select: none; -webkit-user-select: none; font-variant-numeric: tabular-nums; }
.xf .mc:hover { outline: 2px solid var(--acc); outline-offset: 1px; z-index: 1; }
.xf .mc:focus-visible { outline: none; box-shadow: var(--focus); z-index: 2; }
.xf .mc.plan { box-shadow: inset 0 0 0 2px var(--ink), inset 0 0 0 3.5px #fff; }
.xf .mc.ghost::after { content: ''; position: absolute; inset: 3px; border: 1.5px dashed var(--ink2); border-radius: 4px; pointer-events: none; }
.xf .mc.blk { background: repeating-linear-gradient(135deg, #FDF6E3 0 6px, #F1E2B8 6px 9px); color: #8A6A1F; align-items: center; padding: 0; }
.xf table.mx th.rh { font-variant-numeric: normal; }
.xf .mc.nop { background: repeating-linear-gradient(135deg, var(--added) 0 6px, var(--hair) 6px 9px); color: var(--muted-l); font-weight: 500; font-size: 13px; }
.xf .mc.empty { background: transparent; cursor: default; }
.xf .cg { position: absolute; top: 4px; left: 4px; display: inline-flex; align-items: center; gap: 4px; height: 19px; padding: 0 6px 0 4px; border-radius: 5px; background: #fff; border: 1px solid rgba(18,38,31,.2); color: #12261F; font-size: 11px; font-weight: 700; line-height: 1; cursor: grab; }
.xf .cg .grip { color: #6A7872; } .xf .cg svg:not(.grip) { width: 10px; height: 10px; }
.xf .cg .cgd { width: 7px; height: 7px; border-radius: 50%; }
.xf .gfrom { position: absolute; top: 5px; left: 5px; padding: 0 4px; height: 16px; border-radius: 4px; display: inline-flex; align-items: center; font-size: 10.5px; font-weight: 600; background: rgba(255,255,255,.85); color: #3B4A44; box-shadow: inset 0 0 0 1.2px #3B4A44; pointer-events: none; }
.xf .mc .dv { display: none; } .xf .mxw.dragmode .mc .mv { display: none; } .xf .mxw.dragmode .mc .dv { display: inline; }
.xf .mxw.dragmode .mc.no { cursor: no-drop; } .xf .mxw.dragmode .mc.src { outline: 2px dashed var(--ink); outline-offset: 1px; }
.xf .mc.dropon { outline: 3px solid var(--ink) !important; outline-offset: 1px; z-index: 3; }
.xf .mxw.pv .mc.plan { box-shadow: none; } .xf .mxw.pv .mc.plan::before { content: ''; position: absolute; inset: 0; border: 2px dashed var(--acc-d); border-radius: 6px; pointer-events: none; }
.xf .mxw.dense .mc { height: 30px; padding-bottom: 6px; font-size: 12.5px; } .xf .mxw.dense .cg { top: 2px; left: 2px; height: 15px; font-size: 10px; padding: 0 4px 0 3px; } .xf .mxw.dense .cg .grip { display: none; }
.xf .mxw.dense .mc.plan .mv { padding-left: 30px; }
.xf .rrow-sp { flex: 1 1 0; }
.xf .mc.tol { box-shadow: inset 0 0 0 1.5px var(--acc); }
.xf .mc.plan.tol { box-shadow: inset 0 0 0 2px var(--ink), inset 0 0 0 3.5px #fff; }

/* Fixer r6 s3: text on the mid green ramp of card 2 cells: ink in light mode, white in dark mode (4.5:1 both) */
:root { --mc-mid: #12261F; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --mc-mid: #fff; } }
:root[data-theme="dark"] { --mc-mid: #fff; }
/* RPV H191 (REQ RUV to RPV 271): the cell popover of the one Delivery windows card, 4875 proto/app/ui/r6/ov.css .pp rows */
.pp { width: 228px; background: var(--card); border: 1px solid var(--hair); border-radius: 10px; box-shadow: var(--sh-pop); padding: 10px 0 6px; font-size: 13px; color: var(--ink); }
.pp-h { display: flex; align-items: center; padding: 0 14px; font-size: 13.5px; }
.pp-h b { font-weight: 650; }
.pp-u { text-align: right; padding: 0 14px 4px; font-size: 11px; color: var(--muted); }
.pp-r { display: flex; align-items: center; gap: 8px; padding: 6px 14px; cursor: pointer; min-height: 22px; }
.pp-r:hover, .pp-r:focus { background: var(--added); outline: none; }
.pp-i { width: 16px; display: inline-grid; place-items: center; color: var(--ink2); flex: none; }
.pp-n { font-size: 11px; font-weight: 700; }
.pp-l { font-weight: 550; }
.pp-d { margin-left: auto; font-weight: 600; display: inline-flex; align-items: center; gap: 4px; }
.pp-d.neg { color: var(--loss); } .pp-d.pos { color: var(--acc-d); } .pp-d.zero { color: var(--ink2); } .pp-d.run { color: var(--muted); font-weight: 500; }
.pp-sep { height: 1px; background: var(--hair); margin: 6px 0; }
/* PORT73B OVK (COORDINATOR item 73; COORD row RU-01 "23 text pairs print over each other in the windows grid"): the 4875
   grid sizing rules hold for any month count and any tag of the one Delivery windows card (web/views/one/matrix.js):
   (1) a month column is never narrower than the room of a 4875 plan tag (proto/app/ui/r6/ov.css .cg: grip, cargo id C12,
       source dot: 52px plus the 4px inset on each side). The 4875 Lifting calendar keeps the same rule as a table min-width
       (ov.css 366, table.mx.cal 980px for 15 months). A fixed layout table is never narrower than the sum of its columns,
       so more months give a wider grid in the 4875 scroll box .mxw (overflow-x auto, ov.css 326).
   (2) a cell clips its own content, and a tag never runs past its cell: no tag and no number runs into the next cell.
   (3) dense rows (more than 5, 4875 renderMatrix): the number stands right of the tag on one line (4875 .mxw.dense .mc.plan
       .mv padding-left 30px, the room of a tag C1). Here the tag and the number are two items of one line, so they never
       cover each other; when both do not fit in the cell, the number goes to a second line of the cell.
   (4) the row head has the room of a position code with its window number ("SPA-1 · 2") and of "21 to end". */
.xf table.mx thead th:not(.rh) { width: 64px; }
.xf table.mx th.rh { width: 84px; }
.xf .mc { overflow: hidden; }
.xf .cg { max-width: calc(100% - 8px); overflow: hidden; white-space: nowrap; }
.xf .mxw.dense .mc.plan { height: auto; min-height: 30px; flex-wrap: wrap; justify-content: space-between; align-items: center; align-content: center; gap: 2px 4px; padding: 2px 5px; }
.xf .mxw.dense .mc.plan .cg { position: static; flex: 0 1 auto; min-width: 0; }
.xf .mxw.dense .mc.plan .mv { padding-left: 0; flex: none; }
/* PORT73B OVK: the data form page of web/views/one/overview.js (4875 proto/app/ui/r6/kit.css .r6-view > div, .r5slot) */
.one-ov > [data-slot] { min-width: 0; }
.one-ov > .r5slot { margin: 0; }
/* PORT73B OVK data form v2: the change line of a value tile (4875 proto/app/ui/r6/ov.css lines 292 and 293, byte equal), for
   the producer tiles of the one Value card (web/views/one/overview.js T.d) */
.xf .kpi .vk-d { font-size: 12px; font-weight: 600; margin-top: 2px; }
.xf .kpi .vk-d.pos { color: var(--acc-d); } .xf .kpi .vk-d.neg { color: var(--loss); } .xf .kpi .vk-d.zero { color: var(--muted); }
