.entry-focus-context{position:fixed;z-index:40;box-sizing:border-box;padding:5px 12px;background:#f4f8fa;color:var(--ink);border-bottom:1px solid var(--line);font-size:12px;line-height:16px;pointer-events:none;box-shadow:0 2px 6px #112f4610}
.entry-focus-context>span,.entry-focus-context>strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.entry-focus-context[hidden],.entry-focus-context>[hidden]{display:none!important}
.entry-focus-space{width:1px;pointer-events:none}
/* A compact identity replaces large sticky selectors only during text entry. */
.entry-focus-mode>header{position:static!important}
.entry-focus-mode .service-picker,.entry-focus-mode .report-item-picker,.entry-focus-mode .practice-progress,.entry-focus-mode .hygiene-inventory,.entry-focus-mode .hygiene-current-equipment{position:static!important;max-height:none}
.entry-focus-short #main .sticky-save,.entry-focus-short #main .ts-savebar{position:static!important}
/* The Engineer shell reserves a separate Save area above the actual IME.
   Keep the short-screen fallback for other forms, including timesheets. */
body.engineer-entry-active.entry-keyboard-visible.entry-focus-short #main .sticky-save{position:sticky!important}
body.engineer-entry-active.entry-tiny-keyboard.entry-focus-short #main .sticky-save{position:fixed!important}
/* The current-entry identity supplies sample context while typing. A sticky
   spreadsheet heading must not cover the reading in a short IME viewport. */
body.engineer-entry-active.entry-focus-short .boiler-grid-scroll thead th{position:static}
@media print{.entry-focus-context,.entry-focus-space{display:none!important}}

/* Preserve multiline entry in a short keyboard viewport; the text scrolls inside. */
.entry-focus-short textarea.entry-focus-input{min-height:44px;height:min(95px,calc(var(--entry-focus-height) - var(--entry-focus-context-height) - 52px));max-height:calc(var(--entry-focus-height) - var(--entry-focus-context-height) - 52px)}
/* Expanded Chrome plus the landscape keyboard can leave only128CSSpx.
   Keep both identities on one row so the active label and full input fit. */
@media(min-width:620px){
 .entry-focus-short .entry-focus-context{display:flex;align-items:center;gap:12px}
 .entry-focus-short .entry-focus-context>span,.entry-focus-short .entry-focus-context>strong{flex:1 1 0;min-width:0}
}

.entry-focus-short label.entry-focus-label>span{font-size:12px;line-height:16px;min-height:0!important}
