/* Final screen layer: a quiet forest-and-paper workspace.
   Printable client forms keep their own typography and layout. */
@media screen {
  :root {
    --paper: #f5f7f4;
    --paper-bright: #ffffff;
    --ink: #203d3c;
    --ink-soft: #536e69;
    --forest: #205c56;
    --forest-deep: #174a46;
    --line: #dce5df;
    --line-strong: #b8cac0;
    --terra: #ad563b;
    --shadow: 0 4px 18px rgb(24 62 51 / 4%);
    font-family: "BIZ UDPGothic", "Hiragino Sans", "Yu Gothic UI", "Meiryo", sans-serif;
  }
  body { background: var(--paper); }
  body.login-page { background: #eef3ed; font-family: inherit; }
  .login-card { background: white; border-color: var(--line); box-shadow: var(--shadow); }
  .login-brand small { font-size: 12px; }
  .login-card input { background: white; }
  .sidebar { background: #204f4a; box-shadow: none; }
  .brand strong { letter-spacing: .04em; }
  .brand span:last-child, .facility-identity span { color: #d3e2d9; font-size: 12px; }
  .facility-identity strong { font-family: inherit; font-size: 14px; }
  .current-child { border-radius: 12px; background: #2c5e57; box-shadow: none; }
  .current-child::after { display: none; }
  .primary-nav button { font-size: 14px; color: #e0eae5; }
  .primary-nav button[aria-current="page"] { background: #396b61; box-shadow: inset 3px 0 #efb28d; }
  .primary-nav button span { font-size: 12px; color: #d4e4da; }
  .admin-nav strong { font-size: 13px; }
  .admin-nav small { font-size: 12px; color: #d0dfd6; }
  .topbar { background: #ffffff; box-shadow: none; border-color: var(--line); }
  .staff-context span, .save-state, .workspace-context { font-size: 12px; }
  .page-heading h1 { font-family: inherit; font-size: clamp(26px, 2.3vw, 34px); line-height: 1.4; letter-spacing: .015em; font-weight: 750; }
  .page-heading { margin-bottom: 24px; }
  .eyebrow { font-size: 12px; letter-spacing: .08em; }
  .page-view h2, .dialog-heading h2 { font-family: inherit; font-size: 23px; line-height: 1.45; letter-spacing: .01em; }
  .page-view h3 { font-family: inherit; font-size: 18px; line-height: 1.5; }
  .button { min-height: 44px; border-radius: 9px; font-size: 14px; font-weight: 700; box-shadow: none; }
  .button-primary, .button-primary:hover { box-shadow: none; }
  .button-secondary { background: white; border-color: var(--line-strong); }
  .button:disabled { cursor: not-allowed; }
  .section-tabs { box-shadow: none; border-color: var(--line); background: #eaf0eb; }
  .section-tabs button { min-height: 44px; font-size: 14px; }
  .detail-sheet, .subsection-card, .document-lane, .record-card { border-radius: 14px; background: white; box-shadow: var(--shadow); }
  .detail-grid dt { font-size: 13px; color: var(--ink-soft); }
  .detail-grid dd { font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
  .record-card h3 { font-size: 19px; }
  .record-meta, .document-date-meta, .document-reference-inline summary small { font-size: 12px; line-height: 1.6; }
  .readiness-copy, .document-workflow-copy, .document-item .document-workflow-copy { border-radius: 0 8px 8px 0; font-size: 14px; }
  .document-lane h2 { font-size: 25px; }
  .document-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .document-actions > :first-child, .document-actions > .pdf-action-error { grid-column: 1 / -1; }
  .document-lane-index::after { font-family: inherit; font-size: 11px; }
  .document-reference-shared { background: white; border-radius: 14px; }
  .form-dialog { border-radius: 16px; }
  .dialog-heading h2 + p { font-size: 14px; }
  .field { min-width: 0; }
  .field > span, .field > label > span, .checkbox-field legend { font-size: 14px; line-height: 1.6; }
  .field em, .field small { font-size: 12px; line-height: 1.6; }
  .field input, .field select, .field textarea { min-width: 0; max-width: 100%; min-height: 50px; font-size: 16px; border-radius: 9px; }
  .field input[type="checkbox"], .field input[type="radio"] { min-height: 0; }
  .custom-field-row textarea { height: 50px; min-height: 50px; line-height: 1.6; }
  .custom-field-row .button { min-height: 50px; }
  .field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible,
  .button:focus-visible, summary:focus-visible, .section-tabs button:focus-visible {
    outline: 2px solid #a64d30; outline-offset: 3px; box-shadow: none;
  }
  .pdf-action-error { padding: 14px; border: 1px solid #dcaba0; border-radius: 9px; background: #fff4f0; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
  .daily-summary-parent-card strong { font-family: inherit; font-size: 18px; }
  .daily-summary-parent-card p, .daily-summary-parent-health p { font-size: 15px; white-space: pre-wrap; overflow-wrap: anywhere; }
  .daily-summary-parent-health strong { font-size: 15px; }
  .daily-summary-record-detail { padding-top: 10px; border-top: 1px solid var(--line); }
  .daily-summary-record-detail summary { cursor: pointer; min-height: 44px; padding: 10px 0; font-size: 13px; font-weight: 700; color: var(--forest); }
  .daily-summary-record-detail p { margin-top: 8px; }
  .daily-summary-print-full { display: none; }
  .document-jump-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
  .document-jump-nav a { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 14px; border: 1px solid var(--line-strong); border-radius: 9px; background: var(--paper-bright); color: var(--forest); text-decoration: none; font-size: 14px; font-weight: 700; }
  .document-jump-nav a span { color: var(--ink-soft); font-size: 12px; font-variant-numeric: tabular-nums; }
  .document-jump-nav a:hover { background: var(--paper); }
  .document-jump-nav a:focus-visible { outline: 2px solid var(--terra); outline-offset: 3px; }
  .document-lane h2 { scroll-margin-top: 100px; text-wrap: balance; }
  .editor-group { min-width: 0; margin: 0 0 12px; padding: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-bright); }
  fieldset.editor-group { padding: 8px 0 0; }
  .editor-group > legend { padding: 0 8px; margin-left: 12px; font-size: 15px; font-weight: 700; color: var(--forest); }
  .editor-group > summary { min-height: 48px; padding: 14px 16px; cursor: pointer; font-size: 15px; font-weight: 700; overflow-wrap: anywhere; }
  .editor-group[open] > summary { border-bottom: 1px solid var(--line); }
  .editor-group > summary small { display: inline-block; margin-left: 12px; font-size: 12px; font-weight: 400; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
  .editor-group-fields { padding: 16px; row-gap: 16px; }
  .editor-group-fields > .field { margin: 0; }
  .editor-group-controls { display: flex; flex-wrap: wrap; gap: 8px; }
  #child-edit-form > .dialog-actions, #child-register-form > .dialog-actions, #plan-editor-form > .dialog-actions { position: sticky; z-index: 7; bottom: -1px; background: var(--paper-bright); padding: 12px 0 max(12px, env(safe-area-inset-bottom)); }
  #child-edit-form, #child-register-form, #plan-editor-form { scroll-padding-bottom: 100px; }
  @media (max-width: 600px) {
    .document-jump-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .document-jump-nav a { padding: 10px; font-size: 13px; gap: 6px; overflow-wrap: anywhere; }
    .editor-group-fields { padding: 12px; }
    .editor-group > summary { padding: 14px 12px; }
    #child-edit-form > .dialog-actions, #child-register-form > .dialog-actions, #plan-editor-form > .dialog-actions { flex-direction: row; flex-wrap: wrap; gap: 8px; }
    #child-edit-form > .dialog-actions .button, #child-register-form > .dialog-actions .button, #plan-editor-form > .dialog-actions .button { width: auto; flex: 1 1 auto; }
    #open-child-delete-dialog { flex-basis: 100% !important; }
  }
  /* Documents workspace: status, purpose, then one primary action. */
  #view-documents .document-flow-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 20px; max-width: none; }
  #view-documents .document-lane { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--paper-bright); }
  #view-documents .document-lane-index { display: none; }
  #view-documents .document-lane-heading { padding: 20px 22px 16px; border-bottom: 1px solid var(--line); }
  #view-documents .document-lane h2 { margin: 10px 0 6px; font-family: inherit; font-size: 22px; line-height: 1.4; }
  #view-documents .document-purpose { font-size: 13px; color: var(--ink-soft); line-height: 1.65; text-wrap: pretty; }
  #view-documents .document-state { display: inline-flex; width: fit-content; padding: 4px 9px; border-radius: 6px; font-size: 12px; font-weight: 700; line-height: 1.5; color: var(--forest); background: #e6f2ea; }
  #view-documents .document-state[data-state="empty"] { color: var(--ink-soft); background: #f0f3f1; }
  #view-documents .document-state[data-state="draft"], #view-documents .document-state[data-state="returned"] { color: #855319; background: #fff1da; }
  #view-documents .document-lane-record { display: flex; flex: 1; flex-direction: column; gap: 14px; padding: 18px 22px 20px; --document-action-width: 100%; }
  #view-documents .document-item, #view-documents .document-lane.assessment .document-item { display: grid; gap: 10px; min-width: 0; padding: 0; }
  #view-documents .document-version { font-family: inherit; font-size: 12px; font-weight: 600; color: var(--ink-soft); }
  #view-documents .document-date-meta, #view-documents .document-lane.assessment .document-date-meta { display: grid; gap: 3px; font-size: 12px; padding: 0; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
  #view-documents .document-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; width: 100%; }
  #view-documents .document-actions .button { min-height: 44px; padding: 10px 14px; width: auto; flex: 1 1 auto; font-size: 14px; }
  #view-documents .document-actions > .pdf-action-error { flex-basis: 100%; }
  #view-documents .document-source-tools { border-top: 1px solid var(--line); padding-top: 4px; }
  #view-documents .document-source-tools > summary, #view-documents .document-context-details > summary, #view-documents .document-history > summary { cursor: pointer; padding: 10px 0; min-height: 44px; font-size: 13px; font-weight: 600; color: var(--forest); }
  #view-documents .document-source-tools .document-lane-controls { width: 100%; gap: 10px; padding: 4px 0 0; }
  #view-documents .document-lane-controls .button { width: 100%; min-height: 44px; font-size: 14px; }
  #view-documents .readiness-copy, #view-documents .document-workflow-copy { padding: 0; border: 0; background: none; font-size: 13px; line-height: 1.7; color: var(--ink-soft); }
  #view-documents .document-context-details { margin: 0; }
  #view-documents .document-history { border-top: 1px solid var(--line); margin-top: 14px; }
  #view-documents .document-history .document-item { padding: 14px 0; border-top: 1px solid var(--line); }
  #view-documents .document-history .button-primary { background: white; border-color: var(--line-strong); color: var(--forest); }
  #view-documents .document-lane[data-has-document="false"] .document-source-tools { border: 0; padding: 0; }
  #view-documents .document-lane[data-has-document="false"] .document-list.empty-state { min-height: 0; padding: 0; text-align: left; place-content: start; }
  #view-documents .document-list.empty-state strong { font-size: 13px; color: var(--ink-soft); font-weight: 400; }
  #view-documents .document-lane.supplemental, #view-documents .document-reference-shared { grid-column: 1 / -1; }
  #view-documents .document-reference-shared { width: 100%; margin: 0; }
  #view-documents .document-reference-shared summary { padding: 16px 22px; }
  #view-documents .document-reference-shared summary strong { font-family: inherit; font-size: 17px; }
  #view-documents .document-reference-shared summary small { font-size: 12px; }
  #view-documents .document-reference-shared summary em { display: none; }
  #view-documents .document-jump-nav { gap: 6px; margin-bottom: 20px; }
  #view-documents .document-jump-nav a { font-size: 12px; padding: 8px 10px; border: 0; background: transparent; text-decoration: underline; text-underline-offset: 4px; }
  @media (max-width: 1100px) {
    #view-documents .document-flow-columns { grid-template-columns: minmax(0, 1fr); }
  }
  @media (max-width: 600px) {
    #view-documents .document-lane-heading { padding: 16px; }
    #view-documents .document-lane-record { padding: 16px; }
    #view-documents .document-lane h2 { font-size: 20px; }
  }
  @media (max-width: 820px) {
    .page-heading { align-items: flex-start; gap: 16px; }
    .page-heading h1 { font-size: 26px; }
    .document-lane h2 { font-size: 22px; }
    .child-heading-actions { flex-wrap: wrap; }
    .dialog-heading h2 { font-size: 22px; }
  }
  .attendance-record-progress { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper-bright); }
  .attendance-record-progress p { margin: 6px 0; font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; }
  .attendance-record-progress small { font-size: 12px; color: var(--ink-soft); }
  .attendance-record-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
  .attendance-record-tools label { display: flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; cursor: pointer; }
  .attendance-record-tools input { width: 18px; height: 18px; }
  .attendance-identity .attendance-journal-badge { display: inline-block; margin-top: 8px; padding: 4px 8px; border-radius: 5px; color: #73501c; background: #fff1da; font-size: 12px; font-weight: 700; }
  .attendance-identity .attendance-journal-badge.is-complete { color: var(--forest); background: #e6f2ea; }
  .attendance-identity .attendance-journal-badge.is-draft { color: #70541f; background: #f7edcf; }
  .attendance-identity .attendance-journal-badge.is-unknown { color: var(--ink-soft); background: #f0f3f1; }
  #journal-list .record-body { min-width: 0; }
  #journal-list .journal-details { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
  #journal-list .journal-field { min-width: 0; padding: 18px 20px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper-bright); }
  #journal-list .journal-field dt { margin: 0 0 12px; padding-bottom: 10px; border-bottom: 1px solid var(--line); color: var(--forest); font-size: 14px; line-height: 1.5; text-wrap: balance; }
  #journal-list .journal-field dd { margin: 0; font-size: 16px; line-height: 1.9; overflow-wrap: anywhere; }
  #journal-list .journal-field p { margin: 0; max-width: 48em; white-space: pre-wrap; text-wrap: pretty; }
  #journal-list .journal-field p + p { margin-top: 1em; }
  @media (max-width: 600px) {
    #journal-list .journal-field { padding: 16px; }
    #journal-list .record-actions { flex-wrap: wrap; }
  }
  .document-save-actions { flex-wrap: wrap; gap: 8px; padding-bottom: max(16px, env(safe-area-inset-bottom)); }
  .document-save-actions [data-editor-save-status] { flex: 1 0 100%; margin: 0; font-size: 13px; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
  .document-save-actions [data-editor-save-status][data-dirty="true"] { color: #855319; }
  .document-save-actions .button { min-height: 44px; font-size: 14px; padding: 10px 14px; }
  #discard-editor-dialog { max-width: 520px; padding: 24px; }
  @media (max-width: 600px) {
    .document-save-actions .button { flex: 1 1 auto; }
  }
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  }
}
@media print {
  body.daily-summary-printing #daily-summary-dialog {
    animation: none !important; opacity: 1 !important; transform: none !important; overflow: visible;
  }
  body.daily-summary-printing .daily-summary-card { min-height: 0; }
  body.daily-summary-printing .daily-summary-illustration img { filter: none; }
  .daily-summary-excerpt, .daily-summary-record-detail { display: none !important; }
  .daily-summary-print-full { display: block !important; white-space: pre-wrap; overflow-wrap: anywhere; }
  .daily-summary-parent-health p { white-space: pre-wrap; overflow-wrap: anywhere; }
}
/* Optional scratch notes and explicit AI review use the existing form palette. */
.pdf-repair-list { list-style: none; margin: .75rem 0 0; padding: 0; display: grid; gap: .5rem; }
.pdf-repair-list li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding: .75rem; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 8px; }
.pdf-repair-list li > div { flex: 1 1 12rem; }
.pdf-repair-list small { display: block; color: var(--ink-soft); font-size: .8125rem; }
#view-documents .pdf-repair-list .button { flex: 0 1 auto; }
.pdf-repair-panel { margin-block: 1rem; padding: 1rem; border: 1px solid #dcaba0; border-radius: 9px; background: #fff4f0; }
.pdf-repair-panel p, .pdf-action-error p { margin: .5rem 0 0; text-wrap: pretty; }
.pdf-repair-panel strong, .pdf-action-error strong { font-family: inherit; }
.pdf-repair-hint { color: #893b2b; line-height: 1.6; font-variant-numeric: tabular-nums; }
textarea.pdf-repair-target { border-color: #ad563b; box-shadow: inset 3px 0 #ad563b; }
@media (max-width: 600px) { .pdf-repair-list .button { width: 100%; } }
.journal-memo { min-width: 0; padding: 1rem; border: 1px solid #c9dad1; border-radius: 12px; background: #f4f8f4; }
.journal-memo .field { margin: 0; }
.journal-memo-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: .75rem; }
.journal-memo-actions output { font-size: .875rem; }
.journal-memo-text { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.75; margin: .5rem 0 0; }
.journal-memo-candidate { min-width: 0; padding: .875rem; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--paper-bright); }
.journal-memo-candidate[data-selected="true"] { border-color: var(--forest); box-shadow: inset 3px 0 var(--forest); }
.journal-memo-candidate[data-empty="true"] { background: transparent; color: var(--ink-soft); }
.journal-memo-candidate .journal-memo-text p { margin: 0; text-wrap: pretty; }
.journal-memo-candidate .journal-memo-text p + p { margin-top: .625rem; }
#journal-memo-preview { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--line-strong); }
.journal-memo-preview-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; }
.journal-memo-preview-heading h3 { margin: 0; font-family: inherit; font-size: 1.125rem; text-wrap: balance; }
#journal-memo-selection { font-size: .875rem; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
#journal-memo-selection-help { margin: .5rem 0 1rem; font-size: .875rem; color: var(--ink-soft); text-wrap: pretty; }
#journal-memo-candidates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: .75rem; }
.journal-memo .checkbox-field { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; min-height: 2.25rem; cursor: pointer; }
.journal-memo .checkbox-field strong { font-size: .9375rem; }
.journal-memo-mode { margin-left: auto; padding: .125rem .5rem; background: var(--paper); border-radius: 6px; font-size: .75rem; color: var(--ink-soft); white-space: nowrap; }
.journal-memo-preview-actions { padding-top: .75rem; }
.journal-memo input[type="checkbox"] { width: auto; flex-shrink: 0; }
@media (max-width: 600px) {
  .journal-memo-actions .button { flex: 1 1 100%; }
  #journal-memo-candidates { grid-template-columns: minmax(0, 1fr); }
}

/* Daily work queue: keep the name, status and next action on one scan line. */
@media screen {
  .attendance-scope { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
  .attendance-scope button { min-height: 44px; padding: 10px 20px; border: 1px solid var(--line-strong); border-radius: 8px; font: inherit; font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; background: white; color: var(--forest); cursor: pointer; }
  .attendance-scope button[aria-pressed="true"] { color: white; background: var(--forest); border-color: var(--forest); }
  #view-today .attendance-toolbar { grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); }
  #view-today .attendance-record-progress { border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 14px 0 0; }
  #view-today .attendance-record-progress p { line-height: 1.7; text-wrap: pretty; }
  #view-today .attendance-record-tools { gap: 10px; }
  #attendance-record-filter { width: auto; max-width: 100%; min-height: 44px; padding: 8px 28px 8px 10px; border: 1px solid var(--line-strong); border-radius: 6px; color: var(--ink); background: white; font: inherit; font-size: 14px; }
  .attendance-bulk-panel { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 12px; }
  .attendance-bulk-panel > summary { min-height: 36px; color: var(--ink-soft); font-size: 14px; cursor: pointer; }
  #view-today .attendance-bulk-controls { border: 0; padding-top: 6px; }
  #view-today .attendance-list:not(.empty-state) { gap: 0; border: 1px solid var(--line); border-radius: 10px; background: white; }
  #view-today .attendance-row, #view-today .attendance-list-heading { display: grid; grid-template-columns: 28px minmax(140px, 1fr) 116px minmax(100px, .7fr) 154px; gap: 12px; align-items: center; padding: 12px 16px; }
  #view-today .attendance-list-heading { color: var(--ink-soft); font-size: 12px; font-weight: 700; background: var(--paper); border-radius: 10px 10px 0 0; }
  #view-today .attendance-row { border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; }
  #view-today .attendance-row > * { min-width: 0; }
  #view-today:not(:has(#attendance-bulk-panel[open])) .attendance-selection { visibility: hidden; }
  #view-today .attendance-identity strong { font-size: 15px; line-height: 1.5; }
  #view-today .attendance-status-field { margin: 0; }
  #view-today .attendance-status-field select { width: 100%; min-width: 0; min-height: 44px; padding: 8px 22px 8px 8px; font: inherit; font-size: 13px; border: 1px solid var(--line-strong); border-radius: 6px; background-color: white; color: var(--ink); }
  .attendance-record-cell .attendance-journal-badge { display: inline-block; padding: 5px 8px; border-radius: 5px; background: #fff1da; color: #73501c; font-size: 12px; font-weight: 700; line-height: 1.6; font-variant-numeric: tabular-nums; }
  .attendance-record-cell .is-complete { color: var(--forest); background: #e6f2ea; }
  .attendance-record-cell .is-draft { color: #70541f; background: #f7edcf; }
  .attendance-record-cell .is-unknown { color: var(--ink-soft); background: var(--paper); }
  #view-today .attendance-links { grid-column: auto; display: grid; gap: 2px; justify-items: stretch; }
  #view-today .attendance-links .button { min-height: 44px; padding: 8px; font-size: 13px; }
  #view-today .attendance-open-child { min-height: 32px; font-size: 12px; }
  #view-today .attendance-filter { transition: none; transform: none; }
}
@media screen and (max-width: 1100px) {
  #view-today .attendance-list-heading { display: none; }
  #view-today .attendance-row { grid-template-columns: 24px minmax(0, 1fr) 130px; gap: 8px 12px; }
  #view-today .attendance-status-field { grid-column: 3; }
  #view-today .attendance-record-cell { grid-column: 2; }
  #view-today .attendance-links { grid-column: 3; }
}
@media screen and (max-width: 600px) {
  #view-today .attendance-toolbar { grid-template-columns: minmax(0, 1fr); padding: 12px; }
  .attendance-scope button { flex: 1; padding: 8px; font-size: 13px; }
  #view-today .attendance-row { grid-template-columns: 20px minmax(0, 1fr); padding: 12px; }
  #view-today .attendance-status-field, #view-today .attendance-record-cell, #view-today .attendance-links { grid-column: 2; }
  #view-today .attendance-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
  #view-today .attendance-record-tools label { flex-wrap: wrap; }
}

/* Indeterminate activity marker: visible only while the open dialog is busy. */
#assessment-generation-dialog[open] #assessment-generation-submit[aria-busy="true"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  opacity: 1;
  background: var(--forest);
  color: #fff;
  cursor: wait;
}
#assessment-generation-dialog[open] #assessment-generation-submit[aria-busy="true"]::before {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
}
@media (prefers-reduced-motion: no-preference) {
  #assessment-generation-dialog[open] #assessment-generation-submit[aria-busy="true"]::before {
    animation: assessment-busy-spin .9s linear infinite;
  }
}
@keyframes assessment-busy-spin {
  to { transform: rotate(360deg); }
}

/* Consistent, on-demand writing controls across document and record editors. */
.field-writing-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.field-writing-heading .assessment-writing-toggle { margin-inline-start: auto; min-height: 32px; padding: 5px 9px; font-size: 12px; }
.field-writing-tools { min-width: 0; padding: 12px; }
.field-writing-tools > label { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.field-writing-tools .assessment-writing-note { grid-column: 1 / -1; }
.assessment-legacy-note { margin: 12px 16px; color: var(--ink-soft); font-size: 13px; }
#assessment-editor-form .assessment-step-nav button > strong { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
#plan-editor-form .plan-step-nav button > strong { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
#plan-editor-form:has([data-plan-pages]) { max-height: min(calc(88dvh - 2px), 898px); }
#plan-editor-form .plan-step > .field-grid { min-width: 0; }
#plan-editor-form [data-plan-pages] .assessment-page-controls { margin-bottom: 20px; }
#plan-editor-form [data-plan-pages] .document-goal-editor { grid-column: 1 / -1; min-width: 0; }
.document-create-status { flex: 1 1 100%; margin: 8px 0 0; color: var(--ink-soft); font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.document-create-status[data-failed="true"] { color: var(--error); }
@media (max-width: 480px) {
  #plan-editor-form [data-plan-page-controls] { display: grid; grid-template-columns: 1fr 1fr; }
  #plan-editor-form [data-plan-position] { grid-column: 1 / -1; grid-row: 1; text-align: center; }
}

/* 運用設定：操作範囲を先に示し、職員と事業所を一度に並べない。 */
.admin-access-summary, .staff-role-help { padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-bright); }
.admin-access-summary p, .staff-role-help p { margin: 6px 0 0; color: var(--ink-soft); font-size: 14px; line-height: 1.6; }
.staff-role-help { grid-column: 1 / -1; }
.staff-role-help .staff-access-warning { color: var(--error); }
.admin-panel-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0; }
.admin-panel-nav [aria-pressed="true"] { background: var(--forest); color: white; border-color: var(--forest); }
#main-content > .save-undo-notice { position: static; inset: auto; transform: none; width: auto; max-width: none; margin: 0 0 20px; }
.admin-staff-filters { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; margin: 16px 0; }
.admin-staff-filters output { grid-column: 1 / -1; color: var(--ink-soft); font-size: 13px; font-variant-numeric: tabular-nums; }
#view-admin .staff-card { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.2fr) minmax(0, .8fr) auto; }
#view-admin .staff-card h2 { font-family: inherit; font-size: 17px; }
#view-admin .staff-card a, #view-admin .staff-card p { overflow-wrap: anywhere; font-size: 13px; }
#view-admin .staff-role small { display: block; max-width: 28em; margin-top: 6px; font-size: 12px; line-height: 1.6; color: var(--ink-soft); }
#view-admin .staff-role { display: flex; flex-wrap: wrap; justify-content: start; gap: 6px; }
#view-admin .staff-role > strong, #view-admin .staff-role > .status-chip { white-space: nowrap; }
#view-admin .staff-role > strong, #view-admin .staff-role > .status-chip { flex: 0 0 auto; }
#view-admin .staff-role > small { flex: 1 1 100%; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
#view-admin .staff-actions { flex-wrap: wrap; }
#view-admin .staff-card > * { min-width: 0; }
@media (max-width: 1000px) {
  #view-admin .staff-card { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .admin-staff-filters, #view-admin .staff-card { grid-template-columns: minmax(0, 1fr); }
  #view-admin .staff-actions .button { width: 100%; }
  .admin-panel-nav .button { flex: 1; }
}
@media (max-width: 860px) {
  .primary-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; }
  .primary-nav button { min-width: 0; min-height: 44px; overflow-wrap: anywhere; }
}
@media (max-width: 600px) {
  .primary-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.custom-field-row .field > span { min-height: 32px; display: flex; align-items: center; }
@media (max-width: 600px) {
  .field-writing-heading .assessment-writing-toggle { min-height: 40px; }
  .custom-field-row .field > span { min-height: 40px; }
  .field-writing-tools { display: flex; flex-wrap: wrap; gap: 8px; }
  .field-writing-tools > label, .field-writing-tools > output, .field-writing-tools > .writing-assist-status { flex-basis: 100%; }
}

/* Record types stay visible before opening the editor. */
.primary-nav .record-nav-shortcut { padding-block: 10px; margin-top: -4px; }
.primary-nav .record-nav-shortcut > strong { font-size: 13px; font-weight: 700; }
.primary-nav .record-nav-shortcut > small { grid-column: 2; margin-top: 3px; color: #c2d4cf; font-size: 11px; }
#supplemental-records-title { scroll-margin-top: 100px; }
.support-record-picker > h3, .support-record-list-title { margin: 0 0 8px; font-size: 18px; color: var(--forest); }
.support-record-picker > p { margin: 0 0 20px; color: var(--ink-soft); font-size: 14px; }
.support-record-shortcuts { display: grid; gap: 20px; }
.support-record-kind-group h4 { margin: 0 0 10px; color: var(--ink-soft); font-size: 14px; }
.support-record-kind-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.support-record-kind-button { display: grid; gap: 8px; min-width: 0; padding: 18px; border: 1px solid #b9d3c9; border-radius: 10px; background: #f4f9f6; color: var(--forest); text-align: left; }
.support-record-kind-button strong { font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.support-record-kind-button small { color: var(--ink-soft); font-size: 13px; line-height: 1.6; }
.support-record-kind-button > span { align-self: end; font-size: 13px; font-weight: 700; }
.support-record-kind-button:hover:not(:disabled) { border-color: var(--forest); background: #e6f2ea; }
.support-record-kind-button:focus-visible { outline: 3px solid #a64d30; outline-offset: 3px; }
.support-record-kind-button:disabled { opacity: .6; cursor: not-allowed; }
.support-record-picker + .document-lane-controls { margin-block: 16px 24px; }
@media (max-width: 850px) { .support-record-kind-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .support-record-kind-choices { grid-template-columns: minmax(0, 1fr); } }

/* Support records use the same readable page structure as assessments. */
#support-record-editor-dialog { width: min(1040px, calc(100vw - 32px)); }
#support-record-editor-form { max-height: min(calc(88dvh - 2px), 898px); padding-bottom: 0; }
#support-record-editor-form > .field { margin-bottom: 18px; }
#support-record-editor-form .record-step-nav { grid-template-columns: repeat(var(--record-page-count), minmax(0, 1fr)); }
#support-record-editor-form .record-step-nav button > strong { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
#support-record-editor-form .field-grid, #support-record-editor-fields, #support-record-editor-form [data-record-step] { min-width: 0; }
#support-record-editor-form .assessment-page-controls { margin-bottom: 20px; }
#support-record-editor-form > .dialog-actions { position: sticky; z-index: 7; bottom: -1px; padding: 12px 0 max(12px, env(safe-area-inset-bottom)); background: var(--paper-bright); }
@media (max-width: 640px) {
  #support-record-editor-form .record-step-nav { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #support-record-editor-form > .dialog-actions { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  #support-record-editor-form > .dialog-actions .button { width: auto; flex: 1 1 auto; }
}
@media (max-width: 480px) {
  #support-record-editor-form [data-record-page-controls] { display: grid; grid-template-columns: 1fr 1fr; }
  #support-record-editor-form [data-record-position] { grid-column: 1 / -1; grid-row: 1; text-align: center; }
}

/* Confirm a plan in one form; retain the detailed audit trail on demand. */
#plan-finalization-dialog { width: min(880px, calc(100vw - 32px)); }
#plan-finalization-form { max-height: min(calc(88dvh - 2px), 898px); padding-bottom: 0; }
#plan-finalization-form > section { margin-block: 24px; }
#plan-finalization-form h3 { margin: 0 0 12px; font-size: 18px; }
#plan-finalization-form .field-grid { min-width: 0; }
.finalization-confirmation { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); line-height: 1.7; }
.finalization-confirmation input { flex: 0 0 20px; width: 20px; height: 20px; min-height: 20px; margin-top: 3px; accent-color: var(--forest); }
#plan-finalization-form > .dialog-actions { position: sticky; bottom: -1px; z-index: 7; padding: 12px 0 max(12px, env(safe-area-inset-bottom)); background: var(--paper-bright); }
#workflow-actions { padding: 0; border: 0; background: none; }
#workflow-actions > details { flex-basis: 100%; }
#workflow-dialog details > summary { padding: 12px 0; color: var(--ink-soft); cursor: pointer; }
#workflow-actions details .button { margin: 8px 8px 0 0; }
#workflow-records p { overflow-wrap: anywhere; line-height: 1.7; }
@media (max-width: 640px) {
  #plan-finalization-form > .dialog-actions { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  #plan-finalization-form > .dialog-actions .button { width: auto; flex: 1 1 auto; }
}

/* Keep saved records navigable as their count increases. */
.support-record-list-tools { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 16px 0; }
.support-record-list-tools .field { flex: 1 1 220px; min-width: 0; }
.support-record-list-tools p { color: var(--ink-soft); font-size: 13px; margin: 0 0 10px; }
.support-record-pagination { display: flex; gap: 8px; }
@media (max-width: 520px) { .support-record-pagination { width: 100%; } .support-record-pagination .button { flex: 1; } }
#supplemental-record-list.document-list { display: grid; gap: 20px; }
#supplemental-record-list > .document-item + .document-item { border-top: 1px solid var(--line); padding-top: 20px; }
.support-record-pagination .button { border: 1px solid var(--line); background: var(--paper-bright); color: var(--forest); }

/* Keep saving within reach while editing long daily records. */
#journal-form { scroll-padding-bottom: 165px; }
#journal-form > .journal-save-actions {
  position: sticky;
  z-index: 7;
  bottom: -28px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
  padding: 12px 0 max(12px, env(safe-area-inset-bottom));
  background: var(--paper-bright);
  border-top: 1px solid var(--line);
  box-shadow: 0 -8px 16px var(--paper-bright);
}
.journal-save-actions > output, .journal-save-actions > p { grid-column: 1 / -1; margin: 0; font-size: 12px; line-height: 1.5; color: var(--ink-soft); }
.journal-save-actions > .button { width: auto; min-width: 0; padding: 10px 12px; white-space: normal; }
@media (max-width: 600px) {
  #journal-form > .journal-save-actions { bottom: -22px; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr); }
  .journal-save-actions > .button { padding: 10px 8px; font-size: 13px; }
}

.journal-photo-source-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.journal-photo-source-actions > .button { flex: 1 1 150px; min-height: 44px; white-space: normal; }
.journal-camera-help { margin: 8px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
