/* 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; }
  #view-child .child-back-link { display: inline-flex; align-items: center; min-height: 36px; margin: 0 0 10px; padding: 2px 0; border: 0; color: var(--ink-soft); background: transparent; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
  #view-child .child-back-link:hover { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }
  #view-child .child-back-link:focus-visible { outline: 2px solid var(--terra); outline-offset: 3px; }
  .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(2, 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; }

/* Shared record updates remain in the normal flow and never cover save controls. */
.shared-record-notice { margin: 12px 0; padding: 14px 16px; border: 1px solid #bcb579; border-radius: 12px; background: #fffbea; color: #36443b; }
.shared-record-notice p { margin: 0 0 10px; overflow-wrap: anywhere; }
.shared-record-notice[hidden] { display: none; }
.record-update-meta { color: #526f6c; font-size: .9rem; }
.shared-record-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.shared-record-comparison textarea, .shared-input-copy textarea { width: 100%; box-sizing: border-box; line-height: 1.7; }
.shared-input-copy { margin: 12px 0; padding: 12px; border: 1px solid #b7ccc5; border-radius: 12px; background: #f3f8f5; }
#shared-record-dialog { max-height: 88dvh; overflow-y: auto; }
#shared-record-dialog .dialog-actions { flex-wrap: wrap; position: sticky; bottom: 0; background: #fff; padding: 12px 0; z-index: 1; }
@media (max-width: 640px) {
  .shared-record-comparison { grid-template-columns: minmax(0, 1fr); }
  #shared-record-dialog .dialog-actions button { width: 100%; white-space: normal; }
}

/* Adapted from 3piece-dev-group/day-service static/css/base.css @ 8590ea6.
   Screen-only: official PDF/print layouts keep their styling. */
@media screen {
  :root{--paper:#f3efe7;--paper-bright:#fffdf8;--ink:#172d31;--ink-soft:#486064;--forest:#4e7d89;--forest-deep:#3f6974;--line:#d8d2c6;--line-strong:#b6c8ca;--shadow:0 10px 28px rgb(48 53 42 / 5%)}
  body{background:radial-gradient(circle at 86% 3%,rgba(145,165,130,.16),transparent 26rem),linear-gradient(135deg,#f4f1eb 0%,#ece8df 100%);color:var(--ink)}.workspace{background:transparent;color:var(--ink)}
  .sidebar{background:linear-gradient(150deg,#16333b 0%,#10292f 74%);color:#d8e3e5}
  .current-child{background:rgb(255 255 255 / 4%);border-color:#486068}
  .primary-nav button{font-size:15px;font-weight:500;color:#c8d6d9;border-radius:13px;gap:10px}
  .primary-nav button[aria-current="page"]{background:#2c464e;box-shadow:inset 3px 0 #d69972;color:#fff}
  .primary-nav button:hover{background:rgb(255 255 255 / 8%)}
  .primary-nav .nav-icon{display:inline-flex;width:22px;height:22px;color:#9eb6bd;letter-spacing:0}
  .primary-nav .nav-icon svg{width:22px;height:22px}
  .topbar{min-height:82px;justify-content:space-between;gap:20px;background:#f4f1eb;border-bottom:1px solid #d8d2c6;padding-block:15px}
  .workspace-page-title{margin:0;font-family: inherit;font-size:24px;font-weight:700;letter-spacing:.035em;line-height:1.5}
  .session-context{margin-left:auto;justify-content:flex-end;gap:10px}
  .topbar .button,.topbar .logout-button{font-weight:500}
  .topbar .topbar-memo{border-radius:30px;background:#4e7d89;border-color:#4e7d89;color:#fff;padding-inline:20px}
  .topbar-memo::before{content:'✎';font-size:20px;margin-right:7px;line-height:1}
  .page-heading h1{color:#172d31;letter-spacing:.01em;font-size:32px;font-weight:700}
  .button-primary{background:#4e7d89;border-color:#4e7d89;color:#fff}
  .button-primary:hover{background:#386672;border-color:#386672}
  .button-secondary{background:#fffdf8;border-color:#8daab1;color:#426c78;font-weight:500}
  .button-secondary:hover{background:#e3edf0}
  .service-tabs button[aria-current=page]{background:#4e7d89;color:#fff}
  .service-workspace{padding-top:16px}
  .service-card,.detail-sheet,.subsection-card,.record-card{background:#fffdf8;border-color:#d8d2c6;box-shadow:var(--shadow)}
  .service-table{background:#fffdf8;font-size:15px}
  .service-table thead{background:#dce8e9;color:#536f77}
  .service-table th{padding:15px 18px;border-bottom:2px solid #bcb7ab;font-weight:600}
  .service-table td{border-color:#d8d2c6;padding:16px 18px}
  .service-scroll{border-color:#d8d2c6;border-radius:20px;box-shadow:var(--shadow)}
  .service-status{background:#dce8e9;color:#436f7b;border-color:#a9c5cd}
  .service-workspace input:not([type=checkbox]),.service-workspace select,.service-workspace textarea{background:#fffdf9;border-color:#b3c6ca;color:#243b42}
  .service-workspace input[type=checkbox]{accent-color:#4e7d89}
  .service-summary>div{background:#dfeaec}
  .service-calendar-day[aria-pressed=true]{border-color:#4e7d89;background:#e0ecee}
  .service-matrix th:first-child,.service-matrix td:first-child{background:#f7f4ec}
  @media(max-width:860px){.workspace-page-title{font-size:21px}.topbar{gap:10px;padding:16px 18px;flex-wrap:wrap}.session-context{flex-wrap:wrap}.primary-nav button{font-size:13px}.service-workspace{padding-top:0}}
  @media(max-width:600px){.workspace-page-title{width:100%}.topbar .session-context{margin-left:0;width:100%;justify-content:flex-start}.page-heading h1{font-size:28px}}
}

/* day-service 8590ea6: shared application layout and complete workflow surfaces. */
@media screen {
  .app-shell{grid-template-columns:240px minmax(0,1fr)}
  .sidebar{padding:24px 12px 14px;gap:18px;height:100dvh;overflow-y:auto;display:flex;flex-direction:column}
  .sidebar .brand{padding:0 10px}.sidebar .brand strong{font-size:22px}.sidebar .facility-identity{margin:0 10px;padding:0;border:0;font-size:12px}.sidebar .facility-identity>span{display:none}
  .primary-nav{gap:5px}.primary-nav button{min-height:46px;padding:10px 12px;font-size:14px;font-weight:500;border-radius:12px;gap:12px;line-height:1.5}.nav-icon{width:20px;height:20px}.nav-group-label{color:#96aaad;font-size:11px;letter-spacing:.12em;margin:22px 12px 7px}.nav-more>summary{color:#a5b8bb;font-size:12px;padding:14px 12px;cursor:pointer}.nav-more button{width:100%}
  .sidebar-account{margin-top:auto;border:1px solid #395056;border-radius:12px;display:flex;align-items:center;gap:8px;padding:12px}.sidebar-account .staff-context{display:flex!important;min-width:0;flex:1;color:#dce8e9}.sidebar-account .staff-context strong{color:inherit;font-size:13px}.sidebar-account .staff-context span{font-size:10px;color:#9fb4b8}.sidebar-account .logout-button{font-size:10px;border:0;background:transparent;color:#dce8e9;padding:4px;min-width:0}
  .topbar{padding:18px 36px;min-height:76px}.workspace-page-title{font-size:23px}.topbar .session-context{margin-left:auto}.topbar-memo{font-size:14px;padding:10px 18px}.topbar .session-context>a[href='/journal.html']{display:none!important}
  #toggle-navigation{display:none}.workspace>main{padding:48px 36px 64px}.page-view,.service-workspace{max-width:none}
  .workspace>.current-child{display:none;width:auto;max-width:500px;margin:20px 36px 0;padding:10px 16px;border:1px solid #d8d2c6;background:#fffdf8;color:#486064;border-radius:12px;min-height:0;gap:4px;box-shadow:none;text-align:left}
  .workspace>.current-child strong{color:#172d31;font-size:16px}.workspace>.current-child span{color:#486064;font-size:11px}.app-shell[data-view=child] .workspace>.current-child,.app-shell[data-view=contact] .workspace>.current-child,.app-shell[data-view=documents] .workspace>.current-child{display:flex}
  .page-heading h1,.reference-heading h1{font-size:24px;font-weight:700;line-height:1.5;margin:0;color:#172d31}.page-heading{margin-bottom:24px}.page-heading p{font-size:13px;line-height:1.7}.page-heading .eyebrow{color:#4e7d89;font-size:11px;letter-spacing:.1em}
  .reference-workspace{display:block!important}.reference-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.reference-heading h1{display:flex;gap:10px;align-items:center}.reference-heading .heading-icon{width:24px;height:24px}.reference-heading .calendar-month-nav{margin:0}.reference-heading .calendar-month-picker{font-size:16px;min-width:120px}
  .reference-actions,.reference-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px}.reference-filter{align-items:end}.reference-filter .field{margin:0;min-width:160px;max-width:340px}.reference-filter .field:first-child{min-width:230px}.reference-filter .field>span{font-size:12px}.reference-actions .button,.reference-filter .button,.service-tabs .button{font-size:13px;padding:9px 13px;min-height:40px;border-radius:8px;background:transparent}.reference-actions [aria-current=page]{background:#6099f3;color:#fff;border-color:#6099f3}.reference-actions [data-service-action=load-billing]{border-color:#198754;color:#198754}
  .reference-alert{padding:18px 20px;background:#dce8e9;color:#3f6974;border:1px solid transparent;border-radius:8px;line-height:1.8;font-size:14px;margin:18px 0}.reference-alert.warning{background:#faefd9;border-color:#a26713;color:#8d540b}.reference-alert-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #dac8a7;padding:8px 0}.reference-alert-row:first-of-type{margin-top:12px}.reference-alert-row .button{border:0;background:transparent;padding:4px 0;color:inherit}.reference-date{font-size:14px;color:#63797d;margin:0 0 26px}.reference-section-title{font-size:18px;margin:28px 0 14px;color:#3f6974}
  .reference-list{border:1px solid #d8d2c6;border-radius:18px;overflow:hidden;background:#fffdf8;box-shadow:0 8px 20px rgb(25 43 43 / 4%)}.reference-list-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border:0;border-bottom:1px solid #d8d2c6;background:transparent;text-align:left;color:#172d31;cursor:pointer}.reference-list-row:last-child{border-bottom:0}.reference-list-row:hover{background:#eef3f1}.reference-list-row strong{font-size:17px}.reference-list-row small{display:block;font-size:12px;color:#718083;margin-top:8px}.reference-empty{padding:24px;text-align:center;color:#7a8587;font-size:13px;margin:0}.reference-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.reference-card{background:#fffdf8;border:1px solid #d8d2c6;border-radius:18px;overflow:hidden;padding:22px}.reference-card>h2{margin:-22px -22px 20px;padding:14px 22px;background:#dce8e9;color:#3f6974;font-size:16px}.reference-quick{display:grid;gap:9px}.reference-quick .button{text-align:left;font-weight:500;background:transparent}.reference-profile{display:grid;grid-template-columns:70px 1fr;gap:18px;margin-bottom:30px;font-size:14px}.reference-profile dd{margin:0}.reference-profile dt{color:#728185}
  .reference-week-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:24px}.reference-week-nav strong{font-family: inherit;font-size:16px}.reference-week-nav a{margin-left:auto}.reference-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:start}.reference-week-day{background:#fffdf8;border:1px solid #dde4e5;border-radius:12px;overflow:hidden}.reference-week-day>header{padding:10px;background:#f3f7f7;text-align:center;border-bottom:1px solid #dde4e5}.reference-week-day>header small{display:block;font-size:11px;color:#6a9098}.reference-week-day>header strong{font-family: inherit;font-size:23px;font-weight:500}.reference-week-day[data-weekday='6']>header{color:#3a6bba}.reference-week-day[data-weekday='0']>header{color:#c0392b}.reference-week-day.is-today>header{background:#0f6e56;color:white}.reference-week-day.is-today>header small{color:white}.reference-week-day>div{padding:7px;display:grid;gap:6px}.reference-visit{display:block;width:100%;border:1px solid #d8dedf;background:#f0f2f2;color:#5a6e70;border-radius:7px;padding:9px 7px;text-align:left;cursor:pointer;overflow-wrap:anywhere}.reference-visit strong{font-size:12px;font-weight:500}.reference-visit small{display:block;font-size:10px;margin-top:4px}.reference-visit[data-state=draft]{background:#faeeda;border-color:#e8c98a;color:#7a5220}.reference-visit[data-state=final]{background:#eaf3de;border-color:#b8d89e;color:#2e5a25}.reference-visit[data-state=absent]{background:#f5f5f5;color:#959595}.reference-week-day>.button{font-size:11px;min-height:36px;background:transparent;border:0;border-top:1px dashed #dde4e5;border-radius:0;width:100%;padding:8px 2px;color:#6a9098}
  .reference-matrix-scroll{max-width:100%;overflow:auto;border:1px solid #d8d2c6}.reference-matrix{border-collapse:collapse;table-layout:fixed;width:100%;min-width:950px;background:#fffdf8;font-size:12px}.reference-matrix th,.reference-matrix td{border-right:1px solid #d8d2c6;border-bottom:1px solid #d8d2c6;padding:0;text-align:center}.reference-matrix thead th{padding:12px 1px;background:#f8f9fa;border-bottom:2px solid #b7b0a3;color:#486064;font-weight:500}.reference-matrix thead small{display:block;font-size:10px;margin-top:5px}.reference-matrix tr>:first-child{position:sticky;left:0;width:102px;background:#fffdf8;z-index:1;padding:10px 8px;text-align:left;font-weight:600;overflow-wrap:anywhere}.reference-matrix tr>:last-child{width:67px;background:#f8f9fa;font-weight:600;border-right:0}.reference-matrix thead [data-weekday='6']{background:#f0f4ff;color:#3366cc}.reference-matrix thead [data-weekday='0']{background:#fff0f0;color:#c33}.reference-billing-cell{border:0;background:transparent;color:#4e7d89;display:flex;width:100%;min-height:38px;align-items:center;justify-content:center;flex-direction:column;padding:2px;cursor:pointer;border-radius:0;font-size:11px!important}.reference-billing-cell:hover{outline:2px solid #4e7d89;outline-offset:-2px}.reference-billing-cell[data-status=attended]{background:#e3eeee}.reference-billing-cell[data-status=absent]{background:#f0f0f0}.reference-billing-cell[data-status=transferred]{background:#faefd9}.reference-billing-badge{display:inline-block;background:#4e7d89;color:#fff;border-radius:6px;padding:1px 5px;font-size:11px}.reference-billing-cell[data-status=absent] .reference-billing-badge,.reference-billing-badge.absent{background:#6c757d}.reference-billing-cell[data-status=transferred] .reference-billing-badge,.reference-billing-badge.transferred{background:#854f0b}.reference-billing-cell small{line-height:1.1;font-size:9px}.unreviewed{color:#854f0b}.reference-billing-legend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:#747b7c;margin:20px 0}.reference-totals{font-weight:600}.reference-total{color:#4e7d89}.service-modal{width:min(850px,calc(100vw - 32px));max-height:90dvh;border:1px solid #d8d2c6;border-radius:18px;background:#fffdf8;color:#172d31;padding:20px;box-shadow:0 18px 80px #10292f44}.service-modal::backdrop{background:#10292f77}.service-modal-close{display:block;margin-left:auto;border:0;background:transparent;padding:8px;color:#486064;cursor:pointer}.service-modal .service-card{margin:0;border:0;box-shadow:none;background:transparent;padding:14px}.service-modal .service-card .service-card{border:1px solid #d8d2c6;margin:14px 0}.service-modal .service-status{margin:8px 0}.service-card{background:#fffdf8;border-radius:18px}.service-scroll{border-color:#d8d2c6;border-radius:12px}.service-table{font-size:14px}.service-table th,.service-table td{padding:14px 12px}.service-tabs{border:0;margin:0 0 20px;padding:0}.service-workspace .service-card h2{font-size:18px}.service-workspace input,.service-workspace select{min-height:42px}
  .reference-journal-layout{display:grid!important;grid-template-columns:280px minmax(0,1fr);gap:22px;align-items:start}.reference-journal-nav{display:grid;gap:10px;max-height:75dvh;overflow:auto}.reference-journal-entry{display:block;background:#fffdf8;border:1px solid #d8d2c6;padding:16px;border-radius:12px;text-align:left;color:#172d31;font-weight:600;font-size:13px;cursor:pointer}.reference-journal-entry small{display:block;font-weight:400;font-size:12px;color:#728184;margin-top:10px;line-height:1.6}.reference-journal-entry[aria-pressed=true]{border:2px solid #4e7d89;background:#eaf1f0}.reference-journal-layout .record-item{display:block;border:1px solid #d8d2c6;border-radius:18px;padding:26px;background:#fffdf8;margin:0}.reference-journal-layout .record-item[hidden]{display:none}.reference-journal-layout .record-date{font-family: inherit;font-size:19px;border-bottom:1px solid #d8d2c6;padding:0 0 20px;margin-bottom:20px}.reference-journal-layout .record-date strong{font-family:inherit;color:#4e7d89;font-size:14px}.reference-journal-layout .record-body{padding:0}.reference-journal-layout .record-body>h2{font-size:18px}.journal-details dt{font-size:12px;color:#4e7d89}.journal-details dd{line-height:1.9}
  .detail-sheet,.guardian-card,.document-workspace,.admin-section,.staff-card,.facility-card,.workflow-card,.record-workspace{border-radius:18px;border-color:#d8d2c6;background:#fffdf8;box-shadow:0 8px 24px #172d3108}.detail-grid{gap:0}.detail-grid>div{background:transparent;border:0;border-bottom:1px solid #e4ded2;border-radius:0;padding:20px}.detail-grid dt{font-size:12px;color:#6d8084}.detail-grid dd{font-size:15px;color:#172d31}.document-tabs button,.child-tabs button{font-size:13px;min-height:42px;border-radius:8px}.document-tab-panel{background:#fffdf8;border-radius:18px}.dialog{background:#fffdf8;border-color:#d8d2c6;border-radius:18px}.dialog-heading h2{font-family: inherit;color:#172d31}.field input,.field textarea,.field select{border-color:#bdcdd0;border-radius:7px}.button{font-weight:500}.button-primary{background:#4e7d89;border-color:#4e7d89}.button-secondary{color:#4e7d89;border-color:#8ca4ac}.service-status[data-error=true]{color:#933d36}
  #view-service-settings .service-card>h2{color:#4e7d89;letter-spacing:.05em;border-bottom:1px solid #d8d2c6;padding-bottom:16px;margin:26px 0 20px}#view-service-settings .service-card>h2:first-child{margin-top:0}.service-tag-row{padding:12px 0;border-bottom:1px solid #e3ded4}.service-tag-row .field>span{font-size:11px}
}
@media screen and (max-width:1100px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.workspace>main{padding:32px 24px}.topbar{padding:16px 24px}.reference-week{grid-template-columns:repeat(4,minmax(0,1fr))}.reference-journal-layout{grid-template-columns:220px minmax(0,1fr)}}
@media screen and (max-width:860px){.app-shell{display:block}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;z-index:100;transform:translateX(-100%);visibility:hidden;transition:transform .18s ease,visibility .18s}.primary-nav{display:flex;flex-direction:column}.primary-nav button{justify-content:flex-start;text-align:left}.primary-nav .nav-icon{display:block}.sidebar .brand,.sidebar .facility-identity,.sidebar-account{display:flex}.sidebar .facility-identity{flex-direction:column}.sidebar .brand>div{display:block}body[data-nav-open] .sidebar{transform:none;visibility:visible;box-shadow:20px 0 50px #10292f33}#toggle-navigation{display:block;background:transparent;color:#4e7d89;border:1px solid #bdcdd0;border-radius:8px;width:40px;height:40px;flex:none;font-size:20px;cursor:pointer}.topbar{position:sticky;top:0;display:flex;flex-wrap:nowrap;gap:12px;z-index:110;padding:12px 16px;min-height:64px}.workspace-page-title{font-size:18px;min-width:0;overflow-wrap:anywhere}.topbar .session-context{width:auto;flex:none}.topbar-memo{padding:8px 12px;font-size:12px}.workspace>main{padding:28px 18px 48px}.workspace>.current-child{margin:16px 18px 0}.reference-columns{grid-template-columns:1fr}.reference-heading{gap:14px}.reference-heading h1,.page-heading h1{font-size:22px}.reference-journal-layout{grid-template-columns:1fr}.reference-journal-nav{display:flex;max-height:none;overflow:auto}.reference-journal-entry{min-width:210px}.service-modal{padding:12px}.reference-filter .field{min-width:0;flex:1}.reference-filter .field:first-child{min-width:180px}}
@media screen and (max-width:640px){.reference-week{grid-template-columns:1fr}.reference-week-day>header{text-align:left;display:flex;align-items:center;gap:10px;padding:10px 14px}.reference-week-day>header strong{font-size:19px}.reference-week-day>header small{font-size:12px}.reference-visit strong{font-size:14px}.reference-week-day>div{padding:10px}.reference-week-nav a{margin-left:0}.reference-alert-row{align-items:start;flex-direction:column}.reference-heading .calendar-month-nav{width:100%;justify-content:space-between}.reference-list-row{padding:16px}.reference-journal-layout .record-item{padding:18px}.reference-filter{gap:12px}.service-modal .service-card{padding:8px}}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}
@media screen{.sidebar-account .staff-context{flex-direction:column;align-items:flex-start;border:0;padding:0}.reference-memo{background:#f8fafb;border:1px solid #e4eaec;border-radius:10px;padding:12px 14px;margin-bottom:12px}.reference-memo p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin:0 0 8px}.reference-memo small{color:#7c9095}.reference-journal-layout [hidden]{display:none!important}#view-service-home>.reference-workspace>.reference-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.service-modal .service-day-list{margin-top:14px}}
@media screen and (max-width:860px){.sidebar{padding-top:84px}body[data-nav-open]{overflow:hidden}.workspace>.current-child{flex-wrap:wrap;align-items:center}.workspace>.current-child strong{flex-basis:100%;order:2}.workspace>.current-child span:last-child{margin-left:auto}}

/* Secondary writing controls stay below the input, not beside its label. */
.field-writing-footer{display:flex;justify-content:flex-end;min-width:0;margin-top:2px}
.field-writing-footer .assessment-writing-toggle{min-height:32px;padding:5px 4px;border:0;border-radius:4px;background:transparent;color:#59747a;font-size:12px;font-weight:500;line-height:1.5}
.field-writing-footer .assessment-writing-toggle:hover,.field-writing-footer .assessment-writing-toggle[aria-expanded=true]{background:#e8efed;color:#315d68}
.assessment-writing-disclosure:not([open]){display:none}
.assessment-writing-disclosure[open]{margin-top:4px;border:1px solid #d6e0db;background:#f2f5f2;border-radius:8px}
@media(max-width:520px){.field-writing-footer .assessment-writing-toggle{min-height:44px;padding:8px 4px}}

/* A neighbouring writing tool must not distribute spare row height into labels. */
.form-dialog .field-grid > .field{align-content:start}

/* Keep each daily-living rating and its narrative together. */
.assessment-daily-support{grid-column:1/-1;min-width:0;margin-top:24px}
.assessment-daily-support>h3{margin:0;font-size:17px;color:#315d68}
.daily-support-intro{margin:8px 0 16px;font-size:13px;line-height:1.8;color:#526c70}
.daily-support-item{border:1px solid #d8e1dc;border-radius:10px;padding:18px;margin:0 0 16px;background:#fbfcf9;min-width:0}
.daily-support-item>h4{margin:0 0 12px;font-size:16px;color:#203d38}
.daily-support-pair{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:16px;align-items:start}
#assessment-editor-form .daily-support-pair>.field{margin:0;align-content:start}
.daily-support-pair .field>.daily-support-help{font-size:12px;line-height:1.8;color:#617574}
.daily-support-example{margin:10px 0 0;font-size:12px;line-height:1.8;color:#617574}
@media(max-width:700px){.daily-support-pair{grid-template-columns:1fr}.daily-support-item{padding:14px}.daily-support-intro{font-size:12px}}

/* The Crieba sign-in screen: scoped so account setup screens keep their layout. */
body.crieba-login {
  min-height: 100vh;
  min-height: 100svh;
  padding: 40px 20px;
  background: #f3f1eb;
  color: #203e37;
  font-family: "BIZ UDPGothic", "Hiragino Sans", "Yu Gothic", sans-serif;
}
.crieba-login .login-card {
  width: min(100%, 448px);
  padding: 0;
  overflow: hidden;
  border: 1px solid #d8ddd3;
  border-radius: 22px;
  background: #fffefa;
  box-shadow: 0 16px 48px #263c3010;
}
.crieba-login .login-header {
  position: relative;
  padding: 32px 36px 26px;
  border: 0;
  background: #244c41;
}
.crieba-login .login-brand { color: #fffefa; }
.crieba-login .login-brand small { color: #d6e3db; font-size: 12px; letter-spacing: .08em; line-height: 1.6; }
.crieba-login .login-brand strong { margin-top: 5px; color: #fffefa; font-size: 30px; font-weight: 700; letter-spacing: .12em; line-height: 1.3; }
.crieba-login .login-kicker { margin: 20px 0 0; padding-top: 17px; border-top: 1px solid #ffffff26; color: #d6e3db; font-size: 12px; font-weight: 400; letter-spacing: .06em; }
.crieba-login-content { padding: 30px 36px 32px; }
.crieba-login .login-card h1 { color: #244c41; font-family: inherit; font-size: 23px; line-height: 1.5; letter-spacing: .04em; }
.crieba-login .login-intro { margin-top: 7px; color: #657269; font-size: 13px; line-height: 1.8; }
.crieba-login .login-card form { margin-top: 22px; gap: 9px; }
.crieba-login .login-card label { margin-top: 8px; color: #344f45; font-size: 13px; }
.crieba-login .login-card input { width: 100%; min-height: 50px; border-color: #c6d0c7; border-radius: 8px; background: #fff; }
.crieba-login .login-card input:focus { border-color: #36694f; box-shadow: 0 0 0 3px #36694f20; }
.crieba-login .login-card input[aria-invalid="true"] { border-color: #a33725; }
.crieba-login .login-card form button { margin-top: 15px; min-height: 51px; border-radius: 8px; background: #244c41; font-size: 15px; }
.crieba-login .login-card form button:hover { background: #183c32; transform: none; }
.crieba-login .login-card form button:focus-visible,
.crieba-login .login-actions a:focus-visible { outline: 3px solid #b5753d; outline-offset: 4px; }
.crieba-login .login-actions { margin-top: 23px; padding-top: 21px; gap: 17px; border-color: #e1e5dc; }
.crieba-login .login-actions a { color: #315c49; line-height: 1.8; }
.crieba-login .login-actions p { color: #657269; }
@media (max-width: 480px) {
  body.crieba-login { padding: 24px 16px; }
  .crieba-login .login-card { border-radius: 18px; }
  .crieba-login .login-header { padding: 26px 26px 23px; }
  .crieba-login-content { padding: 25px 26px 28px; }
  .crieba-login .login-brand strong { font-size: 28px; }
}
