/* OA-2232 shell, continued from chrome.css, which is at its line limit: the frame count's fixes. */
/* Design's frame count, 3 Nov 02:28. */
/* K2, K3, K22: nobody with nothing to do gets an empty dock. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .action-dock:empty,.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov .action-dock:empty {display:none}
/* K28: Open is 48 px at 1000x563 too. */
@media(max-height:599px) {
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov .ov-list {min-height:84px}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov .ov-list .ov-list-action {min-height:48px;bottom:6px}
}
/* K6: status and people follow the title, as on K1; the count stays at the right. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-head .list-meta {order:4}
/* K13, K14: one row for the message and its Retry. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-sheet .sheet-pane > .ov-alert {order:-1;flex:none}
.ov-sheet .ov-alert {display:flex;align-items:center;gap:12px;margin:0;padding:4px 8px 4px 12px;border:1px solid var(--danger);border-radius:var(--radius-md);background:var(--danger-bg)}
.ov-sheet .ov-alert:not(:has(> :not([hidden]))) {display:none}
.oneops-shell .ov-sheet .ov-alert [data-ov-error] {flex:1 1 0;min-width:0;margin:0;padding:0;border:0;background:none;color:var(--ink);font:700 16px/1.3 var(--font-sans)}
.oneops-shell .ov-sheet .ov-alert [data-ov-retry] {flex:none;min-height:48px;width:auto;margin:0;padding:0 18px;border:0;background:var(--teal);color:var(--ivory);font:700 16px var(--font-sans)}
/* M6, M7 and the Corporate phone: a picker row is three columns, so nothing can squeeze the words. */
@media(max-width:799px) {
 :is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) [data-lists-view] .checklist-picker,.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-lists-view] .checklist-picker {display:block!important;overflow:visible}
 :is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) [data-lists-view] .checklist-pick,.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-lists-view] .checklist-pick {display:grid!important;grid-template-columns:24px minmax(0,1fr) auto;column-gap:10px;row-gap:2px;align-items:center!important;height:auto!important;min-height:64px;padding:6px 10px}
 :is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) [data-lists-view] .pick-ring,.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-lists-view] .pick-ring {grid-column:1;grid-row:1 / span 2}
 :is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) [data-lists-view] .checklist-pick-title,.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-lists-view] .checklist-pick-title {grid-column:2;grid-row:1;flex:none;text-align:left}
 :is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) [data-lists-view] .checklist-pick-note,.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-lists-view] .checklist-pick-note {grid-column:2;grid-row:2;flex:none;order:0;display:flex;flex-wrap:wrap;gap:0 10px;padding:0;text-align:left}
 :is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) [data-lists-view] .pick-open,.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-lists-view] .pick-open {grid-column:3;grid-row:1 / span 2;margin:0}
}
/* M1: the Corporate phone's band: centred wordmark, no outlet line, two pills, and a rail on the floor. */
@media(max-width:767px) {
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .inpage-brand {flex:1;min-width:0}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .inpage-brand > div {flex:1;min-width:0;text-align:center}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .inpage-brand-title {font:600 15px/1.2 var(--font-serif);letter-spacing:.08em;white-space:nowrap}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .inpage-brand-sub {display:none}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .phone-section-bar {gap:8px;height:auto;min-height:48px;padding:4px 8px;background:var(--ivory)}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .fv-phone-pill {flex:1;width:auto;max-width:none;height:auto;min-height:44px;margin:0;padding:0;border:0;background:none;gap:6px;justify-content:flex-start}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .phone-pill-needs,.oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .phone-pill-act {display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;min-height:44px;padding:0 10px 0 4px;border:1px solid var(--danger);border-radius:var(--radius-pill);background:var(--danger-bg);color:var(--danger);font:700 15px var(--font-sans);white-space:nowrap}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .phone-pill-act {padding:0 6px 0 10px;min-width:0}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .corporate-count {width:32px;min-width:32px;height:32px;min-height:32px;padding:0;background:var(--card-white);color:var(--danger);font:700 15px var(--font-sans)}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .fv-phone-pill .crit {flex:none;height:auto;min-height:0;padding:0;border:0;background:none;color:inherit;font:700 15px var(--font-sans);white-space:nowrap}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .phone-pill-meta {margin:0;width:16px;height:16px;color:inherit}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .desktop-mobile-rail {left:0;right:0;bottom:0;grid-template-columns:repeat(4,minmax(0,1fr));border:0;border-top:1px solid var(--gold);border-radius:0;box-shadow:none}
}

/* K6: the title takes its own width, so the status follows it. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-head .ov-title {flex:none}
/* D8: on Corporate a long list scrolls in its own pane, so every row and the dock can be reached. */
@media(min-width:1024px) {
 .oneops-shell[data-shell-frame~=manager-desktop] .checklists-one-list:not([data-lists-view]) .checklist-card {display:flex;flex-direction:column;min-height:0;height:100%}
 .oneops-shell[data-shell-frame~=manager-desktop] .pane .checklists-one-list:not([data-lists-view]) .checklist-card > .checklist-tasks {flex:1 1 0;min-height:0;overflow-x:hidden!important;overflow-y:auto!important}
}
/* D3, M1: a section with no data has a quiet pill. */
.oneops-shell[data-shell-frame~=manager-desktop] .lounge-pill[data-tone=unknown] {background:var(--stale-bg);color:var(--stale);border-color:transparent}
/* M1: the phone's Lounge starts at the sections. */
@media(max-width:767px) {
 .oneops-shell[data-shell-frame~=manager-desktop] .corporate-lounge > h1 {display:none}
}

/* K1, K21: the words add no margin, so a three-line row is tight. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .task-row .task-words,:is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .task-row .task-words {margin:0}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .task-row .task-copy > :first-child,:is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .task-row .task-copy > :first-child {margin-top:0}
/* D6: only the next Done is filled, and its word stays beside its tick. */
:is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .task-controls form {flex:none;display:block}
:is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .task-controls button.task-button {display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:4px;white-space:nowrap}
:is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .task-controls button.task-done {width:84px}
:is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .task-controls button.task-done:not(.is-next) {background:none!important;color:var(--teal)!important;border:1px solid var(--teal)!important}
:is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .task-controls button.task-done.is-next {background:var(--teal)!important;color:var(--ivory)!important}
/* D6, K6: words at the left of the dock, what you can do at the right. K11: Return, then Verify filled. */
@media(min-width:800px) {
 :is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .checklist-actions.action-dock:not(:empty) {display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:8px}
 :is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .checklist-actions.action-dock > .dock-copy {order:-1;flex:1 1 0;min-width:0}
 :is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .checklist-actions.action-dock form {margin:0;flex:none}
 :is(.oneops-shell[data-shell-frame~=manager-desktop],.oneops-shell[data-shell-frame=kiosk] #kioskFrame) .checklist-actions.action-dock .btn-primary {background:var(--teal)!important;color:var(--ivory)!important;border-color:var(--teal)!important}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .checklist-actions.action-dock .btn-primary {background:var(--teal)!important;color:var(--ivory)!important;border-color:var(--teal)!important}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .checklist-actions.action-dock {justify-content:flex-end}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .checklist-actions.action-dock > .dock-copy {order:-1;flex:1 1 0;min-width:0}
}
/* D9: reasons are outlined rows in two columns; Other reason is the same shape. */
.oneops-shell[data-shell-frame~=manager-desktop] .ov-sheet .ov-choices {display:block}
.oneops-shell[data-shell-frame~=manager-desktop] .ov-sheet .reason-presets {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.oneops-shell[data-shell-frame~=manager-desktop] .ov-sheet .ov-choices .ov-choice {display:flex;align-items:center;justify-content:flex-start;width:auto;min-height:48px;height:auto;margin:0;padding:6px 12px;border:1px solid var(--os-brass);border-radius:var(--radius-md);background:var(--card-white);color:var(--ink);font:700 15px/1.3 var(--font-sans);text-align:left;white-space:normal}
.oneops-shell[data-shell-frame~=manager-desktop] .ov-sheet .ov-other-choice {margin-top:6px}
.oneops-shell[data-shell-frame~=manager-desktop] .ov-sheet .ov-other-choice > summary {display:flex;align-items:center;box-sizing:border-box;width:100%;min-height:48px;padding:6px 12px;border:1px solid var(--os-brass);border-radius:var(--radius-md);background:var(--card-white);color:var(--ink);font:700 15px var(--font-sans)}
@media(max-width:767px) {
 .oneops-shell[data-shell-frame~=manager-desktop] .ov-sheet .reason-presets {grid-template-columns:minmax(0,1fr)}
}

/* Roster: a refused photo says so in view, above the camera; the keys give up the height. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #pin-form:has([data-submit-notice]) {display:flex;flex-direction:column;min-height:0}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #pin-form [data-submit-notice] {order:-1;flex:none;margin:0 0 4px;padding:6px 10px;border:1px solid var(--danger);border-radius:var(--radius-md);background:var(--danger-bg);color:var(--ink);font:700 15px/1.3 var(--font-sans)}
@media(max-height:599px) {
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has([data-submit-notice]) .keypad-btn {height:44px!important;min-height:44px!important}
}

/* K11: Verify is the filled one, on both list pages. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .action-dock a.task-button.is-next {border-color:var(--teal);background:var(--teal);color:var(--ivory)}

/* D1 to D4, D11, M1: Corporate's section pills are quiet, and only a real state has colour. */
.oneops-shell[data-shell-frame~=manager-desktop][data-shell-frame] .corporate-status.lounge-pill[data-tone=unknown] {background:var(--stale-bg)!important;color:var(--stale)!important}
.oneops-shell[data-shell-frame~=manager-desktop][data-shell-frame] .corporate-status.lounge-pill[data-tone=check] {background:var(--amber-bg)!important;color:var(--amber-ink)!important}
.oneops-shell[data-shell-frame~=manager-desktop][data-shell-frame] .corporate-status.lounge-pill[data-tone=act] {background:var(--danger-bg)!important;color:var(--danger)!important}
.oneops-shell[data-shell-frame~=manager-desktop][data-shell-frame] .corporate-status.lounge-pill[data-tone=good] {background:var(--ok-bg)!important;color:var(--ok)!important}
/* D6: words at the left, Hand over, then Send for check, as on the tablet; Done and Cannot the same height. */
@media(min-width:800px) {
 .oneops-shell[data-shell-frame~=manager-desktop] .checklist-actions.action-dock > :is(.checklist-handover-open,.checklist-form-handover) {order:1}
 .oneops-shell[data-shell-frame~=manager-desktop] .checklist-actions.action-dock > :is(.task-button,.checklist-form-submit) {order:2}
 .oneops-shell[data-shell-frame~=manager-desktop] .task-controls .task-button {height:48px;min-height:48px}
}
/* D9: the Sheet has gutters, and the question is the same as K5's. */
.oneops-shell[data-shell-frame~=manager-desktop] .ov-sheet {box-sizing:border-box;padding:0 12px}
.oneops-shell[data-shell-frame~=manager-desktop] .ov-sheet .ov-step {margin:4px 0;font:700 16px/1.3 var(--font-sans);color:var(--ink)}
/* K14: the row is amber and its button is Retry camera. */
.ov-sheet .ov-alert:has(#pin-retry-camera-btn) {border-color:var(--amber-ink);background:var(--amber-bg)}
.oneops-shell .ov-sheet .ov-alert #pin-retry-camera-btn {flex:none;display:inline-flex;align-items:center;min-height:48px;width:auto;margin:0;padding:0 18px;border:0;border-radius:var(--radius-md);background:var(--teal);color:var(--ivory);font:700 16px var(--font-sans)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-sheet .ov-alert #pin-retry-camera-btn:not([hidden]) {display:inline-flex;min-height:48px}
@media(max-width:799px) {
 /* M2: the dock is its button; Still to mark is already on each row. */
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .checklist-actions.action-dock > .dock-copy {display:none}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .checklist-actions.action-dock {grid-template-columns:minmax(0,1fr) auto}
 /* M2 to M7: no gold frame or arc round the page; the wordmark is centred; the rail shows where you are. */
 .oneops-shell[data-shell-frame=kiosk],.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame {border:0;border-radius:0}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-app-header .brand-arched-logo {display:none}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-app-header .shell-wordmark {display:flex;flex:1;min-width:0;align-items:center;justify-content:center;width:auto;height:auto;position:static;font:600 15px/1.2 var(--font-serif)}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-app-header .kiosk-header-brand {flex:none}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-app-header .hw-mark {display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-app-header strong.hw-mark :is(.hw-name,.hw-ops) {margin:0!important;font-size:15px!important;letter-spacing:.06em!important;line-height:1.2}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-app-header strong.hw-mark .hw-ops {padding-left:8px!important;border-left:1px solid var(--tok-6b4e1f)}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-app-header strong.hw-mark .hw-name::after {display:none}
 .oneops-shell[data-shell-frame=kiosk] .ops-phone-rail,.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ops-phone-rail {border:0;border-top:1px solid var(--gold)}
 .oneops-shell[data-shell-frame=kiosk] .ops-phone-rail :is(a,.ground-nav-item),.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ops-phone-rail :is(a,.ground-nav-item) {border:0!important;background:none!important;box-shadow:none}
 .oneops-shell[data-shell-frame=kiosk] .ops-phone-rail [aria-current=page],.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ops-phone-rail [aria-current=page] {background:var(--card-white)!important;border-radius:var(--radius-pill)}
 /* M4: a light card, and no rule above the sections. */
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ops-manager-card {border:1px solid var(--border-subtle);border-radius:var(--radius-md)}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-lounge .kiosk-section-grid {border-top:0;padding-top:0}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-lounge > .salon-card {margin-top:0}
 /* M3: reasons as on the tablet. */
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-sheet .ov-choices .ov-choice {display:flex;align-items:center;justify-content:flex-start;width:auto;min-height:48px;height:auto;margin:0;padding:6px 12px;border:1px solid var(--os-brass);border-radius:var(--radius-md);background:var(--card-white);color:var(--ink);font:700 15px/1.3 var(--font-sans);text-align:left;white-space:normal}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-sheet .reason-presets {display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-sheet .ov-other-choice {margin-top:6px}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-sheet .ov-other-choice > summary {display:flex;align-items:center;box-sizing:border-box;width:100%;min-height:48px;padding:6px 12px;border:1px solid var(--os-brass);border-radius:var(--radius-md);background:var(--card-white);color:var(--ink);font:700 15px var(--font-sans)}
}

/* K17: Team today. The band's title is the page's; filters beside it; a row a person, its actions on the row. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] {padding:0!important;border:0;background:none;box-shadow:none;overflow:visible!important}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] > .attendance-heading {display:none!important}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-tabs {display:flex;gap:8px;margin:0 0 6px;padding:0}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-tabs a {display:inline-flex;align-items:center;min-height:48px;padding:0 14px;font:700 15px var(--font-sans)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row {display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 6px;padding:6px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--card-white)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row-who {flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:2px}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row-who strong {font:700 16px/1.3 var(--font-sans);color:var(--ink)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row-who small {font:400 15px/1.3 var(--font-sans);color:var(--ink-muted)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row-photo {display:none}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row-status {flex:none;padding:2px 10px;border-radius:var(--radius-pill);background:var(--stale-bg);color:var(--stale);font:700 14px/1.4 var(--font-sans)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row :is(button,summary) {display:inline-flex;align-items:center;min-height:48px;width:auto;margin:0;padding:0 14px;font:700 15px var(--font-sans);white-space:nowrap}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row form[data-k6-approve-form] {flex:none;margin:0}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row details {flex:none;margin:0}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row details[open] {flex:1 0 100%}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row details > form label {display:block;margin:0 0 6px}
@media(max-width:799px) {
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row-who {flex:1 0 100%}
 /* M2 to M7: the wordmark is centred on the band itself, whatever sits at each side. */
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-app-header {position:relative}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-app-header .shell-wordmark {position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none}
}
/* D5: Switches are compact rows; six in view at the frame's size. */
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page {display:flex;flex-direction:column;gap:6px}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-switch] {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;margin:0;padding:4px 10px;min-height:0}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-sw=head] {grid-column:1 / -1;display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-sw=head] h2 {margin:0;font:700 16px/1.3 var(--font-serif)}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-sw=value] {margin:0;font:700 14px var(--font-sans)}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-sw=last] {grid-column:1 / -1;margin:0;font:400 13px/1.3 var(--font-sans);color:var(--ink-muted)}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-switch] > label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-switch] > input {grid-column:1;min-height:48px;height:48px;margin:0}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-sw=actions] {grid-column:2;display:flex;gap:6px;margin:0}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-sw=actions] button {min-height:48px;height:48px;width:96px;margin:0;padding:0 8px}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-sw=result]:empty {display:none}
.oneops-shell[data-shell-frame~=manager-desktop] #switches-page [data-sw=result] {grid-column:1 / -1;margin:0}

/* K10: the Lounge's cue sits on the pane, whose head is hidden. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .template-summary {position:relative}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .template-summary > .pane-more {position:absolute;right:8px;bottom:4px;z-index:2;padding:2px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--ivory);font:400 15px var(--font-sans);color:var(--ink-muted)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .template-summary > .pane-more[hidden] {display:none}

/* K17: Team today keeps the top cards; filters and row actions are 48 px. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .shell-interior > .kiosk-top-tiles {display:grid!important;flex:none;margin:0 0 4px}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .page-head .attendance-tabs {display:flex;flex:none;gap:6px;margin:0 0 0 10px;padding:0}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .page-head .attendance-tabs a {display:inline-flex;align-items:center;height:48px;min-height:48px!important;padding:0 14px;font:700 15px var(--font-sans)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row-status {border:0!important;box-shadow:none}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row :is(button,summary) {height:48px;min-height:48px!important}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .page-head .attendance-tabs a {text-decoration:none}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .page-head .attendance-tabs a[aria-current=page] {border-color:var(--teal);background:var(--teal);color:var(--ivory)}

.oneops-shell[data-shell-frame~=manager-desktop] .shell-right-pillar .ny-rail-summary {margin:0;padding:2px 8px;font:700 14px/1.3 var(--font-sans);color:var(--ink);text-align:center}
.oneops-shell[data-shell-frame~=manager-desktop].is-slim .shell-right-pillar .ny-rail-summary {display:none}

/* Cause 1, D2 D3 D4 D11: Corporate's Lounge stops on whole cards, its cue in the corner as on the kiosk. */
.oneops-shell[data-shell-frame~=manager-desktop] .template-summary {position:relative}
.oneops-shell[data-shell-frame~=manager-desktop] .template-summary > .pane {scroll-snap-type:y proximity}
.oneops-shell[data-shell-frame~=manager-desktop] .template-summary > .pane :is(.lounge-section,.kiosk-needs-row) {scroll-snap-align:start}
.oneops-shell[data-shell-frame~=manager-desktop] .template-summary > .pane-more {position:absolute;right:8px;bottom:4px;z-index:2;margin:0;padding:2px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--ivory);font:400 15px/1.3 var(--font-sans);color:var(--ink-muted)}
.oneops-shell[data-shell-frame~=manager-desktop] .template-summary > .pane-more[hidden] {display:none}

/* Cause 2, D3 D11: a rail card is coloured words, a title and a plain small line. */
.oneops-shell[data-shell-frame~=manager-desktop] .shell-right-pillar .ny-card.oo-needs-card {gap:2px;padding:6px 8px}
.oneops-shell[data-shell-frame~=manager-desktop] .shell-right-pillar .ny-card .nudge-pill {padding:0;border:0;background:none;font:700 14px/1.3 var(--font-sans)}
.oneops-shell[data-shell-frame~=manager-desktop] .shell-right-pillar .ny-card .ny-title strong {font:700 15px/1.25 var(--font-sans)}
.oneops-shell[data-shell-frame~=manager-desktop] .shell-right-pillar .ny-card .nudge-person {display:flex;padding:0;border:0;background:none;font:400 14px/1.3 var(--font-sans)}
.oneops-shell[data-shell-frame~=manager-desktop] .shell-right-pillar .ny-card .nudge-ring {flex:none;width:22px;height:22px;min-width:22px;border:0;background:var(--aqua-light);font:700 11px/22px var(--font-sans)}

/* Cause 3, K17: each status in its own colour. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row-status[data-status-chip=on-shift] {background:var(--ok-bg);color:var(--ok)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row-status[data-status-chip=exception] {background:var(--amber-bg);color:var(--amber-ink)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-ops-attendance] .attendance-row-status[data-status-chip=checked-out] {background:none;color:var(--ink)}

/* Cause 4, K8 K10 M4: a section's pill sits at the right, as on Corporate. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .kiosk-section-card .salon-card-head {display:flex;align-self:stretch;justify-content:space-between;width:100%}

/* Cause 5, K31: the choices are tiles, 56 px, as K5's. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other .ov-people {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other .ov-person {position:relative;display:flex;align-items:center;min-height:56px;padding:0 12px;border:1px solid var(--os-brass);border-radius:var(--radius-md);background:var(--card-white)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other [data-handover-people] .ov-person {align-items:flex-start;text-align:left}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other [data-handover-people] .ov-person strong {color:var(--ink)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other:has([data-handover-people]) .ov-input {height:56px;min-height:56px}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other .ov-person input {position:absolute;width:1px;height:1px;margin:0;opacity:0}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other .ov-person:has(input:checked) {border:2px solid var(--teal);background:var(--aqua-light)}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other .ov-person:has(input:focus-visible) {outline:3px solid var(--teal);outline-offset:2px}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other .ov-person strong {font:700 16px/1.25 var(--font-sans)}

@media (max-width:799px) {
 /* Cause 6, M4: the code on one row, a small button. */
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ops-manager-card > div:has(> .ops-manager-code-row) {display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ops-manager-card > div > .ops-manager-code-row {display:contents}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ops-manager-card > div > p:first-child {margin:0;font:400 16px/1.3 var(--font-sans)}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ops-manager-code-row > [data-manager-code] {font:700 18px/1.3 var(--font-sans)}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ops-manager-code-row > [data-manager-code-toggle] {width:auto;min-height:48px;padding:0 14px}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ops-manager-heading h2 {font-size:20px}

}

/* A5/A6: tablet actions stay inline from 768 px; M2 is phone-only. */
@media(max-width:767px) {
 /* Cause 7, M2: Done and Cannot split the row's width. */
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .task-row .task-controls {grid-column:1 / -1;width:100%;min-width:0}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .task-row .task-controls > * {flex:1 1 0;min-width:0}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .task-row .task-controls .task-button:not(.task-change) {width:100%;min-width:0}
}

/* D3, D11: the person line reads as ordinary small text. */
.oneops-shell[data-shell-frame~=manager-desktop] .shell-right-pillar .ny-card .nudge-person > span:not(.nudge-ring) {font:400 14px/1.25 var(--font-sans);color:var(--ink)}
.oneops-shell[data-shell-frame~=manager-desktop] .shell-right-pillar .ny-card .nudge-ring {width:20px;height:20px;min-width:20px;font:700 10px/20px var(--font-sans)}
.oneops-shell[data-shell-frame~=manager-desktop] .shell-right-pillar .ny-card .ny-title strong {line-height:1.2}

/* K31: the question and the choices each take their own line. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other .ov-step,.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-other .ov-people {flex:1 0 100%;width:100%;margin:0}

/* A reason and a chosen person post on, so a person with them is a button in the same tile. */
.ov-person-form {display:contents}
button.ov-person {width:100%;font:inherit;text-align:left;cursor:pointer}

/* The page colour, as the frames and Corporate. Sign-in keeps its own. */
html:has(.oneops-shell[data-shell-frame]) body,.oneops-shell[data-shell-frame=kiosk]:not([data-shell-variant=kiosk-signin]) {background:var(--cream)}
.oneops-shell[data-shell-frame=kiosk]:not([data-shell-variant=kiosk-signin]) #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame :is(.kiosk-l21-container,.kiosk-section-body,.l21-main-stage) {background:var(--cream)}
/* K32: nobody to take the list is a caution. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-handover-none] {background:var(--amber-bg);border:1px solid var(--amber-border);border-left:4px solid var(--amber-border);color:var(--ink)}
/* K5, K24: reason buttons carry the gold edge. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-sheet .ov-choices .ov-choice,.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov-sheet .ov-other-choice > summary {border:1px solid var(--gold)}
/* K28: the card is tall enough that its button keeps clear of its status. */
@media (min-width:800px) {
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .ov .ov-list {min-height:96px}
}
/* M1: the band's mark as on M2. */
.oneops-shell[data-shell-frame~=manager-desktop] .corporate-phone-top .inpage-brand-title em {font-style:italic;font-weight:inherit}

/* D6, M2: Cannot reads dark, as the frames. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .task-controls .task-cannot,.oneops-shell[data-shell-frame~=manager-desktop] .task-controls .task-cannot {color:var(--ink)}
/* K30, D7: Decline and Remove access are plain, as the frames. */
.oneops-shell #tablet-controls .ny-act-btn.ack,.oneops-shell #tablet-controls .l1-action-btn.danger {background:var(--card-white);color:var(--teal-dark);border:1px solid var(--os-brass)}
/* K11: the checker's head and the Cannot row, as the frame. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame [data-list-state][data-list-check],.oneops-shell[data-shell-frame][data-shell-frame] [data-list-state][data-list-check] {padding:2px 8px;border-radius:999px;color:var(--warn);background:var(--warn-bg);border-color:transparent;font-weight:800}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .task-row.is-cannot,.oneops-shell[data-shell-frame~=manager-desktop] .task-row.is-cannot,.ov .task-row.is-cannot {background:transparent}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame .task-row.is-cannot .task-state,.oneops-shell[data-shell-frame][data-shell-frame] .task-row.is-cannot .task-state {border-color:var(--warn);color:var(--warn)}
.task-why {display:block;font-size:15px;font-weight:400;color:var(--ink-muted)}
.task-why strong {font-weight:600;color:var(--ink);margin-right:6px}
/* D6: Send for check switched off is filled pale on every surface. */
.oneops-shell[data-shell-frame~=manager-desktop] .task-button[disabled] {border:0;background:var(--teal);color:var(--ivory);opacity:.55}
/* Roster sign-in, camera failed: the notice and Retry take room, and Forgot PIN and Unlock tablet must stay on screen. */
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has(.pin-camera-failed) .dock-keypad-grid {grid-template-rows:none;grid-auto-rows:44px;gap:4px;margin:0}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has(.pin-camera-failed) .keypad-btn {height:44px!important;min-height:44px!important}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has(.pin-camera-failed) .dock-camera-box {height:64px;min-height:64px}
@media (max-height:600px) {.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has(.pin-camera-failed) .dock-camera-box {height:46px!important;min-height:46px!important}}
@media (max-height:600px) {.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has(.pin-camera-failed) .dock-keypad-grid {gap:2px}
.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has(.pin-camera-failed) .dock-cta-btn {height:44px!important;min-height:44px!important}}
@media (max-height:600px) {.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has(.pin-camera-failed) .dock-person-header small {display:none}}

/* Deep test P2 rows (pack 3.6.18). */
.oneops-shell .board-meta[data-item-text] {font-size:16px}
html:lang(hi) .oneops-shell .board-meta[data-item-text] {font-size:18px}
html:lang(hi) .oneops-shell .second-live :is(.second-banner,.second-needs-link) span {line-height:24px}
html:lang(hi) .oneops-shell .ground-bottom-pill-track .nav-lbl {line-height:18px}
.oneops-shell .corporate-phone-top .inpage-brand-crest {width:44px;height:44px}

/* A7: the Corporate phone view runs to 1023 px (pack 3.6.18), the same rules as below 768 px. */
@media(min-width:768px) and (max-width:1023px) {
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .checklist-picker {display:block!important;overflow:visible}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .checklist-pick {display:grid!important;grid-template-columns:24px minmax(0,1fr) auto;column-gap:10px;row-gap:2px;align-items:center!important;height:auto!important;min-height:64px;padding:6px 10px}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .pick-ring {grid-column:1;grid-row:1 / span 2}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .checklist-pick-title {grid-column:2;grid-row:1;flex:none;text-align:left}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .checklist-pick-note {grid-column:2;grid-row:2;flex:none;order:0;display:flex;flex-wrap:wrap;gap:0 10px;padding:0;text-align:left}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .pick-open {grid-column:3;grid-row:1 / span 2;margin:0}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .inpage-brand {flex:1;min-width:0}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .inpage-brand > div {flex:1;min-width:0;text-align:center}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .inpage-brand-title {font:600 15px/1.2 var(--font-serif);letter-spacing:.08em;white-space:nowrap}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .inpage-brand-sub {display:none}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .phone-section-bar {gap:8px;height:auto;min-height:48px;padding:4px 8px;background:var(--ivory)}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .fv-phone-pill {flex:1;width:auto;max-width:none;height:auto;min-height:44px;margin:0;padding:0;border:0;background:none;gap:6px;justify-content:flex-start}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .phone-pill-needs,.oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .phone-pill-act {display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;min-height:44px;padding:0 10px 0 4px;border:1px solid var(--danger);border-radius:var(--radius-pill);background:var(--danger-bg);color:var(--danger);font:700 15px var(--font-sans);white-space:nowrap}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .phone-pill-act {padding:0 6px 0 10px;min-width:0}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .corporate-count {width:32px;min-width:32px;height:32px;min-height:32px;padding:0;background:var(--card-white);color:var(--danger);font:700 15px var(--font-sans)}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .fv-phone-pill .crit {flex:none;height:auto;min-height:0;padding:0;border:0;background:none;color:inherit;font:700 15px var(--font-sans);white-space:nowrap}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .corporate-phone-top .phone-pill-meta {margin:0;width:16px;height:16px;color:inherit}
 .oneops-shell[data-shell-frame=manager-desktop][data-shell-frame] .desktop-mobile-rail {left:0;right:0;bottom:0;grid-template-columns:repeat(4,minmax(0,1fr));border:0;border-top:1px solid var(--gold);border-radius:0;box-shadow:none}
 .oneops-shell[data-shell-frame~=manager-desktop] .corporate-lounge > h1 {display:none}
 .oneops-shell[data-shell-frame~=manager-desktop] .ov-sheet .reason-presets {grid-template-columns:minmax(0,1fr)}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .checklist-pick {flex-wrap:wrap}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .checklist-pick-title {flex:1 1 0;min-width:0}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .checklist-pick-note {order:3;flex-basis:100%;padding-left:34px}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .checklist-pick {flex-wrap:wrap!important}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .checklist-pick-title {flex:1 1 0;min-width:0}
 .oneops-shell[data-shell-frame~=manager-desktop] [data-lists-view] .checklist-pick-note {order:3;flex-basis:100%;padding-left:34px}
 html:has(.oneops-shell[data-shell-frame~=manager-desktop]) {scroll-padding-bottom:104px}
 .oneops-shell[data-shell-frame~=manager-desktop] :is(a, button, summary, input, select, textarea) {scroll-margin-bottom:104px}
}

/* Corporate Lounge: the Manager card first in the pane (A9, A10). */
.oneops-shell .corporate-lounge .ops-manager-card {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2) var(--space-5);align-items:center;box-sizing:border-box;margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--gold);border-radius:var(--radius-md);background:var(--ivory)}
.oneops-shell .corporate-lounge .ops-manager-heading {grid-column:1 / -1}
.oneops-shell .corporate-lounge .ops-manager-heading h2 {margin:0;font:500 20px/1.2 var(--font-serif);color:var(--teal-dark)}
.oneops-shell .corporate-lounge .ops-manager-card > div:not(.ops-manager-heading) p {margin:0}
.oneops-shell .corporate-lounge .ops-manager-code-row {display:flex;align-items:center;gap:var(--space-3)}
.oneops-shell .corporate-lounge .mgr-recovery-drawer {grid-column:2;justify-self:end;text-align:left}
.oneops-shell .corporate-lounge .mgr-recovery-drawer[open] {grid-column:1 / -1;justify-self:stretch}
.oneops-shell .corporate-lounge-board-title {margin:0 0 var(--space-3);font:500 20px/1.2 var(--font-serif);color:var(--teal-dark)}
/* Team today: filters beside the heading (A8). */
.oneops-shell[data-shell-frame~=manager-desktop] .template-list > .page-head:has(.attendance-tabs) {justify-content:space-between}
.oneops-shell[data-shell-frame~=manager-desktop] .page-head .attendance-tabs {margin:0}
/* Failed read: one row, the Retry at its right (K16). */
.oneops-shell .read-failed-line {display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--ivory)}
.oneops-shell .read-failed-line p {margin:0;font:600 var(--text-task)/1.3 var(--font-sans);color:var(--ink)}
/* Needs You on a phone: one height, as M1; the Needs you tag in the body font. */
@media(max-width:799px) {
 .oneops-shell .kiosk-needs-actions :is(button,a) {height:48px!important;min-height:48px!important}
}
.oneops-shell[data-shell-frame~=manager-desktop] .nudge-tag {font-family:var(--font-sans)}
/* The pane snaps: the card and heading are stops too, or it opens scrolled past them and the band shrinks. */
.oneops-shell .corporate-lounge > :is(.ops-manager-card,.corporate-lounge-board-title) {scroll-snap-align:start}
@media(max-width:1023px) {.oneops-shell[data-shell-frame~=manager-desktop] .corporate-lounge > .corporate-lounge-board-title {display:none}}
/* Needs You below 800 px: the head keeps its full height, so the first row can't cover the filters. */
@media(max-width:799px) {.oneops-shell .kiosk-needs[data-needs-page] > .page-head {flex:none;height:auto}}
/* Team today's filters beside the heading keep a 44 px target. */
.oneops-shell[data-shell-frame~=manager-desktop] .page-head .attendance-tabs a {display:inline-flex;align-items:center;min-height:44px}

/* Station label in dark ink, Due stays muted (fix list 5b). */
.oneops-shell .task-details .task-station {color:var(--ink)}
/* Corporate phone Needs You: one height, as M1. */
@media(max-width:1023px) {
 .oneops-shell[data-shell-frame~=manager-desktop] .nudge-card-btns :is(button,a) {height:48px!important;min-height:48px!important}
}
/* Failed read: K16's amber. */
.oneops-shell .read-failed-line {border:1.5px solid var(--amber-border);background:var(--amber-bg)}
/* The Manager card's recovery on Corporate is a button, not a bare line. */
.oneops-shell .corporate-lounge .mgr-recovery-summary {display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);box-sizing:border-box;min-height:48px;padding:0 var(--space-4);border:1px solid var(--os-brass);border-radius:var(--radius-sm);background:var(--ivory);color:var(--teal);list-style:none;cursor:pointer}
.oneops-shell .corporate-lounge .mgr-recovery-summary::-webkit-details-marker {display:none}

/* Manager card on a Corporate phone: the recovery button under the code (M4). */
@media(max-width:599px) {
 .oneops-shell .corporate-lounge .ops-manager-card {grid-template-columns:minmax(0,1fr)}
 .oneops-shell .corporate-lounge .mgr-recovery-drawer {grid-column:1;justify-self:stretch}
 .oneops-shell .corporate-lounge .mgr-recovery-summary {width:100%}
}
/* Corporate phone (Design, 3 Nov 14:3x): nothing stands beside something too narrow to read. */
@media(max-width:599px) {
 .oneops-shell[data-shell-frame~=manager-desktop] .nudge-card.nudge-card {grid-template-columns:minmax(0,1fr)}
 .oneops-shell[data-shell-frame~=manager-desktop] .nudge-card .nudge-card-who {border-left:0;border-top:2px dashed var(--os-brass)}
 .oneops-shell .lounge-needs .kiosk-needs-actions {flex:1 1 100%;min-width:0;max-width:100%}
 .oneops-shell .lounge-needs .kiosk-needs-actions form {display:flex;flex:1 1 auto}
 .oneops-shell .lounge-needs .kiosk-needs-actions :is(a,button) {flex:1 1 auto;padding-inline:var(--space-2)}
 .oneops-shell #tablet-controls .m-tablet-row-head,.oneops-shell #tablet-controls .m-pending-card .m-pending-what {flex:1 1 100%!important;width:100%}
 .oneops-shell #tablet-controls .m-row-actions,.oneops-shell #tablet-controls .m-pending-card .ny-actions {flex:1 1 100%!important;width:100%;margin-left:0}
 .oneops-shell #tablet-controls .m-row-actions button,.oneops-shell #tablet-controls .m-pending-card .ny-actions button {flex:1 1 auto}
}
.oneops-shell .attendance-tabs .dept-filter-pill,.oneops-shell a.kiosk-signin-card {text-decoration:none}
.oneops-shell .attendance-tabs .dept-filter-pill[aria-current=page] {background:var(--teal);color:var(--ivory);border-color:var(--teal)}
/* Sign-in dock (AC-14, final-2): under 800 px high a long name or a two-line status must not push the dock off the screen. The start button gives up its spare height, to 48 px, and the camera view gives way, to 62 px. */
@media (min-height:601px) and (max-height:799px) {
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:not(:has(.pin-camera-failed)) #pin-form .dock-cta-btn {height:48px!important;min-height:48px!important}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:not(:has(.pin-camera-failed)) #pin-form {flex:1 1 0;min-height:0}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:not(:has(.pin-camera-failed)) .dock-camera-box {flex:1 1 0!important;height:auto!important;min-height:62px!important}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:not(:has(.pin-camera-failed)) .dock-camera-box video {height:100%!important;min-height:0!important}
}
/* A failed camera in Hindi takes three lines on short screens: the dock's gaps give way, so Forgot PIN and Unlock stay whole. */
@media (max-height:600px) {.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has(.pin-camera-failed):lang(hi) {--k-gap:1px;gap:1px;padding-top:2px;padding-bottom:2px} .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has(.pin-camera-failed):lang(hi) #pin-form {gap:1px} .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:has(.pin-camera-failed):lang(hi) #pin-selfie-status {line-height:1.15;padding-top:1px;padding-bottom:1px}}
/* At 800 to 899 px high the keys and start button are frozen, so the dock's gaps give way to keep the camera view at its 110 px floor when a name takes two lines. */
@media (min-height:800px) and (max-height:899px) {.oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:not(:has(.pin-camera-failed)) {--k-gap:5px;gap:5px} .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:not(:has(.pin-camera-failed)) #pin-form {gap:5px}}
/* Under 600 px high the PIN dock's gaps and start button give way, so Forgot PIN stays whole and the dock doesn't scroll (AC-14, final-2). */
@media (max-height:600px) {
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:not(:has(.pin-camera-failed)) {--k-gap:2px;gap:2px}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:not(:has(.pin-camera-failed)) #pin-form .dock-cta-btn {height:48px!important;min-height:48px!important}
}

/* ASK-228: reserve the form's content height before placing the footer. Retry and
   Switch share a row; a short tablet scrolls the dock instead of covering keys. */
@media(min-width:768px) {
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock:not(:has(#pin-help[open])) #pin-form:not([hidden]) {display:grid;grid-template-columns:minmax(0,1fr) minmax(48px,1fr);align-content:start;flex:1 0 auto;min-height:min-content;gap:var(--k-gap,var(--space-2))}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 #pin-form > * {grid-column:1 / -1;min-width:0}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 #pin-form #pin-retry-camera-btn {grid-column:1;min-height:48px;white-space:normal}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 #pin-form #pin-flip-camera-btn {grid-column:2;display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;white-space:normal}
 .oneops-shell #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .dock-footer-links {flex-shrink:0}
}
/* ASK-228: the portrait dock needs the same height boundary as the 800 px+
   dock. Otherwise its content grows inside a clipped frame, beyond the reach
   of scrolling. Keep the caption across and scroll the dock, including Start. */
@media(min-width:768px) and (max-width:799px) {
 .oneops-shell[data-shell-frame=kiosk] #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame :is(#screen-l2,#screen-l2 .kiosk-l2-split) {height:100%!important;min-height:0!important;overflow:hidden!important;flex:1 1 0!important}
 .oneops-shell[data-shell-frame=kiosk] #kioskFrame#kioskFrame#kioskFrame#kioskFrame#kioskFrame #screen-l2 .l2-right-dock {box-sizing:border-box;height:100%!important;min-height:0!important;overflow-y:auto!important}
}
