#pv2-content .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.pv2-filter-area { padding: 0; }
.pv2-dates { column-gap: 24px; row-gap: 12px; }
.pv2-dates > label { display: inline-flex; align-items: center; gap: 12px; }
.pv2-view-controls { display: flex; align-items: center; gap: 12px; }
.pv2-view-controls .pv2-shortage { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: var(--text-label); white-space: nowrap; }
.pv2-view-controls input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--primary); }
.pv2-grid-caption { display: flex; justify-content: space-between; gap: 20px; padding: 0 var(--card-padding) 12px; color: var(--muted); font-size: var(--text-meta); }
.pv2-legend { display: flex; flex-wrap: wrap; gap: 8px 15px; color: #314a69; }
.pv2-process-key { display: inline-flex; align-items: center; gap: 5px; }
.pv2-process-key i { width: 20px; height: 12px; border: 1px solid #172e4c30; border-radius: 2px; }
.pv2-scroll { width: 100%; overflow-x: auto; overflow-y: clip; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.pv2-grid { position: relative; min-height: 54px; background: #fff; }
.pv2-grid:focus-visible { outline-offset: -3px; }
.pv2-header { position: absolute; top: 0; left: 0; height: 62px; width: 100%; background: var(--surface-muted); z-index: 20; overflow: clip; border-bottom: 1px solid #c8d5e8; }
.pv2-period-group { position: absolute; top: 0; height: 27px; display: grid; place-items: center; border-right: 1px solid #bbcce4; border-bottom: 1px solid #c8d5e8; font-size: 12px; color: #233c5d; }
.pv2-date-header { position: absolute; top: 27px; width: var(--pv2-column,88px); height: 35px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-right: 1px solid var(--line); color: #233c5d; font-size: 11px; }
.pv2-date-header strong { font-weight: 600; }
.pv2-date-header small { display: block; margin-top: 1px; font-size: 10px; font-weight: 400; }
.pv2-row { position: absolute; left: 0; width: 100%; height: 74px; }
/* Draw above both the sticky label and date cells so the divider spans the row. */
.pv2-row::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: #c8d5e8; z-index: 5; pointer-events: none; }
.pv2-identity { position: sticky; left: 0; z-index: 4; display: flex; flex-direction: column; justify-content: center; width: 220px; height: 74px; padding: 6px 16px; border-right: 1px solid #c8d5e8; background: #fff; overflow: hidden; }
.pv2-identity small { font-size: 11px; color: #4b6281; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pv2-identity strong { font-size: 13px; font-weight: 650; line-height: 1.5; }
.pv2-identity > span { font-size: 11px; color: #526883; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pv2-corner { height: 62px; font-size: 12px; background: #edf2fa; }
.pv2-cell { position: absolute; top: 0; width: var(--pv2-column,88px); height: 74px; margin: 0; padding: 8px 5px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 5px; border: 0; border-right: 1px solid #d8e2ef; border-radius: 0; color: #172e4c; background: #fff; font-variant-numeric: tabular-nums; }
.pv2-fit .pv2-cell { padding-right: 1px; padding-left: 1px; }
.pv2-fit .pv2-date-header { font-size: 10px; }
.pv2-fit .pv2-day-plan { font-size: 11px; }
.pv2-fit .pv2-period-group { font-size: 10px; white-space: nowrap; overflow: hidden; }
.pv2-period-group small { font-size: 8px; line-height: 10px; }
.pv2-cell strong, .pv2-cell > span { font-size: 12px; line-height: 1.4; }
.pv2-cell small { font-size: 10px; line-height: 1.3; }
.pv2-cell.pv2-ready { background-color: #ffffff; }
.pv2-cell.pv2-in_process { background-color: #ffffff; }
.pv2-cell.pv2-shortage { background-color: #ffffff; }
.pv2-cell.pv2-risk { background-color: #ffffff; }
.pv2-cell.pv2-no_plan { background-color: #fafbfd; color: #415775; }
.pv2-cell.pv2-loading { background-color: #f3f6fb; }
.pv2-day-plan { position: absolute; top: 0; left: 0; display: flex; align-items: center; justify-content: center; width: calc(100% + 1px); height: 50%; border-bottom: 1px solid #d8e2ef; text-align: center; }
.pv2-inventory-bar { display: flex; width: 100%; height: 26px; flex: 0 0 26px; overflow: clip; border-radius: 0; }
.pv2-cell > .pv2-inventory-bar { position: absolute; top: calc(75% - 13px); left: 0; width: calc(100% + 1px); }
.pv2-bar-segment { display: flex; align-items: center; justify-content: center; flex-grow: 0; flex-shrink: 0; min-width: 0; height: 26px; border-right: 1px solid #ffffffa0; overflow: clip; font-size: 12px; font-weight: 600; white-space: nowrap; }
.pv2-band-number { font-size: 12px; }
.pv2-bar-segment:last-child { border-right: 0; }
.pv2-bar-empty { justify-content: center; align-items: center; color: #526883; font-size: 12px; }
.pv2-bar-shortage { background-image: repeating-linear-gradient(135deg,transparent,transparent 4px,#a32c2418 4px,#a32c2418 7px); }
.pv2-remaining-band { position: absolute; top: calc(75% - 13px); height: 26px; z-index: 2; padding: 0; border: 0; border-radius: 0; background: transparent; }
.pv2-remaining-band .pv2-bar-segment { justify-content: flex-start; }
.pv2-remaining-band .pv2-band-number { position: sticky; left: 226px; padding: 0 5px; }
.pv2-remaining-band .pv2-compact-segment { justify-content: center; }
.pv2-remaining-band .pv2-compact-segment .pv2-band-number { position: static; padding: 0 1px; }
.pv2-saturday { background-image: linear-gradient(#245fe51c,#245fe51c); }
.pv2-sunday { background-image: linear-gradient(#d6393920,#d6393920); }
.pv2-active-cell { outline: 2px solid #315fae; outline-offset: -2px; }
#pv2-validation[open] { display: flex; flex-direction: column; }
.pv2-negative td { background: #fff2ef; color: #822c25; }
#pv2-validation-status { font-size: 13px; }
