.field-recovery-host { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; margin: 0 0 24px; font-size: 12px; color: #646b70; }
.field-recovery-host:empty { display: none; }
.field-recovery-host details { width: 100%; }
.field-recovery-host summary { cursor: pointer; color: #272b2e; }
.field-recovery-host textarea { width: 100%; min-height: 100px; margin-top: 12px; font-size: 16px; box-sizing: border-box; }
.field-recovery-host button { background: none; border: 0; color: #272b2e; cursor: pointer; padding: 10px 12px 10px 0; font: inherit; }
.field-recovery-host button:hover { font-weight: 600; }
.field-save-state { color: #373d40; }
.field-voice-changed { outline: 2px solid #8eafbd !important; outline-offset: 2px; }
.field-connection-lost .field-recovery-host { position: fixed; z-index: 20001; bottom: env(safe-area-inset-bottom, 0px); left: 16px; right: 16px; background: #fff; padding: 20px; margin: 0; border: 1px solid #d9dee0; border-radius: 8px; max-height: 65dvh; overflow: auto; box-shadow: 0 6px 28px #0002; }
.field-connection-lost #components-reconnect-modal { pointer-events: none; }
.field-connection-lost .vf-floating { display: none; }
.vf-changes { background: #fff; color: #333a3d; border: 1px solid #d9dee0; padding: 10px 14px; border-radius: 6px; font-size: 12px; max-height: 220px; overflow: auto; overflow-wrap: anywhere; }
.vf-changes summary { cursor: pointer; }
.vf-undo { align-self: flex-end; background: #fff; border: 1px solid #d9dee0; border-radius: 6px; padding: 7px 12px; font: inherit; font-size: 12px; color: #31383b; cursor: pointer; }
.vf-undo:hover { font-weight: 600; }
.vf-change-entry { margin-top: 12px; }
.vf-change-entry time { color: #687177; }
.field-lab-status { margin: 24px 0; }
.field-lab-status h3, .pms-briefing h3 { font-size: 15px; font-weight: 600; margin: 0 0 12px; }
.field-lab-break { display: flex; flex-wrap: wrap; gap: 12px 24px; padding: 7px 0; font-size: 13px; }
.field-lab-break strong { min-width: 24px; }
.field-lab-warning { color: #b44031; }
.pms-briefing { padding: 18px 0; }
.pms-brief-line { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 6px 0; font-size: 13px; }
.pms-brief-line p { margin: 4px 0; }
.pms-cited { margin: 10px 0 18px; }
.pms-cited p { margin: 0 0 4px; }
.pms-sources { display: flex; flex-wrap: wrap; gap: 6px 16px; }
@media (max-width: 600px) {
    .pms-brief-line { flex-direction: column; gap: 4px; }
    .field-connection-lost .field-recovery-host { left: 8px; right: 8px; padding: 14px; }
}
@media print { .field-recovery-host, .vf-changes { display: none; } }
