.layout-plan-page { box-sizing: border-box; padding: var(--ui-page-inset-top) var(--ui-page-inset-x) 24px; overflow: auto; color: var(--ui-text); }
.layout-plan-page *, .layout-plan-page *::before, .layout-plan-page *::after { box-sizing: border-box; }
.layout-plan-page :is(h1,h2,h3,p) { margin: 0; overflow-wrap: anywhere; }
.layout-muted { color: var(--ui-muted); }
.layout-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex: 0 0 auto; }
.layout-plan-page button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.layout-plan-page .layout-summary { margin-bottom: 14px; }
.layout-room-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.layout-room-card { padding: 0; display: flex; flex-direction: column; overflow: hidden; }
.layout-room-title { display: flex; align-items: center; gap: 10px; }
.layout-room-title { min-height: 96px; padding: 22px; gap: 16px; background: linear-gradient(115deg, var(--ui-layout-tint), var(--ui-surface)); border-left: 4px solid var(--ui-icon-layout); }
.layout-room-title > .shared-asset-icon { width: 42px; height: 42px; }
.layout-counts { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; padding: 22px; flex: 1; }
.layout-count { display: flex; align-items: center; gap: 12px; }
.layout-count > .shared-asset-icon { width: 32px; height: 32px; }
.layout-count-labels { display: flex; flex-direction: column; gap: 3px; }
.layout-count[data-kind="asset"] strong { color: var(--ui-icon-asset); }
.layout-count[data-kind="personnel"] strong { color: var(--ui-icon-personnel); }
.layout-control-status { display: flex; align-items: center; gap: 8px; color: var(--ui-muted); }
.layout-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px 10px 20px; background: var(--ui-layout-check-tint); }
.layout-card-footer .layout-control-status { min-width: 0; flex: 1; }
.layout-card-footer button { flex: 0 0 auto; color: var(--ui-icon-checks); }
.layout-empty { padding: 48px; text-align: center; }
.layout-empty > .shared-asset-icon { width: 40px; height: 40px; margin-bottom: 14px; }
.layout-empty h2 { margin-bottom: 10px; }
.layout-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 20px; }
.layout-panel { min-width: 0; margin: 0; padding: 20px; }
.layout-room-details { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; gap: 22px; margin-bottom: 20px; }
.layout-detail-group { min-width: 0; }
.layout-detail-group[data-detail-kind="asset"] { --room-detail-color: var(--ui-icon-asset); }
.layout-detail-group[data-detail-kind="personnel"] { --room-detail-color: var(--ui-icon-personnel); }
.layout-detail-group[data-detail-kind="daily_checks"] { --room-detail-color: var(--ui-icon-checks); }
.layout-detail-group-heading { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: color-mix(in srgb, var(--room-detail-color) 8%, var(--ui-surface)); border-radius: var(--ui-radius); }
.layout-detail-group-heading h2 { flex: 1; min-width: 0; }
.layout-detail-mark { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: var(--ui-header-icon-size); height: var(--ui-header-icon-size); border-radius: var(--ui-radius); background: color-mix(in srgb, var(--room-detail-color) 8%, var(--ui-surface)); }
.layout-detail-total { color: var(--room-detail-color); white-space: nowrap; }
.layout-detail-list { display: grid; gap: 10px; list-style: none; margin: 12px 0 0; padding: 0; }
.layout-detail-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 14px; padding: 18px; background: linear-gradient(115deg, color-mix(in srgb, var(--room-detail-color) 9%, var(--ui-surface)), var(--ui-surface)); border: var(--ui-border-width) solid var(--ui-group-line); border-left: 3px solid var(--room-detail-color); border-radius: var(--ui-radius); }
.layout-detail-group[data-detail-kind="personnel"] .layout-detail-item { align-items: center; }
.layout-detail-body { min-width: 0; }
.layout-detail-item-title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; }
.layout-detail-item-title h3 { min-width: 0; }
.layout-detail-passive { color: var(--ui-muted); background: var(--ui-inactive-surface); padding: 2px 6px; border-radius: var(--ui-radius); }
.layout-detail-type { color: var(--room-detail-color); margin-top: 4px !important; }
.layout-detail-order { color: var(--ui-muted); }
.layout-device-metadata { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 14px 0 0; }
.layout-device-metadata div { min-width: 0; }
.layout-device-metadata dd { margin: 3px 0 0; overflow-wrap: anywhere; }
.layout-device-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.layout-detail-empty { display: flex; align-items: center; gap: 14px; padding: 24px 14px; }
.layout-room-form > .layout-panel { margin-bottom: 20px; }
.layout-field { display: flex; flex-direction: column; gap: 8px; }
.layout-selection-body { padding: 16px; border: var(--ui-border-width) solid var(--ui-group-line); border-top: 0; background: var(--ui-surface); border-radius: 0 0 var(--ui-radius) var(--ui-radius); }
.layout-selection-tools { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; margin-bottom: 10px; }
.layout-selection-tools input { width: 100%; min-width: 0; }
.layout-selection-tools button[aria-pressed="true"] { border-color: var(--ui-accent); background: var(--ui-selection); }
.layout-selection-pager { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.layout-selection-page-actions { display: flex; gap: 8px; }
.layout-option { display: flex; align-items: flex-start; gap: 12px; padding: 10px 6px; border-bottom: var(--ui-border-width) solid var(--ui-group-line); cursor: pointer; }
.layout-option:has(input:disabled) { cursor: default; background: var(--ui-readonly-surface); }
.layout-option:has(input:checked) { background: var(--ui-selection); }
.layout-option input { flex: 0 0 auto; width: var(--ui-check-size); height: var(--ui-check-size); margin: 2px 0 0; accent-color: var(--ui-accent); }
.layout-option input:focus-visible { outline: var(--ui-focus-width) solid var(--ui-focus); outline-offset: 2px; }
.layout-option-label { min-width: 0; display: flex; flex-direction: column; gap: 5px; overflow-wrap: anywhere; }
.layout-option[hidden] { display: none; }
.layout-error { margin: 14px 0 !important; padding: 14px; border: var(--ui-border-width) solid var(--ui-line); background: var(--ui-selection); }
.layout-routine-section { margin-bottom: 20px; }
.layout-room-form + .layout-routine-section { margin-top: 20px; }
.layout-routine-title { margin-bottom: 18px !important; }
.layout-routine-card > .layout-actions { margin-top: 18px; }
.layout-routine-add { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.layout-routine-form { display: grid; gap: 20px; }
.layout-routine-card { padding: 22px; }
.layout-routine-schedule { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.layout-routine-measurement { margin-top: 18px !important; padding-top: 18px; border-top: var(--ui-border-width) solid var(--ui-group-line); }
.layout-routine-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.layout-routine-limits { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; margin: 18px 0; }
.layout-routine-form :is(input,select,textarea) { min-width: 0; max-width: 100%; }
.layout-routine-form select { width: 100%; }
.layout-reference-toggle { display: flex; align-items: center; gap: 10px; margin: 16px 0; }
.layout-reference-toggle input { width: var(--ui-check-size); height: var(--ui-check-size); accent-color: var(--ui-accent); }
.layout-routine-form [hidden] { display: none; }
.layout-reference-info { padding: 14px; background: var(--ui-layout-tint); border: var(--ui-border-width) solid var(--ui-group-line); border-radius: var(--ui-radius); }
.layout-reference-metadata { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin: 0; }
.layout-reference-metadata dd { margin: 4px 0 10px; overflow-wrap: anywhere; }
.layout-reference-note { color: var(--ui-muted); }
.layout-reference-evidence:empty { display: none; }
.layout-reference-evidence { margin-top: 8px !important; }
.layout-routine-help { margin-top: 10px !important; }
.layout-daily-toolbar { display: flex; align-items: end; gap: 12px; margin: 14px 0; }
.layout-history-filters { display: grid; grid-template-columns: minmax(0,2fr) repeat(2,minmax(0,1fr)) auto auto auto; gap: 12px; align-items: end; margin: 14px 0; }
.layout-entry-result, .layout-entry-revision { margin: 14px 0; padding: 14px; background: var(--ui-readonly-surface); border: var(--ui-border-width) solid var(--ui-group-line); border-radius: var(--ui-radius); }
.layout-entry-status[data-status="suitable"] { color: var(--ui-status-positive); }
.layout-entry-status[data-status="unsuitable"] { color: var(--ui-status-negative); }
.layout-entry-status[data-status="pending"] { color: var(--ui-muted); }
.layout-entry-form .layout-field:has(:disabled) { opacity: var(--ui-disabled-opacity); }
.layout-card-actions { display: flex; align-items: center; gap: 6px; }
.layout-report-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.layout-report-form > .layout-actions { margin-top: 18px; }
.layout-room-body { position: relative; flex: 1; display: flex; flex-direction: column; }
.layout-room-overview { display: flex; flex-direction: column; flex: 1; }
.layout-room-overview[data-replaced="true"] { visibility: hidden; }
.layout-room-report-slot { position: absolute; inset: 0; padding: 12px 16px; overflow: auto; }
.layout-room-card .layout-report-form { padding: 0; border: 0; background: transparent; }
.layout-room-card .layout-report-form > .layout-actions { margin-top: 12px; }
.layout-routine-workspace { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: start; gap: 18px; }
.layout-routine-workarea { min-width: 0; position: sticky; top: 12px; }
.layout-workarea-empty { display: grid; gap: 12px; padding: 24px; background: var(--ui-layout-tint); border: var(--ui-border-width) solid var(--ui-group-line); border-radius: var(--ui-radius); }
.layout-workarea-empty h3 { color: var(--ui-icon-checks); }
.layout-control-list { display: grid; gap: 12px; min-width: 0; list-style: none; padding: 0; margin: 0; }
.layout-control-item, .layout-entry-card { --layout-control-color: var(--ui-icon-checks); }
:is(.layout-control-item,.layout-entry-card)[data-control-kind="temperature"] { --layout-control-color: var(--ui-icon-temperature); }
:is(.layout-control-item,.layout-entry-card)[data-control-kind="humidity"] { --layout-control-color: var(--ui-icon-humidity); }
:is(.layout-control-item,.layout-entry-card)[data-control-kind="cleaning"] { --layout-control-color: var(--ui-icon-cleaning); }
:is(.layout-control-item,.layout-entry-card)[data-control-kind="waste"] { --layout-control-color: var(--ui-icon-waste); }
.layout-control-item { position: relative; min-width: 0; padding: 16px; background: linear-gradient(115deg, color-mix(in srgb, var(--layout-control-color) 11%, var(--ui-surface)), var(--ui-surface) 85%); border: var(--ui-border-width) solid var(--ui-group-line); border-left: 3px solid var(--layout-control-color); border-radius: var(--ui-radius); }
.layout-control-item[data-selected="true"] { border-color: var(--layout-control-color); }
.layout-control-heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: var(--ui-border-width) solid color-mix(in srgb, var(--layout-control-color) 25%, var(--ui-surface)); }
.layout-control-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.layout-control-labels { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.layout-control-mark { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: var(--ui-icon-size); height: var(--ui-icon-size); border: var(--ui-border-width) solid color-mix(in srgb, var(--layout-control-color) 35%, var(--ui-surface)); border-radius: var(--ui-radius); background: color-mix(in srgb, var(--layout-control-color) 13%, var(--ui-surface)); }
.layout-control-title h3 { min-width: 0; }
.layout-control-period { display: inline-flex; align-items: center; padding: 3px 7px; color: var(--ui-text); background: color-mix(in srgb, var(--layout-control-color, var(--ui-icon-checks)) 12%, var(--ui-surface)); border-radius: var(--ui-radius); }
.layout-control-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; max-width: 55%; }
.layout-control-badge { padding: 4px 8px; border: var(--ui-border-width) solid var(--ui-group-line); border-radius: var(--ui-radius); background: var(--ui-inactive-surface); }
.layout-control-badge[data-status="suitable"] { color: var(--ui-status-positive); border-color: currentColor; background: color-mix(in srgb, var(--ui-status-positive) 12%, var(--ui-surface)); }
.layout-control-badge:is([data-status="unsuitable"],[data-status="overdue"]) { color: var(--ui-status-negative); border-color: currentColor; background: color-mix(in srgb, var(--ui-status-negative) 12%, var(--ui-surface)); }
.layout-control-badge[data-status="due"] { color: var(--ui-text); border-color: var(--ui-accent); background: var(--ui-selection); }
.layout-control-badge[data-status="upcoming"] { color: var(--ui-icon-checks); border-color: currentColor; background: var(--ui-layout-check-tint); }
.layout-control-facts { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px 16px; margin: 14px 0 0; }
.layout-control-facts div { min-width: 0; }
.layout-control-facts dd { margin: 3px 0 0; overflow-wrap: anywhere; }
.layout-fact-wide { grid-column: 1 / -1; }
.layout-control-note { margin-top: 12px !important; }
.layout-control-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: var(--ui-border-width) solid var(--ui-group-line); }
.layout-control-pending { margin-top: 12px; }
.layout-entry-workspace { min-width: 0; }
.layout-entry-workspace > .layout-control-list { grid-template-columns: repeat(2, minmax(0,1fr)); align-items: start; gap: 18px; }
.layout-control-row { display: grid; grid-template-columns: minmax(0,1fr); align-items: start; min-width: 0; }
.layout-entry-workarea { min-width: 0; display: grid; align-self: stretch; }
.layout-entry-workarea[hidden], .layout-room-report-slot[hidden] { display: none; }
.layout-entry-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.layout-entry-heading h3 { min-width: 0; }
.layout-entry-heading .layout-control-period { flex: 0 0 auto; }
.layout-reference-info > .layout-control-facts { margin-top: 0; }
.layout-entry-evidence { margin-top: 14px; padding-top: 12px; border-top: var(--ui-border-width) solid var(--ui-group-line); }
.layout-control-overview[data-replaced="true"] { visibility: hidden; }
.layout-entry-workarea[data-contained="true"] { position: absolute; inset: 0; overflow: hidden; }
.layout-entry-workarea[data-contained="true"] > .layout-entry-form { height: 100%; min-height: 0; }
.layout-entry-workarea[data-contained="true"] > .layout-report-form { height: 100%; min-height: 0; overflow: auto; padding: 16px; border: 0; background: transparent; }
.layout-entry-workarea[data-contained="true"] .layout-entry-card { padding: 16px; border: 0; background: transparent; }
.layout-entry-contained { display: flex; flex-direction: column; min-height: 0; height: 100%; }
.layout-entry-contained [hidden] { display: none; }
.layout-entry-content { flex: 1; min-height: 0; overflow: auto; }
.layout-entry-context { margin: 0; padding: 10px; gap: 6px 12px; background: color-mix(in srgb, var(--layout-control-color) 9%, var(--ui-surface)); }
.layout-entry-context > .layout-fact-wide { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: baseline; column-gap: 8px; }
.layout-entry-context > .layout-fact-wide dd { margin-top: 0; }
.layout-entry-contained > .layout-entry-heading { margin-bottom: 12px; }
.layout-entry-primary > .layout-field, .layout-entry-primary > .layout-waste-fields { margin-top: 12px; }
.layout-entry-primary > .layout-field:first-child { margin-top: 0; }
.layout-entry-contained > .layout-actions { flex-wrap: wrap; margin-top: 12px; flex: 0 0 auto; }
