@layer components {
  .patient-treatment-workspace { min-width: 0; }
  .treatment-mode-bar { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; min-height: 44px; margin: 0; }
  .treatment-mode-bar p, .inline-calendar-save p, .inline-publication p, .inline-draft-notice { font-size: .84rem; color: var(--muted); }
  .patient-treatment-workspace .phase-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
  .patient-treatment-workspace .phase-heading h2 { margin: 0; }
  .patient-treatment-workspace .phase-workspace { margin-top: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
  .patient-treatment-workspace .phase-heading h2 { font-size: 1.375rem; }
  .patient-treatment-workspace .phase-action-panel { padding: 1.5rem 0 0; margin-top: 1rem; background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; }
  .patient-treatment-workspace .phase-pair h3 { font-size: 1.25rem; }
  .patient-treatment-workspace .phase-editor-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
  .patient-treatment-workspace .phase-pair { grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr); gap: 1rem; align-items: start; }
  .patient-treatment-workspace .phase-arrow { padding: 1.75rem 0 0; }
  .patient-treatment-workspace .phase-date { max-width: 28ch; line-height: 1.5; }
  .patient-treatment-workspace .phase-note, .patient-treatment-workspace .phase-reason { width: 100%; margin: 0; }
  .patient-treatment-workspace .phase-note label { margin-bottom: .5rem; }
  .patient-treatment-workspace .phase-secondary textarea { min-height: 96px; resize: vertical; margin: 0; }
  .patient-treatment-workspace .phase-action-row { margin-top: 1.5rem; gap: 1rem 2rem; }
  .patient-treatment-workspace .phase-primary { max-width: 100%; }
  .patient-treatment-workspace .phase-path { --phase-control-inset: .25rem; }
  .patient-treatment-workspace .phase-stop-control { gap: .5rem; }
  .patient-treatment-workspace .phase-stop-control:focus-visible { outline: 3px solid var(--periwinkle); outline-offset: -3px; }
  .patient-treatment-workspace .phase-stop.is-selected:not(.is-current) .phase-stop-symbol { border-style: solid; background: var(--lilac-soft); }
  .patient-treatment-workspace .phase-stop.is-selected .phase-stop-control strong { color: var(--navy); }
  .patient-treatment-workspace .phase-stop-symbol { transition: background-color 150ms ease-out, border-color 150ms ease-out, color 150ms ease-out; }
  .patient-treatment-workspace .phase-action-panel { animation: phase-selection-reveal 180ms ease-out; }
  @keyframes phase-selection-reveal { from { opacity: .5; } to { opacity: 1; } }
  @media (prefers-reduced-motion: reduce) {
    .patient-treatment-workspace .phase-action-panel { animation: none; }
    .patient-treatment-workspace .phase-stop-symbol { transition: none; }
  }
  @media (max-width: 1000px) {
    .patient-treatment-workspace .phase-editor-grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
    .patient-treatment-workspace .phase-pair { max-width: 640px; }
  }
  .patient-treatment-workspace .phase-effects { margin-top: .65rem; }
  .patient-treatment-workspace .patient-protocol { margin-top: 1.25rem; }
  #edit-patient-treatment[aria-disabled="true"] { background: var(--paper); color: var(--muted); border-color: var(--line-strong); cursor: default; }
  .inline-treatment-finish {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem 1.5rem;
    position: sticky;
    bottom: max(1rem, env(safe-area-inset-bottom));
    z-index: 6;
    width: fit-content;
    max-width: 100%;
    margin: 1.5rem 0 1rem auto;
    padding: .75rem;
    background: var(--surface);
    border-radius: 16px;
    box-shadow: var(--shadow);
  }
  .inline-treatment-finish form { display: flex; align-items: center; justify-content: flex-end; gap: .75rem 1.5rem; flex-wrap: wrap; }
  .treatment-finish-options:not(:has(label)) { display: none; }
  .treatment-publish-choice {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 44px;
    padding: .5rem .75rem;
    border-radius: 8px;
    color: var(--muted);
    font-weight: 500;
    cursor: pointer;
    transition: background-color 150ms ease-out, color 150ms ease-out;
  }
  .treatment-publish-choice:has(input:checked) { color: var(--navy); background: var(--lilac-soft); }
  @media (hover: hover) and (pointer: fine) {
    .treatment-publish-choice:hover { background: var(--paper); color: var(--navy); }
  }
  .treatment-publish-choice:has(input:focus-visible) { outline: 3px solid var(--periwinkle); outline-offset: 2px; }
  .treatment-publish-choice input { width: 18px; height: 18px; flex-shrink: 0; margin: 0; accent-color: var(--periwinkle); }
  .treatment-publish-choice input:focus-visible { outline: none; }
  .inline-treatment-finish .button { min-height: 44px; }
  .inline-treatment-finish .treatment-discard { background: transparent; border-color: transparent; color: var(--muted); }
  @media (hover: hover) and (pointer: fine) {
    .inline-treatment-finish .treatment-discard:hover { background: var(--coral-soft); color: var(--coral-ink); filter: none; }
  }
  @media (prefers-reduced-motion: reduce) {
    .treatment-publish-choice { transition: none; }
  }
  .inline-calendar-save { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
  .inline-publication { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--line); }
  .inline-publication form { flex-shrink: 0; }
  .patient-treatment-workspace .calendar-cell button.calendar-dose-entry,
  .patient-treatment-workspace .calendar-cell button.calendar-event-entry { width: 100%; min-height: 60px; font: inherit; color: inherit; background: transparent; border: 0; border-radius: 6px; cursor: pointer; }
  /* The browser snapshots the draggable button, not its calendar-cell background. */
  .patient-treatment-workspace .calendar-cell button.calendar-event-entry { color: var(--coral-ink); background: var(--coral-soft); }
  .patient-treatment-workspace .calendar-cell button.calendar-dose-entry { color: var(--surface); background: var(--navy); }
  .patient-treatment-workspace.is-editing .calendar-cell:has(button.calendar-dose-entry) { outline: 1px dashed var(--periwinkle); outline-offset: 2px; }
  .timeline-add-cell { display: grid; place-items: center; width: 100%; min-height: 44px; border: 1px dashed var(--line-strong); border-radius: 6px; background: transparent; color: var(--periwinkle); cursor: pointer; }
  .timeline-add-cell svg { width: 16px; height: 16px; }
  @media (hover: hover) and (pointer: fine) {
    .timeline-add-cell:hover { background: var(--lilac-soft); }
  }
  .patient-treatment-workspace button[data-drag-bound="true"] { cursor: grab; touch-action: none; user-select: none; }
  .patient-treatment-workspace button.is-dragging { cursor: grabbing; opacity: .55; }
  .patient-treatment-workspace .calendar-cell.calendar-drop { background: var(--lilac-soft); outline: 2px solid var(--periwinkle); outline-offset: -2px; }
  .patient-treatment-workspace button:focus-visible { outline: 3px solid var(--periwinkle); outline-offset: 2px; }
  .patient-treatment-workspace[aria-busy="true"] { cursor: progress; }
  .patient-treatment-workspace .phase-footnotes[hidden], .inline-calendar-retry[hidden] { display: none; }
  @media (max-width: 650px) {
    .inline-publication { align-items: flex-start; flex-direction: column; }
    .inline-treatment-finish { width: 100%; bottom: max(.5rem, env(safe-area-inset-bottom)); padding: .75rem; border-radius: 12px; }
    .inline-treatment-finish form { display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; }
    .inline-treatment-finish > form { width: 100%; }
    .inline-treatment-finish #discard-treatment-form { order: 2; }
    .treatment-publish-choice { font-size: .8rem; line-height: 1.4; }
    .patient-treatment-workspace .phase-heading { align-items: flex-start; }
    .treatment-mode-bar { flex-shrink: 0; }
    .treatment-mode-bar .button { padding-inline: .75rem; }
    .inline-publication form, .inline-publication button, .inline-treatment-finish button { width: 100%; }
    .patient-treatment-workspace .phase-stop { flex-basis: 100px; }
  }
}
